@promptbook/google 0.103.0-2 → 0.103.0-20

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 (66) hide show
  1. package/README.md +6 -207
  2. package/esm/index.es.js +23 -5
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/src/_packages/browser.index.d.ts +6 -0
  5. package/esm/typings/src/_packages/components.index.d.ts +2 -0
  6. package/esm/typings/src/_packages/core.index.d.ts +6 -0
  7. package/esm/typings/src/book-2.0/agent-source/padBook.d.ts +16 -0
  8. package/esm/typings/src/book-components/AvatarProfile/AvatarProfile/AvatarProfile.d.ts +5 -0
  9. package/esm/typings/src/book-components/AvatarProfile/AvatarProfile/AvatarProfileTooltip.d.ts +15 -0
  10. package/esm/typings/src/book-components/BookEditor/BookEditor.d.ts +66 -8
  11. package/esm/typings/src/book-components/BookEditor/BookEditorActionbar.d.ts +11 -0
  12. package/esm/typings/src/book-components/BookEditor/BookEditorMonaco.d.ts +5 -0
  13. package/esm/typings/src/book-components/BookEditor/config.d.ts +1 -0
  14. package/esm/typings/src/book-components/Chat/types/ChatParticipant.d.ts +5 -0
  15. package/esm/typings/src/book-components/_common/Dropdown/Dropdown.d.ts +15 -0
  16. package/esm/typings/src/book-components/_common/Modal/Modal.d.ts +13 -0
  17. package/esm/typings/src/book-components/_common/react-utils/classNames.d.ts +1 -1
  18. package/esm/typings/src/book-components/icons/AboutIcon.d.ts +9 -0
  19. package/esm/typings/src/book-components/icons/DownloadIcon.d.ts +9 -0
  20. package/esm/typings/src/book-components/icons/MenuIcon.d.ts +12 -0
  21. package/esm/typings/src/cli/cli-commands/_boilerplate.d.ts +2 -1
  22. package/esm/typings/src/cli/cli-commands/about.d.ts +2 -1
  23. package/esm/typings/src/cli/cli-commands/hello.d.ts +2 -1
  24. package/esm/typings/src/cli/cli-commands/list-models.d.ts +2 -1
  25. package/esm/typings/src/cli/cli-commands/list-scrapers.d.ts +2 -1
  26. package/esm/typings/src/cli/cli-commands/login.d.ts +2 -1
  27. package/esm/typings/src/cli/cli-commands/make.d.ts +2 -1
  28. package/esm/typings/src/cli/cli-commands/prettify.d.ts +2 -1
  29. package/esm/typings/src/cli/cli-commands/run.d.ts +2 -1
  30. package/esm/typings/src/cli/cli-commands/start-server.d.ts +2 -1
  31. package/esm/typings/src/cli/cli-commands/test-command.d.ts +2 -1
  32. package/esm/typings/src/cli/common/$addGlobalOptionsToCommand.d.ts +2 -1
  33. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -5
  34. package/esm/typings/src/config.d.ts +14 -1
  35. package/esm/typings/src/execution/utils/usage-constants.d.ts +4 -124
  36. package/esm/typings/src/high-level-abstractions/_common/HighLevelAbstraction.d.ts +2 -1
  37. package/esm/typings/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +2 -1
  38. package/esm/typings/src/scrapers/_boilerplate/createBoilerplateScraper.d.ts +1 -12
  39. package/esm/typings/src/scrapers/_boilerplate/register-metadata.d.ts +1 -9
  40. package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +1 -12
  41. package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -9
  42. package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +1 -12
  43. package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -9
  44. package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +1 -12
  45. package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -9
  46. package/esm/typings/src/scrapers/markitdown/createMarkitdownScraper.d.ts +1 -12
  47. package/esm/typings/src/scrapers/markitdown/register-metadata.d.ts +1 -9
  48. package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +1 -12
  49. package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -9
  50. package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +1 -12
  51. package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -9
  52. package/esm/typings/src/storage/env-storage/$EnvStorage.d.ts +2 -1
  53. package/esm/typings/src/types/typeAliases.d.ts +1 -1
  54. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +2 -1
  55. package/esm/typings/src/utils/execCommand/$execCommands.d.ts +2 -1
  56. package/esm/typings/src/utils/files/$induceBookDownload.d.ts +13 -0
  57. package/esm/typings/src/utils/files/$induceFileDownload.d.ts +13 -0
  58. package/esm/typings/src/utils/files/ObjectUrl.d.ts +46 -0
  59. package/esm/typings/src/utils/misc/injectCssModuleIntoShadowRoot.d.ts +1 -0
  60. package/esm/typings/src/utils/organization/$side_effect.d.ts +7 -0
  61. package/esm/typings/src/utils/serialization/$deepFreeze.d.ts +2 -1
  62. package/esm/typings/src/version.d.ts +1 -1
  63. package/package.json +2 -2
  64. package/umd/index.umd.js +23 -5
  65. package/umd/index.umd.js.map +1 -1
  66. package/esm/typings/src/book-components/BookEditor/BookEditorInner.d.ts +0 -5
