@clusterenvision/ui-framework 1.0.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/LICENSE +21 -0
- package/README.md +295 -0
- package/dist/ai-assistant-Db002XYC.d.ts +92 -0
- package/dist/ai-assistant-EobSUV70.d.cts +92 -0
- package/dist/browser-DnHpnWwE.d.cts +354 -0
- package/dist/browser-Dx4oKf5e.d.ts +354 -0
- package/dist/browser-signals-07qodpYT.d.cts +66 -0
- package/dist/browser-signals-07qodpYT.d.ts +66 -0
- package/dist/browser-signals.cjs +32 -0
- package/dist/browser-signals.cjs.map +1 -0
- package/dist/browser-signals.d.cts +1 -0
- package/dist/browser-signals.d.ts +1 -0
- package/dist/browser-signals.js +3 -0
- package/dist/browser-signals.js.map +1 -0
- package/dist/browser.cjs +197 -0
- package/dist/browser.cjs.map +1 -0
- package/dist/browser.d.cts +13 -0
- package/dist/browser.d.ts +13 -0
- package/dist/browser.js +12 -0
- package/dist/browser.js.map +1 -0
- package/dist/chunk-22HQL2Y4.js +568 -0
- package/dist/chunk-22HQL2Y4.js.map +1 -0
- package/dist/chunk-3ZBRNFEE.js +1525 -0
- package/dist/chunk-3ZBRNFEE.js.map +1 -0
- package/dist/chunk-4HRORR2Q.js +1953 -0
- package/dist/chunk-4HRORR2Q.js.map +1 -0
- package/dist/chunk-4L3UXVL5.cjs +68 -0
- package/dist/chunk-4L3UXVL5.cjs.map +1 -0
- package/dist/chunk-6BYWFGQY.cjs +226 -0
- package/dist/chunk-6BYWFGQY.cjs.map +1 -0
- package/dist/chunk-7SCIB5HP.js +57 -0
- package/dist/chunk-7SCIB5HP.js.map +1 -0
- package/dist/chunk-BBAUALNU.js +888 -0
- package/dist/chunk-BBAUALNU.js.map +1 -0
- package/dist/chunk-CHLDE4JQ.js +715 -0
- package/dist/chunk-CHLDE4JQ.js.map +1 -0
- package/dist/chunk-CXTAUXLG.cjs +71 -0
- package/dist/chunk-CXTAUXLG.cjs.map +1 -0
- package/dist/chunk-D2USIT6V.js +121 -0
- package/dist/chunk-D2USIT6V.js.map +1 -0
- package/dist/chunk-D3H5CGVD.js +36 -0
- package/dist/chunk-D3H5CGVD.js.map +1 -0
- package/dist/chunk-DQBX75NJ.js +92 -0
- package/dist/chunk-DQBX75NJ.js.map +1 -0
- package/dist/chunk-DRPG2DFX.js +208 -0
- package/dist/chunk-DRPG2DFX.js.map +1 -0
- package/dist/chunk-EFOOXCY7.cjs +41 -0
- package/dist/chunk-EFOOXCY7.cjs.map +1 -0
- package/dist/chunk-FFCZSYC7.cjs +906 -0
- package/dist/chunk-FFCZSYC7.cjs.map +1 -0
- package/dist/chunk-FNXIYAET.cjs +1593 -0
- package/dist/chunk-FNXIYAET.cjs.map +1 -0
- package/dist/chunk-I6GNUM3P.cjs +63 -0
- package/dist/chunk-I6GNUM3P.cjs.map +1 -0
- package/dist/chunk-IHAMVLRY.js +129 -0
- package/dist/chunk-IHAMVLRY.js.map +1 -0
- package/dist/chunk-IRBUKIRF.cjs +133 -0
- package/dist/chunk-IRBUKIRF.cjs.map +1 -0
- package/dist/chunk-KPG5HAHK.cjs +97 -0
- package/dist/chunk-KPG5HAHK.cjs.map +1 -0
- package/dist/chunk-N7Q2ESLG.cjs +130 -0
- package/dist/chunk-N7Q2ESLG.cjs.map +1 -0
- package/dist/chunk-PFBEIFVS.js +180 -0
- package/dist/chunk-PFBEIFVS.js.map +1 -0
- package/dist/chunk-PVZVFICK.cjs +318 -0
- package/dist/chunk-PVZVFICK.cjs.map +1 -0
- package/dist/chunk-Q3KH6HMU.js +305 -0
- package/dist/chunk-Q3KH6HMU.js.map +1 -0
- package/dist/chunk-QPAAV32J.cjs +1985 -0
- package/dist/chunk-QPAAV32J.cjs.map +1 -0
- package/dist/chunk-R6XQUMWT.cjs +61 -0
- package/dist/chunk-R6XQUMWT.cjs.map +1 -0
- package/dist/chunk-SA5UD5B6.js +92 -0
- package/dist/chunk-SA5UD5B6.js.map +1 -0
- package/dist/chunk-SM35JOYD.cjs +211 -0
- package/dist/chunk-SM35JOYD.cjs.map +1 -0
- package/dist/chunk-SZQNIMYI.cjs +592 -0
- package/dist/chunk-SZQNIMYI.cjs.map +1 -0
- package/dist/chunk-T6T7QE4J.js +224 -0
- package/dist/chunk-T6T7QE4J.js.map +1 -0
- package/dist/chunk-TIF372DZ.js +65 -0
- package/dist/chunk-TIF372DZ.js.map +1 -0
- package/dist/chunk-V6JCOBGY.js +69 -0
- package/dist/chunk-V6JCOBGY.js.map +1 -0
- package/dist/chunk-VHUXNDW2.cjs +189 -0
- package/dist/chunk-VHUXNDW2.cjs.map +1 -0
- package/dist/chunk-W3LNNY3U.cjs +729 -0
- package/dist/chunk-W3LNNY3U.cjs.map +1 -0
- package/dist/chunk-ZUWSU4OA.js +61 -0
- package/dist/chunk-ZUWSU4OA.js.map +1 -0
- package/dist/chunk-ZWUA2LPB.cjs +103 -0
- package/dist/chunk-ZWUA2LPB.cjs.map +1 -0
- package/dist/cli/index.cjs +566 -0
- package/dist/cli/index.cjs.map +1 -0
- package/dist/cli/index.d.cts +1 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +558 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/compiler/index.cjs +80 -0
- package/dist/compiler/index.cjs.map +1 -0
- package/dist/compiler/index.d.cts +130 -0
- package/dist/compiler/index.d.ts +130 -0
- package/dist/compiler/index.js +3 -0
- package/dist/compiler/index.js.map +1 -0
- package/dist/component-BVzvepw9.d.cts +90 -0
- package/dist/component-wTxZ2BPD.d.ts +90 -0
- package/dist/index-CpxDa60m.d.cts +644 -0
- package/dist/index-CpxDa60m.d.ts +644 -0
- package/dist/index.cjs +1356 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +165 -0
- package/dist/index.d.ts +165 -0
- package/dist/index.js +772 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/dom.cjs +102 -0
- package/dist/lib/dom.cjs.map +1 -0
- package/dist/lib/dom.d.cts +373 -0
- package/dist/lib/dom.d.ts +373 -0
- package/dist/lib/dom.js +3 -0
- package/dist/lib/dom.js.map +1 -0
- package/dist/lib/icons.cjs +20 -0
- package/dist/lib/icons.cjs.map +1 -0
- package/dist/lib/icons.d.cts +64 -0
- package/dist/lib/icons.d.ts +64 -0
- package/dist/lib/icons.js +3 -0
- package/dist/lib/icons.js.map +1 -0
- package/dist/lib/index.cjs +247 -0
- package/dist/lib/index.cjs.map +1 -0
- package/dist/lib/index.d.cts +30 -0
- package/dist/lib/index.d.ts +30 -0
- package/dist/lib/index.js +92 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/theme.cjs +56 -0
- package/dist/lib/theme.cjs.map +1 -0
- package/dist/lib/theme.d.cts +27 -0
- package/dist/lib/theme.d.ts +27 -0
- package/dist/lib/theme.js +3 -0
- package/dist/lib/theme.js.map +1 -0
- package/dist/router-B9kms5XQ.d.ts +124 -0
- package/dist/router-YnpW_sIK.d.cts +124 -0
- package/dist/runtime/adapters/angular.cjs +48 -0
- package/dist/runtime/adapters/angular.cjs.map +1 -0
- package/dist/runtime/adapters/angular.d.cts +38 -0
- package/dist/runtime/adapters/angular.d.ts +38 -0
- package/dist/runtime/adapters/angular.js +46 -0
- package/dist/runtime/adapters/angular.js.map +1 -0
- package/dist/runtime/adapters/react.cjs +41 -0
- package/dist/runtime/adapters/react.cjs.map +1 -0
- package/dist/runtime/adapters/react.d.cts +26 -0
- package/dist/runtime/adapters/react.d.ts +26 -0
- package/dist/runtime/adapters/react.js +39 -0
- package/dist/runtime/adapters/react.js.map +1 -0
- package/dist/runtime/adapters/vue.cjs +44 -0
- package/dist/runtime/adapters/vue.cjs.map +1 -0
- package/dist/runtime/adapters/vue.d.cts +37 -0
- package/dist/runtime/adapters/vue.d.ts +37 -0
- package/dist/runtime/adapters/vue.js +42 -0
- package/dist/runtime/adapters/vue.js.map +1 -0
- package/dist/runtime/components/ai-assistant.cjs +18 -0
- package/dist/runtime/components/ai-assistant.cjs.map +1 -0
- package/dist/runtime/components/ai-assistant.d.cts +8 -0
- package/dist/runtime/components/ai-assistant.d.ts +8 -0
- package/dist/runtime/components/ai-assistant.js +9 -0
- package/dist/runtime/components/ai-assistant.js.map +1 -0
- package/dist/runtime/components/ai-summary-card.cjs +18 -0
- package/dist/runtime/components/ai-summary-card.cjs.map +1 -0
- package/dist/runtime/components/ai-summary-card.d.cts +19 -0
- package/dist/runtime/components/ai-summary-card.d.ts +19 -0
- package/dist/runtime/components/ai-summary-card.js +9 -0
- package/dist/runtime/components/ai-summary-card.js.map +1 -0
- package/dist/runtime/router.cjs +429 -0
- package/dist/runtime/router.cjs.map +1 -0
- package/dist/runtime/router.d.cts +2 -0
- package/dist/runtime/router.d.ts +2 -0
- package/dist/runtime/router.js +421 -0
- package/dist/runtime/router.js.map +1 -0
- package/dist/runtime/server.cjs +125 -0
- package/dist/runtime/server.cjs.map +1 -0
- package/dist/runtime/server.d.cts +27 -0
- package/dist/runtime/server.d.ts +27 -0
- package/dist/runtime/server.js +117 -0
- package/dist/runtime/server.js.map +1 -0
- package/dist/runtime/workflow/index.cjs +282 -0
- package/dist/runtime/workflow/index.cjs.map +1 -0
- package/dist/runtime/workflow/index.d.cts +1 -0
- package/dist/runtime/workflow/index.d.ts +1 -0
- package/dist/runtime/workflow/index.js +5 -0
- package/dist/runtime/workflow/index.js.map +1 -0
- package/dist/tracing-DGdvMCEl.d.cts +109 -0
- package/dist/tracing-DGdvMCEl.d.ts +109 -0
- package/dist/types-C4RXXKfk.d.cts +76 -0
- package/dist/types-C4RXXKfk.d.ts +76 -0
- package/package.json +166 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/runtime/logger.js","../src/runtime/workflow/services.js","../src/runtime/workflow/tracing.js","../src/runtime/workflow/runtime.js","../src/runtime/workflow/dsl.js","../src/runtime/workflow/tasks.js","../src/runtime/workflow/stores/databaseStore.js","../src/runtime/workflow/stores/mongoStore.js","../src/runtime/workflow/schema.js","../src/runtime/workflow/adapters/databaseAdapters.js","../src/runtime/workflow/background.js","../src/runtime/workflow/auth.js"],"names":["fs","task","placeholders"],"mappings":"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","file":"chunk-3ZBRNFEE.js","sourcesContent":["const defaultConsoleWriter = {\n debug: console.debug.bind(console),\n info: console.info.bind(console),\n warn: console.warn.bind(console),\n error: console.error.bind(console),\n};\nexport class ConsoleLogger {\n constructor(scope = 'runtime', writer = defaultConsoleWriter) {\n this.scope = scope;\n this.writer = writer;\n }\n log(event) {\n const { context: originalContext, error: explicitError, level, message } = event;\n const { context, errorFromContext } = extractErrorFromContext(originalContext);\n const payload = {\n ...context,\n level,\n timestamp: (event.timestamp ?? new Date()).toISOString(),\n };\n const normalizedScope = (context?.scope ?? this.scope);\n if (normalizedScope) {\n payload.scope = normalizedScope;\n }\n const normalizedError = explicitError ?? normalizeError(errorFromContext);\n if (normalizedError) {\n payload.error = normalizedError;\n }\n this.writer[level](`[ceui${normalizedScope ? `:${normalizedScope}` : ''}] ${message}`, payload);\n }\n debug(message, context) {\n this.log({ level: 'debug', message, context });\n }\n info(message, context) {\n this.log({ level: 'info', message, context });\n }\n warn(message, context) {\n this.log({ level: 'warn', message, context });\n }\n error(message, context) {\n this.log({ level: 'error', message, context });\n }\n}\nfunction extractErrorFromContext(context) {\n if (!context || typeof context !== 'object') {\n return { context: undefined, errorFromContext: undefined };\n }\n const { error, ...rest } = context;\n return { context: rest, errorFromContext: error };\n}\nfunction normalizeError(error) {\n if (!error) {\n return undefined;\n }\n if (error instanceof Error) {\n return {\n name: error.name,\n message: error.message,\n stack: error.stack,\n cause: error.cause,\n };\n }\n if (typeof error === 'string') {\n return { message: error };\n }\n if (typeof error === 'object') {\n const candidate = error;\n const message = typeof candidate.message === 'string' ? candidate.message : JSON.stringify(candidate);\n const stack = typeof candidate.stack === 'string' ? candidate.stack : undefined;\n const name = typeof candidate.name === 'string' ? candidate.name : undefined;\n const cause = candidate.cause;\n return { message, stack, name, cause };\n }\n if (typeof error === 'number' || typeof error === 'boolean' || typeof error === 'bigint' || typeof error === 'symbol') {\n return { message: String(error) };\n }\n return { message: 'Unknown error' };\n}\n","import { ConsoleLogger } from '../logger.js';\nexport class SystemTimeService {\n wait(ms) {\n return new Promise(resolve => setTimeout(resolve, ms));\n }\n now() {\n return new Date();\n }\n}\nexport class DefaultBackgroundRunner {\n constructor(logger = new ConsoleWorkflowLogger()) {\n this.logger = logger;\n }\n dispatch(taskName, payload) {\n this.logger.info('Dispatch background task', {\n eventId: 'workflow.background.dispatch',\n taskName,\n payload,\n });\n return Promise.resolve();\n }\n}\nexport class InMemoryWorkflowStore {\n constructor() {\n this.instances = new Map();\n }\n save(instance) {\n this.instances.set(instance.id, {\n ...instance,\n history: [...instance.history],\n state: { ...instance.state },\n });\n return Promise.resolve();\n }\n load(id) {\n const record = this.instances.get(id);\n if (!record) {\n return Promise.resolve(null);\n }\n return Promise.resolve({\n ...record,\n history: [...record.history],\n state: { ...record.state },\n });\n }\n}\nexport class InMemorySchedulerService {\n constructor(background = new DefaultBackgroundRunner(), time = new SystemTimeService(), logger = new ConsoleWorkflowLogger(), trace) {\n this.background = background;\n this.time = time;\n this.logger = logger;\n this.trace = trace;\n }\n async schedule(request, context) {\n const delay = computeDelay(request, this.time.now());\n if (delay > 0) {\n await this.time.wait(delay);\n }\n await this.background.dispatch(request.taskName, request.payload);\n this.logger.info('Scheduled workflow task dispatched', {\n eventId: 'workflow.scheduler.dispatch',\n taskName: request.taskName,\n runAt: request.runAt?.toISOString(),\n delayMs: delay,\n workflowId: context.definition.name,\n stepId: context.step.id,\n runId: context.runId,\n workflowVersion: context.definition.version,\n });\n const sink = context.trace ?? this.trace;\n if (sink) {\n void sink.record({\n type: 'workflow.scheduler.dispatched',\n timestamp: new Date(),\n workflowId: context.definition.name,\n workflowVersion: context.definition.version,\n instanceId: context.instanceId,\n stepId: context.step.id,\n runId: context.runId,\n delayMs: delay,\n attributes: { taskName: request.taskName },\n });\n }\n }\n}\nexport class InMemoryDatabaseRegistry {\n constructor() {\n this.providers = new Map();\n }\n register(provider) {\n this.providers.set(provider.name, provider);\n }\n get(name) {\n return this.providers.get(name);\n }\n list() {\n return [...this.providers.keys()];\n }\n}\nexport class DefaultApprovalResolver {\n resolve(gate, context) {\n if (!gate.requiredRoles && !gate.approvers) {\n return Promise.resolve({ status: 'approved', decidedAt: new Date(), decidedBy: context.actor?.id });\n }\n const actor = context.actor;\n if (!actor) {\n return Promise.resolve({ status: 'pending' });\n }\n const roleMatch = gate.requiredRoles?.every(role => actor.roles?.includes(role)) ?? true;\n const approverMatch = gate.approvers ? gate.approvers.includes(actor.id) : true;\n if (roleMatch && approverMatch) {\n return Promise.resolve({ status: 'approved', decidedAt: new Date(), decidedBy: actor.id });\n }\n return Promise.resolve({ status: 'pending' });\n }\n}\nexport class ConsoleWorkflowLogger extends ConsoleLogger {\n constructor() {\n super('workflow');\n }\n}\nfunction computeDelay(request, now) {\n if (request.runAt) {\n return Math.max(0, request.runAt.getTime() - now.getTime());\n }\n if (typeof request.delayMs === 'number') {\n return Math.max(0, request.delayMs);\n }\n return 0;\n}\n","import { promises as fs } from 'node:fs';\n\nimport { JsonlTraceExporter } from '../shared/trace.js';\nimport { ConsoleWorkflowLogger } from './services.js';\n\nexport class NoopWorkflowTraceSink {\n record() {\n // intentionally noop\n }\n}\n\nexport class ConsoleWorkflowTraceSink {\n constructor(logger = new ConsoleWorkflowLogger()) {\n this.logger = logger;\n }\n record(event) {\n const timestamp = event.timestamp instanceof Date ? event.timestamp : new Date(event.timestamp);\n this.logger.info('Workflow trace event', {\n eventId: event.type,\n workflowId: event.workflowId,\n workflowVersion: event.workflowVersion,\n instanceId: event.instanceId,\n stepId: event.stepId,\n runId: event.runId,\n attempt: event.attempt,\n gateId: event.gateId,\n approvalStatus: event.approvalStatus,\n durationMs: event.durationMs,\n delayMs: event.delayMs,\n attributes: event.attributes,\n timestamp: timestamp.toISOString(),\n });\n }\n}\n\nexport class RecordingWorkflowTraceSink {\n constructor() {\n this.events = [];\n }\n record(event) {\n this.events.push(event);\n }\n getEvents() {\n return [...this.events];\n }\n toJSON() {\n return this.getEvents();\n }\n clear() {\n this.events.length = 0;\n }\n}\n\nexport class FileWorkflowTraceSink {\n constructor(filePath, writer = fs) {\n this.exporter = new JsonlTraceExporter({ filePath, writer });\n }\n record(event) {\n return this.exporter.export(buildWorkflowTracePayload(event));\n }\n}\n\nexport class WorkflowTraceExporterSink {\n constructor(exporter) {\n this.exporter = exporter;\n }\n record(event) {\n return this.exporter.export(buildWorkflowTracePayload(event));\n }\n}\n\nfunction buildWorkflowTracePayload(event) {\n const timestamp = event.timestamp instanceof Date ? event.timestamp : new Date(event.timestamp);\n return {\n type: event.type,\n timestamp,\n attributes: compact({\n workflowId: event.workflowId,\n workflowVersion: event.workflowVersion,\n instanceId: event.instanceId,\n stepId: event.stepId,\n runId: event.runId,\n attempt: event.attempt,\n gateId: event.gateId,\n approvalStatus: event.approvalStatus,\n durationMs: event.durationMs,\n delayMs: event.delayMs,\n actorId: event.actorId,\n ...event.attributes,\n }),\n };\n}\n\nfunction compact(record) {\n if (!record) {\n return undefined;\n }\n const entries = Object.entries(record).filter(([, value]) => typeof value !== 'undefined');\n if (entries.length === 0) {\n return undefined;\n }\n return Object.fromEntries(entries);\n}\n","import { ConsoleWorkflowLogger, DefaultApprovalResolver, DefaultBackgroundRunner, InMemorySchedulerService, SystemTimeService, } from './services.js';\nimport { NoopWorkflowTraceSink } from './tracing.js';\nexport class WorkflowRuntime {\n constructor(options) {\n this.options = options;\n this.tasks = new Map();\n this.logger = options.logger ?? new ConsoleWorkflowLogger();\n this.trace = options.traceSink ?? new NoopWorkflowTraceSink();\n const time = options.services?.time ?? new SystemTimeService();\n const background = options.services?.background ?? new DefaultBackgroundRunner(this.logger);\n const scheduler = options.services?.scheduler ?? new InMemorySchedulerService(background, time, this.logger, this.trace);\n this.services = {\n background,\n http: options.services?.http,\n databases: options.services?.databases,\n time,\n scheduler,\n trace: this.trace,\n };\n this.idGenerator =\n options.idGenerator ??\n (() => {\n const globalCrypto = globalThis.crypto;\n if (globalCrypto?.randomUUID) {\n return globalCrypto.randomUUID();\n }\n return `${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;\n });\n this.approvalResolver = options.approvalResolver ?? new DefaultApprovalResolver();\n if (options.tasks) {\n for (const [name, handler] of Object.entries(options.tasks)) {\n this.registerTask(name, handler);\n }\n }\n }\n registerTask(name, handler) {\n this.tasks.set(name, handler);\n }\n hasTask(name) {\n return this.tasks.has(name);\n }\n listTasks() {\n return [...this.tasks.keys()];\n }\n async run(definition, request = {}) {\n const state = { ...(request.state ?? {}) };\n const instance = {\n id: request.instanceId ?? this.idGenerator(),\n workflowId: definition.name,\n version: definition.version,\n status: 'running',\n currentStep: definition.entry,\n state,\n actor: request.actor,\n metadata: request.metadata ?? definition.metadata,\n history: [],\n createdAt: new Date(),\n updatedAt: new Date(),\n };\n await this.options.store.save(instance);\n this.emitTrace({\n type: 'workflow.run.started',\n workflowId: definition.name,\n workflowVersion: definition.version,\n instanceId: instance.id,\n actorId: instance.actor?.id,\n });\n let currentStepId = definition.entry;\n while (currentStepId) {\n const step = currentStepId ? definition.steps[currentStepId] : undefined;\n if (!step) {\n throw new Error(`Unknown step '${currentStepId}' in workflow '${definition.name}'`);\n }\n instance.currentStep = step.id;\n const approval = await this.ensureApprovals(step, instance);\n const approvalDecision = approval?.decision;\n if (approvalDecision?.status === 'pending') {\n instance.status = 'waiting';\n await this.persist(instance);\n this.emitTrace({\n type: 'workflow.run.waiting',\n workflowId: definition.name,\n workflowVersion: definition.version,\n instanceId: instance.id,\n stepId: step.id,\n attributes: { reason: 'approval-pending', gateId: approval?.gateId },\n });\n return { instance, status: 'waiting' };\n }\n if (approvalDecision?.status === 'rejected') {\n instance.status = 'failed';\n instance.history.push(this.buildHistoryEntry(step, 'failure', 0, approvalDecision.reason ?? 'Approval rejected'));\n await this.persist(instance);\n this.emitTrace({\n type: 'workflow.run.failed',\n workflowId: definition.name,\n workflowVersion: definition.version,\n instanceId: instance.id,\n stepId: step.id,\n attributes: { reason: 'approval-rejected', gateId: approval?.gateId },\n });\n return { instance, status: 'failed' };\n }\n const { result, attempts } = await this.executeStep(definition, step, state, instance);\n instance.history.push(this.buildHistoryEntry(step, result.status, attempts, typeof result.error === 'string' ? result.error : undefined));\n instance.state = state;\n instance.updatedAt = new Date();\n if (result.status === 'success') {\n const transition = result.transition ?? step.transitions?.success;\n if (!transition) {\n instance.status = 'completed';\n await this.persist(instance);\n this.emitTrace({\n type: 'workflow.run.completed',\n workflowId: definition.name,\n workflowVersion: definition.version,\n instanceId: instance.id,\n });\n return { instance, status: 'completed', output: state };\n }\n currentStepId = transition;\n }\n else {\n const transition = step.transitions?.failure;\n if (transition) {\n currentStepId = transition;\n }\n else {\n instance.status = 'failed';\n await this.persist(instance);\n this.emitTrace({\n type: 'workflow.run.failed',\n workflowId: definition.name,\n workflowVersion: definition.version,\n instanceId: instance.id,\n stepId: step.id,\n });\n return { instance, status: 'failed' };\n }\n }\n }\n instance.status = 'completed';\n await this.persist(instance);\n this.emitTrace({\n type: 'workflow.run.completed',\n workflowId: definition.name,\n workflowVersion: definition.version,\n instanceId: instance.id,\n });\n return { instance, status: 'completed', output: state };\n }\n async executeStep(definition, step, state, instance) {\n const handler = this.resolveTask(step.task);\n const retryPolicy = this.normalizeRetry(step.retry);\n const services = this.services;\n const logger = this.logger;\n let attempt = 0;\n while (attempt < retryPolicy.maxAttempts) {\n attempt += 1;\n const context = {\n runId: this.idGenerator(),\n instanceId: instance.id,\n definition,\n step,\n input: step.task.input,\n state,\n actor: instance.actor,\n services,\n logger,\n trace: this.trace,\n };\n const stepStart = new Date();\n this.emitTrace({\n type: 'workflow.step.started',\n workflowId: definition.name,\n workflowVersion: definition.version,\n instanceId: instance.id,\n stepId: step.id,\n runId: context.runId,\n attempt,\n });\n try {\n const result = await handler(context);\n if (result.data) {\n Object.assign(state, result.data);\n }\n if (result.status === 'success') {\n const finishedAt = new Date();\n this.emitTrace({\n type: 'workflow.step.completed',\n workflowId: definition.name,\n workflowVersion: definition.version,\n instanceId: instance.id,\n stepId: step.id,\n runId: context.runId,\n attempt,\n durationMs: finishedAt.getTime() - stepStart.getTime(),\n attributes: result.data,\n });\n return { result, attempts: attempt };\n }\n this.emitTrace({\n type: 'workflow.step.failed',\n workflowId: definition.name,\n workflowVersion: definition.version,\n instanceId: instance.id,\n stepId: step.id,\n runId: context.runId,\n attempt,\n attributes: { reason: 'handler-result', transition: result.transition },\n });\n if (attempt < retryPolicy.maxAttempts) {\n const waitTime = await this.waitForRetry(attempt, retryPolicy.delayMs, retryPolicy.backoff);\n this.emitTrace({\n type: 'workflow.step.retry',\n workflowId: definition.name,\n workflowVersion: definition.version,\n instanceId: instance.id,\n stepId: step.id,\n runId: context.runId,\n attempt,\n delayMs: waitTime,\n });\n continue;\n }\n return { result, attempts: attempt };\n }\n catch (error) {\n logger.error('Workflow step execution failed', {\n eventId: 'workflow.step.failed',\n workflowId: definition.name,\n workflowVersion: definition.version,\n stepId: step.id,\n runId: context.runId,\n attempt,\n error,\n });\n this.emitTrace({\n type: 'workflow.step.failed',\n workflowId: definition.name,\n workflowVersion: definition.version,\n instanceId: instance.id,\n stepId: step.id,\n runId: context.runId,\n attempt,\n attributes: {\n reason: 'exception',\n message: error instanceof Error ? error.message : String(error),\n },\n });\n if (attempt >= retryPolicy.maxAttempts) {\n return {\n result: { status: 'failure', error },\n attempts: attempt,\n };\n }\n const waitTime = await this.waitForRetry(attempt, retryPolicy.delayMs, retryPolicy.backoff);\n this.emitTrace({\n type: 'workflow.step.retry',\n workflowId: definition.name,\n workflowVersion: definition.version,\n instanceId: instance.id,\n stepId: step.id,\n runId: context.runId,\n attempt,\n delayMs: waitTime,\n });\n }\n }\n return { result: { status: 'failure', error: 'Unknown failure' }, attempts: attempt };\n }\n normalizeRetry(retry) {\n return {\n maxAttempts: Math.max(1, retry?.maxAttempts ?? 1),\n delayMs: retry?.delayMs ?? 0,\n backoff: retry?.backoff ?? 'fixed',\n };\n }\n resolveTask(task) {\n const handler = this.tasks.get(task.handler);\n if (!handler) {\n throw new Error(`Task handler '${task.handler}' has not been registered`);\n }\n return handler;\n }\n buildHistoryEntry(step, status, attempt, notes) {\n return {\n stepId: step.id,\n status,\n attempt,\n timestamp: new Date(),\n notes,\n };\n }\n async ensureApprovals(step, instance) {\n if (!step.approvals || step.approvals.length === 0) {\n return undefined;\n }\n for (const gate of step.approvals) {\n this.emitTrace({\n type: 'workflow.approval.requested',\n workflowId: instance.workflowId,\n workflowVersion: instance.version,\n instanceId: instance.id,\n stepId: step.id,\n gateId: gate.id,\n actorId: instance.actor?.id,\n });\n const decision = await this.approvalResolver.resolve(gate, {\n actor: instance.actor,\n instance,\n step,\n });\n this.emitTrace({\n type: 'workflow.approval.resolved',\n workflowId: instance.workflowId,\n workflowVersion: instance.version,\n instanceId: instance.id,\n stepId: step.id,\n gateId: gate.id,\n approvalStatus: decision.status,\n actorId: decision.decidedBy ?? instance.actor?.id,\n });\n if (decision.status !== 'approved') {\n return { decision, gateId: gate.id };\n }\n }\n return undefined;\n }\n async waitForRetry(attempt, delayMs, backoff) {\n if (delayMs <= 0 || !this.services.time) {\n return 0;\n }\n let waitTime = delayMs;\n if (backoff === 'exponential') {\n waitTime = delayMs * 2 ** (attempt - 1);\n }\n else if (backoff === 'jitter') {\n const base = delayMs * 2 ** (attempt - 1);\n waitTime = Math.floor(Math.random() * base);\n }\n await this.services.time.wait(waitTime);\n return waitTime;\n }\n async persist(instance) {\n await this.options.store.save(instance);\n }\n emitTrace(event) {\n void this.trace.record({\n ...event,\n timestamp: event.timestamp ?? new Date(),\n });\n }\n}\n","export function createWorkflow(name, configure, options = {}) {\n const builder = new WorkflowBuilder(name, options.version ?? '1.0.0');\n if (options.entry) {\n builder.entry(options.entry);\n }\n if (options.metadata) {\n builder.metadata(options.metadata);\n }\n configure(builder);\n return builder.build();\n}\nexport class WorkflowBuilder {\n constructor(workflowName, versionValue) {\n this.workflowName = workflowName;\n this.versionValue = versionValue;\n this.steps = new Map();\n }\n version(value) {\n this.versionValue = value;\n return this;\n }\n entry(stepId) {\n this.entryStep = stepId;\n return this;\n }\n metadata(data) {\n this.metadataValue = { ...(this.metadataValue ?? {}), ...data };\n return this;\n }\n step(id, task, configure) {\n const definition = {\n id,\n task,\n };\n const builder = new WorkflowStepBuilder(this, definition);\n configure?.(builder);\n this.steps.set(id, definition);\n if (!this.entryStep) {\n this.entryStep = id;\n }\n return this;\n }\n build() {\n if (!this.entryStep) {\n throw new Error(`Workflow '${this.workflowName}' must declare at least one step`);\n }\n return {\n name: this.workflowName,\n version: this.versionValue,\n entry: this.entryStep,\n steps: Object.fromEntries(this.steps),\n metadata: this.metadataValue,\n };\n }\n}\nexport class WorkflowStepBuilder {\n constructor(parent, definition) {\n this.parent = parent;\n this.definition = definition;\n }\n onSuccess(stepId) {\n this.definition.transitions = { ...(this.definition.transitions ?? {}), success: stepId };\n return this;\n }\n onFailure(stepId) {\n this.definition.transitions = { ...(this.definition.transitions ?? {}), failure: stepId };\n return this;\n }\n withRetry(policy) {\n this.definition.retry = { ...policy };\n return this;\n }\n withApproval(gate) {\n this.definition.approvals = [...(this.definition.approvals ?? []), gate];\n return this;\n }\n metadata(data) {\n this.definition.metadata = { ...(this.definition.metadata ?? {}), ...data };\n return this;\n }\n end() {\n return this.parent;\n }\n}\nexport function task(handler, input) {\n return { handler, input };\n}\nexport function workflowFromJson(json) {\n if (!json.name || !json.entry || !json.version) {\n throw new Error('Invalid workflow definition JSON payload');\n }\n return {\n name: json.name,\n version: json.version,\n entry: json.entry,\n steps: json.steps,\n metadata: json.metadata,\n };\n}\n","export const HTTP_TASK = 'workflow.http.request';\nexport const DATABASE_TASK = 'workflow.database.execute';\nexport const DELAY_TASK = 'workflow.time.delay';\nexport const SCHEDULE_TASK = 'workflow.background.schedule';\nexport function httpTask(options) {\n return { handler: HTTP_TASK, input: options };\n}\nexport function databaseTask(options) {\n return { handler: DATABASE_TASK, input: options };\n}\nexport function delayTask(options) {\n return { handler: DELAY_TASK, input: options };\n}\nexport function scheduleTask(options) {\n return { handler: SCHEDULE_TASK, input: options };\n}\nexport function createDefaultTaskMap(executor) {\n return {\n [HTTP_TASK]: createHttpTaskHandler(executor),\n [DATABASE_TASK]: createDatabaseTaskHandler(),\n [DELAY_TASK]: createDelayTaskHandler(),\n [SCHEDULE_TASK]: createScheduleTaskHandler(),\n };\n}\nexport function createHttpTaskHandler(fallback) {\n return async (context) => {\n if (!context.input) {\n throw new Error('HTTP task requires an input payload');\n }\n const optionsCandidate = context.input;\n if (!optionsCandidate.url || typeof optionsCandidate.url !== 'string') {\n throw new Error('HTTP task requires a `url` property');\n }\n const options = optionsCandidate;\n const executor = context.services.http ?? fallback ?? createFetchHttpExecutor();\n const response = await executor(options, context);\n const isSuccess = response.status >= 200 && response.status < 300;\n const payloadKey = options.assignResponseTo;\n const data = payloadKey ? { [payloadKey]: response.body ?? response } : undefined;\n return {\n status: isSuccess ? 'success' : 'failure',\n data,\n error: isSuccess ? undefined : { status: response.status, body: response.body },\n };\n };\n}\nexport function createDatabaseTaskHandler() {\n return async (context) => {\n if (!context.input) {\n throw new Error('Database task requires input payload');\n }\n const partialInput = context.input;\n if (!partialInput.provider) {\n throw new Error('Database task input missing `provider`');\n }\n if (!partialInput.operation) {\n throw new Error('Database task input missing `operation` details');\n }\n const options = partialInput;\n const registry = context.services.databases;\n if (!registry) {\n throw new Error('No database registry injected into workflow services');\n }\n const provider = registry.get(options.provider);\n if (!provider) {\n throw new Error(`Database provider '${options.provider}' was not registered`);\n }\n const result = await provider.execute(options.operation, { actor: context.actor });\n const data = options.assignResultTo ? { [options.assignResultTo]: result } : undefined;\n return { status: 'success', data };\n };\n}\nexport function createDelayTaskHandler() {\n return async (context) => {\n const options = context.input ? context.input : {};\n const delayMs = normalizeDelay(options);\n if (delayMs <= 0) {\n return { status: 'success' };\n }\n if (context.services.time) {\n await context.services.time.wait(delayMs);\n }\n else {\n await new Promise(resolve => setTimeout(resolve, delayMs));\n }\n return { status: 'success' };\n };\n}\nexport function createScheduleTaskHandler() {\n return async (context) => {\n if (!context.input) {\n throw new Error('Schedule task requires an input payload');\n }\n const options = context.input;\n if (!options.taskName) {\n throw new Error('Schedule task requires a taskName');\n }\n const scheduleRequest = {\n taskName: options.taskName,\n payload: options.payload,\n description: options.description,\n runAt: options.runAt ? new Date(options.runAt) : undefined,\n delayMs: options.delayMs,\n };\n if (context.services.scheduler) {\n await context.services.scheduler.schedule(scheduleRequest, context);\n return { status: 'success' };\n }\n const delayMs = scheduleRequest.runAt ? Math.max(0, scheduleRequest.runAt.getTime() - Date.now()) : Math.max(0, scheduleRequest.delayMs ?? 0);\n if (delayMs > 0) {\n if (context.services.time) {\n await context.services.time.wait(delayMs);\n }\n else {\n await new Promise(resolve => setTimeout(resolve, delayMs));\n }\n }\n if (!context.services.background) {\n throw new Error('No background runner available to dispatch scheduled task');\n }\n await context.services.background.dispatch(scheduleRequest.taskName, scheduleRequest.payload);\n return { status: 'success' };\n };\n}\nexport function createFetchHttpExecutor(fetchImpl) {\n const resolvedFetch = fetchImpl ?? globalThis.fetch;\n if (!resolvedFetch) {\n throw new Error('Fetch API is not available in this runtime. Provide a custom http service.');\n }\n return async (request, context) => {\n const url = withQueryString(request.url, request.query);\n const body = typeof request.body === 'object' && request.body !== null ? JSON.stringify(request.body) : request.body;\n const response = await resolvedFetch(url, {\n method: request.method ?? 'GET',\n headers: request.headers,\n body,\n });\n const headers = extractHeaders(response.headers);\n const parseMode = determineParseMode(request);\n const payload = parseMode === 'text' ? await response.text() : await safeJson(response);\n context.logger?.debug('HTTP task executed', { url, status: response.status });\n return {\n status: response.status,\n headers,\n body: payload,\n };\n };\n}\nfunction determineParseMode(request) {\n return request.parse ?? 'auto';\n}\nasync function safeJson(response) {\n try {\n return await response.json();\n }\n catch {\n return await response.text();\n }\n}\nfunction extractHeaders(source) {\n const result = {};\n if (!source) {\n return result;\n }\n source.forEach((value, key) => {\n result[key] = value;\n });\n return result;\n}\nfunction withQueryString(url, query) {\n if (!query || Object.keys(query).length === 0) {\n return url;\n }\n const usp = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) {\n usp.append(key, String(value));\n }\n const separator = url.includes('?') ? '&' : '?';\n return `${url}${separator}${usp.toString()}`;\n}\nexport class FunctionalDatabaseProvider {\n constructor(name, executor) {\n this.name = name;\n this.executor = executor;\n }\n execute(operation, context) {\n return this.executor(operation, context);\n }\n}\nexport function createSqlDatabaseProvider(options) {\n return new FunctionalDatabaseProvider(options.name, operation => {\n if (!operation.text) {\n throw new Error('SQL operations require the `text` property');\n }\n return options.query(operation.text, operation.parameters);\n });\n}\nexport function createMySqlProvider(client, name = 'mysql') {\n return createSqlDatabaseProvider({\n name,\n query: (sql, params) => client.query(sql, params),\n });\n}\nexport function createPostgresProvider(client, name = 'postgres') {\n return createSqlDatabaseProvider({\n name,\n query: (sql, params) => client.query(sql, params),\n });\n}\nexport function createSqliteProvider(client, name = 'sqlite') {\n return createSqlDatabaseProvider({\n name,\n query: (sql, params) => client.run(sql, params),\n });\n}\nexport function createMongoProvider(options) {\n return new FunctionalDatabaseProvider(options.name ?? 'mongodb', op => {\n if (!op.collection) {\n throw new Error('Mongo operations require a collection name');\n }\n return options.run(op);\n });\n}\nexport function registerDefaultDatabaseProviders(registry, providers) {\n for (const provider of providers) {\n registry.register(provider);\n }\n}\nfunction normalizeDelay(options) {\n if (typeof options.milliseconds === 'number') {\n return Math.max(0, options.milliseconds);\n }\n if (typeof options.seconds === 'number') {\n return Math.max(0, options.seconds * 1000);\n }\n return 0;\n}\n","export class DatabaseWorkflowStore {\n constructor(options) {\n this.options = options;\n this.table = options.table ?? 'workflow_instances';\n this.dialect = options.dialect ?? 'postgres';\n }\n async save(instance) {\n const nowIso = instance.updatedAt.toISOString();\n const params = [\n instance.id,\n instance.workflowId,\n instance.version,\n instance.status,\n instance.currentStep ?? null,\n JSON.stringify(instance.state),\n instance.actor ? JSON.stringify(instance.actor) : null,\n instance.metadata ? JSON.stringify(instance.metadata) : null,\n JSON.stringify(instance.history),\n instance.createdAt.toISOString(),\n nowIso,\n ];\n const sql = buildUpsertStatement(this.table, this.dialect);\n await this.options.provider.execute({ type: 'command', text: sql, parameters: params });\n }\n async load(id) {\n const sql = `SELECT id, workflow_id, version, status, current_step, state_json, actor_json, metadata_json, history_json, created_at, updated_at FROM ${this.table} WHERE id = ${buildPlaceholder(1, this.dialect)}`;\n const result = await this.options.provider.execute({\n type: 'query',\n text: sql,\n parameters: [id],\n });\n if (!result || result.length === 0) {\n return null;\n }\n return mapRowToInstance(result[0]);\n }\n}\nfunction buildUpsertStatement(table, dialect) {\n const columns = '(id, workflow_id, version, status, current_step, state_json, actor_json, metadata_json, history_json, created_at, updated_at)';\n const values = buildInsertValues(11, dialect);\n const base = `INSERT INTO ${table} ${columns} VALUES ${values}`;\n if (dialect === 'postgres') {\n return `${base} ON CONFLICT (id) DO UPDATE SET workflow_id = EXCLUDED.workflow_id, version = EXCLUDED.version, status = EXCLUDED.status, current_step = EXCLUDED.current_step, state_json = EXCLUDED.state_json, actor_json = EXCLUDED.actor_json, metadata_json = EXCLUDED.metadata_json, history_json = EXCLUDED.history_json, updated_at = EXCLUDED.updated_at`;\n }\n if (dialect === 'sqlite') {\n return `${base} ON CONFLICT(id) DO UPDATE SET workflow_id = excluded.workflow_id, version = excluded.version, status = excluded.status, current_step = excluded.current_step, state_json = excluded.state_json, actor_json = excluded.actor_json, metadata_json = excluded.metadata_json, history_json = excluded.history_json, updated_at = excluded.updated_at`;\n }\n return `${base} ON DUPLICATE KEY UPDATE workflow_id = VALUES(workflow_id), version = VALUES(version), status = VALUES(status), current_step = VALUES(current_step), state_json = VALUES(state_json), actor_json = VALUES(actor_json), metadata_json = VALUES(metadata_json), history_json = VALUES(history_json), updated_at = VALUES(updated_at)`;\n}\nfunction buildInsertValues(count, dialect) {\n if (dialect === 'postgres') {\n const placeholders = Array.from({ length: count }, (_, index) => `$${String(index + 1)}`).join(', ');\n return `(${placeholders})`;\n }\n const placeholders = Array.from({ length: count }, () => '?').join(', ');\n return `(${placeholders})`;\n}\nfunction buildPlaceholder(position, dialect) {\n return dialect === 'postgres' ? `$${String(position)}` : '?';\n}\nfunction mapRowToInstance(row) {\n return {\n id: row.id,\n workflowId: row.workflow_id,\n version: row.version,\n status: row.status,\n currentStep: row.current_step ?? undefined,\n state: parseJson(row.state_json, {}),\n actor: parseJson(row.actor_json, undefined),\n metadata: parseJson(row.metadata_json, undefined),\n history: parseJson(row.history_json, []),\n createdAt: new Date(row.created_at),\n updatedAt: new Date(row.updated_at),\n };\n}\nfunction parseJson(value, fallback) {\n if (!value) {\n return fallback;\n }\n try {\n return JSON.parse(value);\n }\n catch {\n return fallback;\n }\n}\n","export class MongoWorkflowStore {\n constructor(options) {\n this.options = options;\n if (this.options.createIndexes) {\n void this.ensureIndexes();\n }\n }\n async save(instance) {\n const document = serializeInstance(instance);\n await this.options.collection.updateOne({ _id: document._id }, {\n $set: {\n workflowId: document.workflowId,\n version: document.version,\n status: document.status,\n currentStep: document.currentStep,\n state: document.state,\n actor: document.actor,\n metadata: document.metadata,\n history: document.history,\n createdAt: document.createdAt,\n updatedAt: document.updatedAt,\n },\n }, { upsert: true });\n }\n async load(id) {\n const doc = await this.options.collection.findOne({ _id: id });\n if (!doc) {\n return null;\n }\n return deserializeDocument(doc);\n }\n async ensureIndexes() {\n if (!this.options.collection.createIndex) {\n return;\n }\n await Promise.all([\n this.options.collection.createIndex({ workflowId: 1, updatedAt: -1 }),\n this.options.collection.createIndex({ status: 1, updatedAt: -1 }),\n ]);\n }\n}\nfunction serializeInstance(instance) {\n return {\n _id: instance.id,\n workflowId: instance.workflowId,\n version: instance.version,\n status: instance.status,\n currentStep: instance.currentStep,\n state: instance.state,\n actor: instance.actor,\n metadata: instance.metadata,\n history: instance.history.map(entry => ({\n stepId: entry.stepId,\n status: entry.status,\n attempt: entry.attempt,\n timestamp: entry.timestamp.toISOString(),\n notes: entry.notes,\n })),\n createdAt: instance.createdAt.toISOString(),\n updatedAt: instance.updatedAt.toISOString(),\n };\n}\nfunction deserializeDocument(document) {\n return {\n id: document._id,\n workflowId: document.workflowId,\n version: document.version,\n status: document.status,\n currentStep: document.currentStep,\n state: clone(document.state),\n actor: document.actor ? clone(document.actor) : undefined,\n metadata: document.metadata ? clone(document.metadata) : undefined,\n history: Array.isArray(document.history) ? document.history.map(entry => ({ ...entry, timestamp: new Date(entry.timestamp) })) : [],\n createdAt: new Date(document.createdAt),\n updatedAt: new Date(document.updatedAt),\n };\n}\nfunction clone(value) {\n return JSON.parse(JSON.stringify(value));\n}\n","export function workflowToVisualSchema(definition) {\n const nodes = Object.values(definition.steps).map(step => ({\n id: step.id,\n label: String(step.metadata?.label ?? step.id),\n task: step.task,\n approvals: step.approvals,\n retry: step.retry,\n metadata: step.metadata,\n }));\n const edges = [];\n for (const step of Object.values(definition.steps)) {\n if (step.transitions?.success) {\n edges.push({ id: `${step.id}->${step.transitions.success}#success`, source: step.id, target: step.transitions.success, when: 'success' });\n }\n if (step.transitions?.failure) {\n edges.push({ id: `${step.id}->${step.transitions.failure}#failure`, source: step.id, target: step.transitions.failure, when: 'failure' });\n }\n }\n return {\n id: `${definition.name}@${definition.version}`,\n name: definition.name,\n version: definition.version,\n entry: definition.entry,\n metadata: definition.metadata,\n nodes,\n edges,\n };\n}\nexport function visualSchemaToWorkflow(schema) {\n const steps = {};\n for (const node of schema.nodes) {\n steps[node.id] = {\n id: node.id,\n task: node.task,\n approvals: node.approvals,\n retry: node.retry,\n metadata: { ...node.metadata, position: node.position, size: node.size, data: node.data },\n };\n }\n for (const edge of schema.edges) {\n if (!Object.prototype.hasOwnProperty.call(steps, edge.source)) {\n continue;\n }\n const step = steps[edge.source];\n if (!step.transitions) {\n step.transitions = {};\n }\n if (edge.when === 'failure') {\n step.transitions.failure = edge.target;\n }\n else {\n step.transitions.success = edge.target;\n }\n }\n return {\n name: schema.name,\n version: schema.version,\n entry: schema.entry,\n steps,\n metadata: schema.metadata,\n };\n}\n","import { FunctionalDatabaseProvider, createSqlDatabaseProvider } from '../tasks.js';\nexport function createPrismaProvider(options) {\n const query = (text, params = []) => options.client.$queryRawUnsafe(text, ...params);\n const execute = (text, params = []) => {\n if (options.client.$executeRawUnsafe) {\n return options.client.$executeRawUnsafe(text, ...params);\n }\n return query(text, params);\n };\n return new FunctionalDatabaseProvider(options.name ?? 'prisma', operation => {\n if (!operation.text) {\n throw new Error('Prisma provider requires `text` SQL input');\n }\n if (operation.type === 'query') {\n return query(operation.text, operation.parameters ?? []);\n }\n return execute(operation.text, operation.parameters ?? []);\n });\n}\nexport function createDrizzleProvider(options) {\n return new FunctionalDatabaseProvider(options.name ?? 'drizzle', operation => {\n if (!operation.text) {\n throw new Error('Drizzle provider requires `text` SQL input');\n }\n return options.client.execute(operation.text, operation.parameters);\n });\n}\nexport function createSupabaseProvider(options) {\n return new FunctionalDatabaseProvider(options.name ?? 'supabase', async (operation) => {\n if (operation.collection) {\n const table = options.client.from(operation.collection);\n if (operation.type === 'query') {\n if (typeof table.select !== 'function') {\n throw new Error('Supabase client is missing select support');\n }\n return table.select('*');\n }\n if (operation.type === 'command') {\n if (operation.payload && operation.payload.action === 'insert') {\n return table.insert(operation.payload.data);\n }\n if (operation.payload && operation.payload.action === 'update') {\n return table.update(operation.payload.data);\n }\n if (operation.payload && operation.payload.action === 'delete') {\n return table.delete();\n }\n }\n }\n if (options.client.rpc && operation.text) {\n return options.client.rpc(operation.text, operation.payload);\n }\n throw new Error('Supabase provider requires `collection` or `text` with rpc support');\n });\n}\nexport function createRestDatabaseProvider(options) {\n const fetchImpl = options.fetch ?? globalThis.fetch;\n if (!fetchImpl) {\n throw new Error('Fetch API is not available. Provide a custom fetch implementation.');\n }\n return new FunctionalDatabaseProvider(options.name ?? 'rest-db', async (operation) => {\n const url = new URL(options.endpoint);\n if (operation.collection) {\n url.pathname = `${url.pathname.replace(/\\/$/, '')}/${operation.collection}`;\n }\n const body = JSON.stringify(operation.payload ?? { text: operation.text, parameters: operation.parameters });\n const response = await fetchImpl(url, {\n method: 'POST',\n headers: { 'content-type': 'application/json', ...(options.headers ?? {}) },\n body,\n });\n if (!response.ok) {\n throw new Error(`REST database adapter failed with status ${String(response.status)}`);\n }\n return response.json();\n });\n}\nexport { createSqlDatabaseProvider };\n","export class QueueBackgroundRunner {\n constructor(options) {\n this.options = options;\n }\n async dispatch(taskName, payload) {\n const message = { name: taskName, payload };\n await this.options.driver.enqueue(message);\n this.options.metrics?.record('enqueued', { taskName });\n }\n async schedule(request, context) {\n const message = {\n name: request.taskName,\n payload: { ...request.payload, workflowId: context.definition.name, stepId: context.step.id },\n runAt: request.runAt,\n };\n if (request.runAt && this.options.driver.schedule) {\n await this.options.driver.schedule(message);\n this.options.metrics?.record('enqueued', { taskName: request.taskName, scheduled: true });\n return;\n }\n if (request.delayMs && this.options.driver.schedule) {\n await this.options.driver.schedule({ ...message, runAt: new Date(Date.now() + request.delayMs) });\n this.options.metrics?.record('enqueued', { taskName: request.taskName, scheduled: true });\n return;\n }\n await this.dispatch(request.taskName, message.payload);\n }\n}\nexport function createBullMqDriver(queue) {\n return {\n enqueue: message => queue.add(message.name, message.payload).then(() => undefined),\n schedule: message => queue\n .add(message.name, message.payload, {\n delay: message.runAt ? Math.max(0, message.runAt.getTime() - Date.now()) : 0,\n })\n .then(() => undefined),\n };\n}\nexport function createSqsDriver(client, queueUrl) {\n return {\n enqueue: message => client\n .sendMessage({\n QueueUrl: queueUrl,\n MessageBody: JSON.stringify(message.payload ?? {}),\n MessageAttributes: {\n name: { DataType: 'String', StringValue: message.name },\n },\n })\n .then(() => undefined),\n schedule: message => client\n .sendMessage({\n QueueUrl: queueUrl,\n MessageBody: JSON.stringify(message.payload ?? {}),\n DelaySeconds: message.runAt\n ? Math.min(900, Math.max(0, Math.floor((message.runAt.getTime() - Date.now()) / 1000)))\n : undefined,\n MessageAttributes: {\n name: { DataType: 'String', StringValue: message.name },\n },\n })\n .then(() => undefined),\n };\n}\nexport function createAzureQueueDriver(client) {\n return {\n enqueue: message => client.sendMessage(JSON.stringify({ name: message.name, payload: message.payload })).then(() => undefined),\n schedule: message => client\n .sendMessage(JSON.stringify({ name: message.name, payload: message.payload }), {\n visibilityTimeout: message.runAt ? Math.max(0, Math.floor((message.runAt.getTime() - Date.now()) / 1000)) : 0,\n })\n .then(() => undefined),\n };\n}\nexport class MetricsConsoleEmitter {\n record(event, metadata) {\n // eslint-disable-next-line no-console\n console.info(`[workflow.queue] ${event}`, metadata);\n }\n}\n","export class PolicyApprovalResolver {\n constructor(engine, fallback) {\n this.engine = engine;\n this.fallback = fallback;\n }\n async resolve(gate, context) {\n const decision = await this.engine.evaluate({\n actor: context.actor,\n instance: context.instance,\n step: context.step,\n action: 'approve',\n metadata: { gateId: gate.id },\n });\n if (decision.allow) {\n return { status: 'approved', decidedAt: new Date(), decidedBy: context.actor?.id };\n }\n if (this.fallback) {\n return this.fallback.resolve(gate, context);\n }\n return { status: 'pending', reason: decision.reason };\n }\n}\nexport class RuleBasedPolicyEngine {\n constructor(rules, defaultDecision = { allow: true }) {\n this.rules = rules;\n this.defaultDecision = defaultDecision;\n }\n evaluate(request) {\n for (const rule of this.rules) {\n if (rule.match(request)) {\n return rule.decision(request);\n }\n }\n return this.defaultDecision;\n }\n}\nexport function actorFromOidcClaims(claims, mapping = {}) {\n const typedClaims = claims;\n return {\n id: String(claims[mapping.idClaim ?? 'sub'] ?? typedClaims.user_id ?? 'anonymous'),\n roles: toStringArray(claims[mapping.rolesClaim ?? 'roles'] ?? claims['https://ce/roles']),\n scopes: toStringArray(claims[mapping.scopesClaim ?? 'scope']),\n attributes: mapping.attributeClaims?.reduce((acc, key) => {\n acc[key] = claims[key];\n return acc;\n }, {}),\n metadata: { provider: mapping.provider ?? 'oidc', raw: mapping.includeRaw ? claims : undefined },\n };\n}\nexport function actorFromCognitoClaims(claims) {\n return actorFromOidcClaims(claims, {\n provider: 'cognito',\n idClaim: 'sub',\n rolesClaim: 'cognito:groups',\n scopesClaim: 'scope',\n });\n}\nexport function actorFromAzureAdClaims(claims) {\n return actorFromOidcClaims(claims, {\n provider: 'azure-ad',\n idClaim: 'oid',\n rolesClaim: 'roles',\n scopesClaim: 'scp',\n });\n}\nexport function actorFromAuth0Claims(claims) {\n return actorFromOidcClaims(claims, {\n provider: 'auth0',\n idClaim: 'sub',\n rolesClaim: 'https://auth0/roles',\n scopesClaim: 'scope',\n });\n}\nexport function requireActorRoles(roles) {\n return request => {\n const actorRoles = request.actor?.roles ?? [];\n const hasRoles = roles.every(role => actorRoles.includes(role));\n if (!hasRoles) {\n throw new Error(`Actor ${request.actor?.id ?? 'unknown'} missing required roles: ${roles.join(', ')}`);\n }\n };\n}\nexport function requireActorScopes(scopes) {\n return request => {\n const actorScopes = request.actor?.scopes ?? [];\n const hasScopes = scopes.every(scope => actorScopes.includes(scope));\n if (!hasScopes) {\n throw new Error(`Actor ${request.actor?.id ?? 'unknown'} missing required scopes: ${scopes.join(', ')}`);\n }\n };\n}\nexport async function runAuthMiddleware(middleware, request) {\n for (const fn of middleware) {\n await fn(request);\n }\n}\nexport function createStartWorkflowMiddleware(sequence) {\n return request => {\n if (request.action !== 'start') {\n return;\n }\n return runAuthMiddleware(sequence, request);\n };\n}\nexport function createStepMiddleware(sequence) {\n return request => {\n if (request.action !== 'step') {\n return;\n }\n return runAuthMiddleware(sequence, request);\n };\n}\nexport function multiStepApprovalResolver(resolvers) {\n return {\n async resolve(gate, context) {\n for (const resolver of resolvers) {\n const result = await resolver.resolve(gate, context);\n if (result.status !== 'pending') {\n return result;\n }\n }\n return { status: 'pending' };\n },\n };\n}\nexport class ManualOverrideApprovalResolver {\n constructor(overrides) {\n this.overrides = overrides;\n }\n resolve(gate, context) {\n const key = `${context.instance.id}:${gate.id}`;\n return this.overrides.get(key) ?? { status: 'pending' };\n }\n}\nexport function buildPolicyRequest(instance, step, actor) {\n return {\n actor,\n instance,\n step,\n action: 'step',\n };\n}\nfunction toStringArray(value) {\n if (Array.isArray(value)) {\n return value.map(item => String(item));\n }\n if (typeof value === 'string') {\n return value.split(/[\\s,]+/).filter(Boolean);\n }\n return [];\n}\n"]}
|