@shipfox/api-workflows 12.7.0 → 13.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/.turbo/turbo-build.log +8 -8
- package/CHANGELOG.md +9 -0
- package/dist/db/index.d.ts +1 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +1 -1
- package/dist/db/index.js.map +1 -1
- package/dist/db/job-listeners.d.ts.map +1 -1
- package/dist/db/job-listeners.js +17 -1
- package/dist/db/job-listeners.js.map +1 -1
- package/dist/db/workflow-runs/job-executions.d.ts +2 -3
- package/dist/db/workflow-runs/job-executions.d.ts.map +1 -1
- package/dist/db/workflow-runs/job-executions.js +48 -20
- package/dist/db/workflow-runs/job-executions.js.map +1 -1
- package/dist/db/workflow-runs/outbox.d.ts +15 -0
- package/dist/db/workflow-runs/outbox.d.ts.map +1 -1
- package/dist/db/workflow-runs/outbox.js +35 -1
- package/dist/db/workflow-runs/outbox.js.map +1 -1
- package/dist/db/workflow-runs/run-graph.d.ts.map +1 -1
- package/dist/db/workflow-runs/run-graph.js +12 -0
- package/dist/db/workflow-runs/run-graph.js.map +1 -1
- package/dist/db/workflow-runs/run-status.d.ts.map +1 -1
- package/dist/db/workflow-runs/run-status.js +13 -1
- package/dist/db/workflow-runs/run-status.js.map +1 -1
- package/dist/db/workflow-runs.d.ts +2 -2
- package/dist/db/workflow-runs.d.ts.map +1 -1
- package/dist/db/workflow-runs.js +2 -2
- package/dist/db/workflow-runs.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -4
- package/dist/index.js.map +1 -1
- package/dist/presentation/index.d.ts +1 -1
- package/dist/presentation/index.d.ts.map +1 -1
- package/dist/presentation/index.js +1 -1
- package/dist/presentation/index.js.map +1 -1
- package/dist/presentation/subscribers/index.d.ts +0 -1
- package/dist/presentation/subscribers/index.d.ts.map +1 -1
- package/dist/presentation/subscribers/index.js +0 -1
- package/dist/presentation/subscribers/index.js.map +1 -1
- package/dist/temporal/activities/index.d.ts +2 -18
- package/dist/temporal/activities/index.d.ts.map +1 -1
- package/dist/temporal/activities/index.js +3 -5
- package/dist/temporal/activities/index.js.map +1 -1
- package/dist/temporal/activities/orchestration-activities.d.ts +5 -14
- package/dist/temporal/activities/orchestration-activities.d.ts.map +1 -1
- package/dist/temporal/activities/orchestration-activities.js +13 -34
- package/dist/temporal/activities/orchestration-activities.js.map +1 -1
- package/dist/temporal/workflows/index.bundle.js +20 -68
- package/dist/temporal/workflows/job-execution-orchestration.d.ts +0 -3
- package/dist/temporal/workflows/job-execution-orchestration.d.ts.map +1 -1
- package/dist/temporal/workflows/job-execution-orchestration.js +17 -41
- package/dist/temporal/workflows/job-execution-orchestration.js.map +1 -1
- package/dist/temporal/workflows/job-listener-orchestration.d.ts +0 -3
- package/dist/temporal/workflows/job-listener-orchestration.d.ts.map +1 -1
- package/dist/temporal/workflows/job-listener-orchestration.js +1 -9
- package/dist/temporal/workflows/job-listener-orchestration.js.map +1 -1
- package/dist/temporal/workflows/run-orchestration.d.ts.map +1 -1
- package/dist/temporal/workflows/run-orchestration.js +2 -18
- package/dist/temporal/workflows/run-orchestration.js.map +1 -1
- package/dist/temporal/workflows/test-env.d.ts +4 -6
- package/dist/temporal/workflows/test-env.d.ts.map +1 -1
- package/dist/temporal/workflows/test-env.js +13 -24
- package/dist/temporal/workflows/test-env.js.map +1 -1
- package/dist/tsconfig.test.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/db/index.ts +1 -1
- package/src/db/job-listeners.test.ts +21 -0
- package/src/db/job-listeners.ts +18 -0
- package/src/db/workflow-runs/job-executions.test.ts +110 -12
- package/src/db/workflow-runs/job-executions.ts +54 -29
- package/src/db/workflow-runs/outbox.ts +63 -0
- package/src/db/workflow-runs/run-graph.ts +17 -0
- package/src/db/workflow-runs/run-status.test.ts +13 -0
- package/src/db/workflow-runs/run-status.ts +15 -1
- package/src/db/workflow-runs.ts +3 -1
- package/src/index.ts +1 -5
- package/src/presentation/index.ts +0 -1
- package/src/presentation/subscribers/index.ts +0 -1
- package/src/temporal/activities/index.ts +2 -8
- package/src/temporal/activities/orchestration-activities.test.ts +17 -1
- package/src/temporal/activities/orchestration-activities.ts +13 -46
- package/src/temporal/workflows/job-execution-orchestration.test.ts +6 -25
- package/src/temporal/workflows/job-execution-orchestration.ts +17 -43
- package/src/temporal/workflows/job-listener-orchestration-continuation.test.ts +0 -3
- package/src/temporal/workflows/job-listener-orchestration.test.ts +9 -12
- package/src/temporal/workflows/job-listener-orchestration.ts +0 -8
- package/src/temporal/workflows/run-orchestration.test.ts +22 -33
- package/src/temporal/workflows/run-orchestration.ts +4 -28
- package/src/temporal/workflows/test-env.ts +14 -34
- package/test/fixtures/runners-inter-module.ts +0 -3
- package/test/helpers/workflow-runs.ts +25 -0
- package/tsconfig.build.tsbuildinfo +1 -1
- package/dist/presentation/subscribers/on-runner-job-queued.d.ts +0 -3
- package/dist/presentation/subscribers/on-runner-job-queued.d.ts.map +0 -1
- package/dist/presentation/subscribers/on-runner-job-queued.js +0 -20
- package/dist/presentation/subscribers/on-runner-job-queued.js.map +0 -1
- package/src/presentation/subscribers/on-runner-job-queued.test.ts +0 -57
- package/src/presentation/subscribers/on-runner-job-queued.ts +0 -23
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,4BAA4B,EAAC,MAAM,uCAAuC,CAAC;AACxF,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,EAAC,4BAA4B,EAAC,MAAM,2CAA2C,CAAC;AAC5F,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,gDAAgD,CAAC;AAC7F,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,4BAA4B,EAAC,MAAM,uCAAuC,CAAC;AACxF,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,EAAC,4BAA4B,EAAC,MAAM,2CAA2C,CAAC;AAC5F,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,gDAAgD,CAAC;AAC7F,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAMjF,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,uCAAuC,CAAC;AACpF,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,uCAAuC,CAAC;AAWpF,OAAO,KAAK,EAAC,2BAA2B,EAAC,MAAM,0CAA0C,CAAC;AAC1F,OAAO,EAAC,KAAK,aAAa,EAAoB,MAAM,sBAAsB,CAAC;AAiB3E,YAAY,EACV,GAAG,EACH,gBAAgB,EAChB,2BAA2B,EAC3B,iBAAiB,EACjB,IAAI,EACJ,cAAc,EACd,WAAW,EACX,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,2BAA2B,EAC3B,oBAAoB,EACpB,WAAW,EACX,8BAA8B,GAC/B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,OAAO,EACP,KAAK,4BAA4B,EACjC,KAAK,4BAA4B,EACjC,EAAE,EACF,sBAAsB,EACtB,WAAW,EACX,0BAA0B,EAC1B,cAAc,EACd,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,qBAAqB,EAAC,MAAM,qCAAqC,CAAC;AAO1E,wBAAgB,qBAAqB,CAAC,EACpC,KAAK,EACL,WAAW,EACX,WAAW,EACX,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,OAAO,EACP,OAAO,EACP,UAAU,GACX,EAAE;IACD,KAAK,EAAE,sBAAsB,CAAC;IAC9B,WAAW,EAAE,4BAA4B,CAAC;IAC1C,WAAW,EAAE,4BAA4B,CAAC;IAC1C,IAAI,EAAE,qBAAqB,CAAC;IAC5B,YAAY,EAAE,wBAAwB,CAAC;IACvC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,wBAAwB,CAAC;IAClC,OAAO,EAAE,wBAAwB,CAAC;IAClC,UAAU,EAAE,2BAA2B,CAAC;CACzC,GAAG,aAAa,CAmDhB"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { dirname, resolve } from 'node:path';
|
|
2
2
|
import { fileURLToPath } from 'node:url';
|
|
3
|
-
import { RUNNER_JOB_CLAIMED, RUNNER_JOB_LEASE_EXPIRED
|
|
3
|
+
import { RUNNER_JOB_CLAIMED, RUNNER_JOB_LEASE_EXPIRED } from '@shipfox/api-runners-dto';
|
|
4
4
|
import { WORKFLOWS_JOB_EVENT_DELIVERED, WORKFLOWS_JOB_STEPS_SETTLED, WORKFLOWS_JOB_TERMINATED, WORKFLOWS_STEP_ATTEMPT_TERMINATED, WORKFLOWS_WORKFLOW_RUN_ATTEMPT_CREATED, WORKFLOWS_WORKFLOW_RUN_CANCELLED, workflowsEventSchemas } from '@shipfox/api-workflows-dto';
|
|
5
5
|
import { subscriberFactory } from '@shipfox/node-module';
|
|
6
6
|
import { db, migrationsPath, workflowsOutbox } from '#db/index.js';
|
|
7
7
|
import { registerWorkflowsServiceMetrics } from '#metrics/index.js';
|
|
8
|
-
import { createWorkflowRoutes, onJobEventDelivered, onJobStepsSettled, onJobTerminatedFailureAnnotation, onRunnerJobClaimed, onRunnerJobLeaseExpired,
|
|
8
|
+
import { createWorkflowRoutes, onJobEventDelivered, onJobStepsSettled, onJobTerminatedFailureAnnotation, onRunnerJobClaimed, onRunnerJobLeaseExpired, onStepAttemptTerminatedFailureAnnotation, onWorkflowRunAttemptCreated, onWorkflowRunCancelled } from '#presentation/index.js';
|
|
9
9
|
import { createWorkflowsInterModulePresentation } from '#presentation/inter-module.js';
|
|
10
10
|
import { createOrchestrationActivities, WORKFLOWS_TASK_QUEUE } from '#temporal/index.js';
|
|
11
11
|
export { DefinitionNotFoundError, InterpolationUnresolvableError, isPermanentRunWorkflowError, ProjectMismatchError, runWorkflow, WorkflowRunNotCancellableError } from '#core/index.js';
|
|
@@ -49,7 +49,6 @@ export function createWorkflowsModule({ agent, definitions, annotations, auth, i
|
|
|
49
49
|
subscriber(WORKFLOWS_STEP_ATTEMPT_TERMINATED, onStepAttemptTerminatedFailureAnnotation(annotations)),
|
|
50
50
|
subscriber(WORKFLOWS_JOB_TERMINATED, onJobTerminatedFailureAnnotation(annotations)),
|
|
51
51
|
subscriber(RUNNER_JOB_LEASE_EXPIRED, onRunnerJobLeaseExpired),
|
|
52
|
-
subscriber(RUNNER_JOB_QUEUED, onRunnerJobQueued),
|
|
53
52
|
subscriber(RUNNER_JOB_CLAIMED, onRunnerJobClaimed)
|
|
54
53
|
],
|
|
55
54
|
workers: [
|
|
@@ -60,7 +59,6 @@ export function createWorkflowsModule({ agent, definitions, annotations, auth, i
|
|
|
60
59
|
agent,
|
|
61
60
|
integrations,
|
|
62
61
|
projects,
|
|
63
|
-
runners,
|
|
64
62
|
secrets
|
|
65
63
|
}),
|
|
66
64
|
workflows: []
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {dirname, resolve} from 'node:path';\nimport {fileURLToPath} from 'node:url';\nimport type {AnnotationsInterModuleClient} from '@shipfox/annotations-dto/inter-module';\nimport type {AgentInterModuleClient} from '@shipfox/api-agent-dto/inter-module';\nimport type {AuthInterModuleClient} from '@shipfox/api-auth-dto/inter-module';\nimport type {DefinitionsInterModuleClient} from '@shipfox/api-definitions-dto/inter-module';\nimport type {IntegrationsModuleClient} from '@shipfox/api-integration-core-dto/inter-module';\nimport type {ProjectsModuleClient} from '@shipfox/api-projects-dto/inter-module';\nimport {\n RUNNER_JOB_CLAIMED,\n RUNNER_JOB_LEASE_EXPIRED,\n
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import {dirname, resolve} from 'node:path';\nimport {fileURLToPath} from 'node:url';\nimport type {AnnotationsInterModuleClient} from '@shipfox/annotations-dto/inter-module';\nimport type {AgentInterModuleClient} from '@shipfox/api-agent-dto/inter-module';\nimport type {AuthInterModuleClient} from '@shipfox/api-auth-dto/inter-module';\nimport type {DefinitionsInterModuleClient} from '@shipfox/api-definitions-dto/inter-module';\nimport type {IntegrationsModuleClient} from '@shipfox/api-integration-core-dto/inter-module';\nimport type {ProjectsModuleClient} from '@shipfox/api-projects-dto/inter-module';\nimport {\n RUNNER_JOB_CLAIMED,\n RUNNER_JOB_LEASE_EXPIRED,\n type RunnersEventMap,\n} from '@shipfox/api-runners-dto';\nimport type {RunnersInterModuleClient} from '@shipfox/api-runners-dto/inter-module';\nimport type {SecretsInterModuleClient} from '@shipfox/api-secrets-dto/inter-module';\nimport {\n WORKFLOWS_JOB_EVENT_DELIVERED,\n WORKFLOWS_JOB_STEPS_SETTLED,\n WORKFLOWS_JOB_TERMINATED,\n WORKFLOWS_STEP_ATTEMPT_TERMINATED,\n WORKFLOWS_WORKFLOW_RUN_ATTEMPT_CREATED,\n WORKFLOWS_WORKFLOW_RUN_CANCELLED,\n type WorkflowsEventMapDto,\n workflowsEventSchemas,\n} from '@shipfox/api-workflows-dto';\nimport type {WorkspacesInterModuleClient} from '@shipfox/api-workspaces-dto/inter-module';\nimport {type ShipfoxModule, subscriberFactory} from '@shipfox/node-module';\nimport {db, migrationsPath, workflowsOutbox} from '#db/index.js';\nimport {registerWorkflowsServiceMetrics} from '#metrics/index.js';\nimport {\n createWorkflowRoutes,\n onJobEventDelivered,\n onJobStepsSettled,\n onJobTerminatedFailureAnnotation,\n onRunnerJobClaimed,\n onRunnerJobLeaseExpired,\n onStepAttemptTerminatedFailureAnnotation,\n onWorkflowRunAttemptCreated,\n onWorkflowRunCancelled,\n} from '#presentation/index.js';\nimport {createWorkflowsInterModulePresentation} from '#presentation/inter-module.js';\nimport {createOrchestrationActivities, WORKFLOWS_TASK_QUEUE} from '#temporal/index.js';\n\nexport type {\n Job,\n JobListenerEvent,\n JobListenerEventDisposition,\n RunWorkflowParams,\n Step,\n TriggerPayload,\n WorkflowRun,\n WorkflowSourceSnapshot,\n} from '#core/index.js';\nexport {\n DefinitionNotFoundError,\n InterpolationUnresolvableError,\n isPermanentRunWorkflowError,\n ProjectMismatchError,\n runWorkflow,\n WorkflowRunNotCancellableError,\n} from '#core/index.js';\nexport {\n closeDb,\n type DeliverEventToListenerParams,\n type DeliverEventToListenerResult,\n db,\n deliverEventToListener,\n getStepById,\n getStepByIdForJobExecution,\n migrationsPath,\n workflowsOutbox,\n} from '#db/index.js';\nexport {loadRunningLeasedStep} from '#presentation/routes/leased-step.js';\n\nconst packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..');\nconst workflowsPath = resolve(packageRoot, 'dist/temporal/workflows/index.js');\n\nconst subscriber = subscriberFactory<WorkflowsEventMapDto & RunnersEventMap>();\n\nexport function createWorkflowsModule({\n agent,\n definitions,\n annotations,\n auth,\n integrations,\n projects,\n runners,\n secrets,\n workspaces,\n}: {\n agent: AgentInterModuleClient;\n definitions: DefinitionsInterModuleClient;\n annotations: AnnotationsInterModuleClient;\n auth: AuthInterModuleClient;\n integrations: IntegrationsModuleClient;\n projects: ProjectsModuleClient;\n runners: RunnersInterModuleClient;\n secrets: SecretsInterModuleClient;\n workspaces: WorkspacesInterModuleClient;\n}): ShipfoxModule {\n return {\n name: 'workflows',\n database: {db, migrationsPath, databaseNamespace: 'workflows'},\n routes: createWorkflowRoutes({\n agent,\n annotations,\n auth,\n integrations,\n projects,\n runners,\n secrets,\n workspaces,\n }),\n metrics: registerWorkflowsServiceMetrics,\n publishers: [\n {name: 'workflows', table: workflowsOutbox, db, eventSchemas: workflowsEventSchemas},\n ],\n subscribers: [\n subscriber(WORKFLOWS_WORKFLOW_RUN_ATTEMPT_CREATED, onWorkflowRunAttemptCreated),\n subscriber(WORKFLOWS_WORKFLOW_RUN_CANCELLED, onWorkflowRunCancelled),\n subscriber(WORKFLOWS_JOB_EVENT_DELIVERED, onJobEventDelivered),\n subscriber(WORKFLOWS_JOB_STEPS_SETTLED, onJobStepsSettled),\n subscriber(\n WORKFLOWS_STEP_ATTEMPT_TERMINATED,\n onStepAttemptTerminatedFailureAnnotation(annotations),\n ),\n subscriber(WORKFLOWS_JOB_TERMINATED, onJobTerminatedFailureAnnotation(annotations)),\n subscriber(RUNNER_JOB_LEASE_EXPIRED, onRunnerJobLeaseExpired),\n subscriber(RUNNER_JOB_CLAIMED, onRunnerJobClaimed),\n ],\n workers: [\n {\n taskQueue: WORKFLOWS_TASK_QUEUE,\n workflowsPath,\n activities: () => createOrchestrationActivities({agent, integrations, projects, secrets}),\n workflows: [],\n },\n ],\n interModulePresentations: [\n createWorkflowsInterModulePresentation({\n agent,\n definitions,\n integrations,\n projects,\n runners,\n secrets,\n workspaces,\n }),\n ],\n };\n}\n"],"names":["dirname","resolve","fileURLToPath","RUNNER_JOB_CLAIMED","RUNNER_JOB_LEASE_EXPIRED","WORKFLOWS_JOB_EVENT_DELIVERED","WORKFLOWS_JOB_STEPS_SETTLED","WORKFLOWS_JOB_TERMINATED","WORKFLOWS_STEP_ATTEMPT_TERMINATED","WORKFLOWS_WORKFLOW_RUN_ATTEMPT_CREATED","WORKFLOWS_WORKFLOW_RUN_CANCELLED","workflowsEventSchemas","subscriberFactory","db","migrationsPath","workflowsOutbox","registerWorkflowsServiceMetrics","createWorkflowRoutes","onJobEventDelivered","onJobStepsSettled","onJobTerminatedFailureAnnotation","onRunnerJobClaimed","onRunnerJobLeaseExpired","onStepAttemptTerminatedFailureAnnotation","onWorkflowRunAttemptCreated","onWorkflowRunCancelled","createWorkflowsInterModulePresentation","createOrchestrationActivities","WORKFLOWS_TASK_QUEUE","DefinitionNotFoundError","InterpolationUnresolvableError","isPermanentRunWorkflowError","ProjectMismatchError","runWorkflow","WorkflowRunNotCancellableError","closeDb","deliverEventToListener","getStepById","getStepByIdForJobExecution","loadRunningLeasedStep","packageRoot","url","workflowsPath","subscriber","createWorkflowsModule","agent","definitions","annotations","auth","integrations","projects","runners","secrets","workspaces","name","database","databaseNamespace","routes","metrics","publishers","table","eventSchemas","subscribers","workers","taskQueue","activities","workflows","interModulePresentations"],"mappings":"AAAA,SAAQA,OAAO,EAAEC,OAAO,QAAO,YAAY;AAC3C,SAAQC,aAAa,QAAO,WAAW;AAOvC,SACEC,kBAAkB,EAClBC,wBAAwB,QAEnB,2BAA2B;AAGlC,SACEC,6BAA6B,EAC7BC,2BAA2B,EAC3BC,wBAAwB,EACxBC,iCAAiC,EACjCC,sCAAsC,EACtCC,gCAAgC,EAEhCC,qBAAqB,QAChB,6BAA6B;AAEpC,SAA4BC,iBAAiB,QAAO,uBAAuB;AAC3E,SAAQC,EAAE,EAAEC,cAAc,EAAEC,eAAe,QAAO,eAAe;AACjE,SAAQC,+BAA+B,QAAO,oBAAoB;AAClE,SACEC,oBAAoB,EACpBC,mBAAmB,EACnBC,iBAAiB,EACjBC,gCAAgC,EAChCC,kBAAkB,EAClBC,uBAAuB,EACvBC,wCAAwC,EACxCC,2BAA2B,EAC3BC,sBAAsB,QACjB,yBAAyB;AAChC,SAAQC,sCAAsC,QAAO,gCAAgC;AACrF,SAAQC,6BAA6B,EAAEC,oBAAoB,QAAO,qBAAqB;AAYvF,SACEC,uBAAuB,EACvBC,8BAA8B,EAC9BC,2BAA2B,EAC3BC,oBAAoB,EACpBC,WAAW,EACXC,8BAA8B,QACzB,iBAAiB;AACxB,SACEC,OAAO,EAGPtB,EAAE,EACFuB,sBAAsB,EACtBC,WAAW,EACXC,0BAA0B,EAC1BxB,cAAc,EACdC,eAAe,QACV,eAAe;AACtB,SAAQwB,qBAAqB,QAAO,sCAAsC;AAE1E,MAAMC,cAAcvC,QAAQD,QAAQE,cAAc,YAAYuC,GAAG,IAAI;AACrE,MAAMC,gBAAgBzC,QAAQuC,aAAa;AAE3C,MAAMG,aAAa/B;AAEnB,OAAO,SAASgC,sBAAsB,EACpCC,KAAK,EACLC,WAAW,EACXC,WAAW,EACXC,IAAI,EACJC,YAAY,EACZC,QAAQ,EACRC,OAAO,EACPC,OAAO,EACPC,UAAU,EAWX;IACC,OAAO;QACLC,MAAM;QACNC,UAAU;YAAC1C;YAAIC;YAAgB0C,mBAAmB;QAAW;QAC7DC,QAAQxC,qBAAqB;YAC3B4B;YACAE;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;QACF;QACAK,SAAS1C;QACT2C,YAAY;YACV;gBAACL,MAAM;gBAAaM,OAAO7C;gBAAiBF;gBAAIgD,cAAclD;YAAqB;SACpF;QACDmD,aAAa;YACXnB,WAAWlC,wCAAwCe;YACnDmB,WAAWjC,kCAAkCe;YAC7CkB,WAAWtC,+BAA+Ba;YAC1CyB,WAAWrC,6BAA6Ba;YACxCwB,WACEnC,mCACAe,yCAAyCwB;YAE3CJ,WAAWpC,0BAA0Ba,iCAAiC2B;YACtEJ,WAAWvC,0BAA0BkB;YACrCqB,WAAWxC,oBAAoBkB;SAChC;QACD0C,SAAS;YACP;gBACEC,WAAWpC;gBACXc;gBACAuB,YAAY,IAAMtC,8BAA8B;wBAACkB;wBAAOI;wBAAcC;wBAAUE;oBAAO;gBACvFc,WAAW,EAAE;YACf;SACD;QACDC,0BAA0B;YACxBzC,uCAAuC;gBACrCmB;gBACAC;gBACAG;gBACAC;gBACAC;gBACAC;gBACAC;YACF;SACD;IACH;AACF"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { createWorkflowRoutes } from './routes/index.js';
|
|
2
|
-
export { onJobEventDelivered, onJobStepsSettled, onJobTerminatedFailureAnnotation, onRunnerJobClaimed, onRunnerJobLeaseExpired,
|
|
2
|
+
export { onJobEventDelivered, onJobStepsSettled, onJobTerminatedFailureAnnotation, onRunnerJobClaimed, onRunnerJobLeaseExpired, onStepAttemptTerminatedFailureAnnotation, onWorkflowRunAttemptCreated, onWorkflowRunCancelled, } from './subscribers/index.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/presentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AACvD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,gCAAgC,EAChC,kBAAkB,EAClB,uBAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/presentation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AACvD,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,gCAAgC,EAChC,kBAAkB,EAClB,uBAAuB,EACvB,wCAAwC,EACxC,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,wBAAwB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { createWorkflowRoutes } from './routes/index.js';
|
|
2
|
-
export { onJobEventDelivered, onJobStepsSettled, onJobTerminatedFailureAnnotation, onRunnerJobClaimed, onRunnerJobLeaseExpired,
|
|
2
|
+
export { onJobEventDelivered, onJobStepsSettled, onJobTerminatedFailureAnnotation, onRunnerJobClaimed, onRunnerJobLeaseExpired, onStepAttemptTerminatedFailureAnnotation, onWorkflowRunAttemptCreated, onWorkflowRunCancelled } from './subscribers/index.js';
|
|
3
3
|
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/presentation/index.ts"],"sourcesContent":["export {createWorkflowRoutes} from './routes/index.js';\nexport {\n onJobEventDelivered,\n onJobStepsSettled,\n onJobTerminatedFailureAnnotation,\n onRunnerJobClaimed,\n onRunnerJobLeaseExpired,\n
|
|
1
|
+
{"version":3,"sources":["../../src/presentation/index.ts"],"sourcesContent":["export {createWorkflowRoutes} from './routes/index.js';\nexport {\n onJobEventDelivered,\n onJobStepsSettled,\n onJobTerminatedFailureAnnotation,\n onRunnerJobClaimed,\n onRunnerJobLeaseExpired,\n onStepAttemptTerminatedFailureAnnotation,\n onWorkflowRunAttemptCreated,\n onWorkflowRunCancelled,\n} from './subscribers/index.js';\n"],"names":["createWorkflowRoutes","onJobEventDelivered","onJobStepsSettled","onJobTerminatedFailureAnnotation","onRunnerJobClaimed","onRunnerJobLeaseExpired","onStepAttemptTerminatedFailureAnnotation","onWorkflowRunAttemptCreated","onWorkflowRunCancelled"],"mappings":"AAAA,SAAQA,oBAAoB,QAAO,oBAAoB;AACvD,SACEC,mBAAmB,EACnBC,iBAAiB,EACjBC,gCAAgC,EAChCC,kBAAkB,EAClBC,uBAAuB,EACvBC,wCAAwC,EACxCC,2BAA2B,EAC3BC,sBAAsB,QACjB,yBAAyB"}
|
|
@@ -3,7 +3,6 @@ export { onJobEventDelivered } from './on-job-event-delivered.js';
|
|
|
3
3
|
export { onJobStepsSettled } from './on-job-steps-settled.js';
|
|
4
4
|
export { onRunnerJobClaimed } from './on-runner-job-claimed.js';
|
|
5
5
|
export { onRunnerJobLeaseExpired } from './on-runner-job-lease-expired.js';
|
|
6
|
-
export { onRunnerJobQueued } from './on-runner-job-queued.js';
|
|
7
6
|
export { onWorkflowRunAttemptCreated } from './on-workflow-run-attempt-created.js';
|
|
8
7
|
export { onWorkflowRunCancelled } from './on-workflow-run-cancelled.js';
|
|
9
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/presentation/subscribers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAChC,wCAAwC,GACzC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAC,uBAAuB,EAAC,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/presentation/subscribers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAChC,wCAAwC,GACzC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAC,mBAAmB,EAAC,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAC,iBAAiB,EAAC,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAC,kBAAkB,EAAC,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAC,uBAAuB,EAAC,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAC,2BAA2B,EAAC,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAC,sBAAsB,EAAC,MAAM,gCAAgC,CAAC"}
|
|
@@ -3,7 +3,6 @@ export { onJobEventDelivered } from './on-job-event-delivered.js';
|
|
|
3
3
|
export { onJobStepsSettled } from './on-job-steps-settled.js';
|
|
4
4
|
export { onRunnerJobClaimed } from './on-runner-job-claimed.js';
|
|
5
5
|
export { onRunnerJobLeaseExpired } from './on-runner-job-lease-expired.js';
|
|
6
|
-
export { onRunnerJobQueued } from './on-runner-job-queued.js';
|
|
7
6
|
export { onWorkflowRunAttemptCreated } from './on-workflow-run-attempt-created.js';
|
|
8
7
|
export { onWorkflowRunCancelled } from './on-workflow-run-cancelled.js';
|
|
9
8
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/presentation/subscribers/index.ts"],"sourcesContent":["export {\n onJobTerminatedFailureAnnotation,\n onStepAttemptTerminatedFailureAnnotation,\n} from './on-failure-annotations.js';\nexport {onJobEventDelivered} from './on-job-event-delivered.js';\nexport {onJobStepsSettled} from './on-job-steps-settled.js';\nexport {onRunnerJobClaimed} from './on-runner-job-claimed.js';\nexport {onRunnerJobLeaseExpired} from './on-runner-job-lease-expired.js';\nexport {
|
|
1
|
+
{"version":3,"sources":["../../../src/presentation/subscribers/index.ts"],"sourcesContent":["export {\n onJobTerminatedFailureAnnotation,\n onStepAttemptTerminatedFailureAnnotation,\n} from './on-failure-annotations.js';\nexport {onJobEventDelivered} from './on-job-event-delivered.js';\nexport {onJobStepsSettled} from './on-job-steps-settled.js';\nexport {onRunnerJobClaimed} from './on-runner-job-claimed.js';\nexport {onRunnerJobLeaseExpired} from './on-runner-job-lease-expired.js';\nexport {onWorkflowRunAttemptCreated} from './on-workflow-run-attempt-created.js';\nexport {onWorkflowRunCancelled} from './on-workflow-run-cancelled.js';\n"],"names":["onJobTerminatedFailureAnnotation","onStepAttemptTerminatedFailureAnnotation","onJobEventDelivered","onJobStepsSettled","onRunnerJobClaimed","onRunnerJobLeaseExpired","onWorkflowRunAttemptCreated","onWorkflowRunCancelled"],"mappings":"AAAA,SACEA,gCAAgC,EAChCC,wCAAwC,QACnC,8BAA8B;AACrC,SAAQC,mBAAmB,QAAO,8BAA8B;AAChE,SAAQC,iBAAiB,QAAO,4BAA4B;AAC5D,SAAQC,kBAAkB,QAAO,6BAA6B;AAC9D,SAAQC,uBAAuB,QAAO,mCAAmC;AACzE,SAAQC,2BAA2B,QAAO,uCAAuC;AACjF,SAAQC,sBAAsB,QAAO,iCAAiC"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import type { AgentInterModuleClient } from '@shipfox/api-agent-dto/inter-module';
|
|
2
2
|
import type { IntegrationsModuleClient } from '@shipfox/api-integration-core-dto/inter-module';
|
|
3
3
|
import type { ProjectsModuleClient } from '@shipfox/api-projects-dto/inter-module';
|
|
4
|
-
import type { RunnersInterModuleClient } from '@shipfox/api-runners-dto/inter-module';
|
|
5
4
|
import type { SecretsInterModuleClient } from '@shipfox/api-secrets-dto/inter-module';
|
|
6
|
-
import { activateJobListenerActivity, bulkSetStepStatuses, evaluateJobActivationsActivity, failJobExecutionAsTimedOutActivity, failRunAsTimedOutActivity, loadRunAttemptDag, peekListenerBufferActivity, recordListenerFiringOutcomeActivity, resolveJobListenerActivity, resolveJobStatusFromJobExecutionsActivity, resolveLeaseExpiredJobExecutionActivity, setJobExecutionStatus, setJobStatus, setRunAttemptStatus, settleListenerJobExecutionActivity } from './orchestration-activities.js';
|
|
5
|
+
import { activateJobListenerActivity, bulkSetStepStatuses, evaluateJobActivationsActivity, failJobExecutionAsTimedOutActivity, failRunAsTimedOutActivity, loadRunAttemptDag, peekListenerBufferActivity, queueJobExecutionActivity, recordListenerFiringOutcomeActivity, resolveJobListenerActivity, resolveJobStatusFromJobExecutionsActivity, resolveLeaseExpiredJobExecutionActivity, setJobExecutionStatus, setJobStatus, setRunAttemptStatus, settleListenerJobExecutionActivity } from './orchestration-activities.js';
|
|
7
6
|
export declare function createOrchestrationActivities(params: {
|
|
8
7
|
agent: AgentInterModuleClient;
|
|
9
8
|
integrations: IntegrationsModuleClient;
|
|
10
9
|
projects: ProjectsModuleClient;
|
|
11
|
-
runners: RunnersInterModuleClient;
|
|
12
10
|
secrets: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'>;
|
|
13
11
|
}): {
|
|
14
12
|
loadRunAttemptDag: typeof loadRunAttemptDag;
|
|
@@ -19,18 +17,7 @@ export declare function createOrchestrationActivities(params: {
|
|
|
19
17
|
status: Exclude<import("../../core/index.js").JobStatus, 'skipped'>;
|
|
20
18
|
}>;
|
|
21
19
|
bulkSetStepStatuses: typeof bulkSetStepStatuses;
|
|
22
|
-
|
|
23
|
-
jobIds: string[];
|
|
24
|
-
}) => Promise<void>;
|
|
25
|
-
enqueueJobExecutionForRunner: (params: {
|
|
26
|
-
workspaceId: string;
|
|
27
|
-
workflowRunId: string;
|
|
28
|
-
jobId: string;
|
|
29
|
-
jobExecutionId: string;
|
|
30
|
-
runAttemptId: string;
|
|
31
|
-
projectId: string;
|
|
32
|
-
requiredLabels: string[];
|
|
33
|
-
}) => Promise<void>;
|
|
20
|
+
queueJobExecutionActivity: typeof queueJobExecutionActivity;
|
|
34
21
|
evaluateJobActivationsActivity: typeof evaluateJobActivationsActivity;
|
|
35
22
|
failJobExecutionAsTimedOutActivity: (activityParams: Parameters<typeof failJobExecutionAsTimedOutActivity>[0]) => Promise<{
|
|
36
23
|
newVersion: number;
|
|
@@ -51,8 +38,5 @@ export declare function createOrchestrationActivities(params: {
|
|
|
51
38
|
executionVersion: number;
|
|
52
39
|
}>;
|
|
53
40
|
resolveJobStatusFromJobExecutionsActivity: typeof resolveJobStatusFromJobExecutionsActivity;
|
|
54
|
-
releaseLeaseActivity: (params: {
|
|
55
|
-
jobExecutionId: string;
|
|
56
|
-
}) => Promise<void>;
|
|
57
41
|
};
|
|
58
42
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/temporal/activities/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAChF,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;AACpF,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/temporal/activities/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAChF,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;AACpF,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EAEnB,8BAA8B,EAC9B,kCAAkC,EAClC,yBAAyB,EACzB,iBAAiB,EACjB,0BAA0B,EAC1B,yBAAyB,EACzB,mCAAmC,EACnC,0BAA0B,EAC1B,yCAAyC,EACzC,uCAAuC,EACvC,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,kCAAkC,EACnC,MAAM,+BAA+B,CAAC;AAEvC,wBAAgB,6BAA6B,CAAC,MAAM,EAAE;IACpD,KAAK,EAAE,sBAAsB,CAAC;IAC9B,YAAY,EAAE,wBAAwB,CAAC;IACvC,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,CAAC;CACpE;;;;4CAKiD,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC;;;;;;;yDAMvE,UAAU,CAAC,OAAO,kCAAkC,CAAC,CAAC,CAAC,CAAC;;;;;;;;;;;;;;8DAexD,UAAU,CAAC,OAAO,uCAAuC,CAAC,CAAC,CAAC,CAAC;;;;;EAIlF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { activateJobListenerActivity, bulkSetStepStatuses,
|
|
1
|
+
import { activateJobListenerActivity, bulkSetStepStatuses, createDrainListenerEventsActivity, evaluateJobActivationsActivity, failJobExecutionAsTimedOutActivity, failRunAsTimedOutActivity, loadRunAttemptDag, peekListenerBufferActivity, queueJobExecutionActivity, recordListenerFiringOutcomeActivity, resolveJobListenerActivity, resolveJobStatusFromJobExecutionsActivity, resolveLeaseExpiredJobExecutionActivity, setJobExecutionStatus, setJobStatus, setRunAttemptStatus, settleListenerJobExecutionActivity } from './orchestration-activities.js';
|
|
2
2
|
export function createOrchestrationActivities(params) {
|
|
3
3
|
return {
|
|
4
4
|
loadRunAttemptDag,
|
|
@@ -6,8 +6,7 @@ export function createOrchestrationActivities(params) {
|
|
|
6
6
|
setJobStatus,
|
|
7
7
|
setJobExecutionStatus: async (activityParams)=>await setJobExecutionStatus(activityParams, params.secrets),
|
|
8
8
|
bulkSetStepStatuses,
|
|
9
|
-
|
|
10
|
-
enqueueJobExecutionForRunner: createEnqueueJobExecutionForRunner(params.runners),
|
|
9
|
+
queueJobExecutionActivity,
|
|
11
10
|
evaluateJobActivationsActivity,
|
|
12
11
|
failJobExecutionAsTimedOutActivity: async (activityParams)=>await failJobExecutionAsTimedOutActivity(activityParams, params.secrets),
|
|
13
12
|
failRunAsTimedOutActivity,
|
|
@@ -23,8 +22,7 @@ export function createOrchestrationActivities(params) {
|
|
|
23
22
|
settleListenerJobExecutionActivity,
|
|
24
23
|
recordListenerFiringOutcomeActivity,
|
|
25
24
|
resolveLeaseExpiredJobExecutionActivity: async (activityParams)=>await resolveLeaseExpiredJobExecutionActivity(activityParams, params.secrets),
|
|
26
|
-
resolveJobStatusFromJobExecutionsActivity
|
|
27
|
-
releaseLeaseActivity: createReleaseLeaseActivity(params.runners)
|
|
25
|
+
resolveJobStatusFromJobExecutionsActivity
|
|
28
26
|
};
|
|
29
27
|
}
|
|
30
28
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/temporal/activities/index.ts"],"sourcesContent":["import type {AgentInterModuleClient} from '@shipfox/api-agent-dto/inter-module';\nimport type {IntegrationsModuleClient} from '@shipfox/api-integration-core-dto/inter-module';\nimport type {ProjectsModuleClient} from '@shipfox/api-projects-dto/inter-module';\nimport type {
|
|
1
|
+
{"version":3,"sources":["../../../src/temporal/activities/index.ts"],"sourcesContent":["import type {AgentInterModuleClient} from '@shipfox/api-agent-dto/inter-module';\nimport type {IntegrationsModuleClient} from '@shipfox/api-integration-core-dto/inter-module';\nimport type {ProjectsModuleClient} from '@shipfox/api-projects-dto/inter-module';\nimport type {SecretsInterModuleClient} from '@shipfox/api-secrets-dto/inter-module';\nimport {\n activateJobListenerActivity,\n bulkSetStepStatuses,\n createDrainListenerEventsActivity,\n evaluateJobActivationsActivity,\n failJobExecutionAsTimedOutActivity,\n failRunAsTimedOutActivity,\n loadRunAttemptDag,\n peekListenerBufferActivity,\n queueJobExecutionActivity,\n recordListenerFiringOutcomeActivity,\n resolveJobListenerActivity,\n resolveJobStatusFromJobExecutionsActivity,\n resolveLeaseExpiredJobExecutionActivity,\n setJobExecutionStatus,\n setJobStatus,\n setRunAttemptStatus,\n settleListenerJobExecutionActivity,\n} from './orchestration-activities.js';\n\nexport function createOrchestrationActivities(params: {\n agent: AgentInterModuleClient;\n integrations: IntegrationsModuleClient;\n projects: ProjectsModuleClient;\n secrets: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'>;\n}) {\n return {\n loadRunAttemptDag,\n setRunAttemptStatus,\n setJobStatus,\n setJobExecutionStatus: async (activityParams: Parameters<typeof setJobExecutionStatus>[0]) =>\n await setJobExecutionStatus(activityParams, params.secrets),\n bulkSetStepStatuses,\n queueJobExecutionActivity,\n evaluateJobActivationsActivity,\n failJobExecutionAsTimedOutActivity: async (\n activityParams: Parameters<typeof failJobExecutionAsTimedOutActivity>[0],\n ) => await failJobExecutionAsTimedOutActivity(activityParams, params.secrets),\n failRunAsTimedOutActivity,\n activateJobListenerActivity,\n drainListenerEventsActivity: createDrainListenerEventsActivity({\n agent: params.agent,\n integrations: params.integrations,\n projects: params.projects,\n secrets: params.secrets,\n }),\n peekListenerBufferActivity,\n resolveJobListenerActivity,\n settleListenerJobExecutionActivity,\n recordListenerFiringOutcomeActivity,\n resolveLeaseExpiredJobExecutionActivity: async (\n activityParams: Parameters<typeof resolveLeaseExpiredJobExecutionActivity>[0],\n ) => await resolveLeaseExpiredJobExecutionActivity(activityParams, params.secrets),\n resolveJobStatusFromJobExecutionsActivity,\n };\n}\n"],"names":["activateJobListenerActivity","bulkSetStepStatuses","createDrainListenerEventsActivity","evaluateJobActivationsActivity","failJobExecutionAsTimedOutActivity","failRunAsTimedOutActivity","loadRunAttemptDag","peekListenerBufferActivity","queueJobExecutionActivity","recordListenerFiringOutcomeActivity","resolveJobListenerActivity","resolveJobStatusFromJobExecutionsActivity","resolveLeaseExpiredJobExecutionActivity","setJobExecutionStatus","setJobStatus","setRunAttemptStatus","settleListenerJobExecutionActivity","createOrchestrationActivities","params","activityParams","secrets","drainListenerEventsActivity","agent","integrations","projects"],"mappings":"AAIA,SACEA,2BAA2B,EAC3BC,mBAAmB,EACnBC,iCAAiC,EACjCC,8BAA8B,EAC9BC,kCAAkC,EAClCC,yBAAyB,EACzBC,iBAAiB,EACjBC,0BAA0B,EAC1BC,yBAAyB,EACzBC,mCAAmC,EACnCC,0BAA0B,EAC1BC,yCAAyC,EACzCC,uCAAuC,EACvCC,qBAAqB,EACrBC,YAAY,EACZC,mBAAmB,EACnBC,kCAAkC,QAC7B,gCAAgC;AAEvC,OAAO,SAASC,8BAA8BC,MAK7C;IACC,OAAO;QACLZ;QACAS;QACAD;QACAD,uBAAuB,OAAOM,iBAC5B,MAAMN,sBAAsBM,gBAAgBD,OAAOE,OAAO;QAC5DnB;QACAO;QACAL;QACAC,oCAAoC,OAClCe,iBACG,MAAMf,mCAAmCe,gBAAgBD,OAAOE,OAAO;QAC5Ef;QACAL;QACAqB,6BAA6BnB,kCAAkC;YAC7DoB,OAAOJ,OAAOI,KAAK;YACnBC,cAAcL,OAAOK,YAAY;YACjCC,UAAUN,OAAOM,QAAQ;YACzBJ,SAASF,OAAOE,OAAO;QACzB;QACAb;QACAG;QACAM;QACAP;QACAG,yCAAyC,OACvCO,iBACG,MAAMP,wCAAwCO,gBAAgBD,OAAOE,OAAO;QACjFT;IACF;AACF"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { AgentInterModuleClient } from '@shipfox/api-agent-dto/inter-module';
|
|
2
2
|
import type { IntegrationsModuleClient } from '@shipfox/api-integration-core-dto/inter-module';
|
|
3
3
|
import type { ProjectsModuleClient } from '@shipfox/api-projects-dto/inter-module';
|
|
4
|
-
import { type RunnersInterModuleClient } from '@shipfox/api-runners-dto/inter-module';
|
|
5
4
|
import type { SecretsInterModuleClient } from '@shipfox/api-secrets-dto/inter-module';
|
|
6
5
|
import type { JobStatus, JobStatusReason, ResolutionReason } from '#core/entities/job.js';
|
|
7
6
|
import type { PersistedEvaluationTraceEntry, StepStatus } from '#core/entities/step.js';
|
|
@@ -75,21 +74,13 @@ export declare function resolveLeaseExpiredJobExecutionActivity(params: {
|
|
|
75
74
|
status: RuntimeCompletionStatus;
|
|
76
75
|
executionVersion: number;
|
|
77
76
|
}>;
|
|
78
|
-
export declare function
|
|
79
|
-
jobExecutionId: string;
|
|
80
|
-
}) => Promise<void>;
|
|
81
|
-
export declare function createEnqueueJobExecutionForRunner(runners: RunnersInterModuleClient): (params: {
|
|
82
|
-
workspaceId: string;
|
|
83
|
-
workflowRunId: string;
|
|
77
|
+
export declare function queueJobExecutionActivity(params: {
|
|
84
78
|
jobId: string;
|
|
85
79
|
jobExecutionId: string;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
export declare function createCancelRunnerJobsActivity(runners: RunnersInterModuleClient): (params: {
|
|
91
|
-
jobIds: string[];
|
|
92
|
-
}) => Promise<void>;
|
|
80
|
+
}): Promise<{
|
|
81
|
+
newVersion: number;
|
|
82
|
+
status: Exclude<JobStatus, 'skipped'>;
|
|
83
|
+
}>;
|
|
93
84
|
export declare function failJobExecutionAsTimedOutActivity(params: {
|
|
94
85
|
jobExecutionId: string;
|
|
95
86
|
runAttemptId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestration-activities.d.ts","sourceRoot":"","sources":["../../../src/temporal/activities/orchestration-activities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAChF,OAAO,KAAK,EAAC,wBAAwB,EAAC,MAAM,gDAAgD,CAAC;AAC7F,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AACjF,OAAO,
|
|
1
|
+
{"version":3,"file":"orchestration-activities.d.ts","sourceRoot":"","sources":["../../../src/temporal/activities/orchestration-activities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAChF,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;AAGpF,OAAO,KAAK,EAAC,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACxF,OAAO,KAAK,EAAC,6BAA6B,EAAE,UAAU,EAAC,MAAM,wBAAwB,CAAC;AACtF,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAC;AAEtE,OAAO,KAAK,EACV,uBAAuB,EACvB,cAAc,EACf,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAIL,KAAK,4BAA4B,EAQjC,KAAK,qBAAqB,EAU3B,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,MAAO,SAAQ,cAAc;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,UAAU,GAAG,WAAW,CAAC;IAC/B,MAAM,EAAE,SAAS,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/C,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/C,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;IACnD,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,wBAAsB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkD7E;AAED,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAElC;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAC,CAAC,CAO3D;AAED,wBAAsB,YAAY,CAAC,MAAM,EAAE;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC;IAClD,eAAe,CAAC,EAAE,SAAS,6BAA6B,EAAE,GAAG,IAAI,GAAG,SAAS,CAAC;CAC/E,GAAG,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAC,CAAC,CASnD;AAaD,wBAAsB,qBAAqB,CACzC,MAAM,EAAE;IACN,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC;CACnD,EACD,OAAO,CAAC,EAAE,IAAI,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,GAClE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;CAAC,CAAC,CAStE;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,QAAQ,GAAG,WAAW,CAAC,CAAC;CACrD,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhB;AAED,wBAAsB,uCAAuC,CAC3D,MAAM,EAAE;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAC,EACzD,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,GACjE,OAAO,CAAC;IAAC,MAAM,EAAE,uBAAuB,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAC,CAAC,CAStE;AAED,wBAAsB,yBAAyB,CAAC,MAAM,EAAE;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;CAAC,CAAC,CAUvE;AAED,wBAAsB,kCAAkC,CACtD,MAAM,EAAE;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAC,EAC/E,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,GACjE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAC,CAAC,CAQ/B;AAED,wBAAsB,yBAAyB,CAAC,MAAM,EAAE;IAAC,YAAY,EAAE,MAAM,CAAA;CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7F;AAED,wBAAsB,yCAAyC,CAAC,MAAM,EAAE;IACtE,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC;IAAC,MAAM,EAAE,uBAAuB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAC,CAAC,CAEjE;AAED,wBAAsB,2BAA2B,CAAC,MAAM,EAAE;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;CACzB,6DAEA;AAED,wBAAgB,iCAAiC,CAAC,OAAO,EAAE;IACzD,KAAK,EAAE,sBAAsB,CAAC;IAC9B,YAAY,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAC5C,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,yBAAyB,CAAC,CAAC;CACpE,YAC2D;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,+DAGF;AAED,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,sDAEvE;AAED,wBAAsB,0BAA0B,CAAC,MAAM,EAAE;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,gBAAgB,CAAC;CAC1B;;;GAEA;AAED,wBAAsB,kCAAkC,CAAC,MAAM,EAAE;IAC/D,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,QAAQ,GAAG,WAAW,CAAC;CAChC,iBAEA;AAQD,wBAAgB,mCAAmC,CAAC,MAAM,EAAE;IAC1D,OAAO,EAAE,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;CAC/C,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhB"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { runnersInterModuleContract } from '@shipfox/api-runners-dto/inter-module';
|
|
2
|
-
import { isInterModuleKnownError } from '@shipfox/inter-module';
|
|
3
1
|
import { ApplicationFailure } from '@temporalio/common';
|
|
4
2
|
import { defaultJobConditionTrace } from '#core/condition-trace.js';
|
|
5
3
|
import { JobNotFoundError } from '#core/errors.js';
|
|
6
|
-
import { activateJobListener, bulkUpdateStepStatuses, drainListenerEventsIntoExecution, evaluateJobActivations, failJobExecutionAsTimedOut, failWorkflowRunAsTimedOut, getJobExecutionsByWorkflowRunAttemptId, getJobsByWorkflowRunAttemptId, getWorkflowRunAttemptById, getWorkflowRunByAttemptId, peekListenerBuffer, resolveJobExecutionAfterLeaseExpiry, resolveJobListener, resolveJobStatusFromJobExecutions, settleListenerJobExecution, updateJobExecutionStatus, updateJobStatus, updateWorkflowRunStatus } from '#db/index.js';
|
|
4
|
+
import { activateJobListener, bulkUpdateStepStatuses, drainListenerEventsIntoExecution, evaluateJobActivations, failJobExecutionAsTimedOut, failWorkflowRunAsTimedOut, getJobExecutionsByWorkflowRunAttemptId, getJobsByWorkflowRunAttemptId, getWorkflowRunAttemptById, getWorkflowRunByAttemptId, peekListenerBuffer, queueJobExecution, resolveJobExecutionAfterLeaseExpiry, resolveJobListener, resolveJobStatusFromJobExecutions, settleListenerJobExecution, updateJobExecutionStatus, updateJobStatus, updateWorkflowRunStatus } from '#db/index.js';
|
|
7
5
|
import { recordWorkflowListenerExecution } from '#metrics/instance.js';
|
|
8
6
|
export async function loadRunAttemptDag(runAttemptId) {
|
|
9
7
|
const run = await getWorkflowRunByAttemptId(runAttemptId);
|
|
@@ -115,40 +113,21 @@ export async function resolveLeaseExpiredJobExecutionActivity(params, secrets) {
|
|
|
115
113
|
throw err;
|
|
116
114
|
}
|
|
117
115
|
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
export function createReleaseLeaseActivity(runners) {
|
|
122
|
-
return async function releaseLeaseActivity(params) {
|
|
123
|
-
await runners.releaseJobExecution({
|
|
116
|
+
export async function queueJobExecutionActivity(params) {
|
|
117
|
+
try {
|
|
118
|
+
const execution = await queueJobExecution({
|
|
124
119
|
jobExecutionId: params.jobExecutionId
|
|
125
120
|
});
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
workflowRunId: params.workflowRunId,
|
|
134
|
-
workflowRunAttemptId: params.runAttemptId,
|
|
135
|
-
jobId: params.jobId,
|
|
136
|
-
jobExecutionId: params.jobExecutionId,
|
|
137
|
-
projectId: params.projectId,
|
|
138
|
-
requiredLabels: params.requiredLabels
|
|
139
|
-
});
|
|
140
|
-
} catch (err) {
|
|
141
|
-
if (isInterModuleKnownError(runnersInterModuleContract.methods.enqueueJobExecution, err)) {
|
|
142
|
-
throw ApplicationFailure.nonRetryable(err.message, err.name);
|
|
143
|
-
}
|
|
144
|
-
throw err;
|
|
121
|
+
return {
|
|
122
|
+
newVersion: execution.version,
|
|
123
|
+
status: execution.status
|
|
124
|
+
};
|
|
125
|
+
} catch (err) {
|
|
126
|
+
if (err instanceof JobNotFoundError) {
|
|
127
|
+
throw ApplicationFailure.nonRetryable(err.message, err.name);
|
|
145
128
|
}
|
|
146
|
-
|
|
147
|
-
}
|
|
148
|
-
export function createCancelRunnerJobsActivity(runners) {
|
|
149
|
-
return async function cancelRunnerJobsActivity(params) {
|
|
150
|
-
await runners.cancelJobs(params);
|
|
151
|
-
};
|
|
129
|
+
throw err;
|
|
130
|
+
}
|
|
152
131
|
}
|
|
153
132
|
export async function failJobExecutionAsTimedOutActivity(params, secrets) {
|
|
154
133
|
const jobExecution = await failJobExecutionAsTimedOut({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/temporal/activities/orchestration-activities.ts"],"sourcesContent":["import type {AgentInterModuleClient} from '@shipfox/api-agent-dto/inter-module';\nimport type {IntegrationsModuleClient} from '@shipfox/api-integration-core-dto/inter-module';\nimport type {ProjectsModuleClient} from '@shipfox/api-projects-dto/inter-module';\nimport {\n type RunnersInterModuleClient,\n runnersInterModuleContract,\n} from '@shipfox/api-runners-dto/inter-module';\nimport type {SecretsInterModuleClient} from '@shipfox/api-secrets-dto/inter-module';\nimport {isInterModuleKnownError} from '@shipfox/inter-module';\nimport {ApplicationFailure} from '@temporalio/common';\nimport {defaultJobConditionTrace} from '#core/condition-trace.js';\nimport type {JobStatus, JobStatusReason, ResolutionReason} from '#core/entities/job.js';\nimport type {PersistedEvaluationTraceEntry, StepStatus} from '#core/entities/step.js';\nimport type {WorkflowRunStatus} from '#core/entities/workflow-run.js';\nimport {JobNotFoundError} from '#core/errors.js';\nimport type {\n RuntimeCompletionStatus,\n RuntimeDagNode,\n} from '#core/workflow-scheduling/runtime-dag.js';\nimport {\n activateJobListener,\n bulkUpdateStepStatuses,\n drainListenerEventsIntoExecution,\n type EvaluateJobActivationsParams,\n evaluateJobActivations,\n failJobExecutionAsTimedOut,\n failWorkflowRunAsTimedOut,\n getJobExecutionsByWorkflowRunAttemptId,\n getJobsByWorkflowRunAttemptId,\n getWorkflowRunAttemptById,\n getWorkflowRunByAttemptId,\n type JobActivationDecision,\n peekListenerBuffer,\n resolveJobExecutionAfterLeaseExpiry,\n resolveJobListener,\n resolveJobStatusFromJobExecutions,\n settleListenerJobExecution,\n updateJobExecutionStatus,\n updateJobStatus,\n updateWorkflowRunStatus,\n} from '#db/index.js';\nimport {recordWorkflowListenerExecution} from '#metrics/instance.js';\n\nexport interface DagJob extends RuntimeDagNode {\n id: string;\n key: string;\n mode: 'one_shot' | 'listening';\n status: JobStatus;\n jobExecutionId?: string | undefined;\n executionVersion?: number;\n executionTimeoutMs?: number | null | undefined;\n listeningTimeoutMs?: number | null | undefined;\n maxExecutions?: number | null | undefined;\n onResolve?: 'finish' | 'cancel' | null | undefined;\n batchDebounceMs?: number | null | undefined;\n batchMaxSize?: number | null | undefined;\n batchMaxWaitMs?: number | null | undefined;\n dependencies: string[];\n runner: string[];\n version: number;\n}\n\nexport interface RunDag {\n workflowRunId: string;\n runAttemptId: string;\n workspaceId: string;\n projectId: string;\n runVersion: number;\n runTimeoutMs: number;\n jobs: DagJob[];\n}\n\nexport async function loadRunAttemptDag(runAttemptId: string): Promise<RunDag> {\n const run = await getWorkflowRunByAttemptId(runAttemptId);\n if (!run) throw new Error(`Run not found for attempt: ${runAttemptId}`);\n const attempt = await getWorkflowRunAttemptById(runAttemptId);\n if (!attempt) throw new Error(`Run attempt not found: ${runAttemptId}`);\n\n const jobs = await getJobsByWorkflowRunAttemptId(runAttemptId);\n const jobExecutions = await getJobExecutionsByWorkflowRunAttemptId(runAttemptId);\n const firstJobExecutions = new Map<string, (typeof jobExecutions)[number]>();\n for (const jobExecution of jobExecutions) {\n if (!firstJobExecutions.has(jobExecution.jobId)) {\n firstJobExecutions.set(jobExecution.jobId, jobExecution);\n }\n }\n\n return {\n workflowRunId: run.id,\n runAttemptId,\n workspaceId: run.workspaceId,\n projectId: run.projectId,\n runVersion: attempt.version,\n runTimeoutMs: run.timeoutMs,\n jobs: jobs.flatMap((job) => {\n const jobExecution = firstJobExecutions.get(job.id);\n const modelJob = attempt.model?.jobs.find((item) => item.key === job.key);\n if (!jobExecution && job.mode !== 'listening') return [];\n return [\n {\n id: job.id,\n key: job.key,\n mode: job.mode,\n status: job.status,\n ...(jobExecution === undefined\n ? {}\n : {jobExecutionId: jobExecution.id, executionVersion: jobExecution.version}),\n executionTimeoutMs: job.executionTimeoutMs,\n listeningTimeoutMs: job.listeningTimeoutMs,\n maxExecutions: job.maxExecutions,\n onResolve: job.onResolve,\n batchDebounceMs: job.batchDebounceMs,\n batchMaxSize: job.batchMaxSize,\n batchMaxWaitMs: job.batchMaxWaitMs,\n dependencies: job.dependencies,\n hasActivationCondition: modelJob?.if !== undefined,\n runner: jobExecution?.runner ?? job.runner ?? [],\n version: job.version,\n },\n ];\n }),\n };\n}\n\nexport async function evaluateJobActivationsActivity(\n params: EvaluateJobActivationsParams,\n): Promise<JobActivationDecision[]> {\n return await evaluateJobActivations(params);\n}\n\nexport async function setRunAttemptStatus(params: {\n runAttemptId: string;\n status: WorkflowRunStatus;\n version: number;\n}): Promise<{newVersion: number; status: WorkflowRunStatus}> {\n const updated = await updateWorkflowRunStatus({\n workflowRunAttemptId: params.runAttemptId,\n status: params.status,\n expectedVersion: params.version,\n });\n return {newVersion: updated.version, status: updated.status};\n}\n\nexport async function setJobStatus(params: {\n jobId: string;\n status: JobStatus;\n version: number;\n statusReason?: JobStatusReason | null | undefined;\n evaluationTrace?: readonly PersistedEvaluationTraceEntry[] | null | undefined;\n}): Promise<{newVersion: number; status: JobStatus}> {\n const updated = await updateJobStatus({\n jobId: params.jobId,\n status: params.status,\n expectedVersion: params.version,\n statusReason: params.statusReason,\n evaluationTrace: jobStatusEvaluationTrace(params),\n });\n return {newVersion: updated.version, status: updated.status};\n}\n\nfunction jobStatusEvaluationTrace(params: {\n status: JobStatus;\n statusReason?: JobStatusReason | null | undefined;\n evaluationTrace?: readonly PersistedEvaluationTraceEntry[] | null | undefined;\n}): readonly PersistedEvaluationTraceEntry[] | null | undefined {\n if (params.evaluationTrace !== undefined) return params.evaluationTrace;\n return params.status === 'skipped' && params.statusReason === 'default_gate_rejected'\n ? defaultJobConditionTrace()\n : undefined;\n}\n\nexport async function setJobExecutionStatus(\n params: {\n jobExecutionId: string;\n status: Exclude<JobStatus, 'skipped'>;\n version: number;\n statusReason?: JobStatusReason | null | undefined;\n },\n secrets?: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'>,\n): Promise<{newVersion: number; status: Exclude<JobStatus, 'skipped'>}> {\n const updated = await updateJobExecutionStatus({\n jobExecutionId: params.jobExecutionId,\n status: params.status,\n expectedVersion: params.version,\n statusReason: params.statusReason,\n secrets,\n });\n return {newVersion: updated.version, status: updated.status};\n}\n\nexport async function bulkSetStepStatuses(params: {\n jobExecutionId: string;\n status: Extract<StepStatus, 'failed' | 'cancelled'>;\n}): Promise<void> {\n await bulkUpdateStepStatuses(params);\n}\n\nexport async function resolveLeaseExpiredJobExecutionActivity(\n params: {jobExecutionId: string; expectedVersion: number},\n secrets: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'>,\n): Promise<{status: RuntimeCompletionStatus; executionVersion: number}> {\n try {\n return await resolveJobExecutionAfterLeaseExpiry({...params, secrets});\n } catch (err) {\n if (err instanceof JobNotFoundError) {\n throw ApplicationFailure.nonRetryable(err.message, err.name);\n }\n throw err;\n }\n}\n\n// Best-effort lease cleanup on job finalization. Idempotent: deleting an\n// already-released (or already-reaped) lease is a no-op. The workflow wraps the\n// call so a persistent failure never blocks the DAG result.\nexport function createReleaseLeaseActivity(runners: RunnersInterModuleClient) {\n return async function releaseLeaseActivity(params: {jobExecutionId: string}): Promise<void> {\n await runners.releaseJobExecution({jobExecutionId: params.jobExecutionId});\n };\n}\n\nexport function createEnqueueJobExecutionForRunner(runners: RunnersInterModuleClient) {\n return async function enqueueJobExecutionForRunner(params: {\n workspaceId: string;\n workflowRunId: string;\n jobId: string;\n jobExecutionId: string;\n runAttemptId: string;\n projectId: string;\n requiredLabels: string[];\n }): Promise<void> {\n try {\n await runners.enqueueJobExecution({\n workspaceId: params.workspaceId,\n workflowRunId: params.workflowRunId,\n workflowRunAttemptId: params.runAttemptId,\n jobId: params.jobId,\n jobExecutionId: params.jobExecutionId,\n projectId: params.projectId,\n requiredLabels: params.requiredLabels,\n });\n } catch (err) {\n if (isInterModuleKnownError(runnersInterModuleContract.methods.enqueueJobExecution, err)) {\n throw ApplicationFailure.nonRetryable(err.message, err.name);\n }\n throw err;\n }\n };\n}\n\nexport function createCancelRunnerJobsActivity(runners: RunnersInterModuleClient) {\n return async function cancelRunnerJobsActivity(params: {jobIds: string[]}): Promise<void> {\n await runners.cancelJobs(params);\n };\n}\n\nexport async function failJobExecutionAsTimedOutActivity(\n params: {jobExecutionId: string; runAttemptId: string; expectedVersion: number},\n secrets: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'>,\n): Promise<{newVersion: number}> {\n const jobExecution = await failJobExecutionAsTimedOut({\n jobExecutionId: params.jobExecutionId,\n workflowRunAttemptId: params.runAttemptId,\n expectedVersion: params.expectedVersion,\n secrets,\n });\n return {newVersion: jobExecution.version};\n}\n\nexport async function failRunAsTimedOutActivity(params: {runAttemptId: string}): Promise<void> {\n await failWorkflowRunAsTimedOut({runAttemptId: params.runAttemptId});\n}\n\nexport async function resolveJobStatusFromJobExecutionsActivity(params: {\n jobId: string;\n}): Promise<{status: RuntimeCompletionStatus; jobVersion: number}> {\n return await resolveJobStatusFromJobExecutions(params);\n}\n\nexport async function activateJobListenerActivity(params: {\n jobId: string;\n expectedVersion: number;\n}) {\n return await activateJobListener(params);\n}\n\nexport function createDrainListenerEventsActivity(clients: {\n agent: AgentInterModuleClient;\n integrations?: IntegrationsModuleClient | undefined;\n projects?: ProjectsModuleClient | undefined;\n secrets: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'>;\n}) {\n return async function drainListenerEventsActivity(params: {\n jobId: string;\n expectedSequence: number;\n maxSize?: number | undefined;\n }) {\n return await drainListenerEventsIntoExecution({...params, ...clients});\n };\n}\n\nexport async function peekListenerBufferActivity(params: {jobId: string}) {\n return await peekListenerBuffer(params);\n}\n\nexport async function resolveJobListenerActivity(params: {\n jobId: string;\n reason: ResolutionReason;\n}) {\n return await resolveJobListener(params);\n}\n\nexport async function settleListenerJobExecutionActivity(params: {\n jobExecutionId: string;\n status: 'failed' | 'cancelled';\n}) {\n await settleListenerJobExecution(params);\n}\n\n// The listener workflow owns every firing's terminal outcome, but a workflow\n// sandbox cannot emit metrics. This activity is the single recording point so\n// each firing is counted exactly once, including successes that settle through\n// the child's own resolution path rather than a listener DB write. The body is\n// synchronous; it returns a resolved promise because Temporal invokes activities\n// asynchronously.\nexport function recordListenerFiringOutcomeActivity(params: {\n outcome: 'succeeded' | 'failed' | 'cancelled';\n}): Promise<void> {\n recordWorkflowListenerExecution(params.outcome);\n return Promise.resolve();\n}\n"],"names":["runnersInterModuleContract","isInterModuleKnownError","ApplicationFailure","defaultJobConditionTrace","JobNotFoundError","activateJobListener","bulkUpdateStepStatuses","drainListenerEventsIntoExecution","evaluateJobActivations","failJobExecutionAsTimedOut","failWorkflowRunAsTimedOut","getJobExecutionsByWorkflowRunAttemptId","getJobsByWorkflowRunAttemptId","getWorkflowRunAttemptById","getWorkflowRunByAttemptId","peekListenerBuffer","resolveJobExecutionAfterLeaseExpiry","resolveJobListener","resolveJobStatusFromJobExecutions","settleListenerJobExecution","updateJobExecutionStatus","updateJobStatus","updateWorkflowRunStatus","recordWorkflowListenerExecution","loadRunAttemptDag","runAttemptId","run","Error","attempt","jobs","jobExecutions","firstJobExecutions","Map","jobExecution","has","jobId","set","workflowRunId","id","workspaceId","projectId","runVersion","version","runTimeoutMs","timeoutMs","flatMap","job","get","modelJob","model","find","item","key","mode","status","undefined","jobExecutionId","executionVersion","executionTimeoutMs","listeningTimeoutMs","maxExecutions","onResolve","batchDebounceMs","batchMaxSize","batchMaxWaitMs","dependencies","hasActivationCondition","if","runner","evaluateJobActivationsActivity","params","setRunAttemptStatus","updated","workflowRunAttemptId","expectedVersion","newVersion","setJobStatus","statusReason","evaluationTrace","jobStatusEvaluationTrace","setJobExecutionStatus","secrets","bulkSetStepStatuses","resolveLeaseExpiredJobExecutionActivity","err","nonRetryable","message","name","createReleaseLeaseActivity","runners","releaseLeaseActivity","releaseJobExecution","createEnqueueJobExecutionForRunner","enqueueJobExecutionForRunner","enqueueJobExecution","requiredLabels","methods","createCancelRunnerJobsActivity","cancelRunnerJobsActivity","cancelJobs","failJobExecutionAsTimedOutActivity","failRunAsTimedOutActivity","resolveJobStatusFromJobExecutionsActivity","activateJobListenerActivity","createDrainListenerEventsActivity","clients","drainListenerEventsActivity","peekListenerBufferActivity","resolveJobListenerActivity","settleListenerJobExecutionActivity","recordListenerFiringOutcomeActivity","outcome","Promise","resolve"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/temporal/activities/orchestration-activities.ts"],"sourcesContent":["import type {AgentInterModuleClient} from '@shipfox/api-agent-dto/inter-module';\nimport type {IntegrationsModuleClient} from '@shipfox/api-integration-core-dto/inter-module';\nimport type {ProjectsModuleClient} from '@shipfox/api-projects-dto/inter-module';\nimport type {SecretsInterModuleClient} from '@shipfox/api-secrets-dto/inter-module';\nimport {ApplicationFailure} from '@temporalio/common';\nimport {defaultJobConditionTrace} from '#core/condition-trace.js';\nimport type {JobStatus, JobStatusReason, ResolutionReason} from '#core/entities/job.js';\nimport type {PersistedEvaluationTraceEntry, StepStatus} from '#core/entities/step.js';\nimport type {WorkflowRunStatus} from '#core/entities/workflow-run.js';\nimport {JobNotFoundError} from '#core/errors.js';\nimport type {\n RuntimeCompletionStatus,\n RuntimeDagNode,\n} from '#core/workflow-scheduling/runtime-dag.js';\nimport {\n activateJobListener,\n bulkUpdateStepStatuses,\n drainListenerEventsIntoExecution,\n type EvaluateJobActivationsParams,\n evaluateJobActivations,\n failJobExecutionAsTimedOut,\n failWorkflowRunAsTimedOut,\n getJobExecutionsByWorkflowRunAttemptId,\n getJobsByWorkflowRunAttemptId,\n getWorkflowRunAttemptById,\n getWorkflowRunByAttemptId,\n type JobActivationDecision,\n peekListenerBuffer,\n queueJobExecution,\n resolveJobExecutionAfterLeaseExpiry,\n resolveJobListener,\n resolveJobStatusFromJobExecutions,\n settleListenerJobExecution,\n updateJobExecutionStatus,\n updateJobStatus,\n updateWorkflowRunStatus,\n} from '#db/index.js';\nimport {recordWorkflowListenerExecution} from '#metrics/instance.js';\n\nexport interface DagJob extends RuntimeDagNode {\n id: string;\n key: string;\n mode: 'one_shot' | 'listening';\n status: JobStatus;\n jobExecutionId?: string | undefined;\n executionVersion?: number;\n executionTimeoutMs?: number | null | undefined;\n listeningTimeoutMs?: number | null | undefined;\n maxExecutions?: number | null | undefined;\n onResolve?: 'finish' | 'cancel' | null | undefined;\n batchDebounceMs?: number | null | undefined;\n batchMaxSize?: number | null | undefined;\n batchMaxWaitMs?: number | null | undefined;\n dependencies: string[];\n runner: string[];\n version: number;\n}\n\nexport interface RunDag {\n workflowRunId: string;\n runAttemptId: string;\n workspaceId: string;\n projectId: string;\n runVersion: number;\n runTimeoutMs: number;\n jobs: DagJob[];\n}\n\nexport async function loadRunAttemptDag(runAttemptId: string): Promise<RunDag> {\n const run = await getWorkflowRunByAttemptId(runAttemptId);\n if (!run) throw new Error(`Run not found for attempt: ${runAttemptId}`);\n const attempt = await getWorkflowRunAttemptById(runAttemptId);\n if (!attempt) throw new Error(`Run attempt not found: ${runAttemptId}`);\n\n const jobs = await getJobsByWorkflowRunAttemptId(runAttemptId);\n const jobExecutions = await getJobExecutionsByWorkflowRunAttemptId(runAttemptId);\n const firstJobExecutions = new Map<string, (typeof jobExecutions)[number]>();\n for (const jobExecution of jobExecutions) {\n if (!firstJobExecutions.has(jobExecution.jobId)) {\n firstJobExecutions.set(jobExecution.jobId, jobExecution);\n }\n }\n\n return {\n workflowRunId: run.id,\n runAttemptId,\n workspaceId: run.workspaceId,\n projectId: run.projectId,\n runVersion: attempt.version,\n runTimeoutMs: run.timeoutMs,\n jobs: jobs.flatMap((job) => {\n const jobExecution = firstJobExecutions.get(job.id);\n const modelJob = attempt.model?.jobs.find((item) => item.key === job.key);\n if (!jobExecution && job.mode !== 'listening') return [];\n return [\n {\n id: job.id,\n key: job.key,\n mode: job.mode,\n status: job.status,\n ...(jobExecution === undefined\n ? {}\n : {jobExecutionId: jobExecution.id, executionVersion: jobExecution.version}),\n executionTimeoutMs: job.executionTimeoutMs,\n listeningTimeoutMs: job.listeningTimeoutMs,\n maxExecutions: job.maxExecutions,\n onResolve: job.onResolve,\n batchDebounceMs: job.batchDebounceMs,\n batchMaxSize: job.batchMaxSize,\n batchMaxWaitMs: job.batchMaxWaitMs,\n dependencies: job.dependencies,\n hasActivationCondition: modelJob?.if !== undefined,\n runner: jobExecution?.runner ?? job.runner ?? [],\n version: job.version,\n },\n ];\n }),\n };\n}\n\nexport async function evaluateJobActivationsActivity(\n params: EvaluateJobActivationsParams,\n): Promise<JobActivationDecision[]> {\n return await evaluateJobActivations(params);\n}\n\nexport async function setRunAttemptStatus(params: {\n runAttemptId: string;\n status: WorkflowRunStatus;\n version: number;\n}): Promise<{newVersion: number; status: WorkflowRunStatus}> {\n const updated = await updateWorkflowRunStatus({\n workflowRunAttemptId: params.runAttemptId,\n status: params.status,\n expectedVersion: params.version,\n });\n return {newVersion: updated.version, status: updated.status};\n}\n\nexport async function setJobStatus(params: {\n jobId: string;\n status: JobStatus;\n version: number;\n statusReason?: JobStatusReason | null | undefined;\n evaluationTrace?: readonly PersistedEvaluationTraceEntry[] | null | undefined;\n}): Promise<{newVersion: number; status: JobStatus}> {\n const updated = await updateJobStatus({\n jobId: params.jobId,\n status: params.status,\n expectedVersion: params.version,\n statusReason: params.statusReason,\n evaluationTrace: jobStatusEvaluationTrace(params),\n });\n return {newVersion: updated.version, status: updated.status};\n}\n\nfunction jobStatusEvaluationTrace(params: {\n status: JobStatus;\n statusReason?: JobStatusReason | null | undefined;\n evaluationTrace?: readonly PersistedEvaluationTraceEntry[] | null | undefined;\n}): readonly PersistedEvaluationTraceEntry[] | null | undefined {\n if (params.evaluationTrace !== undefined) return params.evaluationTrace;\n return params.status === 'skipped' && params.statusReason === 'default_gate_rejected'\n ? defaultJobConditionTrace()\n : undefined;\n}\n\nexport async function setJobExecutionStatus(\n params: {\n jobExecutionId: string;\n status: Exclude<JobStatus, 'skipped'>;\n version: number;\n statusReason?: JobStatusReason | null | undefined;\n },\n secrets?: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'>,\n): Promise<{newVersion: number; status: Exclude<JobStatus, 'skipped'>}> {\n const updated = await updateJobExecutionStatus({\n jobExecutionId: params.jobExecutionId,\n status: params.status,\n expectedVersion: params.version,\n statusReason: params.statusReason,\n secrets,\n });\n return {newVersion: updated.version, status: updated.status};\n}\n\nexport async function bulkSetStepStatuses(params: {\n jobExecutionId: string;\n status: Extract<StepStatus, 'failed' | 'cancelled'>;\n}): Promise<void> {\n await bulkUpdateStepStatuses(params);\n}\n\nexport async function resolveLeaseExpiredJobExecutionActivity(\n params: {jobExecutionId: string; expectedVersion: number},\n secrets: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'>,\n): Promise<{status: RuntimeCompletionStatus; executionVersion: number}> {\n try {\n return await resolveJobExecutionAfterLeaseExpiry({...params, secrets});\n } catch (err) {\n if (err instanceof JobNotFoundError) {\n throw ApplicationFailure.nonRetryable(err.message, err.name);\n }\n throw err;\n }\n}\n\nexport async function queueJobExecutionActivity(params: {\n jobId: string;\n jobExecutionId: string;\n}): Promise<{newVersion: number; status: Exclude<JobStatus, 'skipped'>}> {\n try {\n const execution = await queueJobExecution({jobExecutionId: params.jobExecutionId});\n return {newVersion: execution.version, status: execution.status};\n } catch (err) {\n if (err instanceof JobNotFoundError) {\n throw ApplicationFailure.nonRetryable(err.message, err.name);\n }\n throw err;\n }\n}\n\nexport async function failJobExecutionAsTimedOutActivity(\n params: {jobExecutionId: string; runAttemptId: string; expectedVersion: number},\n secrets: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'>,\n): Promise<{newVersion: number}> {\n const jobExecution = await failJobExecutionAsTimedOut({\n jobExecutionId: params.jobExecutionId,\n workflowRunAttemptId: params.runAttemptId,\n expectedVersion: params.expectedVersion,\n secrets,\n });\n return {newVersion: jobExecution.version};\n}\n\nexport async function failRunAsTimedOutActivity(params: {runAttemptId: string}): Promise<void> {\n await failWorkflowRunAsTimedOut({runAttemptId: params.runAttemptId});\n}\n\nexport async function resolveJobStatusFromJobExecutionsActivity(params: {\n jobId: string;\n}): Promise<{status: RuntimeCompletionStatus; jobVersion: number}> {\n return await resolveJobStatusFromJobExecutions(params);\n}\n\nexport async function activateJobListenerActivity(params: {\n jobId: string;\n expectedVersion: number;\n}) {\n return await activateJobListener(params);\n}\n\nexport function createDrainListenerEventsActivity(clients: {\n agent: AgentInterModuleClient;\n integrations?: IntegrationsModuleClient | undefined;\n projects?: ProjectsModuleClient | undefined;\n secrets: Pick<SecretsInterModuleClient, 'getVariablesByNamespace'>;\n}) {\n return async function drainListenerEventsActivity(params: {\n jobId: string;\n expectedSequence: number;\n maxSize?: number | undefined;\n }) {\n return await drainListenerEventsIntoExecution({...params, ...clients});\n };\n}\n\nexport async function peekListenerBufferActivity(params: {jobId: string}) {\n return await peekListenerBuffer(params);\n}\n\nexport async function resolveJobListenerActivity(params: {\n jobId: string;\n reason: ResolutionReason;\n}) {\n return await resolveJobListener(params);\n}\n\nexport async function settleListenerJobExecutionActivity(params: {\n jobExecutionId: string;\n status: 'failed' | 'cancelled';\n}) {\n await settleListenerJobExecution(params);\n}\n\n// The listener workflow owns every firing's terminal outcome, but a workflow\n// sandbox cannot emit metrics. This activity is the single recording point so\n// each firing is counted exactly once, including successes that settle through\n// the child's own resolution path rather than a listener DB write. The body is\n// synchronous; it returns a resolved promise because Temporal invokes activities\n// asynchronously.\nexport function recordListenerFiringOutcomeActivity(params: {\n outcome: 'succeeded' | 'failed' | 'cancelled';\n}): Promise<void> {\n recordWorkflowListenerExecution(params.outcome);\n return Promise.resolve();\n}\n"],"names":["ApplicationFailure","defaultJobConditionTrace","JobNotFoundError","activateJobListener","bulkUpdateStepStatuses","drainListenerEventsIntoExecution","evaluateJobActivations","failJobExecutionAsTimedOut","failWorkflowRunAsTimedOut","getJobExecutionsByWorkflowRunAttemptId","getJobsByWorkflowRunAttemptId","getWorkflowRunAttemptById","getWorkflowRunByAttemptId","peekListenerBuffer","queueJobExecution","resolveJobExecutionAfterLeaseExpiry","resolveJobListener","resolveJobStatusFromJobExecutions","settleListenerJobExecution","updateJobExecutionStatus","updateJobStatus","updateWorkflowRunStatus","recordWorkflowListenerExecution","loadRunAttemptDag","runAttemptId","run","Error","attempt","jobs","jobExecutions","firstJobExecutions","Map","jobExecution","has","jobId","set","workflowRunId","id","workspaceId","projectId","runVersion","version","runTimeoutMs","timeoutMs","flatMap","job","get","modelJob","model","find","item","key","mode","status","undefined","jobExecutionId","executionVersion","executionTimeoutMs","listeningTimeoutMs","maxExecutions","onResolve","batchDebounceMs","batchMaxSize","batchMaxWaitMs","dependencies","hasActivationCondition","if","runner","evaluateJobActivationsActivity","params","setRunAttemptStatus","updated","workflowRunAttemptId","expectedVersion","newVersion","setJobStatus","statusReason","evaluationTrace","jobStatusEvaluationTrace","setJobExecutionStatus","secrets","bulkSetStepStatuses","resolveLeaseExpiredJobExecutionActivity","err","nonRetryable","message","name","queueJobExecutionActivity","execution","failJobExecutionAsTimedOutActivity","failRunAsTimedOutActivity","resolveJobStatusFromJobExecutionsActivity","activateJobListenerActivity","createDrainListenerEventsActivity","clients","drainListenerEventsActivity","peekListenerBufferActivity","resolveJobListenerActivity","settleListenerJobExecutionActivity","recordListenerFiringOutcomeActivity","outcome","Promise","resolve"],"mappings":"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"}
|