@ekairos/story 1.21.22-beta.0 → 1.21.24-beta.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.
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/agent.js CHANGED
@@ -87,8 +87,14 @@ class Story {
87
87
  : contextIdentifier?.key
88
88
  ? { key: contextIdentifier.key }
89
89
  : { id: String(currentContext.id) };
90
- // save incoming event
91
- const triggerEvent = await this.agentService.saveEvent(contextSelector, incomingEvent);
90
+ // Use existing event if it has an id, otherwise create new one
91
+ let triggerEvent;
92
+ if (incomingEvent.id) {
93
+ triggerEvent = await this.agentService.getEvent(incomingEvent.id);
94
+ }
95
+ else {
96
+ triggerEvent = await this.agentService.saveEvent(contextSelector, incomingEvent);
97
+ }
92
98
  const triggerEventId = triggerEvent.id; // trigger event id
93
99
  const eventId = (0, admin_1.id)(); // reaction event id
94
100
  // Set context status to "streaming" before creating execution
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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","sourcesContent":["import { init, id, tx, lookup, InstaQLEntity,InstantAdminDatabase } from \"@instantdb/admin\"\nimport { convertToModelMessages, createUIMessageStream, generateText, ModelMessage, smoothStream, stepCountIs, streamText, Tool, tool, UIMessageStreamWriter } from \"ai\"\nimport { openai } from \"@ai-sdk/openai\"\nimport { z } from \"zod\"\n\nimport { UIMessage } from 'ai';\nimport { initLogger } from \"braintrust\";\nimport { AgentService, ContextEvent, ContextIdentifier, StoredContext } from \"./service\";\nimport { ASSISTANT_MESSAGE_TYPE, convertEventsToModelMessages, convertEventToModelMessages, convertModelMessageToEvent, createAssistantEventFromUIMessages, createUserEventFromUIMessages, ResponseMessage, SYSTEM_MESSAGE_TYPE } from \"./events\";\n\nimport { storyDomain } from \"./schema\";\nimport { SchemaOf } from \"@ekairos/domain\";\n\n// Inicializar Braintrust logger\nconst logger = initLogger({\n projectName: \"pulzar platform\",\n apiKey: process.env.BRAINTRUST_API_KEY,\n});\n\n// Define your custom message type with data part schemas\nexport type AgentMessage = UIMessage<\n never, // metadata type\n {\n weather: {\n city: string;\n weather?: string;\n status: 'loading' | 'success';\n };\n notification: {\n message: string;\n level: 'info' | 'warning' | 'error';\n };\n } // data parts type\n>;\n\nexport interface AgentOptions {\n onEventCreated?: (event: any) => void | Promise<void>\n evaluateToolCalls?: (toolCalls: any[]) => Promise<{ success: boolean; message?: string }>\n onToolCallExecuted?: (executionEvent: any) => void | Promise<void>\n onEnd?: (lastEvent: ContextEvent) => void | { end?: boolean } | Promise<void | { end?: boolean }>\n}\n\nexport interface ProgressStreamOptions {\n reasoningEffort?: \"off\" | \"low\" | \"medium\" | \"high\"\n webSearch?: boolean\n}\n\nexport type DataStreamWriter = UIMessageStreamWriter<AgentMessage>\nconst createDataStream = createUIMessageStream;\n\n\nexport abstract class Story<Context> {\n protected db: InstantAdminDatabase<SchemaOf<typeof storyDomain>>\n protected agentService: AgentService\n\n constructor(db: InstantAdminDatabase<SchemaOf<typeof storyDomain>>, private opts: AgentOptions = {}) {\n this.db = db\n this.agentService = new AgentService(db)\n }\n\n protected abstract buildSystemPrompt(context: StoredContext<Context>, ...args: any[]): Promise<string> | string\n protected abstract buildTools(context: StoredContext<Context>, dataStream: DataStreamWriter): Promise<Record<string, Tool>>\n protected abstract initialize(context: StoredContext<Context>): Promise<Context>\n\n protected getModel(context: StoredContext<Context>) {\n return \"openai/gpt-5\"\n }\n\n protected includeBaseTools(): { createMessage: boolean; requestDirection: boolean; end: boolean } {\n return { createMessage: true, requestDirection: true, end: true }\n }\n\n protected async getFinalizationToolNames(): Promise<string[]> {\n return []\n }\n\n private static readonly FINAL_TOOL_NAMES = [\"createMessage\", \"requestDirection\", \"end\"]\n\n protected getBaseTools(dataStream: DataStreamWriter, threadId: string): Record<string, Tool> {\n const include = this.includeBaseTools()\n const baseTools: Record<string, Tool> = {}\n\n if (include.createMessage) {\n baseTools.createMessage = tool({\n description: \"Send a message to the user. Use for final confirmations or information.\",\n inputSchema: z.object({\n message: z.string().describe(\"Message for the user in markdown format\")\n }),\n })\n }\n\n if (include.requestDirection) {\n baseTools.requestDirection = tool({\n description: \"Ask a human for guidance when blocked or unsure.\",\n inputSchema: z.object({\n issue: z.string(),\n context: z.string(),\n suggestedActions: z.array(z.string()).optional(),\n urgency: z.enum([\"low\", \"medium\", \"high\"]).default(\"medium\"),\n }),\n })\n }\n\n if (include.end) {\n baseTools.end = tool({\n description: \"End the current interaction loop.\",\n inputSchema: z.object({}).strict(),\n execute: async () => {\n return { success: true, message: \"Ended\" }\n },\n })\n }\n\n return baseTools\n }\n\n protected async executeCreateMessage(\n eventId: string,\n args: { message: string; type: \"info\" | \"confirmation\" | \"warning\" | \"error\" | \"success\"; includeContext?: boolean },\n threadId: string,\n dataStream?: DataStreamWriter,\n ): Promise<any> {\n const assistantMessage = { id: eventId, role: \"assistant\" as const, content: args.message, createdAt: new Date() } as any\n try {\n await this.saveMessagesToThread(threadId, [assistantMessage])\n } catch { }\n if (dataStream) {\n //dataStream.writeData({ type: \"user-response\", message: args.message, responseType: args.type, includeContext: Boolean(args.includeContext), timestamp: new Date().toISOString() } as any)\n }\n return { success: true, message: args.message, data: { messageId: assistantMessage.id, threadId } }\n }\n\n protected async executeRequestDirection(\n eventId: string,\n args: { issue: string; context: string; suggestedActions?: string[]; urgency: \"low\" | \"medium\" | \"high\" },\n threadId: string,\n _dataStream?: DataStreamWriter,\n ): Promise<any> {\n const systemMessage = { id: eventId, role: \"assistant\" as const, content: `Direction requested: ${args.issue}\\nContext: ${args.context}`, createdAt: new Date() } as any\n return { success: true, message: \"Direction requested\", data: { messageId: systemMessage.id, threadId } }\n }\n\n public async progressStream(\n incomingEvent: ContextEvent,\n contextIdentifier: ContextIdentifier | null,\n options?: ProgressStreamOptions\n ) {\n\n // get or create context\n const currentContext = await this.agentService.getOrCreateContext<Context>(contextIdentifier)\n\n const contextSelector: ContextIdentifier = contextIdentifier?.id\n ? { id: String(contextIdentifier.id) }\n : contextIdentifier?.key\n ? { key: contextIdentifier.key }\n : { id: String(currentContext.id) }\n\n // save incoming event\n const triggerEvent = await this.agentService.saveEvent(contextSelector, incomingEvent)\n\n const triggerEventId = triggerEvent.id // trigger event id\n const eventId = id() // reaction event id\n\n // Set context status to \"streaming\" before creating execution\n await this.agentService.updateContextStatus(contextSelector, \"streaming\")\n\n // create execution and set context status\n const execution = await this.agentService.createExecution(contextSelector, triggerEventId, eventId)\n const executionId = execution.id\n\n let latestReactionEvent: ContextEvent | null = null\n let executionStatus: \"executing\" | \"completed\" | \"failed\" = \"executing\"\n\n const markFailure = async () => {\n if (latestReactionEvent && latestReactionEvent.status !== \"failed\") {\n try {\n latestReactionEvent = await this.agentService.updateEvent(latestReactionEvent.id, {\n ...latestReactionEvent,\n status: \"failed\",\n })\n }\n catch (eventError) {\n console.error(\"Failed to mark reaction event as failed\", eventError)\n }\n }\n\n if (executionStatus === \"executing\") {\n try {\n await this.agentService.completeExecution(contextSelector, executionId, \"failed\")\n executionStatus = \"failed\"\n }\n catch (executionError) {\n console.error(\"Failed to mark execution as failed\", executionError)\n }\n }\n }\n\n const dataStreamResult = createDataStream({\n execute: async ({ writer: dataStream }: { writer: DataStreamWriter }) => {\n let loopSafety = 0\n const MAX_LOOPS = 20\n\n // load previous events (already in chronological order from InstantDB)\n const events: ContextEvent[] = await this.agentService.getEvents(contextSelector)\n const contextId = currentContext.id\n \n console.log(\"[agent] Loaded events from InstantDB:\", {\n contextId,\n eventsCount: events.length,\n eventsPreview: events.slice(-3).map((e: any) => ({\n id: e.id,\n type: e.type,\n createdAt: e.createdAt\n }))\n })\n\n let reactionEvent = await this.agentService.saveEvent(contextSelector, {\n id: eventId,\n type: \"assistant\",\n channel: \"agent\",\n createdAt: new Date().toISOString(),\n content: { parts: [] },\n status: \"pending\",\n })\n latestReactionEvent = reactionEvent\n\n dataStream.write({ type: \"event-start\", data: { eventId: eventId } } as any)\n while (loopSafety < MAX_LOOPS) {\n\n dataStream.write({ type: \"start-step\" })\n\n loopSafety++\n\n // Read context\n const currentContext = await this.agentService.getContext<Context>(contextSelector)\n dataStream.write({ type: \"data-context-id\", data: { contextId: currentContext.id } } as any)\n\n // Initialize on each loop and get new context data\n const contextContent = await this.initialize(currentContext)\n\n // Update context\n const updatedContext = await this.agentService.updateContextContent({ id: String(currentContext.id) }, contextContent)\n\n // Build tools\n const subclassToolsAll = await this.buildTools(updatedContext, dataStream)\n\n // Build base tools for agent loop control\n const baseTools = this.getBaseTools(dataStream, String(updatedContext.id))\n const tools: Record<string, Tool> = { ...subclassToolsAll, ...baseTools }\n\n // Add web search if enabled\n if (options?.webSearch) {\n tools.web_search = openai.tools.webSearch() as any\n }\n\n // Extract execute functions from tools\n const executeMap: Record<string, (args: any) => Promise<any>> = {}\n for (const [name, t] of Object.entries(subclassToolsAll)) {\n if ((t as any).execute) {\n executeMap[name] = (t as any).execute as (args: any) => Promise<any>\n }\n }\n\n const include = this.includeBaseTools()\n if (include.createMessage) {\n executeMap[\"createMessage\"] = (args: any) => this.executeCreateMessage(eventId, args, String(updatedContext.id), dataStream)\n }\n if (include.requestDirection) {\n executeMap[\"requestDirection\"] = (args: any) => this.executeRequestDirection(eventId, args, String(updatedContext.id), dataStream)\n }\n if (include.end) {\n executeMap[\"end\"] = async () => ({ success: true, message: \"Ended\" })\n }\n\n for (const [, t] of Object.entries(tools)) {\n delete (t as any).execute\n }\n\n const messagesForModel: ModelMessage[] = await convertEventsToModelMessages(\n reactionEvent.status !== \"pending\"\n ? [...events, reactionEvent]\n : [...events],\n this.db\n )\n\n const systemPrompt = await this.buildSystemPrompt(updatedContext)\n\n const providerOptions: any = {}\n const hasReasoning = options?.reasoningEffort && options.reasoningEffort !== \"off\"\n \n if (hasReasoning) {\n providerOptions.openai = {\n reasoningEffort: options.reasoningEffort,\n reasoningSummary: 'detailed',\n }\n console.log(\"[agent] Reasoning enabled:\", {\n reasoningEffort: options.reasoningEffort,\n model: this.getModel(updatedContext),\n providerOptions\n })\n } else {\n console.log(\"[agent] Reasoning disabled or off\")\n }\n\n // Allow more steps when using reasoning to give the model time to think\n const maxSteps = hasReasoning ? 5 : 1\n\n const result = streamText({\n model: this.getModel(updatedContext),\n system: systemPrompt,\n messages: messagesForModel,\n tools,\n toolChoice: \"required\",\n onStepFinish: (step) => {\n console.log(\"onStepFinish\", step)\n },\n stopWhen: stepCountIs(maxSteps),\n experimental_transform: smoothStream({\n delayInMs: 30,\n chunking: 'word',\n }),\n ...(Object.keys(providerOptions).length > 0 && { providerOptions }),\n })\n\n result.consumeStream()\n\n // create promise\n let resolveFinish!: (value: ContextEvent) => void\n let rejectFinish!: (reason?: unknown) => void\n const finishPromise = new Promise<ContextEvent>((resolve, reject) => {\n resolveFinish = resolve\n rejectFinish = reject\n })\n\n dataStream.merge(result.toUIMessageStream({\n sendStart: false,\n generateMessageId: () => {\n return eventId\n },\n messageMetadata(options) {\n return {\n eventId: eventId,\n }\n },\n onFinish: ({ messages }) => {\n console.log(\"[agent] Messages finished:\", messages.map((m: any) => ({\n role: m.role,\n parts: m.parts?.map((p: any) => ({\n type: p.type,\n text: p.text?.substring(0, 100),\n hasReasoning: p.type === \"reasoning\"\n }))\n })))\n const lastEvent = createAssistantEventFromUIMessages(eventId, messages)\n resolveFinish(lastEvent)\n },\n onError: (e: unknown) => {\n console.error(\"Agent error:\", e)\n rejectFinish(e)\n const message = e instanceof Error ? e.message : String(e)\n return message\n }\n }).pipeThrough(new TransformStream({\n transform(chunk: any, controller: any) {\n\n if (chunk.type === \"start\") {\n return;\n }\n\n if (chunk.type === \"finish-step\") {\n return;\n }\n\n if (chunk.type === \"start-step\") {\n return\n }\n\n if (chunk.type === \"finish\") {\n return;\n }\n\n controller.enqueue(chunk as any)\n }\n })))\n\n // wait for the on finish here\n const lastEvent = await finishPromise\n\n const toolCalls = lastEvent.content.parts.reduce((acc: any[], p: any) => {\n if (typeof p.type === \"string\" && p.type.startsWith(\"tool-\")) {\n const toolName = p.type.split(\"-\")[1]\n acc.push({ toolCallId: p.toolCallId, toolName: toolName, args: p.input });\n }\n return acc;\n }, []);\n\n console.log(\"agent.toolCalls.detected\", {\n eventId,\n toolCalls: toolCalls.map((call: any) => ({ toolCallId: call.toolCallId, toolName: call.toolName }))\n });\n\n if (!toolCalls.length) {\n const shouldEndInteraction = await this.callOnEnd(lastEvent)\n if (shouldEndInteraction) {\n break\n }\n continue\n }\n const reactionEventWithParts = {\n ...reactionEvent,\n content: { parts: [...reactionEvent.content.parts, ...lastEvent.content.parts] },\n }\n\n let currentEventState = await this.agentService.updateEvent(reactionEvent.id, reactionEventWithParts)\n latestReactionEvent = currentEventState\n\n const executionResults = await Promise.all(toolCalls.map(async (tc: any) => {\n console.log(\"agent.toolCall.selected\", {\n eventId,\n toolCallId: tc.toolCallId,\n toolName: tc.toolName\n })\n\n let execSuccess = true\n let execMessage = \"Executed\"\n let execResult: any = null\n try {\n const execFn = executeMap[tc.toolName]\n if (execFn) {\n console.log(\"agent.toolCall.execute.start\", { toolCallId: tc.toolCallId, toolName: tc.toolName })\n execResult = await execFn(tc.args)\n execSuccess = execResult?.success !== false\n execMessage = execResult?.message || execMessage\n console.log(\"agent.toolCall.execute.success\", {\n toolCallId: tc.toolCallId,\n toolName: tc.toolName,\n success: execSuccess\n })\n console.log(\"agent.toolCall.execute.result\", {\n toolCallId: tc.toolCallId,\n toolName: tc.toolName,\n result: execResult\n })\n }\n }\n catch (err: any) {\n execSuccess = false\n execMessage = err.message\n console.error(\"agent.toolCall.execute.error\", {\n toolCallId: tc.toolCallId,\n toolName: tc.toolName,\n error: err\n })\n }\n\n return { tc, execSuccess, execMessage, execResult }\n }))\n\n let exitOuterLoop = false\n const customFinalizationTools = await this.getFinalizationToolNames()\n const allFinalToolNames = [...Story.FINAL_TOOL_NAMES, ...customFinalizationTools]\n\n // PRIMERO: Guardar TODOS los resultados de las tools\n for (const { tc, execSuccess, execMessage, execResult } of executionResults) {\n try {\n if (execSuccess) {\n dataStream.write({\n type: \"tool-output-available\",\n toolCallId: tc.toolCallId,\n output: execResult,\n } as any)\n }\n else {\n dataStream.write({\n type: \"tool-output-error\",\n toolCallId: tc.toolCallId,\n errorText: String(execMessage || \"Error\"),\n } as any)\n }\n }\n catch (e) {\n console.error(\"Failed to write tool result to stream\", e)\n }\n\n const existingParts = currentEventState?.content?.parts || []\n const mergedParts = existingParts.map((p: any) => {\n if (p.type === `tool-${tc.toolName}` && p.toolCallId === tc.toolCallId) {\n if (execSuccess) {\n return {\n ...p,\n state: \"output-available\",\n output: execResult,\n }\n }\n return {\n ...p,\n state: \"output-error\",\n errorText: String(execMessage || \"Error\"),\n }\n }\n return p\n })\n\n currentEventState = await this.agentService.updateEvent(currentEventState.id, {\n id: currentEventState.id,\n type: currentEventState.type,\n channel: \"agent\",\n createdAt: currentEventState.createdAt,\n content: { parts: mergedParts },\n })\n\n dataStream.write({ type: \"finish-step\" })\n\n await this.opts.onToolCallExecuted?.({\n id: currentEventState.id,\n toolCall: tc,\n event: currentEventState.id,\n success: execSuccess,\n message: execMessage,\n result: execResult,\n })\n }\n\n // SEGUNDO: Verificar si debe terminar (después de guardar todo)\n for (const { tc, execSuccess } of executionResults) {\n let shouldEnd = false\n if (!execSuccess) {\n const shouldEndInteraction = await this.callOnEnd(lastEvent)\n if (shouldEndInteraction) {\n shouldEnd = true\n }\n }\n\n if (!shouldEnd) {\n if (allFinalToolNames.includes(tc.toolName)) {\n const shouldEndInteraction = await this.callOnEnd(lastEvent)\n if (shouldEndInteraction) {\n shouldEnd = true\n }\n }\n }\n\n if (shouldEnd) {\n dataStream.write({ type: \"finish\", override: true } as any)\n exitOuterLoop = true\n break\n }\n }\n\n reactionEvent = currentEventState\n\n if (exitOuterLoop) {\n break\n }\n }\n reactionEvent = await this.agentService.updateEvent(reactionEvent.id, {\n ...reactionEvent,\n status: \"completed\",\n })\n latestReactionEvent = reactionEvent\n try {\n await this.agentService.completeExecution(contextSelector, executionId, \"completed\")\n executionStatus = \"completed\"\n }\n catch (error) {\n console.error(\"Failed to mark execution as completed\", error)\n }\n },\n onError: (error) => {\n console.error(\"Agent error:\", error)\n void markFailure()\n return error instanceof Error ? error.message : String(error)\n },\n onFinish: async () => {\n if (executionStatus === \"executing\") {\n try {\n await this.agentService.completeExecution(contextSelector, executionId, \"completed\")\n executionStatus = \"completed\"\n }\n catch (executionError) {\n console.error(\"Failed to finalize execution on finish\", executionError)\n }\n }\n console.log(\"Agent finished\")\n }\n })\n\n // start the stream\n\n const dataStreamFilteredResult = dataStreamResult.pipeThrough(new TransformStream({\n transform(chunk: any, controller: any) {\n if (chunk.type === \"start\") {\n console.log(\"start\", chunk.data)\n return;\n }\n\n if (chunk.type === \"event-start\") {\n controller.enqueue({ type: \"start\", messageId: chunk.data.eventId })\n return;\n }\n\n controller.enqueue(chunk as any)\n }\n }))\n\n return {\n contextId: currentContext.id,\n triggerEventId,\n reactionEventId: eventId,\n stream: dataStreamFilteredResult,\n executionId,\n }\n }\n\n private async saveMessagesToThread(threadId: string, messages: Array<any>) {\n // Placeholder for persistence hook. Not implemented in current scope.\n return\n }\n\n private async callOnEnd(lastEvent: ContextEvent): Promise<boolean> {\n if (!this.opts.onEnd) {\n return true\n }\n\n try {\n const result = await this.opts.onEnd(lastEvent)\n if (typeof result === \"boolean\") {\n return result\n }\n if (result && typeof result === \"object\") {\n if (Object.prototype.hasOwnProperty.call(result, \"end\")) {\n return Boolean(result.end)\n }\n }\n return true\n } catch (error) {\n console.error(\"onEnd callback failed\", error)\n return true\n }\n }\n\n\n\n\n}\n\nexport interface AgentConfig<Context> {\n db: InstantAdminDatabase<SchemaOf<typeof storyDomain>>\n context: (context: StoredContext<Context>) => Promise<Context> | Context\n systemPrompt: (context: StoredContext<Context>) => Promise<string> | string\n tools: (context: StoredContext<Context>, dataStream: DataStreamWriter) => Promise<Record<string, Tool>> | Record<string, Tool>\n model?: string | ((context: StoredContext<Context>) => string)\n opts?: AgentOptions\n includeBaseTools?: { createMessage?: boolean; requestDirection?: boolean; end?: boolean }\n}\n\nexport type AgentInstance<Context> = Story<Context> & {\n readonly __config: AgentConfig<Context>\n}\n\nexport function agent<Context>(config: AgentConfig<Context>): AgentInstance<Context> {\n class FunctionalAgent extends Story<Context> {\n public readonly __config = config\n\n constructor() {\n super(config.db, config.opts)\n }\n\n protected includeBaseTools(): { createMessage: boolean; requestDirection: boolean; end: boolean } {\n if (config.includeBaseTools) {\n return {\n createMessage: config.includeBaseTools.createMessage ?? true,\n requestDirection: config.includeBaseTools.requestDirection ?? true,\n end: config.includeBaseTools.end ?? true,\n }\n }\n return super.includeBaseTools()\n }\n\n protected async buildSystemPrompt(context: StoredContext<Context>) {\n return config.systemPrompt(context)\n }\n\n protected async buildTools(context: StoredContext<Context>, dataStream: DataStreamWriter) {\n return config.tools(context, dataStream)\n }\n\n protected async initialize(context: StoredContext<Context>) {\n return config.context(context)\n }\n\n protected getModel(context: StoredContext<Context>) {\n if (typeof config.model === 'function') {\n return config.model(context)\n }\n return config.model || super.getModel(context)\n }\n }\n const instance = new FunctionalAgent()\n return Object.assign(instance, { __config: config })\n}\n\n// Alias para retrocompatibilidad\nexport { Story as Agent }\n\ntype InitializedStoredContext<Context> = StoredContext<Context> & { content: Context }\n\ntype BuilderSystemPrompt<Context> = (\n context: InitializedStoredContext<Context>\n) => Promise<string> | string\n\ntype BuilderTools<Context> = (\n context: InitializedStoredContext<Context>,\n dataStream: DataStreamWriter\n) => Promise<Record<string, Tool>> | Record<string, Tool>\n\ntype BuilderModel<Context> =\n | string\n | ((context: InitializedStoredContext<Context>) => string)\n\ntype BuilderIncludeBaseTools = { createMessage?: boolean; requestDirection?: boolean; end?: boolean }\n\ntype FluentAgentBuilder<Context> = {\n systemPrompt(fn: BuilderSystemPrompt<Context>): FluentAgentBuilder<Context>\n tools(fn: BuilderTools<Context>): FluentAgentBuilder<Context>\n model(model: BuilderModel<Context>): FluentAgentBuilder<Context>\n opts(opts: AgentOptions): FluentAgentBuilder<Context>\n includeBaseTools(baseTools: BuilderIncludeBaseTools): FluentAgentBuilder<Context>\n config(): AgentConfig<Context>\n build(): AgentInstance<Context>\n}\n\ntype AnyContextInitializer = (context: StoredContext<any>) => Promise<any> | any\n\ntype InferContextFromInitializer<I extends AnyContextInitializer> = Awaited<ReturnType<I>>\n\ntype CreateAgentEntry = {\n context<Initializer extends AnyContextInitializer>(\n initializer: Initializer\n ): FluentAgentBuilder<InferContextFromInitializer<Initializer>>\n initialize<Initializer extends AnyContextInitializer>(\n initializer: Initializer\n ): FluentAgentBuilder<InferContextFromInitializer<Initializer>>\n}\n\nfunction assertConfigComplete<Context>(\n config: Partial<AgentConfig<Context>>\n): asserts config is AgentConfig<Context> {\n if (!config.db) {\n throw new Error(\"createAgent: Debes proporcionar db como parámetro.\")\n }\n\n if (!config.context) {\n throw new Error(\"createAgent: Debes definir context() antes de construir el agente.\")\n }\n\n if (!config.systemPrompt) {\n throw new Error(\"createAgent: Debes definir systemPrompt() antes de construir el agente.\")\n }\n\n if (!config.tools) {\n throw new Error(\"createAgent: Debes definir tools() antes de construir el agente.\")\n }\n}\n\nfunction ensureInitializedContext<Context>(\n context: StoredContext<Context>\n): InitializedStoredContext<Context> {\n if (!context.content) {\n throw new Error(\n \"createAgent: context() debe devolver datos antes de usar systemPrompt/tools.\"\n )\n }\n return context as InitializedStoredContext<Context>\n}\n\nexport function createAgent(db: InstantAdminDatabase<SchemaOf<typeof storyDomain>>): CreateAgentEntry {\n const initializeBuilder = <Initializer extends AnyContextInitializer>(initializer: Initializer) => {\n type Context = InferContextFromInitializer<Initializer>\n\n const typedInitializer: AgentConfig<Context>[\"context\"] = (context) =>\n initializer(context as StoredContext<Context>)\n\n const fluentState: Partial<AgentConfig<Context>> = {\n db,\n context: typedInitializer,\n }\n\n const builder: FluentAgentBuilder<Context> = {\n systemPrompt(systemPrompt) {\n fluentState.systemPrompt = (context) =>\n systemPrompt(ensureInitializedContext(context))\n return builder\n },\n tools(toolsFactory) {\n fluentState.tools = (context, dataStream) =>\n toolsFactory(ensureInitializedContext(context), dataStream)\n return builder\n },\n model(model) {\n if (typeof model === \"function\") {\n fluentState.model = (context) =>\n model(ensureInitializedContext(context))\n } else {\n fluentState.model = model\n }\n return builder\n },\n opts(options) {\n fluentState.opts = options\n return builder\n },\n includeBaseTools(baseTools) {\n fluentState.includeBaseTools = baseTools\n return builder\n },\n config() {\n assertConfigComplete(fluentState)\n return fluentState\n },\n build() {\n assertConfigComplete(fluentState)\n return agent(fluentState)\n },\n }\n\n return builder\n }\n\n return {\n context: initializeBuilder,\n initialize: initializeBuilder,\n }\n}\n\n"]}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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","sourcesContent":["import { init, id, tx, lookup, InstaQLEntity,InstantAdminDatabase } from \"@instantdb/admin\"\nimport { convertToModelMessages, createUIMessageStream, generateText, ModelMessage, smoothStream, stepCountIs, streamText, Tool, tool, UIMessageStreamWriter } from \"ai\"\nimport { openai } from \"@ai-sdk/openai\"\nimport { z } from \"zod\"\n\nimport { UIMessage } from 'ai';\nimport { initLogger } from \"braintrust\";\nimport { AgentService, ContextEvent, ContextIdentifier, StoredContext } from \"./service\";\nimport { ASSISTANT_MESSAGE_TYPE, convertEventsToModelMessages, convertEventToModelMessages, convertModelMessageToEvent, createAssistantEventFromUIMessages, createUserEventFromUIMessages, ResponseMessage, SYSTEM_MESSAGE_TYPE } from \"./events\";\n\nimport { storyDomain } from \"./schema\";\nimport { SchemaOf } from \"@ekairos/domain\";\n\n// Inicializar Braintrust logger\nconst logger = initLogger({\n projectName: \"pulzar platform\",\n apiKey: process.env.BRAINTRUST_API_KEY,\n});\n\n// Define your custom message type with data part schemas\nexport type AgentMessage = UIMessage<\n never, // metadata type\n {\n weather: {\n city: string;\n weather?: string;\n status: 'loading' | 'success';\n };\n notification: {\n message: string;\n level: 'info' | 'warning' | 'error';\n };\n } // data parts type\n>;\n\nexport interface AgentOptions {\n onEventCreated?: (event: any) => void | Promise<void>\n evaluateToolCalls?: (toolCalls: any[]) => Promise<{ success: boolean; message?: string }>\n onToolCallExecuted?: (executionEvent: any) => void | Promise<void>\n onEnd?: (lastEvent: ContextEvent) => void | { end?: boolean } | Promise<void | { end?: boolean }>\n}\n\nexport interface ProgressStreamOptions {\n reasoningEffort?: \"off\" | \"low\" | \"medium\" | \"high\"\n webSearch?: boolean\n}\n\nexport type DataStreamWriter = UIMessageStreamWriter<AgentMessage>\nconst createDataStream = createUIMessageStream;\n\n\nexport abstract class Story<Context> {\n protected db: InstantAdminDatabase<SchemaOf<typeof storyDomain>>\n protected agentService: AgentService\n\n constructor(db: InstantAdminDatabase<SchemaOf<typeof storyDomain>>, private opts: AgentOptions = {}) {\n this.db = db\n this.agentService = new AgentService(db)\n }\n\n protected abstract buildSystemPrompt(context: StoredContext<Context>, ...args: any[]): Promise<string> | string\n protected abstract buildTools(context: StoredContext<Context>, dataStream: DataStreamWriter): Promise<Record<string, Tool>>\n protected abstract initialize(context: StoredContext<Context>): Promise<Context>\n\n protected getModel(context: StoredContext<Context>) {\n return \"openai/gpt-5\"\n }\n\n protected includeBaseTools(): { createMessage: boolean; requestDirection: boolean; end: boolean } {\n return { createMessage: true, requestDirection: true, end: true }\n }\n\n protected async getFinalizationToolNames(): Promise<string[]> {\n return []\n }\n\n private static readonly FINAL_TOOL_NAMES = [\"createMessage\", \"requestDirection\", \"end\"]\n\n protected getBaseTools(dataStream: DataStreamWriter, threadId: string): Record<string, Tool> {\n const include = this.includeBaseTools()\n const baseTools: Record<string, Tool> = {}\n\n if (include.createMessage) {\n baseTools.createMessage = tool({\n description: \"Send a message to the user. Use for final confirmations or information.\",\n inputSchema: z.object({\n message: z.string().describe(\"Message for the user in markdown format\")\n }),\n })\n }\n\n if (include.requestDirection) {\n baseTools.requestDirection = tool({\n description: \"Ask a human for guidance when blocked or unsure.\",\n inputSchema: z.object({\n issue: z.string(),\n context: z.string(),\n suggestedActions: z.array(z.string()).optional(),\n urgency: z.enum([\"low\", \"medium\", \"high\"]).default(\"medium\"),\n }),\n })\n }\n\n if (include.end) {\n baseTools.end = tool({\n description: \"End the current interaction loop.\",\n inputSchema: z.object({}).strict(),\n execute: async () => {\n return { success: true, message: \"Ended\" }\n },\n })\n }\n\n return baseTools\n }\n\n protected async executeCreateMessage(\n eventId: string,\n args: { message: string; type: \"info\" | \"confirmation\" | \"warning\" | \"error\" | \"success\"; includeContext?: boolean },\n threadId: string,\n dataStream?: DataStreamWriter,\n ): Promise<any> {\n const assistantMessage = { id: eventId, role: \"assistant\" as const, content: args.message, createdAt: new Date() } as any\n try {\n await this.saveMessagesToThread(threadId, [assistantMessage])\n } catch { }\n if (dataStream) {\n //dataStream.writeData({ type: \"user-response\", message: args.message, responseType: args.type, includeContext: Boolean(args.includeContext), timestamp: new Date().toISOString() } as any)\n }\n return { success: true, message: args.message, data: { messageId: assistantMessage.id, threadId } }\n }\n\n protected async executeRequestDirection(\n eventId: string,\n args: { issue: string; context: string; suggestedActions?: string[]; urgency: \"low\" | \"medium\" | \"high\" },\n threadId: string,\n _dataStream?: DataStreamWriter,\n ): Promise<any> {\n const systemMessage = { id: eventId, role: \"assistant\" as const, content: `Direction requested: ${args.issue}\\nContext: ${args.context}`, createdAt: new Date() } as any\n return { success: true, message: \"Direction requested\", data: { messageId: systemMessage.id, threadId } }\n }\n\n public async progressStream(\n incomingEvent: ContextEvent,\n contextIdentifier: ContextIdentifier | null,\n options?: ProgressStreamOptions\n ) {\n\n // get or create context\n const currentContext = await this.agentService.getOrCreateContext<Context>(contextIdentifier)\n\n const contextSelector: ContextIdentifier = contextIdentifier?.id\n ? { id: String(contextIdentifier.id) }\n : contextIdentifier?.key\n ? { key: contextIdentifier.key }\n : { id: String(currentContext.id) }\n\n // Use existing event if it has an id, otherwise create new one\n let triggerEvent: ContextEvent\n if (incomingEvent.id) {\n triggerEvent = await this.agentService.getEvent(incomingEvent.id)\n } else {\n triggerEvent = await this.agentService.saveEvent(contextSelector, incomingEvent)\n }\n\n const triggerEventId = triggerEvent.id // trigger event id\n const eventId = id() // reaction event id\n\n // Set context status to \"streaming\" before creating execution\n await this.agentService.updateContextStatus(contextSelector, \"streaming\")\n\n // create execution and set context status\n const execution = await this.agentService.createExecution(contextSelector, triggerEventId, eventId)\n const executionId = execution.id\n\n let latestReactionEvent: ContextEvent | null = null\n let executionStatus: \"executing\" | \"completed\" | \"failed\" = \"executing\"\n\n const markFailure = async () => {\n if (latestReactionEvent && latestReactionEvent.status !== \"failed\") {\n try {\n latestReactionEvent = await this.agentService.updateEvent(latestReactionEvent.id, {\n ...latestReactionEvent,\n status: \"failed\",\n })\n }\n catch (eventError) {\n console.error(\"Failed to mark reaction event as failed\", eventError)\n }\n }\n\n if (executionStatus === \"executing\") {\n try {\n await this.agentService.completeExecution(contextSelector, executionId, \"failed\")\n executionStatus = \"failed\"\n }\n catch (executionError) {\n console.error(\"Failed to mark execution as failed\", executionError)\n }\n }\n }\n\n const dataStreamResult = createDataStream({\n execute: async ({ writer: dataStream }: { writer: DataStreamWriter }) => {\n let loopSafety = 0\n const MAX_LOOPS = 20\n\n // load previous events (already in chronological order from InstantDB)\n const events: ContextEvent[] = await this.agentService.getEvents(contextSelector)\n const contextId = currentContext.id\n \n console.log(\"[agent] Loaded events from InstantDB:\", {\n contextId,\n eventsCount: events.length,\n eventsPreview: events.slice(-3).map((e: any) => ({\n id: e.id,\n type: e.type,\n createdAt: e.createdAt\n }))\n })\n\n let reactionEvent = await this.agentService.saveEvent(contextSelector, {\n id: eventId,\n type: \"assistant\",\n channel: \"agent\",\n createdAt: new Date().toISOString(),\n content: { parts: [] },\n status: \"pending\",\n })\n latestReactionEvent = reactionEvent\n\n dataStream.write({ type: \"event-start\", data: { eventId: eventId } } as any)\n while (loopSafety < MAX_LOOPS) {\n\n dataStream.write({ type: \"start-step\" })\n\n loopSafety++\n\n // Read context\n const currentContext = await this.agentService.getContext<Context>(contextSelector)\n dataStream.write({ type: \"data-context-id\", data: { contextId: currentContext.id } } as any)\n\n // Initialize on each loop and get new context data\n const contextContent = await this.initialize(currentContext)\n\n // Update context\n const updatedContext = await this.agentService.updateContextContent({ id: String(currentContext.id) }, contextContent)\n\n // Build tools\n const subclassToolsAll = await this.buildTools(updatedContext, dataStream)\n\n // Build base tools for agent loop control\n const baseTools = this.getBaseTools(dataStream, String(updatedContext.id))\n const tools: Record<string, Tool> = { ...subclassToolsAll, ...baseTools }\n\n // Add web search if enabled\n if (options?.webSearch) {\n tools.web_search = openai.tools.webSearch() as any\n }\n\n // Extract execute functions from tools\n const executeMap: Record<string, (args: any) => Promise<any>> = {}\n for (const [name, t] of Object.entries(subclassToolsAll)) {\n if ((t as any).execute) {\n executeMap[name] = (t as any).execute as (args: any) => Promise<any>\n }\n }\n\n const include = this.includeBaseTools()\n if (include.createMessage) {\n executeMap[\"createMessage\"] = (args: any) => this.executeCreateMessage(eventId, args, String(updatedContext.id), dataStream)\n }\n if (include.requestDirection) {\n executeMap[\"requestDirection\"] = (args: any) => this.executeRequestDirection(eventId, args, String(updatedContext.id), dataStream)\n }\n if (include.end) {\n executeMap[\"end\"] = async () => ({ success: true, message: \"Ended\" })\n }\n\n for (const [, t] of Object.entries(tools)) {\n delete (t as any).execute\n }\n\n const messagesForModel: ModelMessage[] = await convertEventsToModelMessages(\n reactionEvent.status !== \"pending\"\n ? [...events, reactionEvent]\n : [...events],\n this.db\n )\n\n const systemPrompt = await this.buildSystemPrompt(updatedContext)\n\n const providerOptions: any = {}\n const hasReasoning = options?.reasoningEffort && options.reasoningEffort !== \"off\"\n \n if (hasReasoning) {\n providerOptions.openai = {\n reasoningEffort: options.reasoningEffort,\n reasoningSummary: 'detailed',\n }\n console.log(\"[agent] Reasoning enabled:\", {\n reasoningEffort: options.reasoningEffort,\n model: this.getModel(updatedContext),\n providerOptions\n })\n } else {\n console.log(\"[agent] Reasoning disabled or off\")\n }\n\n // Allow more steps when using reasoning to give the model time to think\n const maxSteps = hasReasoning ? 5 : 1\n\n const result = streamText({\n model: this.getModel(updatedContext),\n system: systemPrompt,\n messages: messagesForModel,\n tools,\n toolChoice: \"required\",\n onStepFinish: (step) => {\n console.log(\"onStepFinish\", step)\n },\n stopWhen: stepCountIs(maxSteps),\n experimental_transform: smoothStream({\n delayInMs: 30,\n chunking: 'word',\n }),\n ...(Object.keys(providerOptions).length > 0 && { providerOptions }),\n })\n\n result.consumeStream()\n\n // create promise\n let resolveFinish!: (value: ContextEvent) => void\n let rejectFinish!: (reason?: unknown) => void\n const finishPromise = new Promise<ContextEvent>((resolve, reject) => {\n resolveFinish = resolve\n rejectFinish = reject\n })\n\n dataStream.merge(result.toUIMessageStream({\n sendStart: false,\n generateMessageId: () => {\n return eventId\n },\n messageMetadata(options) {\n return {\n eventId: eventId,\n }\n },\n onFinish: ({ messages }) => {\n console.log(\"[agent] Messages finished:\", messages.map((m: any) => ({\n role: m.role,\n parts: m.parts?.map((p: any) => ({\n type: p.type,\n text: p.text?.substring(0, 100),\n hasReasoning: p.type === \"reasoning\"\n }))\n })))\n const lastEvent = createAssistantEventFromUIMessages(eventId, messages)\n resolveFinish(lastEvent)\n },\n onError: (e: unknown) => {\n console.error(\"Agent error:\", e)\n rejectFinish(e)\n const message = e instanceof Error ? e.message : String(e)\n return message\n }\n }).pipeThrough(new TransformStream({\n transform(chunk: any, controller: any) {\n\n if (chunk.type === \"start\") {\n return;\n }\n\n if (chunk.type === \"finish-step\") {\n return;\n }\n\n if (chunk.type === \"start-step\") {\n return\n }\n\n if (chunk.type === \"finish\") {\n return;\n }\n\n controller.enqueue(chunk as any)\n }\n })))\n\n // wait for the on finish here\n const lastEvent = await finishPromise\n\n const toolCalls = lastEvent.content.parts.reduce((acc: any[], p: any) => {\n if (typeof p.type === \"string\" && p.type.startsWith(\"tool-\")) {\n const toolName = p.type.split(\"-\")[1]\n acc.push({ toolCallId: p.toolCallId, toolName: toolName, args: p.input });\n }\n return acc;\n }, []);\n\n console.log(\"agent.toolCalls.detected\", {\n eventId,\n toolCalls: toolCalls.map((call: any) => ({ toolCallId: call.toolCallId, toolName: call.toolName }))\n });\n\n if (!toolCalls.length) {\n const shouldEndInteraction = await this.callOnEnd(lastEvent)\n if (shouldEndInteraction) {\n break\n }\n continue\n }\n const reactionEventWithParts = {\n ...reactionEvent,\n content: { parts: [...reactionEvent.content.parts, ...lastEvent.content.parts] },\n }\n\n let currentEventState = await this.agentService.updateEvent(reactionEvent.id, reactionEventWithParts)\n latestReactionEvent = currentEventState\n\n const executionResults = await Promise.all(toolCalls.map(async (tc: any) => {\n console.log(\"agent.toolCall.selected\", {\n eventId,\n toolCallId: tc.toolCallId,\n toolName: tc.toolName\n })\n\n let execSuccess = true\n let execMessage = \"Executed\"\n let execResult: any = null\n try {\n const execFn = executeMap[tc.toolName]\n if (execFn) {\n console.log(\"agent.toolCall.execute.start\", { toolCallId: tc.toolCallId, toolName: tc.toolName })\n execResult = await execFn(tc.args)\n execSuccess = execResult?.success !== false\n execMessage = execResult?.message || execMessage\n console.log(\"agent.toolCall.execute.success\", {\n toolCallId: tc.toolCallId,\n toolName: tc.toolName,\n success: execSuccess\n })\n console.log(\"agent.toolCall.execute.result\", {\n toolCallId: tc.toolCallId,\n toolName: tc.toolName,\n result: execResult\n })\n }\n }\n catch (err: any) {\n execSuccess = false\n execMessage = err.message\n console.error(\"agent.toolCall.execute.error\", {\n toolCallId: tc.toolCallId,\n toolName: tc.toolName,\n error: err\n })\n }\n\n return { tc, execSuccess, execMessage, execResult }\n }))\n\n let exitOuterLoop = false\n const customFinalizationTools = await this.getFinalizationToolNames()\n const allFinalToolNames = [...Story.FINAL_TOOL_NAMES, ...customFinalizationTools]\n\n // PRIMERO: Guardar TODOS los resultados de las tools\n for (const { tc, execSuccess, execMessage, execResult } of executionResults) {\n try {\n if (execSuccess) {\n dataStream.write({\n type: \"tool-output-available\",\n toolCallId: tc.toolCallId,\n output: execResult,\n } as any)\n }\n else {\n dataStream.write({\n type: \"tool-output-error\",\n toolCallId: tc.toolCallId,\n errorText: String(execMessage || \"Error\"),\n } as any)\n }\n }\n catch (e) {\n console.error(\"Failed to write tool result to stream\", e)\n }\n\n const existingParts = currentEventState?.content?.parts || []\n const mergedParts = existingParts.map((p: any) => {\n if (p.type === `tool-${tc.toolName}` && p.toolCallId === tc.toolCallId) {\n if (execSuccess) {\n return {\n ...p,\n state: \"output-available\",\n output: execResult,\n }\n }\n return {\n ...p,\n state: \"output-error\",\n errorText: String(execMessage || \"Error\"),\n }\n }\n return p\n })\n\n currentEventState = await this.agentService.updateEvent(currentEventState.id, {\n id: currentEventState.id,\n type: currentEventState.type,\n channel: \"agent\",\n createdAt: currentEventState.createdAt,\n content: { parts: mergedParts },\n })\n\n dataStream.write({ type: \"finish-step\" })\n\n await this.opts.onToolCallExecuted?.({\n id: currentEventState.id,\n toolCall: tc,\n event: currentEventState.id,\n success: execSuccess,\n message: execMessage,\n result: execResult,\n })\n }\n\n // SEGUNDO: Verificar si debe terminar (después de guardar todo)\n for (const { tc, execSuccess } of executionResults) {\n let shouldEnd = false\n if (!execSuccess) {\n const shouldEndInteraction = await this.callOnEnd(lastEvent)\n if (shouldEndInteraction) {\n shouldEnd = true\n }\n }\n\n if (!shouldEnd) {\n if (allFinalToolNames.includes(tc.toolName)) {\n const shouldEndInteraction = await this.callOnEnd(lastEvent)\n if (shouldEndInteraction) {\n shouldEnd = true\n }\n }\n }\n\n if (shouldEnd) {\n dataStream.write({ type: \"finish\", override: true } as any)\n exitOuterLoop = true\n break\n }\n }\n\n reactionEvent = currentEventState\n\n if (exitOuterLoop) {\n break\n }\n }\n reactionEvent = await this.agentService.updateEvent(reactionEvent.id, {\n ...reactionEvent,\n status: \"completed\",\n })\n latestReactionEvent = reactionEvent\n try {\n await this.agentService.completeExecution(contextSelector, executionId, \"completed\")\n executionStatus = \"completed\"\n }\n catch (error) {\n console.error(\"Failed to mark execution as completed\", error)\n }\n },\n onError: (error) => {\n console.error(\"Agent error:\", error)\n void markFailure()\n return error instanceof Error ? error.message : String(error)\n },\n onFinish: async () => {\n if (executionStatus === \"executing\") {\n try {\n await this.agentService.completeExecution(contextSelector, executionId, \"completed\")\n executionStatus = \"completed\"\n }\n catch (executionError) {\n console.error(\"Failed to finalize execution on finish\", executionError)\n }\n }\n console.log(\"Agent finished\")\n }\n })\n\n // start the stream\n\n const dataStreamFilteredResult = dataStreamResult.pipeThrough(new TransformStream({\n transform(chunk: any, controller: any) {\n if (chunk.type === \"start\") {\n console.log(\"start\", chunk.data)\n return;\n }\n\n if (chunk.type === \"event-start\") {\n controller.enqueue({ type: \"start\", messageId: chunk.data.eventId })\n return;\n }\n\n controller.enqueue(chunk as any)\n }\n }))\n\n return {\n contextId: currentContext.id,\n triggerEventId,\n reactionEventId: eventId,\n stream: dataStreamFilteredResult,\n executionId,\n }\n }\n\n private async saveMessagesToThread(threadId: string, messages: Array<any>) {\n // Placeholder for persistence hook. Not implemented in current scope.\n return\n }\n\n private async callOnEnd(lastEvent: ContextEvent): Promise<boolean> {\n if (!this.opts.onEnd) {\n return true\n }\n\n try {\n const result = await this.opts.onEnd(lastEvent)\n if (typeof result === \"boolean\") {\n return result\n }\n if (result && typeof result === \"object\") {\n if (Object.prototype.hasOwnProperty.call(result, \"end\")) {\n return Boolean(result.end)\n }\n }\n return true\n } catch (error) {\n console.error(\"onEnd callback failed\", error)\n return true\n }\n }\n\n\n\n\n}\n\nexport interface AgentConfig<Context> {\n db: InstantAdminDatabase<SchemaOf<typeof storyDomain>>\n context: (context: StoredContext<Context>) => Promise<Context> | Context\n systemPrompt: (context: StoredContext<Context>) => Promise<string> | string\n tools: (context: StoredContext<Context>, dataStream: DataStreamWriter) => Promise<Record<string, Tool>> | Record<string, Tool>\n model?: string | ((context: StoredContext<Context>) => string)\n opts?: AgentOptions\n includeBaseTools?: { createMessage?: boolean; requestDirection?: boolean; end?: boolean }\n}\n\nexport type AgentInstance<Context> = Story<Context> & {\n readonly __config: AgentConfig<Context>\n}\n\nexport function agent<Context>(config: AgentConfig<Context>): AgentInstance<Context> {\n class FunctionalAgent extends Story<Context> {\n public readonly __config = config\n\n constructor() {\n super(config.db, config.opts)\n }\n\n protected includeBaseTools(): { createMessage: boolean; requestDirection: boolean; end: boolean } {\n if (config.includeBaseTools) {\n return {\n createMessage: config.includeBaseTools.createMessage ?? true,\n requestDirection: config.includeBaseTools.requestDirection ?? true,\n end: config.includeBaseTools.end ?? true,\n }\n }\n return super.includeBaseTools()\n }\n\n protected async buildSystemPrompt(context: StoredContext<Context>) {\n return config.systemPrompt(context)\n }\n\n protected async buildTools(context: StoredContext<Context>, dataStream: DataStreamWriter) {\n return config.tools(context, dataStream)\n }\n\n protected async initialize(context: StoredContext<Context>) {\n return config.context(context)\n }\n\n protected getModel(context: StoredContext<Context>) {\n if (typeof config.model === 'function') {\n return config.model(context)\n }\n return config.model || super.getModel(context)\n }\n }\n const instance = new FunctionalAgent()\n return Object.assign(instance, { __config: config })\n}\n\n// Alias para retrocompatibilidad\nexport { Story as Agent }\n\ntype InitializedStoredContext<Context> = StoredContext<Context> & { content: Context }\n\ntype BuilderSystemPrompt<Context> = (\n context: InitializedStoredContext<Context>\n) => Promise<string> | string\n\ntype BuilderTools<Context> = (\n context: InitializedStoredContext<Context>,\n dataStream: DataStreamWriter\n) => Promise<Record<string, Tool>> | Record<string, Tool>\n\ntype BuilderModel<Context> =\n | string\n | ((context: InitializedStoredContext<Context>) => string)\n\ntype BuilderIncludeBaseTools = { createMessage?: boolean; requestDirection?: boolean; end?: boolean }\n\ntype FluentAgentBuilder<Context> = {\n systemPrompt(fn: BuilderSystemPrompt<Context>): FluentAgentBuilder<Context>\n tools(fn: BuilderTools<Context>): FluentAgentBuilder<Context>\n model(model: BuilderModel<Context>): FluentAgentBuilder<Context>\n opts(opts: AgentOptions): FluentAgentBuilder<Context>\n includeBaseTools(baseTools: BuilderIncludeBaseTools): FluentAgentBuilder<Context>\n config(): AgentConfig<Context>\n build(): AgentInstance<Context>\n}\n\ntype AnyContextInitializer = (context: StoredContext<any>) => Promise<any> | any\n\ntype InferContextFromInitializer<I extends AnyContextInitializer> = Awaited<ReturnType<I>>\n\ntype CreateAgentEntry = {\n context<Initializer extends AnyContextInitializer>(\n initializer: Initializer\n ): FluentAgentBuilder<InferContextFromInitializer<Initializer>>\n initialize<Initializer extends AnyContextInitializer>(\n initializer: Initializer\n ): FluentAgentBuilder<InferContextFromInitializer<Initializer>>\n}\n\nfunction assertConfigComplete<Context>(\n config: Partial<AgentConfig<Context>>\n): asserts config is AgentConfig<Context> {\n if (!config.db) {\n throw new Error(\"createAgent: Debes proporcionar db como parámetro.\")\n }\n\n if (!config.context) {\n throw new Error(\"createAgent: Debes definir context() antes de construir el agente.\")\n }\n\n if (!config.systemPrompt) {\n throw new Error(\"createAgent: Debes definir systemPrompt() antes de construir el agente.\")\n }\n\n if (!config.tools) {\n throw new Error(\"createAgent: Debes definir tools() antes de construir el agente.\")\n }\n}\n\nfunction ensureInitializedContext<Context>(\n context: StoredContext<Context>\n): InitializedStoredContext<Context> {\n if (!context.content) {\n throw new Error(\n \"createAgent: context() debe devolver datos antes de usar systemPrompt/tools.\"\n )\n }\n return context as InitializedStoredContext<Context>\n}\n\nexport function createAgent(db: InstantAdminDatabase<SchemaOf<typeof storyDomain>>): CreateAgentEntry {\n const initializeBuilder = <Initializer extends AnyContextInitializer>(initializer: Initializer) => {\n type Context = InferContextFromInitializer<Initializer>\n\n const typedInitializer: AgentConfig<Context>[\"context\"] = (context) =>\n initializer(context as StoredContext<Context>)\n\n const fluentState: Partial<AgentConfig<Context>> = {\n db,\n context: typedInitializer,\n }\n\n const builder: FluentAgentBuilder<Context> = {\n systemPrompt(systemPrompt) {\n fluentState.systemPrompt = (context) =>\n systemPrompt(ensureInitializedContext(context))\n return builder\n },\n tools(toolsFactory) {\n fluentState.tools = (context, dataStream) =>\n toolsFactory(ensureInitializedContext(context), dataStream)\n return builder\n },\n model(model) {\n if (typeof model === \"function\") {\n fluentState.model = (context) =>\n model(ensureInitializedContext(context))\n } else {\n fluentState.model = model\n }\n return builder\n },\n opts(options) {\n fluentState.opts = options\n return builder\n },\n includeBaseTools(baseTools) {\n fluentState.includeBaseTools = baseTools\n return builder\n },\n config() {\n assertConfigComplete(fluentState)\n return fluentState\n },\n build() {\n assertConfigComplete(fluentState)\n return agent(fluentState)\n },\n }\n\n return builder\n }\n\n return {\n context: initializeBuilder,\n initialize: initializeBuilder,\n }\n}\n\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ekairos/story",
3
- "version": "1.21.22-beta.0",
3
+ "version": "1.21.24-beta.0",
4
4
  "description": "Pulzar Story - Workflow-based AI Stories",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",
@@ -33,7 +33,7 @@
33
33
  },
34
34
  "dependencies": {
35
35
  "@ai-sdk/openai": "^2.0.52",
36
- "@ekairos/domain": "^1.21.22-beta.0",
36
+ "@ekairos/domain": "^1.21.24-beta.0",
37
37
  "@instantdb/admin": "^0.22.13",
38
38
  "@instantdb/core": "^0.22.13",
39
39
  "@vercel/sandbox": "^0.0.23",