@ekairos/story 1.18.2-beta.0 → 1.18.5-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.
- package/dist/agent.d.ts +5 -3
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +10 -9
- package/dist/agent.js.map +1 -1
- package/dist/document-parser.js.map +1 -1
- package/dist/engine.js.map +1 -1
- package/dist/events.d.ts +3 -2
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +104 -34
- package/dist/events.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/schema.js.map +1 -1
- package/dist/service.d.ts +2 -2
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +2 -7
- package/dist/service.js.map +1 -1
- package/dist/steps/ai.js.map +1 -1
- package/dist/steps/base.js.map +1 -1
- package/dist/steps/index.js.map +1 -1
- package/dist/steps/registry.js.map +1 -1
- package/dist/steps/sampleStep.js.map +1 -1
- package/dist/steps-context.d.ts.map +1 -1
- package/dist/steps-context.js +10 -1
- package/dist/steps-context.js.map +1 -1
- package/dist/story.js.map +1 -1
- package/dist/storyEngine.js.map +1 -1
- package/dist/storyRunner.js.map +1 -1
- package/dist/workflows/index.js.map +1 -1
- package/dist/workflows/sampleWorkflow.js.map +1 -1
- package/package.json +3 -2
package/dist/agent.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { init } from "@instantdb/admin";
|
|
1
2
|
import { Tool, UIMessageStreamWriter } from "ai";
|
|
2
3
|
import { UIMessage } from 'ai';
|
|
3
4
|
import { AgentService, ContextEvent, ContextIdentifier, StoredContext } from "./service";
|
|
@@ -33,9 +34,9 @@ export interface ProgressStreamOptions {
|
|
|
33
34
|
export type DataStreamWriter = UIMessageStreamWriter<AgentMessage>;
|
|
34
35
|
export declare abstract class Story<Context> {
|
|
35
36
|
private opts;
|
|
36
|
-
protected db:
|
|
37
|
+
protected db: ReturnType<typeof init>;
|
|
37
38
|
protected agentService: AgentService;
|
|
38
|
-
constructor(opts?: AgentOptions);
|
|
39
|
+
constructor(db: ReturnType<typeof init>, opts?: AgentOptions);
|
|
39
40
|
protected abstract buildSystemPrompt(context: StoredContext<Context>, ...args: any[]): Promise<string> | string;
|
|
40
41
|
protected abstract buildTools(context: StoredContext<Context>, dataStream: DataStreamWriter): Promise<Record<string, Tool>>;
|
|
41
42
|
protected abstract initialize(context: StoredContext<Context>): Promise<Context>;
|
|
@@ -70,6 +71,7 @@ export declare abstract class Story<Context> {
|
|
|
70
71
|
private callOnEnd;
|
|
71
72
|
}
|
|
72
73
|
export interface AgentConfig<Context> {
|
|
74
|
+
db: ReturnType<typeof init>;
|
|
73
75
|
context: (context: StoredContext<Context>) => Promise<Context> | Context;
|
|
74
76
|
systemPrompt: (context: StoredContext<Context>) => Promise<string> | string;
|
|
75
77
|
tools: (context: StoredContext<Context>, dataStream: DataStreamWriter) => Promise<Record<string, Tool>> | Record<string, Tool>;
|
|
@@ -112,5 +114,5 @@ type CreateAgentEntry = {
|
|
|
112
114
|
context<Initializer extends AnyContextInitializer>(initializer: Initializer): FluentAgentBuilder<InferContextFromInitializer<Initializer>>;
|
|
113
115
|
initialize<Initializer extends AnyContextInitializer>(initializer: Initializer): FluentAgentBuilder<InferContextFromInitializer<Initializer>>;
|
|
114
116
|
};
|
|
115
|
-
export declare function createAgent(): CreateAgentEntry;
|
|
117
|
+
export declare function createAgent(db: ReturnType<typeof init>): CreateAgentEntry;
|
|
116
118
|
//# sourceMappingURL=agent.d.ts.map
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/agent.js
CHANGED
|
@@ -17,13 +17,10 @@ const logger = (0, braintrust_1.initLogger)({
|
|
|
17
17
|
});
|
|
18
18
|
const createDataStream = ai_1.createUIMessageStream;
|
|
19
19
|
class Story {
|
|
20
|
-
constructor(opts = {}) {
|
|
20
|
+
constructor(db, opts = {}) {
|
|
21
21
|
this.opts = opts;
|
|
22
|
-
this.db =
|
|
23
|
-
|
|
24
|
-
adminToken: process.env.INSTANT_APP_ADMIN_TOKEN
|
|
25
|
-
});
|
|
26
|
-
this.agentService = new service_1.AgentService();
|
|
22
|
+
this.db = db;
|
|
23
|
+
this.agentService = new service_1.AgentService(db);
|
|
27
24
|
}
|
|
28
25
|
getModel(context) {
|
|
29
26
|
return "openai/gpt-5";
|
|
@@ -187,7 +184,7 @@ class Story {
|
|
|
187
184
|
}
|
|
188
185
|
const messagesForModel = await (0, events_1.convertEventsToModelMessages)(reactionEvent.status !== "pending"
|
|
189
186
|
? [...events, reactionEvent]
|
|
190
|
-
: [...events]);
|
|
187
|
+
: [...events], this.db);
|
|
191
188
|
const systemPrompt = await this.buildSystemPrompt(updatedContext);
|
|
192
189
|
const providerOptions = {};
|
|
193
190
|
const hasReasoning = options?.reasoningEffort && options.reasoningEffort !== "off";
|
|
@@ -509,7 +506,7 @@ Story.FINAL_TOOL_NAMES = ["createMessage", "requestDirection", "end"];
|
|
|
509
506
|
function agent(config) {
|
|
510
507
|
class FunctionalAgent extends Story {
|
|
511
508
|
constructor() {
|
|
512
|
-
super(config.opts);
|
|
509
|
+
super(config.db, config.opts);
|
|
513
510
|
this.__config = config;
|
|
514
511
|
}
|
|
515
512
|
includeBaseTools() {
|
|
@@ -542,6 +539,9 @@ function agent(config) {
|
|
|
542
539
|
return Object.assign(instance, { __config: config });
|
|
543
540
|
}
|
|
544
541
|
function assertConfigComplete(config) {
|
|
542
|
+
if (!config.db) {
|
|
543
|
+
throw new Error("createAgent: Debes proporcionar db como parámetro.");
|
|
544
|
+
}
|
|
545
545
|
if (!config.context) {
|
|
546
546
|
throw new Error("createAgent: Debes definir context() antes de construir el agente.");
|
|
547
547
|
}
|
|
@@ -558,10 +558,11 @@ function ensureInitializedContext(context) {
|
|
|
558
558
|
}
|
|
559
559
|
return context;
|
|
560
560
|
}
|
|
561
|
-
function createAgent() {
|
|
561
|
+
function createAgent(db) {
|
|
562
562
|
const initializeBuilder = (initializer) => {
|
|
563
563
|
const typedInitializer = (context) => initializer(context);
|
|
564
564
|
const fluentState = {
|
|
565
|
+
db,
|
|
565
566
|
context: typedInitializer,
|
|
566
567
|
};
|
|
567
568
|
const builder = {
|
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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"}
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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","sourcesContent":["import { init, id, tx, lookup, InstaQLEntity } 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\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: ReturnType<typeof init>\n protected agentService: AgentService\n\n constructor(db: ReturnType<typeof init>, 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: contextIdentifier.id }\n : contextIdentifier?.key\n ? { key: contextIdentifier.key }\n : { id: 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: 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, 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, updatedContext.id, dataStream)\n }\n if (include.requestDirection) {\n executeMap[\"requestDirection\"] = (args: any) => this.executeRequestDirection(eventId, args, updatedContext.id, dataStream)\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 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 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: ReturnType<typeof init>\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: ReturnType<typeof init>): 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-parser.js","sourceRoot":"","sources":["../src/document-parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"document-parser.js","sourceRoot":"","sources":["../src/document-parser.ts"],"names":[],"mappings":"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","sourcesContent":["\r\nimport { id, init } from '@instantdb/admin';\r\n\r\n\r\nconst LLAMA_CLOUD_BASE_URL = 'https://api.cloud.llamaindex.ai/api/v1';\r\n\r\ninterface DocumentPage {\r\n id: string;\r\n text: string;\r\n}\r\n\r\nexport interface DocumentToProcess {\r\n buffer: Buffer;\r\n fileName: string;\r\n path: string;\r\n fileId: string;\r\n}\r\n\r\ninterface LlamaParseUploadResponse {\r\n id: string;\r\n status: string;\r\n}\r\n\r\ninterface LlamaParseStatusResponse {\r\n status: string;\r\n}\r\n\r\ninterface LlamaParseResultResponse {\r\n markdown?: string;\r\n pages?: Array<{ page: number; text: string; }>;\r\n}\r\n\r\n/**\r\n * Sube un archivo a LlamaCloud para procesamiento\r\n */\r\nasync function uploadToLlamaCloud(buffer: Buffer, fileName: string): Promise<string> {\r\n const formData = new FormData();\r\n \r\n const uint8Array = new Uint8Array(buffer);\r\n const blob = new Blob([uint8Array], { type: 'application/pdf' });\r\n formData.append('file', blob, fileName);\r\n formData.append('parse_mode', 'parse_page_with_llm');\r\n formData.append('high_res_ocr', 'true');\r\n formData.append('adaptive_long_table', 'true');\r\n formData.append('outlined_table_extraction', 'true');\r\n formData.append('output_tables_as_HTML', 'true');\r\n\r\n const response = await fetch(`${LLAMA_CLOUD_BASE_URL}/parsing/upload`, {\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': `Bearer ${process.env.LLAMA_CLOUD_API_KEY}`,\r\n },\r\n body: formData\r\n });\r\n\r\n if (!response.ok) {\r\n const errorText = await response.text();\r\n throw new Error(`LlamaCloud upload failed: ${response.status} ${errorText}`);\r\n }\r\n\r\n const result = await response.json() as unknown as LlamaParseUploadResponse;\r\n return result.id;\r\n}\r\n\r\n/**\r\n * Obtiene el estado del job de procesamiento\r\n */\r\nasync function getJobStatus(jobId: string): Promise<LlamaParseStatusResponse> {\r\n const response = await fetch(`${LLAMA_CLOUD_BASE_URL}/parsing/job/${jobId}`, {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${process.env.LLAMA_CLOUD_API_KEY}`,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n const errorText = await response.text();\r\n throw new Error(`LlamaCloud status fetch failed: ${response.status} ${errorText}`);\r\n }\r\n\r\n return await response.json() as unknown as LlamaParseStatusResponse;\r\n}\r\n\r\n/**\r\n * Obtiene el resultado del procesamiento de LlamaCloud\r\n */\r\nasync function getParseResult(jobId: string): Promise<LlamaParseResultResponse> {\r\n const response = await fetch(`${LLAMA_CLOUD_BASE_URL}/parsing/job/${jobId}/result/markdown`, {\r\n method: 'GET',\r\n headers: {\r\n 'Authorization': `Bearer ${process.env.LLAMA_CLOUD_API_KEY}`,\r\n }\r\n });\r\n\r\n if (!response.ok) {\r\n const errorText = await response.text();\r\n throw new Error(`LlamaCloud result fetch failed: ${response.status} ${errorText}`);\r\n }\r\n\r\n return await response.json() as unknown as LlamaParseResultResponse;\r\n}\r\n\r\n/**\r\n * Espera hasta que el procesamiento esté completo\r\n */\r\nasync function waitForProcessing(jobId: string, maxAttempts: number = 60): Promise<LlamaParseResultResponse> {\r\n for (let attempt = 0; attempt < maxAttempts; attempt++) {\r\n const statusResponse = await getJobStatus(jobId);\r\n \r\n console.log(`Job ${jobId} status: ${statusResponse.status} (attempt ${attempt + 1}/${maxAttempts})`);\r\n \r\n if (statusResponse.status === 'SUCCESS' || statusResponse.status === 'COMPLETED') {\r\n return await getParseResult(jobId);\r\n }\r\n \r\n if (statusResponse.status === 'ERROR' || statusResponse.status === 'FAILED') {\r\n throw new Error(`LlamaCloud processing failed with status: ${statusResponse.status}`);\r\n }\r\n \r\n await new Promise(resolve => setTimeout(resolve, 2000));\r\n }\r\n \r\n throw new Error('LlamaCloud processing timeout');\r\n}\r\n\r\n/**\r\n * Procesa un documento utilizando LlamaParse y almacena el resultado en la base de datos\r\n */\r\nexport async function parseAndStoreDocument(\r\n db: any,\r\n buffer: Buffer,\r\n fileName: string,\r\n path: string,\r\n fileId: string\r\n): Promise<string> {\r\n try {\r\n const existingDocument = await db.query({\r\n documents: {\r\n $: {\r\n where: { 'file.id': fileId }\r\n },\r\n file: {}\r\n }\r\n });\r\n\r\n if (existingDocument.documents && existingDocument.documents.length > 0) {\r\n const docId = existingDocument.documents[0].id;\r\n console.log(`Documento ya existe para el archivo ${fileName}: ${docId}`);\r\n return docId;\r\n }\r\n\r\n console.log(`Procesando nuevo documento: ${fileName}`);\r\n\r\n const jobId = await uploadToLlamaCloud(buffer, fileName);\r\n console.log(`Documento subido a LlamaCloud con job ID: ${jobId}`);\r\n\r\n const result = await waitForProcessing(jobId);\r\n \r\n const pages: DocumentPage[] = [];\r\n \r\n if (result.markdown) {\r\n pages.push({\r\n id: id(),\r\n text: result.markdown\r\n });\r\n }\r\n \r\n if (result.pages && result.pages.length > 0) {\r\n for (const page of result.pages) {\r\n pages.push({\r\n id: id(),\r\n text: page.text\r\n });\r\n }\r\n }\r\n\r\n if (pages.length === 0) {\r\n throw new Error('No se pudo extraer contenido del documento');\r\n }\r\n\r\n const documentId = id();\r\n await db.transact([\r\n db.tx.documents[documentId].update({\r\n content: { pages },\r\n processedAt: new Date().toISOString()\r\n }),\r\n db.tx.documents[documentId].link({\r\n file: fileId\r\n })\r\n ]);\r\n\r\n console.log(`Documento procesado con éxito: ${fileName} -> ${documentId}`);\r\n return documentId;\r\n } catch (error) {\r\n console.error(`Error al procesar el documento ${fileName}:`, error);\r\n throw error;\r\n }\r\n}\r\n\r\n/**\r\n * Procesa un conjunto de documentos en segundo plano\r\n * Puede ser utilizado con after() en Next.js o en cualquier contexto de procesamiento asíncrono\r\n */\r\nexport async function processBatchDocuments(db: any, documents: DocumentToProcess[]): Promise<string[]> {\r\n try {\r\n const promises = documents.map(doc =>\r\n parseAndStoreDocument(db, doc.buffer, doc.fileName, doc.path, doc.fileId)\r\n );\r\n\r\n const results = await Promise.all(promises);\r\n console.log('Todos los documentos procesados correctamente');\r\n return results;\r\n } catch (error) {\r\n console.error('Error en el procesamiento por lotes de documentos:', error);\r\n throw error;\r\n }\r\n} "]}
|
package/dist/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":";;AAEA,sDASC;AAED,8BAcC;AA3BD,+CAAsC;AAE/B,KAAK,UAAU,qBAAqB,CAAC,MAAsH;IAChK,UAAU,CAAA;IACV,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,oBAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACtC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,iBAAiB;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAC/D,OAAO,MAAM,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAC/D,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IACrE,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,MAA4C;IAC1E,UAAU,CAAA;IACV,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,oBAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACtC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK;YAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;QAC/C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACzD,IAAI,OAAO,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;QACvD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YAChG,OAAO,EAAE,GAAG,EAAE,OAAO,CAAE,MAAc,CAAC,GAAG,CAAC,EAAE,CAAA;QAC9C,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;IACtB,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":";;AAEA,sDASC;AAED,8BAcC;AA3BD,+CAAsC;AAE/B,KAAK,UAAU,qBAAqB,CAAC,MAAsH;IAChK,UAAU,CAAA;IACV,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,oBAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACtC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,iBAAiB;YAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAC/D,OAAO,MAAM,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IAC/D,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IACrE,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,SAAS,CAAC,MAA4C;IAC1E,UAAU,CAAA;IACV,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,oBAAM,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACtC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK;YAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;QAC/C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QACzD,IAAI,OAAO,MAAM,KAAK,SAAS;YAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAA;QACvD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC;YAChG,OAAO,EAAE,GAAG,EAAE,OAAO,CAAE,MAAc,CAAC,GAAG,CAAC,EAAE,CAAA;QAC9C,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAA;IACtB,CAAC;AACH,CAAC","sourcesContent":["import { engine } from \"./storyEngine\"\r\n\r\nexport async function evaluateToolCallsStep(params: { storyKey: string; toolCalls: Array<{ toolCallId: string; toolName: string; args: any }>; contextId: string }) {\r\n \"use step\"\r\n try {\r\n const rt = engine.get(params.storyKey)\r\n if (!rt?.callbacks?.evaluateToolCalls) return { success: true }\r\n return await rt.callbacks.evaluateToolCalls(params.toolCalls)\r\n } catch (error: any) {\r\n return { success: false, message: error?.message ?? String(error) }\r\n }\r\n}\r\n\r\nexport async function onEndStep(params: { storyKey: string; lastEvent: any }) {\r\n \"use step\"\r\n try {\r\n const rt = engine.get(params.storyKey)\r\n if (!rt?.callbacks?.onEnd) return { end: true }\r\n const result = await rt.callbacks.onEnd(params.lastEvent)\r\n if (typeof result === \"boolean\") return { end: result }\r\n if (result && typeof result === \"object\" && Object.prototype.hasOwnProperty.call(result, \"end\")) {\r\n return { end: Boolean((result as any).end) }\r\n }\r\n return { end: true }\r\n } catch {\r\n return { end: true }\r\n }\r\n}\r\n\r\n\r\n"]}
|
package/dist/events.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { init } from "@instantdb/admin";
|
|
1
2
|
import { type ModelMessage, type UIMessage } from "ai";
|
|
2
3
|
import type { ContextEvent } from "./service";
|
|
3
4
|
export declare const USER_MESSAGE_TYPE = "user.message";
|
|
@@ -9,8 +10,8 @@ export declare const EMAIL_CHANNEL = "email";
|
|
|
9
10
|
export declare function createUserEventFromUIMessages(messages: UIMessage[]): ContextEvent;
|
|
10
11
|
export declare function createAssistantEventFromUIMessages(eventId: string, messages: UIMessage[]): ContextEvent;
|
|
11
12
|
export declare function convertToUIMessage(event: ContextEvent): UIMessage;
|
|
12
|
-
export declare function convertEventsToModelMessages(events: ContextEvent[]): Promise<ModelMessage[]>;
|
|
13
|
-
export declare function convertEventToModelMessages(event: ContextEvent): Promise<ModelMessage[]>;
|
|
13
|
+
export declare function convertEventsToModelMessages(events: ContextEvent[], db: ReturnType<typeof init>): Promise<ModelMessage[]>;
|
|
14
|
+
export declare function convertEventToModelMessages(event: ContextEvent, db: ReturnType<typeof init>): Promise<ModelMessage[]>;
|
|
14
15
|
export type AIMessage = {
|
|
15
16
|
id: string;
|
|
16
17
|
role: "user" | "assistant" | "system";
|
package/dist/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,IAAI,EAA6B,MAAM,kBAAkB,CAAA;AACtE,OAAO,EAA0B,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,IAAI,CAAA;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAG7C,eAAO,MAAM,iBAAiB,iBAAiB,CAAA;AAC/C,eAAO,MAAM,sBAAsB,sBAAsB,CAAA;AACzD,eAAO,MAAM,mBAAmB,mBAAmB,CAAA;AAEnD,eAAO,MAAM,WAAW,QAAQ,CAAA;AAChC,eAAO,MAAM,aAAa,aAAa,CAAA;AACvC,eAAO,MAAM,aAAa,UAAU,CAAA;AAEpC,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,YAAY,CAgBjF;AAED,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,YAAY,CAgBvG;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,CAkBjE;AAED,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,YAAY,EAAE,EACtB,EAAE,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,GAC1B,OAAO,CAAC,YAAY,EAAE,CAAC,CAOzB;AAED,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,YAAY,EACnB,EAAE,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,GAC1B,OAAO,CAAC,YAAY,EAAE,CAAC,CA8BzB;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,EAAE,YAAY,CAAA;CACtB,CAAA;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,YAAY,CAwBlG"}
|
package/dist/events.js
CHANGED
|
@@ -10,10 +10,6 @@ exports.convertModelMessageToEvent = convertModelMessageToEvent;
|
|
|
10
10
|
const admin_1 = require("@instantdb/admin");
|
|
11
11
|
const ai_1 = require("ai");
|
|
12
12
|
const document_parser_1 = require("./document-parser");
|
|
13
|
-
const db = (0, admin_1.init)({
|
|
14
|
-
appId: process.env.NEXT_PUBLIC_INSTANT_APP_ID,
|
|
15
|
-
adminToken: process.env.INSTANT_APP_ADMIN_TOKEN,
|
|
16
|
-
});
|
|
17
13
|
exports.USER_MESSAGE_TYPE = "user.message";
|
|
18
14
|
exports.ASSISTANT_MESSAGE_TYPE = "assistant.message";
|
|
19
15
|
exports.SYSTEM_MESSAGE_TYPE = "system.message";
|
|
@@ -69,22 +65,23 @@ function convertToUIMessage(event) {
|
|
|
69
65
|
}
|
|
70
66
|
};
|
|
71
67
|
}
|
|
72
|
-
async function convertEventsToModelMessages(events) {
|
|
68
|
+
async function convertEventsToModelMessages(events, db) {
|
|
73
69
|
const results = [];
|
|
74
70
|
for (const event of events) {
|
|
75
|
-
const messages = await convertEventToModelMessages(event);
|
|
71
|
+
const messages = await convertEventToModelMessages(event, db);
|
|
76
72
|
results.push(messages);
|
|
77
73
|
}
|
|
78
74
|
return results.flat();
|
|
79
75
|
}
|
|
80
|
-
async function convertEventToModelMessages(event) {
|
|
76
|
+
async function convertEventToModelMessages(event, db) {
|
|
81
77
|
// convert files in message
|
|
82
78
|
// const files = event.content.parts.filter(part => part.type === "file")
|
|
83
79
|
// 1. copy event to new . we will manipulate the parts
|
|
84
80
|
// 2. each file part will be converted using convertFilePart
|
|
85
81
|
const convertedParts = await Promise.all((event.content?.parts || []).map(async (part) => {
|
|
86
|
-
|
|
87
|
-
|
|
82
|
+
// Process file parts - check for type === "file" OR presence of url/mimeType (which indicates a file)
|
|
83
|
+
if (part?.type === "file" || (part?.url && typeof part.url === "string") || part?.mimeType || part?.mediaType) {
|
|
84
|
+
return await convertFilePart(part, db);
|
|
88
85
|
}
|
|
89
86
|
return [part];
|
|
90
87
|
}));
|
|
@@ -123,39 +120,112 @@ function convertModelMessageToEvent(eventId, message) {
|
|
|
123
120
|
createdAt: message.timestamp.toISOString(),
|
|
124
121
|
};
|
|
125
122
|
}
|
|
126
|
-
async function convertFilePart(part) {
|
|
127
|
-
// file
|
|
128
|
-
//
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
//
|
|
133
|
-
|
|
134
|
-
const fileId = fileIdMatch ? fileIdMatch[1] : null;
|
|
135
|
-
if (!fileId) {
|
|
136
|
-
return [part];
|
|
137
|
-
}
|
|
123
|
+
async function convertFilePart(part, db) {
|
|
124
|
+
// Convert file parts to text using parseAndStoreDocument
|
|
125
|
+
// Uses providerMetadata.instant.fileId if available, otherwise falls back to URL lookup
|
|
126
|
+
// Get fileId and filePath from providerMetadata
|
|
127
|
+
const fileId = part.providerMetadata?.instant?.fileId || null;
|
|
128
|
+
const filePath = part.providerMetadata?.instant?.path || null;
|
|
129
|
+
// If we have a fileId, query by ID. Otherwise, try by path or URL
|
|
130
|
+
let fileRecord = undefined;
|
|
138
131
|
try {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
132
|
+
if (fileId) {
|
|
133
|
+
const fileQuery = await db.query({
|
|
134
|
+
$files: {
|
|
135
|
+
$: {
|
|
136
|
+
where: {
|
|
137
|
+
id: fileId,
|
|
138
|
+
},
|
|
139
|
+
limit: 1,
|
|
144
140
|
},
|
|
145
|
-
|
|
141
|
+
document: {},
|
|
146
142
|
},
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}
|
|
150
|
-
|
|
143
|
+
});
|
|
144
|
+
fileRecord = Array.isArray(fileQuery.$files) ? fileQuery.$files[0] : undefined;
|
|
145
|
+
}
|
|
146
|
+
else if (filePath) {
|
|
147
|
+
// Try to find by path
|
|
148
|
+
const fileQuery = await db.query({
|
|
149
|
+
$files: {
|
|
150
|
+
$: {
|
|
151
|
+
where: {
|
|
152
|
+
path: filePath,
|
|
153
|
+
},
|
|
154
|
+
limit: 1,
|
|
155
|
+
},
|
|
156
|
+
document: {},
|
|
157
|
+
},
|
|
158
|
+
});
|
|
159
|
+
fileRecord = Array.isArray(fileQuery.$files) ? fileQuery.$files[0] : undefined;
|
|
160
|
+
}
|
|
161
|
+
else if (part.url.startsWith("http://") || part.url.startsWith("https://")) {
|
|
162
|
+
// For HTTP/HTTPS URLs, try to find by URL
|
|
163
|
+
const fileQuery = await db.query({
|
|
164
|
+
$files: {
|
|
165
|
+
$: {
|
|
166
|
+
where: {
|
|
167
|
+
url: part.url,
|
|
168
|
+
},
|
|
169
|
+
limit: 1,
|
|
170
|
+
},
|
|
171
|
+
document: {},
|
|
172
|
+
},
|
|
173
|
+
});
|
|
174
|
+
fileRecord = Array.isArray(fileQuery.$files) ? fileQuery.$files[0] : undefined;
|
|
175
|
+
}
|
|
176
|
+
// If we still don't have a file record and have a URL, fetch and process it
|
|
177
|
+
if (!fileRecord && (part.url.startsWith("http://") || part.url.startsWith("https://"))) {
|
|
178
|
+
// Try to fetch the file directly and process it
|
|
179
|
+
const fileResponse = await fetch(part.url);
|
|
180
|
+
if (fileResponse.ok) {
|
|
181
|
+
const buffer = await fileResponse.arrayBuffer();
|
|
182
|
+
const contentType = part.mediaType || fileResponse.headers.get("content-type") || "application/octet-stream";
|
|
183
|
+
const fileName = part.filename || "file";
|
|
184
|
+
// Use a temporary path if we don't have one
|
|
185
|
+
const tempPath = filePath || `/temp/${Date.now()}-${fileName}`;
|
|
186
|
+
const documentId = await (0, document_parser_1.parseAndStoreDocument)(db, Buffer.from(buffer), tempPath, fileName, (0, admin_1.id)());
|
|
187
|
+
const documentQuery = await db.query({
|
|
188
|
+
documents: {
|
|
189
|
+
$: {
|
|
190
|
+
where: {
|
|
191
|
+
id: documentId,
|
|
192
|
+
},
|
|
193
|
+
limit: 1,
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
const documentRecord = Array.isArray(documentQuery.documents) ? documentQuery.documents[0] : undefined;
|
|
198
|
+
const parts = [];
|
|
199
|
+
parts.push({
|
|
200
|
+
type: "text",
|
|
201
|
+
text: `User attached a file.\nFile Name: "${fileName}"\nMedia Type: ${contentType}`,
|
|
202
|
+
});
|
|
203
|
+
if (documentRecord?.content && Array.isArray(documentRecord.content.pages)) {
|
|
204
|
+
const pages = documentRecord.content.pages;
|
|
205
|
+
const pageTexts = pages
|
|
206
|
+
.map((page, index) => {
|
|
207
|
+
const text = typeof page.text === "string" ? page.text : "";
|
|
208
|
+
return `\n\n--- Page ${index + 1} ---\n\n${text}`;
|
|
209
|
+
})
|
|
210
|
+
.join("");
|
|
211
|
+
if (pageTexts.length > 0) {
|
|
212
|
+
parts.push({
|
|
213
|
+
type: "text",
|
|
214
|
+
text: `Document transcription for "${fileName}":${pageTexts}`,
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
return parts;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
151
221
|
if (!fileRecord) {
|
|
152
|
-
|
|
222
|
+
throw new Error(`File not found: ${fileId || filePath || part.url}`);
|
|
153
223
|
}
|
|
154
224
|
let documentRecord = fileRecord.document;
|
|
155
225
|
if (!documentRecord || (Array.isArray(documentRecord) && documentRecord.length === 0)) {
|
|
156
226
|
const fileResponse = await fetch(fileRecord.url);
|
|
157
227
|
if (!fileResponse.ok) {
|
|
158
|
-
|
|
228
|
+
throw new Error(`Failed to fetch file: HTTP ${fileResponse.status} ${fileResponse.statusText}`);
|
|
159
229
|
}
|
|
160
230
|
const buffer = await fileResponse.arrayBuffer();
|
|
161
231
|
const documentId = await (0, document_parser_1.parseAndStoreDocument)(db, Buffer.from(buffer), fileRecord.path, fileRecord.path, fileRecord.id);
|
|
@@ -198,7 +268,7 @@ async function convertFilePart(part) {
|
|
|
198
268
|
}
|
|
199
269
|
catch (error) {
|
|
200
270
|
console.error("convertFilePart error", error);
|
|
201
|
-
|
|
271
|
+
throw error;
|
|
202
272
|
}
|
|
203
273
|
}
|
|
204
274
|
//# sourceMappingURL=events.js.map
|
package/dist/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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","sourcesContent":["import { id, init, type InstantAdminDatabase } from \"@instantdb/admin\"\nimport { convertToModelMessages, type ModelMessage, type UIMessage } from \"ai\"\nimport type { ContextEvent } from \"./service\"\nimport { parseAndStoreDocument } from \"./document-parser\"\n\nexport const USER_MESSAGE_TYPE = \"user.message\"\nexport const ASSISTANT_MESSAGE_TYPE = \"assistant.message\"\nexport const SYSTEM_MESSAGE_TYPE = \"system.message\"\n\nexport const WEB_CHANNEL = \"web\"\nexport const AGENT_CHANNEL = \"whatsapp\"\nexport const EMAIL_CHANNEL = \"email\"\n\nexport function createUserEventFromUIMessages(messages: UIMessage[]): ContextEvent {\n if (!Array.isArray(messages) || messages.length === 0) {\n throw new Error(\"Missing messages to create event\")\n }\n\n const lastMessage = messages[messages.length - 1]\n\n return {\n id: lastMessage.id,\n type: USER_MESSAGE_TYPE,\n channel: WEB_CHANNEL,\n content: {\n parts: lastMessage.parts,\n },\n createdAt: new Date().toISOString(),\n }\n}\n\nexport function createAssistantEventFromUIMessages(eventId: string, messages: UIMessage[]): ContextEvent {\n if (!Array.isArray(messages) || messages.length === 0) {\n throw new Error(\"Missing messages to create event\")\n }\n\n const lastMessage = messages[messages.length - 1]\n\n return {\n id: eventId,\n type: ASSISTANT_MESSAGE_TYPE,\n channel: WEB_CHANNEL,\n content: {\n parts: lastMessage.parts,\n },\n createdAt: new Date().toISOString(),\n }\n}\n\nexport function convertToUIMessage(event: ContextEvent): UIMessage {\n let role: \"user\" | \"assistant\"\n if (event.type === USER_MESSAGE_TYPE) {\n role = \"user\"\n } else {\n role = \"assistant\"\n }\n\n return {\n id: event.id,\n role: role,\n parts: event.content.parts,\n metadata: {\n channel: event.channel,\n type: event.type,\n createdAt: event.createdAt,\n }\n }\n}\n\nexport async function convertEventsToModelMessages(\n events: ContextEvent[],\n db: ReturnType<typeof init>\n): Promise<ModelMessage[]> {\n const results: ModelMessage[][] = []\n for (const event of events) {\n const messages = await convertEventToModelMessages(event, db)\n results.push(messages)\n }\n return results.flat()\n}\n\nexport async function convertEventToModelMessages(\n event: ContextEvent,\n db: ReturnType<typeof init>\n): Promise<ModelMessage[]> {\n\n // convert files in message\n // const files = event.content.parts.filter(part => part.type === \"file\")\n // 1. copy event to new . we will manipulate the parts\n // 2. each file part will be converted using convertFilePart\n\n const convertedParts = await Promise.all(\n (event.content?.parts || []).map(async (part: any) => {\n // Process file parts - check for type === \"file\" OR presence of url/mimeType (which indicates a file)\n if (part?.type === \"file\" || (part?.url && typeof part.url === \"string\") || part?.mimeType || part?.mediaType) {\n return await convertFilePart(part, db)\n }\n return [part]\n }),\n )\n\n const newEvent: ContextEvent = {\n ...event,\n content: {\n ...event.content,\n parts: convertedParts.flat(),\n },\n }\n\n // convert event to convertToModelMessages compatible\n let message = convertToUIMessage(newEvent)\n\n // use ai sdk helper\n return convertToModelMessages([message])\n}\n\nexport type AIMessage = {\n id: string;\n role: \"user\" | \"assistant\" | \"system\";\n content: string;\n createdAt: Date;\n}\n\nexport type ResponseMessage = {\n id: string;\n timestamp: Date;\n modelId: string;\n headers?: Record<string, string>;\n message: ModelMessage\n}\n\nexport function convertModelMessageToEvent(eventId: string, message: ResponseMessage): ContextEvent {\n\n let type;\n switch (message.message.role) {\n case \"user\":\n type = USER_MESSAGE_TYPE;\n break;\n case \"assistant\":\n type = ASSISTANT_MESSAGE_TYPE;\n break;\n case \"system\":\n type = SYSTEM_MESSAGE_TYPE;\n break;\n }\n\n return {\n id: eventId,\n type: type,\n channel: WEB_CHANNEL,\n content: {\n parts: message.message.content,\n },\n createdAt: message.timestamp.toISOString(),\n }\n}\n\n\nasync function convertFilePart(\n part: any,\n db: ReturnType<typeof init>\n): Promise<any[]> {\n // Convert file parts to text using parseAndStoreDocument\n // Uses providerMetadata.instant.fileId if available, otherwise falls back to URL lookup\n \n // Get fileId and filePath from providerMetadata\n const fileId = part.providerMetadata?.instant?.fileId || null\n const filePath = part.providerMetadata?.instant?.path || null\n\n // If we have a fileId, query by ID. Otherwise, try by path or URL\n let fileRecord: any = undefined\n\n try {\n if (fileId) {\n const fileQuery: any = await db.query({\n $files: {\n $: {\n where: {\n id: fileId,\n },\n limit: 1,\n },\n document: {},\n },\n } as any)\n fileRecord = Array.isArray(fileQuery.$files) ? fileQuery.$files[0] : undefined\n } else if (filePath) {\n // Try to find by path\n const fileQuery: any = await db.query({\n $files: {\n $: {\n where: {\n path: filePath,\n },\n limit: 1,\n },\n document: {},\n },\n } as any)\n fileRecord = Array.isArray(fileQuery.$files) ? fileQuery.$files[0] : undefined\n } else if (part.url.startsWith(\"http://\") || part.url.startsWith(\"https://\")) {\n // For HTTP/HTTPS URLs, try to find by URL\n const fileQuery: any = await db.query({\n $files: {\n $: {\n where: {\n url: part.url,\n },\n limit: 1,\n },\n document: {},\n },\n } as any)\n fileRecord = Array.isArray(fileQuery.$files) ? fileQuery.$files[0] : undefined\n }\n\n // If we still don't have a file record and have a URL, fetch and process it\n if (!fileRecord && (part.url.startsWith(\"http://\") || part.url.startsWith(\"https://\"))) {\n // Try to fetch the file directly and process it\n const fileResponse = await fetch(part.url)\n if (fileResponse.ok) {\n const buffer = await fileResponse.arrayBuffer()\n const contentType = part.mediaType || fileResponse.headers.get(\"content-type\") || \"application/octet-stream\"\n const fileName = part.filename || \"file\"\n \n // Use a temporary path if we don't have one\n const tempPath = filePath || `/temp/${Date.now()}-${fileName}`\n \n const documentId = await parseAndStoreDocument(\n db,\n Buffer.from(buffer),\n tempPath,\n fileName,\n id(), // Generate a temporary ID\n )\n\n const documentQuery: any = await db.query({\n documents: {\n $: {\n where: {\n id: documentId,\n },\n limit: 1,\n },\n },\n } as any)\n\n const documentRecord = Array.isArray(documentQuery.documents) ? documentQuery.documents[0] : undefined\n\n const parts: any[] = []\n parts.push({\n type: \"text\",\n text: `User attached a file.\\nFile Name: \"${fileName}\"\\nMedia Type: ${contentType}`,\n })\n\n if (documentRecord?.content && Array.isArray(documentRecord.content.pages)) {\n const pages = documentRecord.content.pages\n const pageTexts = pages\n .map((page: Record<string, unknown>, index: number) => {\n const text = typeof page.text === \"string\" ? page.text : \"\"\n return `\\n\\n--- Page ${index + 1} ---\\n\\n${text}`\n })\n .join(\"\")\n\n if (pageTexts.length > 0) {\n parts.push({\n type: \"text\",\n text: `Document transcription for \"${fileName}\":${pageTexts}`,\n })\n }\n }\n\n return parts\n }\n }\n\n if (!fileRecord) {\n throw new Error(`File not found: ${fileId || filePath || part.url}`)\n }\n\n let documentRecord = fileRecord.document as any\n if (!documentRecord || (Array.isArray(documentRecord) && documentRecord.length === 0)) {\n const fileResponse = await fetch(fileRecord.url as string)\n if (!fileResponse.ok) {\n throw new Error(`Failed to fetch file: HTTP ${fileResponse.status} ${fileResponse.statusText}`)\n }\n\n const buffer = await fileResponse.arrayBuffer()\n const documentId = await parseAndStoreDocument(\n db,\n Buffer.from(buffer),\n fileRecord.path as string,\n fileRecord.path as string,\n fileRecord.id as string,\n )\n\n const documentQuery: any = await db.query({\n documents: {\n $: {\n where: {\n id: documentId,\n },\n limit: 1,\n },\n },\n } as any)\n\n documentRecord = Array.isArray(documentQuery.documents) ? documentQuery.documents[0] : undefined\n }\n\n const parts: any[] = []\n\n const fileName = documentRecord && typeof documentRecord === \"object\" && \"fileName\" in documentRecord\n ? String(documentRecord.fileName)\n : String(fileRecord.path || \"Unknown\")\n\n parts.push({\n type: \"text\",\n text: `User attached a file.\\nFile ID: ${fileRecord.id}\\nFile Name: \"${fileName}\"\\nMedia Type: ${part.mediaType || \"unknown\"}`,\n })\n\n if (documentRecord?.content && Array.isArray(documentRecord.content.pages)) {\n const pages = documentRecord.content.pages\n const pageTexts = pages\n .map((page: Record<string, unknown>, index: number) => {\n const text = typeof page.text === \"string\" ? page.text : \"\"\n return `\\n\\n--- Page ${index + 1} ---\\n\\n${text}`\n })\n .join(\"\")\n\n if (pageTexts.length > 0) {\n parts.push({\n type: \"text\",\n text: `Document transcription for File ID ${fileRecord.id}:${pageTexts}`,\n })\n }\n }\n\n return parts\n } catch (error) {\n console.error(\"convertFilePart error\", error)\n throw error\n }\n}\n"]}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCASgB;AARd,8FAAA,KAAK,OAAA;AAML,oGAAA,WAAW,OAAA;AACX,8FAAA,KAAK,OAAA;AAGP,qCAAwC;AAA/B,uGAAA,YAAY,OAAA;AAGrB,mCAAsC;AAA7B,qGAAA,WAAW,OAAA;AAEpB,mCAOiB;AANf,2GAAA,iBAAiB,OAAA;AACjB,gHAAA,sBAAsB,OAAA;AACtB,6GAAA,mBAAmB,OAAA;AACnB,qGAAA,WAAW,OAAA;AACX,uGAAA,aAAa,OAAA;AACb,uGAAA,aAAa,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCASgB;AARd,8FAAA,KAAK,OAAA;AAML,oGAAA,WAAW,OAAA;AACX,8FAAA,KAAK,OAAA;AAGP,qCAAwC;AAA/B,uGAAA,YAAY,OAAA;AAGrB,mCAAsC;AAA7B,qGAAA,WAAW,OAAA;AAEpB,mCAOiB;AANf,2GAAA,iBAAiB,OAAA;AACjB,gHAAA,sBAAsB,OAAA;AACtB,6GAAA,mBAAmB,OAAA;AACnB,qGAAA,WAAW,OAAA;AACX,uGAAA,aAAa,OAAA;AACb,uGAAA,aAAa,OAAA","sourcesContent":["export {\n agent,\n type AgentConfig,\n type AgentInstance,\n type AgentOptions,\n type ProgressStreamOptions,\n type DataStreamWriter,\n createAgent,\n Agent,\n} from \"./agent\"\n\nexport { AgentService } from \"./service\"\nexport type { ContextIdentifier, StoredContext, ContextEvent } from \"./service\"\n\nexport { storyDomain } from \"./schema\"\n\nexport {\n USER_MESSAGE_TYPE,\n ASSISTANT_MESSAGE_TYPE,\n SYSTEM_MESSAGE_TYPE,\n WEB_CHANNEL,\n AGENT_CHANNEL,\n EMAIL_CHANNEL,\n} from \"./events\""]}
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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","sourcesContent":["import { i } from \"@instantdb/core\";\nimport { domain } from \"@ekairos/domain\";\n\nconst entities = {\n context_contexts: i.entity({\n createdAt: i.date(),\n updatedAt: i.date().optional(),\n type: i.string().optional(),\n key: i.string().optional().indexed().unique(),\n status: i.string().optional().indexed(), // open | streaming | closed\n content: i.any().optional(),\n }),\n context_events: i.entity({\n channel: i.string().indexed(),\n createdAt: i.date().indexed(),\n type: i.string().optional().indexed(),\n content: i.any().optional(),\n status: i.string().optional().indexed(),\n }),\n story_executions: i.entity({\n createdAt: i.date(),\n updatedAt: i.date().optional(),\n status: i.string().optional().indexed(), // executing | completed | failed\n }),\n} as const;\n\nconst links = {\n storyEventsContext: {\n forward: { on: \"context_events\", has: \"one\", label: \"context\" },\n reverse: { on: \"context_contexts\", has: \"many\", label: \"events\" },\n },\n // Executions belong to a context\n storyExecutionsContext: {\n forward: { on: \"story_executions\", has: \"one\", label: \"context\" },\n reverse: { on: \"context_contexts\", has: \"many\", label: \"executions\" },\n },\n // Current execution pointer on a context\n storyContextsCurrentExecution: {\n forward: { on: \"context_contexts\", has: \"one\", label: \"currentExecution\" },\n reverse: { on: \"story_executions\", has: \"one\", label: \"currentOf\" },\n },\n // Link execution to its trigger event\n storyExecutionsTrigger: {\n forward: { on: \"story_executions\", has: \"one\", label: \"trigger\" },\n reverse: { on: \"context_events\", has: \"many\", label: \"executionsAsTrigger\" },\n },\n // Link execution to its reaction event\n storyExecutionsReaction: {\n forward: { on: \"story_executions\", has: \"one\", label: \"reaction\" },\n reverse: { on: \"context_events\", has: \"many\", label: \"executionsAsReaction\" },\n },\n} as const;\n\nconst rooms = {} as const;\n\nexport const storyDomain = domain({ entities, links, rooms });\n\n\n\n"]}
|
package/dist/service.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { InstaQLEntity } from "@instantdb/admin";
|
|
1
|
+
import { init, InstaQLEntity } from "@instantdb/admin";
|
|
2
2
|
import { storyDomain } from "./schema";
|
|
3
3
|
export type StoredContext<Context> = Omit<InstaQLEntity<typeof storyDomain, 'context_contexts'>, 'content'> & {
|
|
4
4
|
content: Context | null;
|
|
@@ -21,7 +21,7 @@ export type StreamChunk = {
|
|
|
21
21
|
};
|
|
22
22
|
export declare class AgentService {
|
|
23
23
|
private db;
|
|
24
|
-
constructor();
|
|
24
|
+
constructor(db: ReturnType<typeof init>);
|
|
25
25
|
getOrCreateContext<C>(contextIdentifier: ContextIdentifier | null): Promise<StoredContext<C>>;
|
|
26
26
|
createContext<C>(contextKey?: {
|
|
27
27
|
key: string;
|
package/dist/service.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,IAAI,EAAE,aAAa,EAAU,MAAM,kBAAkB,CAAA;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEtC,MAAM,MAAM,aAAa,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,WAAW,EAAE,kBAAkB,CAAC,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAA;CAAE,CAAA;AACzI,MAAM,MAAM,iBAAiB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,KAAK,CAAA;CAAE,CAAA;AAEzF,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,WAAW,EAAE,gBAAgB,CAAC,GAAG;IAAE,OAAO,EAAE,GAAG,CAAA;CAAE,CAAA;AAEjG,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACzB,CAAA;AAED,qBAAa,YAAY;IAErB,OAAO,CAAC,EAAE,CAAyB;gBAEvB,EAAE,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC;IAI1B,kBAAkB,CAAC,CAAC,EAAE,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAa7F,aAAa,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAsBpG,UAAU,CAAC,CAAC,EAAE,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IA4B9E,oBAAoB,CAAC,CAAC,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAcpG,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAmB3F,eAAe,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IA0B/H,mBAAmB,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAYjH,iBAAiB,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAe3H,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAOxE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAShD,SAAS,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAuBxE,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC;QAC1D,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;QAC3B,MAAM,EAAE,WAAW,EAAE,CAAA;QACrB,cAAc,EAAE,GAAG,CAAA;KACtB,CAAC;CAyCL"}
|
package/dist/service.js
CHANGED
|
@@ -2,14 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.AgentService = void 0;
|
|
4
4
|
const admin_1 = require("@instantdb/admin");
|
|
5
|
-
const schema_1 = require("./schema");
|
|
6
5
|
class AgentService {
|
|
7
|
-
constructor() {
|
|
8
|
-
this.db =
|
|
9
|
-
appId: process.env.NEXT_PUBLIC_INSTANT_APP_ID,
|
|
10
|
-
adminToken: process.env.INSTANT_APP_ADMIN_TOKEN,
|
|
11
|
-
schema: schema_1.storyDomain.schema()
|
|
12
|
-
});
|
|
6
|
+
constructor(db) {
|
|
7
|
+
this.db = db;
|
|
13
8
|
}
|
|
14
9
|
async getOrCreateContext(contextIdentifier) {
|
|
15
10
|
if (!contextIdentifier) {
|
package/dist/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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","sourcesContent":["import { id, init, InstaQLEntity, lookup } from \"@instantdb/admin\"\nimport { storyDomain } from \"./schema\"\n\nexport type StoredContext<Context> = Omit<InstaQLEntity<typeof storyDomain, 'context_contexts'>, 'content'> & { content: Context | null }\nexport type ContextIdentifier = { id: string; key?: never } | { key: string; id?: never }\n\nexport type ContextEvent = InstaQLEntity<typeof storyDomain, 'context_events'> & { content: any }\n\nexport type StreamChunk = {\n type: string\n messageId?: string\n content?: string\n [key: string]: unknown\n}\n\nexport class AgentService {\n\n private db: ReturnType<typeof init>\n\n constructor(db: ReturnType<typeof init>) {\n this.db = db\n }\n\n public async getOrCreateContext<C>(contextIdentifier: ContextIdentifier | null): Promise<StoredContext<C>> {\n if (!contextIdentifier) {\n return this.createContext<C>()\n }\n\n let context = await this.getContext<C>(contextIdentifier)\n if (!context) {\n return this.createContext<C>(contextIdentifier.key ? { key: contextIdentifier.key } : null, contextIdentifier.id)\n } else {\n return context\n }\n }\n\n public async createContext<C>(contextKey?: { key: string } | null, contextId?: string): Promise<StoredContext<C>> {\n let contextData: { createdAt: Date; content: Record<string, unknown>; key: string | null; status: \"open\" } = {\n createdAt: new Date(),\n content: {},\n key: null,\n status: \"open\"\n }\n\n const newContextId = contextId ?? id()\n if (contextKey?.key) {\n contextData = {\n ...contextData,\n key: contextKey.key\n }\n }\n\n await this.db.transact([\n this.db.tx.context_contexts[newContextId].create(contextData)\n ])\n return this.getContext<C>({ id: newContextId })\n }\n\n public async getContext<C>(contextIdentifier: ContextIdentifier): Promise<StoredContext<C>> {\n let context;\n try {\n if (contextIdentifier.id) {\n const tRes = await this.db.query({\n context_contexts: {\n $: { where: { id: contextIdentifier.id }, limit: 1 }\n }\n })\n context = tRes.context_contexts?.[0]\n }\n\n if (contextIdentifier.key) {\n const tRes = await this.db.query({\n context_contexts: {\n $: { where: { key: contextIdentifier.key } }\n }\n })\n context = tRes.context_contexts?.[0]\n }\n\n return context as unknown as StoredContext<C>\n } catch (error: any) {\n console.error(\"Error getting context\", error)\n throw new Error(\"Error getting context: \" + error.message)\n }\n }\n\n public async updateContextContent<C>(contextIdentifier: ContextIdentifier, content: C): Promise<StoredContext<C>> {\n\n const contextDBIdentifier = contextIdentifier.id ?? lookup(\"key\", contextIdentifier.key)\n\n await this.db.transact([\n this.db.tx.context_contexts[contextDBIdentifier].update({\n content: content,\n updatedAt: new Date()\n })\n ])\n\n return this.getContext<C>(contextIdentifier)\n }\n\n public async saveEvent(contextIdentifier: ContextIdentifier, event: ContextEvent): Promise<ContextEvent> {\n const txs = [\n this.db.tx.context_events[event.id].create({\n ...event,\n status: \"stored\"\n })\n ]\n\n if (contextIdentifier.id) {\n txs.push(this.db.tx.context_events[event.id].link({ context: contextIdentifier.id }))\n } else {\n txs.push(this.db.tx.context_events[event.id].link({ context: lookup(\"key\", contextIdentifier.key) }))\n }\n\n await this.db.transact(txs)\n\n return await this.getEvent(event.id)\n }\n\n public async createExecution(contextIdentifier: ContextIdentifier, triggerEventId: string, reactionEventId: string): Promise<{ id: string }> {\n const executionId = id()\n const execCreate = this.db.tx.story_executions[executionId].create({\n createdAt: new Date(),\n status: \"executing\",\n })\n\n const txs: any[] = [execCreate]\n\n if (contextIdentifier.id) {\n txs.push(this.db.tx.story_executions[executionId].link({ context: contextIdentifier.id }))\n txs.push(this.db.tx.context_contexts[contextIdentifier.id].link({ currentExecution: executionId }))\n } else {\n const ctxLookup = lookup(\"key\", contextIdentifier.key)\n txs.push(this.db.tx.story_executions[executionId].link({ context: ctxLookup }))\n txs.push(this.db.tx.context_contexts[ctxLookup].link({ currentExecution: executionId }))\n }\n\n txs.push(this.db.tx.story_executions[executionId].link({ trigger: triggerEventId }))\n txs.push(this.db.tx.story_executions[executionId].link({ reaction: reactionEventId }))\n\n await this.db.transact(txs)\n\n return { id: executionId }\n }\n\n public async updateContextStatus(contextIdentifier: ContextIdentifier, status: \"open\" | \"streaming\" | \"closed\"): Promise<void> {\n const txs: any[] = []\n \n if (contextIdentifier.id) {\n txs.push(this.db.tx.context_contexts[contextIdentifier.id].update({ status, updatedAt: new Date() }))\n } else {\n txs.push(this.db.tx.context_contexts[lookup(\"key\", contextIdentifier.key)].update({ status, updatedAt: new Date() }))\n }\n\n await this.db.transact(txs)\n }\n\n public async completeExecution(contextIdentifier: ContextIdentifier, executionId: string, status: \"completed\" | \"failed\"): Promise<void> {\n const txs: any[] = []\n txs.push(this.db.tx.story_executions[executionId].update({ status, updatedAt: new Date() }))\n\n // Update context status to \"open\" when execution completes\n if (contextIdentifier.id) {\n txs.push(this.db.tx.context_contexts[contextIdentifier.id].update({ status: \"open\", updatedAt: new Date() }))\n // optionally unlink currentExecution if desired\n } else {\n txs.push(this.db.tx.context_contexts[lookup(\"key\", contextIdentifier.key)].update({ status: \"open\", updatedAt: new Date() }))\n }\n\n await this.db.transact(txs)\n }\n\n public async updateEvent(eventId: string, event: ContextEvent): Promise<ContextEvent> {\n await this.db.transact([\n this.db.tx.context_events[eventId].update(event)\n ])\n return await this.getEvent(eventId)\n }\n\n public async getEvent(eventId: string): Promise<ContextEvent> {\n const event = await this.db.query({\n context_events: {\n $: { where: { id: eventId } }\n }\n })\n return event.context_events?.[0] as ContextEvent\n }\n\n public async getEvents(contextIdentifier: ContextIdentifier): Promise<ContextEvent[]> {\n\n let contextWhere;\n if (contextIdentifier.id) {\n contextWhere = { context: contextIdentifier.id }\n } else {\n contextWhere = { context: lookup(\"key\", contextIdentifier.key) }\n }\n\n const events = await this.db.query({\n context_events: {\n $: {\n where: contextWhere,\n limit: 30,\n order: {\n createdAt: 'asc',\n },\n }\n }\n })\n return events.context_events as ContextEvent[]\n }\n\n public async readEventStream(stream: ReadableStream): Promise<{\n eventId: string | undefined\n chunks: StreamChunk[]\n persistedEvent: any\n }> {\n const reader = stream.getReader()\n const chunks: StreamChunk[] = []\n let firstChunk: StreamChunk | undefined\n\n while (true) {\n const { value, done } = await reader.read()\n if (done) {\n break\n }\n const currentChunk = value as StreamChunk\n if (!firstChunk) {\n firstChunk = currentChunk\n }\n chunks.push(currentChunk)\n }\n\n if (!firstChunk) {\n throw new Error(\"No chunks received from stream\")\n }\n\n const eventId = firstChunk.messageId\n\n const query = await this.db.query({\n context_events: {\n $: {\n where: { id: eventId },\n limit: 1,\n fields: [\"id\", \"channel\", \"type\", \"status\", \"createdAt\", \"content\"],\n },\n },\n })\n\n const persistedEvent = Array.isArray(query.context_events) ? query.context_events[0] : undefined\n\n return {\n eventId,\n chunks,\n persistedEvent,\n }\n }\n}"]}
|
package/dist/steps/ai.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/steps/ai.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/steps/ai.ts"],"names":[],"mappings":"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","sourcesContent":["import { streamText, tool, type Tool, stepCountIs } from \"ai\"\r\nimport { openai } from \"@ai-sdk/openai\"\r\nimport { z } from \"zod\"\r\nimport { id } from \"@instantdb/admin\"\r\nimport { createAssistantEventFromUIMessages } from \"../events\"\r\n\r\ntype PrimitiveType = \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\"\r\n\r\ntype FieldSchema = {\r\n type: PrimitiveType\r\n description?: string\r\n required?: boolean\r\n properties?: Record<string, FieldSchema>\r\n items?: FieldSchema\r\n}\r\n\r\ntype StepInputSchema = {\r\n type: \"object\"\r\n description?: string\r\n properties?: Record<string, FieldSchema>\r\n}\r\n\r\ntype StoryActionSpec = {\r\n name: string\r\n description: string\r\n implementationKey: string\r\n inputSchema?: StepInputSchema\r\n finalize?: boolean\r\n}\r\n\r\ntype StoryOptions = {\r\n reasoningEffort?: \"low\" | \"medium\" | \"high\"\r\n webSearch?: boolean\r\n includeBaseTools?: { createMessage?: boolean; requestDirection?: boolean; end?: boolean }\r\n}\r\n\r\nfunction zodFromField(field: FieldSchema): z.ZodTypeAny {\r\n switch (field.type) {\r\n case \"string\":\r\n return z.string().describe(field.description ?? \"\")\r\n case \"number\":\r\n return z.number().describe(field.description ?? \"\")\r\n case \"boolean\":\r\n return z.boolean().describe(field.description ?? \"\")\r\n case \"array\":\r\n if (!field.items) return z.array(z.any()).describe(field.description ?? \"\")\r\n return z.array(zodFromField(field.items)).describe(field.description ?? \"\")\r\n case \"object\":\r\n return z.object(Object.fromEntries(Object.entries(field.properties ?? {}).map(([k, v]) => [k, zodFromField(v)])))\r\n .describe(field.description ?? \"\")\r\n default:\r\n return z.any()\r\n }\r\n}\r\n\r\nfunction zodFromSchema(schema?: StepInputSchema): z.ZodTypeAny {\r\n if (!schema || schema.type !== \"object\") return z.object({}).strict()\r\n const shape: Record<string, z.ZodTypeAny> = {}\r\n for (const [name, field] of Object.entries(schema.properties ?? {})) {\r\n const base = zodFromField(field)\r\n shape[name] = field.required ? base : base.optional()\r\n }\r\n const obj = z.object(shape)\r\n return obj\r\n}\r\n\r\nexport async function runReasoningOnceStep(params: {\r\n contextId: string\r\n systemPrompt: string\r\n actions: StoryActionSpec[]\r\n options: StoryOptions\r\n}): Promise<{ toolCalls: Array<{ toolCallId: string; toolName: string; args: any }> }> {\r\n \"use step\"\r\n\r\n // Construir tools para el modelo sin ejecutar (sin execute)\r\n const tools: Record<string, Tool> = {}\r\n const includeBase = params.options?.includeBaseTools || { createMessage: true, requestDirection: true, end: true }\r\n \r\n for (const action of params.actions) {\r\n const inputSchema = zodFromSchema(action.inputSchema)\r\n tools[action.name] = tool({\r\n description: action.description,\r\n inputSchema: inputSchema,\r\n })\r\n }\r\n \r\n if (includeBase.createMessage) {\r\n tools.createMessage = tool({\r\n description: \"Send a message to the user. Use for final confirmations or information.\",\r\n inputSchema: z.object({ message: z.string().describe(\"Markdown content\") }),\r\n })\r\n }\r\n if (includeBase.requestDirection) {\r\n tools.requestDirection = tool({\r\n description: \"Ask a human for guidance when blocked or unsure.\",\r\n inputSchema: z.object({ issue: z.string(), context: z.string(), suggestedActions: z.array(z.string()).optional(), urgency: z.enum([\"low\",\"medium\",\"high\"]).default(\"medium\") }),\r\n })\r\n }\r\n if (includeBase.end) {\r\n tools.end = tool({\r\n description: \"End the current interaction loop.\",\r\n inputSchema: z.object({}).strict(),\r\n })\r\n }\r\n\r\n const providerOptions: any = {}\r\n if (params.options?.reasoningEffort) {\r\n providerOptions.openai = {\r\n reasoningEffort: params.options.reasoningEffort,\r\n reasoningSummary: \"detailed\",\r\n }\r\n }\r\n\r\n const result = streamText({\r\n model: openai(\"gpt-4o-mini\"),\r\n system: params.systemPrompt,\r\n messages: [],\r\n tools,\r\n toolChoice: \"required\",\r\n stopWhen: stepCountIs(1),\r\n ...(Object.keys(providerOptions).length > 0 && { providerOptions }),\r\n })\r\n\r\n result.consumeStream()\r\n\r\n let resolveFinish!: (value: any) => void\r\n let rejectFinish!: (reason?: unknown) => void\r\n const finishPromise = new Promise<any>((resolve, reject) => {\r\n resolveFinish = resolve\r\n rejectFinish = reject\r\n })\r\n\r\n const eventId = id()\r\n\r\n result\r\n .toUIMessageStream({\r\n sendStart: false,\r\n generateMessageId: () => eventId,\r\n messageMetadata() {\r\n return { eventId }\r\n },\r\n onFinish: ({ messages }) => {\r\n const lastEvent = createAssistantEventFromUIMessages(eventId, messages)\r\n resolveFinish(lastEvent)\r\n },\r\n onError: (e: unknown) => {\r\n rejectFinish(e)\r\n const message = e instanceof Error ? e.message : String(e)\r\n return message\r\n },\r\n })\r\n .pipeThrough(\r\n new TransformStream({\r\n transform(chunk: any, controller: any) {\r\n if (chunk.type === \"start\") return\r\n if (chunk.type === \"finish-step\") return\r\n if (chunk.type === \"start-step\") return\r\n if (chunk.type === \"finish\") return\r\n controller.enqueue(chunk as any)\r\n },\r\n })\r\n )\r\n\r\n const lastEvent = await finishPromise\r\n\r\n const toolCalls: Array<{ toolCallId: string; toolName: string; args: any }> = []\r\n try {\r\n for (const p of lastEvent.content.parts || []) {\r\n if (typeof p.type === \"string\" && p.type.startsWith(\"tool-\")) {\r\n const toolName = p.type.split(\"-\")[1]\r\n toolCalls.push({ toolCallId: p.toolCallId, toolName, args: p.input })\r\n }\r\n }\r\n } catch { }\r\n\r\n return { toolCalls }\r\n}\r\n\r\n\r\n"]}
|
package/dist/steps/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/steps/base.ts"],"names":[],"mappings":";;AAEA,sDA6BC;AA/BD,yCAA8C;AAEvC,KAAK,UAAU,qBAAqB,CAAC,MAAmE;IAC7G,UAAU,CAAA;IACV,wCAAwC;IACxC,MAAM,IAAI,GAAG,IAAA,4BAAiB,EAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;IACxD,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;YAClF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;QAClC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;QACrE,CAAC;IACH,CAAC;IACD,iEAAiE;IACjE,sFAAsF;IACtF,IAAI,CAAC;QACH,MAAM,OAAO,GAAI,UAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,EAAE,OAAuC,CAAA;QAC/G,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;gBACrD,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;oBACnD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;oBAC5F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IACrE,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAA;AACnF,CAAC"}
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/steps/base.ts"],"names":[],"mappings":";;AAEA,sDA6BC;AA/BD,yCAA8C;AAEvC,KAAK,UAAU,qBAAqB,CAAC,MAAmE;IAC7G,UAAU,CAAA;IACV,wCAAwC;IACxC,MAAM,IAAI,GAAG,IAAA,4BAAiB,EAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;IACxD,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;YAClF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;QAClC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;QACrE,CAAC;IACH,CAAC;IACD,iEAAiE;IACjE,sFAAsF;IACtF,IAAI,CAAC;QACH,MAAM,OAAO,GAAI,UAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,EAAE,OAAuC,CAAA;QAC/G,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;gBACrD,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;oBACnD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;oBAC5F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAA;gBAClC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IACrE,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,MAAM,CAAC,iBAAiB,EAAE,EAAE,CAAA;AACnF,CAAC","sourcesContent":["import { getRegisteredStep } from \"./registry\"\r\n\r\nexport async function executeRegisteredStep(params: { implementationKey: string; contextId: string; args: any }) {\r\n \"use step\"\r\n // 1) Intentar step registrado explícito\r\n const step = getRegisteredStep(params.implementationKey)\r\n if (step) {\r\n try {\r\n const result = await step({ contextId: params.contextId, ...(params.args ?? {}) })\r\n return { success: true, result }\r\n } catch (error: any) {\r\n return { success: false, message: error?.message ?? String(error) }\r\n }\r\n }\r\n // 2) Intentar acción runtime desde storyEngine (no serializable)\r\n // Buscamos una story que tenga esta implementación (acceso directo al símbolo global)\r\n try {\r\n const stories = (globalThis as any)[Symbol.for(\"PULZAR_STORY_ENGINE\")]?.stories as Map<string, any> | undefined\r\n if (stories) {\r\n for (const [, rt] of stories) {\r\n const action = rt.actions?.[params.implementationKey]\r\n if (action && typeof action.execute === \"function\") {\r\n const result = await action.execute({ contextId: params.contextId, ...(params.args ?? {}) })\r\n return { success: true, result }\r\n }\r\n }\r\n }\r\n } catch (error: any) {\r\n return { success: false, message: error?.message ?? String(error) }\r\n }\r\n return { success: false, message: `Step not found: ${params.implementationKey}` }\r\n}\r\n\r\n\r\n"]}
|
package/dist/steps/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/steps/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,uCAAoB;AACpB,yCAAsB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/steps/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA0B;AAC1B,uCAAoB;AACpB,yCAAsB","sourcesContent":["export * from \"./registry\"\r\nexport * from \"./ai\"\r\nexport * from \"./base\"\r\n\r\n\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/steps/registry.ts"],"names":[],"mappings":";AAAA,uDAAuD;AACvD,iEAAiE;;AAcjE,oCAIC;AAED,8CAEC;AAED,kDAEC;AAtBD,MAAM,2BAA2B,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;AAEtE,SAAS,WAAW;IAClB,MAAM,CAAC,GAAG,UAAiB,CAAA;IAC3B,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC,EAAE,CAAC;QACpC,CAAC,CAAC,2BAA2B,CAAC,GAAG,IAAI,GAAG,EAA0B,CAAA;IACpE,CAAC;IACD,OAAO,CAAC,CAAC,2BAA2B,CAAgC,CAAA;AACtE,CAAC;AAED,SAAgB,YAAY,CAAC,GAAW,EAAE,EAAkB;IAC1D,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;IAClF,IAAI,OAAO,EAAE,KAAK,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC1E,WAAW,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AAC5B,CAAC;AAED,SAAgB,iBAAiB,CAAC,GAAW;IAC3C,OAAO,WAAW,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAC/B,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;AACzC,CAAC"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/steps/registry.ts"],"names":[],"mappings":";AAAA,uDAAuD;AACvD,iEAAiE;;AAcjE,oCAIC;AAED,8CAEC;AAED,kDAEC;AAtBD,MAAM,2BAA2B,GAAG,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAA;AAEtE,SAAS,WAAW;IAClB,MAAM,CAAC,GAAG,UAAiB,CAAA;IAC3B,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC,EAAE,CAAC;QACpC,CAAC,CAAC,2BAA2B,CAAC,GAAG,IAAI,GAAG,EAA0B,CAAA;IACpE,CAAC;IACD,OAAO,CAAC,CAAC,2BAA2B,CAAgC,CAAA;AACtE,CAAC;AAED,SAAgB,YAAY,CAAC,GAAW,EAAE,EAAkB;IAC1D,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;IAClF,IAAI,OAAO,EAAE,KAAK,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC1E,WAAW,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;AAC5B,CAAC;AAED,SAAgB,iBAAiB,CAAC,GAAW;IAC3C,OAAO,WAAW,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAC/B,CAAC;AAED,SAAgB,mBAAmB;IACjC,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;AACzC,CAAC","sourcesContent":["// Registro simple de steps por clave de implementación\r\n// Cada step debe ser una función que internamente use \"use step\"\r\n\r\nexport type RegisteredStep = (args: any) => Promise<any>\r\n\r\nconst GLOBAL_STEP_REGISTRY_SYMBOL = Symbol.for(\"PULZAR_STEP_REGISTRY\")\r\n\r\nfunction getRegistry(): Map<string, RegisteredStep> {\r\n const g = globalThis as any\r\n if (!g[GLOBAL_STEP_REGISTRY_SYMBOL]) {\r\n g[GLOBAL_STEP_REGISTRY_SYMBOL] = new Map<string, RegisteredStep>()\r\n }\r\n return g[GLOBAL_STEP_REGISTRY_SYMBOL] as Map<string, RegisteredStep>\r\n}\r\n\r\nexport function registerStep(key: string, fn: RegisteredStep) {\r\n if (!key || typeof key !== \"string\") throw new Error(\"registerStep: key inválida\")\r\n if (typeof fn !== \"function\") throw new Error(\"registerStep: fn inválida\")\r\n getRegistry().set(key, fn)\r\n}\r\n\r\nexport function getRegisteredStep(key: string): RegisteredStep | undefined {\r\n return getRegistry().get(key)\r\n}\r\n\r\nexport function listRegisteredSteps(): string[] {\r\n return Array.from(getRegistry().keys())\r\n}\r\n\r\n\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sampleStep.js","sourceRoot":"","sources":["../../src/steps/sampleStep.ts"],"names":[],"mappings":";;AACA,gCAeC;AAfM,KAAK,UAAU,UAAU,CAAC,KAAa;IAC5C,UAAU,CAAC;IACX,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAErC,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"sampleStep.js","sourceRoot":"","sources":["../../src/steps/sampleStep.ts"],"names":[],"mappings":";;AACA,gCAeC;AAfM,KAAK,UAAU,UAAU,CAAC,KAAa;IAC5C,UAAU,CAAC;IACX,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE7B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAErC,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["\nexport async function sampleStep(input: string): Promise<string> {\n \"use step\";\n if (input == null) {\n throw new Error(\"input is required\");\n }\n\n const trimmed = input.trim();\n\n if (trimmed.length === 0) {\n throw new Error(\"input must contain characters\");\n }\n\n const result = trimmed.toUpperCase();\n\n return result;\n}"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steps-context.d.ts","sourceRoot":"","sources":["../src/steps-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,iBAAiB,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"steps-context.d.ts","sourceRoot":"","sources":["../src/steps-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAI3D,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAAE;;GAcjG;AAED,wBAAsB,qBAAqB,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,mBAM3F"}
|
package/dist/steps-context.js
CHANGED
|
@@ -3,9 +3,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ensureContextStep = ensureContextStep;
|
|
4
4
|
exports.buildSystemPromptStep = buildSystemPromptStep;
|
|
5
5
|
const service_1 = require("./service");
|
|
6
|
+
const admin_1 = require("@instantdb/admin");
|
|
7
|
+
const schema_1 = require("./schema");
|
|
6
8
|
async function ensureContextStep(params) {
|
|
7
9
|
"use step";
|
|
8
|
-
|
|
10
|
+
// Note: This function should receive db as parameter in the future
|
|
11
|
+
// For now, we create a temporary instance (this is a legacy function)
|
|
12
|
+
const db = (0, admin_1.init)({
|
|
13
|
+
appId: process.env.NEXT_PUBLIC_INSTANT_APP_ID,
|
|
14
|
+
adminToken: process.env.INSTANT_APP_ADMIN_TOKEN,
|
|
15
|
+
schema: schema_1.storyDomain.schema()
|
|
16
|
+
});
|
|
17
|
+
const service = new service_1.AgentService(db);
|
|
9
18
|
const selector = params.context;
|
|
10
19
|
const ctx = await service.getOrCreateContext(selector ?? { key: params.key });
|
|
11
20
|
return { contextId: ctx.id };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steps-context.js","sourceRoot":"","sources":["../src/steps-context.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"steps-context.js","sourceRoot":"","sources":["../src/steps-context.ts"],"names":[],"mappings":";;AAIA,8CAcC;AAED,sDAMC;AA1BD,uCAA2D;AAC3D,4CAAuC;AACvC,qCAAsC;AAE/B,KAAK,UAAU,iBAAiB,CAAC,MAA0D;IAChG,UAAU,CAAA;IACV,mEAAmE;IACnE,sEAAsE;IACtE,MAAM,EAAE,GAAG,IAAA,YAAI,EAAC;QACd,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,0BAAoC;QACvD,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAiC;QACzD,MAAM,EAAE,oBAAW,CAAC,MAAM,EAAE;KAC7B,CAAC,CAAA;IACF,MAAM,OAAO,GAAG,IAAI,sBAAY,CAAC,EAAE,CAAC,CAAA;IAEpC,MAAM,QAAQ,GAA6B,MAAM,CAAC,OAAO,CAAA;IACzD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAM,QAAQ,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,CAAA;IAClF,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,CAAA;AAC9B,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAC,MAAgD;IAC1F,UAAU,CAAA;IACV,uFAAuF;IACvF,kFAAkF;IAClF,MAAM,YAAY,GAAG,GAAG,MAAM,CAAC,SAAS,6BAA6B,MAAM,CAAC,SAAS,EAAE,CAAA;IACvF,OAAO,YAAY,CAAA;AACrB,CAAC","sourcesContent":["import { AgentService, ContextIdentifier } from \"./service\"\nimport { init } from \"@instantdb/admin\"\nimport { storyDomain } from \"./schema\"\n\nexport async function ensureContextStep(params: { key: string; context: ContextIdentifier | null }) {\n \"use step\"\n // Note: This function should receive db as parameter in the future\n // For now, we create a temporary instance (this is a legacy function)\n const db = init({\n appId: process.env.NEXT_PUBLIC_INSTANT_APP_ID as string,\n adminToken: process.env.INSTANT_APP_ADMIN_TOKEN as string,\n schema: storyDomain.schema()\n })\n const service = new AgentService(db)\n\n const selector: ContextIdentifier | null = params.context\n const ctx = await service.getOrCreateContext<any>(selector ?? { key: params.key })\n return { contextId: ctx.id }\n}\n\nexport async function buildSystemPromptStep(params: { contextId: string; narrative: string }) {\n \"use step\"\n // Por ahora el prompt es plano, concatenando narrativa y metadatos básicos de contexto\n // No modificar prompts de negocio existentes; este es un prompt genérico de Story\n const systemPrompt = `${params.narrative}\\n\\n[context]\\ncontextId: ${params.contextId}`\n return systemPrompt\n}\n\n\n"]}
|
package/dist/story.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"story.js","sourceRoot":"","sources":["../src/story.ts"],"names":[],"mappings":";;AAiEA,sBAuDC;AA9DD,uEAAuE;AACvE,uFAAuF;AACvF,mDAA0E;AAC1E,mCAAiD;AACjD,uCAAoD;AAEpD,gFAAgF;AAChF,SAAgB,KAAK,CAAC,GAAW,EAAE,MAAmB;IACpD,6EAA6E;IAC7E,OAAO,KAAK,UAAU,QAAQ,CAAC,IAAqB;QAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAA;QAE/C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,iCAAiB,EAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC,CAAA;QAEtF,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,OAAO,SAAS,GAAG,QAAQ,EAAE,CAAC;YAC5B,SAAS,EAAE,CAAA;YAEX,MAAM,YAAY,GAAG,MAAM,IAAA,qCAAqB,EAAC;gBAC/C,SAAS;gBACT,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAA;YAEF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,yBAAoB,EAAC;gBAC/C,SAAS;gBACT,YAAY;gBACZ,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;aAC9B,CAAC,CAAA;YAEF,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzC,MAAK;YACP,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAY,EAAE,EAAE;gBACnC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAA;gBACjE,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,iBAAiB,IAAI,EAAE,CAAC,QAAQ,CAAW,CAAA;gBAC9E,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAqB,EAAC;oBACzC,iBAAiB;oBACjB,SAAS;oBACT,IAAI,EAAE,EAAE,CAAC,IAAI;iBACd,CAAC,CAAA;gBACF,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;YAC/B,CAAC,CAAC,CACH,CAAA;YAED,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAA2C,EAAE,EAAE;gBACxF,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;gBACjD,MAAM,gBAAgB,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC;oBAC5E,CAAC,CAAC,CAAC,MAAM,CAAC,OAAQ,CAAC,YAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;oBACvD,CAAC,CAAC,KAAK,CAAA;gBACT,OAAO,eAAe,IAAI,gBAAgB,CAAA;YAC5C,CAAC,CAAC,CAAA;YAEF,IAAI,SAAS,EAAE,CAAC;gBACd,MAAK;YACP,CAAC;QACH,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAoB,EAAE,CAAA;IACpD,CAAC,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"story.js","sourceRoot":"","sources":["../src/story.ts"],"names":[],"mappings":";;AAiEA,sBAuDC;AA9DD,uEAAuE;AACvE,uFAAuF;AACvF,mDAA0E;AAC1E,mCAAiD;AACjD,uCAAoD;AAEpD,gFAAgF;AAChF,SAAgB,KAAK,CAAC,GAAW,EAAE,MAAmB;IACpD,6EAA6E;IAC7E,OAAO,KAAK,UAAU,QAAQ,CAAC,IAAqB;QAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAA;QAE/C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,iCAAiB,EAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC,CAAA;QAEtF,IAAI,SAAS,GAAG,CAAC,CAAA;QACjB,OAAO,SAAS,GAAG,QAAQ,EAAE,CAAC;YAC5B,SAAS,EAAE,CAAA;YAEX,MAAM,YAAY,GAAG,MAAM,IAAA,qCAAqB,EAAC;gBAC/C,SAAS;gBACT,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAA;YAEF,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,yBAAoB,EAAC;gBAC/C,SAAS;gBACT,YAAY;gBACZ,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE;aAC9B,CAAC,CAAA;YAEF,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzC,MAAK;YACP,CAAC;YAED,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,EAAY,EAAE,EAAE;gBACnC,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAA;gBACjE,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,iBAAiB,IAAI,EAAE,CAAC,QAAQ,CAAW,CAAA;gBAC9E,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAqB,EAAC;oBACzC,iBAAiB;oBACjB,SAAS;oBACT,IAAI,EAAE,EAAE,CAAC,IAAI;iBACd,CAAC,CAAA;gBACF,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAA;YAC/B,CAAC,CAAC,CACH,CAAA;YAED,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAA2C,EAAE,EAAE;gBACxF,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;gBACjD,MAAM,gBAAgB,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC;oBAC5E,CAAC,CAAC,CAAC,MAAM,CAAC,OAAQ,CAAC,YAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;oBACvD,CAAC,CAAC,KAAK,CAAA;gBACT,OAAO,eAAe,IAAI,gBAAgB,CAAA;YAC5C,CAAC,CAAC,CAAA;YAEF,IAAI,SAAS,EAAE,CAAC;gBACd,MAAK;YACP,CAAC;QACH,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAoB,EAAE,CAAA;IACpD,CAAC,CAAA;AACH,CAAC","sourcesContent":["import type { ContextIdentifier } from \"./service\"\r\n\r\n// NOTA: Este módulo implementa un generador de workflows durables basado en Steps.\r\n// Importante: el workflow (función retornada) usa la directiva \"use workflow\" y\r\n// todas las operaciones con efectos (DB, IA, etc.) ocurren dentro de steps (\"use step\").\r\n\r\n// Tipos serializables para describir acciones (tools)\r\nexport type PrimitiveType = \"string\" | \"number\" | \"boolean\" | \"object\" | \"array\"\r\n\r\nexport type FieldSchema = {\r\n type: PrimitiveType\r\n description?: string\r\n required?: boolean\r\n properties?: Record<string, FieldSchema>\r\n items?: FieldSchema\r\n}\r\n\r\nexport type StepInputSchema = {\r\n type: \"object\"\r\n description?: string\r\n properties?: Record<string, FieldSchema>\r\n}\r\n\r\nexport type StoryActionSpec = {\r\n name: string\r\n description: string\r\n // Clave del step ejecutor registrado en registry (ej: \"dataset.executeCommand\")\r\n implementationKey: string\r\n // Esquema de entrada serializable (convertible a zod en el step)\r\n inputSchema?: StepInputSchema\r\n // Si true, al ejecutar esta acción se puede finalizar el loop\r\n finalize?: boolean\r\n // Runtime-only (no serializable): ejecutor directo para engine\r\n execute?: (args: any & { contextId?: string }) => Promise<any>\r\n}\r\n\r\nexport type StoryOptions = {\r\n reasoningEffort?: \"low\" | \"medium\" | \"high\"\r\n webSearch?: boolean\r\n maxLoops?: number\r\n finalActions?: string[]\r\n includeBaseTools?: { createMessage?: boolean; requestDirection?: boolean; end?: boolean }\r\n}\r\n\r\nexport type StoryConfig = {\r\n narrative: string\r\n actions: StoryActionSpec[]\r\n options?: StoryOptions\r\n}\r\n\r\nexport type StoryStartArgs = {\r\n context?: ContextIdentifier | null\r\n trigger?: any | null\r\n}\r\n\r\n// Resultados mínimos del loop de IA\r\ntype ToolCall = { toolCallId: string; toolName: string; args: any }\r\n\r\n// Steps (se resuelven en tiempo de ejecución del step, no en workflow)\r\n// Se importan como referencias; su lógica corre con \"use step\" dentro de cada función.\r\nimport { ensureContextStep, buildSystemPromptStep } from \"./steps-context\"\r\nimport { runReasoningOnceStep } from \"./steps/ai\"\r\nimport { executeRegisteredStep } from \"./steps/base\"\r\n\r\n// story(): genera una función workflow que orquesta los steps de manera durable\r\nexport function story(key: string, config: StoryConfig) {\r\n // Retorna una función que orquesta la iteración del workflow (sin directiva)\r\n return async function runStory(args?: StoryStartArgs) {\r\n const maxLoops = config.options?.maxLoops ?? 10\r\n\r\n const { contextId } = await ensureContextStep({ key, context: args?.context ?? null })\r\n\r\n let loopCount = 0\r\n while (loopCount < maxLoops) {\r\n loopCount++\r\n\r\n const systemPrompt = await buildSystemPromptStep({\r\n contextId,\r\n narrative: config.narrative,\r\n })\r\n\r\n const { toolCalls } = await runReasoningOnceStep({\r\n contextId,\r\n systemPrompt,\r\n actions: config.actions,\r\n options: config.options ?? {},\r\n })\r\n\r\n if (!toolCalls || toolCalls.length === 0) {\r\n break\r\n }\r\n\r\n const executions = await Promise.all(\r\n toolCalls.map(async (tc: ToolCall) => {\r\n const action = config.actions.find((a) => a.name === tc.toolName)\r\n const implementationKey = (action?.implementationKey || tc.toolName) as string\r\n const result = await executeRegisteredStep({\r\n implementationKey,\r\n contextId,\r\n args: tc.args,\r\n })\r\n return { tc, action, result }\r\n })\r\n )\r\n\r\n const shouldEnd = executions.some(({ action }: { action: StoryActionSpec | undefined }) => {\r\n const isFinalByAction = Boolean(action?.finalize)\r\n const isFinalByOptions = action && Array.isArray(config.options?.finalActions)\r\n ? (config.options!.finalActions!).includes(action.name)\r\n : false\r\n return isFinalByAction || isFinalByOptions\r\n })\r\n\r\n if (shouldEnd) {\r\n break\r\n }\r\n }\r\n\r\n return { contextId, status: \"completed\" as const }\r\n }\r\n}\r\n\r\nexport type { StoryActionSpec as StoryAction, StoryOptions as StoryConfigOptions }\r\n\r\n\r\n"]}
|
package/dist/storyEngine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storyEngine.js","sourceRoot":"","sources":["../src/storyEngine.ts"],"names":[],"mappings":";;;AAkCA,MAAM,0BAA0B,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;AAMpE,SAAS,eAAe;IACtB,MAAM,CAAC,GAAG,UAAiB,CAAA;IAC3B,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,EAAE,CAAC;QACnC,CAAC,CAAC,0BAA0B,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,GAAG,EAAwB,EAAE,CAAA;IAC9E,CAAC;IACD,OAAO,CAAC,CAAC,0BAA0B,CAAgB,CAAA;AACrD,CAAC;AAEY,QAAA,MAAM,GAAG;IACpB,QAAQ,CAAC,KAAuH;QAC9H,MAAM,cAAc,GAAuC,EAAE,CAAA;QAC7D,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,OAAQ,CAAS,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC7C,cAAc,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG;oBAC9C,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI;oBAChD,OAAO,EAAE,CAAE,CAAS,CAAC,OAAO,CAAgC;iBAC7D,CAAA;YACH,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAiB;YAC5B,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,cAAc;YACvB,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAA;QACD,eAAe,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACjD,OAAO;YACL,KAAK,EAAE,CAAC,GAAW,EAAmB,EAAE;gBACtC,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBAC7C,IAAI,CAAC,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAA;gBACxD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACxC,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;iBACvC,CAAC,CAAC,CAAA;gBACH,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;YACxF,CAAC;SACF,CAAA;IACH,CAAC;IACD,GAAG,CAAC,GAAW;QACb,OAAO,eAAe,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3C,CAAC;CACF,CAAA"}
|
|
1
|
+
{"version":3,"file":"storyEngine.js","sourceRoot":"","sources":["../src/storyEngine.ts"],"names":[],"mappings":";;;AAkCA,MAAM,0BAA0B,GAAG,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAA;AAMpE,SAAS,eAAe;IACtB,MAAM,CAAC,GAAG,UAAiB,CAAA;IAC3B,IAAI,CAAC,CAAC,CAAC,0BAA0B,CAAC,EAAE,CAAC;QACnC,CAAC,CAAC,0BAA0B,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,GAAG,EAAwB,EAAE,CAAA;IAC9E,CAAC;IACD,OAAO,CAAC,CAAC,0BAA0B,CAAgB,CAAA;AACrD,CAAC;AAEY,QAAA,MAAM,GAAG;IACpB,QAAQ,CAAC,KAAuH;QAC9H,MAAM,cAAc,GAAuC,EAAE,CAAA;QAC7D,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAC9B,IAAI,OAAQ,CAAS,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC7C,cAAc,CAAC,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG;oBAC9C,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,IAAI;oBAChD,OAAO,EAAE,CAAE,CAAS,CAAC,OAAO,CAAgC;iBAC7D,CAAA;YACH,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAiB;YAC5B,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,OAAO,EAAE,cAAc;YACvB,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B,CAAA;QACD,eAAe,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACjD,OAAO;YACL,KAAK,EAAE,CAAC,GAAW,EAAmB,EAAE;gBACtC,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBAC7C,IAAI,CAAC,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,EAAE,CAAC,CAAA;gBACxD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACxC,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;iBACvC,CAAC,CAAC,CAAA;gBACH,OAAO,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAA;YACxF,CAAC;SACF,CAAA;IACH,CAAC;IACD,GAAG,CAAC,GAAW;QACb,OAAO,eAAe,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC3C,CAAC;CACF,CAAA","sourcesContent":["import { StoryActionSpec } from \"./story\"\r\n\r\nexport type StoryRuntimeAction = {\r\n name: string\r\n implementationKey: string\r\n execute: (args: any & { contextId?: string }) => Promise<any>\r\n}\r\n\r\nexport type StoryRuntimeCallbacks = {\r\n onToolCallExecuted?: (executionEvent: {\r\n toolCall: { toolCallId: string; toolName: string; args: any }\r\n success: boolean\r\n message?: string\r\n result?: any\r\n contextId: string\r\n }) => void | Promise<void>\r\n evaluateToolCalls?: (toolCalls: any[]) => Promise<{ success: boolean; message?: string }>\r\n onEnd?: (lastEvent: any) => void | { end?: boolean } | Promise<void | { end?: boolean }>\r\n}\r\n\r\nexport type StoryRuntime = {\r\n key: string\r\n narrative: string\r\n actions: Record<string, StoryRuntimeAction>\r\n callbacks?: StoryRuntimeCallbacks\r\n}\r\n\r\nexport type StoryDescriptor = {\r\n key: string\r\n narrative: string\r\n actions: Array<Pick<StoryActionSpec, \"name\" | \"description\" | \"inputSchema\" | \"finalize\" | \"implementationKey\">>\r\n options?: any\r\n}\r\n\r\nconst GLOBAL_STORY_ENGINE_SYMBOL = Symbol.for(\"PULZAR_STORY_ENGINE\")\r\n\r\ntype EngineState = {\r\n stories: Map<string, StoryRuntime>\r\n}\r\n\r\nfunction getGlobalEngine(): EngineState {\r\n const g = globalThis as any\r\n if (!g[GLOBAL_STORY_ENGINE_SYMBOL]) {\r\n g[GLOBAL_STORY_ENGINE_SYMBOL] = { stories: new Map<string, StoryRuntime>() }\r\n }\r\n return g[GLOBAL_STORY_ENGINE_SYMBOL] as EngineState\r\n}\r\n\r\nexport const engine = {\r\n register(story: { key: string; narrative: string; actions: StoryActionSpec[]; callbacks?: StoryRuntimeCallbacks; options?: any }) {\r\n const runtimeActions: Record<string, StoryRuntimeAction> = {}\r\n for (const a of story.actions) {\r\n if (typeof (a as any).execute === \"function\") {\r\n runtimeActions[a.implementationKey || a.name] = {\r\n name: a.name,\r\n implementationKey: a.implementationKey || a.name,\r\n execute: ((a as any).execute) as (args: any) => Promise<any>,\r\n }\r\n }\r\n }\r\n const runtime: StoryRuntime = {\r\n key: story.key,\r\n narrative: story.narrative,\r\n actions: runtimeActions,\r\n callbacks: story.callbacks,\r\n }\r\n getGlobalEngine().stories.set(story.key, runtime)\r\n return {\r\n story: (key: string): StoryDescriptor => {\r\n const rt = getGlobalEngine().stories.get(key)\r\n if (!rt) throw new Error(`Story not registered: ${key}`)\r\n const actions = story.actions.map((a) => ({\r\n name: a.name,\r\n description: a.description,\r\n inputSchema: a.inputSchema,\r\n finalize: a.finalize,\r\n implementationKey: a.implementationKey,\r\n }))\r\n return { key: story.key, narrative: story.narrative, actions, options: story.options }\r\n }\r\n }\r\n },\r\n get(key: string): StoryRuntime | undefined {\r\n return getGlobalEngine().stories.get(key)\r\n }\r\n}\r\n\r\n\r\n"]}
|
package/dist/storyRunner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storyRunner.js","sourceRoot":"","sources":["../src/storyRunner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"storyRunner.js","sourceRoot":"","sources":["../src/storyRunner.ts"],"names":[],"mappings":"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","sourcesContent":["import { engine, type StoryDescriptor } from \"./storyEngine\"\r\nimport { ensureContextStep, buildSystemPromptStep } from \"./steps-context\"\r\nimport { runReasoningOnceStep } from \"./steps/ai\"\r\nimport { executeRegisteredStep } from \"./steps/base\"\r\n\r\ntype ToolCall = { toolCallId: string; toolName: string; args: any }\r\n\r\nexport async function storyRunner(serialized: StoryDescriptor, args?: { context?: any }) {\r\n \"use workflow\"\r\n\r\n const maxLoops = 10\r\n\r\n const { contextId } = await ensureContextStep({ key: serialized.key, context: args?.context ?? null })\r\n\r\n let loopCount = 0\r\n while (loopCount < maxLoops) {\r\n loopCount++\r\n\r\n const systemPrompt = await buildSystemPromptStep({\r\n contextId,\r\n narrative: serialized.narrative,\r\n })\r\n\r\n const { toolCalls } = await runReasoningOnceStep({\r\n contextId,\r\n systemPrompt,\r\n actions: serialized.actions.map((a) => ({\r\n name: a.name,\r\n description: a.description,\r\n implementationKey: a.implementationKey || a.name,\r\n inputSchema: a.inputSchema,\r\n finalize: a.finalize,\r\n })),\r\n options: { reasoningEffort: \"medium\" },\r\n })\r\n\r\n if (!toolCalls || toolCalls.length === 0) {\r\n break\r\n }\r\n\r\n const rt = engine.get(serialized.key)\r\n if (!rt) throw new Error(`Story runtime not found for key=${serialized.key}`)\r\n\r\n const executions = await Promise.all(\r\n toolCalls.map(async (tc: ToolCall) => {\r\n const implKey = tc.toolName\r\n const action = rt.actions[implKey]\r\n if (action && typeof action.execute === \"function\") {\r\n // Ejecutar en el runtime local (no serializable) dentro de un step wrapper\r\n return await executeRegisteredStep({ implementationKey: implKey, contextId, args: tc.args })\r\n }\r\n // fallback: ejecutar step registrado directo si existe\r\n return await executeRegisteredStep({ implementationKey: implKey, contextId, args: tc.args })\r\n })\r\n )\r\n\r\n const shouldEnd = executions.some((_r: any, i: number) => {\r\n const a = serialized.actions.find((x) => (x.implementationKey || x.name) === toolCalls[i].toolName)\r\n return Boolean(a?.finalize)\r\n })\r\n if (shouldEnd) break\r\n }\r\n\r\n return { success: true, contextId }\r\n}\r\n\r\n\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflows/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflows/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC","sourcesContent":["export * from \"./sampleWorkflow\";"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sampleWorkflow.js","sourceRoot":"","sources":["../../src/workflows/sampleWorkflow.ts"],"names":[],"mappings":";;AAcA,wCAqBC;AAnCD,oDAAiD;AAc1C,KAAK,UAAU,cAAc,CAAC,KAA0B;IAC7D,cAAc,CAAC;IACf,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAEvB,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,IAAA,uBAAU,EAAC,IAAI,CAAC,CAAC;IAEzC,OAAO;QACL,EAAE,EAAE,IAAI;QACR,QAAQ,EAAE,mBAAmB;QAC7B,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,oBAAoB,SAAS,EAAE;QACtC,aAAa,EAAE,IAAI;KACpB,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"sampleWorkflow.js","sourceRoot":"","sources":["../../src/workflows/sampleWorkflow.ts"],"names":[],"mappings":";;AAcA,wCAqBC;AAnCD,oDAAiD;AAc1C,KAAK,UAAU,cAAc,CAAC,KAA0B;IAC7D,cAAc,CAAC;IACf,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAEvB,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,IAAA,uBAAU,EAAC,IAAI,CAAC,CAAC;IAEzC,OAAO;QACL,EAAE,EAAE,IAAI;QACR,QAAQ,EAAE,mBAAmB;QAC7B,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,oBAAoB,SAAS,EAAE;QACtC,aAAa,EAAE,IAAI;KACpB,CAAC;AACJ,CAAC","sourcesContent":["import { sampleStep } from \"../steps/sampleStep\";\n\nexport interface SampleWorkflowInput {\n text: string;\n}\n\nexport interface SampleWorkflowOutput {\n ok: boolean;\n workflow: string;\n echo: string;\n upper: string;\n stepProcessed: boolean;\n}\n\nexport async function sampleWorkflow(input: SampleWorkflowInput): Promise<SampleWorkflowOutput> {\n \"use workflow\";\n if (input == null) {\n throw new Error(\"input is required\");\n }\n\n const { text } = input;\n\n if (text == null) {\n throw new Error(\"text is required\");\n }\n\n const uppercase = await sampleStep(text);\n\n return {\n ok: true,\n workflow: 'library:workbench',\n echo: text,\n upper: `[STEP-PROCESSED] ${uppercase}`,\n stepProcessed: true,\n };\n}"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ekairos/story",
|
|
3
|
-
"version": "1.18.
|
|
3
|
+
"version": "1.18.5-beta.0",
|
|
4
4
|
"description": "Pulzar Story - Workflow-based AI Stories",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -27,12 +27,13 @@
|
|
|
27
27
|
"scripts": {
|
|
28
28
|
"build": "tsc -p tsconfig.json",
|
|
29
29
|
"dev": "tsc -p tsconfig.json --watch",
|
|
30
|
+
"watch": "tsc -p tsconfig.json --watch",
|
|
30
31
|
"clean": "node -e \"require('fs').rmSync('dist', {recursive:true, force:true})\"",
|
|
31
32
|
"typecheck": "tsc --noEmit"
|
|
32
33
|
},
|
|
33
34
|
"dependencies": {
|
|
34
35
|
"@ai-sdk/openai": "^2.0.52",
|
|
35
|
-
"@ekairos/domain": "^1.18.
|
|
36
|
+
"@ekairos/domain": "^1.18.5-beta.0",
|
|
36
37
|
"@instantdb/admin": "^0.22.13",
|
|
37
38
|
"@instantdb/core": "^0.22.13",
|
|
38
39
|
"@vercel/sandbox": "^0.0.23",
|