@@ -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
  */
@@ -323,7 +323,7 @@ export type string_css_property = string;
323
323
  *
324
324
  * For example `13px`
325
325
  */
326
- export type string_css_value = string;
326
+ export type string_css_value = string | number;
327
327
  /**
328
328
  * Semantic helper
329
329
  *
@@ -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
+ */
@@ -16,5 +16,6 @@ export type InjectCssModuleIntoShadowRootOptions = {
16
16
  *
17
17
  * @public exported from `@promptbook/components`
18
18
  * <- TODO: [🧠] Make `@promptbook/components-utils`
19
+ * @deprecated This was used for BookEditor shadow DOM support, which is no longer needed
19
20
  */
20
21
  export declare function injectCssModuleIntoShadowRoot(options: InjectCssModuleIntoShadowRootOptions): void;
@@ -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-1`).
18
+ * It follows semantic versioning (e.g., `0.103.0-19`).
19
19
  *
20
20
  * @generated
21
21
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/google",
3
- "version": "0.103.0-2",
3
+ "version": "0.103.0-20",
4
4
  "description": "Promptbook: Turn your company's scattered knowledge into AI ready books",
5
5
  "private": false,
6
6
  "sideEffects": false,
@@ -95,7 +95,7 @@
95
95
  "module": "./esm/index.es.js",
96
96
  "typings": "./esm/typings/src/_packages/google.index.d.ts",
97
97
  "peerDependencies": {
98
- "@promptbook/core": "0.103.0-2"
98
+ "@promptbook/core": "0.103.0-20"
99
99
  },
100
100
  "dependencies": {
101
101
  "@ai-sdk/google": "1.0.5",
package/umd/index.umd.js CHANGED
@@ -23,7 +23,7 @@
23
23
  * @generated
24
24
  * @see https://github.com/webgptorg/promptbook
25
25
  */
26
- const PROMPTBOOK_ENGINE_VERSION = '0.103.0-2';
26
+ const PROMPTBOOK_ENGINE_VERSION = '0.103.0-20';
27
27
  /**
28
28
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
29
29
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -125,10 +125,13 @@
125
125
  * @public exported from `@promptbook/utils`
126
126
  */
127
127
  function countLines(text) {
128
+ if (text === '') {
129
+ return 0;
130
+ }
128
131
  text = text.replace('\r\n', '\n');
129
132
  text = text.replace('\r', '\n');
130
133
  const lines = text.split('\n');
131
- return lines.reduce((count, line) => count + Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE), 0);
134
+ return lines.reduce((count, line) => count + Math.max(Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE), 1), 0);
132
135
  }
133
136
  /**
134
137
  * TODO: [🥴] Implement counting in formats - like JSON, CSV, XML,...
@@ -1527,15 +1530,30 @@
1527
1530
  * @public exported from `@promptbook/core`
1528
1531
  */
1529
1532
  const PROMPTBOOK_COLOR = Color.fromHex('#79EAFD');
1530
- // <- TODO: [🧠] Using `Color` here increases the package size approx 3kb, maybe remove it
1533
+ // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
1534
+ /**
1535
+ * Colors for syntax highlighting in the `<BookEditor/>`
1536
+ *
1537
+ * TODO: [🗽] Unite branding and make single place for it
1538
+ *
1539
+ * @public exported from `@promptbook/core`
1540
+ */
1541
+ ({
1542
+ TITLE: Color.fromHex('#244EA8'),
1543
+ LINE: Color.fromHex('#eeeeee'),
1544
+ COMMITMENT: Color.fromHex('#DA0F78'),
1545
+ PARAMETER: Color.fromHex('#8e44ad'),
1546
+ });
1547
+ // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
1531
1548
  /**
1532
- * Dark color of the Promptbook
1549
+ * Chat color of the Promptbook (in chat)
1533
1550
  *
1534
1551
  * TODO: [🗽] Unite branding and make single place for it
1535
1552
  *
1536
1553
  * @public exported from `@promptbook/core`
1537
1554
  */
1538
1555
  PROMPTBOOK_COLOR.then(lighten(0.1)).then(saturate(0.9)).then(grayscale(0.9));
1556
+ // <- TODO: [🧠][🈵] Using `Color` and `lighten`, `saturate`,... here increases the package size approx 3kb, maybe remove it
1539
1557
  /**
1540
1558
  * Color of the user (in chat)
1541
1559
  *
@@ -2233,7 +2251,7 @@
2233
2251
  let promptMessages;
2234
2252
  if ('thread' in prompt && Array.isArray(prompt.thread)) {
2235
2253
  promptMessages = prompt.thread.map((msg) => ({
2236
- role: msg.role === 'assistant' ? 'assistant' : (msg.role === 'system' ? 'system' : 'user'),
2254
+ role: msg.role === 'assistant' ? 'assistant' : msg.role === 'system' ? 'system' : 'user',
2237
2255
  content: [
2238
2256
  {
2239
2257
  type: 'text',