{"version":3,"file":"di-C6Ubf9o5.cjs","names":["out: unknown[]","out","exprArgs: ItemExprArgs"],"sources":["../src/contracts/itemExpr.ts","../src/ai/AgentConfigInspectorFactory.ts","../src/di/CoreTokens.ts"],"sourcesContent":["import type { NodeExecutionContext } from \"./runtimeTypes\";\nimport type { Item, Items, NodeActivationId, NodeId, RunDataSnapshot, RunId, WorkflowId } from \"./workflowTypes\";\n\nexport type ItemExprResolvedContext = Readonly<{\n  runId: RunId;\n  workflowId: WorkflowId;\n  nodeId: NodeId;\n  activationId: NodeActivationId;\n  data: RunDataSnapshot;\n}>;\n\nexport type ItemExprContext = ItemExprResolvedContext;\n\nexport type ItemExprArgs<TItemJson = unknown> = Readonly<{\n  item: Item<TItemJson>;\n  itemIndex: number;\n  items: Items<TItemJson>;\n  ctx: ItemExprContext;\n}>;\n\nexport type ItemExprCallback<T, TItemJson = unknown> = (args: ItemExprArgs<TItemJson>) => T | Promise<T>;\n\nexport type ItemExpr<T, TItemJson = unknown> = Readonly<{\n  readonly __codemationItemExpr: \"codemation.itemExpr\";\n  readonly fn: ItemExprCallback<T, TItemJson>;\n}>;\n\nexport function itemExpr<T, TItemJson = unknown>(fn: ItemExprCallback<T, TItemJson>): ItemExpr<T, TItemJson> {\n  return { __codemationItemExpr: \"codemation.itemExpr\", fn };\n}\n\nexport function isItemExpr<T, TItemJson = unknown>(value: unknown): value is ItemExpr<T, TItemJson> {\n  if (typeof value !== \"object\" || value === null) {\n    return false;\n  }\n  const v = value as Record<PropertyKey, unknown>;\n  if (v[\"__codemationItemExpr\"] === \"codemation.itemExpr\" && typeof v[\"fn\"] === \"function\") {\n    return true;\n  }\n  for (const sym of Object.getOwnPropertySymbols(v)) {\n    if (sym.description === \"codemation.itemExpr\" && v[sym] === true) {\n      return true;\n    }\n  }\n  const keys = Object.keys(v);\n  if (keys.length === 1 && keys[0] === \"fn\" && typeof (v as { fn?: unknown }).fn === \"function\") {\n    return true;\n  }\n  return false;\n}\n\nfunction containsItemExprInUnknown(value: unknown, seen: WeakSet<object> = new WeakSet()): boolean {\n  if (isItemExpr(value)) {\n    return true;\n  }\n  if (value === null || typeof value !== \"object\") {\n    return false;\n  }\n  if (seen.has(value as object)) {\n    return false;\n  }\n  seen.add(value as object);\n  if (Array.isArray(value)) {\n    return value.some((entry) => containsItemExprInUnknown(entry, seen));\n  }\n  for (const entry of Object.values(value as Record<string, unknown>)) {\n    if (containsItemExprInUnknown(entry, seen)) {\n      return true;\n    }\n  }\n  return false;\n}\n\nexport async function resolveItemExprsInUnknown(\n  value: unknown,\n  args: ItemExprArgs,\n  seen: WeakSet<object> = new WeakSet(),\n): Promise<unknown> {\n  if (isItemExpr(value)) {\n    return await Promise.resolve(value.fn(args));\n  }\n  if (value === null || typeof value !== \"object\") {\n    return value;\n  }\n  if (seen.has(value as object)) {\n    return value;\n  }\n  seen.add(value as object);\n  if (Array.isArray(value)) {\n    const out: unknown[] = [];\n    for (let i = 0; i < value.length; i++) {\n      out.push(await resolveItemExprsInUnknown(value[i], args, seen));\n    }\n    return out;\n  }\n  const rec = value as Record<string, unknown>;\n  const entries = Object.entries(rec);\n  const proto = Object.getPrototypeOf(value);\n  if (proto !== Object.prototype && proto !== null && entries.length === 0) {\n    return value;\n  }\n  const out = Object.create(proto) as Record<string, unknown>;\n  for (const [k, v] of entries) {\n    out[k] = await resolveItemExprsInUnknown(v, args, seen);\n  }\n  return out;\n}\n\nexport async function resolveItemExprsForExecution(\n  config: unknown,\n  nodeCtx: NodeExecutionContext,\n  item: Item,\n  itemIndex: number,\n  items: Items,\n): Promise<unknown | undefined> {\n  const exprArgs: ItemExprArgs = {\n    item,\n    itemIndex,\n    items,\n    ctx: {\n      runId: nodeCtx.runId,\n      workflowId: nodeCtx.workflowId,\n      nodeId: nodeCtx.nodeId,\n      activationId: nodeCtx.activationId,\n      data: nodeCtx.data,\n    },\n  };\n  if (!containsItemExprInUnknown(config)) {\n    return undefined;\n  }\n  return await resolveItemExprsInUnknown(config, exprArgs);\n}\n","import type { NodeConfigBase } from \"../types\";\nimport { isItemExpr } from \"../contracts/itemExpr\";\nimport type { AgentNodeConfig } from \"./AiHost\";\n\nexport class AgentConfigInspector {\n  static isAgentNodeConfig(config: NodeConfigBase | undefined): config is AgentNodeConfig<any, any> {\n    if (!config) return false;\n    const candidate = config as Partial<AgentNodeConfig<any, any>>;\n    return !!candidate.chatModel && this.hasCompatibleMessageConfiguration(candidate);\n  }\n\n  private static hasCompatibleMessageConfiguration(candidate: Partial<AgentNodeConfig<any, any>>): boolean {\n    const messages = candidate.messages;\n    if (messages === undefined || messages === null) {\n      return false;\n    }\n    if (Array.isArray(messages)) {\n      return messages.length > 0;\n    }\n    if (typeof messages === \"object\") {\n      if (isItemExpr(messages)) {\n        return true;\n      }\n      const o = messages as { prompt?: unknown; buildMessages?: unknown };\n      return (Array.isArray(o.prompt) && o.prompt.length > 0) || typeof o.buildMessages === \"function\";\n    }\n    return false;\n  }\n}\n","import type { TypeToken } from \"./index\";\nimport type { RunEventBus } from \"../events/runEvents\";\nimport type { EngineExecutionLimitsPolicy } from \"../policies/executionLimits/EngineExecutionLimitsPolicy\";\nimport type { AgentMcpIntegration } from \"../contracts/agentMcpTypes\";\nimport type {\n  ActivationIdFactory,\n  BinaryStorage,\n  CredentialSessionService,\n  CredentialTypeRegistry,\n  ExecutionContextFactory,\n  LiveWorkflowRepository,\n  NodeActivationScheduler,\n  NodeResolver,\n  PersistedWorkflowTokenRegistryLike,\n  RunDataFactory,\n  RunIdFactory,\n  TriggerSetupStateRepository,\n  WorkflowExecutionRepository,\n  WorkflowNodeInstanceFactory,\n  WorkflowActivationPolicy,\n  WorkflowRepository,\n  WorkflowRunnerService,\n} from \"../types\";\nimport type { TriggerInvoker } from \"../contracts/triggerInvokerTypes\";\n\nexport const CoreTokens = {\n  PersistedWorkflowTokenRegistry: Symbol.for(\n    \"codemation.core.PersistedWorkflowTokenRegistry\",\n  ) as TypeToken<PersistedWorkflowTokenRegistryLike>,\n  CredentialSessionService: Symbol.for(\n    \"codemation.core.CredentialSessionService\",\n  ) as TypeToken<CredentialSessionService>,\n  CredentialTypeRegistry: Symbol.for(\"codemation.core.CredentialTypeRegistry\") as TypeToken<CredentialTypeRegistry>,\n  WorkflowRunnerService: Symbol.for(\"codemation.core.WorkflowRunnerService\") as TypeToken<WorkflowRunnerService>,\n  LiveWorkflowRepository: Symbol.for(\"codemation.core.LiveWorkflowRepository\") as TypeToken<LiveWorkflowRepository>,\n  WorkflowRepository: Symbol.for(\"codemation.core.WorkflowRepository\") as TypeToken<WorkflowRepository>,\n  NodeResolver: Symbol.for(\"codemation.core.NodeResolver\") as TypeToken<NodeResolver>,\n  WorkflowNodeInstanceFactory: Symbol.for(\n    \"codemation.core.WorkflowNodeInstanceFactory\",\n  ) as TypeToken<WorkflowNodeInstanceFactory>,\n  RunIdFactory: Symbol.for(\"codemation.core.RunIdFactory\") as TypeToken<RunIdFactory>,\n  ActivationIdFactory: Symbol.for(\"codemation.core.ActivationIdFactory\") as TypeToken<ActivationIdFactory>,\n  WorkflowExecutionRepository: Symbol.for(\n    \"codemation.core.WorkflowExecutionRepository\",\n  ) as TypeToken<WorkflowExecutionRepository>,\n  TriggerSetupStateRepository: Symbol.for(\n    \"codemation.core.TriggerSetupStateRepository\",\n  ) as TypeToken<TriggerSetupStateRepository>,\n  NodeActivationScheduler: Symbol.for(\"codemation.core.NodeActivationScheduler\") as TypeToken<NodeActivationScheduler>,\n  RunDataFactory: Symbol.for(\"codemation.core.RunDataFactory\") as TypeToken<RunDataFactory>,\n  ExecutionContextFactory: Symbol.for(\"codemation.core.ExecutionContextFactory\") as TypeToken<ExecutionContextFactory>,\n  RunEventBus: Symbol.for(\"codemation.core.RunEventBus\") as TypeToken<RunEventBus>,\n  BinaryStorage: Symbol.for(\"codemation.core.BinaryStorage\") as TypeToken<BinaryStorage>,\n  WebhookBasePath: Symbol.for(\"codemation.core.WebhookBasePath\") as TypeToken<string>,\n  EngineExecutionLimitsPolicy: Symbol.for(\n    \"codemation.core.EngineExecutionLimitsPolicy\",\n  ) as TypeToken<EngineExecutionLimitsPolicy>,\n  WorkflowActivationPolicy: Symbol.for(\n    \"codemation.core.WorkflowActivationPolicy\",\n  ) as TypeToken<WorkflowActivationPolicy>,\n  AgentMcpIntegration: Symbol.for(\"codemation.core.AgentMcpIntegration\") as TypeToken<AgentMcpIntegration>,\n  TriggerInvoker: Symbol.for(\"codemation.core.TriggerInvoker\") as TypeToken<TriggerInvoker>,\n} as const;\n"],"mappings":"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"}