@framers/agentos 0.1.62 → 0.1.64

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.
Files changed (36) hide show
  1. package/README.md +2 -2
  2. package/dist/api/agent.d.ts +40 -0
  3. package/dist/api/agent.d.ts.map +1 -0
  4. package/dist/api/agent.js +63 -0
  5. package/dist/api/agent.js.map +1 -0
  6. package/dist/api/generateText.d.ts +40 -0
  7. package/dist/api/generateText.d.ts.map +1 -0
  8. package/dist/api/generateText.js +117 -0
  9. package/dist/api/generateText.js.map +1 -0
  10. package/dist/api/model.d.ts +28 -0
  11. package/dist/api/model.d.ts.map +1 -0
  12. package/dist/api/model.js +79 -0
  13. package/dist/api/model.js.map +1 -0
  14. package/dist/api/streamText.d.ts +28 -0
  15. package/dist/api/streamText.d.ts.map +1 -0
  16. package/dist/api/streamText.js +92 -0
  17. package/dist/api/streamText.js.map +1 -0
  18. package/dist/api/tool-adapter.d.ts +12 -0
  19. package/dist/api/tool-adapter.d.ts.map +1 -0
  20. package/dist/api/tool-adapter.js +51 -0
  21. package/dist/api/tool-adapter.js.map +1 -0
  22. package/dist/core/guardrails/IGuardrailService.d.ts +13 -0
  23. package/dist/core/guardrails/IGuardrailService.d.ts.map +1 -1
  24. package/dist/core/guardrails/SentenceBoundaryBuffer.d.ts +16 -0
  25. package/dist/core/guardrails/SentenceBoundaryBuffer.d.ts.map +1 -0
  26. package/dist/core/guardrails/SentenceBoundaryBuffer.js +48 -0
  27. package/dist/core/guardrails/SentenceBoundaryBuffer.js.map +1 -0
  28. package/dist/core/guardrails/index.d.ts +1 -0
  29. package/dist/core/guardrails/index.d.ts.map +1 -1
  30. package/dist/core/guardrails/index.js +2 -0
  31. package/dist/core/guardrails/index.js.map +1 -1
  32. package/dist/index.d.ts +9 -0
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +6 -0
  35. package/dist/index.js.map +1 -1
  36. package/package.json +1 -1
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  # AgentOS
8
8
 
9
- **Modular orchestration runtime for adaptive AI agents**
9
+ **Open-source TypeScript runtime for production AI agents — multimodal RAG, multi-agent orchestration, 37 channel adapters, 5-tier guardrails, 21 LLM providers.**
10
10
 
