@promptbook/openai 0.103.0-14 โ†’ 0.103.0-16

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.
Files changed (54) hide show
  1. package/esm/index.es.js +31 -7
  2. package/esm/index.es.js.map +1 -1
  3. package/esm/typings/src/_packages/browser.index.d.ts +6 -0
  4. package/esm/typings/src/_packages/core.index.d.ts +2 -0
  5. package/esm/typings/src/book-components/BookEditor/BookEditor.d.ts +23 -0
  6. package/esm/typings/src/book-components/BookEditor/BookEditorActionbar.d.ts +11 -0
  7. package/esm/typings/src/book-components/_common/Dropdown/Dropdown.d.ts +15 -0
  8. package/esm/typings/src/book-components/_common/Modal/Modal.d.ts +2 -2
  9. package/esm/typings/src/book-components/icons/AboutIcon.d.ts +9 -0
  10. package/esm/typings/src/book-components/icons/DownloadIcon.d.ts +9 -0
  11. package/esm/typings/src/book-components/icons/MenuIcon.d.ts +12 -0
  12. package/esm/typings/src/cli/cli-commands/_boilerplate.d.ts +2 -1
  13. package/esm/typings/src/cli/cli-commands/about.d.ts +2 -1
  14. package/esm/typings/src/cli/cli-commands/hello.d.ts +2 -1
  15. package/esm/typings/src/cli/cli-commands/list-models.d.ts +2 -1
  16. package/esm/typings/src/cli/cli-commands/list-scrapers.d.ts +2 -1
  17. package/esm/typings/src/cli/cli-commands/login.d.ts +2 -1
  18. package/esm/typings/src/cli/cli-commands/make.d.ts +2 -1
  19. package/esm/typings/src/cli/cli-commands/prettify.d.ts +2 -1
  20. package/esm/typings/src/cli/cli-commands/run.d.ts +2 -1
  21. package/esm/typings/src/cli/cli-commands/start-server.d.ts +2 -1
  22. package/esm/typings/src/cli/cli-commands/test-command.d.ts +2 -1
  23. package/esm/typings/src/cli/common/$addGlobalOptionsToCommand.d.ts +2 -1
  24. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -5
  25. package/esm/typings/src/config.d.ts +13 -1
  26. package/esm/typings/src/execution/utils/usage-constants.d.ts +4 -124
  27. package/esm/typings/src/high-level-abstractions/_common/HighLevelAbstraction.d.ts +2 -1
  28. package/esm/typings/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +2 -1
  29. package/esm/typings/src/scrapers/_boilerplate/createBoilerplateScraper.d.ts +1 -12
  30. package/esm/typings/src/scrapers/_boilerplate/register-metadata.d.ts +1 -9
  31. package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +1 -12
  32. package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -9
  33. package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +1 -12
  34. package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -9
  35. package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +1 -12
  36. package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -9
  37. package/esm/typings/src/scrapers/markitdown/createMarkitdownScraper.d.ts +1 -12
  38. package/esm/typings/src/scrapers/markitdown/register-metadata.d.ts +1 -9
  39. package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +1 -12
  40. package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -9
  41. package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +1 -12
  42. package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -9
  43. package/esm/typings/src/storage/env-storage/$EnvStorage.d.ts +2 -1
  44. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +2 -1
  45. package/esm/typings/src/utils/execCommand/$execCommands.d.ts +2 -1
  46. package/esm/typings/src/utils/files/$induceBookDownload.d.ts +13 -0
  47. package/esm/typings/src/utils/files/$induceFileDownload.d.ts +13 -0
  48. package/esm/typings/src/utils/files/ObjectUrl.d.ts +46 -0
  49. package/esm/typings/src/utils/organization/$side_effect.d.ts +7 -0
  50. package/esm/typings/src/utils/serialization/$deepFreeze.d.ts +2 -1
  51. package/esm/typings/src/version.d.ts +1 -1
  52. package/package.json +2 -2
  53. package/umd/index.umd.js +31 -7
  54. package/umd/index.umd.js.map +1 -1
@@ -4,15 +4,7 @@ import type { Registration } from '../../utils/misc/$Register';
4
4
  *
5
5
  * @private within the scraper directory
6
6
  */
