@cohesivesystems/presentation-core 0.1.0-alpha.65 → 0.1.0-alpha.66.1

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.
@@ -1,8 +1,49 @@
1
1
  export type ProcessTaskType = string;
2
- export type ProcessLifecycleStatus = 'pending' | 'running' | 'waiting' | 'success' | 'error' | 'paused';
3
2
  export type ProcessTaskMetadataSelector = Partial<{
4
3
  readonly [K in keyof ProcessTaskMetadata]: ProcessTaskMetadata[K];
5
4
  }>;
5
+ /**
6
+ * Stable diagnostic identifiers emitted while projecting declared Process
7
+ * lifecycle evidence into a presentation task.
8
+ *
9
+ * These codes describe the completeness and internal consistency of evidence;
10
+ * they are not a parallel catalog of canonical Process statuses.
11
+ */
12
+ export declare const processTaskLifecycleDiagnosticCodes: {
13
+ readonly activeAndTerminal: "process.task.lifecycle.active-and-terminal";
14
+ readonly failureWhileNonTerminal: "process.task.lifecycle.failure-while-non-terminal";
15
+ readonly incomplete: "process.task.lifecycle.incomplete";
16
+ readonly notDisclosed: "process.task.lifecycle.not-disclosed";
17
+ readonly optimisticStart: "process.task.lifecycle.optimistic-start";
18
+ readonly progressingWhileInactive: "process.task.lifecycle.progressing-while-inactive";
19
+ readonly terminalAndProgressing: "process.task.lifecycle.terminal-and-progressing";
20
+ };
21
+ /**
22
+ * Runtime- or backend-declared lifecycle evidence used by generic Process task
23
+ * presentation. Null means that the authority did not establish the fact.
24
+ */
25
+ export interface ProcessTaskLifecycleDeclaration {
26
+ readonly diagnosticCodes?: readonly string[] | null;
27
+ readonly isActive?: boolean | null;
28
+ readonly isFailure?: boolean | null;
29
+ readonly isProgressing?: boolean | null;
30
+ readonly isTerminal?: boolean | null;
31
+ readonly tone?: string | null;
32
+ }
33
+ /**
34
+ * Normalized lifecycle evidence retained on a Process task.
35
+ *
36
+ * Presentation runtimes consume these declared facts without interpreting
37
+ * status strings, timestamps, labels, failure text, or target-specific enums.
38
+ */
39
+ export interface ProcessTaskLifecycle {
40
+ readonly diagnosticCodes: readonly string[];
41
+ readonly isActive: boolean | null;
42
+ readonly isFailure: boolean | null;
43
+ readonly isProgressing: boolean | null;
44
+ readonly isTerminal: boolean | null;
45
+ readonly tone: string | null;
46
+ }
6
47
  export interface ProcessTaskMetadata {
7
48
  readonly correlationId?: string | null;
8
49
  readonly ediSpecId?: string | null;
@@ -19,7 +60,7 @@ export interface ProcessTask {
19
60
  readonly title: string;
20
61
  readonly status: string;
21
62
  readonly statusLabel: string;
22
- readonly lifecycleStatus: ProcessLifecycleStatus;
63
+ readonly lifecycle: ProcessTaskLifecycle;
23
64
  readonly startedAtUtc?: string | null;
24
65
  readonly updatedAtUtc?: string | null;
25
66
  readonly completedAtUtc?: string | null;
@@ -46,6 +87,7 @@ export interface ProcessTaskStartRegistration {
46
87
  readonly detailsHref?: string | null;
47
88
  readonly failureMessage?: string | null;
48
89
  readonly invalidateQueryKeys?: readonly (readonly unknown[])[];
90
+ readonly lifecycle: ProcessTaskLifecycle;
49
91
  readonly metadata?: ProcessTaskMetadata;
50
92
  readonly processId: string;
51
93
  readonly processName?: string | null;
@@ -73,8 +115,18 @@ export interface ProcessTaskToast {
73
115
  readonly createdAt: number;
74
116
  }
75
117
  export declare function isProcessTaskTerminal(task: ProcessTask): boolean;
118
+ /**
119
+ * Returns whether a task may still be active according to declared lifecycle
120
+ * evidence. Unknown evidence remains potentially active so an active-only
121
+ * admission check cannot accidentally admit a duplicate Process start.
122
+ */
123
+ export declare function isProcessTaskPotentiallyActive(task: ProcessTask): boolean;
76
124
  export declare function findProcessTask(tasks: readonly ProcessTask[], selector: ProcessTaskSelector): ProcessTask;
77
125
  export declare function findProcessTasks(tasks: readonly ProcessTask[], selector: ProcessTaskSelector): ProcessTask[];
78
126
  export declare function matchesProcessTaskSelector(task: ProcessTask, selector: ProcessTaskSelector): boolean;
79
- export declare function isTerminalProcessStatus(status: string, completedAtUtc?: string | null): boolean;
127
+ /**
128
+ * Normalizes target-declared lifecycle evidence and records incomplete or
129
+ * contradictory facts without changing their meaning.
130
+ */
131
+ export declare function createProcessTaskLifecycle(declaration?: ProcessTaskLifecycleDeclaration | null): ProcessTaskLifecycle;
80
132
  //# sourceMappingURL=process-task-model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"process-task-model.d.ts","sourceRoot":"","sources":["../src/process-task-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-task-model.d.ts","sourceRoot":"","sources":["../src/process-task-model.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,31 @@
1
+ /**
2
+ * Stable diagnostic identifiers emitted while projecting declared Process
3
+ * lifecycle evidence into a presentation task.
4
+ *
5
+ * These codes describe the completeness and internal consistency of evidence;
6
+ * they are not a parallel catalog of canonical Process statuses.
7
+ */
8
+ export const processTaskLifecycleDiagnosticCodes = {
9
+ activeAndTerminal: 'process.task.lifecycle.active-and-terminal',
10
+ failureWhileNonTerminal: 'process.task.lifecycle.failure-while-non-terminal',
11
+ incomplete: 'process.task.lifecycle.incomplete',
12
+ notDisclosed: 'process.task.lifecycle.not-disclosed',
13
+ optimisticStart: 'process.task.lifecycle.optimistic-start',
14
+ progressingWhileInactive: 'process.task.lifecycle.progressing-while-inactive',
15
+ terminalAndProgressing: 'process.task.lifecycle.terminal-and-progressing',
16
+ };
1
17
  export function isProcessTaskTerminal(task) {
2
- return isTerminalProcessStatus(task.status, task.completedAtUtc);
18
+ return task.lifecycle.isTerminal === true &&
19
+ task.lifecycle.isActive === false &&
20
+ task.lifecycle.isProgressing === false;
21
+ }
22
+ /**
23
+ * Returns whether a task may still be active according to declared lifecycle
24
+ * evidence. Unknown evidence remains potentially active so an active-only
25
+ * admission check cannot accidentally admit a duplicate Process start.
26
+ */
27
+ export function isProcessTaskPotentiallyActive(task) {
28
+ return !isProcessTaskTerminal(task);
3
29
  }
4
30
  export function findProcessTask(tasks, selector) {
5
31
  return findProcessTasks(tasks, selector)[0] ?? null;
@@ -8,7 +34,7 @@ export function findProcessTasks(tasks, selector) {
8
34
  return tasks.filter((task) => matchesProcessTaskSelector(task, selector));
9
35
  }
10
36
  export function matchesProcessTaskSelector(task, selector) {
11
- if (selector.activeOnly && isProcessTaskTerminal(task)) {
37
+ if (selector.activeOnly && !isProcessTaskPotentiallyActive(task)) {
12
38
  return false;
13
39
  }
14
40
  if (selector.processType && task.type !== selector.processType) {
@@ -16,14 +42,51 @@ export function matchesProcessTaskSelector(task, selector) {
16
42
  }
17
43
  return matchesProcessTaskMetadataSelector(task.metadata, selector.metadata);
18
44
  }
19
- export function isTerminalProcessStatus(status, completedAtUtc) {
20
- if (['Completed', 'Failed', 'Cancelled', 'Canceled', 'Terminated'].includes(status)) {
21
- return true;
45
+ /**
46
+ * Normalizes target-declared lifecycle evidence and records incomplete or
47
+ * contradictory facts without changing their meaning.
48
+ */
49
+ export function createProcessTaskLifecycle(declaration) {
50
+ if (!declaration) {
51
+ return {
52
+ diagnosticCodes: [processTaskLifecycleDiagnosticCodes.notDisclosed],
53
+ isActive: null,
54
+ isFailure: null,
55
+ isProgressing: null,
56
+ isTerminal: null,
57
+ tone: null,
58
+ };
22
59
  }
23
- if (['Pending', 'Running', 'Waiting', 'Suspended'].includes(status)) {
24
- return false;
60
+ const lifecycle = {
61
+ isActive: declaration.isActive ?? null,
62
+ isFailure: declaration.isFailure ?? null,
63
+ isProgressing: declaration.isProgressing ?? null,
64
+ isTerminal: declaration.isTerminal ?? null,
65
+ tone: declaration.tone ?? null,
66
+ };
67
+ const diagnosticCodes = new Set(declaration.diagnosticCodes ?? []);
68
+ if (lifecycle.isActive === null ||
69
+ lifecycle.isFailure === null ||
70
+ lifecycle.isProgressing === null ||
71
+ lifecycle.isTerminal === null) {
72
+ diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.incomplete);
73
+ }
74
+ if (lifecycle.isActive === true && lifecycle.isTerminal === true) {
75
+ diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.activeAndTerminal);
76
+ }
77
+ if (lifecycle.isFailure === true && lifecycle.isTerminal === false) {
78
+ diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.failureWhileNonTerminal);
79
+ }
80
+ if (lifecycle.isProgressing === true && lifecycle.isActive === false) {
81
+ diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.progressingWhileInactive);
82
+ }
83
+ if (lifecycle.isProgressing === true && lifecycle.isTerminal === true) {
84
+ diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.terminalAndProgressing);
25
85
  }
26
- return Boolean(completedAtUtc);
86
+ return {
87
+ ...lifecycle,
88
+ diagnosticCodes: Array.from(diagnosticCodes),
89
+ };
27
90
  }
28
91
  function matchesProcessTaskMetadataSelector(metadata, selector) {
29
92
  if (!selector) {
@@ -1 +1 @@
1
- {"version":3,"file":"process-task-model.js","sourceRoot":"","sources":["../src/process-task-model.ts"],"names":[],"mappings":"AAiFA,MAAM,UAAU,qBAAqB,CAAC,IAAiB;IACrD,OAAO,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAA6B,EAC7B,QAA6B;IAE7B,OAAO,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;AACrD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,KAA6B,EAC7B,QAA6B;IAE7B,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,0BAA0B,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;AAC3E,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,IAAiB,EACjB,QAA6B;IAE7B,IAAI,QAAQ,CAAC,UAAU,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC;QAC/D,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,kCAAkC,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;AAC7E,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAc,EAAE,cAA8B;IACpF,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACpF,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACpE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,OAAO,CAAC,cAAc,CAAC,CAAA;AAChC,CAAC;AAED,SAAS,kCAAkC,CACzC,QAA6B,EAC7B,QAAwD;IAExD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,SAAQ;QACV,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAgC,CAAC,CAAA;QACzD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC7D,OAAO,KAAK,CAAA;YACd,CAAC;YACD,SAAQ;QACV,CAAC;QAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,WAAW,CAAC,IAAwB,EAAE,KAAyB;IACtE,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;AAC7F,CAAC"}
1
+ {"version":3,"file":"process-task-model.js","sourceRoot":"","sources":["../src/process-task-model.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { PresentationNavigationHrefFactory } from './navigation.js';
2
2
  import type { ActionDefinition, ProcessTaskSelectorDefinition } from './module.js';
3
- import { type ProcessTask, type ProcessTaskMetadata, type ProcessTaskSelector, type ProcessTaskStartRegistration } from './process-task-model.js';
3
+ import { type ProcessTask, type ProcessTaskLifecycleDeclaration, type ProcessTaskMetadata, type ProcessTaskSelector, type ProcessTaskStartRegistration } from './process-task-model.js';
4
4
  export interface ProjectProcessTaskActionEnablementOptions<TContext> {
5
5
  readonly action: ActionDefinition | null | undefined;
6
6
  readonly context: TContext;
@@ -22,6 +22,7 @@ export interface ProjectProcessTaskStartRegistrationOptions {
22
22
  readonly detailsHref?: string | null;
23
23
  readonly failureMessage?: string | null;
24
24
  readonly invalidateQueryKeys?: readonly (readonly unknown[])[];
25
+ readonly lifecycle?: ProcessTaskLifecycleDeclaration | null;
25
26
  readonly metadata?: ProcessTaskMetadata;
26
27
  readonly processTypeLabel?: string | null;
27
28
  readonly processTypeTone?: string | null;
@@ -42,5 +43,5 @@ export interface ProjectProcessTaskStartRegistrationOptions {
42
43
  */
43
44
  export declare function projectProcessTaskActionEnablement<TContext>({ action, context, findActiveTask, projectSelector, selectors, }: ProjectProcessTaskActionEnablementOptions<TContext>): ProjectedProcessTaskActionEnablement;
44
45
  export declare function projectProcessTaskSelector<TContext>(selector: ProcessTaskSelectorDefinition | null | undefined, context: TContext): ProcessTaskSelector | null;
45
- export declare function projectProcessTaskStartRegistration({ action, createHref, dataSourceQueryKey, context, detailsHref, failureMessage, invalidateQueryKeys, metadata, processTypeLabel, processTypeTone, result, selector, sourceHref, startedToast, targetHref, terminalInvalidateQueryKeys, }: ProjectProcessTaskStartRegistrationOptions): ProcessTaskStartRegistration | null;
46
+ export declare function projectProcessTaskStartRegistration({ action, createHref, dataSourceQueryKey, context, detailsHref, failureMessage, invalidateQueryKeys, lifecycle, metadata, processTypeLabel, processTypeTone, result, selector, sourceHref, startedToast, targetHref, terminalInvalidateQueryKeys, }: ProjectProcessTaskStartRegistrationOptions): ProcessTaskStartRegistration | null;
46
47
  //# sourceMappingURL=process-task-projection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"process-task-projection.d.ts","sourceRoot":"","sources":["../src/process-task-projection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-task-projection.d.ts","sourceRoot":"","sources":["../src/process-task-projection.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import {} from './process-task-model.js';
1
+ import { createProcessTaskLifecycle, processTaskLifecycleDiagnosticCodes, } from './process-task-model.js';
2
2
  import { createPresentationEnumDiscriminator, matchesPresentationEnum, } from './target-bindings.js';
3
3
  import { actionEnablementCriterionKinds, } from '@cohesivesystems/presentation-contracts';
4
4
  /**
@@ -51,7 +51,7 @@ export function projectProcessTaskSelector(selector, context) {
51
51
  processType: selector.ProcessType,
52
52
  };
53
53
  }
54
- export function projectProcessTaskStartRegistration({ action, createHref, dataSourceQueryKey, context = {}, detailsHref, failureMessage, invalidateQueryKeys, metadata, processTypeLabel, processTypeTone, result, selector, sourceHref, startedToast, targetHref, terminalInvalidateQueryKeys, }) {
54
+ export function projectProcessTaskStartRegistration({ action, createHref, dataSourceQueryKey, context = {}, detailsHref, failureMessage, invalidateQueryKeys, lifecycle, metadata, processTypeLabel, processTypeTone, result, selector, sourceHref, startedToast, targetHref, terminalInvalidateQueryKeys, }) {
55
55
  const processId = readStringPath(result, 'ProcessId') ?? readStringPath(result, 'processId');
56
56
  if (!processId) {
57
57
  return null;
@@ -69,6 +69,14 @@ export function projectProcessTaskStartRegistration({ action, createHref, dataSo
69
69
  detailsHref: detailsHref ?? projectActionResultHref({ action, createHref, result }),
70
70
  failureMessage,
71
71
  invalidateQueryKeys: invalidateQueryKeys ?? actionInvalidateQueryKeys,
72
+ lifecycle: createProcessTaskLifecycle(lifecycle ?? {
73
+ diagnosticCodes: [processTaskLifecycleDiagnosticCodes.optimisticStart],
74
+ isActive: true,
75
+ isFailure: false,
76
+ isProgressing: true,
77
+ isTerminal: false,
78
+ tone: 'info',
79
+ }),
72
80
  metadata: {
73
81
  ...selectorMetadata,
74
82
  ...readConventionalProcessTaskMetadata(result),
@@ -1 +1 @@
1
- {"version":3,"file":"process-task-projection.js","sourceRoot":"","sources":["../src/process-task-projection.ts"],"names":[],"mappings":"AAQA,OAAO,EAKN,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,mCAAmC,EACnC,uBAAuB,GACxB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,8BAA8B,GAC/B,MAAM,yCAAyC,CAAA;AA8ChD;;;;;;GAMG;AACH,MAAM,UAAU,kCAAkC,CAAW,EAC3D,MAAM,EACN,OAAO,EACP,cAAc,EACd,eAAe,GAAG,0BAA0B,EAC5C,SAAS,GAC2C;IACpD,IAAI,aAAa,GAAyC,IAAI,CAAA;IAE9D,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,UAAU,IAAI,EAAE,EAAE,CAAC;QACjD,IACE,CAAC,uBAAuB,CACtB,SAAS,CAAC,IAAI,EACd,gCAAgC,CACjC;YACD,CAAC,SAAS,CAAC,qBAAqB,EAChC,CAAC;YACD,SAAQ;QACV,CAAC;QAED,MAAM,kBAAkB,GAAG,SAAS,CAAC,IAAI,CACvC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,KAAK,SAAS,CAAC,qBAAqB,CAC9D,IAAI,IAAI,CAAA;QACT,aAAa,KAAK,kBAAkB,CAAA;QACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAA;QAC7D,MAAM,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC7D,IAAI,UAAU,EAAE,CAAC;YACf,OAAO;gBACL,UAAU;gBACV,mBAAmB,EAAE,SAAS,CAAC,EAAE;gBACjC,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,IAAI;gBAC5C,QAAQ,EAAE,kBAAkB;aAC7B,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,UAAU,EAAE,IAAI;QAChB,mBAAmB,EAAE,IAAI;QACzB,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,aAAa;KACxB,CAAA;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAA0D,EAC1D,OAAiB;IAEjB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,QAAQ,GAAG,kCAAkC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACtE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO;QACL,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,QAAQ;QACR,WAAW,EAAE,QAAQ,CAAC,WAAW;KAClC,CAAA;AACH,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,EAClD,MAAM,EACN,UAAU,EACV,kBAAkB,EAClB,OAAO,GAAG,EAAE,EACZ,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,QAAQ,EACR,gBAAgB,EAChB,eAAe,EACf,MAAM,EACN,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,UAAU,EACV,2BAA2B,GACgB;IAC3C,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAC5F,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,gBAAgB,GAAG,QAAQ;QAC/B,CAAC,CAAC,kCAAkC,CAAC,QAAQ,EAAE,OAAO,CAAC;QACvD,CAAC,CAAC,SAAS,CAAA;IACb,MAAM,WAAW,GAAG,QAAQ,EAAE,WAAW,IAAI,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,SAAS,CAAA;IAC/F,MAAM,yBAAyB,GAAG,kCAAkC,CAAC;QACnE,MAAM;QACN,kBAAkB;KACnB,CAAC,CAAA;IACF,OAAO;QACL,cAAc,EAAE,cAAc,CAAC,MAAM,EAAE,gBAAgB,CAAC;QACxD,WAAW,EAAE,WAAW,IAAI,uBAAuB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;QACnF,cAAc;QACd,mBAAmB,EAAE,mBAAmB,IAAI,yBAAyB;QACrE,QAAQ,EAAE;YACR,GAAG,gBAAgB;YACnB,GAAG,mCAAmC,CAAC,MAAM,CAAC;YAC9C,GAAG,QAAQ;SACZ;QACD,SAAS;QACT,WAAW,EAAE,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC;QAClD,WAAW;QACX,gBAAgB,EAAE,gBAAgB,IAAI,sBAAsB,CAAC,WAAW,CAAC;QACzE,eAAe;QACf,UAAU;QACV,YAAY,EAAE,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC;QACpD,YAAY;QACZ,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC;QACxC,UAAU;QACV,2BAA2B,EAAE,2BAA2B,IAAI,yBAAyB;QACrF,YAAY,EAAE,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC;KACrD,CAAA;AACH,CAAC;AAED,SAAS,kCAAkC,CAAC,EAC1C,MAAM,EACN,kBAAkB,GAInB;IACC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,EAAE,MAAM,EAAE,uBAAuB,IAAI,EAAE,CAAA;IACnE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAA;AAC9E,CAAC;AAED,SAAS,uBAAuB,CAAC,EAC/B,MAAM,EACN,UAAU,EACV,MAAM,GAKP;IACC,MAAM,OAAO,GAAG,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAA;IACjD,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,UAAU,CAAC,OAAO,EAAE,mCAAmC,CAAC,MAAM,CAAC,CAAC,CAAA;AACzE,CAAC;AAED,SAAS,mCAAmC,CAAC,MAAe;IAC1D,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAC3E,CAAC,CAAC,MAA2C;QAC7C,CAAC,CAAC,EAAE,CAAA;IACN,MAAM,UAAU,GAA8B,EAAE,CAAA;IAEhD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,+BAA+B,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,SAAQ;QACV,CAAC;QAED,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACvB,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAA;IACrC,CAAC;IAED,UAAU,CAAC,EAAE;QACX,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC;YAC5B,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC;YAClC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC;YACnC,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC;YACtC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAErC,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,SAAS,kCAAkC,CACzC,QAAuC,EACvC,OAAiB;IAEjB,MAAM,QAAQ,GAA6E,EAAE,CAAA;IAC7F,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QAC9D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,KAAK,GAAG,4BAA4B,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;QACpE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,QAAQ,CAAC,WAAW,CAAC,GAAG,KAAK,CAAA;IAC/B,CAAC;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,mCAAmC,CAAC,MAAe;IAC1D,OAAO;QACL,aAAa,EAAE,cAAc,CAAC,MAAM,EAAE,eAAe,CAAC;QACtD,SAAS,EAAE,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC;QAC9C,IAAI,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;QACpC,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC;QAC1C,QAAQ,EAAE,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC;QAC5C,aAAa,EAAE,mBAAmB,CAAC,MAAM,EAAE,eAAe,CAAC;QAC3D,YAAY,EAAE,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC;KACrD,CAAA;AACH,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAgB;IAClD,MAAM,cAAc,GAAG,WAAW,CAAA;IAClC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;IACzD,OAAO,6BAA6B,CAAC,GAAG,CAAC,WAA2C,CAAC;QACnF,CAAC,CAAE,WAA4C;QAC/C,CAAC,CAAC,IAAI,CAAA;AACV,CAAC;AAED,SAAS,4BAA4B,CACnC,OAAgB,EAChB,SAAiB;IAEjB,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;IAChD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAA;IACd,CAAC;IAED,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,aAAa,CAAC;QACnB,KAAK,aAAa,CAAC;QACnB,KAAK,UAAU,CAAC;QAChB,KAAK,UAAU;YACb,OAAO,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QAC9C;YACE,OAAO,SAAS,CAAA;IACpB,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,MAAe,EAAE,IAAY;IACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAA;AACtD,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAe,EAAE,IAAY;IACxD,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;QAC5F,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,SAAS,CAAA;AACf,CAAC;AAED,SAAS,+BAA+B,CACtC,KAAc;IAEd,OAAO,CACL,OAAO,KAAK,KAAK,SAAS;QAC1B,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,QAAQ,CAC1B,CAAA;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AACjE,CAAC;AAED,SAAS,QAAQ,CAAC,MAAe,EAAE,IAAY;IAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAU,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QAC1D,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC5C,OAAO,SAAS,CAAA;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,OAAkC,CAAA;QACjD,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;YAC1D,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;QACxB,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CACpC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE,KAAK,OAAO,CAAC,iBAAiB,EAAE,CACjE,CAAA;QACD,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC1C,CAAC,EAAE,MAAM,CAAC,CAAA;AACZ,CAAC;AAED,SAAS,sBAAsB,CAAC,WAAmB;IACjD,OAAO,WAAW;SACf,KAAK,CAAC,SAAS,CAAC;SAChB,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACnB,KAAK,KAAK,CAAC;QACT,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;QAC3D,CAAC,CAAC,IAAI,CACT;SACA,IAAI,CAAC,GAAG,CAAC,CAAA;AACd,CAAC;AAED,MAAM,gCAAgC,GAAG,mCAAmC,CAC1E,8BAA8B,EAC9B,qBAAqB,EACrB,qBAAqB,CACtB,CAAA;AAED,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAA+B;IAC1E,eAAe;IACf,WAAW;IACX,MAAM;IACN,SAAS;IACT,UAAU;IACV,cAAc;CACf,CAAC,CAAA"}
1
+ {"version":3,"file":"process-task-projection.js","sourceRoot":"","sources":["../src/process-task-projection.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cohesivesystems/presentation-core",
3
- "version": "0.1.0-alpha.65",
3
+ "version": "0.1.0-alpha.66.1",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "exports": {
@@ -17,7 +17,7 @@
17
17
  "!src/**/*.test.tsx"
18
18
  ],
19
19
  "dependencies": {
20
- "@cohesivesystems/presentation-contracts": "0.1.0-alpha.65"
20
+ "@cohesivesystems/presentation-contracts": "0.1.0-alpha.66.1"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@types/node": "^24.12.0",
@@ -1,9 +1,53 @@
1
1
  export type ProcessTaskType = string
2
- export type ProcessLifecycleStatus = 'pending' | 'running' | 'waiting' | 'success' | 'error' | 'paused'
3
2
  export type ProcessTaskMetadataSelector = Partial<{
4
3
  readonly [K in keyof ProcessTaskMetadata]: ProcessTaskMetadata[K]
5
4
  }>
6
5
 
6
+ /**
7
+ * Stable diagnostic identifiers emitted while projecting declared Process
8
+ * lifecycle evidence into a presentation task.
9
+ *
10
+ * These codes describe the completeness and internal consistency of evidence;
11
+ * they are not a parallel catalog of canonical Process statuses.
12
+ */
13
+ export const processTaskLifecycleDiagnosticCodes = {
14
+ activeAndTerminal: 'process.task.lifecycle.active-and-terminal',
15
+ failureWhileNonTerminal: 'process.task.lifecycle.failure-while-non-terminal',
16
+ incomplete: 'process.task.lifecycle.incomplete',
17
+ notDisclosed: 'process.task.lifecycle.not-disclosed',
18
+ optimisticStart: 'process.task.lifecycle.optimistic-start',
19
+ progressingWhileInactive: 'process.task.lifecycle.progressing-while-inactive',
20
+ terminalAndProgressing: 'process.task.lifecycle.terminal-and-progressing',
21
+ } as const
22
+
23
+ /**
24
+ * Runtime- or backend-declared lifecycle evidence used by generic Process task
25
+ * presentation. Null means that the authority did not establish the fact.
26
+ */
27
+ export interface ProcessTaskLifecycleDeclaration {
28
+ readonly diagnosticCodes?: readonly string[] | null
29
+ readonly isActive?: boolean | null
30
+ readonly isFailure?: boolean | null
31
+ readonly isProgressing?: boolean | null
32
+ readonly isTerminal?: boolean | null
33
+ readonly tone?: string | null
34
+ }
35
+
36
+ /**
37
+ * Normalized lifecycle evidence retained on a Process task.
38
+ *
39
+ * Presentation runtimes consume these declared facts without interpreting
40
+ * status strings, timestamps, labels, failure text, or target-specific enums.
41
+ */
42
+ export interface ProcessTaskLifecycle {
43
+ readonly diagnosticCodes: readonly string[]
44
+ readonly isActive: boolean | null
45
+ readonly isFailure: boolean | null
46
+ readonly isProgressing: boolean | null
47
+ readonly isTerminal: boolean | null
48
+ readonly tone: string | null
49
+ }
50
+
7
51
  export interface ProcessTaskMetadata {
8
52
  readonly correlationId?: string | null
9
53
  readonly ediSpecId?: string | null
@@ -21,7 +65,7 @@ export interface ProcessTask {
21
65
  readonly title: string
22
66
  readonly status: string
23
67
  readonly statusLabel: string
24
- readonly lifecycleStatus: ProcessLifecycleStatus
68
+ readonly lifecycle: ProcessTaskLifecycle
25
69
  readonly startedAtUtc?: string | null
26
70
  readonly updatedAtUtc?: string | null
27
71
  readonly completedAtUtc?: string | null
@@ -51,6 +95,7 @@ export interface ProcessTaskStartRegistration {
51
95
  readonly detailsHref?: string | null
52
96
  readonly failureMessage?: string | null
53
97
  readonly invalidateQueryKeys?: readonly (readonly unknown[])[]
98
+ readonly lifecycle: ProcessTaskLifecycle
54
99
  readonly metadata?: ProcessTaskMetadata
55
100
  readonly processId: string
56
101
  readonly processName?: string | null
@@ -80,7 +125,18 @@ export interface ProcessTaskToast {
80
125
  }
81
126
 
82
127
  export function isProcessTaskTerminal(task: ProcessTask) {
83
- return isTerminalProcessStatus(task.status, task.completedAtUtc)
128
+ return task.lifecycle.isTerminal === true &&
129
+ task.lifecycle.isActive === false &&
130
+ task.lifecycle.isProgressing === false
131
+ }
132
+
133
+ /**
134
+ * Returns whether a task may still be active according to declared lifecycle
135
+ * evidence. Unknown evidence remains potentially active so an active-only
136
+ * admission check cannot accidentally admit a duplicate Process start.
137
+ */
138
+ export function isProcessTaskPotentiallyActive(task: ProcessTask) {
139
+ return !isProcessTaskTerminal(task)
84
140
  }
85
141
 
86
142
  export function findProcessTask(
@@ -101,7 +157,7 @@ export function matchesProcessTaskSelector(
101
157
  task: ProcessTask,
102
158
  selector: ProcessTaskSelector,
103
159
  ) {
104
- if (selector.activeOnly && isProcessTaskTerminal(task)) {
160
+ if (selector.activeOnly && !isProcessTaskPotentiallyActive(task)) {
105
161
  return false
106
162
  }
107
163
 
@@ -112,16 +168,62 @@ export function matchesProcessTaskSelector(
112
168
  return matchesProcessTaskMetadataSelector(task.metadata, selector.metadata)
113
169
  }
114
170
 
115
- export function isTerminalProcessStatus(status: string, completedAtUtc?: string | null) {
116
- if (['Completed', 'Failed', 'Cancelled', 'Canceled', 'Terminated'].includes(status)) {
117
- return true
171
+ /**
172
+ * Normalizes target-declared lifecycle evidence and records incomplete or
173
+ * contradictory facts without changing their meaning.
174
+ */
175
+ export function createProcessTaskLifecycle(
176
+ declaration?: ProcessTaskLifecycleDeclaration | null,
177
+ ): ProcessTaskLifecycle {
178
+ if (!declaration) {
179
+ return {
180
+ diagnosticCodes: [processTaskLifecycleDiagnosticCodes.notDisclosed],
181
+ isActive: null,
182
+ isFailure: null,
183
+ isProgressing: null,
184
+ isTerminal: null,
185
+ tone: null,
186
+ }
118
187
  }
119
188
 
120
- if (['Pending', 'Running', 'Waiting', 'Suspended'].includes(status)) {
121
- return false
189
+ const lifecycle: Omit<ProcessTaskLifecycle, 'diagnosticCodes'> = {
190
+ isActive: declaration.isActive ?? null,
191
+ isFailure: declaration.isFailure ?? null,
192
+ isProgressing: declaration.isProgressing ?? null,
193
+ isTerminal: declaration.isTerminal ?? null,
194
+ tone: declaration.tone ?? null,
122
195
  }
196
+ const diagnosticCodes = new Set(declaration.diagnosticCodes ?? [])
123
197
 
124
- return Boolean(completedAtUtc)
198
+ if (
199
+ lifecycle.isActive === null ||
200
+ lifecycle.isFailure === null ||
201
+ lifecycle.isProgressing === null ||
202
+ lifecycle.isTerminal === null
203
+ ) {
204
+ diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.incomplete)
205
+ }
206
+
207
+ if (lifecycle.isActive === true && lifecycle.isTerminal === true) {
208
+ diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.activeAndTerminal)
209
+ }
210
+
211
+ if (lifecycle.isFailure === true && lifecycle.isTerminal === false) {
212
+ diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.failureWhileNonTerminal)
213
+ }
214
+
215
+ if (lifecycle.isProgressing === true && lifecycle.isActive === false) {
216
+ diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.progressingWhileInactive)
217
+ }
218
+
219
+ if (lifecycle.isProgressing === true && lifecycle.isTerminal === true) {
220
+ diagnosticCodes.add(processTaskLifecycleDiagnosticCodes.terminalAndProgressing)
221
+ }
222
+
223
+ return {
224
+ ...lifecycle,
225
+ diagnosticCodes: Array.from(diagnosticCodes),
226
+ }
125
227
  }
126
228
 
127
229
  function matchesProcessTaskMetadataSelector(
@@ -8,6 +8,9 @@ import type {
8
8
  } from './module'
9
9
  import {
10
10
  type ProcessTask,
11
+ createProcessTaskLifecycle,
12
+ processTaskLifecycleDiagnosticCodes,
13
+ type ProcessTaskLifecycleDeclaration,
11
14
  type ProcessTaskMetadata,
12
15
  type ProcessTaskSelector,
13
16
  type ProcessTaskStartRegistration,
@@ -52,6 +55,7 @@ export interface ProjectProcessTaskStartRegistrationOptions {
52
55
  readonly detailsHref?: string | null
53
56
  readonly failureMessage?: string | null
54
57
  readonly invalidateQueryKeys?: readonly (readonly unknown[])[]
58
+ readonly lifecycle?: ProcessTaskLifecycleDeclaration | null
55
59
  readonly metadata?: ProcessTaskMetadata
56
60
  readonly processTypeLabel?: string | null
57
61
  readonly processTypeTone?: string | null
@@ -145,6 +149,7 @@ export function projectProcessTaskStartRegistration({
145
149
  detailsHref,
146
150
  failureMessage,
147
151
  invalidateQueryKeys,
152
+ lifecycle,
148
153
  metadata,
149
154
  processTypeLabel,
150
155
  processTypeTone,
@@ -173,6 +178,14 @@ export function projectProcessTaskStartRegistration({
173
178
  detailsHref: detailsHref ?? projectActionResultHref({ action, createHref, result }),
174
179
  failureMessage,
175
180
  invalidateQueryKeys: invalidateQueryKeys ?? actionInvalidateQueryKeys,
181
+ lifecycle: createProcessTaskLifecycle(lifecycle ?? {
182
+ diagnosticCodes: [processTaskLifecycleDiagnosticCodes.optimisticStart],
183
+ isActive: true,
184
+ isFailure: false,
185
+ isProgressing: true,
186
+ isTerminal: false,
187
+ tone: 'info',
188
+ }),
176
189
  metadata: {
177
190
  ...selectorMetadata,
178
191
  ...readConventionalProcessTaskMetadata(result),