@hyperscale0/udl 2.6.1 → 3.0.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.
Files changed (213) hide show
  1. package/CHANGELOG.md +4 -328
  2. package/LICENSING.md +1 -2
  3. package/README.md +3 -114
  4. package/TRADEMARKS.md +2 -2
  5. package/dist/diagnostics.d.ts +21 -201
  6. package/dist/diagnostics.d.ts.map +1 -1
  7. package/dist/diagnostics.js +29 -193
  8. package/dist/diagnostics.js.map +1 -1
  9. package/dist/evolution.d.ts +3 -132
  10. package/dist/evolution.d.ts.map +1 -1
  11. package/dist/evolution.js +29 -633
  12. package/dist/evolution.js.map +1 -1
  13. package/dist/finance.d.ts +5 -72
  14. package/dist/finance.d.ts.map +1 -1
  15. package/dist/finance.js +233 -737
  16. package/dist/finance.js.map +1 -1
  17. package/dist/index.d.ts +7 -18
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +7 -12
  20. package/dist/index.js.map +1 -1
  21. package/dist/instrument-references.d.ts.map +1 -1
  22. package/dist/instrument-references.js +3 -2
  23. package/dist/instrument-references.js.map +1 -1
  24. package/dist/schema.d.ts +2079 -4564
  25. package/dist/schema.d.ts.map +1 -1
  26. package/dist/schema.js +270 -1609
  27. package/dist/schema.js.map +1 -1
  28. package/dist/validation.d.ts +8 -104
  29. package/dist/validation.d.ts.map +1 -1
  30. package/dist/validation.js +653 -3271
  31. package/dist/validation.js.map +1 -1
  32. package/docs/README.md +148 -14
  33. package/package.json +7 -11
  34. package/spec/README.md +152 -164
  35. package/spec/darb.udl.json +249 -0
  36. package/spec/udl.schema.json +4104 -3202
  37. package/src/diagnostics.ts +51 -246
  38. package/src/evolution.ts +39 -1045
  39. package/src/finance.ts +287 -1127
  40. package/src/index.ts +18 -142
  41. package/src/instrument-references.ts +3 -2
  42. package/src/schema.ts +285 -1843
  43. package/src/validation.ts +870 -5611
  44. package/conformance/README.md +0 -82
  45. package/conformance/evolution/action-contract.expected.json +0 -10
  46. package/conformance/evolution/action-contract.live.udl +0 -44
  47. package/conformance/evolution/action-contract.next.udl +0 -45
  48. package/conformance/evolution/product-identity.expected.json +0 -10
  49. package/conformance/evolution/product-identity.live.udl +0 -55
  50. package/conformance/evolution/product-identity.next.udl +0 -55
  51. package/conformance/evolution/version-required.expected.json +0 -10
  52. package/conformance/evolution/version-required.live.udl +0 -55
  53. package/conformance/evolution/version-required.next.udl +0 -58
  54. package/conformance/invalid/action-without-transition.expected.json +0 -10
  55. package/conformance/invalid/action-without-transition.udl +0 -60
  56. package/conformance/invalid/agent-description-too-long.expected.json +0 -10
  57. package/conformance/invalid/agent-description-too-long.udl +0 -57
  58. package/conformance/invalid/blank-title.expected.json +0 -10
  59. package/conformance/invalid/blank-title.udl +0 -54
  60. package/conformance/invalid/call-binds-results.expected.json +0 -10
  61. package/conformance/invalid/call-binds-results.udl +0 -314
  62. package/conformance/invalid/call-unknown-action.expected.json +0 -10
  63. package/conformance/invalid/call-unknown-action.udl +0 -314
  64. package/conformance/invalid/composition-dial-duplicate-key.expected.json +0 -10
  65. package/conformance/invalid/composition-dial-duplicate-key.udl +0 -73
  66. package/conformance/invalid/depth-budget.expected.json +0 -10
  67. package/conformance/invalid/depth-budget.udl +0 -49
  68. package/conformance/invalid/duplicate-subject.expected.json +0 -10
  69. package/conformance/invalid/duplicate-subject.udl +0 -230
  70. package/conformance/invalid/forged-effects.expected.json +0 -10
  71. package/conformance/invalid/forged-effects.udl +0 -76
  72. package/conformance/invalid/format-version.expected.json +0 -10
  73. package/conformance/invalid/format-version.udl +0 -54
  74. package/conformance/invalid/instrument-id-not-snake-case.expected.json +0 -10
  75. package/conformance/invalid/instrument-id-not-snake-case.udl +0 -54
  76. package/conformance/invalid/invalid-aggregate-gate-shape.expected.json +0 -10
  77. package/conformance/invalid/invalid-aggregate-gate-shape.udl +0 -1819
  78. package/conformance/invalid/invalid-check-duration.expected.json +0 -10
  79. package/conformance/invalid/invalid-check-duration.udl +0 -219
  80. package/conformance/invalid/invalid-dial-anchor.expected.json +0 -10
  81. package/conformance/invalid/invalid-dial-anchor.udl +0 -219
  82. package/conformance/invalid/invalid-exception-parent-ref.expected.json +0 -10
  83. package/conformance/invalid/invalid-exception-parent-ref.udl +0 -2487
  84. package/conformance/invalid/invalid-exposure-shape.expected.json +0 -10
  85. package/conformance/invalid/invalid-exposure-shape.udl +0 -1819
  86. package/conformance/invalid/invalid-journeys.expected.json +0 -10
  87. package/conformance/invalid/invalid-journeys.udl +0 -77
  88. package/conformance/invalid/invalid-remainder.expected.json +0 -10
  89. package/conformance/invalid/invalid-remainder.udl +0 -220
  90. package/conformance/invalid/invalid-schema-keyword.expected.json +0 -10
  91. package/conformance/invalid/invalid-schema-keyword.udl +0 -220
  92. package/conformance/invalid/invalid-utf8.expected.json +0 -10
  93. package/conformance/invalid/invalid-utf8.udl +0 -1
  94. package/conformance/invalid/leaf-effect-mismatch.expected.json +0 -10
  95. package/conformance/invalid/leaf-effect-mismatch.udl +0 -314
  96. package/conformance/invalid/malformed-json.expected.json +0 -10
  97. package/conformance/invalid/malformed-json.udl +0 -1
  98. package/conformance/invalid/missing-create-action.expected.json +0 -10
  99. package/conformance/invalid/missing-create-action.udl +0 -48
  100. package/conformance/invalid/missing-exception-amount-field.expected.json +0 -10
  101. package/conformance/invalid/missing-exception-amount-field.udl +0 -2487
  102. package/conformance/invalid/missing-exception-contract.expected.json +0 -14
  103. package/conformance/invalid/missing-exception-contract.udl +0 -2523
  104. package/conformance/invalid/missing-exception-reason-field.expected.json +0 -10
  105. package/conformance/invalid/missing-exception-reason-field.udl +0 -2487
  106. package/conformance/invalid/not-an-object.expected.json +0 -10
  107. package/conformance/invalid/not-an-object.udl +0 -1
  108. package/conformance/invalid/payout-reconcile-not-a-bank-debit.expected.json +0 -10
  109. package/conformance/invalid/payout-reconcile-not-a-bank-debit.udl +0 -259
  110. package/conformance/invalid/piece-plan-without-partition.expected.json +0 -10
  111. package/conformance/invalid/piece-plan-without-partition.udl +0 -305
  112. package/conformance/invalid/private-action-independent-approval.expected.json +0 -10
  113. package/conformance/invalid/private-action-independent-approval.udl +0 -314
  114. package/conformance/invalid/quote-freeze-set-incomplete.expected.json +0 -10
  115. package/conformance/invalid/quote-freeze-set-incomplete.udl +0 -261
  116. package/conformance/invalid/quote-named-reference-gate.expected.json +0 -10
  117. package/conformance/invalid/quote-named-reference-gate.udl +0 -50
  118. package/conformance/invalid/reconcile-named-reference-gate.expected.json +0 -10
  119. package/conformance/invalid/reconcile-named-reference-gate.udl +0 -50
  120. package/conformance/invalid/unfund-order-not-reversed.expected.json +0 -10
  121. package/conformance/invalid/unfund-order-not-reversed.udl +0 -314
  122. package/conformance/invalid/unknown-key.expected.json +0 -10
  123. package/conformance/invalid/unknown-key.udl +0 -55
  124. package/conformance/invalid/unknown-reference-gate-field.expected.json +0 -10
  125. package/conformance/invalid/unknown-reference-gate-field.udl +0 -1819
  126. package/conformance/invalid/unknown-required-field.expected.json +0 -10
  127. package/conformance/invalid/unknown-required-field.udl +0 -220
  128. package/conformance/invalid/unreachable-state.expected.json +0 -10
  129. package/conformance/invalid/unreachable-state.udl +0 -55
  130. package/conformance/invalid/wrong-exception-amount-field.expected.json +0 -10
  131. package/conformance/invalid/wrong-exception-amount-field.udl +0 -2487
  132. package/conformance/invalid/wrong-exception-reason-field.expected.json +0 -10
  133. package/conformance/invalid/wrong-exception-reason-field.udl +0 -2487
  134. package/conformance/valid/agent-description.expected.json +0 -6
  135. package/conformance/valid/agent-description.udl +0 -66
  136. package/conformance/valid/attested.expected.json +0 -6
  137. package/conformance/valid/attested.udl +0 -251
  138. package/conformance/valid/cards.expected.json +0 -6
  139. package/conformance/valid/cards.udl +0 -1579
  140. package/conformance/valid/commerce-escrow.expected.json +0 -6
  141. package/conformance/valid/commerce-escrow.udl +0 -1512
  142. package/conformance/valid/compiled-crowdfunding.expected.json +0 -6
  143. package/conformance/valid/compiled-crowdfunding.udl +0 -1843
  144. package/conformance/valid/compiled-watch-club.expected.json +0 -6
  145. package/conformance/valid/compiled-watch-club.udl +0 -2486
  146. package/conformance/valid/complete-contract.expected.json +0 -6
  147. package/conformance/valid/complete-contract.udl +0 -218
  148. package/conformance/valid/effect-signatures.expected.json +0 -6
  149. package/conformance/valid/effect-signatures.udl +0 -75
  150. package/conformance/valid/hand-edited.expected.json +0 -6
  151. package/conformance/valid/hand-edited.udl +0 -1
  152. package/conformance/valid/insured-car-marketplace.expected.json +0 -6
  153. package/conformance/valid/insured-car-marketplace.udl +0 -1050
  154. package/conformance/valid/insured-travel.expected.json +0 -6
  155. package/conformance/valid/insured-travel.udl +0 -3469
  156. package/conformance/valid/minimal.expected.json +0 -6
  157. package/conformance/valid/minimal.udl +0 -62
  158. package/conformance/valid/piece-plan-calls.expected.json +0 -6
  159. package/conformance/valid/piece-plan-calls.udl +0 -314
  160. package/conformance/valid/protection.expected.json +0 -6
  161. package/conformance/valid/protection.udl +0 -1551
  162. package/conformance/valid/string-escaping.expected.json +0 -6
  163. package/conformance/valid/string-escaping.udl +0 -54
  164. package/conformance/valid/vocabulary.expected.json +0 -6
  165. package/conformance/valid/vocabulary.udl +0 -2012
  166. package/dist/allocation.d.ts +0 -60
  167. package/dist/allocation.d.ts.map +0 -1
  168. package/dist/allocation.js +0 -177
  169. package/dist/allocation.js.map +0 -1
  170. package/dist/check-profiles.d.ts +0 -57
  171. package/dist/check-profiles.d.ts.map +0 -1
  172. package/dist/check-profiles.js +0 -62
  173. package/dist/check-profiles.js.map +0 -1
  174. package/dist/distribution.d.ts +0 -15
  175. package/dist/distribution.d.ts.map +0 -1
  176. package/dist/distribution.js +0 -49
  177. package/dist/distribution.js.map +0 -1
  178. package/dist/effects.d.ts +0 -58
  179. package/dist/effects.d.ts.map +0 -1
  180. package/dist/effects.js +0 -1126
  181. package/dist/effects.js.map +0 -1
  182. package/dist/reference.d.ts +0 -3
  183. package/dist/reference.d.ts.map +0 -1
  184. package/dist/reference.js +0 -28
  185. package/dist/reference.js.map +0 -1
  186. package/dist/vocabulary.d.ts +0 -23
  187. package/dist/vocabulary.d.ts.map +0 -1
  188. package/dist/vocabulary.js +0 -1052
  189. package/dist/vocabulary.js.map +0 -1
  190. package/docs/funding-custody.md +0 -165
  191. package/docs/guide/01-a-document.md +0 -37
  192. package/docs/guide/02-money-steps.md +0 -23
  193. package/docs/guide/03-laws.md +0 -18
  194. package/docs/guide/04-fees-and-remainder.md +0 -36
  195. package/docs/guide/05-checks-updates-dials.md +0 -7
  196. package/docs/guide/06-effects.md +0 -11
  197. package/docs/guide/07-evolution.md +0 -11
  198. package/docs/guide/08-implementing.md +0 -13
  199. package/docs/guide/09-schedules-and-allocation.md +0 -132
  200. package/docs/llms-full.txt +0 -2008
  201. package/docs/llms.txt +0 -14
  202. package/docs/piece-plans.md +0 -148
  203. package/docs/reference/canonical.md +0 -16
  204. package/docs/reference/clauses.md +0 -1585
  205. package/docs/reference/cli.md +0 -24
  206. package/docs/reference/diagnostics.md +0 -38
  207. package/skills/udl/SKILL.md +0 -28
  208. package/src/allocation.ts +0 -259
  209. package/src/check-profiles.ts +0 -80
  210. package/src/distribution.ts +0 -61
  211. package/src/effects.ts +0 -1920
  212. package/src/reference.ts +0 -31
  213. package/src/vocabulary.ts +0 -1635
