@promptbook/cli 0.104.0-2 → 0.104.0-3
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/apps/agents-server/package.json +3 -4
- package/apps/agents-server/public/swagger.json +115 -0
- package/apps/agents-server/scripts/generate-reserved-paths/generate-reserved-paths.ts +11 -7
- package/apps/agents-server/src/app/AddAgentButton.tsx +1 -2
- package/apps/agents-server/src/app/admin/chat-feedback/ChatFeedbackClient.tsx +221 -274
- package/apps/agents-server/src/app/admin/chat-history/ChatHistoryClient.tsx +94 -137
- package/apps/agents-server/src/app/admin/metadata/MetadataClient.tsx +8 -8
- package/apps/agents-server/src/app/agents/[agentName]/AgentChatWrapper.tsx +15 -1
- package/apps/agents-server/src/app/agents/[agentName]/AgentOptionsMenu.tsx +1 -3
- package/apps/agents-server/src/app/agents/[agentName]/AgentProfileChat.tsx +29 -16
- package/apps/agents-server/src/app/agents/[agentName]/api/chat/route.ts +3 -0
- package/apps/agents-server/src/app/agents/[agentName]/api/mcp/route.ts +6 -11
- package/apps/agents-server/src/app/agents/[agentName]/api/voice/route.ts +4 -1
- package/apps/agents-server/src/app/agents/[agentName]/code/api/route.ts +8 -6
- package/apps/agents-server/src/app/agents/[agentName]/code/page.tsx +33 -30
- package/apps/agents-server/src/app/api/agents/[agentName]/clone/route.ts +10 -12
- package/apps/agents-server/src/app/api/agents/[agentName]/route.ts +1 -2
- package/apps/agents-server/src/app/api/agents/route.ts +1 -1
- package/apps/agents-server/src/app/api/api-tokens/route.ts +6 -7
- package/apps/agents-server/src/app/api/docs/book.md/route.ts +3 -0
- package/apps/agents-server/src/app/api/metadata/route.ts +5 -6
- package/apps/agents-server/src/app/api/upload/route.ts +9 -0
- package/apps/agents-server/src/app/page.tsx +1 -1
- package/apps/agents-server/src/app/swagger/page.tsx +14 -0
- package/apps/agents-server/src/components/AgentProfile/AgentProfile.tsx +4 -2
- package/apps/agents-server/src/components/AgentProfile/QrCodeModal.tsx +0 -1
- package/apps/agents-server/src/components/Auth/AuthControls.tsx +5 -4
- package/apps/agents-server/src/components/Header/Header.tsx +27 -5
- package/apps/agents-server/src/components/Homepage/AgentCard.tsx +22 -3
- package/apps/agents-server/src/components/_utils/headlessParam.tsx +7 -3
- package/apps/agents-server/src/generated/reservedPaths.ts +6 -1
- package/apps/agents-server/src/middleware.ts +12 -3
- package/apps/agents-server/src/utils/auth.ts +117 -17
- package/apps/agents-server/src/utils/getUserIdFromRequest.ts +3 -1
- package/apps/agents-server/src/utils/handleChatCompletion.ts +9 -5
- package/apps/agents-server/src/utils/validateApiKey.ts +5 -10
- package/esm/index.es.js +55 -8
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/types.index.d.ts +2 -0
- package/esm/typings/src/book-components/Chat/types/ChatMessage.d.ts +7 -11
- package/esm/typings/src/types/Message.d.ts +49 -0
- package/esm/typings/src/version.d.ts +1 -1
- package/package.json +1 -1
- package/umd/index.umd.js +55 -8
- package/umd/index.umd.js.map +1 -1
|
@@ -185,6 +185,7 @@ import type { BookTranspiler } from '../transpilers/_common/BookTranspiler';
|
|
|
185
185
|
import type { BookTranspilerOptions } from '../transpilers/_common/BookTranspilerOptions';
|
|
186
186
|
import type { IntermediateFilesStrategy } from '../types/IntermediateFilesStrategy';
|
|
187
187
|
import type { LlmCall } from '../types/LlmCall';
|
|
188
|
+
import type { Message } from '../types/Message';
|
|
188
189
|
import type { ModelRequirements } from '../types/ModelRequirements';
|
|
189
190
|
import type { CompletionModelRequirements } from '../types/ModelRequirements';
|
|
190
191
|
import type { ChatModelRequirements } from '../types/ModelRequirements';
|
|
@@ -551,6 +552,7 @@ export type { BookTranspiler };
|
|
|
551
552
|
export type { BookTranspilerOptions };
|
|
552
553
|
export type { IntermediateFilesStrategy };
|
|
553
554
|
export type { LlmCall };
|
|
555
|
+
export type { Message };
|
|
554
556
|
export type { ModelRequirements };
|
|
555
557
|
export type { CompletionModelRequirements };
|
|
556
558
|
export type { ChatModelRequirements };
|
|
@@ -1,22 +1,17 @@
|
|
|
1
|
+
import { Message } from '../../../types/Message';
|
|
1
2
|
import type { id, string_markdown } from '../../../types/typeAliases';
|
|
2
3
|
/**
|
|
3
4
|
* A message in the chat
|
|
4
5
|
*
|
|
5
6
|
* @public exported from `@promptbook/components`
|
|
6
7
|
*/
|
|
7
|
-
export type ChatMessage = {
|
|
8
|
+
export type ChatMessage = Omit<Message<id>, 'direction' | 'recipients' | 'threadId' | 'metadata'> & {
|
|
8
9
|
/**
|
|
9
|
-
*
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Date when the message was created
|
|
14
|
-
*/
|
|
15
|
-
date?: Date;
|
|
16
|
-
/**
|
|
17
|
-
* The name of the participant who sent the message
|
|
10
|
+
* Force the channel to be 'PROMPTBOOK_CHAT'
|
|
11
|
+
*
|
|
12
|
+
* @default 'PROMPTBOOK_CHAT'
|
|
18
13
|
*/
|
|
19
|
-
|
|
14
|
+
channel?: 'PROMPTBOOK_CHAT';
|
|
20
15
|
/**
|
|
21
16
|
* The content of the message with optional markdown formatting
|
|
22
17
|
*/
|
|
@@ -37,6 +32,7 @@ export type ChatMessage = {
|
|
|
37
32
|
isVoiceCall?: boolean;
|
|
38
33
|
};
|
|
39
34
|
/**
|
|
35
|
+
* TODO: Make all fields readonly
|
|
40
36
|
* TODO: Delete `expectedAnswer` from ChatMessage
|
|
41
37
|
* TODO: Rename `date` into `created`+`modified`
|
|
42
38
|
*/
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Arrayable } from 'type-fest';
|
|
2
|
+
import { really_any } from '../_packages/types.index';
|
|
3
|
+
import { id, string_date_iso8601, string_markdown } from './typeAliases';
|
|
4
|
+
/**
|
|
5
|
+
* A generic message structure for various communication channels
|
|
6
|
+
*/
|
|
7
|
+
export type Message<TParticipant> = {
|
|
8
|
+
/**
|
|
9
|
+
* Unique identifier of the message
|
|
10
|
+
*/
|
|
11
|
+
readonly id?: id;
|
|
12
|
+
/**
|
|
13
|
+
* Date when the message was created
|
|
14
|
+
*/
|
|
15
|
+
readonly createdAt?: Date | string_date_iso8601;
|
|
16
|
+
/**
|
|
17
|
+
* The communication channel of the message
|
|
18
|
+
*/
|
|
19
|
+
readonly channel?: 'PROMPTBOOK_CHAT' | 'EMAIL' | 'SMS' | 'WHATSAPP' | 'TELEGRAM' | 'SIGNAL' | string | 'UNKNOWN';
|
|
20
|
+
/**
|
|
21
|
+
* Is the message send from the Promptbook or to the Promptbook
|
|
22
|
+
*/
|
|
23
|
+
readonly direction?: 'INBOUND' | 'OUTBOUND' | 'INTERNAL' | 'INITIAL';
|
|
24
|
+
/**
|
|
25
|
+
* Who sent the message
|
|
26
|
+
*/
|
|
27
|
+
readonly sender: TParticipant;
|
|
28
|
+
/**
|
|
29
|
+
* Who are the recipients of the message
|
|
30
|
+
*/
|
|
31
|
+
readonly recipients?: Readonly<Arrayable<TParticipant>>;
|
|
32
|
+
/**
|
|
33
|
+
* The content of the message as markdown
|
|
34
|
+
*
|
|
35
|
+
* Note: We are converting all message content to markdown for consistency
|
|
36
|
+
*/
|
|
37
|
+
readonly content: string_markdown;
|
|
38
|
+
/**
|
|
39
|
+
* The thread identifier the message belongs to
|
|
40
|
+
*
|
|
41
|
+
* - `null` means the message is not part of any thread
|
|
42
|
+
* - `undefined` means that we don't know if the message is part of a thread or not
|
|
43
|
+
*/
|
|
44
|
+
readonly threadId?: id | null;
|
|
45
|
+
/**
|
|
46
|
+
* Arbitrary metadata associated with the message
|
|
47
|
+
*/
|
|
48
|
+
readonly metadata?: Readonly<Record<string, really_any>>;
|
|
49
|
+
};
|
|
@@ -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.104.0-
|
|
18
|
+
* It follows semantic versioning (e.g., `0.104.0-2`).
|
|
19
19
|
*
|
|
20
20
|
* @generated
|
|
21
21
|
*/
|
package/package.json
CHANGED
package/umd/index.umd.js
CHANGED
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
* @generated
|
|
57
57
|
* @see https://github.com/webgptorg/promptbook
|
|
58
58
|
*/
|
|
59
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.104.0-
|
|
59
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.104.0-3';
|
|
60
60
|
/**
|
|
61
61
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
62
62
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -19457,7 +19457,7 @@
|
|
|
19457
19457
|
let threadMessages = [];
|
|
19458
19458
|
if ('thread' in prompt && Array.isArray(prompt.thread)) {
|
|
19459
19459
|
threadMessages = prompt.thread.map((msg) => ({
|
|
19460
|
-
role: msg.
|
|
19460
|
+
role: msg.sender === 'assistant' ? 'assistant' : 'user',
|
|
19461
19461
|
content: msg.content,
|
|
19462
19462
|
}));
|
|
19463
19463
|
}
|
|
@@ -26123,17 +26123,64 @@
|
|
|
26123
26123
|
};
|
|
26124
26124
|
}
|
|
26125
26125
|
const lines = agentSource.split('\n');
|
|
26126
|
-
|
|
26126
|
+
let agentName = null;
|
|
26127
|
+
let agentNameLineIndex = -1;
|
|
26128
|
+
// Find the agent name: first non-empty line that is not a commitment and not a horizontal line
|
|
26129
|
+
for (let i = 0; i < lines.length; i++) {
|
|
26130
|
+
const line = lines[i];
|
|
26131
|
+
if (line === undefined) {
|
|
26132
|
+
continue;
|
|
26133
|
+
}
|
|
26134
|
+
const trimmed = line.trim();
|
|
26135
|
+
if (!trimmed) {
|
|
26136
|
+
continue;
|
|
26137
|
+
}
|
|
26138
|
+
const isHorizontal = HORIZONTAL_LINE_PATTERN.test(line);
|
|
26139
|
+
if (isHorizontal) {
|
|
26140
|
+
continue;
|
|
26141
|
+
}
|
|
26142
|
+
let isCommitment = false;
|
|
26143
|
+
for (const definition of COMMITMENT_REGISTRY) {
|
|
26144
|
+
const typeRegex = definition.createTypeRegex();
|
|
26145
|
+
const match = typeRegex.exec(trimmed);
|
|
26146
|
+
if (match && ((_a = match.groups) === null || _a === void 0 ? void 0 : _a.type)) {
|
|
26147
|
+
isCommitment = true;
|
|
26148
|
+
break;
|
|
26149
|
+
}
|
|
26150
|
+
}
|
|
26151
|
+
if (!isCommitment) {
|
|
26152
|
+
agentName = trimmed;
|
|
26153
|
+
agentNameLineIndex = i;
|
|
26154
|
+
break;
|
|
26155
|
+
}
|
|
26156
|
+
}
|
|
26127
26157
|
const commitments = [];
|
|
26128
26158
|
const nonCommitmentLines = [];
|
|
26129
|
-
//
|
|
26130
|
-
|
|
26131
|
-
|
|
26159
|
+
// Add lines before agentName that are horizontal lines (they are non-commitment)
|
|
26160
|
+
for (let i = 0; i < agentNameLineIndex; i++) {
|
|
26161
|
+
const line = lines[i];
|
|
26162
|
+
if (line === undefined) {
|
|
26163
|
+
continue;
|
|
26164
|
+
}
|
|
26165
|
+
const trimmed = line.trim();
|
|
26166
|
+
if (!trimmed) {
|
|
26167
|
+
continue;
|
|
26168
|
+
}
|
|
26169
|
+
const isHorizontal = HORIZONTAL_LINE_PATTERN.test(line);
|
|
26170
|
+
if (isHorizontal) {
|
|
26171
|
+
nonCommitmentLines.push(line);
|
|
26172
|
+
}
|
|
26173
|
+
// Note: Commitments before agentName are not added to nonCommitmentLines
|
|
26174
|
+
}
|
|
26175
|
+
// Add the agent name line to non-commitment lines
|
|
26176
|
+
if (agentNameLineIndex >= 0) {
|
|
26177
|
+
nonCommitmentLines.push(lines[agentNameLineIndex]);
|
|
26132
26178
|
}
|
|
26133
26179
|
// Parse commitments with multiline support
|
|
26134
26180
|
let currentCommitment = null;
|
|
26135
|
-
// Process lines starting from the
|
|
26136
|
-
|
|
26181
|
+
// Process lines starting from after the agent name line
|
|
26182
|
+
const startIndex = agentNameLineIndex >= 0 ? agentNameLineIndex + 1 : 0;
|
|
26183
|
+
for (let i = startIndex; i < lines.length; i++) {
|
|
26137
26184
|
const line = lines[i];
|
|
26138
26185
|
if (line === undefined) {
|
|
26139
26186
|
continue;
|