@outputai/llm 0.6.1-next.d3c9b1f.0 → 0.6.1-next.fc6a93e.0
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/package.json +2 -2
- package/src/agent.js +15 -9
- package/src/agent.spec.js +295 -214
- package/src/ai_model.js +79 -36
- package/src/ai_model.spec.js +31 -13
- package/src/ai_sdk.js +55 -79
- package/src/ai_sdk.spec.js +464 -611
- package/src/ai_sdk_options.js +61 -0
- package/src/ai_sdk_options.spec.js +164 -0
- package/src/cost/index.js +1 -1
- package/src/index.d.ts +230 -175
- package/src/index.js +2 -2
- package/src/prompt/escape.js +65 -0
- package/src/prompt/escape.spec.js +159 -0
- package/src/{load_content.js → prompt/load_content.js} +1 -22
- package/src/{load_content.spec.js → prompt/load_content.spec.js} +6 -6
- package/src/prompt/loader.js +49 -0
- package/src/prompt/loader.spec.js +274 -0
- package/src/{prompt_loader_validation.spec.js → prompt/loader_validation.spec.js} +40 -7
- package/src/prompt/parser.js +19 -0
- package/src/{parser.spec.js → prompt/parser.spec.js} +74 -29
- package/src/prompt/prepare_text.js +27 -0
- package/src/prompt/prepare_text.spec.js +141 -0
- package/src/{skill.js → prompt/skill.js} +19 -0
- package/src/prompt/skill.spec.js +172 -0
- package/src/{prompt_validations.js → prompt/validations.js} +32 -6
- package/src/{prompt_validations.spec.js → prompt/validations.spec.js} +189 -1
- package/src/utils/__fixtures__/image_response.json +38 -0
- package/src/utils/__fixtures__/stream_response.json +294 -0
- package/src/utils/__fixtures__/text_response.json +201 -0
- package/src/utils/error_handler.js +104 -0
- package/src/utils/error_handler.spec.js +285 -0
- package/src/utils/image.js +10 -0
- package/src/utils/image.spec.js +20 -0
- package/src/utils/response_wrappers.js +46 -19
- package/src/utils/response_wrappers.spec.js +130 -70
- package/src/utils/source_extraction.js +17 -27
- package/src/utils/trace.js +2 -3
- package/src/utils/trace.spec.js +9 -13
- package/src/validations.js +54 -2
- package/src/validations.spec.js +166 -0
- package/src/parser.js +0 -28
- package/src/prompt_loader.js +0 -80
- package/src/prompt_loader.spec.js +0 -358
- package/src/skill.d.ts +0 -49
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@outputai/llm",
|
|
3
|
-
"version": "0.6.1-next.
|
|
3
|
+
"version": "0.6.1-next.fc6a93e.0",
|
|
4
4
|
"description": "Framework abstraction to interact with LLM models",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/index.js",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"gray-matter": "4.0.3",
|
|
24
24
|
"liquidjs": "10.25.7",
|
|
25
25
|
"undici": "8.1.0",
|
|
26
|
-
"@outputai/core": "0.6.1-next.
|
|
26
|
+
"@outputai/core": "0.6.1-next.fc6a93e.0"
|
|
27
27
|
},
|
|
28
28
|
"license": "Apache-2.0",
|
|
29
29
|
"publishConfig": {
|
package/src/agent.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ValidationError } from '@outputai/core';
|
|
2
2
|
import { resolveInvocationDir } from '@outputai/core/sdk_utils';
|
|
3
3
|
import { ToolLoopAgent as AIToolLoopAgent, stepCountIs } from 'ai';
|
|
4
|
-
import {
|
|
4
|
+
import { loadAiSdkTextOptions } from './ai_sdk_options.js';
|
|
5
|
+
import { prepareTextPrompt } from './prompt/prepare_text.js';
|
|
5
6
|
import { startTrace, endTraceWithError } from './utils/trace.js';
|
|
6
7
|
import { wrapTextResponse, wrapStreamOnFinishResponse } from './utils/response_wrappers.js';
|
|
7
8
|
import { ROLE, isRole, getContent } from './utils/message.js';
|
|
8
|
-
|
|
9
|
-
export { skill } from './skill.js';
|
|
9
|
+
export { skill } from './prompt/skill.js';
|
|
10
10
|
|
|
11
11
|
export const createMemoryConversationStore = () => {
|
|
12
12
|
const messages = [];
|
|
@@ -23,8 +23,15 @@ export class Agent extends AIToolLoopAgent {
|
|
|
23
23
|
#store;
|
|
24
24
|
|
|
25
25
|
constructor( {
|
|
26
|
-
prompt,
|
|
27
|
-
|
|
26
|
+
prompt,
|
|
27
|
+
promptDir,
|
|
28
|
+
variables = {},
|
|
29
|
+
skills = [],
|
|
30
|
+
tools: toolsArg,
|
|
31
|
+
stopWhen,
|
|
32
|
+
maxSteps = 10,
|
|
33
|
+
conversationStore,
|
|
34
|
+
...rest
|
|
28
35
|
} ) {
|
|
29
36
|
if ( !prompt ) {
|
|
30
37
|
throw new ValidationError( 'Agent requires a prompt' );
|
|
@@ -34,10 +41,9 @@ export class Agent extends AIToolLoopAgent {
|
|
|
34
41
|
// breaks the call stack, so resolveInvocationDir() fails if called lazily.
|
|
35
42
|
const resolvedPromptDir = promptDir ?? resolveInvocationDir();
|
|
36
43
|
|
|
37
|
-
const { loadedPrompt, tools:
|
|
38
|
-
hydratePromptTemplate( prompt, variables, resolvedPromptDir, skills, tools );
|
|
44
|
+
const { loadedPrompt, tools } = prepareTextPrompt( { prompt, variables, promptDir: resolvedPromptDir, skills, tools: toolsArg } );
|
|
39
45
|
|
|
40
|
-
const { messages: allMessages, ...constructorOptions } =
|
|
46
|
+
const { messages: allMessages, ...constructorOptions } = loadAiSdkTextOptions( loadedPrompt );
|
|
41
47
|
|
|
42
48
|
// Extract system messages as `instructions` for the ToolLoopAgent constructor
|
|
43
49
|
// and keep user messages for generate() calls — avoids provider errors
|
|
@@ -47,7 +53,7 @@ export class Agent extends AIToolLoopAgent {
|
|
|
47
53
|
super( {
|
|
48
54
|
...constructorOptions,
|
|
49
55
|
...( systemContent ? { instructions: systemContent } : {} ),
|
|
50
|
-
...(
|
|
56
|
+
...( tools ? { tools } : {} ),
|
|
51
57
|
stopWhen: stopWhen ?? stepCountIs( maxSteps ),
|
|
52
58
|
...rest
|
|
53
59
|
} );
|