@promptbook/remote-client 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 CHANGED
@@ -58,19 +58,20 @@ Rest of the documentation is common for **entire promptbook ecosystem**:
58
58
 
59
59
  ## 📖 The Book Whitepaper
60
60
 
61
- For most business applications nowadays, the biggest challenge isn't about the raw capabilities of AI models. Large language models like GPT-5 or Claude-4.1 are extremely capable.
61
+ 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.
62
62
 
63
- The main challenge is to narrow it down, constrain it, set the proper **context, rules, knowledge, and personality**. There are a lot of tools which can do exactly this. On one side, there are no-code platforms which can launch your agent in seconds. On the other side, there are heavy frameworks like Langchain or Semantic Kernel, which can give you deep control.
63
+ The main challenge lies in **managing the context**, providing rules and knowledge, and narrowing the personality.
64
64
 
65
- Promptbook takes the best from both worlds. You are defining your AI behavior by simple **books**, which are very explicit. They are automatically enforced, but they are very easy to understand, very easy to write, and very reliable and portable.
65
+ In Promptbook, you can define your context **using simple Books** that are very explicit, easy to understand and write, reliable, and highly portable.
66
66
 
67
67
  <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
68
68
 
69
- **<ins>Paul Smith & Associés</ins>**<br/>
69
+ **<ins>Paul Smith</ins>**<br/>
70
70
  <br/>
71
71
  **PERSONA** You are a company lawyer.<br/>
72
72
  Your job is to provide legal advice and support to the company and its employees.<br/>
73
- You are knowledgeable, professional, and detail-oriented.<br/>
73
+ **RULE** You are knowledgeable, professional, and detail-oriented.<br/>
74
+ 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/>
74
75
 
75
76
  </td></tr></table>
76
77
 
@@ -80,7 +81,9 @@ You are knowledgeable, professional, and detail-oriented.<br/>
80
81
 
81
82
  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.
82
83
 
83
- You can look at it as prompting (or writing a system message), but decorated by **commitments**.
84
+ You can look at it as "prompting" _(or writing a system message)_, but decorated by **commitments**.
85
+
86
+ **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.
84
87
 
85
88
  #### `Persona` commitment
86
89
 
@@ -91,8 +94,6 @@ Personas define the character of your AI persona, its role, and how it should in
91
94
  **<ins>Paul Smith & Associés</ins>**<br/>
92
95
  <br/>
93
96
  **PERSONA** You are a company lawyer.<br/>
94
- Your job is to provide legal advice and support to the company and its employees.<br/>
95
- You are knowledgeable, professional, and detail-oriented.<br/>
96
97
 
97
98
  </td></tr></table>
98
99
 
@@ -112,7 +113,7 @@ Promptbook Engine will automatically enforce this knowledge during interactions.
112
113
  Your job is to provide legal advice and support to the company and its employees.<br/>
113
114
  You are knowledgeable, professional, and detail-oriented.<br/>
114
115
  <br/>
115
- **KNOWLEDGE** https://company.com/company-policies.pdf<br/>
116
+ **KNOWLEDGE** https://company.com/company-policies.pdf<br/>
116
117
  **KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
117
118
 
118
119
  </td></tr></table>
@@ -134,14 +135,14 @@ You are knowledgeable, professional, and detail-oriented.<br/>
134
135
  **RULE** Always ensure compliance with laws and regulations.<br/>
135
136
  **RULE** Never provide legal advice outside your area of expertise.<br/>
136
137
  **RULE** Never provide legal advice about criminal law.<br/>
137
- **KNOWLEDGE** https://company.com/company-policies.pdf<br/>
138
+ **KNOWLEDGE** https://company.com/company-policies.pdf<br/>
138
139
  **KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
139
140
 
140
141
  </td></tr></table>
141
142
 
142
- #### `Action` commitment
143
+ #### `Team` commitment
143
144
 
144
- Action Commitment allows you to define specific actions that the AI can take during interactions. This can include things like posting on a social media platform, sending emails, creating calendar events, or interacting with your internal systems.
145
+ 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.
145
146
 