7
- export declare const legacyDocumentScraperMetadata: import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
8
- title: string;
9
- packageName: string;
10
- className: string;
11
- mimeTypes: string[];
12
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
13
- isAvailableInBrowser: false;
14
- requiredExecutables: ("Pandoc" | "LibreOffice")[];
15
- }>;
7
+ export declare const legacyDocumentScraperMetadata: any;
16
8
  /**
17
9
  * Registration of known scraper metadata
18
10
  *
@@ -1,20 +1,9 @@
1
- import type { ExecutionTools } from '../../execution/ExecutionTools';
2
- import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
3
- import { MarkdownScraper } from './MarkdownScraper';
4
1
  /**
5
2
  * Creates a scraper for markdown content.
6
3
  *
7
4
  * @public exported from `@promptbook/markdown-utils`
8
5
  */
9
- export declare const createMarkdownScraper: ((tools: Pick<ExecutionTools, 'llm'>, options: PrepareAndScrapeOptions) => MarkdownScraper) & import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
10
- title: string;
11
- packageName: string;
12
- className: string;
13
- mimeTypes: string[];
14
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
15
- isAvailableInBrowser: true;
16
- requiredExecutables: never[];
17
- }>;
6
+ export declare const createMarkdownScraper: any;
18
7
  /**
19
8
  * TODO: [๐ŸŽถ] Naming "constructor" vs "creator" vs "factory"
20
9
  */
@@ -4,15 +4,7 @@ import type { Registration } from '../../utils/misc/$Register';
4
4
  *
5
5
  * @private within the scraper directory
6
6
  */
7
- export declare const markdownScraperMetadata: import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
8
- title: string;
9
- packageName: string;
10
- className: string;
11
- mimeTypes: string[];
12
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
13
- isAvailableInBrowser: true;
14
- requiredExecutables: never[];
15
- }>;
7
+ export declare const markdownScraperMetadata: any;
16
8
  /**
17
9
  * Registration of known scraper metadata
18
10
  *
@@ -1,21 +1,10 @@
1
- import type { ExecutionTools } from '../../execution/ExecutionTools';
2
- import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
3
- import { MarkitdownScraper } from './MarkitdownScraper';
4
1
  /**
5
2
  * Constructor of `MarkitdownScraper`
6
3
  *
7
4
  * @public exported from `@promptbook/markitdown`
8
5
  * @public exported from `@promptbook/pdf`
9
6
  */
10
- export declare const createMarkitdownScraper: ((tools: Pick<ExecutionTools, 'llm'>, options: PrepareAndScrapeOptions) => MarkitdownScraper) & import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
11
- title: string;
12
- packageName: string;
13
- className: string;
14
- mimeTypes: string[];
15
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
16
- isAvailableInBrowser: false;
17
- requiredExecutables: never[];
18
- }>;
7
+ export declare const createMarkitdownScraper: any;
19
8
  /**
20
9
  * TODO: [๐Ÿง ][๐ŸŒœ] Export only from `@promptbook/markitdown` or `@promptbook/pdf` NOT both
21
10
  * TODO: [๐ŸŽถ] Naming "constructor" vs "creator" vs "factory"
@@ -4,15 +4,7 @@ import type { Registration } from '../../utils/misc/$Register';
4
4
  *
5
5
  * @private within the scraper directory
6
6
  */
7
- export declare const markitdownScraperMetadata: import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
8
- title: string;
9
- packageName: string;
10
- className: string;
11
- mimeTypes: string[];
12
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
13
- isAvailableInBrowser: false;
14
- requiredExecutables: never[];
15
- }>;
7
+ export declare const markitdownScraperMetadata: any;
16
8
  /**
17
9
  * Registration of known scraper metadata
18
10
  *
@@ -1,21 +1,10 @@
1
- import type { ExecutionTools } from '../../execution/ExecutionTools';
2
- import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
3
- import { PdfScraper } from './PdfScraper';
4
1
  /**
5
2
  * Factory function to create an instance of PdfScraper.
6
3
  * It bundles the scraper class with its metadata.
7
4
  *
8
5
  * @public exported from `@promptbook/pdf`
9
6
  */
10
- export declare const createPdfScraper: ((tools: Pick<ExecutionTools, 'llm'>, options: PrepareAndScrapeOptions) => PdfScraper) & import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
11
- title: string;
12
- packageName: string;
13
- className: string;
14
- mimeTypes: string[];
15
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
16
- isAvailableInBrowser: false;
17
- requiredExecutables: never[];
18
- }>;
7
+ export declare const createPdfScraper: any;
19
8
  /**
20
9
  * TODO: [๐ŸŽถ] Naming "constructor" vs "creator" vs "factory"
21
10
  */
@@ -4,15 +4,7 @@ import type { Registration } from '../../utils/misc/$Register';
4
4
  *
5
5
  * @private within the scraper directory
6
6
  */
