@promptbook/components 0.112.0-114 → 0.112.0-117
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/esm/index.es.js +353 -474
- package/esm/index.es.js.map +1 -1
- package/esm/src/_packages/components.index.d.ts +2 -0
- package/esm/src/_packages/node.index.d.ts +10 -0
- package/esm/src/book-3.0/CliAgent.d.ts +8 -15
- package/esm/src/book-3.0/agentFolderPaths.d.ts +30 -0
- package/esm/src/book-components/BookEditor/BookEditorBrowserConfig.d.ts +2 -0
- package/esm/src/book-components/BookEditor/BookEditorForClient.d.ts +7 -0
- package/esm/src/book-components/BookEditor/createDeprecatedCommitmentDiagnostics.browser.d.ts +9 -0
- package/esm/src/cli/cli-commands/agent-folder/agentProjectPaths.d.ts +2 -30
- package/esm/src/scrapers/website/utils/createShowdownConverter.d.ts +2 -2
- package/esm/src/version.d.ts +1 -1
- package/package.json +1 -3
- package/umd/index.umd.js +357 -472
- package/umd/index.umd.js.map +1 -1
- package/umd/src/_packages/components.index.d.ts +2 -0
- package/umd/src/_packages/node.index.d.ts +10 -0
- package/umd/src/book-3.0/CliAgent.d.ts +8 -15
- package/umd/src/book-3.0/agentFolderPaths.d.ts +30 -0
- package/umd/src/book-components/BookEditor/BookEditorBrowserConfig.d.ts +2 -0
- package/umd/src/book-components/BookEditor/BookEditorForClient.d.ts +7 -0
- package/umd/src/book-components/BookEditor/createDeprecatedCommitmentDiagnostics.browser.d.ts +9 -0
- package/umd/src/cli/cli-commands/agent-folder/agentProjectPaths.d.ts +2 -30
- package/umd/src/scrapers/website/utils/createShowdownConverter.d.ts +2 -2
- package/umd/src/version.d.ts +1 -1
package/esm/index.es.js
CHANGED
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { spaceTrim as spaceTrim$1 } from 'spacetrim';
|
|
3
3
|
import { useMemo, useState, createContext, useContext, useEffect, useRef, useCallback, useId, memo, forwardRef } from 'react';
|
|
4
|
-
import
|
|
4
|
+
import CryptoJS from 'crypto-js';
|
|
5
5
|
import hexEncoder from 'crypto-js/enc-hex';
|
|
6
6
|
import { basename, join, dirname, isAbsolute } from 'path';
|
|
7
7
|
import moment from 'moment';
|
|
8
8
|
import { lookup, extension } from 'mime-types';
|
|
9
|
-
import { randomBytes } from 'crypto';
|
|
10
9
|
import { createPortal } from 'react-dom';
|
|
11
10
|
import MonacoEditor, { useMonaco } from '@monaco-editor/react';
|
|
12
|
-
import { Registration } from 'destroyable';
|
|
13
11
|
import { BehaviorSubject, Subject } from 'rxjs';
|
|
14
12
|
import createDOMPurify from 'dompurify';
|
|
15
13
|
import katex from 'katex';
|
|
16
|
-
import
|
|
14
|
+
import showdown from 'showdown';
|
|
17
15
|
import { toCanvas } from 'html-to-image';
|
|
18
16
|
import { jsPDF } from 'jspdf';
|
|
19
17
|
import { createRoot } from 'react-dom/client';
|
|
@@ -21,7 +19,7 @@ import { Maximize2, X, Reply, Pause, Play, Volume2Icon, VolumeXIcon, VibrateIcon
|
|
|
21
19
|
import 'moment/locale/cs';
|
|
22
20
|
import { forTime } from 'waitasecond';
|
|
23
21
|
import sha256 from 'crypto-js/sha256';
|
|
24
|
-
import
|
|
22
|
+
import papaparse from 'papaparse';
|
|
25
23
|
import { fileSearchTool, tool, Agent as Agent$1, webSearchTool, run, setDefaultOpenAIClient, setDefaultOpenAIKey } from '@openai/agents';
|
|
26
24
|
import colors from 'colors';
|
|
27
25
|
import Bottleneck from 'bottleneck';
|
|
@@ -42,7 +40,7 @@ const BOOK_LANGUAGE_VERSION = '2.0.0';
|
|
|
42
40
|
* @generated
|
|
43
41
|
* @see https://github.com/webgptorg/promptbook
|
|
44
42
|
*/
|
|
45
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.112.0-
|
|
43
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.112.0-117';
|
|
46
44
|
/**
|
|
47
45
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
48
46
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -7073,7 +7071,7 @@ function valueToString(value) {
|
|
|
7073
7071
|
* @public exported from `@promptbook/utils`
|
|
7074
7072
|
*/
|
|
7075
7073
|
function computeHash(value) {
|
|
7076
|
-
return SHA256(hexEncoder.parse(spaceTrim$1(valueToString(value)))).toString( /* hex */);
|
|
7074
|
+
return CryptoJS.SHA256(hexEncoder.parse(spaceTrim$1(valueToString(value)))).toString( /* hex */);
|
|
7077
7075
|
}
|
|
7078
7076
|
// TODO: [🥬][🥬] Use this ACRY
|
|
7079
7077
|
|
|
@@ -18467,7 +18465,7 @@ function getTimeoutToolRuntimeAdapterOrDisabledResult(action, runtimeContext) {
|
|
|
18467
18465
|
* @private internal helper function
|
|
18468
18466
|
*/
|
|
18469
18467
|
function $randomToken(randomness) {
|
|
18470
|
-
return
|
|
18468
|
+
return CryptoJS.lib.WordArray.random(randomness).toString(CryptoJS.enc.Hex);
|
|
18471
18469
|
}
|
|
18472
18470
|
// TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
|
|
18473
18471
|
// TODO: Maybe use nanoid instead https://github.com/ai/nanoid
|
|
@@ -20588,7 +20586,7 @@ function parseAgentSourcePrelude(agentSource) {
|
|
|
20588
20586
|
* Regex pattern to match horizontal lines (markdown thematic breaks)
|
|
20589
20587
|
* Matches 3 or more hyphens, underscores, or asterisks (with optional spaces between)
|
|
20590
20588
|
*/
|
|
20591
|
-
const HORIZONTAL_LINE_PATTERN$
|
|
20589
|
+
const HORIZONTAL_LINE_PATTERN$2 = /^[\s]*[-_*][\s]*[-_*][\s]*[-_*][\s]*[-_*]*[\s]*$/;
|
|
20592
20590
|
/**
|
|
20593
20591
|
* Parses agent source using the new commitment system with multiline support
|
|
20594
20592
|
* This function replaces the hardcoded commitment parsing in the original parseAgentSource
|
|
@@ -20677,7 +20675,7 @@ function parseAgentSourceWithCommitments(agentSource) {
|
|
|
20677
20675
|
}
|
|
20678
20676
|
}
|
|
20679
20677
|
// Check if this is a horizontal line (ends any current commitment)
|
|
20680
|
-
const isHorizontalLine = HORIZONTAL_LINE_PATTERN$
|
|
20678
|
+
const isHorizontalLine = HORIZONTAL_LINE_PATTERN$2.test(line);
|
|
20681
20679
|
if (isHorizontalLine) {
|
|
20682
20680
|
// Save the current commitment if it exists
|
|
20683
20681
|
if (currentCommitment) {
|
|
@@ -21622,6 +21620,56 @@ function countLines(text) {
|
|
|
21622
21620
|
// TODO: [🥴] Implement counting in formats - like JSON, CSV, XML,...
|
|
21623
21621
|
// TODO: [🧠][✌️] Make some Promptbook-native token system
|
|
21624
21622
|
|
|
21623
|
+
/**
|
|
21624
|
+
* Core Promptbook server configuration
|
|
21625
|
+
*
|
|
21626
|
+
* Used for "Adam" agent which is built in as default ancestor for new agents and other well known agents
|
|
21627
|
+
*
|
|
21628
|
+
* @public exported from `@promptbook/core`
|
|
21629
|
+
*/
|
|
21630
|
+
const CORE_AGENTS_SERVER = {
|
|
21631
|
+
title: 'Promptbook Core',
|
|
21632
|
+
description: `Core Promptbook server used for Adam agent which is built in as default ancestor for new agents and other well known agents.`,
|
|
21633
|
+
owner: PROMPTBOOK_LEGAL_ENTITY,
|
|
21634
|
+
url: 'https://core.ptbk.io/',
|
|
21635
|
+
};
|
|
21636
|
+
// <- TODO: [🆎] Allow to override (set) well-known agent names via Metadata
|
|
21637
|
+
/**
|
|
21638
|
+
* Available agents servers for the Promptbook
|
|
21639
|
+
*
|
|
21640
|
+
* Tip: 💡 If you are running your own server, you can add it to this list by creating a pull request!
|
|
21641
|
+
*
|
|
21642
|
+
* @public exported from `@promptbook/core`
|
|
21643
|
+
*/
|
|
21644
|
+
const PUBLIC_AGENTS_SERVERS = [
|
|
21645
|
+
CORE_AGENTS_SERVER,
|
|
21646
|
+
{
|
|
21647
|
+
title: 'Promptbook Gallery',
|
|
21648
|
+
description: `Gallery of ideas, AI professions,... like AI Agenta photobank.`,
|
|
21649
|
+
owner: PROMPTBOOK_LEGAL_ENTITY,
|
|
21650
|
+
url: 'https://gallery.ptbk.io/',
|
|
21651
|
+
},
|
|
21652
|
+
{
|
|
21653
|
+
title: 'Promptbook Testing server 6',
|
|
21654
|
+
description: `General-purpose testing server.`,
|
|
21655
|
+
owner: PROMPTBOOK_LEGAL_ENTITY,
|
|
21656
|
+
url: 'https://s6.ptbk.io/',
|
|
21657
|
+
},
|
|
21658
|
+
{
|
|
21659
|
+
title: 'Promptbook Testing server 7',
|
|
21660
|
+
description: `General-purpose testing server.`,
|
|
21661
|
+
owner: PROMPTBOOK_LEGAL_ENTITY,
|
|
21662
|
+
url: 'https://s7.ptbk.io/',
|
|
21663
|
+
},
|
|
21664
|
+
{
|
|
21665
|
+
title: 'Promptbook Testing server 8',
|
|
21666
|
+
description: `General-purpose testing server.`,
|
|
21667
|
+
owner: PROMPTBOOK_LEGAL_ENTITY,
|
|
21668
|
+
url: 'https://s8.ptbk.io/',
|
|
21669
|
+
},
|
|
21670
|
+
];
|
|
21671
|
+
// Note: [💞] Ignore a discrepancy between file name and entity name
|
|
21672
|
+
|
|
21625
21673
|
var css_248z$d = ".BookEditor-module_BookEditor__s-0PU{width:100%}.BookEditor-module_bookEditorContainer__wLMwM{box-sizing:border-box;height:100%;padding:10px 25px 0;position:relative;width:100%}.BookEditor-module_bookEditorContainer__wLMwM.BookEditor-module_isVerbose__VQ6iL{background-color:rgba(0,0,0,.05);outline:1px dotted rgba(0,0,0,.5)}.BookEditor-module_isVerbose__VQ6iL{outline:2px dotted #ff7526}.BookEditor-module_bookEditorWrapper__twppD{background-color:#fff;border:1px solid rgba(209,213,219,.8);border-radius:1rem;box-shadow:0 1px 2px 0 rgba(0,0,0,.05);overflow:hidden;padding-top:10px;transition:box-shadow .2s ease-in-out}.BookEditor-module_isVerbose__VQ6iL .BookEditor-module_bookEditorWrapper__twppD{overflow:visible}.BookEditor-module_bookEditorWrapper__twppD:hover{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.BookEditor-module_BookEditor__s-0PU[data-book-editor-theme=dark] .BookEditor-module_bookEditorWrapper__twppD{background:linear-gradient(180deg,rgba(15,23,42,.98),rgba(8,15,28,.98));border-color:rgba(51,65,85,.92);box-shadow:0 20px 45px rgba(2,6,23,.4)}.BookEditor-module_BookEditor__s-0PU[data-book-editor-theme=dark] .BookEditor-module_bookEditorWrapper__twppD:hover{box-shadow:0 24px 50px rgba(2,6,23,.48)}.BookEditor-module_bookEditorWrapper__twppD.BookEditor-module_isBorderRadiusDisabled__h1I3v{border-radius:0}.BookEditor-module_dropOverlay__xWWoX{align-items:center;background-color:rgba(0,0,0,.5);bottom:0;color:#fff;display:flex;font-size:1.5rem;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:100}.BookEditor-module_bookEditorActionbar__KW6dc{position:absolute;right:55px;top:10px;z-index:100}.BookEditor-module_fullscreen__rktsl{border:none;border-radius:0;bottom:0;box-shadow:none;height:100%;left:0;padding-top:50px;position:fixed;right:0;top:0;width:100%;z-index:9999}.BookEditor-module_button__hS390{align-items:center;background-color:#fff;border:1px solid #d1d5db;border-radius:.375rem;box-shadow:0 1px 2px 0 rgba(0,0,0,.05);color:#374151;cursor:pointer;display:inline-flex;gap:.5rem;padding:.5rem 1rem;transition:all .2s ease-in-out}.BookEditor-module_button__hS390:hover{background-color:#f9fafb;border-color:#b7bcce;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px 0 rgba(0,0,0,.06)}.BookEditor-module_BookEditor__s-0PU[data-book-editor-theme=dark] .BookEditor-module_button__hS390{background-color:rgba(15,23,42,.92);border-color:rgba(71,85,105,.9);box-shadow:0 1px 2px 0 rgba(2,6,23,.35);color:#e2e8f0}.BookEditor-module_BookEditor__s-0PU[data-book-editor-theme=dark] .BookEditor-module_button__hS390:hover{background-color:rgba(30,41,59,.98);border-color:rgba(125,211,252,.5);box-shadow:0 10px 24px rgba(2,6,23,.35)}.BookEditor-module_savedNotification__OiX9L{align-items:center;animation:BookEditor-module_fadeOut__q8JnR 2s forwards;background-color:rgba(0,0,0,.7);border-radius:.5rem;color:#fff;display:flex;font-size:1.25rem;gap:.5rem;left:50%;padding:1rem 2rem;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:1000}.BookEditor-module_BookEditor__s-0PU[data-book-editor-theme=dark] .BookEditor-module_savedNotification__OiX9L{background-color:rgba(2,6,23,.86);border:1px solid rgba(51,65,85,.9);color:#e2e8f0}.BookEditor-module_uploadPanel__2JJtD{background:hsla(0,0%,100%,.98);border:1px solid rgba(209,213,219,.9);border-radius:12px;bottom:20px;box-shadow:0 12px 30px rgba(15,23,42,.15);display:flex;flex-direction:column;gap:10px;max-width:calc(100% - 40px);padding:12px;position:absolute;right:20px;width:420px;z-index:220}.BookEditor-module_BookEditor__s-0PU[data-book-editor-theme=dark] .BookEditor-module_uploadPanel__2JJtD{background:rgba(8,15,28,.96);border-color:rgba(51,65,85,.9);box-shadow:0 18px 40px rgba(2,6,23,.45)}.BookEditor-module_uploadPanelHeader__pdJd2{align-items:center;display:flex;gap:12px;justify-content:space-between}.BookEditor-module_uploadPanelTitle__TJIVF{color:#111827;font-size:.95rem;font-weight:600}.BookEditor-module_BookEditor__s-0PU[data-book-editor-theme=dark] .BookEditor-module_uploadPanelTitle__TJIVF{color:#f8fafc}.BookEditor-module_uploadPanelHeaderMeta__Xw0uI{color:#6b7280;font-size:.75rem}.BookEditor-module_BookEditor__s-0PU[data-book-editor-theme=dark] .BookEditor-module_uploadPanelHeaderMeta__Xw0uI,.BookEditor-module_BookEditor__s-0PU[data-book-editor-theme=dark] .BookEditor-module_uploadPanelSummary__rwSbG,.BookEditor-module_BookEditor__s-0PU[data-book-editor-theme=dark] .BookEditor-module_uploadRowMeta__1lz9h,.BookEditor-module_BookEditor__s-0PU[data-book-editor-theme=dark] .BookEditor-module_uploadRowStatus__jsUb-{color:#94a3b8}.BookEditor-module_uploadPanelSummary__rwSbG{color:#6b7280;display:grid;font-size:.75rem;gap:4px 12px;grid-template-columns:1fr 1fr}.BookEditor-module_uploadPanelProgressBar__a6pjf{background:#e5e7eb;border-radius:999px;height:6px;overflow:hidden}.BookEditor-module_uploadPanelProgressFill__l-TKR{background:linear-gradient(90deg,#2563eb,#10b981);height:100%;transition:width .2s ease}.BookEditor-module_BookEditor__s-0PU[data-book-editor-theme=dark] .BookEditor-module_uploadPanelProgressBar__a6pjf,.BookEditor-module_BookEditor__s-0PU[data-book-editor-theme=dark] .BookEditor-module_uploadRowProgressBar__NoBA7{background:#1e293b}.BookEditor-module_uploadPanelList__VxEd5{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow-y:auto;padding-right:4px}.BookEditor-module_uploadRow__QiSFg{background:#fff;border:1px solid #e5e7eb;border-radius:10px;display:flex;flex-direction:column;gap:6px;padding:8px}.BookEditor-module_BookEditor__s-0PU[data-book-editor-theme=dark] .BookEditor-module_uploadRow__QiSFg{background:rgba(15,23,42,.92);border-color:#334155}.BookEditor-module_uploadRowHeader__po0j5{align-items:center;display:flex;gap:8px;justify-content:space-between}.BookEditor-module_uploadRowName__doQRO{color:#111827;font-size:.8rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.BookEditor-module_BookEditor__s-0PU[data-book-editor-theme=dark] .BookEditor-module_uploadRowName__doQRO{color:#f8fafc}.BookEditor-module_uploadRowStatus__jsUb-{color:#6b7280;font-size:.7rem}.BookEditor-module_uploadRowMeta__1lz9h{color:#6b7280;display:flex;font-size:.7rem;justify-content:space-between}.BookEditor-module_uploadRowProgressBar__NoBA7{background:#e5e7eb;border-radius:999px;height:4px;overflow:hidden}.BookEditor-module_uploadRowProgressFill__TrP7e{background:#3b82f6;height:100%;transition:width .2s ease}.BookEditor-module_uploadRowActions__5Y1Mq{display:flex;gap:6px}.BookEditor-module_uploadActionButton__CqJrr{background:#f9fafb;border:1px solid #d1d5db;border-radius:6px;color:#374151;cursor:pointer;font-size:.7rem;padding:2px 8px;transition:all .15s ease-in-out}.BookEditor-module_uploadActionButton__CqJrr:hover{background:#eef2f7;border-color:#cbd5f5}.BookEditor-module_BookEditor__s-0PU[data-book-editor-theme=dark] .BookEditor-module_uploadActionButton__CqJrr{background:#0f172a;border-color:#475569;color:#e2e8f0}.BookEditor-module_BookEditor__s-0PU[data-book-editor-theme=dark] .BookEditor-module_uploadActionButton__CqJrr:hover{background:#1e293b;border-color:#7dd3fc}.BookEditor-module_uploadRowError__eEHWw{color:#b91c1c;font-size:.7rem}.BookEditor-module_aboutPromptbookInformation__eiBL0{color:#111827;font-family:var(--font-poppins,system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",sans-serif);font-size:.95rem;line-height:1.6;max-width:680px}.BookEditor-module_aboutPromptbookInformation__eiBL0>:first-child{margin-top:0}.BookEditor-module_aboutPromptbookInformation__eiBL0>:last-child{margin-bottom:0}.BookEditor-module_aboutPromptbookInformation__eiBL0 h1,.BookEditor-module_aboutPromptbookInformation__eiBL0 h2{color:#0f172a;font-weight:650;line-height:1.25}.BookEditor-module_aboutPromptbookInformation__eiBL0 h1{font-size:1.5rem;margin:0 0 .75rem}.BookEditor-module_aboutPromptbookInformation__eiBL0 h2{font-size:1.15rem;margin:1.35rem 0 .55rem}.BookEditor-module_aboutPromptbookInformation__eiBL0 p{margin:0 0 .9rem}.BookEditor-module_aboutPromptbookInformation__eiBL0 ol,.BookEditor-module_aboutPromptbookInformation__eiBL0 ul{display:grid;gap:.35rem;margin:.55rem 0 1rem;padding-left:1.35rem}.BookEditor-module_aboutPromptbookInformation__eiBL0 a{color:#2563eb;text-decoration:underline;text-underline-offset:.16em}.BookEditor-module_aboutPromptbookInformation__eiBL0 code{background:rgba(15,23,42,.06);border:1px solid rgba(15,23,42,.12);border-radius:6px;color:#111827;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.9em;padding:.12em .34em}@keyframes BookEditor-module_fadeOut__q8JnR{0%{opacity:0}10%{opacity:1}70%{opacity:1}to{opacity:0}}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkJvb2tFZGl0b3IubW9kdWxlLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQ0FFSSxVQUNKLENBRUEsOENBS0kscUJBQXNCLENBSHRCLFdBQVksQ0FFWixtQkFBb0IsQ0FEcEIsaUJBQWtCLENBRmxCLFVBS0osQ0FFQSxpRkFFSSxnQ0FBcUMsQ0FDckMsaUNBRUosQ0FFQSxvQ0FDSSwwQkFDSixDQUVBLDRDQUtJLHFCQUF1QixDQUR2QixxQ0FBMEMsQ0FGMUMsa0JBQW1CLENBSW5CLHNDQUEyQyxDQUwzQyxlQUFnQixDQUVoQixnQkFBaUIsQ0FJakIscUNBQ0osQ0FDQSxnRkFFSSxnQkFFSixDQUVBLGtEQUNJLHVFQUNKLENBRUEsOEdBRUksdUVBQWtGLENBRGxGLCtCQUFvQyxDQUVwQyxzQ0FDSixDQUVBLG9IQUNJLHVDQUNKLENBVUEsNEZBQ0ksZUFDSixDQUVBLHNDQVNJLGtCQUFtQixDQUhuQiwrQkFBb0MsQ0FEcEMsUUFBUyxDQUVULFVBQVksQ0FDWixZQUFhLENBR2IsZ0JBQWlCLENBRGpCLHNCQUF1QixDQVB2QixNQUFPLENBVVAsbUJBQW9CLENBWnBCLGlCQUFrQixDQUdsQixPQUFRLENBRlIsS0FBTSxDQVVOLFdBRUosQ0FRQSw4Q0FDSSxpQkFBa0IsQ0FFbEIsVUFBVyxDQURYLFFBQVMsQ0FFVCxXQUNKLENBRUEscUNBV0ksV0FBWSxDQUZaLGVBQWdCLENBSmhCLFFBQVMsQ0FPVCxlQUFnQixDQUxoQixXQUFZLENBSlosTUFBTyxDQU9QLGdCQUFpQixDQVRqQixjQUFlLENBR2YsT0FBUSxDQUZSLEtBQU0sQ0FJTixVQUFXLENBRVgsWUFLSixDQUVBLGlDQU9JLGtCQUFtQixDQU5uQixxQkFBc0IsQ0FDdEIsd0JBQXlCLENBQ3pCLHFCQUF1QixDQU92QixzQ0FBMkMsQ0FEM0MsYUFBYyxDQUpkLGNBQWUsQ0FDZixtQkFBb0IsQ0FFcEIsU0FBVyxDQUpYLGtCQUFvQixDQU9wQiw4QkFDSixDQUVBLHVDQUNJLHdCQUF5QixDQUN6QixvQkFBcUIsQ0FDckIsaUVBQ0osQ0FFQSxtR0FDSSxtQ0FBd0MsQ0FDeEMsK0JBQW9DLENBRXBDLHVDQUE0QyxDQUQ1QyxhQUVKLENBRUEseUdBQ0ksbUNBQXdDLENBQ3hDLGlDQUFzQyxDQUN0Qyx1Q0FDSixDQUVBLDRDQWFJLGtCQUFtQixDQUVuQixzREFBOEIsQ0FWOUIsK0JBQW9DLENBR3BDLG1CQUFxQixDQUZyQixVQUFZLENBTVosWUFBYSxDQUhiLGlCQUFrQixDQUtsQixTQUFXLENBWFgsUUFBUyxDQUlULGlCQUFrQixDQUlsQixtQkFBb0IsQ0FWcEIsaUJBQWtCLENBQ2xCLE9BQVEsQ0FFUiw4QkFBZ0MsQ0FNaEMsWUFNSixDQUVBLDhHQUNJLGlDQUFzQyxDQUV0QyxrQ0FBdUMsQ0FEdkMsYUFFSixDQUVBLHNDQU1JLDhCQUFxQyxDQUNyQyxxQ0FBMEMsQ0FDMUMsa0JBQW1CLENBTG5CLFdBQVksQ0FNWix5Q0FBOEMsQ0FFOUMsWUFBYSxDQUNiLHFCQUFzQixDQUN0QixRQUFTLENBUlQsMkJBQTRCLENBSzVCLFlBQWEsQ0FUYixpQkFBa0IsQ0FDbEIsVUFBVyxDQUVYLFdBQVksQ0FVWixXQUNKLENBRUEsd0dBQ0ksNEJBQWlDLENBQ2pDLDhCQUFtQyxDQUNuQyx1Q0FDSixDQUVBLDRDQUVJLGtCQUFtQixDQURuQixZQUFhLENBR2IsUUFBUyxDQURULDZCQUVKLENBRUEsMkNBR0ksYUFBYyxDQURkLGdCQUFrQixDQURsQixlQUdKLENBRUEsNkdBQ0ksYUFDSixDQUVBLGdEQUVJLGFBQWMsQ0FEZCxnQkFFSixDQUVBLHViQUlJLGFBQ0osQ0FFQSw2Q0FLSSxhQUFjLENBSmQsWUFBYSxDQUdiLGdCQUFrQixDQURsQixZQUFhLENBRGIsNkJBSUosQ0FFQSxpREFFSSxrQkFBbUIsQ0FDbkIsbUJBQW9CLENBRnBCLFVBQVcsQ0FHWCxlQUNKLENBRUEsa0RBRUksaURBQW9ELENBRHBELFdBQVksQ0FFWix5QkFDSixDQUVBLG9PQUVJLGtCQUNKLENBRUEsMENBQ0ksWUFBYSxDQUNiLHFCQUFzQixDQUN0QixPQUFRLENBQ1IsZ0JBQWlCLENBQ2pCLGVBQWdCLENBQ2hCLGlCQUNKLENBRUEsb0NBT0ksZUFBZ0IsQ0FOaEIsd0JBQXlCLENBQ3pCLGtCQUFtQixDQUVuQixZQUFhLENBQ2IscUJBQXNCLENBQ3RCLE9BQVEsQ0FIUixXQUtKLENBRUEsc0dBRUksNkJBQWtDLENBRGxDLG9CQUVKLENBRUEsMENBRUksa0JBQW1CLENBRG5CLFlBQWEsQ0FHYixPQUFRLENBRFIsNkJBRUosQ0FFQSx3Q0FHSSxhQUFjLENBRmQsZUFBaUIsQ0FDakIsZUFBZ0IsQ0FFaEIsZUFBZ0IsQ0FDaEIsc0JBQXVCLENBQ3ZCLGtCQUNKLENBRUEsMEdBQ0ksYUFDSixDQUVBLDBDQUVJLGFBQWMsQ0FEZCxlQUVKLENBRUEsd0NBSUksYUFBYyxDQUhkLFlBQWEsQ0FFYixlQUFpQixDQURqQiw2QkFHSixDQUVBLCtDQUVJLGtCQUFtQixDQUNuQixtQkFBb0IsQ0FGcEIsVUFBVyxDQUdYLGVBQ0osQ0FFQSxnREFFSSxrQkFBbUIsQ0FEbkIsV0FBWSxDQUVaLHlCQUNKLENBRUEsMkNBQ0ksWUFBYSxDQUNiLE9BQ0osQ0FFQSw2Q0FFSSxrQkFBbUIsQ0FEbkIsd0JBQXlCLENBS3pCLGlCQUFrQixDQUhsQixhQUFjLENBSWQsY0FBZSxDQUhmLGVBQWlCLENBQ2pCLGVBQWdCLENBR2hCLCtCQUNKLENBRUEsbURBQ0ksa0JBQW1CLENBQ25CLG9CQUNKLENBRUEsK0dBRUksa0JBQW1CLENBRG5CLG9CQUFxQixDQUVyQixhQUNKLENBRUEscUhBQ0ksa0JBQW1CLENBQ25CLG9CQUNKLENBRUEseUNBRUksYUFBYyxDQURkLGVBRUosQ0FFQSxxREFFSSxhQUFjLENBQ2QsZ0dBQXNHLENBQ3RHLGdCQUFrQixDQUNsQixlQUFnQixDQUpoQixlQUtKLENBRUEsa0VBQ0ksWUFDSixDQUVBLGlFQUNJLGVBQ0osQ0FFQSxnSEFFSSxhQUFjLENBQ2QsZUFBZ0IsQ0FDaEIsZ0JBQ0osQ0FFQSx3REFFSSxnQkFBaUIsQ0FEakIsaUJBRUosQ0FFQSx3REFFSSxpQkFBa0IsQ0FEbEIsdUJBRUosQ0FFQSx1REFDSSxnQkFDSixDQUVBLGdIQUVJLFlBQWEsQ0FDYixVQUFZLENBQ1osb0JBQXNCLENBQ3RCLG9CQUNKLENBRUEsdURBQ0ksYUFBYyxDQUNkLHlCQUEwQixDQUMxQiwyQkFDSixDQUVBLDBEQUlJLDZCQUFrQyxDQUZsQyxtQ0FBd0MsQ0FDeEMsaUJBQWtCLENBRWxCLGFBQWMsQ0FDZCx1RkFBZ0csQ0FDaEcsY0FBZ0IsQ0FOaEIsbUJBT0osQ0FFQSw0Q0FDSSxHQUNJLFNBQ0osQ0FDQSxJQUNJLFNBQ0osQ0FDQSxJQUNJLFNBQ0osQ0FDQSxHQUNJLFNBQ0osQ0FDSiIsImZpbGUiOiJCb29rRWRpdG9yLm1vZHVsZS5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuQm9va0VkaXRvciB7XG4gICAgLyogaGVpZ2h0OiA0NTBweDsgKi9cbiAgICB3aWR0aDogMTAwJTtcbn1cblxuLmJvb2tFZGl0b3JDb250YWluZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMTBweCAyNXB4IDA7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLmJvb2tFZGl0b3JDb250YWluZXIuaXNWZXJib3NlIHtcbiAgICAvKiovXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAvKiovXG59XG5cbi5pc1ZlcmJvc2Uge1xuICAgIG91dGxpbmU6IDJweCBkb3R0ZWQgcmdiKDI1NSAxMTcgMzgpO1xufVxuXG4uYm9va0VkaXRvcldyYXBwZXIge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyLXJhZGl1czogMXJlbTtcbiAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIwOSwgMjEzLCAyMTksIDAuOCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDAuMnMgZWFzZS1pbi1vdXQ7XG59XG4uaXNWZXJib3NlIC5ib29rRWRpdG9yV3JhcHBlciB7XG4gICAgLyoqL1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIC8qKi9cbn1cblxuLmJvb2tFZGl0b3JXcmFwcGVyOmhvdmVyIHtcbiAgICBib3gtc2hhZG93OiAwIDRweCA2cHggLTFweCByZ2JhKDAsIDAsIDAsIDAuMSksIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4wNik7XG59XG5cbi5Cb29rRWRpdG9yW2RhdGEtYm9vay1lZGl0b3ItdGhlbWU9J2RhcmsnXSAuYm9va0VkaXRvcldyYXBwZXIge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSg1MSwgNjUsIDg1LCAwLjkyKTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCByZ2JhKDE1LCAyMywgNDIsIDAuOTgpLCByZ2JhKDgsIDE1LCAyOCwgMC45OCkpO1xuICAgIGJveC1zaGFkb3c6IDAgMjBweCA0NXB4IHJnYmEoMiwgNiwgMjMsIDAuNCk7XG59XG5cbi5Cb29rRWRpdG9yW2RhdGEtYm9vay1lZGl0b3ItdGhlbWU9J2RhcmsnXSAuYm9va0VkaXRvcldyYXBwZXI6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IDAgMjRweCA1MHB4IHJnYmEoMiwgNiwgMjMsIDAuNDgpO1xufVxuXG4uYm9va0VkaXRvcldyYXBwZXI6Zm9jdXMtd2l0aGluIHtcbiAgICAvKlxuICAgIG91dGxpbmU6IDJweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDNweCByZ2JhKDk5LCAxMDIsIDI0MSwgMC40KTtcbiAgICAqL1xufVxuXG4uYm9va0VkaXRvcldyYXBwZXIuaXNCb3JkZXJSYWRpdXNEaXNhYmxlZCB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxuLmRyb3BPdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMS41cmVtO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLypcbi5ib29rRWRpdG9yQ29udGFpbmVyIDpnbG9iYWwoLnZpZXctbGluZSkge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlOyAvKiA8LSBOb3RlOiBgUFJPTVBUQk9PS19TWU5UQVhfQ09MT1JTLkxJTkVgICogL1xufVxuKi9cblxuLmJvb2tFZGl0b3JBY3Rpb25iYXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwcHg7XG4gICAgcmlnaHQ6IDU1cHg7XG4gICAgei1pbmRleDogMTAwO1xufVxuXG4uZnVsbHNjcmVlbiB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgei1pbmRleDogOTk5OTtcbiAgICBib3JkZXItcmFkaXVzOiAwO1xuICAgIHBhZGRpbmctdG9wOiA1MHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG4uYnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkMWQ1ZGI7XG4gICAgYm9yZGVyLXJhZGl1czogMC4zNzVyZW07XG4gICAgcGFkZGluZzogMC41cmVtIDFyZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAwLjVyZW07XG4gICAgY29sb3I6ICMzNzQxNTE7XG4gICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjA1KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbn1cblxuLmJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2Y5ZmFmYjtcbiAgICBib3JkZXItY29sb3I6ICNiN2JjY2U7XG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4IDAgcmdiYSgwLCAwLCAwLCAwLjEpLCAwIDFweCAycHggMCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xufVxuXG4uQm9va0VkaXRvcltkYXRhLWJvb2stZWRpdG9yLXRoZW1lPSdkYXJrJ10gLmJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxNSwgMjMsIDQyLCAwLjkyKTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoNzEsIDg1LCAxMDUsIDAuOSk7XG4gICAgY29sb3I6ICNlMmU4ZjA7XG4gICAgYm94LXNoYWRvdzogMCAxcHggMnB4IDAgcmdiYSgyLCA2LCAyMywgMC4zNSk7XG59XG5cbi5Cb29rRWRpdG9yW2RhdGEtYm9vay1lZGl0b3ItdGhlbWU9J2RhcmsnXSAuYnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDMwLCA0MSwgNTksIDAuOTgpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxMjUsIDIxMSwgMjUyLCAwLjUpO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNHB4IHJnYmEoMiwgNiwgMjMsIDAuMzUpO1xufVxuXG4uc2F2ZWROb3RpZmljYXRpb24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjcpO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBwYWRkaW5nOiAxcmVtIDJyZW07XG4gICAgYm9yZGVyLXJhZGl1czogMC41cmVtO1xuICAgIGZvbnQtc2l6ZTogMS4yNXJlbTtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDAuNXJlbTtcbiAgICBhbmltYXRpb246IGZhZGVPdXQgMnMgZm9yd2FyZHM7XG59XG5cbi5Cb29rRWRpdG9yW2RhdGEtYm9vay1lZGl0b3ItdGhlbWU9J2RhcmsnXSAuc2F2ZWROb3RpZmljYXRpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMiwgNiwgMjMsIDAuODYpO1xuICAgIGNvbG9yOiAjZTJlOGYwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTEsIDY1LCA4NSwgMC45KTtcbn1cblxuLnVwbG9hZFBhbmVsIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgYm90dG9tOiAyMHB4O1xuICAgIHdpZHRoOiA0MjBweDtcbiAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDQwcHgpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45OCk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyMDksIDIxMywgMjE5LCAwLjkpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDMwcHggcmdiYSgxNSwgMjMsIDQyLCAwLjE1KTtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG4gICAgei1pbmRleDogMjIwO1xufVxuXG4uQm9va0VkaXRvcltkYXRhLWJvb2stZWRpdG9yLXRoZW1lPSdkYXJrJ10gLnVwbG9hZFBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDgsIDE1LCAyOCwgMC45Nik7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDUxLCA2NSwgODUsIDAuOSk7XG4gICAgYm94LXNoYWRvdzogMCAxOHB4IDQwcHggcmdiYSgyLCA2LCAyMywgMC40NSk7XG59XG5cbi51cGxvYWRQYW5lbEhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG59XG5cbi51cGxvYWRQYW5lbFRpdGxlIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBjb2xvcjogIzExMTgyNztcbn1cblxuLkJvb2tFZGl0b3JbZGF0YS1ib29rLWVkaXRvci10aGVtZT0nZGFyayddIC51cGxvYWRQYW5lbFRpdGxlIHtcbiAgICBjb2xvcjogI2Y4ZmFmYztcbn1cblxuLnVwbG9hZFBhbmVsSGVhZGVyTWV0YSB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGNvbG9yOiAjNmI3MjgwO1xufVxuXG4uQm9va0VkaXRvcltkYXRhLWJvb2stZWRpdG9yLXRoZW1lPSdkYXJrJ10gLnVwbG9hZFBhbmVsSGVhZGVyTWV0YSxcbi5Cb29rRWRpdG9yW2RhdGEtYm9vay1lZGl0b3ItdGhlbWU9J2RhcmsnXSAudXBsb2FkUGFuZWxTdW1tYXJ5LFxuLkJvb2tFZGl0b3JbZGF0YS1ib29rLWVkaXRvci10aGVtZT0nZGFyayddIC51cGxvYWRSb3dTdGF0dXMsXG4uQm9va0VkaXRvcltkYXRhLWJvb2stZWRpdG9yLXRoZW1lPSdkYXJrJ10gLnVwbG9hZFJvd01ldGEge1xuICAgIGNvbG9yOiAjOTRhM2I4O1xufVxuXG4udXBsb2FkUGFuZWxTdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogMWZyIDFmcjtcbiAgICBnYXA6IDRweCAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBjb2xvcjogIzZiNzI4MDtcbn1cblxuLnVwbG9hZFBhbmVsUHJvZ3Jlc3NCYXIge1xuICAgIGhlaWdodDogNnB4O1xuICAgIGJhY2tncm91bmQ6ICNlNWU3ZWI7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnVwbG9hZFBhbmVsUHJvZ3Jlc3NGaWxsIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjMjU2M2ViLCAjMTBiOTgxKTtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjJzIGVhc2U7XG59XG5cbi5Cb29rRWRpdG9yW2RhdGEtYm9vay1lZGl0b3ItdGhlbWU9J2RhcmsnXSAudXBsb2FkUGFuZWxQcm9ncmVzc0Jhcixcbi5Cb29rRWRpdG9yW2RhdGEtYm9vay1lZGl0b3ItdGhlbWU9J2RhcmsnXSAudXBsb2FkUm93UHJvZ3Jlc3NCYXIge1xuICAgIGJhY2tncm91bmQ6ICMxZTI5M2I7XG59XG5cbi51cGxvYWRQYW5lbExpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXgtaGVpZ2h0OiAyMjBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHBhZGRpbmctcmlnaHQ6IDRweDtcbn1cblxuLnVwbG9hZFJvdyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTdlYjtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBhZGRpbmc6IDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLkJvb2tFZGl0b3JbZGF0YS1ib29rLWVkaXRvci10aGVtZT0nZGFyayddIC51cGxvYWRSb3cge1xuICAgIGJvcmRlci1jb2xvcjogIzMzNDE1NTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuOTIpO1xufVxuXG4udXBsb2FkUm93SGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogOHB4O1xufVxuXG4udXBsb2FkUm93TmFtZSB7XG4gICAgZm9udC1zaXplOiAwLjhyZW07XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzExMTgyNztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi5Cb29rRWRpdG9yW2RhdGEtYm9vay1lZGl0b3ItdGhlbWU9J2RhcmsnXSAudXBsb2FkUm93TmFtZSB7XG4gICAgY29sb3I6ICNmOGZhZmM7XG59XG5cbi51cGxvYWRSb3dTdGF0dXMge1xuICAgIGZvbnQtc2l6ZTogMC43cmVtO1xuICAgIGNvbG9yOiAjNmI3MjgwO1xufVxuXG4udXBsb2FkUm93TWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgY29sb3I6ICM2YjcyODA7XG59XG5cbi51cGxvYWRSb3dQcm9ncmVzc0JhciB7XG4gICAgaGVpZ2h0OiA0cHg7XG4gICAgYmFja2dyb3VuZDogI2U1ZTdlYjtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udXBsb2FkUm93UHJvZ3Jlc3NGaWxsIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogIzNiODJmNjtcbiAgICB0cmFuc2l0aW9uOiB3aWR0aCAwLjJzIGVhc2U7XG59XG5cbi51cGxvYWRSb3dBY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogNnB4O1xufVxuXG4udXBsb2FkQWN0aW9uQnV0dG9uIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZDFkNWRiO1xuICAgIGJhY2tncm91bmQ6ICNmOWZhZmI7XG4gICAgY29sb3I6ICMzNzQxNTE7XG4gICAgZm9udC1zaXplOiAwLjdyZW07XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlLWluLW91dDtcbn1cblxuLnVwbG9hZEFjdGlvbkJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2VlZjJmNztcbiAgICBib3JkZXItY29sb3I6ICNjYmQ1ZjU7XG59XG5cbi5Cb29rRWRpdG9yW2RhdGEtYm9vay1lZGl0b3ItdGhlbWU9J2RhcmsnXSAudXBsb2FkQWN0aW9uQnV0dG9uIHtcbiAgICBib3JkZXItY29sb3I6ICM0NzU1Njk7XG4gICAgYmFja2dyb3VuZDogIzBmMTcyYTtcbiAgICBjb2xvcjogI2UyZThmMDtcbn1cblxuLkJvb2tFZGl0b3JbZGF0YS1ib29rLWVkaXRvci10aGVtZT0nZGFyayddIC51cGxvYWRBY3Rpb25CdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICMxZTI5M2I7XG4gICAgYm9yZGVyLWNvbG9yOiAjN2RkM2ZjO1xufVxuXG4udXBsb2FkUm93RXJyb3Ige1xuICAgIGZvbnQtc2l6ZTogMC43cmVtO1xuICAgIGNvbG9yOiAjYjkxYzFjO1xufVxuXG4uYWJvdXRQcm9tcHRib29rSW5mb3JtYXRpb24ge1xuICAgIG1heC13aWR0aDogNjgwcHg7XG4gICAgY29sb3I6ICMxMTE4Mjc7XG4gICAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtcG9wcGlucywgc3lzdGVtLXVpLCAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsICdTZWdvZSBVSScsIHNhbnMtc2VyaWYpO1xuICAgIGZvbnQtc2l6ZTogMC45NXJlbTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xufVxuXG4uYWJvdXRQcm9tcHRib29rSW5mb3JtYXRpb24gPiA6Zmlyc3QtY2hpbGQge1xuICAgIG1hcmdpbi10b3A6IDA7XG59XG5cbi5hYm91dFByb21wdGJvb2tJbmZvcm1hdGlvbiA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYWJvdXRQcm9tcHRib29rSW5mb3JtYXRpb24gaDEsXG4uYWJvdXRQcm9tcHRib29rSW5mb3JtYXRpb24gaDIge1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtd2VpZ2h0OiA2NTA7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjU7XG59XG5cbi5hYm91dFByb21wdGJvb2tJbmZvcm1hdGlvbiBoMSB7XG4gICAgbWFyZ2luOiAwIDAgMC43NXJlbTtcbiAgICBmb250LXNpemU6IDEuNXJlbTtcbn1cblxuLmFib3V0UHJvbXB0Ym9va0luZm9ybWF0aW9uIGgyIHtcbiAgICBtYXJnaW46IDEuMzVyZW0gMCAwLjU1cmVtO1xuICAgIGZvbnQtc2l6ZTogMS4xNXJlbTtcbn1cblxuLmFib3V0UHJvbXB0Ym9va0luZm9ybWF0aW9uIHAge1xuICAgIG1hcmdpbjogMCAwIDAuOXJlbTtcbn1cblxuLmFib3V0UHJvbXB0Ym9va0luZm9ybWF0aW9uIHVsLFxuLmFib3V0UHJvbXB0Ym9va0luZm9ybWF0aW9uIG9sIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdhcDogMC4zNXJlbTtcbiAgICBtYXJnaW46IDAuNTVyZW0gMCAxcmVtO1xuICAgIHBhZGRpbmctbGVmdDogMS4zNXJlbTtcbn1cblxuLmFib3V0UHJvbXB0Ym9va0luZm9ybWF0aW9uIGEge1xuICAgIGNvbG9yOiAjMjU2M2ViO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRleHQtdW5kZXJsaW5lLW9mZnNldDogMC4xNmVtO1xufVxuXG4uYWJvdXRQcm9tcHRib29rSW5mb3JtYXRpb24gY29kZSB7XG4gICAgcGFkZGluZzogMC4xMmVtIDAuMzRlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgNDIsIDAuMTIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE1LCAyMywgNDIsIDAuMDYpO1xuICAgIGNvbG9yOiAjMTExODI3O1xuICAgIGZvbnQtZmFtaWx5OiB1aS1tb25vc3BhY2UsIFNGTW9uby1SZWd1bGFyLCBNZW5sbywgTW9uYWNvLCBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTtcbiAgICBmb250LXNpemU6IDAuOWVtO1xufVxuXG5Aa2V5ZnJhbWVzIGZhZGVPdXQge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gICAgMTAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgNzAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxufVxuIl19 */";
|
|
21626
21674
|
var styles$d = {"BookEditor":"BookEditor-module_BookEditor__s-0PU","bookEditorContainer":"BookEditor-module_bookEditorContainer__wLMwM","isVerbose":"BookEditor-module_isVerbose__VQ6iL","bookEditorWrapper":"BookEditor-module_bookEditorWrapper__twppD","isBorderRadiusDisabled":"BookEditor-module_isBorderRadiusDisabled__h1I3v","dropOverlay":"BookEditor-module_dropOverlay__xWWoX","bookEditorActionbar":"BookEditor-module_bookEditorActionbar__KW6dc","fullscreen":"BookEditor-module_fullscreen__rktsl","button":"BookEditor-module_button__hS390","savedNotification":"BookEditor-module_savedNotification__OiX9L","fadeOut":"BookEditor-module_fadeOut__q8JnR","uploadPanel":"BookEditor-module_uploadPanel__2JJtD","uploadPanelHeader":"BookEditor-module_uploadPanelHeader__pdJd2","uploadPanelTitle":"BookEditor-module_uploadPanelTitle__TJIVF","uploadPanelHeaderMeta":"BookEditor-module_uploadPanelHeaderMeta__Xw0uI","uploadPanelSummary":"BookEditor-module_uploadPanelSummary__rwSbG","uploadRowStatus":"BookEditor-module_uploadRowStatus__jsUb-","uploadRowMeta":"BookEditor-module_uploadRowMeta__1lz9h","uploadPanelProgressBar":"BookEditor-module_uploadPanelProgressBar__a6pjf","uploadPanelProgressFill":"BookEditor-module_uploadPanelProgressFill__l-TKR","uploadRowProgressBar":"BookEditor-module_uploadRowProgressBar__NoBA7","uploadPanelList":"BookEditor-module_uploadPanelList__VxEd5","uploadRow":"BookEditor-module_uploadRow__QiSFg","uploadRowHeader":"BookEditor-module_uploadRowHeader__po0j5","uploadRowName":"BookEditor-module_uploadRowName__doQRO","uploadRowProgressFill":"BookEditor-module_uploadRowProgressFill__TrP7e","uploadRowActions":"BookEditor-module_uploadRowActions__5Y1Mq","uploadActionButton":"BookEditor-module_uploadActionButton__CqJrr","uploadRowError":"BookEditor-module_uploadRowError__eEHWw","aboutPromptbookInformation":"BookEditor-module_aboutPromptbookInformation__eiBL0"};
|
|
21627
21675
|
styleInject(css_248z$d);
|
|
@@ -21653,135 +21701,6 @@ function SaveIcon({ size = 20, color = 'currentColor', ...props }) {
|
|
|
21653
21701
|
return (jsxs("svg", { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: color, strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", ...props, children: [jsx("path", { d: "M4 17V7a3 3 0 0 1 3-3h10a3 3 0 0 1 3 3v7a3 3 0 0 1-3 3H7l-3 3z", fill: color, fillOpacity: "0.08", stroke: color }), jsx("path", { d: "M12 9v5", stroke: color }), jsx("path", { d: "M9.5 12.5L12 15l2.5-2.5", stroke: color })] }));
|
|
21654
21702
|
}
|
|
21655
21703
|
|
|
21656
|
-
/**
|
|
21657
|
-
* Detects if the code is running in a browser environment in main thread (Not in a web worker)
|
|
21658
|
-
*
|
|
21659
|
-
* Note: `$` is used to indicate that this function is not a pure function - it looks at the global object to determine the environment
|
|
21660
|
-
*
|
|
21661
|
-
* @public exported from `@promptbook/utils`
|
|
21662
|
-
*/
|
|
21663
|
-
function $isRunningInBrowser() {
|
|
21664
|
-
try {
|
|
21665
|
-
return typeof window !== 'undefined' && typeof window.document !== 'undefined';
|
|
21666
|
-
}
|
|
21667
|
-
catch (e) {
|
|
21668
|
-
return false;
|
|
21669
|
-
}
|
|
21670
|
-
}
|
|
21671
|
-
// TODO: [🎺]
|
|
21672
|
-
|
|
21673
|
-
/**
|
|
21674
|
-
* Converts Blob, File or MediaSource to url using URL.createObjectURL
|
|
21675
|
-
*
|
|
21676
|
-
* @public exported from `@promptbook/browser`
|
|
21677
|
-
*/
|
|
21678
|
-
class ObjectUrl extends Registration {
|
|
21679
|
-
constructor(teardownLogic, src) {
|
|
21680
|
-
super(teardownLogic);
|
|
21681
|
-
this.src = src;
|
|
21682
|
-
}
|
|
21683
|
-
/**
|
|
21684
|
-
* Creates ObjectUrl from multiple input types
|
|
21685
|
-
* Note: DO NOT forget to call destroy() when you are done with it
|
|
21686
|
-
*/
|
|
21687
|
-
static from(source, mimeType) {
|
|
21688
|
-
if (typeof source === 'string') {
|
|
21689
|
-
return ObjectUrl.fromString(source, mimeType);
|
|
21690
|
-
}
|
|
21691
|
-
if ((source instanceof Blob || source instanceof File) && source.type !== mimeType) {
|
|
21692
|
-
throw new Error(`Source type ${source.type} does not match given mimeType ${mimeType}`);
|
|
21693
|
-
}
|
|
21694
|
-
return ObjectUrl.fromBlob(source);
|
|
21695
|
-
}
|
|
21696
|
-
/**
|
|
21697
|
-
* Creates ObjectUrl from string
|
|
21698
|
-
* Note: DO NOT forget to call destroy() when you are done with it
|
|
21699
|
-
*/
|
|
21700
|
-
static fromString(source, mimeType) {
|
|
21701
|
-
return ObjectUrl.fromBlob(new Blob([source], { type: mimeType }));
|
|
21702
|
-
}
|
|
21703
|
-
/**
|
|
21704
|
-
* Creates ObjectUrl
|
|
21705
|
-
* DO NOT forget to call destroy() when you are done with it
|
|
21706
|
-
*/
|
|
21707
|
-
static fromBlob(source) {
|
|
21708
|
-
const src = URL.createObjectURL(source);
|
|
21709
|
-
return new ObjectUrl(() => {
|
|
21710
|
-
URL.revokeObjectURL(src);
|
|
21711
|
-
}, src);
|
|
21712
|
-
}
|
|
21713
|
-
/**
|
|
21714
|
-
* Creates ObjectUrl:
|
|
21715
|
-
* 1) With functionality for Blobs, Files or MediaSources
|
|
21716
|
-
* 2) Just a wrapper for string urls
|
|
21717
|
-
*
|
|
21718
|
-
* DO NOT forget to call destroy() when you are done with it
|
|
21719
|
-
*/
|
|
21720
|
-
static fromBlobOrUrl(source) {
|
|
21721
|
-
if (typeof source === 'string' || source instanceof URL /* <- TODO: Probably check isValidUrl */) {
|
|
21722
|
-
return new ObjectUrl(() => {
|
|
21723
|
-
// Note: Nothing to do here
|
|
21724
|
-
}, source.toString());
|
|
21725
|
-
}
|
|
21726
|
-
else {
|
|
21727
|
-
return ObjectUrl.fromBlob(source);
|
|
21728
|
-
}
|
|
21729
|
-
}
|
|
21730
|
-
/**
|
|
21731
|
-
* Gets object url as string
|
|
21732
|
-
* @alias src
|
|
21733
|
-
*/
|
|
21734
|
-
get href() {
|
|
21735
|
-
return this.src;
|
|
21736
|
-
}
|
|
21737
|
-
/**
|
|
21738
|
-
* Gets object url as URL object
|
|
21739
|
-
*/
|
|
21740
|
-
get url() {
|
|
21741
|
-
return new URL(this.src);
|
|
21742
|
-
}
|
|
21743
|
-
}
|
|
21744
|
-
// Note: [🔵] Code for browser file helper [ObjectUrl](src/utils/files/ObjectUrl.ts) should never be published outside of `@promptbook/browser`
|
|
21745
|
-
|
|
21746
|
-
/**
|
|
21747
|
-
* Download a File in a browser
|
|
21748
|
-
*
|
|
21749
|
-
* Note: `$` is used to indicate that this function is not a pure function - its purpose is to cause a side effect (download a file)
|
|
21750
|
-
*
|
|
21751
|
-
* @public exported from `@promptbook/browser`
|
|
21752
|
-
*/
|
|
21753
|
-
async function $induceFileDownload(fileOrBlobOrUrl) {
|
|
21754
|
-
if (!$isRunningInBrowser()) {
|
|
21755
|
-
throw new Error('Function `$induceFileDownload` is available ONLY in browser');
|
|
21756
|
-
}
|
|
21757
|
-
const objectUrl = ObjectUrl.fromBlobOrUrl(fileOrBlobOrUrl);
|
|
21758
|
-
const link = window.document.createElement('a');
|
|
21759
|
-
link.href = objectUrl.href;
|
|
21760
|
-
link.download = fileOrBlobOrUrl.name || 'untitled' /* <- TODO: Add proper extension according to url */;
|
|
21761
|
-
link.click();
|
|
21762
|
-
await objectUrl.destroy();
|
|
21763
|
-
}
|
|
21764
|
-
// Note: [🔵] Code for browser file helper [$induceFileDownload](src/utils/files/$induceFileDownload.ts) should never be published outside of `@promptbook/browser`
|
|
21765
|
-
|
|
21766
|
-
/**
|
|
21767
|
-
* Download a Book in a browser
|
|
21768
|
-
*
|
|
21769
|
-
* Note: `$` is used to indicate that this function is not a pure function - its purpose is to cause a side effect (download a file)
|
|
21770
|
-
*
|
|
21771
|
-
* @public exported from `@promptbook/browser`
|
|
21772
|
-
*/
|
|
21773
|
-
async function $induceBookDownload(book) {
|
|
21774
|
-
if (!$isRunningInBrowser()) {
|
|
21775
|
-
throw new Error('Function `$induceBookDownload` is available ONLY in browser');
|
|
21776
|
-
}
|
|
21777
|
-
const { agentName } = parseAgentSource(book);
|
|
21778
|
-
const bookFile = new File([book], `${titleToName(agentName || 'AI Avatar')}.book`, {
|
|
21779
|
-
type: 'application/json',
|
|
21780
|
-
});
|
|
21781
|
-
return /* not await */ $induceFileDownload(bookFile);
|
|
21782
|
-
}
|
|
21783
|
-
// Note: [🔵] Code for browser file helper [$induceBookDownload](src/utils/files/$induceBookDownload.ts) should never be published outside of `@promptbook/browser`
|
|
21784
|
-
|
|
21785
21704
|
/**
|
|
21786
21705
|
* Renders an information/about icon.
|
|
21787
21706
|
*
|
|
@@ -21998,54 +21917,21 @@ function Modal({ children, onClose, className, }) {
|
|
|
21998
21917
|
}
|
|
21999
21918
|
|
|
22000
21919
|
/**
|
|
22001
|
-
*
|
|
22002
|
-
*
|
|
22003
|
-
* Used for "Adam" agent which is built in as default ancestor for new agents and other well known agents
|
|
22004
|
-
*
|
|
22005
|
-
* @public exported from `@promptbook/core`
|
|
22006
|
-
*/
|
|
22007
|
-
const CORE_AGENTS_SERVER = {
|
|
22008
|
-
title: 'Promptbook Core',
|
|
22009
|
-
description: `Core Promptbook server used for Adam agent which is built in as default ancestor for new agents and other well known agents.`,
|
|
22010
|
-
owner: PROMPTBOOK_LEGAL_ENTITY,
|
|
22011
|
-
url: 'https://core.ptbk.io/',
|
|
22012
|
-
};
|
|
22013
|
-
// <- TODO: [🆎] Allow to override (set) well-known agent names via Metadata
|
|
22014
|
-
/**
|
|
22015
|
-
* Available agents servers for the Promptbook
|
|
21920
|
+
* Detects if the code is running in a browser environment in main thread (Not in a web worker)
|
|
22016
21921
|
*
|
|
22017
|
-
*
|
|
21922
|
+
* Note: `$` is used to indicate that this function is not a pure function - it looks at the global object to determine the environment
|
|
22018
21923
|
*
|
|
22019
|
-
* @public exported from `@promptbook/
|
|
21924
|
+
* @public exported from `@promptbook/utils`
|
|
22020
21925
|
*/
|
|
22021
|
-
|
|
22022
|
-
|
|
22023
|
-
|
|
22024
|
-
|
|
22025
|
-
|
|
22026
|
-
|
|
22027
|
-
|
|
22028
|
-
|
|
22029
|
-
|
|
22030
|
-
title: 'Promptbook Testing server 6',
|
|
22031
|
-
description: `General-purpose testing server.`,
|
|
22032
|
-
owner: PROMPTBOOK_LEGAL_ENTITY,
|
|
22033
|
-
url: 'https://s6.ptbk.io/',
|
|
22034
|
-
},
|
|
22035
|
-
{
|
|
22036
|
-
title: 'Promptbook Testing server 7',
|
|
22037
|
-
description: `General-purpose testing server.`,
|
|
22038
|
-
owner: PROMPTBOOK_LEGAL_ENTITY,
|
|
22039
|
-
url: 'https://s7.ptbk.io/',
|
|
22040
|
-
},
|
|
22041
|
-
{
|
|
22042
|
-
title: 'Promptbook Testing server 8',
|
|
22043
|
-
description: `General-purpose testing server.`,
|
|
22044
|
-
owner: PROMPTBOOK_LEGAL_ENTITY,
|
|
22045
|
-
url: 'https://s8.ptbk.io/',
|
|
22046
|
-
},
|
|
22047
|
-
];
|
|
22048
|
-
// Note: [💞] Ignore a discrepancy between file name and entity name
|
|
21926
|
+
function $isRunningInBrowser() {
|
|
21927
|
+
try {
|
|
21928
|
+
return typeof window !== 'undefined' && typeof window.document !== 'undefined';
|
|
21929
|
+
}
|
|
21930
|
+
catch (e) {
|
|
21931
|
+
return false;
|
|
21932
|
+
}
|
|
21933
|
+
}
|
|
21934
|
+
// TODO: [🎺]
|
|
22049
21935
|
|
|
22050
21936
|
/**
|
|
22051
21937
|
* Detects if the code is running in jest environment
|
|
@@ -22135,9 +22021,32 @@ function BookEditorAboutPromptbookInformation(props = {}) {
|
|
|
22135
22021
|
...$detectRuntimeEnvironment(),
|
|
22136
22022
|
isCostPrevented: IS_COST_PREVENTED,
|
|
22137
22023
|
};
|
|
22138
|
-
return (jsxs("div", { className: styles$d.aboutPromptbookInformation, children: [jsx("h1", { children: NAME }), jsx("p", { children: CLAIM }), jsxs("ul", { children: [jsx("li", { children: jsxs("a", { href: "https://github.com/webgptorg/promptbook", target: "_blank", rel: "noopener noreferrer", children: ["Promptbook engine version ", jsx("code", { children: PROMPTBOOK_ENGINE_VERSION })] }) }), jsx("li", { children: jsxs("a", { href: "https://github.com/webgptorg/book", target: "_blank", rel: "noopener noreferrer", children: ["Book language version ", jsx("code", { children: BOOK_LANGUAGE_VERSION })] }) })] }), isServersInfoIncluded && (jsxs(Fragment, { children: [jsx("h2", { children: "Servers" }), jsx("ol", { children: PUBLIC_AGENTS_SERVERS.map(({ title, description, url }) => (jsxs("li", { children: [jsx("strong", { children: title }), " ", description, ' ', jsx("a", { href: url, target: "_blank", rel: "noopener noreferrer", children: url })] }, url))) })] })), isRuntimeEnvironmentInfoIncluded && (jsxs(Fragment, { children: [jsx("h2", { children: "Environment" }), jsx("ul", { children: Object.entries(runtimeEnvironmentInfo).map(([key, value]) => (jsxs("li", { children: [jsxs("strong", { children: [key, ":"] }), " ",
|
|
22024
|
+
return (jsxs("div", { className: styles$d.aboutPromptbookInformation, children: [jsx("h1", { children: NAME }), jsx("p", { children: CLAIM }), jsxs("ul", { children: [jsx("li", { children: jsxs("a", { href: "https://github.com/webgptorg/promptbook", target: "_blank", rel: "noopener noreferrer", children: ["Promptbook engine version ", jsx("code", { children: PROMPTBOOK_ENGINE_VERSION })] }) }), jsx("li", { children: jsxs("a", { href: "https://github.com/webgptorg/book", target: "_blank", rel: "noopener noreferrer", children: ["Book language version ", jsx("code", { children: BOOK_LANGUAGE_VERSION })] }) })] }), isServersInfoIncluded && (jsxs(Fragment, { children: [jsx("h2", { children: "Servers" }), jsx("ol", { children: PUBLIC_AGENTS_SERVERS.map(({ title, description, url }) => (jsxs("li", { children: [jsx("strong", { children: title }), " ", description, ' ', jsx("a", { href: url, target: "_blank", rel: "noopener noreferrer", children: url })] }, url))) })] })), isRuntimeEnvironmentInfoIncluded && (jsxs(Fragment, { children: [jsx("h2", { children: "Environment" }), jsx("ul", { children: Object.entries(runtimeEnvironmentInfo).map(([key, value]) => (jsxs("li", { children: [jsxs("strong", { children: [key, ":"] }), " ", String(value)] }, key))) })] }))] }));
|
|
22139
22025
|
}
|
|
22140
22026
|
|
|
22027
|
+
function induceBookDownloadInBrowser(book) {
|
|
22028
|
+
const filename = `${normalizeBookDownloadName(extractBookTitle(book) || 'AI Avatar')}.book`;
|
|
22029
|
+
const objectUrl = URL.createObjectURL(new Blob([book], { type: 'application/json' }));
|
|
22030
|
+
const link = window.document.createElement('a');
|
|
22031
|
+
link.href = objectUrl;
|
|
22032
|
+
link.download = filename;
|
|
22033
|
+
link.click();
|
|
22034
|
+
URL.revokeObjectURL(objectUrl);
|
|
22035
|
+
}
|
|
22036
|
+
function extractBookTitle(book) {
|
|
22037
|
+
return (book
|
|
22038
|
+
.split(/\r?\n/)
|
|
22039
|
+
.map((line) => line.trim())
|
|
22040
|
+
.find(Boolean) || null);
|
|
22041
|
+
}
|
|
22042
|
+
function normalizeBookDownloadName(value) {
|
|
22043
|
+
return (value
|
|
22044
|
+
.normalize('NFD')
|
|
22045
|
+
.replace(/[\u0300-\u036f]/g, '')
|
|
22046
|
+
.replace(/[^\dA-Za-z]+/g, '-')
|
|
22047
|
+
.replace(/^-+|-+$/g, '')
|
|
22048
|
+
.toLowerCase() || 'ai-avatar');
|
|
22049
|
+
}
|
|
22141
22050
|
/**
|
|
22142
22051
|
* Handles book editor actionbar.
|
|
22143
22052
|
*
|
|
@@ -22154,7 +22063,7 @@ function BookEditorActionbar(props) {
|
|
|
22154
22063
|
}, [value]);
|
|
22155
22064
|
const handleDownload = useCallback(() => {
|
|
22156
22065
|
const book = validateBook(valueRef.current || DEFAULT_BOOK);
|
|
22157
|
-
|
|
22066
|
+
induceBookDownloadInBrowser(book);
|
|
22158
22067
|
}, []);
|
|
22159
22068
|
const actions = useMemo(() => {
|
|
22160
22069
|
const _actions = [...(hoistedMenuItems || [])];
|
|
@@ -22269,144 +22178,15 @@ function resolveBookEditorRenderTheme(hostTheme = BOOK_EDITOR_RENDER_THEME) {
|
|
|
22269
22178
|
}
|
|
22270
22179
|
|
|
22271
22180
|
/**
|
|
22272
|
-
*
|
|
22181
|
+
* Browser-compatible stub for `createDeprecatedCommitmentDiagnostics`.
|
|
22273
22182
|
*
|
|
22274
|
-
*
|
|
22275
|
-
*
|
|
22276
|
-
*
|
|
22277
|
-
* @public exported from `@promptbook/core`
|
|
22278
|
-
*/
|
|
22279
|
-
function getCommitmentDefinition(type) {
|
|
22280
|
-
return COMMITMENT_REGISTRY.find((commitmentDefinition) => commitmentDefinition.type === type) || null;
|
|
22281
|
-
}
|
|
22282
|
-
|
|
22283
|
-
/**
|
|
22284
|
-
* Warning message used for unfinished commitments.
|
|
22285
|
-
*/
|
|
22286
|
-
const UNFINISHED_COMMITMENT_MESSAGE = 'This commitment is unfinished and not ready to use. Be careful when using it.';
|
|
22287
|
-
/**
|
|
22288
|
-
* Low-level warning message used for low-level commitments.
|
|
22289
|
-
*/
|
|
22290
|
-
const LOW_LEVEL_COMMITMENT_MESSAGE = 'This commitment is low-level and not used by most of the users. Be careful when using it.';
|
|
22291
|
-
/**
|
|
22292
|
-
* Short badge text used for deprecated commitments.
|
|
22293
|
-
*/
|
|
22294
|
-
const DEPRECATED_COMMITMENT_BADGE_LABEL = 'Deprecated';
|
|
22295
|
-
/**
|
|
22296
|
-
* Short badge text used for unfinished and low-level commitments.
|
|
22297
|
-
*/
|
|
22298
|
-
const LOW_LEVEL_COMMITMENT_BADGE_LABEL = 'Low-level';
|
|
22299
|
-
/**
|
|
22300
|
-
* Longer label used for deprecated commitments.
|
|
22301
|
-
*/
|
|
22302
|
-
const DEPRECATED_COMMITMENT_DETAIL_LABEL = 'Deprecated commitment';
|
|
22303
|
-
/**
|
|
22304
|
-
* Longer label used for unfinished and low-level commitments.
|
|
22305
|
-
*/
|
|
22306
|
-
const LOW_LEVEL_COMMITMENT_DETAIL_LABEL = 'Low-level commitment';
|
|
22307
|
-
/**
|
|
22308
|
-
* Prefix used when formatting replacement guidance.
|
|
22309
|
-
*/
|
|
22310
|
-
const PREFERRED_REPLACEMENT_LABEL = 'Preferred replacement';
|
|
22311
|
-
/**
|
|
22312
|
-
* Formats preferred replacement guidance for deprecated commitments.
|
|
22313
|
-
*
|
|
22314
|
-
* @param replacedBy - Preferred replacement commitment keywords.
|
|
22315
|
-
* @returns Optional replacement guidance sentence with leading space.
|
|
22316
|
-
*
|
|
22317
|
-
* @private internal utility of commitment catalog notices
|
|
22318
|
-
*/
|
|
22319
|
-
function formatCommitmentReplacementText(replacedBy) {
|
|
22320
|
-
if (!replacedBy || replacedBy.length === 0) {
|
|
22321
|
-
return '';
|
|
22322
|
-
}
|
|
22323
|
-
return ` ${PREFERRED_REPLACEMENT_LABEL}: ${replacedBy.map((type) => `\`${type}\``).join(', ')}.`;
|
|
22324
|
-
}
|
|
22325
|
-
/**
|
|
22326
|
-
* Resolves the notice metadata for deprecated, unfinished, or low-level commitments.
|
|
22327
|
-
*
|
|
22328
|
-
* @param definition - Commitment definition to inspect.
|
|
22329
|
-
* @returns Notice metadata when the commitment should be surfaced with caution.
|
|
22330
|
-
*
|
|
22331
|
-
* @private internal utility of commitment catalog notices
|
|
22332
|
-
*/
|
|
22333
|
-
function getCommitmentNoticeMetadata(definition) {
|
|
22334
|
-
if (definition.isUnfinished) {
|
|
22335
|
-
return {
|
|
22336
|
-
kind: 'unfinished',
|
|
22337
|
-
badgeLabel: LOW_LEVEL_COMMITMENT_BADGE_LABEL,
|
|
22338
|
-
detailLabel: LOW_LEVEL_COMMITMENT_DETAIL_LABEL,
|
|
22339
|
-
message: UNFINISHED_COMMITMENT_MESSAGE,
|
|
22340
|
-
};
|
|
22341
|
-
}
|
|
22342
|
-
if (definition.isLowLevel) {
|
|
22343
|
-
return {
|
|
22344
|
-
kind: 'lowLevel',
|
|
22345
|
-
badgeLabel: LOW_LEVEL_COMMITMENT_BADGE_LABEL,
|
|
22346
|
-
detailLabel: LOW_LEVEL_COMMITMENT_DETAIL_LABEL,
|
|
22347
|
-
message: LOW_LEVEL_COMMITMENT_MESSAGE,
|
|
22348
|
-
};
|
|
22349
|
-
}
|
|
22350
|
-
if (definition.deprecation) {
|
|
22351
|
-
return {
|
|
22352
|
-
kind: 'deprecated',
|
|
22353
|
-
badgeLabel: DEPRECATED_COMMITMENT_BADGE_LABEL,
|
|
22354
|
-
detailLabel: DEPRECATED_COMMITMENT_DETAIL_LABEL,
|
|
22355
|
-
message: definition.deprecation.message,
|
|
22356
|
-
};
|
|
22357
|
-
}
|
|
22358
|
-
return null;
|
|
22359
|
-
}
|
|
22360
|
-
|
|
22361
|
-
/**
|
|
22362
|
-
* Creates Book editor diagnostics for deprecated, unfinished, and low-level commitment keywords.
|
|
22363
|
-
*
|
|
22364
|
-
* The notice metadata is UI-only. This helper surfaces it in Monaco so legacy,
|
|
22365
|
-
* unfinished, and low-level commitments remain functional while still guiding
|
|
22366
|
-
* authors toward preferred replacements or cautioning them about low-level
|
|
22367
|
-
* usage.
|
|
22368
|
-
*
|
|
22369
|
-
* @param agentSource - Current editor content.
|
|
22370
|
-
* @returns Warning markers for deprecated, unfinished, and low-level commitment keywords.
|
|
22183
|
+
* In the browser build the full Node.js implementation is not available,
|
|
22184
|
+
* so this stub always returns an empty array to keep the editor functional.
|
|
22371
22185
|
*
|
|
22372
22186
|
* @private internal utility of `BookEditorMonaco`
|
|
22373
22187
|
*/
|
|
22374
|
-
function createDeprecatedCommitmentDiagnostics(
|
|
22375
|
-
|
|
22376
|
-
if (!(agentSource === null || agentSource === void 0 ? void 0 : agentSource.trim())) {
|
|
22377
|
-
return [];
|
|
22378
|
-
}
|
|
22379
|
-
const parsed = parseAgentSourceWithCommitments(agentSource);
|
|
22380
|
-
const diagnostics = [];
|
|
22381
|
-
for (const commitment of parsed.commitments) {
|
|
22382
|
-
const definition = getCommitmentDefinition(commitment.type);
|
|
22383
|
-
const notice = definition ? getCommitmentNoticeMetadata(definition) : null;
|
|
22384
|
-
if (!definition || !notice) {
|
|
22385
|
-
continue;
|
|
22386
|
-
}
|
|
22387
|
-
const typeMatch = definition.createTypeRegex().exec(commitment.originalLine);
|
|
22388
|
-
if (!((_a = typeMatch === null || typeMatch === void 0 ? void 0 : typeMatch.groups) === null || _a === void 0 ? void 0 : _a.type)) {
|
|
22389
|
-
continue;
|
|
22390
|
-
}
|
|
22391
|
-
const matchedType = typeMatch.groups.type;
|
|
22392
|
-
const leadingCharactersCount = typeMatch[0].length - matchedType.length;
|
|
22393
|
-
const startColumn = leadingCharactersCount + 1;
|
|
22394
|
-
const endColumn = startColumn + matchedType.length;
|
|
22395
|
-
// Keep the diagnostic sentence compact while reusing the shared notice copy.
|
|
22396
|
-
const message = notice.kind === 'deprecated'
|
|
22397
|
-
? `\`${commitment.type}\` is deprecated. ${notice.message}`
|
|
22398
|
-
: `\`${commitment.type}\` is ${notice.message.replace(/^This commitment is\s+/u, '')}`;
|
|
22399
|
-
diagnostics.push({
|
|
22400
|
-
startLineNumber: commitment.lineNumber,
|
|
22401
|
-
startColumn,
|
|
22402
|
-
endLineNumber: commitment.lineNumber,
|
|
22403
|
-
endColumn,
|
|
22404
|
-
message,
|
|
22405
|
-
source: 'Promptbook',
|
|
22406
|
-
severity: 'warning',
|
|
22407
|
-
});
|
|
22408
|
-
}
|
|
22409
|
-
return diagnostics;
|
|
22188
|
+
function createDeprecatedCommitmentDiagnostics(_agentSource) {
|
|
22189
|
+
return [];
|
|
22410
22190
|
}
|
|
22411
22191
|
|
|
22412
22192
|
/**
|
|
@@ -22765,103 +22545,6 @@ function useBookEditorMonacoInteractions({ editor, handleFiles, }) {
|
|
|
22765
22545
|
};
|
|
22766
22546
|
}
|
|
22767
22547
|
|
|
22768
|
-
/**
|
|
22769
|
-
* Priority order for the important commitments shown first in catalogues and intellisense.
|
|
22770
|
-
*
|
|
22771
|
-
* Canonical singular names stay ahead of their plural aliases so the most important
|
|
22772
|
-
* commitments remain easy to scan.
|
|
22773
|
-
*
|
|
22774
|
-
* @private internal constant of commitment catalog sorting
|
|
22775
|
-
*/
|
|
22776
|
-
const IMPORTANT_COMMITMENT_TYPE_SORT_ORDER = new Map([
|
|
22777
|
-
['GOAL', 0],
|
|
22778
|
-
['RULE', 1],
|
|
22779
|
-
['KNOWLEDGE', 2],
|
|
22780
|
-
['TEAM', 3],
|
|
22781
|
-
['GOALS', 4],
|
|
22782
|
-
['RULES', 5],
|
|
22783
|
-
]);
|
|
22784
|
-
/**
|
|
22785
|
-
* Sort rank used when unfinished, low-level, and deprecated commitments should be grouped last.
|
|
22786
|
-
*
|
|
22787
|
-
* @private internal constant of commitment catalog sorting
|
|
22788
|
-
*/
|
|
22789
|
-
const COMMITMENT_STATUS_SORT_ORDER = {
|
|
22790
|
-
normal: 0,
|
|
22791
|
-
deprecated: 1,
|
|
22792
|
-
unfinished: 2,
|
|
22793
|
-
lowLevel: 3,
|
|
22794
|
-
};
|
|
22795
|
-
/**
|
|
22796
|
-
* Resolves the relative sort rank of one commitment status.
|
|
22797
|
-
*
|
|
22798
|
-
* @param definition - Commitment definition to rank.
|
|
22799
|
-
* @param options - Sorting options.
|
|
22800
|
-
* @returns Relative sort rank for the definition.
|
|
22801
|
-
*
|
|
22802
|
-
* @private internal helper of commitment catalog sorting
|
|
22803
|
-
*/
|
|
22804
|
-
function resolveCommitmentStatusSortRank(definition, options) {
|
|
22805
|
-
let statusSortRank = COMMITMENT_STATUS_SORT_ORDER.normal;
|
|
22806
|
-
if (options.isDeprecatedLast && definition.deprecation) {
|
|
22807
|
-
statusSortRank = Math.max(statusSortRank, COMMITMENT_STATUS_SORT_ORDER.deprecated);
|
|
22808
|
-
}
|
|
22809
|
-
if (options.isUnfinishedLast && definition.isUnfinished) {
|
|
22810
|
-
statusSortRank = Math.max(statusSortRank, COMMITMENT_STATUS_SORT_ORDER.unfinished);
|
|
22811
|
-
}
|
|
22812
|
-
if (options.isLowLevelLast && definition.isLowLevel) {
|
|
22813
|
-
statusSortRank = Math.max(statusSortRank, COMMITMENT_STATUS_SORT_ORDER.lowLevel);
|
|
22814
|
-
}
|
|
22815
|
-
return statusSortRank;
|
|
22816
|
-
}
|
|
22817
|
-
/**
|
|
22818
|
-
* Sorts commitment definitions so the important ones stay at the top.
|
|
22819
|
-
*
|
|
22820
|
-
* @param commitmentDefinitions - Definitions to sort.
|
|
22821
|
-
* @param options - Sorting options.
|
|
22822
|
-
* @returns Sorted commitment definitions.
|
|
22823
|
-
*
|
|
22824
|
-
* @private internal helper of commitment catalog sorting
|
|
22825
|
-
*/
|
|
22826
|
-
function sortCommitmentDefinitions(commitmentDefinitions, options = {}) {
|
|
22827
|
-
return [...commitmentDefinitions]
|
|
22828
|
-
.map((definition, index) => ({
|
|
22829
|
-
definition,
|
|
22830
|
-
index,
|
|
22831
|
-
}))
|
|
22832
|
-
.sort((left, right) => {
|
|
22833
|
-
var _a, _b;
|
|
22834
|
-
if (left.definition.isImportant !== right.definition.isImportant) {
|
|
22835
|
-
return left.definition.isImportant ? -1 : 1;
|
|
22836
|
-
}
|
|
22837
|
-
if (left.definition.isImportant && right.definition.isImportant) {
|
|
22838
|
-
const leftPriority = (_a = IMPORTANT_COMMITMENT_TYPE_SORT_ORDER.get(left.definition.type)) !== null && _a !== void 0 ? _a : Number.MAX_SAFE_INTEGER;
|
|
22839
|
-
const rightPriority = (_b = IMPORTANT_COMMITMENT_TYPE_SORT_ORDER.get(right.definition.type)) !== null && _b !== void 0 ? _b : Number.MAX_SAFE_INTEGER;
|
|
22840
|
-
if (leftPriority !== rightPriority) {
|
|
22841
|
-
return leftPriority - rightPriority;
|
|
22842
|
-
}
|
|
22843
|
-
}
|
|
22844
|
-
const leftStatusSortRank = resolveCommitmentStatusSortRank(left.definition, options);
|
|
22845
|
-
const rightStatusSortRank = resolveCommitmentStatusSortRank(right.definition, options);
|
|
22846
|
-
if (leftStatusSortRank !== rightStatusSortRank) {
|
|
22847
|
-
return leftStatusSortRank - rightStatusSortRank;
|
|
22848
|
-
}
|
|
22849
|
-
return left.index - right.index;
|
|
22850
|
-
})
|
|
22851
|
-
.map(({ definition }) => definition);
|
|
22852
|
-
}
|
|
22853
|
-
|
|
22854
|
-
/**
|
|
22855
|
-
* Gets all available commitment definitions
|
|
22856
|
-
*
|
|
22857
|
-
* @returns Array of all commitment definitions
|
|
22858
|
-
*
|
|
22859
|
-
* @public exported from `@promptbook/core`
|
|
22860
|
-
*/
|
|
22861
|
-
function getAllCommitmentDefinitions() {
|
|
22862
|
-
return $deepFreeze(sortCommitmentDefinitions(COMMITMENT_REGISTRY, { isUnfinishedLast: true, isLowLevelLast: true }));
|
|
22863
|
-
}
|
|
22864
|
-
|
|
22865
22548
|
/**
|
|
22866
22549
|
* Regex source for absolute URL references inside TEAM/FROM/IMPORT commitments.
|
|
22867
22550
|
*
|
|
@@ -22885,12 +22568,38 @@ const AGENT_REFERENCE_BRACED_PATTERN = '\\{[^{}\\r\\n]+\\}';
|
|
|
22885
22568
|
*
|
|
22886
22569
|
* @private function of BookEditorMonaco
|
|
22887
22570
|
*/
|
|
22888
|
-
const AGENT_REFERENCE_COMMITMENT_TYPES =
|
|
22571
|
+
const AGENT_REFERENCE_COMMITMENT_TYPES = ['FROM', 'IMPORT', 'IMPORTS', 'TEAM'];
|
|
22572
|
+
/**
|
|
22573
|
+
* Commitment types known to the browser editor tokenizer.
|
|
22574
|
+
*
|
|
22575
|
+
* @private function of BookEditorMonaco
|
|
22576
|
+
*/
|
|
22577
|
+
const BOOK_EDITOR_COMMITMENT_TYPES = [
|
|
22578
|
+
'PERSONA',
|
|
22579
|
+
'KNOWLEDGE',
|
|
22580
|
+
'TASK',
|
|
22581
|
+
'PROMPT',
|
|
22582
|
+
'EXPECT',
|
|
22583
|
+
'FORMAT',
|
|
22584
|
+
'MODEL',
|
|
22585
|
+
'SAMPLE',
|
|
22889
22586
|
'FROM',
|
|
22890
22587
|
'IMPORT',
|
|
22891
22588
|
'IMPORTS',
|
|
22892
22589
|
'TEAM',
|
|
22893
|
-
|
|
22590
|
+
'TODO',
|
|
22591
|
+
'NOTE',
|
|
22592
|
+
'NOTES',
|
|
22593
|
+
'NONCE',
|
|
22594
|
+
];
|
|
22595
|
+
/**
|
|
22596
|
+
* Regex pattern to match horizontal lines.
|
|
22597
|
+
*
|
|
22598
|
+
* @private function of BookEditorMonaco
|
|
22599
|
+
*/
|
|
22600
|
+
const HORIZONTAL_LINE_PATTERN$1 = /^[\s]*[-_*][\s]*[-_*][\s]*[-_*][\s]*[-_*]*[\s]*$/;
|
|
22601
|
+
const BOOK_EDITOR_COMMITMENT_LINE_REGEX = createCommitmentLineRegex(BOOK_EDITOR_COMMITMENT_TYPES);
|
|
22602
|
+
const AGENT_REFERENCE_COMMITMENT_LINE_REGEX = createCommitmentLineRegex(AGENT_REFERENCE_COMMITMENT_TYPES);
|
|
22894
22603
|
/**
|
|
22895
22604
|
* Agent reference helpers for `BookEditorMonaco`.
|
|
22896
22605
|
*
|
|
@@ -23045,26 +22754,60 @@ function collectLineStartOffsets(content, sourceLines) {
|
|
|
23045
22754
|
* @private function of BookEditorMonaco
|
|
23046
22755
|
*/
|
|
23047
22756
|
function collectAgentReferenceCommitmentLineRanges(content, sourceLines) {
|
|
23048
|
-
var _a, _b;
|
|
23049
|
-
const parsed = parseAgentSourceWithCommitments(content);
|
|
23050
22757
|
const ranges = [];
|
|
23051
|
-
|
|
23052
|
-
|
|
23053
|
-
|
|
22758
|
+
let activeRangeStartLineNumber = null;
|
|
22759
|
+
let isInsideCodeBlock = false;
|
|
22760
|
+
const startLineIndex = findBookBodyStartLineIndex(sourceLines);
|
|
22761
|
+
for (let lineIndex = startLineIndex; lineIndex < sourceLines.length; lineIndex++) {
|
|
22762
|
+
const line = sourceLines[lineIndex] || '';
|
|
22763
|
+
const trimmedLine = line.trim();
|
|
22764
|
+
if (trimmedLine.startsWith('```')) {
|
|
22765
|
+
isInsideCodeBlock = !isInsideCodeBlock;
|
|
22766
|
+
continue;
|
|
22767
|
+
}
|
|
22768
|
+
if (isInsideCodeBlock) {
|
|
22769
|
+
continue;
|
|
22770
|
+
}
|
|
22771
|
+
if (HORIZONTAL_LINE_PATTERN$1.test(line)) {
|
|
22772
|
+
if (activeRangeStartLineNumber !== null) {
|
|
22773
|
+
ranges.push({
|
|
22774
|
+
startLineNumber: activeRangeStartLineNumber,
|
|
22775
|
+
endLineNumber: lineIndex,
|
|
22776
|
+
});
|
|
22777
|
+
activeRangeStartLineNumber = null;
|
|
22778
|
+
}
|
|
23054
22779
|
continue;
|
|
23055
22780
|
}
|
|
23056
|
-
|
|
23057
|
-
const endLineNumber = Math.min(nextCommitmentStartLine - 1, sourceLines.length);
|
|
23058
|
-
if (commitment.lineNumber > endLineNumber) {
|
|
22781
|
+
if (!BOOK_EDITOR_COMMITMENT_LINE_REGEX.test(trimmedLine)) {
|
|
23059
22782
|
continue;
|
|
23060
22783
|
}
|
|
22784
|
+
if (activeRangeStartLineNumber !== null) {
|
|
22785
|
+
ranges.push({
|
|
22786
|
+
startLineNumber: activeRangeStartLineNumber,
|
|
22787
|
+
endLineNumber: lineIndex,
|
|
22788
|
+
});
|
|
22789
|
+
}
|
|
22790
|
+
activeRangeStartLineNumber = AGENT_REFERENCE_COMMITMENT_LINE_REGEX.test(trimmedLine) ? lineIndex + 1 : null;
|
|
22791
|
+
}
|
|
22792
|
+
if (activeRangeStartLineNumber !== null) {
|
|
23061
22793
|
ranges.push({
|
|
23062
|
-
startLineNumber:
|
|
23063
|
-
endLineNumber,
|
|
22794
|
+
startLineNumber: activeRangeStartLineNumber,
|
|
22795
|
+
endLineNumber: sourceLines.length,
|
|
23064
22796
|
});
|
|
23065
22797
|
}
|
|
23066
22798
|
return ranges;
|
|
23067
22799
|
}
|
|
22800
|
+
function createCommitmentLineRegex(commitmentTypes) {
|
|
22801
|
+
const commitmentPattern = [...commitmentTypes]
|
|
22802
|
+
.sort((a, b) => b.length - a.length)
|
|
22803
|
+
.map((type) => type.replace(/\s+/, '\\s+'))
|
|
22804
|
+
.join('|');
|
|
22805
|
+
return new RegExp(`^\\s*(${commitmentPattern})(?=\\s|$)`, 'i');
|
|
22806
|
+
}
|
|
22807
|
+
function findBookBodyStartLineIndex(sourceLines) {
|
|
22808
|
+
const titleLineIndex = sourceLines.findIndex((line) => line.trim().length > 0);
|
|
22809
|
+
return titleLineIndex === -1 ? 0 : titleLineIndex + 1;
|
|
22810
|
+
}
|
|
23068
22811
|
/**
|
|
23069
22812
|
* Agent reference helpers for `BookEditorMonaco`.
|
|
23070
22813
|
*
|
|
@@ -23292,19 +23035,26 @@ function ensureBookEditorMonacoLanguage(monaco, theme = BOOK_EDITOR_RENDER_THEME
|
|
|
23292
23035
|
monacoWithLanguageState[BOOK_EDITOR_LANGUAGE_INITIALIZED_FLAG] = true;
|
|
23293
23036
|
monacoWithLanguageState[BOOK_EDITOR_THEME_MODE_FLAG] = renderedTheme;
|
|
23294
23037
|
monaco.languages.register({ id: BookEditorMonacoConstants.BOOK_LANGUAGE_ID });
|
|
23295
|
-
const
|
|
23296
|
-
|
|
23297
|
-
|
|
23298
|
-
|
|
23299
|
-
|
|
23300
|
-
|
|
23301
|
-
|
|
23302
|
-
|
|
23303
|
-
|
|
23304
|
-
|
|
23305
|
-
|
|
23306
|
-
|
|
23307
|
-
|
|
23038
|
+
const commitmentTypes = [
|
|
23039
|
+
'GOAL',
|
|
23040
|
+
'RULE',
|
|
23041
|
+
'PERSONA',
|
|
23042
|
+
'KNOWLEDGE',
|
|
23043
|
+
'TASK',
|
|
23044
|
+
'PROMPT',
|
|
23045
|
+
'EXPECT',
|
|
23046
|
+
'FORMAT',
|
|
23047
|
+
'MODEL',
|
|
23048
|
+
'SAMPLE',
|
|
23049
|
+
'FROM',
|
|
23050
|
+
'IMPORT',
|
|
23051
|
+
'IMPORTS',
|
|
23052
|
+
'TEAM',
|
|
23053
|
+
...TODO_COMMITMENT_TYPES,
|
|
23054
|
+
...NOTE_COMMITMENT_TYPES,
|
|
23055
|
+
'REMOVE',
|
|
23056
|
+
];
|
|
23057
|
+
const completionCommitmentTypes = [...commitmentTypes];
|
|
23308
23058
|
const noteLikeCommitmentTypeSet = new Set([...TODO_COMMITMENT_TYPES, ...NOTE_COMMITMENT_TYPES]);
|
|
23309
23059
|
const noteLikeCommitmentStates = createNoteLikeCommitmentStates(commitmentTypes);
|
|
23310
23060
|
const executableCommitmentTypes = commitmentTypes.filter((type) => !noteLikeCommitmentTypeSet.has(type.toUpperCase()));
|
|
@@ -23361,27 +23111,17 @@ function ensureBookEditorMonacoLanguage(monaco, theme = BOOK_EDITOR_RENDER_THEME
|
|
|
23361
23111
|
startColumn: word.startColumn,
|
|
23362
23112
|
endColumn: word.endColumn,
|
|
23363
23113
|
};
|
|
23364
|
-
const suggestions = completionCommitmentTypes.map((type, index) => {
|
|
23365
|
-
|
|
23366
|
-
|
|
23367
|
-
|
|
23368
|
-
|
|
23369
|
-
|
|
23370
|
-
|
|
23371
|
-
|
|
23372
|
-
:
|
|
23373
|
-
|
|
23374
|
-
|
|
23375
|
-
kind: monaco.languages.CompletionItemKind.Keyword,
|
|
23376
|
-
insertText: type,
|
|
23377
|
-
range,
|
|
23378
|
-
sortText: index.toString().padStart(4, '0'),
|
|
23379
|
-
detail: (notice === null || notice === void 0 ? void 0 : notice.detailLabel) || 'Commitment',
|
|
23380
|
-
documentation: {
|
|
23381
|
-
value: completionDocumentation,
|
|
23382
|
-
},
|
|
23383
|
-
};
|
|
23384
|
-
});
|
|
23114
|
+
const suggestions = completionCommitmentTypes.map((type, index) => ({
|
|
23115
|
+
label: type,
|
|
23116
|
+
kind: monaco.languages.CompletionItemKind.Keyword,
|
|
23117
|
+
insertText: type,
|
|
23118
|
+
range,
|
|
23119
|
+
sortText: index.toString().padStart(4, '0'),
|
|
23120
|
+
detail: 'Commitment',
|
|
23121
|
+
documentation: {
|
|
23122
|
+
value: 'Book commitment',
|
|
23123
|
+
},
|
|
23124
|
+
}));
|
|
23385
23125
|
return { suggestions };
|
|
23386
23126
|
},
|
|
23387
23127
|
});
|
|
@@ -24667,7 +24407,7 @@ function BookEditorMonaco(props) {
|
|
|
24667
24407
|
editor,
|
|
24668
24408
|
handleFiles,
|
|
24669
24409
|
});
|
|
24670
|
-
const combinedDiagnostics = [...(diagnostics || []), ...createDeprecatedCommitmentDiagnostics(
|
|
24410
|
+
const combinedDiagnostics = [...(diagnostics || []), ...createDeprecatedCommitmentDiagnostics()];
|
|
24671
24411
|
const isActionBarVisible = isBookEditorMonacoActionbarVisible({
|
|
24672
24412
|
hoistedMenuItems,
|
|
24673
24413
|
isUploadButtonShown,
|
|
@@ -24761,6 +24501,36 @@ function BookEditor(props) {
|
|
|
24761
24501
|
return isFullscreen && typeof document !== 'undefined' ? createPortal(editorContent, document.body) : editorContent;
|
|
24762
24502
|
}
|
|
24763
24503
|
|
|
24504
|
+
var BookEditor$1 = /*#__PURE__*/Object.freeze({
|
|
24505
|
+
__proto__: null,
|
|
24506
|
+
DEFAULT_BOOK_EDITOR_HEIGHT: DEFAULT_BOOK_EDITOR_HEIGHT,
|
|
24507
|
+
BookEditor: BookEditor
|
|
24508
|
+
});
|
|
24509
|
+
|
|
24510
|
+
/**
|
|
24511
|
+
* Renders a book editor
|
|
24512
|
+
*
|
|
24513
|
+
* @public exported from `@promptbook/components`
|
|
24514
|
+
*/
|
|
24515
|
+
function BookEditorForClient(props) {
|
|
24516
|
+
const [BookEditorComponent, setBookEditorComponent] = useState(null);
|
|
24517
|
+
useEffect(() => {
|
|
24518
|
+
let isCancelled = false;
|
|
24519
|
+
void Promise.resolve().then(function () { return BookEditor$1; }).then(({ BookEditor }) => {
|
|
24520
|
+
if (!isCancelled) {
|
|
24521
|
+
setBookEditorComponent(() => BookEditor);
|
|
24522
|
+
}
|
|
24523
|
+
});
|
|
24524
|
+
return () => {
|
|
24525
|
+
isCancelled = true;
|
|
24526
|
+
};
|
|
24527
|
+
}, []);
|
|
24528
|
+
if (!BookEditorComponent) {
|
|
24529
|
+
return jsx("div", { style: { minHeight: 260 } });
|
|
24530
|
+
}
|
|
24531
|
+
return jsx(BookEditorComponent, { ...props });
|
|
24532
|
+
}
|
|
24533
|
+
|
|
24764
24534
|
/**
|
|
24765
24535
|
* Restricts an Updatable to a (2) BehaviorSubject variant
|
|
24766
24536
|
*
|
|
@@ -26515,7 +26285,7 @@ function normalizeMarkdownSublists(markdown) {
|
|
|
26515
26285
|
function createChatMarkdownConverter(options) {
|
|
26516
26286
|
var _a;
|
|
26517
26287
|
const citationReferenceClassName = (_a = options === null || options === void 0 ? void 0 : options.citationReferenceClassName) !== null && _a !== void 0 ? _a : DEFAULT_CITATION_REFERENCE_CLASS_NAME;
|
|
26518
|
-
return new Converter({
|
|
26288
|
+
return new showdown.Converter({
|
|
26519
26289
|
flavor: 'github',
|
|
26520
26290
|
tables: true,
|
|
26521
26291
|
strikethrough: true,
|
|
@@ -42689,6 +42459,103 @@ function deduplicatePreparationToolCalls(toolCalls) {
|
|
|
42689
42459
|
return toolCalls;
|
|
42690
42460
|
}
|
|
42691
42461
|
|
|
42462
|
+
/**
|
|
42463
|
+
* Priority order for the important commitments shown first in catalogues and intellisense.
|
|
42464
|
+
*
|
|
42465
|
+
* Canonical singular names stay ahead of their plural aliases so the most important
|
|
42466
|
+
* commitments remain easy to scan.
|
|
42467
|
+
*
|
|
42468
|
+
* @private internal constant of commitment catalog sorting
|
|
42469
|
+
*/
|
|
42470
|
+
const IMPORTANT_COMMITMENT_TYPE_SORT_ORDER = new Map([
|
|
42471
|
+
['GOAL', 0],
|
|
42472
|
+
['RULE', 1],
|
|
42473
|
+
['KNOWLEDGE', 2],
|
|
42474
|
+
['TEAM', 3],
|
|
42475
|
+
['GOALS', 4],
|
|
42476
|
+
['RULES', 5],
|
|
42477
|
+
]);
|
|
42478
|
+
/**
|
|
42479
|
+
* Sort rank used when unfinished, low-level, and deprecated commitments should be grouped last.
|
|
42480
|
+
*
|
|
42481
|
+
* @private internal constant of commitment catalog sorting
|
|
42482
|
+
*/
|
|
42483
|
+
const COMMITMENT_STATUS_SORT_ORDER = {
|
|
42484
|
+
normal: 0,
|
|
42485
|
+
deprecated: 1,
|
|
42486
|
+
unfinished: 2,
|
|
42487
|
+
lowLevel: 3,
|
|
42488
|
+
};
|
|
42489
|
+
/**
|
|
42490
|
+
* Resolves the relative sort rank of one commitment status.
|
|
42491
|
+
*
|
|
42492
|
+
* @param definition - Commitment definition to rank.
|
|
42493
|
+
* @param options - Sorting options.
|
|
42494
|
+
* @returns Relative sort rank for the definition.
|
|
42495
|
+
*
|
|
42496
|
+
* @private internal helper of commitment catalog sorting
|
|
42497
|
+
*/
|
|
42498
|
+
function resolveCommitmentStatusSortRank(definition, options) {
|
|
42499
|
+
let statusSortRank = COMMITMENT_STATUS_SORT_ORDER.normal;
|
|
42500
|
+
if (options.isDeprecatedLast && definition.deprecation) {
|
|
42501
|
+
statusSortRank = Math.max(statusSortRank, COMMITMENT_STATUS_SORT_ORDER.deprecated);
|
|
42502
|
+
}
|
|
42503
|
+
if (options.isUnfinishedLast && definition.isUnfinished) {
|
|
42504
|
+
statusSortRank = Math.max(statusSortRank, COMMITMENT_STATUS_SORT_ORDER.unfinished);
|
|
42505
|
+
}
|
|
42506
|
+
if (options.isLowLevelLast && definition.isLowLevel) {
|
|
42507
|
+
statusSortRank = Math.max(statusSortRank, COMMITMENT_STATUS_SORT_ORDER.lowLevel);
|
|
42508
|
+
}
|
|
42509
|
+
return statusSortRank;
|
|
42510
|
+
}
|
|
42511
|
+
/**
|
|
42512
|
+
* Sorts commitment definitions so the important ones stay at the top.
|
|
42513
|
+
*
|
|
42514
|
+
* @param commitmentDefinitions - Definitions to sort.
|
|
42515
|
+
* @param options - Sorting options.
|
|
42516
|
+
* @returns Sorted commitment definitions.
|
|
42517
|
+
*
|
|
42518
|
+
* @private internal helper of commitment catalog sorting
|
|
42519
|
+
*/
|
|
42520
|
+
function sortCommitmentDefinitions(commitmentDefinitions, options = {}) {
|
|
42521
|
+
return [...commitmentDefinitions]
|
|
42522
|
+
.map((definition, index) => ({
|
|
42523
|
+
definition,
|
|
42524
|
+
index,
|
|
42525
|
+
}))
|
|
42526
|
+
.sort((left, right) => {
|
|
42527
|
+
var _a, _b;
|
|
42528
|
+
if (left.definition.isImportant !== right.definition.isImportant) {
|
|
42529
|
+
return left.definition.isImportant ? -1 : 1;
|
|
42530
|
+
}
|
|
42531
|
+
if (left.definition.isImportant && right.definition.isImportant) {
|
|
42532
|
+
const leftPriority = (_a = IMPORTANT_COMMITMENT_TYPE_SORT_ORDER.get(left.definition.type)) !== null && _a !== void 0 ? _a : Number.MAX_SAFE_INTEGER;
|
|
42533
|
+
const rightPriority = (_b = IMPORTANT_COMMITMENT_TYPE_SORT_ORDER.get(right.definition.type)) !== null && _b !== void 0 ? _b : Number.MAX_SAFE_INTEGER;
|
|
42534
|
+
if (leftPriority !== rightPriority) {
|
|
42535
|
+
return leftPriority - rightPriority;
|
|
42536
|
+
}
|
|
42537
|
+
}
|
|
42538
|
+
const leftStatusSortRank = resolveCommitmentStatusSortRank(left.definition, options);
|
|
42539
|
+
const rightStatusSortRank = resolveCommitmentStatusSortRank(right.definition, options);
|
|
42540
|
+
if (leftStatusSortRank !== rightStatusSortRank) {
|
|
42541
|
+
return leftStatusSortRank - rightStatusSortRank;
|
|
42542
|
+
}
|
|
42543
|
+
return left.index - right.index;
|
|
42544
|
+
})
|
|
42545
|
+
.map(({ definition }) => definition);
|
|
42546
|
+
}
|
|
42547
|
+
|
|
42548
|
+
/**
|
|
42549
|
+
* Gets all available commitment definitions
|
|
42550
|
+
*
|
|
42551
|
+
* @returns Array of all commitment definitions
|
|
42552
|
+
*
|
|
42553
|
+
* @public exported from `@promptbook/core`
|
|
42554
|
+
*/
|
|
42555
|
+
function getAllCommitmentDefinitions() {
|
|
42556
|
+
return $deepFreeze(sortCommitmentDefinitions(COMMITMENT_REGISTRY, { isUnfinishedLast: true, isLowLevelLast: true }));
|
|
42557
|
+
}
|
|
42558
|
+
|
|
42692
42559
|
/**
|
|
42693
42560
|
* Gets all tool titles provided by all commitments
|
|
42694
42561
|
*
|
|
@@ -45363,7 +45230,7 @@ function $registeredScrapersMessage(availableScrapers) {
|
|
|
45363
45230
|
* @public exported from `@promptbook/editable`
|
|
45364
45231
|
*/
|
|
45365
45232
|
function knowledgeSourceContentToName(knowledgeSourceContent) {
|
|
45366
|
-
const hash = SHA256(hexEncoder.parse(JSON.stringify(knowledgeSourceContent)))
|
|
45233
|
+
const hash = CryptoJS.SHA256(hexEncoder.parse(JSON.stringify(knowledgeSourceContent)))
|
|
45367
45234
|
// <- TODO: [🥬] Encapsulate sha256 to some private utility function
|
|
45368
45235
|
.toString( /* hex */)
|
|
45369
45236
|
.substring(0, 20);
|
|
@@ -46211,7 +46078,7 @@ function csvParse(value /* <- TODO: string_csv */, settings, schema /* <- TODO:
|
|
|
46211
46078
|
console.warn('CSV string contains carriage return characters, but in the CSV settings the `newline` setting does not include them. Autohealing the CSV string.');
|
|
46212
46079
|
value = value.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
|
|
46213
46080
|
}
|
|
46214
|
-
const csv = parse(value, settings);
|
|
46081
|
+
const csv = papaparse.parse(value, settings);
|
|
46215
46082
|
return csv;
|
|
46216
46083
|
}
|
|
46217
46084
|
|
|
@@ -46296,10 +46163,10 @@ const CsvFormatParser = {
|
|
|
46296
46163
|
i > index ? { ...row, [outputParameterName]: PENDING_VALUE_PLACEHOLDER } : row,
|
|
46297
46164
|
);
|
|
46298
46165
|
*/
|
|
46299
|
-
await onProgress(unparse(mappedData, { ...settings, ...MANDATORY_CSV_SETTINGS }));
|
|
46166
|
+
await onProgress(papaparse.unparse(mappedData, { ...settings, ...MANDATORY_CSV_SETTINGS }));
|
|
46300
46167
|
}
|
|
46301
46168
|
}
|
|
46302
|
-
return unparse(mappedData, { ...settings, ...MANDATORY_CSV_SETTINGS });
|
|
46169
|
+
return papaparse.unparse(mappedData, { ...settings, ...MANDATORY_CSV_SETTINGS });
|
|
46303
46170
|
},
|
|
46304
46171
|
},
|
|
46305
46172
|
{
|
|
@@ -46327,7 +46194,7 @@ const CsvFormatParser = {
|
|
|
46327
46194
|
return /* not await */ mapCallback({ [key]: value }, index, array.length);
|
|
46328
46195
|
}));
|
|
46329
46196
|
}));
|
|
46330
|
-
return unparse(mappedData, { ...settings, ...MANDATORY_CSV_SETTINGS });
|
|
46197
|
+
return papaparse.unparse(mappedData, { ...settings, ...MANDATORY_CSV_SETTINGS });
|
|
46331
46198
|
},
|
|
46332
46199
|
},
|
|
46333
46200
|
],
|
|
@@ -48344,6 +48211,18 @@ function createBasicAgentModelRequirements(agentName) {
|
|
|
48344
48211
|
}
|
|
48345
48212
|
// TODO: [🐤] Deduplicate `AgentModelRequirements` and `ModelRequirements` model requirements
|
|
48346
48213
|
|
|
48214
|
+
/**
|
|
48215
|
+
* Gets a commitment definition by its type
|
|
48216
|
+
*
|
|
48217
|
+
* @param type The commitment type to look up
|
|
48218
|
+
* @returns The commitment definition or null if not found
|
|
48219
|
+
*
|
|
48220
|
+
* @public exported from `@promptbook/core`
|
|
48221
|
+
*/
|
|
48222
|
+
function getCommitmentDefinition(type) {
|
|
48223
|
+
return COMMITMENT_REGISTRY.find((commitmentDefinition) => commitmentDefinition.type === type) || null;
|
|
48224
|
+
}
|
|
48225
|
+
|
|
48347
48226
|
/**
|
|
48348
48227
|
* Commitment types whose content may contain compact agent references that must be resolved before applying the commitment.
|
|
48349
48228
|
*
|
|
@@ -54837,7 +54716,7 @@ function emitAgentLlmExecutionToolsAssistantPreparationProgress(options) {
|
|
|
54837
54716
|
* Computes one stable hash from a JSON-serializable value.
|
|
54838
54717
|
*/
|
|
54839
54718
|
function computeJsonHash$1(value) {
|
|
54840
|
-
return SHA256(JSON.stringify(value)).toString();
|
|
54719
|
+
return CryptoJS.SHA256(JSON.stringify(value)).toString();
|
|
54841
54720
|
}
|
|
54842
54721
|
/**
|
|
54843
54722
|
* Handles OpenAI AgentKit-backed executions for `AgentLlmExecutionTools`.
|
|
@@ -54995,7 +54874,7 @@ AgentLlmExecutionToolsAgentKitRunner.vectorStoreCache = new Map();
|
|
|
54995
54874
|
* Computes one stable hash from a JSON-serializable value.
|
|
54996
54875
|
*/
|
|
54997
54876
|
function computeJsonHash(value) {
|
|
54998
|
-
return SHA256(JSON.stringify(value)).toString();
|
|
54877
|
+
return CryptoJS.SHA256(JSON.stringify(value)).toString();
|
|
54999
54878
|
}
|
|
55000
54879
|
/**
|
|
55001
54880
|
* Removes assistant-managed requirements before the prompt is executed via OpenAI Assistants.
|
|
@@ -55851,7 +55730,7 @@ class AgentLlmExecutionTools {
|
|
|
55851
55730
|
* Returns a virtual model name representing the agent behavior.
|
|
55852
55731
|
*/
|
|
55853
55732
|
get modelName() {
|
|
55854
|
-
const hash = SHA256(hexEncoder.parse(this.options.agentSource)).toString( /* hex */);
|
|
55733
|
+
const hash = CryptoJS.SHA256(hexEncoder.parse(this.options.agentSource)).toString( /* hex */);
|
|
55855
55734
|
const agentId = hash.substring(0, 10);
|
|
55856
55735
|
return (normalizeToKebabCase(this.title) + '-' + agentId);
|
|
55857
55736
|
}
|
|
@@ -59260,5 +59139,5 @@ function AboutPromptbookInformation(props) {
|
|
|
59260
59139
|
return (jsx(Fragment, { children: jsx(MarkdownContent, { content: aboutPromptbookInformation(props) }) }));
|
|
59261
59140
|
}
|
|
59262
59141
|
|
|
59263
|
-
export { AboutPromptbookInformation, AgentChat, ArrowIcon, AvatarChip, AvatarChipFromSource, AvatarProfile, AvatarProfileFromSource, BLOCKY_FLOW, BOOK_LANGUAGE_VERSION, BookEditor, BrandedQrCode, CHAT_SAVE_FORMATS, Chat, ChatEffectsSystem, ChatSoundAndVibrationPanel, ChatSoundToggle, ChatVibrationToggle, ConfettiEffect, DEFAULT_BOOK_EDITOR_HEIGHT, FAST_FLOW, GenericQrCode, HeartsEffect, LlmChat, MOCKED_CHAT_DELAY_CONFIGS, MarkdownContent, MicIcon, MockedChat, NORMAL_FLOW, PROMPTBOOK_ENGINE_VERSION, PauseIcon, PlayIcon, PromptbookAgentIntegration, PromptbookQrCode, RANDOM_FLOW, ResetIcon, SLOW_FLOW, SendIcon, StopIcon, TemplateIcon, defaultEffectConfigs, getChatSaveFormatDefinitions, htmlSaveFormatDefinition, injectCssModuleIntoShadowRoot, jsonSaveFormatDefinition, mdSaveFormatDefinition, parseMessageButtons, pdfSaveFormatDefinition, reactSaveFormatDefinition, txtSaveFormatDefinition, useChatAutoScroll, useSendMessageToLlmChat };
|
|
59142
|
+
export { AboutPromptbookInformation, AgentChat, ArrowIcon, AvatarChip, AvatarChipFromSource, AvatarProfile, AvatarProfileFromSource, BLOCKY_FLOW, BOOK_LANGUAGE_VERSION, BookEditor, BookEditorForClient, BrandedQrCode, CHAT_SAVE_FORMATS, Chat, ChatEffectsSystem, ChatSoundAndVibrationPanel, ChatSoundToggle, ChatVibrationToggle, ConfettiEffect, DEFAULT_BOOK_EDITOR_HEIGHT, FAST_FLOW, GenericQrCode, HeartsEffect, LlmChat, MOCKED_CHAT_DELAY_CONFIGS, MarkdownContent, MicIcon, MockedChat, NORMAL_FLOW, PROMPTBOOK_ENGINE_VERSION, PauseIcon, PlayIcon, PromptbookAgentIntegration, PromptbookQrCode, RANDOM_FLOW, ResetIcon, SLOW_FLOW, SendIcon, StopIcon, TemplateIcon, defaultEffectConfigs, getChatSaveFormatDefinitions, htmlSaveFormatDefinition, injectCssModuleIntoShadowRoot, jsonSaveFormatDefinition, mdSaveFormatDefinition, parseMessageButtons, pdfSaveFormatDefinition, reactSaveFormatDefinition, txtSaveFormatDefinition, useChatAutoScroll, useSendMessageToLlmChat };
|
|
59264
59143
|
//# sourceMappingURL=index.es.js.map
|