@shipfox/api-workflows 12.1.0 → 12.2.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/.turbo/turbo-build.log +4 -4
- package/CHANGELOG.md +29 -0
- package/dist/core/entities/job.d.ts +1 -1
- package/dist/core/entities/job.d.ts.map +1 -1
- package/dist/core/entities/step.d.ts +2 -2
- package/dist/core/entities/step.d.ts.map +1 -1
- package/dist/core/errors.d.ts +16 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +18 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/step-config/assemble-run-context.d.ts +15 -5
- package/dist/core/step-config/assemble-run-context.d.ts.map +1 -1
- package/dist/core/step-config/assemble-run-context.js +77 -27
- package/dist/core/step-config/assemble-run-context.js.map +1 -1
- package/dist/core/step-config/fields.d.ts +5 -0
- package/dist/core/step-config/fields.d.ts.map +1 -1
- package/dist/core/step-config/fields.js +21 -3
- package/dist/core/step-config/fields.js.map +1 -1
- package/dist/core/step-config/index.d.ts +1 -1
- package/dist/core/step-config/index.d.ts.map +1 -1
- package/dist/core/step-config/index.js +1 -1
- package/dist/core/step-config/index.js.map +1 -1
- package/dist/core/step-config/job-output-limits.d.ts +11 -0
- package/dist/core/step-config/job-output-limits.d.ts.map +1 -0
- package/dist/core/step-config/job-output-limits.js +88 -0
- package/dist/core/step-config/job-output-limits.js.map +1 -0
- package/dist/core/step-config/materialize-workflow-model.d.ts +1 -1
- package/dist/core/step-config/materialize-workflow-model.d.ts.map +1 -1
- package/dist/core/step-config/materialize-workflow-model.js +41 -14
- package/dist/core/step-config/materialize-workflow-model.js.map +1 -1
- package/dist/db/db.d.ts +50 -50
- package/dist/db/job-listeners.d.ts.map +1 -1
- package/dist/db/job-listeners.js +6 -5
- package/dist/db/job-listeners.js.map +1 -1
- package/dist/db/schema/job-executions.d.ts +3 -3
- package/dist/db/schema/job-listener-events.d.ts +1 -1
- package/dist/db/schema/jobs.d.ts +7 -7
- package/dist/db/schema/outbox.d.ts +1 -1
- package/dist/db/schema/step-attempts.d.ts +2 -2
- package/dist/db/schema/steps.d.ts +5 -5
- package/dist/db/schema/workflow-run-attempts.d.ts +3 -3
- package/dist/db/schema/workflow-run-counters.d.ts +1 -1
- package/dist/db/schema/workflow-runs.d.ts +2 -2
- package/dist/db/workflow-runs/job-executions.d.ts.map +1 -1
- package/dist/db/workflow-runs/job-executions.js +4 -2
- package/dist/db/workflow-runs/job-executions.js.map +1 -1
- package/dist/db/workflow-runs/jobs.d.ts.map +1 -1
- package/dist/db/workflow-runs/jobs.js +29 -3
- package/dist/db/workflow-runs/jobs.js.map +1 -1
- package/dist/presentation/routes/project-access.d.ts +1 -1
- package/dist/temporal/activities/index.d.ts +1 -1
- package/dist/temporal/activities/index.d.ts.map +1 -1
- package/dist/temporal/activities/orchestration-activities.d.ts +1 -1
- package/dist/temporal/activities/orchestration-activities.d.ts.map +1 -1
- package/dist/temporal/workflows/test-env.d.ts +2 -2
- package/dist/tsconfig.test.tsbuildinfo +1 -1
- package/package.json +16 -16
- package/src/core/errors.ts +35 -0
- package/src/core/step-config/assemble-run-context.test.ts +232 -20
- package/src/core/step-config/assemble-run-context.ts +126 -28
- package/src/core/step-config/fields.ts +42 -3
- package/src/core/step-config/index.ts +2 -0
- package/src/core/step-config/job-output-limits.ts +130 -0
- package/src/core/step-config/materialize-workflow-model.test.ts +306 -1
- package/src/core/step-config/materialize-workflow-model.ts +60 -15
- package/src/db/job-listeners.ts +14 -3
- package/src/db/workflow-runs/job-executions.test.ts +207 -1
- package/src/db/workflow-runs/job-executions.ts +15 -2
- package/src/db/workflow-runs/jobs.test.ts +49 -0
- package/src/db/workflow-runs/jobs.ts +46 -6
- package/src/db/workflow-runs/run-create.test.ts +56 -0
- package/test/factories/workflow-model.ts +2 -0
- package/tsconfig.build.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/core/step-config/materialize-workflow-model.ts"],"sourcesContent":["import {DEFAULT_JOB_CHECKOUT, type WorkflowModel} from '@shipfox/api-definitions-dto';\nimport {canonicalizeLabels, findInvalidLabels, MAX_RUNNER_LABELS} from '@shipfox/runner-labels';\nimport type {AgentDefaultsResolver} from '#core/agent-defaults.js';\nimport type {\n AgentToolMaterializationContext,\n AgentToolMaterializationSnapshot,\n} from '#core/agent-tools.js';\nimport {InvalidJobRunnerLabelsError} from '#core/errors.js';\nimport {completeStepField} from './fields.js';\nimport {\n type MaterializedWorkflowStep,\n materializeJobExecutionSteps,\n} from './materialize-job-execution-steps.js';\nimport type {WorkflowEvaluationContext} from './workflow-evaluation-context.js';\n\ntype WorkflowModelJob = WorkflowModel['jobs'][number];\nexport interface MaterializedWorkflowJob {\n readonly key: string;\n readonly mode: WorkflowModelJob['mode'];\n readonly success?: string;\n readonly executionTimeoutMs?: number;\n readonly checkout: Exclude<WorkflowModelJob['checkout'], false>;\n readonly listening?: WorkflowModelJob['listening'];\n readonly name?: string;\n readonly outputs?: WorkflowModelJob['outputs'];\n readonly dependencies: readonly string[];\n readonly runner: readonly string[];\n readonly position: number;\n readonly steps: readonly MaterializedWorkflowStep[];\n}\n\nexport interface MaterializeWorkflowModelParams {\n readonly model: WorkflowModel;\n readonly context?: WorkflowEvaluationContext | undefined;\n readonly resolveAgentDefaults?: AgentDefaultsResolver | undefined;\n readonly definitionId?: string | undefined;\n readonly agentToolContext?: AgentToolMaterializationContext | undefined;\n readonly agentToolSnapshot?: AgentToolMaterializationSnapshot | null | undefined;\n}\n\nexport async function materializeWorkflowModel(\n params: MaterializeWorkflowModelParams,\n): Promise<readonly MaterializedWorkflowJob[]> {\n const {\n model,\n context = {site: 'run-creation', values: {}},\n resolveAgentDefaults,\n definitionId = model.name,\n agentToolContext,\n agentToolSnapshot,\n } = params;\n const jobsById = new Map(model.jobs.map((job) => [job.id, job]));\n\n return await Promise.all(\n model.jobs.map(async (job, position) => {\n const name = job.name;\n return {\n key: job.key,\n mode: job.mode,\n ...(job.success === undefined ? {} : {success: job.success}),\n ...(job.executionTimeoutMs === undefined\n ? {}\n : {executionTimeoutMs: job.executionTimeoutMs}),\n checkout: job.checkout === false ? DEFAULT_JOB_CHECKOUT : job.checkout,\n ...(job.listening === undefined ? {} : {listening: job.listening}),\n ...(name === undefined ? {} : {name}),\n ...(job.outputs === undefined ? {} : {outputs: job.outputs}),\n dependencies: dependencySourceNames(job, jobsById),\n runner: job.runner,\n position,\n steps:\n job.mode === 'listening'\n ? []\n : await materializeJobExecutionSteps({\n model,\n job,\n context,\n resolveAgentDefaults,\n definitionId,\n agentToolContext,\n agentToolSnapshot,\n }),\n };\n }),\n );\n}\n\nexport function materializeJobRunner(params: {\n readonly job: WorkflowModelJob;\n readonly context: WorkflowEvaluationContext;\n readonly definitionId: string;\n}): readonly string[] {\n const resolvedLabels = (params.job.runnerTemplates ?? []).map((template) =>\n completeStepField({\n field: 'job.runner',\n errorField: 'job.runner',\n template: {segments: template},\n context: params.context,\n definitionId: params.definitionId,\n }),\n );\n const labels = canonicalizeLabels([...params.job.runner, ...resolvedLabels]);\n const invalidLabels = findInvalidLabels(labels);\n if (labels.length === 0 || labels.length > MAX_RUNNER_LABELS || invalidLabels.length > 0) {\n throw new InvalidJobRunnerLabelsError(labels);\n }\n return labels;\n}\n\nexport function materializeJobOutputs(params: {\n readonly job: WorkflowModelJob;\n readonly context: WorkflowEvaluationContext;\n readonly definitionId: string;\n}): Record<string, string> | null {\n const outputs = params.job.outputs;\n if (outputs === undefined) return null;\n\n return Object.fromEntries(\n Object.entries(outputs).map(([key, template]) => [\n key,\n completeStepField({\n field: 'job.outputs',\n errorField: 'job.outputs',\n template: {segments: template},\n context: params.context,\n definitionId: params.definitionId,\n }),\n ]),\n );\n}\n\nexport function modelHasAgentStep(model: WorkflowModel): boolean {\n return model.jobs.some((job) => job.steps.some((step) => step.kind === 'agent'));\n}\n\nfunction dependencySourceNames(\n job: WorkflowModelJob,\n jobsById: ReadonlyMap<string, WorkflowModelJob>,\n): readonly string[] {\n return job.dependencies.map((dependencyId) => {\n const dependency = jobsById.get(dependencyId);\n if (!dependency) {\n throw new Error(`Unresolved workflow model dependency \"${dependencyId}\" for job \"${job.id}\"`);\n }\n return dependency.key;\n });\n}\n"],"names":["DEFAULT_JOB_CHECKOUT","canonicalizeLabels","findInvalidLabels","MAX_RUNNER_LABELS","InvalidJobRunnerLabelsError","completeStepField","materializeJobExecutionSteps","materializeWorkflowModel","params","model","context","site","values","resolveAgentDefaults","definitionId","name","agentToolContext","agentToolSnapshot","jobsById","Map","jobs","map","job","id","Promise","all","position","key","mode","success","undefined","executionTimeoutMs","checkout","listening","outputs","dependencies","dependencySourceNames","runner","steps","materializeJobRunner","resolvedLabels","runnerTemplates","template","field","errorField","segments","labels","invalidLabels","length","materializeJobOutputs","Object","fromEntries","entries","modelHasAgentStep","some","step","kind","dependencyId","dependency","get","Error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/core/step-config/materialize-workflow-model.ts"],"sourcesContent":["import {DEFAULT_JOB_CHECKOUT, type WorkflowModel} from '@shipfox/api-definitions-dto';\nimport {canonicalizeLabels, findInvalidLabels, MAX_RUNNER_LABELS} from '@shipfox/runner-labels';\nimport type {AgentDefaultsResolver} from '#core/agent-defaults.js';\nimport type {\n AgentToolMaterializationContext,\n AgentToolMaterializationSnapshot,\n} from '#core/agent-tools.js';\nimport {\n InvalidJobRunnerLabelsError,\n JobOutputTooLargeError,\n JobOutputTooManyEntriesError,\n} from '#core/errors.js';\nimport {completeStepField, completeStepFieldWithType} from './fields.js';\nimport {\n type JsonSafeJobOutputValue,\n jobOutputRecordEntryByteLength,\n jobOutputValueByteLength,\n MAX_JOB_OUTPUT_ENTRIES,\n MAX_JOB_OUTPUT_VALUE_BYTES,\n MAX_JOB_OUTPUTS_TOTAL_BYTES,\n normalizeJobOutputValue,\n} from './job-output-limits.js';\nimport {\n type MaterializedWorkflowStep,\n materializeJobExecutionSteps,\n} from './materialize-job-execution-steps.js';\nimport type {WorkflowEvaluationContext} from './workflow-evaluation-context.js';\n\ntype WorkflowModelJob = WorkflowModel['jobs'][number];\nexport interface MaterializedWorkflowJob {\n readonly key: string;\n readonly mode: WorkflowModelJob['mode'];\n readonly success?: string;\n readonly executionTimeoutMs?: number;\n readonly checkout: Exclude<WorkflowModelJob['checkout'], false>;\n readonly listening?: WorkflowModelJob['listening'];\n readonly name?: string;\n readonly outputs?: WorkflowModelJob['outputs'];\n readonly dependencies: readonly string[];\n readonly runner: readonly string[];\n readonly position: number;\n readonly steps: readonly MaterializedWorkflowStep[];\n}\n\nexport interface MaterializeWorkflowModelParams {\n readonly model: WorkflowModel;\n readonly context?: WorkflowEvaluationContext | undefined;\n readonly resolveAgentDefaults?: AgentDefaultsResolver | undefined;\n readonly definitionId?: string | undefined;\n readonly agentToolContext?: AgentToolMaterializationContext | undefined;\n readonly agentToolSnapshot?: AgentToolMaterializationSnapshot | null | undefined;\n}\n\nexport async function materializeWorkflowModel(\n params: MaterializeWorkflowModelParams,\n): Promise<readonly MaterializedWorkflowJob[]> {\n const {\n model,\n context = {site: 'run-creation', values: {}},\n resolveAgentDefaults,\n definitionId = model.name,\n agentToolContext,\n agentToolSnapshot,\n } = params;\n const jobsById = new Map(model.jobs.map((job) => [job.id, job]));\n\n return await Promise.all(\n model.jobs.map(async (job, position) => {\n const name = job.name;\n return {\n key: job.key,\n mode: job.mode,\n ...(job.success === undefined ? {} : {success: job.success}),\n ...(job.executionTimeoutMs === undefined\n ? {}\n : {executionTimeoutMs: job.executionTimeoutMs}),\n checkout: job.checkout === false ? DEFAULT_JOB_CHECKOUT : job.checkout,\n ...(job.listening === undefined ? {} : {listening: job.listening}),\n ...(name === undefined ? {} : {name}),\n ...(job.outputs === undefined ? {} : {outputs: job.outputs}),\n dependencies: dependencySourceNames(job, jobsById),\n runner: job.runner,\n position,\n steps:\n job.mode === 'listening'\n ? []\n : await materializeJobExecutionSteps({\n model,\n job,\n context,\n resolveAgentDefaults,\n definitionId,\n agentToolContext,\n agentToolSnapshot,\n }),\n };\n }),\n );\n}\n\nexport function materializeJobRunner(params: {\n readonly job: WorkflowModelJob;\n readonly context: WorkflowEvaluationContext;\n readonly definitionId: string;\n}): readonly string[] {\n const resolvedLabels = (params.job.runnerTemplates ?? []).map((template) =>\n completeStepField({\n field: 'job.runner',\n errorField: 'job.runner',\n template: {segments: template},\n context: params.context,\n definitionId: params.definitionId,\n }),\n );\n const labels = canonicalizeLabels([...params.job.runner, ...resolvedLabels]);\n const invalidLabels = findInvalidLabels(labels);\n if (labels.length === 0 || labels.length > MAX_RUNNER_LABELS || invalidLabels.length > 0) {\n throw new InvalidJobRunnerLabelsError(labels);\n }\n return labels;\n}\n\nexport function materializeJobOutputs(params: {\n readonly job: WorkflowModelJob;\n readonly context: WorkflowEvaluationContext;\n readonly definitionId: string;\n}): Record<string, unknown> | null {\n const outputs = params.job.outputs;\n if (outputs === undefined) return null;\n\n const outputEntries = Object.entries(outputs);\n if (outputEntries.length > MAX_JOB_OUTPUT_ENTRIES) {\n throw new JobOutputTooManyEntriesError(outputEntries.length, MAX_JOB_OUTPUT_ENTRIES);\n }\n\n const materialized: Record<string, JsonSafeJobOutputValue> = {};\n // This is exactly JSON.stringify(materialized): start with \"{}\", then add each\n // key/value pair and its comma (except for the first entry).\n let recordBytes = 2;\n\n for (const [index, [key, template]] of outputEntries.entries()) {\n const outputTypes = params.job.outputTypes;\n const outputType =\n outputTypes !== undefined && Object.hasOwn(outputTypes, key) ? outputTypes[key] : undefined;\n const completionParams = {\n field: 'job.outputs' as const,\n errorField: 'job.outputs' as const,\n template: {segments: template},\n context: params.context,\n definitionId: params.definitionId,\n };\n const value =\n outputType === undefined || outputType === 'string'\n ? completeStepField(completionParams)\n : completeStepFieldWithType(completionParams);\n const normalizedValue = normalizeJobOutputValue(value, key);\n const valueBytes = jobOutputValueByteLength(normalizedValue);\n if (valueBytes > MAX_JOB_OUTPUT_VALUE_BYTES) {\n throw new JobOutputTooLargeError(key, MAX_JOB_OUTPUT_VALUE_BYTES, 'value');\n }\n\n recordBytes += (index === 0 ? 0 : 1) + jobOutputRecordEntryByteLength(key, normalizedValue);\n Object.defineProperty(materialized, key, {\n configurable: true,\n enumerable: true,\n value: normalizedValue,\n writable: true,\n });\n if (recordBytes > MAX_JOB_OUTPUTS_TOTAL_BYTES) {\n throw new JobOutputTooLargeError(key, MAX_JOB_OUTPUTS_TOTAL_BYTES, 'total');\n }\n }\n\n return materialized;\n}\n\nexport function modelHasAgentStep(model: WorkflowModel): boolean {\n return model.jobs.some((job) => job.steps.some((step) => step.kind === 'agent'));\n}\n\nfunction dependencySourceNames(\n job: WorkflowModelJob,\n jobsById: ReadonlyMap<string, WorkflowModelJob>,\n): readonly string[] {\n return job.dependencies.map((dependencyId) => {\n const dependency = jobsById.get(dependencyId);\n if (!dependency) {\n throw new Error(`Unresolved workflow model dependency \"${dependencyId}\" for job \"${job.id}\"`);\n }\n return dependency.key;\n });\n}\n"],"names":["DEFAULT_JOB_CHECKOUT","canonicalizeLabels","findInvalidLabels","MAX_RUNNER_LABELS","InvalidJobRunnerLabelsError","JobOutputTooLargeError","JobOutputTooManyEntriesError","completeStepField","completeStepFieldWithType","jobOutputRecordEntryByteLength","jobOutputValueByteLength","MAX_JOB_OUTPUT_ENTRIES","MAX_JOB_OUTPUT_VALUE_BYTES","MAX_JOB_OUTPUTS_TOTAL_BYTES","normalizeJobOutputValue","materializeJobExecutionSteps","materializeWorkflowModel","params","model","context","site","values","resolveAgentDefaults","definitionId","name","agentToolContext","agentToolSnapshot","jobsById","Map","jobs","map","job","id","Promise","all","position","key","mode","success","undefined","executionTimeoutMs","checkout","listening","outputs","dependencies","dependencySourceNames","runner","steps","materializeJobRunner","resolvedLabels","runnerTemplates","template","field","errorField","segments","labels","invalidLabels","length","materializeJobOutputs","outputEntries","Object","entries","materialized","recordBytes","index","outputTypes","outputType","hasOwn","completionParams","value","normalizedValue","valueBytes","defineProperty","configurable","enumerable","writable","modelHasAgentStep","some","step","kind","dependencyId","dependency","get","Error"],"mappings":"AAAA,SAAQA,oBAAoB,QAA2B,+BAA+B;AACtF,SAAQC,kBAAkB,EAAEC,iBAAiB,EAAEC,iBAAiB,QAAO,yBAAyB;AAMhG,SACEC,2BAA2B,EAC3BC,sBAAsB,EACtBC,4BAA4B,QACvB,kBAAkB;AACzB,SAAQC,iBAAiB,EAAEC,yBAAyB,QAAO,cAAc;AACzE,SAEEC,8BAA8B,EAC9BC,wBAAwB,EACxBC,sBAAsB,EACtBC,0BAA0B,EAC1BC,2BAA2B,EAC3BC,uBAAuB,QAClB,yBAAyB;AAChC,SAEEC,4BAA4B,QACvB,uCAAuC;AA4B9C,OAAO,eAAeC,yBACpBC,MAAsC;IAEtC,MAAM,EACJC,KAAK,EACLC,UAAU;QAACC,MAAM;QAAgBC,QAAQ,CAAC;IAAC,CAAC,EAC5CC,oBAAoB,EACpBC,eAAeL,MAAMM,IAAI,EACzBC,gBAAgB,EAChBC,iBAAiB,EAClB,GAAGT;IACJ,MAAMU,WAAW,IAAIC,IAAIV,MAAMW,IAAI,CAACC,GAAG,CAAC,CAACC,MAAQ;YAACA,IAAIC,EAAE;YAAED;SAAI;IAE9D,OAAO,MAAME,QAAQC,GAAG,CACtBhB,MAAMW,IAAI,CAACC,GAAG,CAAC,OAAOC,KAAKI;QACzB,MAAMX,OAAOO,IAAIP,IAAI;QACrB,OAAO;YACLY,KAAKL,IAAIK,GAAG;YACZC,MAAMN,IAAIM,IAAI;YACd,GAAIN,IAAIO,OAAO,KAAKC,YAAY,CAAC,IAAI;gBAACD,SAASP,IAAIO,OAAO;YAAA,CAAC;YAC3D,GAAIP,IAAIS,kBAAkB,KAAKD,YAC3B,CAAC,IACD;gBAACC,oBAAoBT,IAAIS,kBAAkB;YAAA,CAAC;YAChDC,UAAUV,IAAIU,QAAQ,KAAK,QAAQzC,uBAAuB+B,IAAIU,QAAQ;YACtE,GAAIV,IAAIW,SAAS,KAAKH,YAAY,CAAC,IAAI;gBAACG,WAAWX,IAAIW,SAAS;YAAA,CAAC;YACjE,GAAIlB,SAASe,YAAY,CAAC,IAAI;gBAACf;YAAI,CAAC;YACpC,GAAIO,IAAIY,OAAO,KAAKJ,YAAY,CAAC,IAAI;gBAACI,SAASZ,IAAIY,OAAO;YAAA,CAAC;YAC3DC,cAAcC,sBAAsBd,KAAKJ;YACzCmB,QAAQf,IAAIe,MAAM;YAClBX;YACAY,OACEhB,IAAIM,IAAI,KAAK,cACT,EAAE,GACF,MAAMtB,6BAA6B;gBACjCG;gBACAa;gBACAZ;gBACAG;gBACAC;gBACAE;gBACAC;YACF;QACR;IACF;AAEJ;AAEA,OAAO,SAASsB,qBAAqB/B,MAIpC;IACC,MAAMgC,iBAAiB,AAAChC,CAAAA,OAAOc,GAAG,CAACmB,eAAe,IAAI,EAAE,AAAD,EAAGpB,GAAG,CAAC,CAACqB,WAC7D5C,kBAAkB;YAChB6C,OAAO;YACPC,YAAY;YACZF,UAAU;gBAACG,UAAUH;YAAQ;YAC7BhC,SAASF,OAAOE,OAAO;YACvBI,cAAcN,OAAOM,YAAY;QACnC;IAEF,MAAMgC,SAAStD,mBAAmB;WAAIgB,OAAOc,GAAG,CAACe,MAAM;WAAKG;KAAe;IAC3E,MAAMO,gBAAgBtD,kBAAkBqD;IACxC,IAAIA,OAAOE,MAAM,KAAK,KAAKF,OAAOE,MAAM,GAAGtD,qBAAqBqD,cAAcC,MAAM,GAAG,GAAG;QACxF,MAAM,IAAIrD,4BAA4BmD;IACxC;IACA,OAAOA;AACT;AAEA,OAAO,SAASG,sBAAsBzC,MAIrC;IACC,MAAM0B,UAAU1B,OAAOc,GAAG,CAACY,OAAO;IAClC,IAAIA,YAAYJ,WAAW,OAAO;IAElC,MAAMoB,gBAAgBC,OAAOC,OAAO,CAAClB;IACrC,IAAIgB,cAAcF,MAAM,GAAG9C,wBAAwB;QACjD,MAAM,IAAIL,6BAA6BqD,cAAcF,MAAM,EAAE9C;IAC/D;IAEA,MAAMmD,eAAuD,CAAC;IAC9D,+EAA+E;IAC/E,6DAA6D;IAC7D,IAAIC,cAAc;IAElB,KAAK,MAAM,CAACC,OAAO,CAAC5B,KAAKe,SAAS,CAAC,IAAIQ,cAAcE,OAAO,GAAI;QAC9D,MAAMI,cAAchD,OAAOc,GAAG,CAACkC,WAAW;QAC1C,MAAMC,aACJD,gBAAgB1B,aAAaqB,OAAOO,MAAM,CAACF,aAAa7B,OAAO6B,WAAW,CAAC7B,IAAI,GAAGG;QACpF,MAAM6B,mBAAmB;YACvBhB,OAAO;YACPC,YAAY;YACZF,UAAU;gBAACG,UAAUH;YAAQ;YAC7BhC,SAASF,OAAOE,OAAO;YACvBI,cAAcN,OAAOM,YAAY;QACnC;QACA,MAAM8C,QACJH,eAAe3B,aAAa2B,eAAe,WACvC3D,kBAAkB6D,oBAClB5D,0BAA0B4D;QAChC,MAAME,kBAAkBxD,wBAAwBuD,OAAOjC;QACvD,MAAMmC,aAAa7D,yBAAyB4D;QAC5C,IAAIC,aAAa3D,4BAA4B;YAC3C,MAAM,IAAIP,uBAAuB+B,KAAKxB,4BAA4B;QACpE;QAEAmD,eAAe,AAACC,CAAAA,UAAU,IAAI,IAAI,CAAA,IAAKvD,+BAA+B2B,KAAKkC;QAC3EV,OAAOY,cAAc,CAACV,cAAc1B,KAAK;YACvCqC,cAAc;YACdC,YAAY;YACZL,OAAOC;YACPK,UAAU;QACZ;QACA,IAAIZ,cAAclD,6BAA6B;YAC7C,MAAM,IAAIR,uBAAuB+B,KAAKvB,6BAA6B;QACrE;IACF;IAEA,OAAOiD;AACT;AAEA,OAAO,SAASc,kBAAkB1D,KAAoB;IACpD,OAAOA,MAAMW,IAAI,CAACgD,IAAI,CAAC,CAAC9C,MAAQA,IAAIgB,KAAK,CAAC8B,IAAI,CAAC,CAACC,OAASA,KAAKC,IAAI,KAAK;AACzE;AAEA,SAASlC,sBACPd,GAAqB,EACrBJ,QAA+C;IAE/C,OAAOI,IAAIa,YAAY,CAACd,GAAG,CAAC,CAACkD;QAC3B,MAAMC,aAAatD,SAASuD,GAAG,CAACF;QAChC,IAAI,CAACC,YAAY;YACf,MAAM,IAAIE,MAAM,CAAC,sCAAsC,EAAEH,aAAa,WAAW,EAAEjD,IAAIC,EAAE,CAAC,CAAC,CAAC;QAC9F;QACA,OAAOiD,WAAW7C,GAAG;IACvB;AACF"}
|
package/dist/db/db.d.ts
CHANGED
|
@@ -128,7 +128,7 @@ export declare const schema: {
|
|
|
128
128
|
tableName: "workflow_runs";
|
|
129
129
|
dataType: "string";
|
|
130
130
|
columnType: "PgEnumColumn";
|
|
131
|
-
data: "
|
|
131
|
+
data: "cancelled" | "failed" | "pending" | "running" | "succeeded";
|
|
132
132
|
driverParam: string;
|
|
133
133
|
notNull: true;
|
|
134
134
|
hasDefault: true;
|
|
@@ -404,7 +404,7 @@ export declare const schema: {
|
|
|
404
404
|
generated: undefined;
|
|
405
405
|
}, {}, {}>;
|
|
406
406
|
};
|
|
407
|
-
dialect:
|
|
407
|
+
dialect: 'pg';
|
|
408
408
|
}>;
|
|
409
409
|
workflowRunAttempts: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
410
410
|
name: "workflow_run_attempts";
|
|
@@ -466,7 +466,7 @@ export declare const schema: {
|
|
|
466
466
|
tableName: "workflow_run_attempts";
|
|
467
467
|
dataType: "string";
|
|
468
468
|
columnType: "PgEnumColumn";
|
|
469
|
-
data: "
|
|
469
|
+
data: "cancelled" | "failed" | "pending" | "running" | "succeeded";
|
|
470
470
|
driverParam: string;
|
|
471
471
|
notNull: true;
|
|
472
472
|
hasDefault: true;
|
|
@@ -483,7 +483,7 @@ export declare const schema: {
|
|
|
483
483
|
tableName: "workflow_run_attempts";
|
|
484
484
|
dataType: "string";
|
|
485
485
|
columnType: "PgEnumColumn";
|
|
486
|
-
data: "
|
|
486
|
+
data: "all" | "failed";
|
|
487
487
|
driverParam: string;
|
|
488
488
|
notNull: false;
|
|
489
489
|
hasDefault: false;
|
|
@@ -661,7 +661,7 @@ export declare const schema: {
|
|
|
661
661
|
generated: undefined;
|
|
662
662
|
}, {}, {}>;
|
|
663
663
|
};
|
|
664
|
-
dialect:
|
|
664
|
+
dialect: 'pg';
|
|
665
665
|
}>;
|
|
666
666
|
workflowRunCounters: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
667
667
|
name: "workflow_run_counters";
|
|
@@ -702,7 +702,7 @@ export declare const schema: {
|
|
|
702
702
|
generated: undefined;
|
|
703
703
|
}, {}, {}>;
|
|
704
704
|
};
|
|
705
|
-
dialect:
|
|
705
|
+
dialect: 'pg';
|
|
706
706
|
}>;
|
|
707
707
|
jobs: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
708
708
|
name: "jobs";
|
|
@@ -764,7 +764,7 @@ export declare const schema: {
|
|
|
764
764
|
tableName: "jobs";
|
|
765
765
|
dataType: "string";
|
|
766
766
|
columnType: "PgEnumColumn";
|
|
767
|
-
data: "
|
|
767
|
+
data: "listening" | "one_shot";
|
|
768
768
|
driverParam: string;
|
|
769
769
|
notNull: true;
|
|
770
770
|
hasDefault: true;
|
|
@@ -798,7 +798,7 @@ export declare const schema: {
|
|
|
798
798
|
tableName: "jobs";
|
|
799
799
|
dataType: "string";
|
|
800
800
|
columnType: "PgEnumColumn";
|
|
801
|
-
data: "
|
|
801
|
+
data: "cancelled" | "failed" | "pending" | "running" | "skipped" | "succeeded";
|
|
802
802
|
driverParam: string;
|
|
803
803
|
notNull: true;
|
|
804
804
|
hasDefault: true;
|
|
@@ -815,7 +815,7 @@ export declare const schema: {
|
|
|
815
815
|
tableName: "jobs";
|
|
816
816
|
dataType: "string";
|
|
817
817
|
columnType: "PgEnumColumn";
|
|
818
|
-
data: "
|
|
818
|
+
data: "condition_errored" | "condition_false" | "condition_rejected" | "default_gate_rejected" | "dependency_not_completed" | "run_cancelled" | "runner_lost" | "step_failed" | "timed_out" | "unknown" | "user_cancelled";
|
|
819
819
|
driverParam: string;
|
|
820
820
|
notNull: false;
|
|
821
821
|
hasDefault: false;
|
|
@@ -970,7 +970,7 @@ export declare const schema: {
|
|
|
970
970
|
tableName: "jobs";
|
|
971
971
|
dataType: "string";
|
|
972
972
|
columnType: "PgEnumColumn";
|
|
973
|
-
data: "
|
|
973
|
+
data: "cancel" | "finish";
|
|
974
974
|
driverParam: string;
|
|
975
975
|
notNull: false;
|
|
976
976
|
hasDefault: false;
|
|
@@ -1038,7 +1038,7 @@ export declare const schema: {
|
|
|
1038
1038
|
tableName: "jobs";
|
|
1039
1039
|
dataType: "string";
|
|
1040
1040
|
columnType: "PgEnumColumn";
|
|
1041
|
-
data: "
|
|
1041
|
+
data: "inactive" | "listening" | "resolved";
|
|
1042
1042
|
driverParam: string;
|
|
1043
1043
|
notNull: true;
|
|
1044
1044
|
hasDefault: true;
|
|
@@ -1055,7 +1055,7 @@ export declare const schema: {
|
|
|
1055
1055
|
tableName: "jobs";
|
|
1056
1056
|
dataType: "string";
|
|
1057
1057
|
columnType: "PgEnumColumn";
|
|
1058
|
-
data: "cancelled" | "
|
|
1058
|
+
data: "cancelled" | "max_executions" | "timeout" | "until";
|
|
1059
1059
|
driverParam: string;
|
|
1060
1060
|
notNull: false;
|
|
1061
1061
|
hasDefault: false;
|
|
@@ -1231,7 +1231,7 @@ export declare const schema: {
|
|
|
1231
1231
|
generated: undefined;
|
|
1232
1232
|
}, {}, {}>;
|
|
1233
1233
|
};
|
|
1234
|
-
dialect:
|
|
1234
|
+
dialect: 'pg';
|
|
1235
1235
|
}>;
|
|
1236
1236
|
jobExecutions: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
1237
1237
|
name: "job_executions";
|
|
@@ -1329,7 +1329,7 @@ export declare const schema: {
|
|
|
1329
1329
|
tableName: "job_executions";
|
|
1330
1330
|
dataType: "string";
|
|
1331
1331
|
columnType: "PgEnumColumn";
|
|
1332
|
-
data: "
|
|
1332
|
+
data: "cancelled" | "failed" | "pending" | "running" | "succeeded";
|
|
1333
1333
|
driverParam: string;
|
|
1334
1334
|
notNull: true;
|
|
1335
1335
|
hasDefault: true;
|
|
@@ -1346,7 +1346,7 @@ export declare const schema: {
|
|
|
1346
1346
|
tableName: "job_executions";
|
|
1347
1347
|
dataType: "string";
|
|
1348
1348
|
columnType: "PgEnumColumn";
|
|
1349
|
-
data: "
|
|
1349
|
+
data: "condition_errored" | "condition_false" | "condition_rejected" | "default_gate_rejected" | "dependency_not_completed" | "run_cancelled" | "runner_lost" | "step_failed" | "timed_out" | "unknown" | "user_cancelled";
|
|
1350
1350
|
driverParam: string;
|
|
1351
1351
|
notNull: false;
|
|
1352
1352
|
hasDefault: false;
|
|
@@ -1535,7 +1535,7 @@ export declare const schema: {
|
|
|
1535
1535
|
generated: undefined;
|
|
1536
1536
|
}, {}, {}>;
|
|
1537
1537
|
};
|
|
1538
|
-
dialect:
|
|
1538
|
+
dialect: 'pg';
|
|
1539
1539
|
}>;
|
|
1540
1540
|
jobListenerEvents: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
1541
1541
|
name: "job_listener_events";
|
|
@@ -1748,7 +1748,7 @@ export declare const schema: {
|
|
|
1748
1748
|
generated: undefined;
|
|
1749
1749
|
}, {}, {}>;
|
|
1750
1750
|
};
|
|
1751
|
-
dialect:
|
|
1751
|
+
dialect: 'pg';
|
|
1752
1752
|
}>;
|
|
1753
1753
|
steps: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
1754
1754
|
name: "steps";
|
|
@@ -1846,7 +1846,7 @@ export declare const schema: {
|
|
|
1846
1846
|
tableName: "steps";
|
|
1847
1847
|
dataType: "string";
|
|
1848
1848
|
columnType: "PgEnumColumn";
|
|
1849
|
-
data: "
|
|
1849
|
+
data: "cancelled" | "failed" | "pending" | "running" | "skipped" | "succeeded";
|
|
1850
1850
|
driverParam: string;
|
|
1851
1851
|
notNull: true;
|
|
1852
1852
|
hasDefault: true;
|
|
@@ -1863,7 +1863,7 @@ export declare const schema: {
|
|
|
1863
1863
|
tableName: "steps";
|
|
1864
1864
|
dataType: "string";
|
|
1865
1865
|
columnType: "PgEnumColumn";
|
|
1866
|
-
data: "
|
|
1866
|
+
data: "condition_errored" | "condition_rejected" | "default_gate_rejected";
|
|
1867
1867
|
driverParam: string;
|
|
1868
1868
|
notNull: false;
|
|
1869
1869
|
hasDefault: false;
|
|
@@ -1899,7 +1899,7 @@ export declare const schema: {
|
|
|
1899
1899
|
tableName: "steps";
|
|
1900
1900
|
dataType: "string";
|
|
1901
1901
|
columnType: "PgText";
|
|
1902
|
-
data: "
|
|
1902
|
+
data: "agent" | "checkout" | "run" | "setup";
|
|
1903
1903
|
driverParam: string;
|
|
1904
1904
|
notNull: true;
|
|
1905
1905
|
hasDefault: false;
|
|
@@ -1911,7 +1911,7 @@ export declare const schema: {
|
|
|
1911
1911
|
identity: undefined;
|
|
1912
1912
|
generated: undefined;
|
|
1913
1913
|
}, {}, {
|
|
1914
|
-
$type: "
|
|
1914
|
+
$type: "agent" | "checkout" | "run" | "setup";
|
|
1915
1915
|
}>;
|
|
1916
1916
|
config: import("drizzle-orm/pg-core").PgColumn<{
|
|
1917
1917
|
name: "config";
|
|
@@ -2094,7 +2094,7 @@ export declare const schema: {
|
|
|
2094
2094
|
generated: undefined;
|
|
2095
2095
|
}, {}, {}>;
|
|
2096
2096
|
};
|
|
2097
|
-
dialect:
|
|
2097
|
+
dialect: 'pg';
|
|
2098
2098
|
}>;
|
|
2099
2099
|
stepAttempts: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
2100
2100
|
name: "step_attempts";
|
|
@@ -2190,7 +2190,7 @@ export declare const schema: {
|
|
|
2190
2190
|
tableName: "step_attempts";
|
|
2191
2191
|
dataType: "string";
|
|
2192
2192
|
columnType: "PgEnumColumn";
|
|
2193
|
-
data: "
|
|
2193
|
+
data: "cancelled" | "failed" | "pending" | "running" | "skipped" | "succeeded";
|
|
2194
2194
|
driverParam: string;
|
|
2195
2195
|
notNull: true;
|
|
2196
2196
|
hasDefault: false;
|
|
@@ -2419,7 +2419,7 @@ export declare const schema: {
|
|
|
2419
2419
|
generated: undefined;
|
|
2420
2420
|
}, {}, {}>;
|
|
2421
2421
|
};
|
|
2422
|
-
dialect:
|
|
2422
|
+
dialect: 'pg';
|
|
2423
2423
|
}>;
|
|
2424
2424
|
workflowsOutbox: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
2425
2425
|
name: "outbox";
|
|
@@ -2613,7 +2613,7 @@ export declare const schema: {
|
|
|
2613
2613
|
generated: undefined;
|
|
2614
2614
|
}, {}, {}>;
|
|
2615
2615
|
};
|
|
2616
|
-
dialect:
|
|
2616
|
+
dialect: 'pg';
|
|
2617
2617
|
}>;
|
|
2618
2618
|
};
|
|
2619
2619
|
export declare function db(): NodePgDatabase<{
|
|
@@ -2745,7 +2745,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
2745
2745
|
tableName: "workflow_runs";
|
|
2746
2746
|
dataType: "string";
|
|
2747
2747
|
columnType: "PgEnumColumn";
|
|
2748
|
-
data: "
|
|
2748
|
+
data: "cancelled" | "failed" | "pending" | "running" | "succeeded";
|
|
2749
2749
|
driverParam: string;
|
|
2750
2750
|
notNull: true;
|
|
2751
2751
|
hasDefault: true;
|
|
@@ -3021,7 +3021,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
3021
3021
|
generated: undefined;
|
|
3022
3022
|
}, {}, {}>;
|
|
3023
3023
|
};
|
|
3024
|
-
dialect:
|
|
3024
|
+
dialect: 'pg';
|
|
3025
3025
|
}>;
|
|
3026
3026
|
workflowRunAttempts: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
3027
3027
|
name: "workflow_run_attempts";
|
|
@@ -3083,7 +3083,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
3083
3083
|
tableName: "workflow_run_attempts";
|
|
3084
3084
|
dataType: "string";
|
|
3085
3085
|
columnType: "PgEnumColumn";
|
|
3086
|
-
data: "
|
|
3086
|
+
data: "cancelled" | "failed" | "pending" | "running" | "succeeded";
|
|
3087
3087
|
driverParam: string;
|
|
3088
3088
|
notNull: true;
|
|
3089
3089
|
hasDefault: true;
|
|
@@ -3100,7 +3100,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
3100
3100
|
tableName: "workflow_run_attempts";
|
|
3101
3101
|
dataType: "string";
|
|
3102
3102
|
columnType: "PgEnumColumn";
|
|
3103
|
-
data: "
|
|
3103
|
+
data: "all" | "failed";
|
|
3104
3104
|
driverParam: string;
|
|
3105
3105
|
notNull: false;
|
|
3106
3106
|
hasDefault: false;
|
|
@@ -3278,7 +3278,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
3278
3278
|
generated: undefined;
|
|
3279
3279
|
}, {}, {}>;
|
|
3280
3280
|
};
|
|
3281
|
-
dialect:
|
|
3281
|
+
dialect: 'pg';
|
|
3282
3282
|
}>;
|
|
3283
3283
|
workflowRunCounters: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
3284
3284
|
name: "workflow_run_counters";
|
|
@@ -3319,7 +3319,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
3319
3319
|
generated: undefined;
|
|
3320
3320
|
}, {}, {}>;
|
|
3321
3321
|
};
|
|
3322
|
-
dialect:
|
|
3322
|
+
dialect: 'pg';
|
|
3323
3323
|
}>;
|
|
3324
3324
|
jobs: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
3325
3325
|
name: "jobs";
|
|
@@ -3381,7 +3381,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
3381
3381
|
tableName: "jobs";
|
|
3382
3382
|
dataType: "string";
|
|
3383
3383
|
columnType: "PgEnumColumn";
|
|
3384
|
-
data: "
|
|
3384
|
+
data: "listening" | "one_shot";
|
|
3385
3385
|
driverParam: string;
|
|
3386
3386
|
notNull: true;
|
|
3387
3387
|
hasDefault: true;
|
|
@@ -3415,7 +3415,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
3415
3415
|
tableName: "jobs";
|
|
3416
3416
|
dataType: "string";
|
|
3417
3417
|
columnType: "PgEnumColumn";
|
|
3418
|
-
data: "
|
|
3418
|
+
data: "cancelled" | "failed" | "pending" | "running" | "skipped" | "succeeded";
|
|
3419
3419
|
driverParam: string;
|
|
3420
3420
|
notNull: true;
|
|
3421
3421
|
hasDefault: true;
|
|
@@ -3432,7 +3432,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
3432
3432
|
tableName: "jobs";
|
|
3433
3433
|
dataType: "string";
|
|
3434
3434
|
columnType: "PgEnumColumn";
|
|
3435
|
-
data: "
|
|
3435
|
+
data: "condition_errored" | "condition_false" | "condition_rejected" | "default_gate_rejected" | "dependency_not_completed" | "run_cancelled" | "runner_lost" | "step_failed" | "timed_out" | "unknown" | "user_cancelled";
|
|
3436
3436
|
driverParam: string;
|
|
3437
3437
|
notNull: false;
|
|
3438
3438
|
hasDefault: false;
|
|
@@ -3587,7 +3587,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
3587
3587
|
tableName: "jobs";
|
|
3588
3588
|
dataType: "string";
|
|
3589
3589
|
columnType: "PgEnumColumn";
|
|
3590
|
-
data: "
|
|
3590
|
+
data: "cancel" | "finish";
|
|
3591
3591
|
driverParam: string;
|
|
3592
3592
|
notNull: false;
|
|
3593
3593
|
hasDefault: false;
|
|
@@ -3655,7 +3655,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
3655
3655
|
tableName: "jobs";
|
|
3656
3656
|
dataType: "string";
|
|
3657
3657
|
columnType: "PgEnumColumn";
|
|
3658
|
-
data: "
|
|
3658
|
+
data: "inactive" | "listening" | "resolved";
|
|
3659
3659
|
driverParam: string;
|
|
3660
3660
|
notNull: true;
|
|
3661
3661
|
hasDefault: true;
|
|
@@ -3672,7 +3672,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
3672
3672
|
tableName: "jobs";
|
|
3673
3673
|
dataType: "string";
|
|
3674
3674
|
columnType: "PgEnumColumn";
|
|
3675
|
-
data: "cancelled" | "
|
|
3675
|
+
data: "cancelled" | "max_executions" | "timeout" | "until";
|
|
3676
3676
|
driverParam: string;
|
|
3677
3677
|
notNull: false;
|
|
3678
3678
|
hasDefault: false;
|
|
@@ -3848,7 +3848,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
3848
3848
|
generated: undefined;
|
|
3849
3849
|
}, {}, {}>;
|
|
3850
3850
|
};
|
|
3851
|
-
dialect:
|
|
3851
|
+
dialect: 'pg';
|
|
3852
3852
|
}>;
|
|
3853
3853
|
jobExecutions: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
3854
3854
|
name: "job_executions";
|
|
@@ -3946,7 +3946,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
3946
3946
|
tableName: "job_executions";
|
|
3947
3947
|
dataType: "string";
|
|
3948
3948
|
columnType: "PgEnumColumn";
|
|
3949
|
-
data: "
|
|
3949
|
+
data: "cancelled" | "failed" | "pending" | "running" | "succeeded";
|
|
3950
3950
|
driverParam: string;
|
|
3951
3951
|
notNull: true;
|
|
3952
3952
|
hasDefault: true;
|
|
@@ -3963,7 +3963,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
3963
3963
|
tableName: "job_executions";
|
|
3964
3964
|
dataType: "string";
|
|
3965
3965
|
columnType: "PgEnumColumn";
|
|
3966
|
-
data: "
|
|
3966
|
+
data: "condition_errored" | "condition_false" | "condition_rejected" | "default_gate_rejected" | "dependency_not_completed" | "run_cancelled" | "runner_lost" | "step_failed" | "timed_out" | "unknown" | "user_cancelled";
|
|
3967
3967
|
driverParam: string;
|
|
3968
3968
|
notNull: false;
|
|
3969
3969
|
hasDefault: false;
|
|
@@ -4152,7 +4152,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
4152
4152
|
generated: undefined;
|
|
4153
4153
|
}, {}, {}>;
|
|
4154
4154
|
};
|
|
4155
|
-
dialect:
|
|
4155
|
+
dialect: 'pg';
|
|
4156
4156
|
}>;
|
|
4157
4157
|
jobListenerEvents: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
4158
4158
|
name: "job_listener_events";
|
|
@@ -4365,7 +4365,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
4365
4365
|
generated: undefined;
|
|
4366
4366
|
}, {}, {}>;
|
|
4367
4367
|
};
|
|
4368
|
-
dialect:
|
|
4368
|
+
dialect: 'pg';
|
|
4369
4369
|
}>;
|
|
4370
4370
|
steps: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
4371
4371
|
name: "steps";
|
|
@@ -4463,7 +4463,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
4463
4463
|
tableName: "steps";
|
|
4464
4464
|
dataType: "string";
|
|
4465
4465
|
columnType: "PgEnumColumn";
|
|
4466
|
-
data: "
|
|
4466
|
+
data: "cancelled" | "failed" | "pending" | "running" | "skipped" | "succeeded";
|
|
4467
4467
|
driverParam: string;
|
|
4468
4468
|
notNull: true;
|
|
4469
4469
|
hasDefault: true;
|
|
@@ -4480,7 +4480,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
4480
4480
|
tableName: "steps";
|
|
4481
4481
|
dataType: "string";
|
|
4482
4482
|
columnType: "PgEnumColumn";
|
|
4483
|
-
data: "
|
|
4483
|
+
data: "condition_errored" | "condition_rejected" | "default_gate_rejected";
|
|
4484
4484
|
driverParam: string;
|
|
4485
4485
|
notNull: false;
|
|
4486
4486
|
hasDefault: false;
|
|
@@ -4516,7 +4516,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
4516
4516
|
tableName: "steps";
|
|
4517
4517
|
dataType: "string";
|
|
4518
4518
|
columnType: "PgText";
|
|
4519
|
-
data: "
|
|
4519
|
+
data: "agent" | "checkout" | "run" | "setup";
|
|
4520
4520
|
driverParam: string;
|
|
4521
4521
|
notNull: true;
|
|
4522
4522
|
hasDefault: false;
|
|
@@ -4528,7 +4528,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
4528
4528
|
identity: undefined;
|
|
4529
4529
|
generated: undefined;
|
|
4530
4530
|
}, {}, {
|
|
4531
|
-
$type: "
|
|
4531
|
+
$type: "agent" | "checkout" | "run" | "setup";
|
|
4532
4532
|
}>;
|
|
4533
4533
|
config: import("drizzle-orm/pg-core").PgColumn<{
|
|
4534
4534
|
name: "config";
|
|
@@ -4711,7 +4711,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
4711
4711
|
generated: undefined;
|
|
4712
4712
|
}, {}, {}>;
|
|
4713
4713
|
};
|
|
4714
|
-
dialect:
|
|
4714
|
+
dialect: 'pg';
|
|
4715
4715
|
}>;
|
|
4716
4716
|
stepAttempts: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
4717
4717
|
name: "step_attempts";
|
|
@@ -4807,7 +4807,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
4807
4807
|
tableName: "step_attempts";
|
|
4808
4808
|
dataType: "string";
|
|
4809
4809
|
columnType: "PgEnumColumn";
|
|
4810
|
-
data: "
|
|
4810
|
+
data: "cancelled" | "failed" | "pending" | "running" | "skipped" | "succeeded";
|
|
4811
4811
|
driverParam: string;
|
|
4812
4812
|
notNull: true;
|
|
4813
4813
|
hasDefault: false;
|
|
@@ -5036,7 +5036,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
5036
5036
|
generated: undefined;
|
|
5037
5037
|
}, {}, {}>;
|
|
5038
5038
|
};
|
|
5039
|
-
dialect:
|
|
5039
|
+
dialect: 'pg';
|
|
5040
5040
|
}>;
|
|
5041
5041
|
workflowsOutbox: import("drizzle-orm/pg-core").PgTableWithColumns<{
|
|
5042
5042
|
name: "outbox";
|
|
@@ -5230,7 +5230,7 @@ export declare function db(): NodePgDatabase<{
|
|
|
5230
5230
|
generated: undefined;
|
|
5231
5231
|
}, {}, {}>;
|
|
5232
5232
|
};
|
|
5233
|
-
dialect:
|
|
5233
|
+
dialect: 'pg';
|
|
5234
5234
|
}>;
|
|
5235
5235
|
}>;
|
|
5236
5236
|
export declare function closeDb(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job-listeners.d.ts","sourceRoot":"","sources":["../../src/db/job-listeners.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAEhF,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,gDAAgD,CAAC;AAC7F,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AACjF,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,uCAAuC,CAAC;AAMpF,OAAO,EAAC,KAAK,qBAAqB,EAA8B,MAAM,yBAAyB,CAAC;AAEhG,OAAO,EAAgB,KAAK,SAAS,EAAE,KAAK,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAC3F,OAAO,KAAK,EAEV,kBAAkB,EAEnB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"job-listeners.d.ts","sourceRoot":"","sources":["../../src/db/job-listeners.ts"],"names":[],"mappings":"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"}
|
package/dist/db/job-listeners.js
CHANGED
|
@@ -8,7 +8,7 @@ import { normalizeWorkflowExecutionEvent } from '#core/entities/job-execution.js
|
|
|
8
8
|
import { InterpolationUnresolvableError } from '#core/errors.js';
|
|
9
9
|
import { deriveJobSuccess } from '#core/job-transition/index.js';
|
|
10
10
|
import { materializeListenerExecution } from '#core/listener-execution-materialization.js';
|
|
11
|
-
import { applyListenerFilterSnapshots, assembleListenerSnapshotContext, planListenerFilterSnapshots } from '#core/step-config/assemble-run-context.js';
|
|
11
|
+
import { applyListenerFilterSnapshots, assembleListenerSnapshotContext, listenerFilterOutputTypesForJobs, planListenerFilterSnapshots } from '#core/step-config/assemble-run-context.js';
|
|
12
12
|
import { recordListenerEventsCoalesced, recordWorkflowJobExecutionStatusChanged, recordWorkflowListenerResolved } from '#metrics/instance.js';
|
|
13
13
|
import { db } from './db.js';
|
|
14
14
|
import { writeWorkflowsOutboxEvent } from './outbox-writes.js';
|
|
@@ -25,8 +25,8 @@ const TERMINAL_EXECUTION_STATUSES = [
|
|
|
25
25
|
'cancelled'
|
|
26
26
|
];
|
|
27
27
|
const MAX_LISTENER_RESOLUTION_ATTEMPTS = 3;
|
|
28
|
-
function applyActivatedListenerFilterSnapshots(plans, context) {
|
|
29
|
-
return applyListenerFilterSnapshots(plans, context);
|
|
28
|
+
function applyActivatedListenerFilterSnapshots(plans, context, outputTypes) {
|
|
29
|
+
return applyListenerFilterSnapshots(plans, context, outputTypes);
|
|
30
30
|
}
|
|
31
31
|
export async function activateJobListener(params) {
|
|
32
32
|
return await db().transaction(async (tx)=>{
|
|
@@ -91,6 +91,7 @@ export async function activateJobListener(params) {
|
|
|
91
91
|
plan: snapshotPlan,
|
|
92
92
|
dependencyJobs
|
|
93
93
|
});
|
|
94
|
+
const listenerOutputTypes = listenerFilterOutputTypesForJobs(dependencyJobs);
|
|
94
95
|
await writeWorkflowsOutboxEvent(tx, {
|
|
95
96
|
type: WORKFLOWS_JOB_ACTIVATED,
|
|
96
97
|
payload: {
|
|
@@ -98,8 +99,8 @@ export async function activateJobListener(params) {
|
|
|
98
99
|
workflowRunId: target.run.id,
|
|
99
100
|
workspaceId: target.run.workspaceId,
|
|
100
101
|
mode: 'listening',
|
|
101
|
-
on: applyActivatedListenerFilterSnapshots(snapshotPlan.on, snapshotContext),
|
|
102
|
-
until: matchers.until === null ? null : applyActivatedListenerFilterSnapshots(snapshotPlan.until, snapshotContext)
|
|
102
|
+
on: applyActivatedListenerFilterSnapshots(snapshotPlan.on, snapshotContext, listenerOutputTypes),
|
|
103
|
+
until: matchers.until === null ? null : applyActivatedListenerFilterSnapshots(snapshotPlan.until, snapshotContext, listenerOutputTypes)
|
|
103
104
|
}
|
|
104
105
|
});
|
|
105
106
|
}
|