@@ -1,82 +0,0 @@
1
- # The UDL conformance suite
2
-
3
- Every file here is data. An implementation in any language can run the suite
4
- without importing the TypeScript reference implementation.
5
-
6
- ## Layout
7
-
8
- ```
9
- conformance/
10
- valid/<case>.udl
11
- valid/<case>.expected.json
12
- invalid/<case>.udl
13
- invalid/<case>.expected.json
14
- evolution/<case>.live.udl
15
- evolution/<case>.next.udl
16
- evolution/<case>.expected.json
17
- ```
18
-
19
- The runner fails if either half of a case is missing. An evolution case must
20
- have all three named files.
21
-
22
- ## Expected files
23
-
24
- A valid case:
25
-
26
- ```json
27
- {
28
- "canonical": "minimal.udl",
29
- "digest": "c21d198d69e9d4cadb33aaacf37581bb388e4a8964b7fc284606cfa9f65d35bb",
30
- "summary": "The smallest admitted document.",
31
- "verdict": "valid"
32
- }
33
- ```
34
-
35
- `digest` is lowercase SHA-256 over the canonical UTF-8 bytes. A document that
36
- is already canonical names itself.
37
-
38
- An invalid case:
39
-
40
- ```json
41
- {
42
- "issues": [{ "code": "UDL3001", "path": "$.instruments[0].actions" }],
43
- "summary": "Every instrument declares create.",
44
- "verdict": "invalid"
45
- }
46
- ```
47
-
48
- The runner requires a non-blank `summary`. It never compares messages.
49
-
50
- ## Conformance levels
51
-
52
- An implementation claims the highest level it passes.
53
-
54
- 1. Verdict. Admit every `valid/` document and refuse every `invalid/` document.
55
- 2. Canonical bytes. Serialize every valid document byte for byte as its named
56
- canonical file, including the trailing line feed, and match its digest.
57
- 3. Diagnostics. Report every listed code and path for each invalid document.
58
- The implementation may report extra issues.
59
- 4. Evolution. Admit both documents, then compare the live and next definitions.
60
- Report every listed UDL7xxx code and path. The implementation may report
61
- extra issues.
62
-
63
- ## Path grammar
64
-
65
- Issue paths use `$` for the document root, `.name` for an object member, and
66
- `[n]` for a zero-based array index. Evolution paths use the instrument index
67
- from the live document and continue to the changed member, such as
68
- `$.instruments[3].actions.reconcile`. A direct `diffInstrumentEvolution` call
69
- has no document index, so its paths start at `$.instruments`.
70
-
71
- ## Runner exit rule
72
-
73
- The runner exits 0 only if every case at the claimed level passes. A missing
74
- file, malformed expected file, unexpected verdict, byte mismatch, digest
75
- mismatch, or missing issue pair makes it exit nonzero.
76
-
77
- ## Adding a case
78
-
79
- Start from the smallest admitted document that carries the needed clause.
80
- Change one law where possible. Pin codes and paths, never messages. Valid cases
81
- must keep one example of every target in `udlClauseVocabulary`, including
82
- quote, commit, reconcile, checks, updates, dials, effects, and money clauses.
@@ -1,10 +0,0 @@
1
- {
2
- "issues": [
3
- {
4
- "code": "UDL7001",
5
- "path": "$.instruments[0].actions.close"
6
- }
7
- ],
8
- "summary": "Evolution identifies the changed action beneath the previous instrument index.",
9
- "verdict": "invalid"
10
- }
@@ -1,44 +0,0 @@
1
- {
2
- "instruments": [
3
- {
4
- "actionOrder": ["close", "create"],
5
- "actions": {
6
- "close": {
7
- "moves": [],
8
- "steps": [],
9
- "summary": "Close the note."
10
- },
11
- "create": {
12
- "moves": [],
13
- "steps": [],
14
- "summary": "File the note."
15
- }
16
- },
17
- "fields": {
18
- "reference": {
19
- "type": "string"
20
- }
21
- },
22
- "id": "note",
23
- "idPrefix": "note",
24
- "lifecycle": {
25
- "initial": "open",
26
- "states": ["open", "closed"],
27
- "transitions": {
28
- "close": {
29
- "from": ["open"],
30
- "to": "closed"
31
- }
32
- }
33
- },
34
- "required": ["reference"],
35
- "summary": "A note a tenant files and later closes.",
36
- "title": "Note"
37
- }
38
- ],
39
- "product": "minimal",
40
- "subjects": [],
41
- "title": "Minimal",
42
- "udl": 1,
43
- "version": 1
44
- }
@@ -1,45 +0,0 @@
1
- {
2
- "instruments": [
3
- {
4
- "actionOrder": ["close", "create"],
5
- "actions": {
6
- "close": {
7
- "eventName": "note.closed",
8
- "moves": [],
9
- "steps": [],
10
- "summary": "Close the note."
11
- },
12
- "create": {
13
- "moves": [],
14
- "steps": [],
15
- "summary": "File the note."
16
- }
17
- },
18
- "fields": {
19
- "reference": {
20
- "type": "string"
21
- }
22
- },
23
- "id": "note",
24
- "idPrefix": "note",
25
- "lifecycle": {
26
- "initial": "open",
27
- "states": ["open", "closed"],
28
- "transitions": {
29
- "close": {
30
- "from": ["open"],
31
- "to": "closed"
32
- }
33
- }
34
- },
35
- "required": ["reference"],
36
- "summary": "A note a tenant files and later closes.",
37
- "title": "Note"
38
- }
39
- ],
40
- "product": "minimal",
41
- "subjects": [],
42
- "title": "Minimal",
43
- "udl": 1,
44
- "version": 2
45
- }
@@ -1,10 +0,0 @@
1
- {
2
- "issues": [
3
- {
4
- "code": "UDL7001",
5
- "path": "$.product"
6
- }
7
- ],
8
- "summary": "Evolution refusal for product id changed from minimal to renamed.",
9
- "verdict": "invalid"
10
- }
@@ -1,55 +0,0 @@
1
- {
2
- "instruments": [
3
- {
4
- "actionOrder": [
5
- "close",
6
- "create"
7
- ],
8
- "actions": {
9
- "close": {
10
- "moves": [],
11
- "steps": [],
12
- "summary": "Close the note."
13
- },
14
- "create": {
15
- "moves": [],
16
- "steps": [],
17
- "summary": "File the note."
18
- }
19
- },
20
- "fields": {
21
- "reference": {
22
- "type": "string"
23
- }
24
- },
25
- "id": "note",
26
- "idPrefix": "note",
27
- "lifecycle": {
28
- "initial": "open",
29
- "states": [
30
- "open",
31
- "closed"
32
- ],
33
- "transitions": {
34
- "close": {
35
- "from": [
36
- "open"
37
- ],
38
- "to": "closed"
39
- }
40
- }
41
- },
42
- "required": [
43
- "reference"
44
- ],
45
- "summary": "A note a tenant files and later closes.",
46
- "title": "Note"
47
- }
48
- ],
49
- "product": "minimal",
50
- "subjects": [],
51
- "title": "Minimal",
52
- "udl": 1,
53
- "version": 1
54
- }
55
-
@@ -1,55 +0,0 @@
1
- {
2
- "instruments": [
3
- {
4
- "actionOrder": [
5
- "close",
6
- "create"
7
- ],
8
- "actions": {
9
- "close": {
10
- "moves": [],
11
- "steps": [],
12
- "summary": "Close the note."
13
- },
14
- "create": {
15
- "moves": [],
16
- "steps": [],
17
- "summary": "File the note."
18
- }
19
- },
20
- "fields": {
21
- "reference": {
22
- "type": "string"
23
- }
24
- },
25
- "id": "note",
26
- "idPrefix": "note",
27
- "lifecycle": {
28
- "initial": "open",
29
- "states": [
30
- "open",
31
- "closed"
32
- ],
33
- "transitions": {
34
- "close": {
35
- "from": [
36
- "open"
37
- ],
38
- "to": "closed"
39
- }
40
- }
41
- },
42
- "required": [
43
- "reference"
44
- ],
45
- "summary": "A note a tenant files and later closes.",
46
- "title": "Note"
47
- }
48
- ],
49
- "product": "renamed",
50
- "subjects": [],
51
- "title": "Minimal",
52
- "udl": 1,
53
- "version": 1
54
- }
55
-
@@ -1,10 +0,0 @@
1
- {
2
- "issues": [
3
- {
4
- "code": "UDL7002",
5
- "path": "$.version"
6
- }
7
- ],
8
- "summary": "Evolution refusal for product definition changed without increasing version 1.",
9
- "verdict": "invalid"
10
- }
@@ -1,55 +0,0 @@
1
- {
2
- "instruments": [
3
- {
4
- "actionOrder": [
5
- "close",
6
- "create"
7
- ],
8
- "actions": {
9
- "close": {
10
- "moves": [],
11
- "steps": [],
12
- "summary": "Close the note."
13
- },
14
- "create": {
15
- "moves": [],
16
- "steps": [],
17
- "summary": "File the note."
18
- }
19
- },
20
- "fields": {
21
- "reference": {
22
- "type": "string"
23
- }
24
- },
25
- "id": "note",
26
- "idPrefix": "note",
27
- "lifecycle": {
28
- "initial": "open",
29
- "states": [
30
- "open",
31
- "closed"
32
- ],
33
- "transitions": {
34
- "close": {
35
- "from": [
36
- "open"
37
- ],
38
- "to": "closed"
39
- }
40
- }
41
- },
42
- "required": [
43
- "reference"
44
- ],
45
- "summary": "A note a tenant files and later closes.",
46
- "title": "Note"
47
- }
48
- ],
49
- "product": "minimal",
50
- "subjects": [],
51
- "title": "Minimal",
52
- "udl": 1,
53
- "version": 1
54
- }
55
-
@@ -1,58 +0,0 @@
1
- {
2
- "instruments": [
3
- {
4
- "actionOrder": [
5
- "close",
6
- "create"
7
- ],
8
- "actions": {
9
- "close": {
10
- "moves": [],
11
- "steps": [],
12
- "summary": "Close the note."
13
- },
14
- "create": {
15
- "moves": [],
16
- "steps": [],
17
- "summary": "File the note."
18
- }
19
- },
20
- "fields": {
21
- "reference": {
22
- "type": "string"
23
- },
24
- "memo": {
25
- "type": "string"
26
- }
27
- },
28
- "id": "note",
29
- "idPrefix": "note",
30
- "lifecycle": {
31
- "initial": "open",
32
- "states": [
33
- "open",
34
- "closed"
35
- ],
36
- "transitions": {
37
- "close": {
38
- "from": [
39
- "open"
40
- ],
41
- "to": "closed"
42
- }
43
- }
44
- },
45
- "required": [
46
- "reference"
47
- ],
48
- "summary": "A note a tenant files and later closes.",
49
- "title": "Note"
50
- }
51
- ],
52
- "product": "minimal",
53
- "subjects": [],
54
- "title": "Minimal",
55
- "udl": 1,
56
- "version": 1
57
- }
58
-
@@ -1,10 +0,0 @@
1
- {
2
- "issues": [
3
- {
4
- "code": "UDL3001",
5
- "path": "$.instruments[0].actions.touch"
6
- }
7
- ],
8
- "summary": "Every action but create moves the instance between declared states.",
9
- "verdict": "invalid"
10
- }
@@ -1,60 +0,0 @@
1
- {
2
- "instruments": [
3
- {
4
- "fields": {
5
- "reference": {
6
- "type": "string"
7
- }
8
- },
9
- "id": "note",
10
- "idPrefix": "note",
11
- "lifecycle": {
12
- "initial": "open",
13
- "states": [
14
- "open",
15
- "closed"
16
- ],
17
- "transitions": {
18
- "close": {
19
- "from": [
20
- "open"
21
- ],
22
- "to": "closed"
23
- }
24
- }
25
- },
26
- "required": [
27
- "reference"
28
- ],
29
- "summary": "A note a tenant files and later closes.",
30
- "title": "Note",
31
- "actionOrder": [
32
- "close",
33
- "create",
34
- "touch"
35
- ],
36
- "actions": {
37
- "close": {
38
- "moves": [],
39
- "steps": [],
40
- "summary": "Close the note."
41
- },
42
- "create": {
43
- "moves": [],
44
- "steps": [],
45
- "summary": "File the note."
46
- },
47
- "touch": {
48
- "moves": [],
49
- "steps": [],
50
- "summary": "Touch the note."
51
- }
52
- }
53
- }
54
- ],
55
- "product": "minimal",
56
- "subjects": [],
57
- "title": "Minimal",
58
- "udl": 1,
59
- "version": 1
60
- }
@@ -1,10 +0,0 @@
1
- {
2
- "issues": [
3
- {
4
- "code": "UDL1003",
5
- "path": "$.instruments[0].actions.create.agentDescription"
6
- }
7
- ],
8
- "summary": "Agent-facing prose is capped at 400 characters so a tool list stays inside a client's pick budget.",
9
- "verdict": "invalid"
10
- }
@@ -1,57 +0,0 @@
1
- {
2
- "instruments": [
3
- {
4
- "actionOrder": [
5
- "close",
6
- "create"
7
- ],
8
- "actions": {
9
- "close": {
10
- "agentDescription": "Close a note that has already been filed. Takes the note id and nothing else, and moves no money.",
11
- "moves": [],
12
- "steps": [],
13
- "summary": "Close the note."
14
- },
15
- "create": {
16
- "agentDescription": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
17
- "moves": [],
18
- "steps": [],
19
- "summary": "File the note."
20
- }
21
- },
22
- "agentDescription": "A filed note. Read it to recover the reference an operator recorded, and close it when the matter it tracks is settled.",
23
- "fields": {
24
- "reference": {
25
- "type": "string"
26
- }
27
- },
28
- "id": "note",
29
- "idPrefix": "note",
30
- "lifecycle": {
31
- "initial": "open",
32
- "states": [
33
- "open",
34
- "closed"
35
- ],
36
- "transitions": {
37
- "close": {
38
- "from": [
39
- "open"
40
- ],
41
- "to": "closed"
42
- }
43
- }
44
- },
45
- "required": [
46
- "reference"
47
- ],
48
- "summary": "A note a tenant files and later closes.",
49
- "title": "Note"
50
- }
51
- ],
52
- "product": "minimal",
53
- "subjects": [],
54
- "title": "Minimal",
55
- "udl": 1,
56
- "version": 1
57
- }
@@ -1,10 +0,0 @@
1
- {
2
- "issues": [
3
- {
4
- "code": "UDL1003",
5
- "path": "$.title"
6
- }
7
- ],
8
- "summary": "Whitespace is not a title. JSON Schema cannot express this check, so it lives here.",
9
- "verdict": "invalid"
10
- }
@@ -1,54 +0,0 @@
1
- {
2
- "instruments": [
3
- {
4
- "fields": {
5
- "reference": {
6
- "type": "string"
7
- }
8
- },
9
- "id": "note",
10
- "idPrefix": "note",
11
- "lifecycle": {
12
- "initial": "open",
13
- "states": [
14
- "open",
15
- "closed"
16
- ],
17
- "transitions": {
18
- "close": {
19
- "from": [
20
- "open"
21
- ],
22
- "to": "closed"
23
- }
24
- }
25
- },
26
- "required": [
27
- "reference"
28
- ],
29
- "summary": "A note a tenant files and later closes.",
30
- "title": "Note",
31
- "actionOrder": [
32
- "close",
33
- "create"
34
- ],
35
- "actions": {
36
- "close": {
37
- "moves": [],
38
- "steps": [],
39
- "summary": "Close the note."
40
- },
41
- "create": {
42
- "moves": [],
43
- "steps": [],
44
- "summary": "File the note."
45
- }
46
- }
47
- }
48
- ],
49
- "product": "minimal",
50
- "subjects": [],
51
- "title": " ",
52
- "udl": 1,
53
- "version": 1
54
- }
@@ -1,10 +0,0 @@
1
- {
2
- "issues": [
3
- {
4
- "code": "UDL2011",
5
- "path": "$.instruments[0].actions.fund_piece.calls.call_fund.bind.p"
6
- }
7
- ],
8
- "summary": "Call bindings are static; $results is not a binding scope.",
9
- "verdict": "invalid"
10
- }