146
147
  <table style="border: 1px solid #777; border-radius: 10px;"><tr><td>
147
148
 
@@ -154,81 +155,36 @@ You are knowledgeable, professional, and detail-oriented.<br/>
154
155
  **RULE** Always ensure compliance with laws and regulations.<br/>
155
156
  **RULE** Never provide legal advice outside your area of expertise.<br/>
156
157
  **RULE** Never provide legal advice about criminal law.<br/>
157
- **KNOWLEDGE** https://company.com/company-policies.pdf<br/>
158
+ **KNOWLEDGE** https://company.com/company-policies.pdf<br/>
158
159
  **KNOWLEDGE** https://company.com/internal-documents/employee-handbook.docx<br/>
159
- **ACTION** When a user asks about an issue that could be treated as a crime, notify legal@company.com.<br/>
160
+ 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/>
160
161
 
161
162
  </td></tr></table>
162
163
 
163
- [Read more about the language](./BLUEPRINT.md)
164
-
165
- <div style="page-break-after: always;"></div>
166
-
167
- ### Where to use your AI agent in book
168
-
169
- Books can be useful in various applications and scenarios. Here are some examples:
170
-
171
- #### Chat apps:
172
164
 
173
- Create your own chat shopping assistant and place it in your eShop.
174
- 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.
175
165
 
176
- #### Reply Agent:
166
+ ### Promptbook Ecosystem
177
167
 
178
- Create your own AI agent, which will look at your emails and reply to them. It can even create drafts for you to review before sending.
168
+ !!!@@@
179
169
 
180
- #### Coding Agent:
181
-
182
- 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.
183
-
184
- This can be integrated to almost any Vibecoding platform, like GitHub Copilot, Amazon CodeWhisperer, Cursor, Cline, Kilocode, Roocode,...
185
-
186
- They will work the same as you are used to, but with your specific rules written in book.
187
-
188
- #### Internal Expertise
189
-
190
- Do you have an app written in TypeScript, Python, C#, Java, or any other language, and you are integrating the AI.
191
-
192
- 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.
193
-
194
- 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.
195
-
196
- Even works in no-code platforms!
197
-
198
- <div style="page-break-after: always;"></div>
170
+ #### Promptbook Server
199
171
 
200
- ### How to create your AI agent in book
172
+ !!!@@@
201
173
 
202
- Now you want to use it. There are several ways how to write your first book:
174
+ #### Promptbook Engine
203
175
 
204
- #### From scratch with help from Paul
176
+ !!!@@@
205
177
 
206
- We have written ai asistant in book who can help you with writing your first book.
207
178
 
208
- #### Your AI twin
209
179
 
210
- 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.
211
180
 
212
- #### AI persona workpool
213
181
 
214
- 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.
215
182
 
216
183
 
217
184
 
218
185
 
219
186
 
220
187
 
