@promptbook/google 0.105.0-3 → 0.105.0-5
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/README.md +36 -77
- package/esm/index.es.js +1 -1
- package/esm/typings/src/_packages/browser.index.d.ts +2 -0
- package/esm/typings/src/_packages/types.index.d.ts +12 -0
- package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +6 -1
- package/esm/typings/src/book-components/Chat/Chat/ChatProps.d.ts +3 -6
- package/esm/typings/src/book-components/Chat/types/ChatMessage.d.ts +9 -0
- package/esm/typings/src/execution/LlmExecutionTools.d.ts +3 -1
- package/esm/typings/src/llm-providers/openai/OpenAiCompatibleExecutionTools.d.ts +7 -0
- package/esm/typings/src/search-engines/_index.d.ts +6 -0
- package/esm/typings/src/search-engines/google/GoogleSearchEngine.d.ts +18 -0
- package/esm/typings/src/search-engines/serp/SerpSearchEngine.d.ts +15 -0
- package/esm/typings/src/speech-recognition/BrowserSpeechRecognition.d.ts +21 -0
- package/esm/typings/src/speech-recognition/OpenAiSpeechRecognition.d.ts +32 -0
- package/esm/typings/src/types/SpeechRecognition.d.ts +58 -0
- package/esm/typings/src/types/typeAliases.d.ts +4 -0
- package/esm/typings/src/version.d.ts +1 -1
- package/package.json +2 -2
- package/umd/index.umd.js +1 -1
package/README.md
CHANGED
|
@@ -251,19 +251,20 @@ Rest of the documentation is common for **entire promptbook ecosystem**:
|
|
|
251
251
|
|
|
252
252
|
## 📖 The Book Whitepaper
|
|
253
253
|
|
|
254
|
-
|
|
254
|
+
Nowadays, the biggest challenge for most business applications isn't the raw capabilities of AI models. Large language models such as GPT-5.2 and Claude-4.5 are incredibly capable.
|
|
255
255
|
|
|
256
|
-
The main challenge
|
|
256
|
+
The main challenge lies in **managing the context**, providing rules and knowledge, and narrowing the personality.
|
|
257
257
|
|
|
258
|
-
Promptbook
|
|
258
|
+
In Promptbook, you can define your context **using simple Books** that are very explicit, easy to understand and write, reliable, and highly portable.
|
|
259
259
|
|
|
260
260
|
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
261
261
|
|
|
262
|
-
**<ins>Paul Smith
|
|
262
|
+
**<ins>Paul Smith</ins>**<br/>
|
|
263
263
|
<br/>
|
|
264
264
|
**PERSONA** You are a company lawyer.<br/>
|
|
265
265
|
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
266
|
-
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
266
|
+
**RULE** You are knowledgeable, professional, and detail-oriented.<br/>
|
|
267
|
+
TEAM You are part of the legal team of Paul Smith & Associés, you discuss with {Emily White}, the head of the compliance department. {George Brown} is expert in corporate law and {Sophia Black} is expert in labor law.<br/>
|
|
267
268
|
|
|
268
269
|
</td></tr></table>
|
|
269
270
|
|
|
@@ -273,7 +274,9 @@ You are knowledgeable, professional, and detail-oriented.<br/>
|
|
|
273
274
|
|
|
274
275
|
We have created a language called **Book**, which allows you to write AI agents in their native language and create your own AI persona. Book provides a guide to define all the traits and commitments.
|
|
275
276
|
|
|
276
|
-
You can look at it as prompting (or writing a system message), but decorated by **commitments**.
|
|
277
|
+
You can look at it as "prompting" _(or writing a system message)_, but decorated by **commitments**.
|
|
278
|
+
|
|
279
|
+
**Commitments** are special syntax elements that define contracts between you and the AI agent. They are transformed by Promptbook Engine into low-level parameters like which model to use, its temperature, system message, RAG index, MCP servers, and many other parameters. For some commitments _(for example `RULE` commitment)_ Promptbook Engine can even create adversary agents and extra checks to enforce the rules.
|
|
277
280
|
|
|
278
281
|
#### `Persona` commitment
|
|
279
282
|
|
|
@@ -284,8 +287,6 @@ Personas define the character of your AI persona, its role, and how it should in
|
|
|
284
287
|
**<ins>Paul Smith & Associés</ins>**<br/>
|
|
285
288
|
<br/>
|
|
286
289
|
**PERSONA** You are a company lawyer.<br/>
|
|
287
|
-
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
288
|
-
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
289
290
|
|
|
290
291
|
</td></tr></table>
|
|
291
292
|
|
|
@@ -305,7 +306,7 @@ Promptbook Engine will automatically enforce this knowledge during interactions.
|
|
|
305
306
|
Your job is to provide legal advice and support to the company and its employees.<br/>
|
|
306
307
|
You are knowledgeable, professional, and detail-oriented.<br/>
|
|
307
308
|
<br/>
|
|
308
|
-
**KNOWLEDGE**
|
|
309
|
+
**KNOWLEDGE** https://company.com/company-policies.pdf<br/>
|
|
309
310
|
**KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
|
|
310
311
|
|
|
311
312
|
</td></tr></table>
|
|
@@ -327,14 +328,14 @@ You are knowledgeable, professional, and detail-oriented.<br/>
|
|
|
327
328
|
**RULE** Always ensure compliance with laws and regulations.<br/>
|
|
328
329
|
**RULE** Never provide legal advice outside your area of expertise.<br/>
|
|
329
330
|
**RULE** Never provide legal advice about criminal law.<br/>
|
|
330
|
-
**KNOWLEDGE**
|
|
331
|
+
**KNOWLEDGE** https://company.com/company-policies.pdf<br/>
|
|
331
332
|
**KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
|
|
332
333
|
|
|
333
334
|
</td></tr></table>
|
|
334
335
|
|
|
335
|
-
#### `
|
|
336
|
+
#### `Team` commitment
|
|
336
337
|
|
|
337
|
-
|
|
338
|
+
Team commitment allows you to define the team structure and advisory fellow members the AI can consult with. This allows the AI to simulate collaboration and consultation with other experts, enhancing the quality of its responses.
|
|
338
339
|
|
|
339
340
|
<table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
|
|
340
341
|
|
|
@@ -347,81 +348,36 @@ You are knowledgeable, professional, and detail-oriented.<br/>
|
|
|
347
348
|
**RULE** Always ensure compliance with laws and regulations.<br/>
|
|
348
349
|
**RULE** Never provide legal advice outside your area of expertise.<br/>
|
|
349
350
|
**RULE** Never provide legal advice about criminal law.<br/>
|
|
350
|
-
**KNOWLEDGE**
|
|
351
|
+
**KNOWLEDGE** https://company.com/company-policies.pdf<br/>
|
|
351
352
|
**KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
|
|
352
|
-
|
|
353
|
+
TEAM You are part of the legal team of Paul Smith & Associés, you discuss with {Emily White}, the head of the compliance department. {George Brown} is expert in corporate law and {Sophia Black} is expert in labor law.<br/>
|
|
353
354
|
|
|
354
355
|
</td></tr></table>
|
|
355
356
|
|
|
356
|
-
[Read more about the language](./BLUEPRINT.md)
|
|
357
|
-
|
|
358
|
-
<div style="page-break-after: always;"></div>
|
|
359
|
-
|
|
360
|
-
### Where to use your AI agent in book
|
|
361
|
-
|
|
362
|
-
Books can be useful in various applications and scenarios. Here are some examples:
|
|
363
|
-
|
|
364
|
-
#### Chat apps:
|
|
365
357
|
|
|
366
|
-
Create your own chat shopping assistant and place it in your eShop.
|
|
367
|
-
You will be able to answer customer questions, help them find products, and provide personalized recommendations. Everything is tightly controlled by the book you have written.
|
|
368
358
|
|
|
369
|
-
|
|
359
|
+
### Promptbook Ecosystem
|
|
370
360
|
|
|
371
|
-
|
|
361
|
+
!!!@@@
|
|
372
362
|
|
|
373
|
-
####
|
|
374
|
-
|
|
375
|
-
Do you love Vibecoding, but the AI code is not always aligned with your coding style and architecture, rules, security, etc.? Create your own coding agent to help enforce your specific coding standards and practices.
|
|
376
|
-
|
|
377
|
-
This can be integrated to almost any Vibecoding platform, like GitHub Copilot, Amazon CodeWhisperer, Cursor, Cline, Kilocode, Roocode,...
|
|
378
|
-
|
|
379
|
-
They will work the same as you are used to, but with your specific rules written in book.
|
|
380
|
-
|
|
381
|
-
#### Internal Expertise
|
|
382
|
-
|
|
383
|
-
Do you have an app written in TypeScript, Python, C#, Java, or any other language, and you are integrating the AI.
|
|
384
|
-
|
|
385
|
-
You can avoid struggle with choosing the best model, its settings like temperature, max tokens, etc., by writing a book agent and using it as your AI expertise.
|
|
386
|
-
|
|
387
|
-
Doesn't matter if you do automations, data analysis, customer support, sentiment analysis, classification, or any other task. Your AI agent will be tailored to your specific needs and requirements.
|
|
388
|
-
|
|
389
|
-
Even works in no-code platforms!
|
|
390
|
-
|
|
391
|
-
<div style="page-break-after: always;"></div>
|
|
363
|
+
#### Promptbook Server
|
|
392
364
|
|
|
393
|
-
|
|
365
|
+
!!!@@@
|
|
394
366
|
|
|
395
|
-
|
|
367
|
+
#### Promptbook Engine
|
|
396
368
|
|
|
397
|
-
|
|
369
|
+
!!!@@@
|
|
398
370
|
|
|
399
|
-
We have written ai asistant in book who can help you with writing your first book.
|
|
400
371
|
|
|
401
|
-
#### Your AI twin
|
|
402
372
|
|
|
403
|
-
Copy your own behavior, personality, and knowledge into book and create your AI twin. It can help you with your work, personal life, or any other task.
|
|
404
373
|
|
|
405
|
-
#### AI persona workpool
|
|
406
374
|
|
|
407
|
-
Or you can pick from our library of pre-written books for various roles and tasks. You can find books for customer support, coding, marketing, sales, HR, legal, and many other roles.
|
|
408
375
|
|
|
409
376
|
|
|
410
377
|
|
|
411
378
|
|
|
412
379
|
|
|
413
380
|
|
|
414
|
-
## 🚀 Get started
|
|
415
|
-
|
|
416
|
-
Take a look at the simple starter kit with books integrated into the **Hello World** sample applications:
|
|
417
|
-
|
|
418
|
-
- [Hello Book](https://github.com/webgptorg/hello-world)
|
|
419
|
-
- [Hello Book in Node.js](https://github.com/webgptorg/hello-world-node-js)
|
|
420
|
-
- [Hello Book in Next.js](https://github.com/webgptorg/hello-world-next-js)
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
381
|
|
|
426
382
|
|
|
427
383
|
## 💜 The Promptbook Project
|
|
@@ -437,33 +393,32 @@ Promptbook project is ecosystem of multiple projects and tools, following is a l
|
|
|
437
393
|
</thead>
|
|
438
394
|
<tbody>
|
|
439
395
|
<tr>
|
|
440
|
-
<td><a href="https://
|
|
396
|
+
<td><a href="https://gallery.ptbk.io/">Agents Server</a></td>
|
|
441
397
|
<td>
|
|
442
|
-
|
|
443
|
-
<hr>
|
|
444
|
-
There is also <a href="https://github.com/webgptorg/book-extension">a plugin for VSCode</a> to support <code>.book</code> file extension
|
|
398
|
+
Place where you "AI agents live". It allows to create, manage, deploy, and interact with AI agents created in Book language.
|
|
445
399
|
</td>
|
|
446
400
|
</tr>
|
|
447
401
|
<tr>
|
|
448
|
-
<td><a href="https://github.com/webgptorg/
|
|
402
|
+
<td><a href="https://github.com/webgptorg/book">Book language</a></td>
|
|
449
403
|
<td>
|
|
450
|
-
|
|
404
|
+
Human-friendly, high-level language that abstracts away low-level details of AI. It allows to focus on personality, behavior, knowledge, and rules of AI agents rather than on models, parameters, and prompt engineering.
|
|
405
|
+
<hr>
|
|
406
|
+
There is also <a href="https://github.com/webgptorg/book-extension">a plugin for VSCode</a> to support <code>.book</code> file extension
|
|
451
407
|
</td>
|
|
452
408
|
</tr>
|
|
453
409
|
<tr>
|
|
454
|
-
<td><a href="https://promptbook
|
|
410
|
+
<td><a href="https://github.com/webgptorg/promptbook">Promptbook Engine</a></td>
|
|
455
411
|
<td>
|
|
456
|
-
Promptbook
|
|
412
|
+
Promptbook engine can run AI agents based on Book language.
|
|
413
|
+
It is released as <a href="https://www.npmjs.com/package/@promptbook/core#-packages-for-developers">multiple NPM packages</a> and <a href="https://hub.docker.com/r/hejny/promptbook">Promptbook Agent Server as Docker Package</a>
|
|
414
|
+
Agent Server is based on Promptbook Engine.
|
|
457
415
|
</td>
|
|
458
416
|
</tr>
|
|
417
|
+
|
|
459
418
|
</tbody>
|
|
460
419
|
</table>
|
|
461
420
|
|
|
462
|
-
Hello world examples:
|
|
463
421
|
|
|
464
|
-
- [Hello world](https://github.com/webgptorg/hello-world)
|
|
465
|
-
- [Hello world in Node.js](https://github.com/webgptorg/hello-world-node-js)
|
|
466
|
-
- [Hello world in Next.js](https://github.com/webgptorg/hello-world-next-js)
|
|
467
422
|
|
|
468
423
|
### 🌐 Community & Social Media
|
|
469
424
|
|
|
@@ -521,6 +476,8 @@ Join our growing community of developers and users:
|
|
|
521
476
|
|
|
522
477
|
|
|
523
478
|
|
|
479
|
+
|
|
480
|
+
|
|
524
481
|
## 📚 Documentation
|
|
525
482
|
|
|
526
483
|
See detailed guides and API reference in the [docs](https://github.com/webgptorg/promptbook/discussions/categories/concepts) or [online](https://discord.gg/x3QWNaa89N).
|
|
@@ -597,6 +554,8 @@ The following glossary is used to clarify certain concepts:
|
|
|
597
554
|
|
|
598
555
|
_Note: This section is not a complete dictionary, more list of general AI / LLM terms that has connection with Promptbook_
|
|
599
556
|
|
|
557
|
+
|
|
558
|
+
|
|
600
559
|
### 💯 Core concepts
|
|
601
560
|
|
|
602
561
|
- [📚 Collection of pipelines](https://github.com/webgptorg/promptbook/discussions/65)
|
package/esm/index.es.js
CHANGED
|
@@ -16,7 +16,7 @@ const BOOK_LANGUAGE_VERSION = '2.0.0';
|
|
|
16
16
|
* @generated
|
|
17
17
|
* @see https://github.com/webgptorg/promptbook
|
|
18
18
|
*/
|
|
19
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.105.0-
|
|
19
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.105.0-5';
|
|
20
20
|
/**
|
|
21
21
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
22
22
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION } from '../version';
|
|
2
2
|
import { SimplePromptInterfaceTools } from '../dialogs/simple-prompt/SimplePromptInterfaceTools';
|
|
3
3
|
import { $provideScrapersForBrowser } from '../scrapers/_common/register/$provideScrapersForBrowser';
|
|
4
|
+
import { BrowserSpeechRecognition } from '../speech-recognition/BrowserSpeechRecognition';
|
|
4
5
|
import { getIndexedDbStorage } from '../storage/local-storage/getIndexedDbStorage';
|
|
5
6
|
import { getLocalStorage } from '../storage/local-storage/getLocalStorage';
|
|
6
7
|
import { getSessionStorage } from '../storage/local-storage/getSessionStorage';
|
|
@@ -10,6 +11,7 @@ import { ObjectUrl } from '../utils/files/ObjectUrl';
|
|
|
10
11
|
export { BOOK_LANGUAGE_VERSION, PROMPTBOOK_ENGINE_VERSION };
|
|
11
12
|
export { SimplePromptInterfaceTools };
|
|
12
13
|
export { $provideScrapersForBrowser };
|
|
14
|
+
export { BrowserSpeechRecognition };
|
|
13
15
|
export { getIndexedDbStorage };
|
|
14
16
|
export { getLocalStorage };
|
|
15
17
|
export { getSessionStorage };
|
|
@@ -183,6 +183,7 @@ import type { PostprocessingFunction } from '../scripting/javascript/JavascriptE
|
|
|
183
183
|
import type { ToolFunction } from '../scripting/javascript/JavascriptExecutionToolsOptions';
|
|
184
184
|
import type { SearchEngine } from '../search-engines/SearchEngine';
|
|
185
185
|
import type { SearchResult } from '../search-engines/SearchResult';
|
|
186
|
+
import type { OpenAiSpeechRecognitionOptions } from '../speech-recognition/OpenAiSpeechRecognition';
|
|
186
187
|
import type { PromptbookStorage } from '../storage/_common/PromptbookStorage';
|
|
187
188
|
import type { FileCacheStorageOptions } from '../storage/file-cache-storage/FileCacheStorageOptions';
|
|
188
189
|
import type { IndexedDbStorageOptions } from '../storage/local-storage/utils/IndexedDbStorageOptions';
|
|
@@ -207,6 +208,10 @@ import type { ImagePrompt } from '../types/Prompt';
|
|
|
207
208
|
import type { EmbeddingPrompt } from '../types/Prompt';
|
|
208
209
|
import type { ScriptLanguage } from '../types/ScriptLanguage';
|
|
209
210
|
import type { SectionType } from '../types/SectionType';
|
|
211
|
+
import type { SpeechRecognition } from '../types/SpeechRecognition';
|
|
212
|
+
import type { SpeechRecognitionStartOptions } from '../types/SpeechRecognition';
|
|
213
|
+
import type { SpeechRecognitionState } from '../types/SpeechRecognition';
|
|
214
|
+
import type { SpeechRecognitionEvent } from '../types/SpeechRecognition';
|
|
210
215
|
import type { TaskType } from '../types/TaskType';
|
|
211
216
|
import type { string_char_emoji } from '../types/typeAliasEmoji';
|
|
212
217
|
import type { string_business_category_name } from '../types/typeAliases';
|
|
@@ -316,6 +321,7 @@ import type { string_license_token } from '../types/typeAliases';
|
|
|
316
321
|
import type { string_password } from '../types/typeAliases';
|
|
317
322
|
import type { string_ssh_key } from '../types/typeAliases';
|
|
318
323
|
import type { string_pgp_key } from '../types/typeAliases';
|
|
324
|
+
import type { string_language } from '../types/typeAliases';
|
|
319
325
|
import type { string_date_iso8601 } from '../types/typeAliases';
|
|
320
326
|
import type { number_usd } from '../types/typeAliases';
|
|
321
327
|
import type { number_id } from '../types/typeAliases';
|
|
@@ -557,6 +563,7 @@ export type { PostprocessingFunction };
|
|
|
557
563
|
export type { ToolFunction };
|
|
558
564
|
export type { SearchEngine };
|
|
559
565
|
export type { SearchResult };
|
|
566
|
+
export type { OpenAiSpeechRecognitionOptions };
|
|
560
567
|
export type { PromptbookStorage };
|
|
561
568
|
export type { FileCacheStorageOptions };
|
|
562
569
|
export type { IndexedDbStorageOptions };
|
|
@@ -581,6 +588,10 @@ export type { ImagePrompt };
|
|
|
581
588
|
export type { EmbeddingPrompt };
|
|
582
589
|
export type { ScriptLanguage };
|
|
583
590
|
export type { SectionType };
|
|
591
|
+
export type { SpeechRecognition };
|
|
592
|
+
export type { SpeechRecognitionStartOptions };
|
|
593
|
+
export type { SpeechRecognitionState };
|
|
594
|
+
export type { SpeechRecognitionEvent };
|
|
584
595
|
export type { TaskType };
|
|
585
596
|
export type { string_char_emoji };
|
|
586
597
|
export type { string_business_category_name };
|
|
@@ -690,6 +701,7 @@ export type { string_license_token };
|
|
|
690
701
|
export type { string_password };
|
|
691
702
|
export type { string_ssh_key };
|
|
692
703
|
export type { string_pgp_key };
|
|
704
|
+
export type { string_language };
|
|
693
705
|
export type { string_date_iso8601 };
|
|
694
706
|
export type { number_usd };
|
|
695
707
|
export type { number_id };
|
|
@@ -31,7 +31,7 @@ export type AgentCapability = {
|
|
|
31
31
|
/**
|
|
32
32
|
* The type of the capability
|
|
33
33
|
*/
|
|
34
|
-
type: 'browser' | 'search-engine' | 'knowledge' | 'time';
|
|
34
|
+
type: 'browser' | 'search-engine' | 'knowledge' | 'time' | 'inheritance' | 'import';
|
|
35
35
|
/**
|
|
36
36
|
* The label to display for this capability
|
|
37
37
|
*/
|
|
@@ -40,6 +40,11 @@ export type AgentCapability = {
|
|
|
40
40
|
* The name of the icon to display for this capability
|
|
41
41
|
*/
|
|
42
42
|
iconName: string;
|
|
43
|
+
/**
|
|
44
|
+
* Optional link to another agent
|
|
45
|
+
* This is used for 'inheritance' and 'import' types
|
|
46
|
+
*/
|
|
47
|
+
agentUrl?: string_agent_url;
|
|
43
48
|
};
|
|
44
49
|
export type AgentBasicInformation = {
|
|
45
50
|
/**
|
|
@@ -5,6 +5,7 @@ import type { ChatMessage } from '../types/ChatMessage';
|
|
|
5
5
|
import type { ChatParticipant } from '../types/ChatParticipant';
|
|
6
6
|
import { string_color } from '../../../types/typeAliases';
|
|
7
7
|
import { Color } from '../../../_packages/color.index';
|
|
8
|
+
import { SpeechRecognition } from '../../../types/SpeechRecognition';
|
|
8
9
|
/**
|
|
9
10
|
* @public exported from `@promptbook/components`
|
|
10
11
|
*/
|
|
@@ -47,13 +48,9 @@ export type ChatProps = {
|
|
|
47
48
|
*/
|
|
48
49
|
readonly isVoiceRecognitionButtonShown?: boolean;
|
|
49
50
|
/**
|
|
50
|
-
*
|
|
51
|
+
* Speech recognition provider
|
|
51
52
|
*/
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* The language code to use for voice recognition
|
|
55
|
-
*/
|
|
56
|
-
readonly voiceLanguage?: string;
|
|
53
|
+
readonly speechRecognition?: SpeechRecognition;
|
|
57
54
|
/**
|
|
58
55
|
* Optional placeholder message for the textarea
|
|
59
56
|
*
|
|
@@ -33,6 +33,15 @@ export type ChatMessage = Omit<Message<id>, 'direction' | 'recipients' | 'thread
|
|
|
33
33
|
* Indicates if the message was sent via a voice call
|
|
34
34
|
*/
|
|
35
35
|
isVoiceCall?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Optional tool calls made during the execution
|
|
38
|
+
*/
|
|
39
|
+
readonly ongoingToolCalls?: ReadonlyArray<{
|
|
40
|
+
/**
|
|
41
|
+
* Name of the tool
|
|
42
|
+
*/
|
|
43
|
+
readonly name: string;
|
|
44
|
+
}>;
|
|
36
45
|
/**
|
|
37
46
|
* Optional file attachments
|
|
38
47
|
*/
|
|
@@ -56,7 +56,9 @@ export type LlmExecutionTools = {
|
|
|
56
56
|
/**
|
|
57
57
|
* Calls a chat model with streaming
|
|
58
58
|
*/
|
|
59
|
-
callChatModelStream?(prompt: Prompt, onProgress: (chunk: ChatPromptResult
|
|
59
|
+
callChatModelStream?(prompt: Prompt, onProgress: (chunk: ChatPromptResult & {
|
|
60
|
+
isFinished?: boolean;
|
|
61
|
+
}) => void): Promise<ChatPromptResult>;
|
|
60
62
|
/**
|
|
61
63
|
* Calls a voice chat model
|
|
62
64
|
*/
|
|
@@ -39,10 +39,17 @@ export declare abstract class OpenAiCompatibleExecutionTools implements LlmExecu
|
|
|
39
39
|
* List all available OpenAI compatible models that can be used
|
|
40
40
|
*/
|
|
41
41
|
listModels(): Promise<ReadonlyArray<AvailableModel>>;
|
|
42
|
+
/**
|
|
43
|
+
* Calls OpenAI compatible API to use a chat model.
|
|
44
|
+
*/
|
|
42
45
|
/**
|
|
43
46
|
* Calls OpenAI compatible API to use a chat model.
|
|
44
47
|
*/
|
|
45
48
|
callChatModel(prompt: Prompt): Promise<ChatPromptResult>;
|
|
49
|
+
/**
|
|
50
|
+
* Calls OpenAI compatible API to use a chat model with streaming.
|
|
51
|
+
*/
|
|
52
|
+
callChatModelStream(prompt: Prompt, onProgress: (chunk: ChatPromptResult) => void): Promise<ChatPromptResult>;
|
|
46
53
|
/**
|
|
47
54
|
* Internal method that handles parameter retry for chat model calls
|
|
48
55
|
*/
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Promisable } from 'type-fest';
|
|
2
|
+
import type { string_markdown, string_markdown_text, string_title } from '../../types/typeAliases';
|
|
3
|
+
import type { SearchEngine } from '../SearchEngine';
|
|
4
|
+
import type { SearchResult } from '../SearchResult';
|
|
5
|
+
/**
|
|
6
|
+
* A search engine implementation that uses the Google Custom Search JSON API.
|
|
7
|
+
*
|
|
8
|
+
* @private <- TODO: !!!! Export via some package
|
|
9
|
+
*/
|
|
10
|
+
export declare class GoogleSearchEngine implements SearchEngine {
|
|
11
|
+
get title(): string_title & string_markdown_text;
|
|
12
|
+
get description(): string_markdown;
|
|
13
|
+
/**
|
|
14
|
+
* @see https://developers.google.com/custom-search/v1/overview
|
|
15
|
+
*/
|
|
16
|
+
checkConfiguration(): Promisable<void>;
|
|
17
|
+
search(query: string): Promise<SearchResult[]>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Promisable } from 'type-fest';
|
|
2
|
+
import type { string_markdown, string_markdown_text, string_title } from '../../types/typeAliases';
|
|
3
|
+
import type { SearchEngine } from '../SearchEngine';
|
|
4
|
+
import type { SearchResult } from '../SearchResult';
|
|
5
|
+
/**
|
|
6
|
+
* A search engine implementation that uses the SerpApi to fetch Google search results.
|
|
7
|
+
*
|
|
8
|
+
* @private <- TODO: !!!! Export via some package
|
|
9
|
+
*/
|
|
10
|
+
export declare class SerpSearchEngine implements SearchEngine {
|
|
11
|
+
get title(): string_title & string_markdown_text;
|
|
12
|
+
get description(): string_markdown;
|
|
13
|
+
checkConfiguration(): Promisable<void>;
|
|
14
|
+
search(query: string): Promise<SearchResult[]>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { SpeechRecognition, SpeechRecognitionEvent, SpeechRecognitionStartOptions, SpeechRecognitionState } from '../types/SpeechRecognition';
|
|
2
|
+
/**
|
|
3
|
+
* Speech recognition using Web Speech API `SpeechRecognition` available in modern browsers
|
|
4
|
+
*
|
|
5
|
+
* @public exported from `@promptbook/browser`
|
|
6
|
+
*/
|
|
7
|
+
export declare class BrowserSpeechRecognition implements SpeechRecognition {
|
|
8
|
+
private recognition;
|
|
9
|
+
private callbacks;
|
|
10
|
+
private _state;
|
|
11
|
+
get state(): SpeechRecognitionState;
|
|
12
|
+
constructor();
|
|
13
|
+
$start(options?: SpeechRecognitionStartOptions): void;
|
|
14
|
+
$stop(): void;
|
|
15
|
+
subscribe(callback: (event: SpeechRecognitionEvent) => void): () => void;
|
|
16
|
+
private emit;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* TODO: !!!! Search ACRY for `window` and put -> [🔵]
|
|
20
|
+
* Note: [🔵] Code in this file should never be published outside of `@promptbook/browser`
|
|
21
|
+
*/
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { SpeechRecognition, SpeechRecognitionEvent, SpeechRecognitionStartOptions, SpeechRecognitionState } from '../types/SpeechRecognition';
|
|
2
|
+
/**
|
|
3
|
+
* Options for OpenAiSpeechRecognition
|
|
4
|
+
*/
|
|
5
|
+
export type OpenAiSpeechRecognitionOptions = {
|
|
6
|
+
/**
|
|
7
|
+
* OpenAI API base URL or proxy endpoint
|
|
8
|
+
* @default '/api/openai/v1'
|
|
9
|
+
*/
|
|
10
|
+
readonly baseUrl?: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Speech recognition using OpenAI Whisper API to transcribe audio into text
|
|
14
|
+
*
|
|
15
|
+
* @private because it requires server-client communication with a proxy endpoint
|
|
16
|
+
*
|
|
17
|
+
* Note: This implementation uses a server-side proxy to avoid exposing the OpenAI API key on the client.
|
|
18
|
+
*/
|
|
19
|
+
export declare class OpenAiSpeechRecognition implements SpeechRecognition {
|
|
20
|
+
private readonly options;
|
|
21
|
+
private mediaRecorder;
|
|
22
|
+
private audioChunks;
|
|
23
|
+
private callbacks;
|
|
24
|
+
private _state;
|
|
25
|
+
get state(): SpeechRecognitionState;
|
|
26
|
+
constructor(options?: OpenAiSpeechRecognitionOptions);
|
|
27
|
+
$start(options?: SpeechRecognitionStartOptions): Promise<void>;
|
|
28
|
+
$stop(): void;
|
|
29
|
+
private transcribe;
|
|
30
|
+
subscribe(callback: (event: SpeechRecognitionEvent) => void): () => void;
|
|
31
|
+
private emit;
|
|
32
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { string_language } from './typeAliases';
|
|
2
|
+
/**
|
|
3
|
+
* Interface for speech-to-text recognition
|
|
4
|
+
*
|
|
5
|
+
* @🚉 fully serializable as JSON
|
|
6
|
+
*/
|
|
7
|
+
export type SpeechRecognition = {
|
|
8
|
+
/**
|
|
9
|
+
* Start the speech recognition
|
|
10
|
+
*/
|
|
11
|
+
$start(options: SpeechRecognitionStartOptions): void;
|
|
12
|
+
/**
|
|
13
|
+
* Stop the speech recognition
|
|
14
|
+
*/
|
|
15
|
+
$stop(): void;
|
|
16
|
+
/**
|
|
17
|
+
* Current state of the speech recognition
|
|
18
|
+
*/
|
|
19
|
+
readonly state: SpeechRecognitionState;
|
|
20
|
+
/**
|
|
21
|
+
* Subscribe to speech recognition events
|
|
22
|
+
*/
|
|
23
|
+
subscribe(callback: (event: SpeechRecognitionEvent) => void): () => void;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Options for starting speech recognition
|
|
27
|
+
*/
|
|
28
|
+
export type SpeechRecognitionStartOptions = {
|
|
29
|
+
/**
|
|
30
|
+
* Language for speech recognition
|
|
31
|
+
* @default 'en-US'
|
|
32
|
+
*/
|
|
33
|
+
readonly language?: string_language;
|
|
34
|
+
/**
|
|
35
|
+
* Whether to return interim results
|
|
36
|
+
* @default true
|
|
37
|
+
*/
|
|
38
|
+
readonly interimResults?: boolean;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Current state of the speech recognition
|
|
42
|
+
*/
|
|
43
|
+
export type SpeechRecognitionState = 'IDLE' | 'STARTING' | 'RECORDING' | 'TRANSCRIBING' | 'ERROR';
|
|
44
|
+
/**
|
|
45
|
+
* Event emitted by speech recognition
|
|
46
|
+
*/
|
|
47
|
+
export type SpeechRecognitionEvent = {
|
|
48
|
+
readonly type: 'START';
|
|
49
|
+
} | {
|
|
50
|
+
readonly type: 'RESULT';
|
|
51
|
+
readonly text: string;
|
|
52
|
+
readonly isFinal: boolean;
|
|
53
|
+
} | {
|
|
54
|
+
readonly type: 'ERROR';
|
|
55
|
+
readonly message: string;
|
|
56
|
+
} | {
|
|
57
|
+
readonly type: 'STOP';
|
|
58
|
+
};
|
|
@@ -668,6 +668,10 @@ export type string_license_token = string_token;
|
|
|
668
668
|
export type string_password = string;
|
|
669
669
|
export type string_ssh_key = string;
|
|
670
670
|
export type string_pgp_key = string;
|
|
671
|
+
/**
|
|
672
|
+
* Language as a string, e.g. 'en-US', 'cs-CZ', 'en'
|
|
673
|
+
*/
|
|
674
|
+
export type string_language = string;
|
|
671
675
|
/**
|
|
672
676
|
* Semantic helper for `Date.toISOString()` result
|
|
673
677
|
*
|
|
@@ -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.105.0-
|
|
18
|
+
* It follows semantic versioning (e.g., `0.105.0-4`).
|
|
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.105.0-
|
|
3
|
+
"version": "0.105.0-5",
|
|
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.105.0-
|
|
98
|
+
"@promptbook/core": "0.105.0-5"
|
|
99
99
|
},
|
|
100
100
|
"dependencies": {
|
|
101
101
|
"@ai-sdk/google": "1.0.17",
|
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.105.0-
|
|
26
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.105.0-5';
|
|
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
|