7
- export declare const pdfScraperMetadata: import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
8
- title: string;
9
- packageName: string;
10
- className: string;
11
- mimeTypes: string[];
12
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
13
- isAvailableInBrowser: false;
14
- requiredExecutables: never[];
15
- }>;
7
+ export declare const pdfScraperMetadata: any;
16
8
  /**
17
9
  * Registration of known scraper metadata
18
10
  *
@@ -1,21 +1,10 @@
1
- import type { ExecutionTools } from '../../execution/ExecutionTools';
2
- import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
3
- import { WebsiteScraper } from './WebsiteScraper';
4
1
  /**
5
2
  * Factory function to create an instance of WebsiteScraper.
6
3
  * It bundles the scraper class with its metadata.
7
4
  *
8
5
  * @public exported from `@promptbook/website-crawler`
9
6
  */
10
- export declare const createWebsiteScraper: ((tools: Pick<ExecutionTools, 'llm'>, options: PrepareAndScrapeOptions) => WebsiteScraper) & import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
11
- title: string;
12
- packageName: string;
13
- className: string;
14
- mimeTypes: string[];
15
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
16
- isAvailableInBrowser: false;
17
- requiredExecutables: never[];
18
- }>;
7
+ export declare const createWebsiteScraper: any;
19
8
  /**
20
9
  * TODO: [๐ŸŽถ] Naming "constructor" vs "creator" vs "factory"
21
10
  */
@@ -4,15 +4,7 @@ import type { Registration } from '../../utils/misc/$Register';
4
4
  *
5
5
  * @private within the scraper directory
6
6
  */
7
- export declare const websiteScraperMetadata: import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
8
- title: string;
9
- packageName: string;
10
- className: string;
11
- mimeTypes: string[];
12
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
13
- isAvailableInBrowser: false;
14
- requiredExecutables: never[];
15
- }>;
7
+ export declare const websiteScraperMetadata: any;
16
8
  /**
17
9
  * Registration of known scraper metadata
18
10
  *
@@ -1,4 +1,5 @@
1
1
  import type { PromptbookStorage } from '../_common/PromptbookStorage';
2
+ import { $side_effect } from '../../utils/organization/$side_effect';
2
3
  /**
3
4
  * Stores data in .env variables
4
5
  *
@@ -29,7 +30,7 @@ export declare class $EnvStorage<TItem> implements PromptbookStorage<TItem> {
29
30
  /**
30
31
  * Sets the value of the pair identified by key to value, creating a new key/value pair if none existed for key previously.
31
32
  */
32
- setItem(key: string, value: TItem): Promise<void>;
33
+ setItem(key: string, value: TItem): Promise<$side_effect>;
33
34
  /**
34
35
  * Removes the key/value pair with the given key from the list associated with the object, if a key/value pair with the given key exists.
35
36
  */
@@ -1,3 +1,4 @@
1
+ import { $side_effect } from '../organization/$side_effect';
1
2
  import type { ExecCommandOptions } from './ExecCommandOptions';
2
3
  /**
3
4
  * Run one command in a shell
@@ -10,7 +11,7 @@ import type { ExecCommandOptions } from './ExecCommandOptions';
10
11
  *
11
12
  * @public exported from `@promptbook/node`
12
13
  */
13
- export declare function $execCommand(options: ExecCommandOptions): Promise<string>;
14
+ export declare function $execCommand(options: ExecCommandOptions): Promise<$side_effect & string>;
14
15
  /**
15
16
  * Note: [๐ŸŸข] Code in this file should never be never released in packages that could be imported into browser environment
16
17
  */
@@ -1,3 +1,4 @@
1
+ import { $side_effect } from '../organization/$side_effect';
1
2
  /**
2
3
  * Run multiple commands in a shell in sequence
3
4
  *
@@ -8,7 +9,7 @@
8
9
  *
9
10
  * @public exported from `@promptbook/node`
10
11
  */
