@cynodia/axiom-server 0.13.1-alpha.1 → 0.14.0-alpha.2

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.
Files changed (56) hide show
  1. package/conformance/live/aggregate-reset.json +1 -1
  2. package/conformance/live/dependency-commit-no-change.json +1 -1
  3. package/conformance/live/f2-state-ref-refused.json +1 -1
  4. package/conformance/live/initial-result.json +1 -1
  5. package/conformance/live/insert-on-filter-entry.json +1 -1
  6. package/conformance/live/limit-boundary.json +1 -1
  7. package/conformance/live/manifest.json +1 -1
  8. package/conformance/live/not-live-capable.json +1 -1
  9. package/conformance/live/provider-only-sequence.json +1 -1
  10. package/conformance/live/provider-record-remove.json +1 -1
  11. package/conformance/live/remove-on-filter-exit.json +1 -1
  12. package/conformance/live/update-with-move.json +1 -1
  13. package/conformance/live/update-without-move.json +1 -1
  14. package/conformance/workflow/manifest.json +94 -0
  15. package/conformance/workflow/workflow-action-on-error.json +278 -0
  16. package/conformance/workflow/workflow-action-retry.json +296 -0
  17. package/conformance/workflow/workflow-action-success.json +268 -0
  18. package/conformance/workflow/workflow-action-terminal-failure.json +274 -0
  19. package/conformance/workflow/workflow-branch-false.json +267 -0
  20. package/conformance/workflow/workflow-branch-true.json +267 -0
  21. package/conformance/workflow/workflow-cancel-waiting.json +278 -0
  22. package/conformance/workflow/workflow-event-match.json +277 -0
  23. package/conformance/workflow/workflow-event-nonmatch.json +275 -0
  24. package/conformance/workflow/workflow-event-timeout.json +274 -0
  25. package/conformance/workflow/workflow-start-complete.json +264 -0
  26. package/conformance/workflow/workflow-start-idempotency.json +264 -0
  27. package/conformance/workflow/workflow-timer.json +270 -0
  28. package/dist/authority-identity.d.ts +36 -5
  29. package/dist/authority-identity.js +64 -19
  30. package/dist/deps.d.ts +2 -2
  31. package/dist/deps.js +1 -1
  32. package/dist/index.d.ts +4 -0
  33. package/dist/index.js +4 -0
  34. package/dist/persistence.d.ts +32 -0
  35. package/dist/persistence.js +24 -0
  36. package/dist/server.d.ts +43 -0
  37. package/dist/server.js +117 -4
  38. package/dist/sqlite-persistence.js +46 -0
  39. package/dist/sqlite-workflow-store.d.ts +25 -0
  40. package/dist/sqlite-workflow-store.js +382 -0
  41. package/dist/workflow-conformance.d.ts +65 -0
  42. package/dist/workflow-conformance.js +75 -0
  43. package/dist/workflow-store.d.ts +212 -0
  44. package/dist/workflow-store.js +226 -0
  45. package/dist/workflows.d.ts +136 -0
  46. package/dist/workflows.js +819 -0
  47. package/package.json +3 -3
  48. package/schema/protocol.v1.schema.json +1 -1
  49. package/schema/server-ir.v1.schema.json +1 -1
  50. package/schema/server-ir.v2.schema.json +1 -1
  51. package/schema/server-ir.v3.schema.json +1 -1
  52. package/schema/server-ir.v4.schema.json +1 -1
  53. package/schema/server-ir.v5.schema.json +1 -1
  54. package/schema/server-ir.v6.schema.json +1 -1
  55. package/schema/server-ir.v7.schema.json +1 -1
  56. package/schema/server-ir.v8.schema.json +2899 -0
@@ -10,7 +10,7 @@
10
10
  "contract": "axiom.server.v6",
11
11
  "id": "live-query-conformance",
12
12
  "name": "Live Query Conformance",