221
- ## 🚀 Get started
222
-
223
- Take a look at the simple starter kit with books integrated into the **Hello World** sample applications:
224
-
225
- - [Hello Book](https://github.com/webgptorg/hello-world)
226
- - [Hello Book in Node.js](https://github.com/webgptorg/hello-world-node-js)
227
- - [Hello Book in Next.js](https://github.com/webgptorg/hello-world-next-js)
228
-
229
-
230
-
231
-
232
188
 
233
189
 
234
190
  ## 💜 The Promptbook Project
@@ -244,33 +200,32 @@ Promptbook project is ecosystem of multiple projects and tools, following is a l
244
200
  </thead>
245
201
  <tbody>
246
202
  <tr>
247
- <td><a href="https://github.com/webgptorg/book">Book language</a></td>
203
+ <td><a href="https://gallery.ptbk.io/">Agents Server</a></td>
248
204
  <td>
249
- Book is a human-understandable markup language for writing AI applications such as chatbots, knowledge bases, agents, avarars, translators, automations and more.
250
- <hr>
251
- There is also <a href="https://github.com/webgptorg/book-extension">a plugin for VSCode</a> to support <code>.book</code> file extension
205
+ Place where you "AI agents live". It allows to create, manage, deploy, and interact with AI agents created in Book language.
252
206
  </td>
253
207
  </tr>
254
208
  <tr>
255
- <td><a href="https://github.com/webgptorg/promptbook">Promptbook Engine</a></td>
209
+ <td><a href="https://github.com/webgptorg/book">Book language</a></td>
256
210
  <td>
257
- Promptbook engine can run applications written in Book language. 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">Docker HUB</a>
211
+ 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.
212
+ <hr>
213
+ There is also <a href="https://github.com/webgptorg/book-extension">a plugin for VSCode</a> to support <code>.book</code> file extension
258
214
  </td>
259
215
  </tr>
260
216
  <tr>
261
- <td><a href="https://promptbook.studio">Promptbook Studio</a></td>
217
+ <td><a href="https://github.com/webgptorg/promptbook">Promptbook Engine</a></td>
262
218
  <td>
263
- Promptbook.studio is a web-based editor and runner for book applications. It is still in the experimental MVP stage.
219
+ Promptbook engine can run AI agents based on Book language.
220
+ 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>
221
+ Agent Server is based on Promptbook Engine.
264
222
  </td>
265
223
  </tr>
224
+
266
225
  </tbody>
267
226
  </table>
268
227
 
269
- Hello world examples:
270
228
 
271
- - [Hello world](https://github.com/webgptorg/hello-world)
272
- - [Hello world in Node.js](https://github.com/webgptorg/hello-world-node-js)
273
- - [Hello world in Next.js](https://github.com/webgptorg/hello-world-next-js)
274
229
 
275
230
  ### 🌐 Community & Social Media
276
231
 
@@ -328,6 +283,8 @@ Join our growing community of developers and users:
328
283
 
329
284
 
330
285
 
286
+
287
+
331
288
  ## 📚 Documentation
332
289
 
333
290
  See detailed guides and API reference in the [docs](https://github.com/webgptorg/promptbook/discussions/categories/concepts) or [online](https://discord.gg/x3QWNaa89N).
@@ -404,6 +361,8 @@ The following glossary is used to clarify certain concepts:
404
361
 
405
362
  _Note: This section is not a complete dictionary, more list of general AI / LLM terms that has connection with Promptbook_
406
363
 
364
+
365
+
407
366
  ### 💯 Core concepts
408
367
 
409
368
  - [📚 Collection of pipelines](https://github.com/webgptorg/promptbook/discussions/65)
package/esm/index.es.js CHANGED
@@ -20,7 +20,7 @@ const BOOK_LANGUAGE_VERSION = '2.0.0';
20
20
  * @generated
21
21
  * @see https://github.com/webgptorg/promptbook
22
22
  */
23
- const PROMPTBOOK_ENGINE_VERSION = '0.105.0-3';
23
+ const PROMPTBOOK_ENGINE_VERSION = '0.105.0-5';
24
24
  /**
25
25
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
26
26
  * 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
- * Optional callback to trigger voice input
51
+ * Speech recognition provider
51
52
  */
52
- onVoiceInput?(): void;
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) => void): Promise<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,6 @@
1
+ export * from './bing/BingSearchEngine';
2
+ export * from './dummy/DummySearchEngine';
3
+ export * from './google/GoogleSearchEngine';
4
+ export * from './SearchEngine';
5
+ export * from './SearchResult';
6
+ export * from './serp/SerpSearchEngine';
@@ -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-2`).
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/remote-client",
3
- "version": "0.105.0-3",
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,
@@ -100,7 +100,7 @@
100
100
  "module": "./esm/index.es.js",
101
101
  "typings": "./esm/typings/src/_packages/remote-client.index.d.ts",
102
102
  "peerDependencies": {
103
- "@promptbook/core": "0.105.0-3"
103
+ "@promptbook/core": "0.105.0-5"
104
104
  },
105
105
  "dependencies": {
106
106
  "crypto": "1.0.1",
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-3';
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