@promptbook/core 0.112.0-42 → 0.112.0-43
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 +10 -3
- package/esm/index.es.js +114 -22
- package/esm/index.es.js.map +1 -1
- package/esm/src/book-components/Chat/Chat/ChatProps.d.ts +1 -1
- package/esm/src/cli/cli-commands/coder/getTypescriptModule.d.ts +19 -0
- package/esm/src/cli/cli-commands/coder/getTypescriptModule.test.d.ts +1 -0
- package/esm/src/cli/cli-commands/coder/mergeStringRecordJsonFile.test.d.ts +1 -0
- package/esm/src/llm-providers/agent/Agent.test.d.ts +1 -0
- package/esm/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +4 -0
- package/esm/src/llm-providers/agent/AgentOptions.d.ts +8 -0
- package/esm/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +9 -0
- package/esm/src/version.d.ts +1 -1
- package/package.json +1 -1
- package/umd/index.umd.js +114 -22
- package/umd/index.umd.js.map +1 -1
- package/umd/src/book-components/Chat/Chat/ChatProps.d.ts +1 -1
- package/umd/src/cli/cli-commands/coder/getTypescriptModule.d.ts +19 -0
- package/umd/src/cli/cli-commands/coder/getTypescriptModule.test.d.ts +1 -0
- package/umd/src/cli/cli-commands/coder/mergeStringRecordJsonFile.test.d.ts +1 -0
- package/umd/src/llm-providers/agent/Agent.test.d.ts +1 -0
- package/umd/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +4 -0
- package/umd/src/llm-providers/agent/AgentOptions.d.ts +8 -0
- package/umd/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +9 -0
- package/umd/src/version.d.ts +1 -1
|
@@ -745,7 +745,7 @@ export type ChatProps = {
|
|
|
745
745
|
* - `BUBBLE_MODE`: keeps the default bubble appearance for all messages.
|
|
746
746
|
* - `ARTICLE_MODE`: keeps user bubbles while rendering assistant replies as borderless article blocks.
|
|
747
747
|
*
|
|
748
|
-
* @default '
|
|
748
|
+
* @default 'ARTICLE_MODE'
|
|
749
749
|
*/
|
|
750
750
|
readonly CHAT_VISUAL_MODE?: ChatVisualMode;
|
|
751
751
|
/**
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Possible runtime shapes returned when importing the `typescript` package.
|
|
3
|
+
*/
|
|
4
|
+
type ImportedTypescriptModule = typeof import('typescript') | {
|
|
5
|
+
default: typeof import('typescript');
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Loads the TypeScript runtime used for parsing JSONC-style project files.
|
|
9
|
+
*
|
|
10
|
+
* @private internal utility of `coder init`
|
|
11
|
+
*/
|
|
12
|
+
export declare function getTypescriptModule(): Promise<typeof import('typescript')>;
|
|
13
|
+
/**
|
|
14
|
+
* Normalizes CommonJS-via-`default` and direct namespace imports of TypeScript.
|
|
15
|
+
*
|
|
16
|
+
* @private internal utility of `getTypescriptModule`
|
|
17
|
+
*/
|
|
18
|
+
export declare function normalizeImportedTypescriptModule(importedTypescriptModule: ImportedTypescriptModule): typeof import('typescript');
|
|
19
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -44,6 +44,10 @@ export declare class AgentLlmExecutionTools implements LlmExecutionTools {
|
|
|
44
44
|
* Cached parsed agent information
|
|
45
45
|
*/
|
|
46
46
|
private _cachedAgentInfo;
|
|
47
|
+
/**
|
|
48
|
+
* Optional server-precomputed model requirements reused until the source changes.
|
|
49
|
+
*/
|
|
50
|
+
private precomputedModelRequirements;
|
|
47
51
|
/**
|
|
48
52
|
* Creates new AgentLlmExecutionTools
|
|
49
53
|
*
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { string_book } from '../../book-2.0/agent-source/string_book';
|
|
2
|
+
import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
|
|
2
3
|
import type { CommonToolsOptions } from '../../execution/CommonToolsOptions';
|
|
3
4
|
import type { ExecutionTools } from '../../execution/ExecutionTools';
|
|
4
5
|
import type { Updatable } from '../../types/Updatable';
|
|
@@ -27,6 +28,13 @@ export type AgentOptions = CommonToolsOptions & {
|
|
|
27
28
|
* The source of the agent
|
|
28
29
|
*/
|
|
29
30
|
agentSource: Updatable<string_book>;
|
|
31
|
+
/**
|
|
32
|
+
* Optional precomputed model requirements reused until `agentSource` changes.
|
|
33
|
+
*
|
|
34
|
+
* This keeps the actual runtime prompt aligned with server-prepared requirements
|
|
35
|
+
* such as compact-reference-resolved `TEAM` tools.
|
|
36
|
+
*/
|
|
37
|
+
precomputedModelRequirements?: AgentModelRequirements;
|
|
30
38
|
/**
|
|
31
39
|
* Teacher agent for self-learning
|
|
32
40
|
*
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { string_book } from '../../book-2.0/agent-source/string_book';
|
|
2
|
+
import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
|
|
2
3
|
import type { CommonToolsOptions } from '../../execution/CommonToolsOptions';
|
|
3
4
|
import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
|
|
4
5
|
import type { OpenAiAgentKitExecutionTools } from '../openai/OpenAiAgentKitExecutionTools';
|
|
@@ -25,4 +26,12 @@ export type CreateAgentLlmExecutionToolsOptions = CommonToolsOptions & {
|
|
|
25
26
|
* The agent source string that defines the agent's behavior
|
|
26
27
|
*/
|
|
27
28
|
agentSource: string_book;
|
|
29
|
+
/**
|
|
30
|
+
* Optional precomputed model requirements reused until `agentSource` changes.
|
|
31
|
+
*
|
|
32
|
+
* This is useful for runtimes such as Agents Server that already resolved compact
|
|
33
|
+
* references (for example in `TEAM`) and need the executed prompt to stay aligned
|
|
34
|
+
* with the server-prepared tool list.
|
|
35
|
+
*/
|
|
36
|
+
precomputedModelRequirements?: AgentModelRequirements;
|
|
28
37
|
};
|
package/esm/src/version.d.ts
CHANGED
|
@@ -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.112.0-
|
|
18
|
+
* It follows semantic versioning (e.g., `0.112.0-42`).
|
|
19
19
|
*
|
|
20
20
|
* @generated
|
|
21
21
|
*/
|
package/package.json
CHANGED
package/umd/index.umd.js
CHANGED
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
* @generated
|
|
28
28
|
* @see https://github.com/webgptorg/promptbook
|
|
29
29
|
*/
|
|
30
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.112.0-
|
|
30
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.112.0-43';
|
|
31
31
|
/**
|
|
32
32
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
33
33
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -7867,7 +7867,7 @@
|
|
|
7867
7867
|
systemMessage: '',
|
|
7868
7868
|
promptSuffix: '',
|
|
7869
7869
|
// modelName: 'gpt-5',
|
|
7870
|
-
modelName: '
|
|
7870
|
+
modelName: 'gpt-5.4-mini',
|
|
7871
7871
|
temperature: 0.7,
|
|
7872
7872
|
topP: 0.9,
|
|
7873
7873
|
topK: 50,
|
|
@@ -15055,6 +15055,15 @@
|
|
|
15055
15055
|
* Map of team tool titles.
|
|
15056
15056
|
*/
|
|
15057
15057
|
const teamToolTitles = {};
|
|
15058
|
+
/**
|
|
15059
|
+
* Shared TEAM usage rules appended ahead of teammate listings.
|
|
15060
|
+
*
|
|
15061
|
+
* @private
|
|
15062
|
+
*/
|
|
15063
|
+
const TEAM_SYSTEM_MESSAGE_GUIDANCE_LINES = [
|
|
15064
|
+
'- If a teammate is relevant to the request, consult that teammate using the matching tool.',
|
|
15065
|
+
'- Do not ask the user for information that a listed teammate can provide directly.',
|
|
15066
|
+
];
|
|
15058
15067
|
/**
|
|
15059
15068
|
* Constant for remote agents by Url.
|
|
15060
15069
|
*/
|
|
@@ -15144,12 +15153,9 @@
|
|
|
15144
15153
|
if (updatedTools.some((tool) => tool.name === entry.toolName)) {
|
|
15145
15154
|
continue;
|
|
15146
15155
|
}
|
|
15147
|
-
const toolDescription = entry.description
|
|
15148
|
-
? `Consult teammate ${entry.teammate.label}\n${entry.description}`
|
|
15149
|
-
: `Consult teammate ${entry.teammate.label}`;
|
|
15150
15156
|
updatedTools.push({
|
|
15151
15157
|
name: entry.toolName,
|
|
15152
|
-
description:
|
|
15158
|
+
description: buildTeamToolDescription(entry),
|
|
15153
15159
|
parameters: {
|
|
15154
15160
|
type: 'object',
|
|
15155
15161
|
properties: {
|
|
@@ -15218,22 +15224,72 @@
|
|
|
15218
15224
|
/**
|
|
15219
15225
|
* Builds the textual TEAM section body for the final system message.
|
|
15220
15226
|
*
|
|
15221
|
-
* Each teammate is listed with its tool name
|
|
15222
|
-
* Uses `spaceTrim` to ensure consistent whitespace and indentation.
|
|
15227
|
+
* Each teammate is listed with its tool name, TEAM instructions, and optional profile hints.
|
|
15223
15228
|
*/
|
|
15224
15229
|
function buildTeamSystemMessageBody(teamEntries) {
|
|
15225
|
-
const lines =
|
|
15226
|
-
|
|
15227
|
-
|
|
15228
|
-
|
|
15229
|
-
|
|
15230
|
-
|
|
15231
|
-
|
|
15232
|
-
|
|
15233
|
-
|
|
15234
|
-
});
|
|
15230
|
+
const lines = [
|
|
15231
|
+
...TEAM_SYSTEM_MESSAGE_GUIDANCE_LINES,
|
|
15232
|
+
'',
|
|
15233
|
+
...teamEntries.map((entry, index) => {
|
|
15234
|
+
const toolLine = `${index + 1}) ${entry.teammate.label} tool \`${entry.toolName}\``;
|
|
15235
|
+
const detailLines = collectTeamEntryDetails(entry).map(formatTeamEntryDetailLine);
|
|
15236
|
+
return [toolLine, ...detailLines].join('\n');
|
|
15237
|
+
}),
|
|
15238
|
+
];
|
|
15235
15239
|
return lines.join('\n');
|
|
15236
15240
|
}
|
|
15241
|
+
/**
|
|
15242
|
+
* Builds the model-visible description for one teammate tool.
|
|
15243
|
+
*
|
|
15244
|
+
* @private
|
|
15245
|
+
*/
|
|
15246
|
+
function buildTeamToolDescription(entry) {
|
|
15247
|
+
const detailLines = collectTeamEntryDetails(entry).map(({ label, content }) => `${label}: ${content}`);
|
|
15248
|
+
return [`Consult teammate ${entry.teammate.label}`, ...detailLines].join('\n');
|
|
15249
|
+
}
|
|
15250
|
+
/**
|
|
15251
|
+
* Collects structured teammate details that should stay visible to the model.
|
|
15252
|
+
*
|
|
15253
|
+
* @private
|
|
15254
|
+
*/
|
|
15255
|
+
function collectTeamEntryDetails(entry) {
|
|
15256
|
+
var _a;
|
|
15257
|
+
const details = [];
|
|
15258
|
+
const instructions = entry.teammate.instructions.trim();
|
|
15259
|
+
const description = ((_a = entry.description) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
15260
|
+
if (instructions) {
|
|
15261
|
+
details.push({
|
|
15262
|
+
label: 'TEAM instructions',
|
|
15263
|
+
content: instructions,
|
|
15264
|
+
});
|
|
15265
|
+
}
|
|
15266
|
+
if (description) {
|
|
15267
|
+
details.push({
|
|
15268
|
+
label: 'Profile',
|
|
15269
|
+
content: description,
|
|
15270
|
+
});
|
|
15271
|
+
}
|
|
15272
|
+
return details;
|
|
15273
|
+
}
|
|
15274
|
+
/**
|
|
15275
|
+
* Formats one teammate detail line for the TEAM system-message section.
|
|
15276
|
+
*
|
|
15277
|
+
* @private
|
|
15278
|
+
*/
|
|
15279
|
+
function formatTeamEntryDetailLine(detail) {
|
|
15280
|
+
return indentMultilineText(`${detail.label}: ${detail.content}`, ' ');
|
|
15281
|
+
}
|
|
15282
|
+
/**
|
|
15283
|
+
* Indents all lines of one potentially multi-line text block.
|
|
15284
|
+
*
|
|
15285
|
+
* @private
|
|
15286
|
+
*/
|
|
15287
|
+
function indentMultilineText(text, prefix) {
|
|
15288
|
+
return text
|
|
15289
|
+
.split('\n')
|
|
15290
|
+
.map((line) => `${prefix}${line}`)
|
|
15291
|
+
.join('\n');
|
|
15292
|
+
}
|
|
15237
15293
|
/**
|
|
15238
15294
|
* Registers tool function and title for a teammate tool.
|
|
15239
15295
|
*/
|
|
@@ -32700,7 +32756,7 @@
|
|
|
32700
32756
|
/**
|
|
32701
32757
|
* Constant for default agent kit model name.
|
|
32702
32758
|
*/
|
|
32703
|
-
const DEFAULT_AGENT_KIT_MODEL_NAME = 'gpt-5.4-
|
|
32759
|
+
const DEFAULT_AGENT_KIT_MODEL_NAME = 'gpt-5.4-mini';
|
|
32704
32760
|
/**
|
|
32705
32761
|
* Creates one structured log entry for streamed tool-call updates.
|
|
32706
32762
|
*
|
|
@@ -34766,6 +34822,7 @@
|
|
|
34766
34822
|
* @param agentSource The agent source string that defines the agent's behavior
|
|
34767
34823
|
*/
|
|
34768
34824
|
constructor(options) {
|
|
34825
|
+
var _a;
|
|
34769
34826
|
this.options = options;
|
|
34770
34827
|
/**
|
|
34771
34828
|
* Cached model requirements to avoid re-parsing the agent source
|
|
@@ -34775,6 +34832,7 @@
|
|
|
34775
34832
|
* Cached parsed agent information
|
|
34776
34833
|
*/
|
|
34777
34834
|
this._cachedAgentInfo = null;
|
|
34835
|
+
this.precomputedModelRequirements = (_a = options.precomputedModelRequirements) !== null && _a !== void 0 ? _a : null;
|
|
34778
34836
|
}
|
|
34779
34837
|
/**
|
|
34780
34838
|
* Updates the agent source and clears the cache
|
|
@@ -34782,9 +34840,13 @@
|
|
|
34782
34840
|
* @param agentSource The new agent source string
|
|
34783
34841
|
*/
|
|
34784
34842
|
updateAgentSource(agentSource) {
|
|
34843
|
+
if (this.options.agentSource === agentSource) {
|
|
34844
|
+
return;
|
|
34845
|
+
}
|
|
34785
34846
|
this.options.agentSource = agentSource;
|
|
34786
34847
|
this._cachedAgentInfo = null;
|
|
34787
34848
|
this._cachedModelRequirements = null;
|
|
34849
|
+
this.precomputedModelRequirements = null;
|
|
34788
34850
|
}
|
|
34789
34851
|
/**
|
|
34790
34852
|
* Get cached or parse agent information
|
|
@@ -34801,6 +34863,16 @@
|
|
|
34801
34863
|
* Note: [🐤] This is names `getModelRequirements` *(not `getAgentModelRequirements`)* because in future these two will be united
|
|
34802
34864
|
*/
|
|
34803
34865
|
async getModelRequirements() {
|
|
34866
|
+
var _a, _b;
|
|
34867
|
+
if (this.precomputedModelRequirements !== null) {
|
|
34868
|
+
if (this.options.isVerbose) {
|
|
34869
|
+
console.info('[🤰]', 'Using precomputed agent model requirements', {
|
|
34870
|
+
agent: this.title,
|
|
34871
|
+
toolCount: (_b = (_a = this.precomputedModelRequirements.tools) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0,
|
|
34872
|
+
});
|
|
34873
|
+
}
|
|
34874
|
+
return this.precomputedModelRequirements;
|
|
34875
|
+
}
|
|
34804
34876
|
if (this._cachedModelRequirements === null) {
|
|
34805
34877
|
const preparationStartedAtMs = Date.now();
|
|
34806
34878
|
if (this.options.isVerbose) {
|
|
@@ -34910,6 +34982,7 @@
|
|
|
34910
34982
|
* Resolves agent requirements, attachments, and runtime overrides into one forwarded chat prompt.
|
|
34911
34983
|
*/
|
|
34912
34984
|
async prepareChatPrompt(prompt) {
|
|
34985
|
+
var _a;
|
|
34913
34986
|
const chatPrompt = this.requireChatPrompt(prompt);
|
|
34914
34987
|
const { sanitizedRequirements, promptSuffix } = await this.getSanitizedAgentModelRequirements();
|
|
34915
34988
|
const attachments = normalizeChatAttachments(chatPrompt.attachments);
|
|
@@ -34927,7 +35000,16 @@
|
|
|
34927
35000
|
mergedTools,
|
|
34928
35001
|
knowledgeSourcesForAgent,
|
|
34929
35002
|
});
|
|
34930
|
-
|
|
35003
|
+
if (this.options.isVerbose) {
|
|
35004
|
+
console.info('[🤰]', 'Prepared agent chat prompt', {
|
|
35005
|
+
agent: this.title,
|
|
35006
|
+
usedPrecomputedModelRequirements: this.precomputedModelRequirements !== null,
|
|
35007
|
+
toolNames: mergedTools.map((tool) => tool.name),
|
|
35008
|
+
knowledgeSourcesCount: (_a = knowledgeSourcesForAgent === null || knowledgeSourcesForAgent === void 0 ? void 0 : knowledgeSourcesForAgent.length) !== null && _a !== void 0 ? _a : 0,
|
|
35009
|
+
promptSuffixLength: promptSuffix.length,
|
|
35010
|
+
systemMessageLength: sanitizedRequirements.systemMessage.length,
|
|
35011
|
+
});
|
|
35012
|
+
}
|
|
34931
35013
|
return {
|
|
34932
35014
|
forwardedPrompt,
|
|
34933
35015
|
sanitizedRequirements,
|
|
@@ -35114,6 +35196,7 @@
|
|
|
35114
35196
|
* Runs one prepared prompt through the deprecated OpenAI Assistant backend.
|
|
35115
35197
|
*/
|
|
35116
35198
|
async callOpenAiAssistantChatModelStream(options) {
|
|
35199
|
+
var _a, _b, _c, _d;
|
|
35117
35200
|
const assistant = await this.getOrPrepareOpenAiAssistant({
|
|
35118
35201
|
llmTools: options.llmTools,
|
|
35119
35202
|
originalPrompt: options.originalPrompt,
|
|
@@ -35121,7 +35204,14 @@
|
|
|
35121
35204
|
onProgress: options.onProgress,
|
|
35122
35205
|
});
|
|
35123
35206
|
const promptWithAgentModelRequirementsForOpenAiAssistantExecutionTools = createOpenAiAssistantPrompt(options.preparedChatPrompt.forwardedPrompt);
|
|
35124
|
-
|
|
35207
|
+
if (this.options.isVerbose) {
|
|
35208
|
+
console.info('[🤰]', 'Prepared OpenAI Assistant prompt', {
|
|
35209
|
+
agent: this.title,
|
|
35210
|
+
toolNames: (_b = (_a = promptWithAgentModelRequirementsForOpenAiAssistantExecutionTools.modelRequirements.tools) === null || _a === void 0 ? void 0 : _a.map((tool) => tool.name)) !== null && _b !== void 0 ? _b : [],
|
|
35211
|
+
knowledgeSourcesCount: (_d = (_c = promptWithAgentModelRequirementsForOpenAiAssistantExecutionTools.modelRequirements
|
|
35212
|
+
.knowledgeSources) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0,
|
|
35213
|
+
});
|
|
35214
|
+
}
|
|
35125
35215
|
return assistant.callChatModelStream(promptWithAgentModelRequirementsForOpenAiAssistantExecutionTools, options.onProgress, options.streamOptions);
|
|
35126
35216
|
}
|
|
35127
35217
|
/**
|
|
@@ -35812,7 +35902,8 @@
|
|
|
35812
35902
|
isVerbose: options.isVerbose,
|
|
35813
35903
|
llmTools: getSingleLlmExecutionTools(options.executionTools.llm),
|
|
35814
35904
|
assistantPreparationMode: options.assistantPreparationMode,
|
|
35815
|
-
agentSource: agentSource.value,
|
|
35905
|
+
agentSource: agentSource.value,
|
|
35906
|
+
precomputedModelRequirements: options.precomputedModelRequirements,
|
|
35816
35907
|
});
|
|
35817
35908
|
this._agentName = undefined;
|
|
35818
35909
|
/**
|
|
@@ -38430,6 +38521,7 @@
|
|
|
38430
38521
|
|
|
38431
38522
|
PERSONA ${block(personaDescription)}
|
|
38432
38523
|
${block(initialRules.map((rule) => `RULE ${rule}`).join('\n'))}
|
|
38524
|
+
CLOSED
|
|
38433
38525
|
`));
|
|
38434
38526
|
// Note: `META COLOR ${color || PROMPTBOOK_COLOR.toHex()}` was removed for now
|
|
38435
38527
|
// Note: `META FONT Playfair Display, sans-serif` was removed for now
|