13
- "version": "0.13.1-alpha.1",
13
+ "version": "0.14.0-alpha.2",
14
14
  "entities": [
15
15
  {
16
16
  "id": "entity_order",
@@ -10,7 +10,7 @@
10
10
  "contract": "axiom.server.v6",
11
11
  "id": "live-query-conformance",
12
12
  "name": "Live Query Conformance",
13
- "version": "0.13.1-alpha.1",
13
+ "version": "0.14.0-alpha.2",
14
14
  "entities": [
15
15
  {
16
16
  "id": "entity_order",
@@ -11,7 +11,7 @@
11
11
  "contract": "axiom.server.v6",
12
12
  "id": "live-query-conformance",
13
13
  "name": "Live Query Conformance",
14
- "version": "0.13.1-alpha.1",
14
+ "version": "0.14.0-alpha.2",
15
15
  "entities": [
16
16
  {
17
17
  "id": "entity_order",
@@ -9,7 +9,7 @@
9
9
  "contract": "axiom.server.v6",
10
10
  "id": "live-query-conformance",
11
11
  "name": "Live Query Conformance",
12
- "version": "0.13.1-alpha.1",
12
+ "version": "0.14.0-alpha.2",
13
13
  "entities": [
14
14
  {
15
15
  "id": "entity_order",
@@ -10,7 +10,7 @@
10
10
  "contract": "axiom.server.v6",
11
11
  "id": "live-query-conformance",
12
12
  "name": "Live Query Conformance",
13
- "version": "0.13.1-alpha.1",
13
+ "version": "0.14.0-alpha.2",
14
14
  "entities": [
15
15
  {
16
16
  "id": "entity_order",
@@ -9,7 +9,7 @@
9
9
  "contract": "axiom.server.v6",
10
10
  "id": "live-query-conformance",
11
11
  "name": "Live Query Conformance",
12
- "version": "0.13.1-alpha.1",
12
+ "version": "0.14.0-alpha.2",
13
13
  "entities": [
14
14
  {
15
15
  "id": "entity_order",
@@ -2,7 +2,7 @@
2
2
  "conformance": "axiom.conformance.v7",
3
3
  "baseContract": "axiom.server.v7",
4
4
  "protocol": "axiom.protocol.v1",
5
- "release": "0.13.1-alpha.1",
5
+ "release": "0.14.0-alpha.2",
6
6
  "description": "Portable live-query conformance fixtures (spec13 §152, §194). Each file carries a compiled axiom.server.v7 Server IR, a dataset of provider rows, the live query to open, its required initial result, and a script of committed mutations each paired with the live message that must follow (canonical update / whole reset / none). The runner also checks the primary invariant: folding the delivered stream must equal a fresh one-shot execution of the same QueryDef. Running one needs only a DataProvider and the semantics in docs/LIVE_QUERIES.md.",
7
7
  "fixtures": [
8
8
  {
@@ -10,7 +10,7 @@
10
10
  "contract": "axiom.server.v6",
11
11
  "id": "live-query-conformance",
12
12
  "name": "Live Query Conformance",
13
- "version": "0.13.1-alpha.1",
13
+ "version": "0.14.0-alpha.2",
14
14
  "entities": [
15
15
  {
16
16
  "id": "entity_order",
@@ -12,7 +12,7 @@
12
12
  "contract": "axiom.server.v6",
13
13
  "id": "live-query-conformance",
14
14
  "name": "Live Query Conformance",
15
- "version": "0.13.1-alpha.1",
15
+ "version": "0.14.0-alpha.2",
16
16
  "entities": [
17
17
  {
18
18
  "id": "entity_order",
@@ -9,7 +9,7 @@
9
9
  "contract": "axiom.server.v6",
10
10
  "id": "live-query-conformance",
11
11
  "name": "Live Query Conformance",
12
- "version": "0.13.1-alpha.1",
12
+ "version": "0.14.0-alpha.2",
13
13
  "entities": [
14
14
  {
15
15
  "id": "entity_order",
@@ -10,7 +10,7 @@
10
10
  "contract": "axiom.server.v6",
11
11
  "id": "live-query-conformance",
12
12
  "name": "Live Query Conformance",
13
- "version": "0.13.1-alpha.1",
13
+ "version": "0.14.0-alpha.2",
14
14
  "entities": [
15
15
  {
16
16
  "id": "entity_order",
@@ -10,7 +10,7 @@
10
10
  "contract": "axiom.server.v6",
11
11
  "id": "live-query-conformance",
12
12
  "name": "Live Query Conformance",
13
- "version": "0.13.1-alpha.1",
13
+ "version": "0.14.0-alpha.2",
14
14
  "entities": [
15
15
  {
16
16
  "id": "entity_order",
@@ -9,7 +9,7 @@
9
9
  "contract": "axiom.server.v6",
10
10
  "id": "live-query-conformance",
11
11
  "name": "Live Query Conformance",
12
- "version": "0.13.1-alpha.1",
12
+ "version": "0.14.0-alpha.2",
13
13
  "entities": [
14
14
  {
15
15
  "id": "entity_order",
@@ -0,0 +1,94 @@
1
+ {
2
+ "conformance": "axiom.conformance.v8",
3
+ "baseContract": "axiom.server.v8",
4
+ "protocol": "axiom.protocol.v1",
5
+ "release": "0.14.0-alpha.2",
6
+ "description": "Portable workflow conformance fixtures (spec14 §156-§159). Each file carries a compiled axiom.server.v8 Server IR, the start arguments, a deterministic driver script, and the required logical transition history + terminal state. Physical action attempts may be duplicated; the logical history must match exactly. Running one needs only the in-memory WorkflowStore and the semantics in docs/WORKFLOWS.md.",
7
+ "fixtures": [
8
+ {
9
+ "name": "workflow-start-complete",
10
+ "covers": [
11
+ "start",
12
+ "complete"
13
+ ]
14
+ },
15
+ {
16
+ "name": "workflow-action-success",
17
+ "covers": [
18
+ "action"
19
+ ]
20
+ },
21
+ {
22
+ "name": "workflow-action-terminal-failure",
23
+ "covers": [
24
+ "action",
25
+ "fail"
26
+ ]
27
+ },
28
+ {
29
+ "name": "workflow-action-on-error",
30
+ "covers": [
31
+ "action",
32
+ "onError"
33
+ ]
34
+ },
35
+ {
36
+ "name": "workflow-action-retry",
37
+ "covers": [
38
+ "action",
39
+ "retry"
40
+ ]
41
+ },
42
+ {
43
+ "name": "workflow-timer",
44
+ "covers": [
45
+ "timer"
46
+ ]
47
+ },
48
+ {
49
+ "name": "workflow-event-match",
50
+ "covers": [
51
+ "wait-event",
52
+ "correlation"
53
+ ]
54
+ },
55
+ {
56
+ "name": "workflow-event-nonmatch",
57
+ "covers": [
58
+ "wait-event",
59
+ "correlation"
60
+ ]
61
+ },
62
+ {
63
+ "name": "workflow-event-timeout",
64
+ "covers": [
65
+ "wait-event",
66
+ "timeout"
67
+ ]
68
+ },
69
+ {
70
+ "name": "workflow-branch-true",
71
+ "covers": [
72
+ "branch"
73
+ ]
74
+ },
75
+ {
76
+ "name": "workflow-branch-false",
77
+ "covers": [
78
+ "branch"
79
+ ]
80
+ },
81
+ {
82
+ "name": "workflow-cancel-waiting",
83
+ "covers": [
84
+ "cancel"
85
+ ]
86
+ },
87
+ {
88
+ "name": "workflow-start-idempotency",
89
+ "covers": [
90
+ "start-idempotency"
91
+ ]
92
+ }
93
+ ]
94
+ }
@@ -0,0 +1,278 @@
1
+ {
2
+ "conformance": "axiom.conformance.v8",
3
+ "name": "workflow-action-on-error",
4
+ "covers": [
5
+ "action",
6
+ "onError"
7
+ ],
8
+ "description": "A terminal action failure follows the declared onError edge.",
9
+ "workflowId": "wf_action",
10
+ "actionOutcomes": {
11
+ "action_do": {
12
+ "ok": false,
13
+ "retryable": false
14
+ }
15
+ },
16
+ "steps": [],
17
+ "expectHistory": [
18
+ "started",
19
+ "step-activated",
20
+ "step-failed",
21
+ "step-activated",
22
+ "step-succeeded",
23
+ "completed"
24
+ ],
25
+ "expectStatus": "completed",
26
+ "expectActionInvocations": {
27
+ "action_do": 1,
28
+ "action_alt": 1
29
+ },
30
+ "serverIR": {
31
+ "contract": "axiom.server.v8",
32
+ "id": "workflow-conformance",
33
+ "name": "Workflow Conformance",
34
+ "version": "0.14.0-alpha.2",
35
+ "entities": [
36
+ {
37
+ "id": "entity_pay",
38
+ "kind": "entity",
39
+ "fields": [
40
+ {
41
+ "id": "field_pay_key",
42
+ "valueType": {
43
+ "kind": "primitive",
44
+ "primitive": "string"
45
+ },
46
+ "required": true
47
+ }
48
+ ]
49
+ }
50
+ ],
51
+ "fields": {
52
+ "field_pay_key": {
53
+ "entityId": "entity_pay",
54
+ "field": {
55
+ "id": "field_pay_key",
56
+ "valueType": {
57
+ "kind": "primitive",
58
+ "primitive": "string"
59
+ },
60
+ "required": true
61
+ }
62
+ }
63
+ },
64
+ "states": [],
65
+ "actions": {},
66
+ "constraints": [],
67
+ "transitionConstraints": [],
68
+ "observableStateIds": [],
69
+ "events": [
70
+ {
71
+ "id": "event_go",
72
+ "kind": "event",
73
+ "payloadType": {
74
+ "kind": "entity",
75
+ "entityId": "entity_pay"
76
+ }
77
+ }
78
+ ],
79
+ "workflows": [
80
+ {
81
+ "id": "wf_start_complete",
82
+ "kind": "workflow",
83
+ "entry": "c",
84
+ "steps": [
85
+ {
86
+ "type": "complete",
87
+ "id": "c"
88
+ }
89
+ ]
90
+ },
91
+ {
92
+ "id": "wf_action",
93
+ "kind": "workflow",
94
+ "entry": "a",
95
+ "steps": [
96
+ {
97
+ "type": "action",
98
+ "id": "a",
99
+ "action": "action_do",
100
+ "arguments": {},
101
+ "next": "done",
102
+ "onError": "recover"
103
+ },
104
+ {
105
+ "type": "action",
106
+ "id": "recover",
107
+ "action": "action_alt",
108
+ "arguments": {},
109
+ "next": "done"
110
+ },
111
+ {
112
+ "type": "complete",
113
+ "id": "done"
114
+ }
115
+ ]
116
+ },
117
+ {
118
+ "id": "wf_action_fail",
119
+ "kind": "workflow",
120
+ "entry": "a",
121
+ "steps": [
122
+ {
123
+ "type": "action",
124
+ "id": "a",
125
+ "action": "action_do",
126
+ "arguments": {},
127
+ "next": "done"
128
+ },
129
+ {
130
+ "type": "complete",
131
+ "id": "done"
132
+ }
133
+ ]
134
+ },
135
+ {
136
+ "id": "wf_retry",
137
+ "kind": "workflow",
138
+ "entry": "a",
139
+ "steps": [
140
+ {
141
+ "type": "action",
142
+ "id": "a",
143
+ "action": "action_do",
144
+ "arguments": {},
145
+ "next": "done",
146
+ "retry": {
147
+ "maxAttempts": 5,
148
+ "initialDelaySeconds": 1,
149
+ "backoffMultiplier": 2,
150
+ "maxDelaySeconds": 30
151
+ }
152
+ },
153
+ {
154
+ "type": "complete",
155
+ "id": "done"
156
+ }
157
+ ]
158
+ },
159
+ {
160
+ "id": "wf_timer",
161
+ "kind": "workflow",
162
+ "entry": "t",
163
+ "steps": [
164
+ {
165
+ "type": "timer",
166
+ "id": "t",
167
+ "after": {
168
+ "seconds": 3600
169
+ },
170
+ "next": "done"
171
+ },
172
+ {
173
+ "type": "complete",
174
+ "id": "done"
175
+ }
176
+ ]
177
+ },
178
+ {
179
+ "id": "wf_event",
180
+ "kind": "workflow",
181
+ "inputs": [
182
+ {
183
+ "id": "input_key",
184
+ "valueType": {
185
+ "kind": "primitive",
186
+ "primitive": "string"
187
+ },
188
+ "required": true
189
+ }
190
+ ],
191
+ "entry": "w",
192
+ "steps": [
193
+ {
194
+ "type": "wait-event",
195
+ "id": "w",
196
+ "event": "event_go",
197
+ "where": {
198
+ "kind": "binary",
199
+ "operator": "eq",
200
+ "left": {
201
+ "kind": "field",
202
+ "source": {
203
+ "kind": "ref",
204
+ "targetId": "EVENT"
205
+ },
206
+ "fieldId": "field_pay_key"
207
+ },
208
+ "right": {
209
+ "kind": "ref",
210
+ "targetId": "input_key"
211
+ }
212
+ },
213
+ "next": "done",
214
+ "timeout": {
215
+ "seconds": 7200
216
+ },
217
+ "onTimeout": "gaveup"
218
+ },
219
+ {
220
+ "type": "complete",
221
+ "id": "done"
222
+ },
223
+ {
224
+ "type": "fail",
225
+ "id": "gaveup",
226
+ "error": {
227
+ "reason": {
228
+ "kind": "literal",
229
+ "value": "timeout"
230
+ }
231
+ }
232
+ }
233
+ ]
234
+ },
235
+ {
236
+ "id": "wf_branch",
237
+ "kind": "workflow",
238
+ "inputs": [
239
+ {
240
+ "id": "input_flag",
241
+ "valueType": {
242
+ "kind": "primitive",
243
+ "primitive": "boolean"
244
+ },
245
+ "required": true
246
+ }
247
+ ],
248
+ "entry": "b",
249
+ "steps": [
250
+ {
251
+ "type": "branch",
252
+ "id": "b",
253
+ "when": {
254
+ "kind": "ref",
255
+ "targetId": "input_flag"
256
+ },
257
+ "then": "yes",
258
+ "else": "no"
259
+ },
260
+ {
261
+ "type": "complete",
262
+ "id": "yes"
263
+ },
264
+ {
265
+ "type": "fail",
266
+ "id": "no",
267
+ "error": {
268
+ "reason": {
269
+ "kind": "literal",
270
+ "value": "flag-false"
271
+ }
272
+ }
273
+ }
274
+ ]
275
+ }
276
+ ]
277
+ }
278
+ }