11
11
  [![npm version](https://img.shields.io/npm/v/@framers/agentos?style=flat-square&logo=npm&color=cb3837)](https://www.npmjs.com/package/@framers/agentos)
12
12
  [![CI](https://img.shields.io/github/actions/workflow/status/framersai/agentos/ci.yml?style=flat-square&logo=github&label=CI)](https://github.com/framersai/agentos/actions)
@@ -79,7 +79,7 @@
79
79
 
80
80
  ## Overview
81
81
 
82
- `@framers/agentos` is a TypeScript-first AI agent orchestration library that provides a complete runtime for building, deploying, and managing adaptive AI agents. It handles the full lifecycle from prompt construction through tool execution, safety evaluation, and streaming response delivery.
82
+ `@framers/agentos` is an open-source TypeScript AI agent runtime for building, deploying, and managing production AI agents. It provides multimodal RAG with cognitive memory (Ebbinghaus decay), multi-agent orchestration, 37 channel adapters, 5-tier guardrails with prompt injection defense, 21 LLM providers, and 40 curated skills. Self-hostable and production-ready, it handles the full lifecycle from prompt construction through tool execution, safety evaluation, and streaming response delivery.
83
83
 
84
84
  **Key facts:**
85
85
 
@@ -0,0 +1,40 @@
1
+ import { type GenerateTextOptions, type GenerateTextResult, type Message } from './generateText.js';
2
+ import { type StreamTextResult } from './streamText.js';
3
+ import type { ToolDefinitionMap } from './tool-adapter.js';
4
+ export interface AgentOptions {
5
+ model: string;
6
+ name?: string;
7
+ instructions?: string;
8
+ tools?: ToolDefinitionMap;
9
+ memory?: boolean;
10
+ personality?: Partial<{
11
+ honesty: number;
12
+ emotionality: number;
13
+ extraversion: number;
14
+ agreeableness: number;
15
+ conscientiousness: number;
16
+ openness: number;
17
+ }>;
18
+ guardrails?: string[];
19
+ apiKey?: string;
20
+ baseUrl?: string;
21
+ maxSteps?: number;
22
+ }
23
+ export interface AgentSession {
24
+ readonly id: string;
25
+ send(text: string): Promise<GenerateTextResult>;
26
+ stream(text: string): StreamTextResult;
27
+ messages(): Message[];
28
+ clear(): void;
29
+ }
30
+ export interface Agent {
31
+ generate(prompt: string, opts?: Partial<GenerateTextOptions>): Promise<GenerateTextResult>;
32
+ stream(prompt: string, opts?: Partial<GenerateTextOptions>): StreamTextResult;
33
+ session(id?: string): AgentSession;
34
+ close(): Promise<void>;
35
+ }
36
+ /**
37
+ * Creates a stateful agent with sessions, memory, and personality.
38
+ */
39
+ export declare function agent(opts: AgentOptions): Agent;
40
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/api/agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,KAAK,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAClH,OAAO,EAAc,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAC5D,aAAa,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;KACpE,CAAC,CAAC;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAChD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAAC;IACvC,QAAQ,IAAI,OAAO,EAAE,CAAC;IACtB,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC3F,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAAC;IAC9E,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IACnC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,KAAK,CAgE/C"}
@@ -0,0 +1,63 @@
1
+ // packages/agentos/src/api/agent.ts
2
+ import { generateText } from './generateText.js';
3
+ import { streamText } from './streamText.js';
4
+ /**
5
+ * Creates a stateful agent with sessions, memory, and personality.
6
+ */
7
+ export function agent(opts) {
8
+ const sessions = new Map();
9
+ const baseOpts = {
10
+ model: opts.model,
11
+ system: opts.instructions,
12
+ tools: opts.tools,
13
+ maxSteps: opts.maxSteps ?? 5,
14
+ apiKey: opts.apiKey,
15
+ baseUrl: opts.baseUrl,
16
+ };
17
+ return {
18
+ async generate(prompt, extra) {
19
+ return generateText({ ...baseOpts, ...extra, prompt });
20
+ },
21
+ stream(prompt, extra) {
22
+ return streamText({ ...baseOpts, ...extra, prompt });
23
+ },
24
+ session(id) {
25
+ const sessionId = id ?? `session-${Date.now()}`;
26
+ if (!sessions.has(sessionId))
27
+ sessions.set(sessionId, []);
28
+ const history = sessions.get(sessionId);
29
+ return {
30
+ id: sessionId,
31
+ async send(text) {
32
+ history.push({ role: 'user', content: text });
33
+ const result = await generateText({
34
+ ...baseOpts,
35
+ messages: [...history],
36
+ });
37
+ history.push({ role: 'assistant', content: result.text });
38
+ return result;
39
+ },
40
+ stream(text) {
41
+ history.push({ role: 'user', content: text });
42
+ const result = streamText({
43
+ ...baseOpts,
44
+ messages: [...history],
45
+ });
46
+ // Capture text for history when done
47
+ result.text.then(t => history.push({ role: 'assistant', content: t }));
48
+ return result;
49
+ },
50
+ messages() {
51
+ return [...history];
52
+ },
53
+ clear() {
54
+ history.length = 0;
55
+ },
56
+ };
57
+ },
58
+ async close() {
59
+ sessions.clear();
60
+ },
61
+ };
62
+ }
63
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/api/agent.ts"],"names":[],"mappings":"AAAA,oCAAoC;AACpC,OAAO,EAAE,YAAY,EAAmE,MAAM,mBAAmB,CAAC;AAClH,OAAO,EAAE,UAAU,EAAyB,MAAM,iBAAiB,CAAC;AAkCpE;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,IAAkB;IACtC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE9C,MAAM,QAAQ,GAAiC;QAC7C,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,YAAY;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC;QAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;IAEF,OAAO;QACL,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,KAAoC;YACjE,OAAO,YAAY,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,EAAE,MAAM,EAAyB,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,CAAC,MAAc,EAAE,KAAoC;YACzD,OAAO,UAAU,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,EAAE,MAAM,EAAyB,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,CAAC,EAAW;YACjB,MAAM,SAAS,GAAG,EAAE,IAAI,WAAW,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;YAEzC,OAAO;gBACL,EAAE,EAAE,SAAS;gBAEb,KAAK,CAAC,IAAI,CAAC,IAAY;oBACrB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC9C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;wBAChC,GAAG,QAAQ;wBACX,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC;qBACA,CAAC,CAAC;oBAC1B,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC1D,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAED,MAAM,CAAC,IAAY;oBACjB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC9C,MAAM,MAAM,GAAG,UAAU,CAAC;wBACxB,GAAG,QAAQ;wBACX,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC;qBACA,CAAC,CAAC;oBAC1B,qCAAqC;oBACrC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACvE,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAED,QAAQ;oBACN,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;gBACtB,CAAC;gBAED,KAAK;oBACH,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;gBACrB,CAAC;aACF,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,KAAK;YACT,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { type ToolDefinitionMap } from './tool-adapter.js';
2
+ export interface Message {
3
+ role: 'system' | 'user' | 'assistant' | 'tool';
4
+ content: string;
5
+ }
6
+ export interface ToolCallRecord {
7
+ name: string;
8
+ args: unknown;
9
+ result?: unknown;
10
+ error?: string;
11
+ }
12
+ export interface TokenUsage {
13
+ promptTokens: number;
14
+ completionTokens: number;
15
+ totalTokens: number;
16
+ }
17
+ export interface GenerateTextOptions {
18
+ model: string;
19
+ prompt?: string;
20
+ system?: string;
21
+ messages?: Message[];
22
+ tools?: ToolDefinitionMap;
23
+ maxSteps?: number;
24
+ temperature?: number;
25
+ maxTokens?: number;
26
+ apiKey?: string;
27
+ baseUrl?: string;
28
+ }
29
+ export interface GenerateTextResult {
30
+ text: string;
31
+ usage: TokenUsage;
32
+ toolCalls: ToolCallRecord[];
33
+ finishReason: 'stop' | 'length' | 'tool-calls' | 'error';
34
+ }
35
+ /**
36
+ * Stateless text generation. Creates a temporary provider, runs the LLM call,
37
+ * and returns the complete result. Supports multi-step tool calling.
38
+ */
39
+ export declare function generateText(opts: GenerateTextOptions): Promise<GenerateTextResult>;
40
+ //# sourceMappingURL=generateText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateText.d.ts","sourceRoot":"","sources":["../../src/api/generateText.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGvE,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC;CAC1D;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAyHzF"}
@@ -0,0 +1,117 @@
1
+ import { parseModelString, resolveProvider, createProviderManager } from './model.js';
2
+ import { adaptTools } from './tool-adapter.js';
3
+ /**
4
+ * Stateless text generation. Creates a temporary provider, runs the LLM call,
5
+ * and returns the complete result. Supports multi-step tool calling.
6
+ */
7
+ export async function generateText(opts) {
8
+ const { providerId, modelId } = parseModelString(opts.model);
9
+ const resolved = resolveProvider(providerId, modelId, { apiKey: opts.apiKey, baseUrl: opts.baseUrl });
10
+ const manager = await createProviderManager(resolved);
11
+ const provider = manager.getProvider(resolved.providerId);
12
+ if (!provider)
13
+ throw new Error(`Provider ${resolved.providerId} not available.`);
14
+ // Build messages
15
+ const messages = [];
16
+ if (opts.system)
17
+ messages.push({ role: 'system', content: opts.system });
18
+ if (opts.messages) {
19
+ for (const m of opts.messages)
20
+ messages.push({ role: m.role, content: m.content });
21
+ }
22
+ if (opts.prompt)
23
+ messages.push({ role: 'user', content: opts.prompt });
24
+ const tools = adaptTools(opts.tools);
25
+ const toolMap = new Map();
26
+ for (const t of tools)
27
+ toolMap.set(t.name, t);
28
+ const toolSchemas = tools.length > 0
29
+ ? tools.map(t => ({
30
+ type: 'function',
31
+ function: { name: t.name, description: t.description, parameters: t.inputSchema },
32
+ }))
33
+ : undefined;
34
+ const allToolCalls = [];
35
+ let totalUsage = { promptTokens: 0, completionTokens: 0, totalTokens: 0 };
36
+ const maxSteps = opts.maxSteps ?? 1;
37
+ for (let step = 0; step < maxSteps; step++) {
38
+ const response = await provider.generateCompletion(resolved.modelId, messages, {
39
+ tools: toolSchemas,
40
+ temperature: opts.temperature,
41
+ maxTokens: opts.maxTokens,
42
+ });
43
+ // Accumulate usage
44
+ if (response.usage) {
45
+ totalUsage.promptTokens += response.usage.promptTokens ?? 0;
46
+ totalUsage.completionTokens += response.usage.completionTokens ?? 0;
47
+ totalUsage.totalTokens += response.usage.totalTokens ?? 0;
48
+ }
49
+ const choice = response.choices?.[0];
50
+ if (!choice)
51
+ break;
52
+ const content = choice.message?.content;
53
+ const textContent = typeof content === 'string' ? content : content?.text ?? '';
54
+ const toolCallsInChoice = choice.message?.tool_calls ?? [];
55
+ // If assistant returned text with no tool calls, we're done
56
+ if (textContent && toolCallsInChoice.length === 0) {
57
+ return {
58
+ text: textContent,
59
+ usage: totalUsage,
60
+ toolCalls: allToolCalls,
61
+ finishReason: (choice.finishReason ?? 'stop'),
62
+ };
63
+ }
64
+ // Tool calls
65
+ if (toolCallsInChoice.length > 0) {
66
+ messages.push({
67
+ role: 'assistant',
68
+ content: textContent || null,
69
+ tool_calls: toolCallsInChoice,
70
+ });
71
+ for (const tc of toolCallsInChoice) {
72
+ const fnName = tc.function?.name ?? tc.name ?? '';
73
+ const fnArgs = tc.function?.arguments ?? '{}';
74
+ const tcId = tc.id ?? '';
75
+ const tool = toolMap.get(fnName);
76
+ const record = {
77
+ name: fnName,
78
+ args: JSON.parse(typeof fnArgs === 'string' ? fnArgs : JSON.stringify(fnArgs)),
79
+ };
80
+ if (tool) {
81
+ try {
82
+ const result = await tool.execute(record.args, {});
83
+ record.result = result.output;
84
+ record.error = result.success ? undefined : result.error;
85
+ messages.push({
86
+ role: 'tool',
87
+ tool_call_id: tcId,
88
+ content: JSON.stringify(result.output ?? result.error ?? ''),
89
+ });
90
+ }
91
+ catch (err) {
92
+ record.error = err?.message;
93
+ messages.push({ role: 'tool', tool_call_id: tcId, content: JSON.stringify({ error: err?.message }) });
94
+ }
95
+ }
96
+ allToolCalls.push(record);
97
+ }
98
+ continue;
99
+ }
100
+ // No content and no tool calls — done
101
+ return {
102
+ text: textContent,
103
+ usage: totalUsage,
104
+ toolCalls: allToolCalls,
105
+ finishReason: (choice.finishReason ?? 'stop'),
106
+ };
107
+ }
108
+ // Exhausted maxSteps — return last state
109
+ const lastAssistant = messages.filter(m => m.role === 'assistant').pop();
110
+ return {
111
+ text: lastAssistant?.content ?? '',
112
+ usage: totalUsage,
113
+ toolCalls: allToolCalls,
114
+ finishReason: 'tool-calls',
115
+ };
116
+ }
117
+ //# sourceMappingURL=generateText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateText.js","sourceRoot":"","sources":["../../src/api/generateText.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { AIModelProviderManager } from '../core/llm/providers/AIModelProviderManager.js';
2
+ export interface ParsedModel {
3
+ providerId: string;
4
+ modelId: string;
5
+ }
6
+ export interface ResolvedProvider {
7
+ providerId: string;
8
+ modelId: string;
9
+ apiKey?: string;
10
+ baseUrl?: string;
11
+ }
12
+ /**
13
+ * Parses 'provider:model' string format.
14
+ * Examples: 'openai:gpt-4o', 'ollama:llama3.2', 'openrouter:anthropic/claude-sonnet-4-5-20250929'
15
+ */
16
+ export declare function parseModelString(model: string): ParsedModel;
17
+ /**
18
+ * Resolves provider config from env vars, with optional overrides.
19
+ */
20
+ export declare function resolveProvider(providerId: string, modelId: string, overrides?: {
21
+ apiKey?: string;
22
+ baseUrl?: string;
23
+ }): ResolvedProvider;
24
+ /**
25
+ * Creates an AIModelProviderManager from a resolved provider config.
26
+ */
27
+ export declare function createProviderManager(resolved: ResolvedProvider): Promise<AIModelProviderManager>;
28
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/api/model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AAEzF,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAaD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAY3D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,gBAAgB,CA4BlB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,sBAAsB,CAAC,CAoBjC"}
@@ -0,0 +1,79 @@
1
+ // packages/agentos/src/api/model.ts
2
+ import { AIModelProviderManager } from '../core/llm/providers/AIModelProviderManager.js';
3
+ const ENV_KEY_MAP = {
4
+ openai: 'OPENAI_API_KEY',
5
+ anthropic: 'ANTHROPIC_API_KEY',
6
+ openrouter: 'OPENROUTER_API_KEY',
7
+ gemini: 'GEMINI_API_KEY',
8
+ };
9
+ const ENV_URL_MAP = {
10
+ ollama: 'OLLAMA_BASE_URL',
11
+ };
12
+ /**
13
+ * Parses 'provider:model' string format.
14
+ * Examples: 'openai:gpt-4o', 'ollama:llama3.2', 'openrouter:anthropic/claude-sonnet-4-5-20250929'
15
+ */
16
+ export function parseModelString(model) {
17
+ if (!model || typeof model !== 'string') {
18
+ throw new Error('Invalid model string. Expected "provider:model" (e.g. "openai:gpt-4o").');
19
+ }
20
+ const colonIdx = model.indexOf(':');
21
+ if (colonIdx <= 0 || colonIdx === model.length - 1) {
22
+ throw new Error(`Invalid model "${model}". Expected "provider:model" (e.g. "openai:gpt-4o").`);
23
+ }
24
+ return {
25
+ providerId: model.slice(0, colonIdx),
26
+ modelId: model.slice(colonIdx + 1),
27
+ };
28
+ }
29
+ /**
30
+ * Resolves provider config from env vars, with optional overrides.
31
+ */
32
+ export function resolveProvider(providerId, modelId, overrides) {
33
+ const apiKey = overrides?.apiKey
34
+ ?? (ENV_KEY_MAP[providerId] ? process.env[ENV_KEY_MAP[providerId]] : undefined);
35
+ const baseUrl = overrides?.baseUrl
36
+ ?? (ENV_URL_MAP[providerId] ? process.env[ENV_URL_MAP[providerId]] : undefined);
37
+ if (providerId === 'ollama') {
38
+ if (!baseUrl) {
39
+ throw new Error(`No base URL for ollama. Set OLLAMA_BASE_URL or pass baseUrl.`);
40
+ }
41
+ return { providerId, modelId, baseUrl };
42
+ }
43
+ // Anthropic goes through OpenRouter by default in AgentOS
44
+ if (providerId === 'anthropic' && !apiKey) {
45
+ const orKey = process.env['OPENROUTER_API_KEY'];
46
+ if (orKey) {
47
+ return { providerId: 'openrouter', modelId: `anthropic/${modelId}`, apiKey: orKey };
48
+ }
49
+ throw new Error(`No API key for anthropic. Set ANTHROPIC_API_KEY or OPENROUTER_API_KEY.`);
50
+ }
51
+ if (!apiKey) {
52
+ const envVar = ENV_KEY_MAP[providerId] ?? `${providerId.toUpperCase()}_API_KEY`;
53
+ throw new Error(`No API key for ${providerId}. Set ${envVar} or pass apiKey.`);
54
+ }
55
+ return { providerId, modelId, apiKey, baseUrl };
56
+ }
57
+ /**
58
+ * Creates an AIModelProviderManager from a resolved provider config.
59
+ */
60
+ export async function createProviderManager(resolved) {
61
+ const manager = new AIModelProviderManager();
62
+ const providerConfig = {};
63
+ if (resolved.apiKey)
64
+ providerConfig.apiKey = resolved.apiKey;
65
+ if (resolved.baseUrl) {
66
+ providerConfig.baseURL = resolved.baseUrl;
67
+ providerConfig.baseUrl = resolved.baseUrl;
68
+ }
69
+ await manager.initialize({
70
+ providers: [{
71
+ providerId: resolved.providerId,
72
+ enabled: true,
73
+ isDefault: true,
74
+ config: providerConfig,
75
+ }],
76
+ });
77
+ return manager;
78
+ }
79
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/api/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { GenerateTextOptions, TokenUsage, ToolCallRecord } from './generateText.js';
2
+ export type StreamPart = {
3
+ type: 'text';
4
+ text: string;
5
+ } | {
6
+ type: 'tool-call';
7
+ toolName: string;
8
+ args: unknown;
9
+ } | {
10
+ type: 'tool-result';
11
+ toolName: string;
12
+ result: unknown;
13
+ } | {
14
+ type: 'error';
15
+ error: Error;
16
+ };
17
+ export interface StreamTextResult {
18
+ textStream: AsyncIterable<string>;
19
+ fullStream: AsyncIterable<StreamPart>;
20
+ text: Promise<string>;
21
+ usage: Promise<TokenUsage>;
22
+ toolCalls: Promise<ToolCallRecord[]>;
23
+ }
24
+ /**
25
+ * Stateless streaming text generation. Returns immediately with async iterables.
26
+ */
27
+ export declare function streamText(opts: GenerateTextOptions): StreamTextResult;
28
+ //# sourceMappingURL=streamText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamText.d.ts","sourceRoot":"","sources":["../../src/api/streamText.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAW,UAAU,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAElG,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,CAAC;AAEpC,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAClC,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACtB,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,mBAAmB,GAAG,gBAAgB,CA6FtE"}
@@ -0,0 +1,92 @@
1
+ // packages/agentos/src/api/streamText.ts
2
+ import { parseModelString, resolveProvider, createProviderManager } from './model.js';
3
+ import { adaptTools } from './tool-adapter.js';
4
+ /**
5
+ * Stateless streaming text generation. Returns immediately with async iterables.
6
+ */
7
+ export function streamText(opts) {
8
+ let resolveText;
9
+ let resolveUsage;
10
+ let resolveToolCalls;
11
+ const textPromise = new Promise(r => { resolveText = r; });
12
+ const usagePromise = new Promise(r => { resolveUsage = r; });
13
+ const toolCallsPromise = new Promise(r => { resolveToolCalls = r; });
14
+ const parts = [];
15
+ let fullText = '';
16
+ const allToolCalls = [];
17
+ async function* runStream() {
18
+ const { providerId, modelId } = parseModelString(opts.model);
19
+ const resolved = resolveProvider(providerId, modelId, { apiKey: opts.apiKey, baseUrl: opts.baseUrl });
20
+ const manager = await createProviderManager(resolved);
21
+ const provider = manager.getProvider(resolved.providerId);
22
+ if (!provider)
23
+ throw new Error(`Provider ${resolved.providerId} not available.`);
24
+ const messages = [];
25
+ if (opts.system)
26
+ messages.push({ role: 'system', content: opts.system });
27
+ if (opts.messages)
28
+ for (const m of opts.messages)
29
+ messages.push({ role: m.role, content: m.content });
30
+ if (opts.prompt)
31
+ messages.push({ role: 'user', content: opts.prompt });
32
+ const tools = adaptTools(opts.tools);
33
+ const toolSchemas = tools.length > 0
34
+ ? tools.map(t => ({
35
+ type: 'function',
36
+ function: { name: t.name, description: t.description, parameters: t.inputSchema },
37
+ }))
38
+ : undefined;
39
+ const stream = provider.generateCompletionStream(resolved.modelId, messages, {
40
+ tools: toolSchemas,
41
+ temperature: opts.temperature,
42
+ maxTokens: opts.maxTokens,
43
+ });
44
+ const usage = { promptTokens: 0, completionTokens: 0, totalTokens: 0 };
45
+ for await (const chunk of stream) {
46
+ // ModelCompletionResponse uses responseTextDelta for streaming
47
+ const textDelta = chunk.responseTextDelta
48
+ ?? chunk.choices?.[0]?.message?.content
49
+ ?? '';
50
+ if (textDelta) {
51
+ fullText += textDelta;
52
+ const part = { type: 'text', text: textDelta };
53
+ parts.push(part);
54
+ yield part;
55
+ }
56
+ if (chunk.usage) {
57
+ const u = chunk.usage;
58
+ usage.promptTokens += u.promptTokens ?? u.prompt_tokens ?? 0;
59
+ usage.completionTokens += u.completionTokens ?? u.completion_tokens ?? 0;
60
+ usage.totalTokens += u.totalTokens ?? u.total_tokens ?? 0;
61
+ }
62
+ }
63
+ resolveText(fullText);
64
+ resolveUsage(usage);
65
+ resolveToolCalls(allToolCalls);
66
+ }
67
+ const fullStreamIterable = runStream();
68
+ const textStreamIterable = {
69
+ [Symbol.asyncIterator]() {
70
+ const inner = fullStreamIterable[Symbol.asyncIterator]();
71
+ return {
72
+ async next() {
73
+ while (true) {
74
+ const { value, done } = await inner.next();
75
+ if (done)
76
+ return { value: undefined, done: true };
77
+ if (value.type === 'text')
78
+ return { value: value.text, done: false };
79
+ }
80
+ },
81
+ };
82
+ },
83
+ };
84
+ return {
85
+ textStream: textStreamIterable,
86
+ fullStream: fullStreamIterable,
87
+ text: textPromise,
88
+ usage: usagePromise,
89
+ toolCalls: toolCallsPromise,
90
+ };
91
+ }
92
+ //# sourceMappingURL=streamText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamText.js","sourceRoot":"","sources":["../../src/api/streamText.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { ITool } from '../core/tools/ITool.js';
2
+ export interface ToolDefinition {
3
+ description?: string;
4
+ parameters?: Record<string, unknown>;
5
+ execute?: (args: any) => Promise<any>;
6
+ }
7
+ export type ToolDefinitionMap = Record<string, ToolDefinition | ITool>;
8
+ /**
9
+ * Adapts Zod schemas, JSON Schema objects, and ITool instances into ITool[].
10
+ */
11
+ export declare function adaptTools(tools: ToolDefinitionMap | undefined): ITool[];
12
+ //# sourceMappingURL=tool-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-adapter.d.ts","sourceRoot":"","sources":["../../src/api/tool-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAA+D,MAAM,wBAAwB,CAAC;AAEjH,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACvC;AAED,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,KAAK,CAAC,CAAC;AAEvE;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,GAAG,KAAK,EAAE,CAgDxE"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Adapts Zod schemas, JSON Schema objects, and ITool instances into ITool[].
3
+ */
4
+ export function adaptTools(tools) {
5
+ if (!tools)
6
+ return [];
7
+ const result = [];
8
+ for (const [name, def] of Object.entries(tools)) {
9
+ // ITool pass-through (has inputSchema + execute as ITool signature)
10
+ if ('inputSchema' in def && 'id' in def) {
11
+ result.push(def);
12
+ continue;
13
+ }
14
+ const td = def;
15
+ let schema;
16
+ if (td.parameters && '_def' in td.parameters) {
17
+ // Zod schema — convert to JSON Schema
18
+ try {
19
+ const { zodToJsonSchema } = require('zod-to-json-schema');
20
+ schema = zodToJsonSchema(td.parameters);
21
+ }
22
+ catch {
23
+ // zod-to-json-schema not installed — use basic extraction
24
+ schema = { type: 'object', properties: {} };
25
+ }
26
+ }
27
+ else {
28
+ schema = (td.parameters ?? { type: 'object', properties: {} });
29
+ }
30
+ const executeFn = td.execute ?? (async () => ({ success: true }));
31
+ result.push({
32
+ id: `${name}-v1`,
33
+ name,
34
+ displayName: name.replace(/([A-Z])/g, ' $1').replace(/^./, s => s.toUpperCase()).trim(),
35
+ description: td.description ?? '',
36
+ inputSchema: schema,
37
+ hasSideEffects: false,
38
+ async execute(args, _ctx) {
39
+ try {
40
+ const output = await executeFn(args);
41
+ return { success: true, output };
42
+ }
43
+ catch (err) {
44
+ return { success: false, error: err?.message ?? String(err) };
45
+ }
46
+ },
47
+ });
48
+ }
49
+ return result;
50
+ }
51
+ //# sourceMappingURL=tool-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-adapter.js","sourceRoot":"","sources":["../../src/api/tool-adapter.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAoC;IAC7D,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,MAAM,GAAY,EAAE,CAAC;IAE3B,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,oEAAoE;QACpE,IAAI,aAAa,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,GAAY,CAAC,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,MAAM,EAAE,GAAG,GAAqB,CAAC;QACjC,IAAI,MAAwB,CAAC;QAE7B,IAAI,EAAE,CAAC,UAAU,IAAI,MAAM,IAAK,EAAE,CAAC,UAAkB,EAAE,CAAC;YACtD,sCAAsC;YACtC,IAAI,CAAC;gBACH,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAQ,CAAC;gBACjE,MAAM,GAAG,eAAe,CAAC,EAAE,CAAC,UAAU,CAAqB,CAAC;YAC9D,CAAC;YAAC,MAAM,CAAC;gBACP,0DAA0D;gBAC1D,MAAM,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;YAC9C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC,EAAE,CAAC,UAAU,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,CAAqB,CAAC;QACrF,CAAC;QAED,MAAM,SAAS,GAAG,EAAE,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAElE,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,GAAG,IAAI,KAAK;YAChB,IAAI;YACJ,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE;YACvF,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE;YACjC,WAAW,EAAE,MAAM;YACnB,cAAc,EAAE,KAAK;YACrB,KAAK,CAAC,OAAO,CAAC,IAAS,EAAE,IAA0B;gBACjD,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;oBACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBACnC,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChE,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -259,6 +259,19 @@ export interface GuardrailConfig {
259
259
  * @default undefined (no timeout — wait indefinitely)
260
260
  */
261
261
  timeoutMs?: number;
262
+ /**
263
+ * Streaming evaluation mode.
264
+ *
265
+ * - `'per-chunk'` — evaluate every TEXT_DELTA individually (default behavior).
266
+ * - `'sentence-buffered'` — accumulate chunks and evaluate at sentence
267
+ * boundaries using {@link SentenceBoundaryBuffer}. The previous sentence
268
+ * is included as overlap context for safety evaluation.
269
+ *
270
+ * Only applies when {@link evaluateStreamingChunks} is `true`.
271
+ *
272
+ * @default 'per-chunk'
273
+ */
274
+ streamingMode?: 'per-chunk' | 'sentence-buffered';
262
275
  }
263
276
  /**
264
277
  * Contract for implementing custom guardrail logic.
@@ -1 +1 @@
1
- {"version":3,"file":"IGuardrailService.d.ts","sourceRoot":"","sources":["../../../src/core/guardrails/IGuardrailService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,oBAAY,eAAe;IACzB;;;OAGG;IACH,KAAK,UAAU;IAEf;;;OAGG;IACH,IAAI,SAAS;IAEb;;;;OAIG;IACH,QAAQ,aAAa;IAErB;;;;OAIG;IACH,KAAK,UAAU;CAChB;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IAEf,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAElB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,yBAAyB;IACxC,8DAA8D;IAC9D,MAAM,EAAE,eAAe,CAAC;IAExB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,kDAAkD;IAClD,OAAO,EAAE,gBAAgB,CAAC;IAE1B,2CAA2C;IAC3C,KAAK,EAAE,YAAY,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,sBAAsB;IACrC,kDAAkD;IAClD,OAAO,EAAE,gBAAgB,CAAC;IAE1B,qCAAqC;IACrC,KAAK,EAAE,eAAe,CAAC;IAEvB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,WAAW,EAAE,iBAAiB,EAAE,CAAC;CACtD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC;;;;;;;;OAQG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IAEzB;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;IAE1F;;;;;;;;;;;;;;OAcG;IACH,cAAc,CAAC,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;CAC7F"}
1
+ {"version":3,"file":"IGuardrailService.d.ts","sourceRoot":"","sources":["../../../src/core/guardrails/IGuardrailService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,oBAAY,eAAe;IACzB;;;OAGG;IACH,KAAK,UAAU;IAEf;;;OAGG;IACH,IAAI,SAAS;IAEb;;;;OAIG;IACH,QAAQ,aAAa;IAErB;;;;OAIG;IACH,KAAK,UAAU;CAChB;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IAEf,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;IAElB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,yBAAyB;IACxC,8DAA8D;IAC9D,MAAM,EAAE,eAAe,CAAC;IAExB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,kDAAkD;IAClD,OAAO,EAAE,gBAAgB,CAAC;IAE1B,2CAA2C;IAC3C,KAAK,EAAE,YAAY,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,sBAAsB;IACrC,kDAAkD;IAClD,OAAO,EAAE,gBAAgB,CAAC;IAE1B,qCAAqC;IACrC,KAAK,EAAE,eAAe,CAAC;IAEvB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,WAAW,EAAE,iBAAiB,EAAE,CAAC;CACtD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC;;;;;;;;OAQG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,WAAW,GAAG,mBAAmB,CAAC;CACnD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;OAGG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IAEzB;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;IAE1F;;;;;;;;;;;;;;OAcG;IACH,cAAc,CAAC,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAAC;CAC7F"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Buffers streaming TEXT_DELTA chunks and flushes at sentence boundaries.
3
+ * Includes the previous sentence as overlap context for safety evaluation.
4
+ */
5
+ export declare class SentenceBoundaryBuffer {
6
+ private buffer;
7
+ private previousSentence;
8
+ /** Push a chunk. Returns evaluation payload if sentence boundary detected, null otherwise. */
9
+ push(chunk: string): string | null;
10
+ /** Flush remaining buffer content (call on stream end). */
11
+ flush(): string | null;
12
+ /** Reset all state. */
13
+ reset(): void;
14
+ private findBoundary;
15
+ }
16
+ //# sourceMappingURL=SentenceBoundaryBuffer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SentenceBoundaryBuffer.d.ts","sourceRoot":"","sources":["../../../src/core/guardrails/SentenceBoundaryBuffer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,gBAAgB,CAAM;IAE9B,8FAA8F;IAC9F,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAalC,2DAA2D;IAC3D,KAAK,IAAI,MAAM,GAAG,IAAI;IAUtB,uBAAuB;IACvB,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,YAAY;CAMrB"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Buffers streaming TEXT_DELTA chunks and flushes at sentence boundaries.
3
+ * Includes the previous sentence as overlap context for safety evaluation.
4
+ */
5
+ export class SentenceBoundaryBuffer {
6
+ constructor() {
7
+ this.buffer = '';
8
+ this.previousSentence = '';
9
+ }
10
+ /** Push a chunk. Returns evaluation payload if sentence boundary detected, null otherwise. */
11
+ push(chunk) {
12
+ this.buffer += chunk;
13
+ const idx = this.findBoundary(this.buffer);
14
+ if (idx === -1)
15
+ return null;
16
+ const sentence = this.buffer.slice(0, idx + 1).trim();
17
+ this.buffer = this.buffer.slice(idx + 1);
18
+ const payload = this.previousSentence
19
+ ? `${this.previousSentence} ${sentence}`
20
+ : sentence;
21
+ this.previousSentence = sentence;
22
+ return payload;
23
+ }
24
+ /** Flush remaining buffer content (call on stream end). */
25
+ flush() {
26
+ if (!this.buffer.trim())
27
+ return null;
28
+ const result = this.previousSentence
29
+ ? `${this.previousSentence} ${this.buffer.trim()}`
30
+ : this.buffer.trim();
31
+ this.buffer = '';
32
+ this.previousSentence = '';
33
+ return result;
34
+ }
35
+ /** Reset all state. */
36
+ reset() {
37
+ this.buffer = '';
38
+ this.previousSentence = '';
39
+ }
40
+ findBoundary(text) {
41
+ for (let i = text.length - 1; i >= 0; i--) {
42
+ if ('.?!\n'.includes(text[i]))
43
+ return i;
44
+ }
45
+ return -1;
46
+ }
47
+ }
48
+ //# sourceMappingURL=SentenceBoundaryBuffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SentenceBoundaryBuffer.js","sourceRoot":"","sources":["../../../src/core/guardrails/SentenceBoundaryBuffer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,OAAO,sBAAsB;IAAnC;QACU,WAAM,GAAG,EAAE,CAAC;QACZ,qBAAgB,GAAG,EAAE,CAAC;IAuChC,CAAC;IArCC,8FAA8F;IAC9F,IAAI,CAAC,KAAa;QAChB,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB;YACnC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,IAAI,QAAQ,EAAE;YACxC,CAAC,CAAC,QAAQ,CAAC;QACb,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,2DAA2D;IAC3D,KAAK;QACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB;YAClC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE;YAClD,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,uBAAuB;IACvB,KAAK;QACH,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC7B,CAAC;IAEO,YAAY,CAAC,IAAY;QAC/B,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;CACF"}
@@ -49,5 +49,6 @@ export { GuardrailAction, type GuardrailConfig, type GuardrailContext, type Guar
49
49
  export { createGuardrailBlockedStream, evaluateInputGuardrails, type GuardrailInputOutcome, type GuardrailOutputOptions, wrapOutputGuardrails, } from './guardrailDispatcher';
50
50
  export { ParallelGuardrailDispatcher } from './ParallelGuardrailDispatcher';
51
51
  export { type CrossAgentOutputPayload, type ICrossAgentGuardrailService, isCrossAgentGuardrail, shouldObserveAgent, } from './ICrossAgentGuardrailService';
52
+ export { SentenceBoundaryBuffer } from './SentenceBoundaryBuffer';
52
53
  export { type CrossAgentEvaluationResult, type CrossAgentGuardrailContext, evaluateCrossAgentGuardrails, filterCrossAgentGuardrails, wrapWithCrossAgentGuardrails, } from './crossAgentGuardrailDispatcher';
53
54
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/guardrails/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAGH,OAAO,EACL,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAG5E,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/guardrails/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAGH,OAAO,EACL,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,GACvB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAG5E,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,iCAAiC,CAAC"}
@@ -53,6 +53,8 @@ export { createGuardrailBlockedStream, evaluateInputGuardrails, wrapOutputGuardr
53
53
  export { ParallelGuardrailDispatcher } from './ParallelGuardrailDispatcher.js';
54
54
  // Cross-agent guardrail interface and types
55
55
  export { isCrossAgentGuardrail, shouldObserveAgent, } from './ICrossAgentGuardrailService.js';
56
+ // Sentence boundary buffer for streaming evaluation
57
+ export { SentenceBoundaryBuffer } from './SentenceBoundaryBuffer.js';
56
58
  // Cross-agent guardrail dispatcher
57
59
  export { evaluateCrossAgentGuardrails, filterCrossAgentGuardrails, wrapWithCrossAgentGuardrails, } from './crossAgentGuardrailDispatcher.js';
58
60
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/guardrails/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,qCAAqC;AACrC,OAAO,EACL,eAAe,GAOhB,MAAM,qBAAqB,CAAC;AAE7B,iCAAiC;AACjC,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EAGvB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,0CAA0C;AAC1C,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,4CAA4C;AAC5C,OAAO,EAGL,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAEvC,mCAAmC;AACnC,OAAO,EAGL,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/guardrails/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,qCAAqC;AACrC,OAAO,EACL,eAAe,GAOhB,MAAM,qBAAqB,CAAC;AAE7B,iCAAiC;AACjC,OAAO,EACL,4BAA4B,EAC5B,uBAAuB,EAGvB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAE/B,0CAA0C;AAC1C,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,4CAA4C;AAC5C,OAAO,EAGL,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AAEvC,oDAAoD;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,mCAAmC;AACnC,OAAO,EAGL,4BAA4B,EAC5B,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,iCAAiC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -62,4 +62,13 @@ export * from './memory';
62
62
  export * from './core/provenance';
63
63
  export * from './core/safety';
64
64
  export { EXTENSION_SECRET_DEFINITIONS, type ExtensionSecretDefinition, getSecretDefinition, resolveSecretForProvider, } from './config/extensionSecrets.js';
65
+ export { generateText } from './api/generateText.js';
66
+ export type { GenerateTextOptions, GenerateTextResult, Message, ToolCallRecord, TokenUsage } from './api/generateText.js';
67
+ export { streamText } from './api/streamText.js';
68
+ export type { StreamTextResult, StreamPart } from './api/streamText.js';
69
+ export { agent } from './api/agent.js';
70
+ export type { Agent, AgentSession, AgentOptions } from './api/agent.js';
71
+ export { parseModelString, resolveProvider } from './api/model.js';
72
+ export { adaptTools } from './api/tool-adapter.js';
73
+ export type { ToolDefinitionMap } from './api/tool-adapter.js';
65
74
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AACjD,YAAY,EAAE,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC7G,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iDAAiD,CAAC;AAChE,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kCAAkC,CAAC;AACjD,cAAc,mDAAmD,CAAC;AAClE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AAEvF,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,YAAY,EACV,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,YAAY,EACV,sBAAsB,EACtB,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,GACd,MAAM,sCAAsC,CAAC;AAE9C,cAAc,iBAAiB,CAAC;AAEhC,cAAc,aAAa,CAAC;AAE5B,cAAc,mBAAmB,CAAC;AAElC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,sBAAsB,CAAC;AAErC,cAAc,mBAAmB,CAAC;AAElC,cAAc,kBAAkB,CAAC;AAEjC,cAAc,oBAAoB,CAAC;AAEnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mDAAmD,CAAC;AAClE,cAAc,4DAA4D,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAC;AAErG,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAE7B,cAAc,YAAY,CAAC;AAE3B,cAAc,SAAS,CAAC;AAExB,cAAc,UAAU,CAAC;AAEzB,cAAc,UAAU,CAAC;AAEzB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7F,cAAc,wBAAwB,CAAC;AAEvC,cAAc,gBAAgB,CAAC;AAE/B,cAAc,OAAO,CAAC;AAEtB,cAAc,UAAU,CAAC;AAEzB,cAAc,mBAAmB,CAAC;AAElC,cAAc,eAAe,CAAC;AAE9B,OAAO,EACL,4BAA4B,EAC5B,KAAK,yBAAyB,EAC9B,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -81,4 +81,10 @@ export * from './core/provenance/index.js';
81
81
  export * from './core/safety/index.js';
82
82
  // Extension Secrets Catalog
83
83
  export { EXTENSION_SECRET_DEFINITIONS, getSecretDefinition, resolveSecretForProvider, } from './config/extensionSecrets.js';
84
+ // --- High-Level API (AI SDK style) ---
85
+ export { generateText } from './api/generateText.js';
86
+ export { streamText } from './api/streamText.js';
87
+ export { agent } from './api/agent.js';
88
+ export { parseModelString, resolveProvider } from './api/model.js';
89
+ export { adaptTools } from './api/tool-adapter.js';
84
90
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kCAAkC,CAAC;AAEjD,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,iDAAiD,CAAC;AAChE,cAAc,yCAAyC,CAAC;AACxD,cAAc,+CAA+C,CAAC;AAC9D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,kCAAkC,CAAC;AACjD,cAAc,mDAAmD,CAAC;AAClE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,yCAAyC,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gDAAgD,CAAC;AACvF,mCAAmC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAOxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAU5E,kBAAkB;AAClB,cAAc,iBAAiB,CAAC;AAChC,2BAA2B;AAC3B,cAAc,aAAa,CAAC;AAC5B,qDAAqD;AACrD,cAAc,mBAAmB,CAAC;AAClC,yBAAyB;AACzB,cAAc,gBAAgB,CAAC;AAC/B,0BAA0B;AAC1B,cAAc,sBAAsB,CAAC;AACrC,uBAAuB;AACvB,cAAc,mBAAmB,CAAC;AAClC,kBAAkB;AAClB,cAAc,kBAAkB,CAAC;AACjC,oBAAoB;AACpB,cAAc,oBAAoB,CAAC;AACnC,8BAA8B;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,4CAA4C,CAAC;AAC3D,cAAc,mDAAmD,CAAC;AAClE,cAAc,4DAA4D,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8DAA8D,CAAC;AACrG,aAAa;AACb,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,kDAAkD;AAClD,cAAc,YAAY,CAAC;AAC3B,oCAAoC;AACpC,cAAc,SAAS,CAAC;AACxB,iDAAiD;AACjD,cAAc,UAAU,CAAC;AACzB,mCAAmC;AACnC,cAAc,UAAU,CAAC;AACzB,uBAAuB;AACvB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7F,mBAAmB;AACnB,cAAc,wBAAwB,CAAC;AACvC,mBAAmB;AACnB,cAAc,gBAAgB,CAAC;AAC/B,uCAAuC;AACvC,cAAc,OAAO,CAAC;AACtB,0BAA0B;AAC1B,cAAc,UAAU,CAAC;AACzB,mCAAmC;AACnC,cAAc,mBAAmB,CAAC;AAClC,0EAA0E;AAC1E,cAAc,eAAe,CAAC;AAC9B,4BAA4B;AAC5B,OAAO,EACL,4BAA4B,EAE5B,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@framers/agentos",
3
- "version": "0.1.62",
3
+ "version": "0.1.64",
4
4
  "description": "Modular AgentOS orchestration library",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",