11
- export declare function $execCommands({ commands, cwd, crashOnError, }: {
12
+ export declare function $execCommands({ commands, cwd, crashOnError, }: $side_effect & {
12
13
  readonly commands: string[];
13
14
  readonly cwd: string;
14
15
  readonly crashOnError?: boolean;
@@ -0,0 +1,13 @@
1
+ import { string_book } from '../../_packages/types.index';
2
+ import { $side_effect } from '../organization/$side_effect';
3
+ /**
4
+ * Download a Book in a browser
5
+ *
6
+ * Note: `$` is used to indicate that this function is not a pure function - its purpose is to cause a side effect (download a file)
7
+ *
8
+ * @public exported from `@promptbook/browser`
9
+ */
10
+ export declare function $induceBookDownload(book: string_book): Promise<$side_effect>;
11
+ /**
12
+ * Note: [๐Ÿ”ต] Code in this file should never be published outside of `@promptbook/browser`
13
+ */
@@ -0,0 +1,13 @@
1
+ import { string_url } from '../../types/typeAliases';
2
+ import { $side_effect } from '../organization/$side_effect';
3
+ /**
4
+ * Download a File in a browser
5
+ *
6
+ * Note: `$` is used to indicate that this function is not a pure function - its purpose is to cause a side effect (download a file)
7
+ *
8
+ * @public exported from `@promptbook/browser`
9
+ */
10
+ export declare function $induceFileDownload(fileOrBlobOrUrl: File | Blob | URL | string_url): Promise<$side_effect>;
11
+ /**
12
+ * Note: [๐Ÿ”ต] Code in this file should never be published outside of `@promptbook/browser`
13
+ */
@@ -0,0 +1,46 @@
1
+ import { IDestroyable, Registration } from 'destroyable';
2
+ import { string_mime_type, string_url } from '../../types/typeAliases';
3
+ /**
4
+ * Converts Blob, File or MediaSource to url using URL.createObjectURL
5
+ *
6
+ * @public exported from `@promptbook/browser`
7
+ */
8
+ export declare class ObjectUrl extends Registration implements IDestroyable {
9
+ readonly src: string_url;
10
+ private constructor();
11
+ /**
12
+ * Creates ObjectUrl from multiple input types
13
+ * Note: DO NOT forget to call destroy() when you are done with it
14
+ */
15
+ static from(source: Blob | File | MediaSource | string, mimeType: string_mime_type): ObjectUrl;
16
+ /**
17
+ * Creates ObjectUrl from string
18
+ * Note: DO NOT forget to call destroy() when you are done with it
19
+ */
20
+ static fromString(source: string, mimeType: string_mime_type): ObjectUrl;
21
+ /**
22
+ * Creates ObjectUrl
23
+ * DO NOT forget to call destroy() when you are done with it
24
+ */
25
+ static fromBlob(source: Blob | File | MediaSource): ObjectUrl;
26
+ /**
27
+ * Creates ObjectUrl:
28
+ * 1) With functionality for Blobs, Files or MediaSources
29
+ * 2) Just a wrapper for string urls
30
+ *
31
+ * DO NOT forget to call destroy() when you are done with it
32
+ */
33
+ static fromBlobOrUrl(source: Blob | File | MediaSource | URL | string_url): ObjectUrl;
34
+ /**
35
+ * Gets object url as string
36
+ * @alias src
37
+ */
38
+ get href(): string_url;
39
+ /**
40
+ * Gets object url as URL object
41
+ */
42
+ get url(): URL;
43
+ }
44
+ /**
45
+ * Note: [๐Ÿ”ต] Code in this file should never be published outside of `@promptbook/browser`
46
+ */
@@ -0,0 +1,7 @@
1
+ import { really_any } from './really_any';
2
+ /**
3
+ * Organizational helper to mark a function that produces side effects
4
+ *
5
+ * @private within the repository
6
+ */
7
+ export type $side_effect = void | really_any;
@@ -1,4 +1,5 @@
1
1
  import type { ReadonlyDeep } from 'type-fest';
2
+ import { $side_effect } from '../organization/$side_effect';
2
3
  /**
3
4
  * Freezes the given object and all its nested objects recursively
4
5
  *
@@ -8,7 +9,7 @@ import type { ReadonlyDeep } from 'type-fest';
8
9
  * @returns The same object as the input, but deeply frozen
9
10
  * @public exported from `@promptbook/utils`
10
11
  */
11
- export declare function $deepFreeze<TObject>(objectValue: TObject): ReadonlyDeep<TObject>;
12
+ export declare function $deepFreeze<TObject>(objectValue: TObject): ReadonlyDeep<$side_effect & TObject>;
12
13
  /**
13
14
  * TODO: [๐Ÿง ] Is there a way how to meaningfully test this utility
14
15
  */
@@ -15,7 +15,7 @@ export declare const BOOK_LANGUAGE_VERSION: string_semantic_version;
15
15
  export declare const PROMPTBOOK_ENGINE_VERSION: string_promptbook_version;
16
16
  /**
17
17
  * Represents the version string of the Promptbook engine.
18
- * It follows semantic versioning (e.g., `0.103.0-13`).
18
+ * It follows semantic versioning (e.g., `0.103.0-15`).
19
19
  *
20
20
  * @generated
21
21
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/openai",
3
- "version": "0.103.0-14",
3
+ "version": "0.103.0-16",
4
4
  "description": "Promptbook: Turn your company's scattered knowledge into AI ready books",
5
5
  "private": false,
6
6
  "sideEffects": false,
@@ -102,7 +102,7 @@
102
102
  "module": "./esm/index.es.js",
103
103
  "typings": "./esm/typings/src/_packages/openai.index.d.ts",
104
104
  "peerDependencies": {
105
- "@promptbook/core": "0.103.0-14"
105
+ "@promptbook/core": "0.103.0-16"
106
106
  },
107
107
  "dependencies": {
108
108
  "bottleneck": "^2.19.5",
package/umd/index.umd.js CHANGED
@@ -25,7 +25,7 @@
25
25
  * @generated
26
26
  * @see https://github.com/webgptorg/promptbook
27
27
  */
28
- const PROMPTBOOK_ENGINE_VERSION = '0.103.0-14';
28
+ const PROMPTBOOK_ENGINE_VERSION = '0.103.0-16';
29
29
  /**
30
30
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
31
31
  * Note: [๐Ÿ’ž] Ignore a discrepancy between file name and entity name
@@ -1008,6 +1008,17 @@
1008
1008
  * TODO: Maybe implement by mix+hsl
1009
1009
  */
1010
1010
 
1011
+ /**
1012
+ * Makes color transformer which darker the given color
1013
+ *
1014
+ * @param amount from 0 to 1
1015
+ *
1016
+ * @public exported from `@promptbook/color`
1017
+ */
1018
+ function darken(amount) {
1019
+ return lighten(-amount);
1020
+ }
1021
+
1011
1022
  /**
1012
1023
  * Calculates distance between two colors
1013
1024
  *
@@ -1153,15 +1164,29 @@
1153
1164
  * @public exported from `@promptbook/core`
1154
1165
  */
1155
1166
  const PROMPTBOOK_COLOR = Color.fromHex('#79EAFD');
1156
- // <- TODO: [๐Ÿง ] Using `Color` here increases the package size approx 3kb, maybe remove it
1167
+ // <- TODO: [๐Ÿง ][๐Ÿˆต] Using `Color` here increases the package size approx 3kb, maybe remove it
1157
1168
  /**
1158
- * Dark color of the Promptbook
1169
+ * Colors for syntax highlighting in the `<BookEditor/>`
1170
+ *
1171
+ * TODO: [๐Ÿ—ฝ] Unite branding and make single place for it
1172
+ *
1173
+ * @public exported from `@promptbook/core`
1174
+ */
1175
+ ({
1176
+ TITLE: PROMPTBOOK_COLOR.then(darken(0.5)),
1177
+ COMMITMENT: Color.fromHex('#DA0F78'),
1178
+ PARAMETER: Color.fromHex('#8e44ad'),
1179
+ });
1180
+ // <- TODO: [๐Ÿง ][๐Ÿˆต] Using `Color` here increases the package size approx 3kb, maybe remove it
1181
+ /**
1182
+ * Chat color of the Promptbook (in chat)
1159
1183
  *
1160
1184
  * TODO: [๐Ÿ—ฝ] Unite branding and make single place for it
1161
1185
  *
1162
1186
  * @public exported from `@promptbook/core`
1163
1187
  */
1164
1188
  PROMPTBOOK_COLOR.then(lighten(0.1)).then(saturate(0.9)).then(grayscale(0.9));
1189
+ // <- TODO: [๐Ÿง ][๐Ÿˆต] Using `Color` and `lighten`, `saturate`,... here increases the package size approx 3kb, maybe remove it
1165
1190
  /**
1166
1191
  * Color of the user (in chat)
1167
1192
  *
@@ -3673,14 +3698,13 @@
3673
3698
  // TODO: [๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง][๐Ÿง ] What about system message for assistants, does it make sense - combination of OpenAI assistants with Promptbook Personas
3674
3699
  assistant_id: this.assistantId,
3675
3700
  thread: {
3676
- messages: 'thread' in prompt && Array.isArray(prompt.thread)
3701
+ messages: 'thread' in prompt &&
3702
+ Array.isArray(prompt.thread)
3677
3703
  ? prompt.thread.map((msg) => ({
3678
3704
  role: msg.role === 'assistant' ? 'assistant' : 'user',
3679
3705
  content: msg.content,
3680
3706
  }))
3681
- : [
3682
- { role: 'user', content: rawPromptContent },
3683
- ],
3707
+ : [{ role: 'user', content: rawPromptContent }],
3684
3708
  },
3685
3709
  // <- TODO: Add user identification here> user: this.options.user,
3686
3710
  };