@epilot/sdk 2.20.8-alpha.0 → 2.20.8

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 (133) hide show
  1. package/definitions/environments.json +3 -211
  2. package/definitions/validation-rules.json +184 -6
  3. package/dist/apis/access-token.cjs +6 -6
  4. package/dist/apis/access-token.js +1 -1
  5. package/dist/apis/address-suggestions.cjs +6 -6
  6. package/dist/apis/address-suggestions.js +1 -1
  7. package/dist/apis/address.cjs +6 -6
  8. package/dist/apis/address.js +1 -1
  9. package/dist/apis/ai-agents.cjs +6 -6
  10. package/dist/apis/ai-agents.js +1 -1
  11. package/dist/apis/app.cjs +6 -6
  12. package/dist/apis/app.js +1 -1
  13. package/dist/apis/audit-logs.cjs +6 -6
  14. package/dist/apis/audit-logs.js +1 -1
  15. package/dist/apis/automation.cjs +6 -6
  16. package/dist/apis/automation.js +1 -1
  17. package/dist/apis/billing.cjs +6 -6
  18. package/dist/apis/billing.js +1 -1
  19. package/dist/apis/blueprint-manifest.cjs +6 -6
  20. package/dist/apis/blueprint-manifest.js +1 -1
  21. package/dist/apis/calendar.cjs +6 -6
  22. package/dist/apis/calendar.js +1 -1
  23. package/dist/apis/configuration-hub.cjs +6 -6
  24. package/dist/apis/configuration-hub.js +1 -1
  25. package/dist/apis/consent.cjs +6 -6
  26. package/dist/apis/consent.js +1 -1
  27. package/dist/apis/customer-portal.cjs +6 -6
  28. package/dist/apis/customer-portal.js +1 -1
  29. package/dist/apis/dashboard.cjs +6 -6
  30. package/dist/apis/dashboard.js +1 -1
  31. package/dist/apis/data-governance.cjs +6 -6
  32. package/dist/apis/data-governance.js +1 -1
  33. package/dist/apis/deduplication.cjs +6 -6
  34. package/dist/apis/deduplication.js +1 -1
  35. package/dist/apis/design.cjs +6 -6
  36. package/dist/apis/design.js +1 -1
  37. package/dist/apis/document.cjs +6 -6
  38. package/dist/apis/document.js +1 -1
  39. package/dist/apis/email-settings.cjs +6 -6
  40. package/dist/apis/email-settings.js +1 -1
  41. package/dist/apis/email-template.cjs +6 -6
  42. package/dist/apis/email-template.js +1 -1
  43. package/dist/apis/entity-mapping.cjs +6 -6
  44. package/dist/apis/entity-mapping.js +1 -1
  45. package/dist/apis/entity.cjs +6 -6
  46. package/dist/apis/entity.js +1 -1
  47. package/dist/apis/environments.cjs +6 -6
  48. package/dist/apis/environments.d.cts +2 -2
  49. package/dist/apis/environments.d.ts +2 -2
  50. package/dist/apis/environments.js +1 -1
  51. package/dist/apis/event-catalog.cjs +6 -6
  52. package/dist/apis/event-catalog.js +1 -1
  53. package/dist/apis/file.cjs +6 -6
  54. package/dist/apis/file.js +1 -1
  55. package/dist/apis/iban.cjs +6 -6
  56. package/dist/apis/iban.js +1 -1
  57. package/dist/apis/integration-toolkit.cjs +6 -6
  58. package/dist/apis/integration-toolkit.js +1 -1
  59. package/dist/apis/journey.cjs +6 -6
  60. package/dist/apis/journey.js +1 -1
  61. package/dist/apis/kanban.cjs +6 -6
  62. package/dist/apis/kanban.js +1 -1
  63. package/dist/apis/message.cjs +6 -6
  64. package/dist/apis/message.js +1 -1
  65. package/dist/apis/metering.cjs +6 -6
  66. package/dist/apis/metering.js +1 -1
  67. package/dist/apis/notes.cjs +6 -6
  68. package/dist/apis/notes.js +1 -1
  69. package/dist/apis/notification.cjs +6 -6
  70. package/dist/apis/notification.js +1 -1
  71. package/dist/apis/organization.cjs +6 -6
  72. package/dist/apis/organization.js +1 -1
  73. package/dist/apis/partner-directory.cjs +6 -6
  74. package/dist/apis/partner-directory.js +1 -1
  75. package/dist/apis/permissions.cjs +6 -6
  76. package/dist/apis/permissions.js +1 -1
  77. package/dist/apis/pricing-tier.cjs +6 -6
  78. package/dist/apis/pricing-tier.js +1 -1
  79. package/dist/apis/pricing.cjs +6 -6
  80. package/dist/apis/pricing.js +1 -1
  81. package/dist/apis/purpose.cjs +6 -6
  82. package/dist/apis/purpose.js +1 -1
  83. package/dist/apis/query.cjs +6 -6
  84. package/dist/apis/query.js +1 -1
  85. package/dist/apis/sandbox.cjs +6 -6
  86. package/dist/apis/sandbox.js +1 -1
  87. package/dist/apis/sharing.cjs +6 -6
  88. package/dist/apis/sharing.js +1 -1
  89. package/dist/apis/snapshot.cjs +6 -6
  90. package/dist/apis/snapshot.js +1 -1
  91. package/dist/apis/submission.cjs +6 -6
  92. package/dist/apis/submission.js +1 -1
  93. package/dist/apis/target.cjs +6 -6
  94. package/dist/apis/target.js +1 -1
  95. package/dist/apis/targeting.cjs +6 -6
  96. package/dist/apis/targeting.js +1 -1
  97. package/dist/apis/template-variables.cjs +6 -6
  98. package/dist/apis/template-variables.js +1 -1
  99. package/dist/apis/user.cjs +6 -6
  100. package/dist/apis/user.js +1 -1
  101. package/dist/apis/validation-rules.cjs +6 -6
  102. package/dist/apis/validation-rules.d.cts +2 -2
  103. package/dist/apis/validation-rules.d.ts +2 -2
  104. package/dist/apis/validation-rules.js +1 -1
  105. package/dist/apis/webhooks.cjs +6 -6
  106. package/dist/apis/webhooks.js +1 -1
  107. package/dist/apis/workflow-definition.cjs +6 -6
  108. package/dist/apis/workflow-definition.js +1 -1
  109. package/dist/apis/workflow.cjs +6 -6
  110. package/dist/apis/workflow.js +1 -1
  111. package/dist/bin/cli.js +1 -1
  112. package/dist/{chunk-PFO4HNPR.js → chunk-OOMP6BYJ.js} +2 -2
  113. package/dist/{chunk-4FP7EKQT.cjs → chunk-VAM7ZIAF.cjs} +2 -2
  114. package/dist/environments-EAVUY4FC.cjs +7 -0
  115. package/dist/environments-RNOROUFZ.js +7 -0
  116. package/dist/{environments.d-Cr-oj1fN.d.cts → environments.d-C_BTxz4W.d.cts} +22 -193
  117. package/dist/{environments.d-Cr-oj1fN.d.ts → environments.d-C_BTxz4W.d.ts} +22 -193
  118. package/dist/index.cjs +8 -8
  119. package/dist/index.d.cts +2 -2
  120. package/dist/index.d.ts +2 -2
  121. package/dist/index.js +1 -1
  122. package/dist/{js-yaml-UPZKYVRY.js → js-yaml-DLCVPJ7G.js} +17 -15
  123. package/dist/validation-rules-2JQLB6PH.cjs +7 -0
  124. package/dist/validation-rules-VQXUQSMC.js +7 -0
  125. package/dist/{validation-rules.d-D8X9MYTc.d.ts → validation-rules.d-Bbo90IYn.d.cts} +178 -7
  126. package/dist/{validation-rules.d-D8X9MYTc.d.cts → validation-rules.d-Bbo90IYn.d.ts} +178 -7
  127. package/docs/environments.md +11 -252
  128. package/docs/validation-rules.md +286 -0
  129. package/package.json +1 -1
  130. package/dist/environments-DBHM4GKI.cjs +0 -7
  131. package/dist/environments-JVPK6LSD.js +0 -7
  132. package/dist/validation-rules-ETOO45CW.js +0 -7
  133. package/dist/validation-rules-MZZ7YMJM.cjs +0 -7
@@ -348,7 +348,7 @@
348
348
  "schemas": {
349
349
  "EnvironmentValueType": {
350
350
  "type": "string",
351
- "description": "The structure a variable's value holds. `SecretString` is encrypted at rest and\nits value is never returned. `Text`, `Number`, `Boolean`, `Map`, `JSON`, `Link` and\n`List` may be served to browser-facing consumers; `String` and `SecretString` may not.\n",
351
+ "description": "The structure a variable's value holds. `SecretString` is encrypted at rest and\nits value is never returned. `Text`, `Number`, `Boolean`, `Map`, `JSON` and `Link`\nmay be served to browser-facing consumers; `String` and `SecretString` may not.\n",
352
352
  "enum": [
353
353
  "String",
354
354
  "SecretString",
@@ -357,8 +357,7 @@
357
357
  "Boolean",
358
358
  "Map",
359
359
  "JSON",
360
- "Link",
361
- "List"
360
+ "Link"
362
361
  ]
363
362
  },
364
363
  "StringTranslations": {
@@ -467,212 +466,8 @@
467
466
  }
468
467
  }
469
468
  },
470
- "LinkFields": {
471
- "description": "The fields of a link, without a fallback language — the shape a `List`\nitem carries. Inside a list the fallback belongs to the wrapper, which\nowns the language tabs for every row.\n\nRestated rather than composed with `LinkValue`: `allOf` plus\n`additionalProperties: false` is rejected by most validators, because\neach branch sees the sibling's properties as unknown. zod composes\nproperly — see LinkFieldsSchema in src/core/value-types.ts.\n",
472
- "type": "object",
473
- "required": [
474
- "url",
475
- "label"
476
- ],
477
- "additionalProperties": false,
478
- "properties": {
479
- "url": {
480
- "type": "string",
481
- "minLength": 1,
482
- "maxLength": 2048
483
- },
484
- "label": {
485
- "oneOf": [
486
- {
487
- "type": "string",
488
- "minLength": 1,
489
- "maxLength": 255
490
- },
491
- {
492
- "$ref": "#/components/schemas/StringTranslations"
493
- }
494
- ]
495
- },
496
- "description": {
497
- "oneOf": [
498
- {
499
- "type": "string",
500
- "minLength": 1,
501
- "maxLength": 1024
502
- },
503
- {
504
- "$ref": "#/components/schemas/StringTranslations"
505
- }
506
- ]
507
- }
508
- }
509
- },
510
- "ListItemType": {
511
- "description": "The element type a `List` holds. `String` and `SecretString` are absent\ndeliberately: they are the two types never served to browser-facing\nconsumers, and a `List` is. `Map` is already a keyed collection, and a\nlist of lists has no consumer.\n",
512
- "type": "string",
513
- "enum": [
514
- "Text",
515
- "Number",
516
- "Boolean",
517
- "JSON",
518
- "Link"
519
- ]
520
- },
521
- "ListOfText": {
522
- "type": "object",
523
- "required": [
524
- "itemType",
525
- "items"
526
- ],
527
- "additionalProperties": false,
528
- "properties": {
529
- "itemType": {
530
- "type": "string",
531
- "enum": [
532
- "Text"
533
- ]
534
- },
535
- "items": {
536
- "type": "array",
537
- "minItems": 1,
538
- "items": {
539
- "type": "string",
540
- "maxLength": 32768
541
- }
542
- }
543
- }
544
- },
545
- "ListOfNumber": {
546
- "type": "object",
547
- "required": [
548
- "itemType",
549
- "items"
550
- ],
551
- "additionalProperties": false,
552
- "properties": {
553
- "itemType": {
554
- "type": "string",
555
- "enum": [
556
- "Number"
557
- ]
558
- },
559
- "items": {
560
- "type": "array",
561
- "minItems": 1,
562
- "items": {
563
- "type": "number"
564
- }
565
- }
566
- }
567
- },
568
- "ListOfBoolean": {
569
- "type": "object",
570
- "required": [
571
- "itemType",
572
- "items"
573
- ],
574
- "additionalProperties": false,
575
- "properties": {
576
- "itemType": {
577
- "type": "string",
578
- "enum": [
579
- "Boolean"
580
- ]
581
- },
582
- "items": {
583
- "type": "array",
584
- "minItems": 1,
585
- "items": {
586
- "type": "boolean"
587
- }
588
- }
589
- }
590
- },
591
- "ListOfJson": {
592
- "type": "object",
593
- "required": [
594
- "itemType",
595
- "items"
596
- ],
597
- "additionalProperties": false,
598
- "properties": {
599
- "itemType": {
600
- "type": "string",
601
- "enum": [
602
- "JSON"
603
- ]
604
- },
605
- "items": {
606
- "type": "array",
607
- "minItems": 1,
608
- "items": {
609
- "type": "object",
610
- "additionalProperties": true
611
- }
612
- }
613
- }
614
- },
615
- "ListOfLink": {
616
- "description": "A list of links. `fallbackLanguage` applies to every item's translated\n`label` and `description`; items may mix plain and translated fields\nfreely, since a plain string is a complete answer for any language.\n",
617
- "type": "object",
618
- "required": [
619
- "itemType",
620
- "items"
621
- ],
622
- "additionalProperties": false,
623
- "properties": {
624
- "itemType": {
625
- "type": "string",
626
- "enum": [
627
- "Link"
628
- ]
629
- },
630
- "fallbackLanguage": {
631
- "type": "string",
632
- "minLength": 2,
633
- "default": "de"
634
- },
635
- "items": {
636
- "type": "array",
637
- "minItems": 1,
638
- "items": {
639
- "$ref": "#/components/schemas/LinkFields"
640
- }
641
- }
642
- }
643
- },
644
- "ListValue": {
645
- "description": "An ordered collection of one declared element type. Items round-trip in\nthe order written; nothing sorts them. Holds at most 100 items.\n\nThe whole value is limited to 32768 characters when serialised — the\nserver enforces this, and it is not expressible per-property here.\n",
646
- "oneOf": [
647
- {
648
- "$ref": "#/components/schemas/ListOfText"
649
- },
650
- {
651
- "$ref": "#/components/schemas/ListOfNumber"
652
- },
653
- {
654
- "$ref": "#/components/schemas/ListOfBoolean"
655
- },
656
- {
657
- "$ref": "#/components/schemas/ListOfJson"
658
- },
659
- {
660
- "$ref": "#/components/schemas/ListOfLink"
661
- }
662
- ],
663
- "discriminator": {
664
- "propertyName": "itemType",
665
- "mapping": {
666
- "Text": "#/components/schemas/ListOfText",
667
- "Number": "#/components/schemas/ListOfNumber",
668
- "Boolean": "#/components/schemas/ListOfBoolean",
669
- "JSON": "#/components/schemas/ListOfJson",
670
- "Link": "#/components/schemas/ListOfLink"
671
- }
672
- }
673
- },
674
469
  "EnvironmentValue": {
675
- "description": "A variable's value. The JSON type corresponds to the variable's `type`:\n`String`, `SecretString` and `Text` are strings, `Number` is a number,\n`Boolean` is a boolean, and `Map`, `JSON`, `Link` and `List` are objects.\nNumbers are IEEE 754 doubles; integers above 2^53 may lose precision on\nround-trip.\n",
470
+ "description": "A variable's value. The JSON type corresponds to the variable's `type`:\n`String`, `SecretString` and `Text` are strings, `Number` is a number,\n`Boolean` is a boolean, and `Map`, `JSON` and `Link` are objects. Numbers are\nIEEE 754 doubles; integers above 2^53 may lose precision on round-trip.\n",
676
471
  "anyOf": [
677
472
  {
678
473
  "type": "string"
@@ -691,9 +486,6 @@
691
486
  },
692
487
  {
693
488
  "$ref": "#/components/schemas/LinkValue"
694
- },
695
- {
696
- "$ref": "#/components/schemas/ListValue"
697
489
  }
698
490
  ]
699
491
  },
@@ -3,7 +3,7 @@
3
3
  "info": {
4
4
  "title": "Validation Rules API",
5
5
  "version": "1.0.0",
6
- "description": "The Validation Rules API manages reusable input validation rules for epilot journeys and entity attributes.\n\nValidation rules define constraints for user input (e.g. regex patterns, numeric ranges, character counts) that can be applied to journey blocks or entity schema attributes.\n\nKey capabilities:\n- Define validation rules using regex patterns, character patterns, or numeric constraints\n- Apply rules to journey blocks or entity schema attributes via the `used_by` association\n- Manage the lifecycle of rules (create, read, update, delete)\n- Compose complex validation logic using AND/OR/NOT condition combinators\n\n## Rule schema versions\n\nThe `rule` property holds one of two shapes, identified by the document's `_schema_version`:\n- `v1`: a json-rules-engine condition tree (regex/pattern/numeric) with static comparison values only.\n- `v2`: a declarative rule with predefined comparison operators whose comparison values may be static,\n dynamic (a path into runtime context declared via `contexts`,\n e.g. `contract.installment_amount`) or relative dates. v2 shapes carry an `input_type` property.\nConverting a rule between schema versions is not supported.\n"
6
+ "description": "The Validation Rules API manages reusable input validation rules for epilot journeys and entity attributes.\n\nValidation rules define constraints for user input (e.g. regex patterns, numeric ranges, character counts) that can be applied to journey blocks or entity schema attributes.\n\nKey capabilities:\n- Define validation rules using regex patterns, character patterns, or numeric constraints\n- Apply rules to journey blocks or entity schema attributes via the `used_by` association\n- Manage the lifecycle of rules (create, read, update, delete)\n- Compose complex validation logic using AND/OR/NOT condition combinators\n\n## Rule schema versions\n\nThe `rule` property holds one of two shapes, identified by the document's `_schema_version`:\n- `v1`: a json-rules-engine condition tree (regex/pattern/numeric) with static comparison values only.\n- `v2`: a declarative rule with predefined comparison operators whose comparison values may be static,\n dynamic (a path into runtime context declared via `contexts`,\n e.g. `contract.installment_amount`) or relative dates. v2 shapes carry an `input_type` property.\n Two v2 shapes exist: `ComparisonRuleType` for number, date and text inputs, and `DocumentRuleType`\n for uploaded files, whose conditions check file properties and, at the higher check levels,\n the document's content.\nConverting a rule between schema versions is not supported.\n"
7
7
  },
8
8
  "tags": [
9
9
  {
@@ -208,7 +208,7 @@
208
208
  }
209
209
  },
210
210
  "400": {
211
- "description": "Bad Request - Invalid request body. Invalid external comparison values additionally carry a\n`code` (`external_value_not_found` when the app is not installed or the hook / result does not\nexist, `external_value_incompatible` when the result type does not match the compared kind).\n",
211
+ "description": "Bad Request - Invalid request body. Invalid external or environment comparison values additionally\ncarry a `code`: `external_value_not_found` when the app is not installed or the hook / result does not\nexist, `external_value_incompatible` when the result type does not match the compared kind,\n`environment_variable_not_found` when the referenced environment variable does not exist in the\norganisation, `environment_variable_incompatible` when its type cannot be compared as required\n(`Number` for numbers, `Text` for text and dates, `Number` / `Text` / `Boolean` for `applies_when`;\n`String`, `SecretString`, `Map` and `JSON` never).\n",
212
212
  "content": {
213
213
  "application/json": {
214
214
  "schema": {
@@ -222,7 +222,9 @@
222
222
  "type": "string",
223
223
  "enum": [
224
224
  "external_value_not_found",
225
- "external_value_incompatible"
225
+ "external_value_incompatible",
226
+ "environment_variable_not_found",
227
+ "environment_variable_incompatible"
226
228
  ]
227
229
  }
228
230
  }
@@ -491,7 +493,7 @@
491
493
  }
492
494
  },
493
495
  "400": {
494
- "description": "Bad Request - Invalid request body. Invalid external comparison values additionally carry a\n`code` (`external_value_not_found` when the app is not installed or the hook / result does not\nexist, `external_value_incompatible` when the result type does not match the compared kind).\n",
496
+ "description": "Bad Request - Invalid request body. Invalid external or environment comparison values additionally\ncarry a `code`: `external_value_not_found` when the app is not installed or the hook / result does not\nexist, `external_value_incompatible` when the result type does not match the compared kind,\n`environment_variable_not_found` when the referenced environment variable does not exist in the\norganisation, `environment_variable_incompatible` when its type cannot be compared as required\n(`Number` for numbers, `Text` for text and dates, `Number` / `Text` / `Boolean` for `applies_when`;\n`String`, `SecretString`, `Map` and `JSON` never).\n",
495
497
  "content": {
496
498
  "application/json": {
497
499
  "schema": {
@@ -505,7 +507,9 @@
505
507
  "type": "string",
506
508
  "enum": [
507
509
  "external_value_not_found",
508
- "external_value_incompatible"
510
+ "external_value_incompatible",
511
+ "environment_variable_not_found",
512
+ "environment_variable_incompatible"
509
513
  ]
510
514
  }
511
515
  }
@@ -1073,6 +1077,9 @@
1073
1077
  },
1074
1078
  {
1075
1079
  "$ref": "#/components/schemas/ComparisonRuleType"
1080
+ },
1081
+ {
1082
+ "$ref": "#/components/schemas/DocumentRuleType"
1076
1083
  }
1077
1084
  ]
1078
1085
  },
@@ -2306,7 +2313,7 @@
2306
2313
  "up",
2307
2314
  "down"
2308
2315
  ],
2309
- "description": "Rounds the adjusted result to a whole number - `up` (ceiling) or `down` (floor).\nOmitted means no rounding. Used for bounds like \"round up(current × 0.9) to whole euros\".\n"
2316
+ "description": "Rounds the adjusted result to a whole number - `up` (ceiling) or `down` (floor).\nOmitted means no rounding. Used for bounds like \"round up(current \u00d7 0.9) to whole euros\".\n"
2310
2317
  }
2311
2318
  }
2312
2319
  },
@@ -2389,6 +2396,177 @@
2389
2396
  }
2390
2397
  }
2391
2398
  },
2399
+ "DocumentRuleType": {
2400
+ "type": "object",
2401
+ "description": "Declarative validation rule (schema version v2) for uploaded files. The rule declares how deep\nthe check goes (`check.level`) and the conditions the file must satisfy. Property conditions\n(file type, size, page count, image resolution, blank and password-protected detection) are\ndeterministic and available at every level; the `meetsCriteria` condition judges a free-text\nrequirement against the document's extracted content and is available from level `standard`.\n\nEvaluation semantics for content conditions differ from scalar rules: each condition resolves to\npass, fail or uncertain. A confident fail on a blocking condition fails the input; an uncertain\nresult is always reported as advisory and never fails the input, regardless of `allow_failure`.\nDocument rules carry no `contexts` yet.\n",
2402
+ "required": [
2403
+ "input_type",
2404
+ "check",
2405
+ "conditions"
2406
+ ],
2407
+ "additionalProperties": false,
2408
+ "properties": {
2409
+ "input_type": {
2410
+ "type": "string",
2411
+ "enum": [
2412
+ "document"
2413
+ ],
2414
+ "description": "Identifies the rule as a document rule. Determines which operators are allowed."
2415
+ },
2416
+ "check": {
2417
+ "$ref": "#/components/schemas/DocumentCheck"
2418
+ },
2419
+ "conditions": {
2420
+ "type": "array",
2421
+ "description": "The checks the uploaded file must satisfy. All blocking conditions must pass for the\nfile to be valid; `allow_failure` conditions are advisory. Must contain at least one\ncondition (enforced at write time).\n",
2422
+ "items": {
2423
+ "$ref": "#/components/schemas/DocumentCondition"
2424
+ }
2425
+ }
2426
+ }
2427
+ },
2428
+ "DocumentCheck": {
2429
+ "type": "object",
2430
+ "description": "How deep the document check goes. Levels are cumulative.",
2431
+ "required": [
2432
+ "level"
2433
+ ],
2434
+ "additionalProperties": false,
2435
+ "properties": {
2436
+ "level": {
2437
+ "type": "string",
2438
+ "enum": [
2439
+ "basic",
2440
+ "standard",
2441
+ "advanced"
2442
+ ],
2443
+ "description": "- `basic`: file properties only (type, size, page count, resolution, blank, password). Instant, no extraction.\n- `standard`: basic checks plus a quick scan of the content. A few seconds.\n- `advanced`: basic checks plus a thorough reading of the fully extracted content. Roughly 5 to 10 seconds.\n"
2444
+ }
2445
+ }
2446
+ },
2447
+ "DocumentCondition": {
2448
+ "type": "object",
2449
+ "description": "A single check the uploaded file must satisfy.",
2450
+ "required": [
2451
+ "id",
2452
+ "operator",
2453
+ "value",
2454
+ "error_message"
2455
+ ],
2456
+ "additionalProperties": false,
2457
+ "properties": {
2458
+ "id": {
2459
+ "type": "string",
2460
+ "minLength": 1,
2461
+ "maxLength": 50,
2462
+ "description": "Stable identifier of the condition within the rule, used for editing and error reporting."
2463
+ },
2464
+ "operator": {
2465
+ "$ref": "#/components/schemas/DocumentOperator"
2466
+ },
2467
+ "value": {
2468
+ "$ref": "#/components/schemas/DocumentConditionValue"
2469
+ },
2470
+ "error_message": {
2471
+ "type": "string",
2472
+ "minLength": 1,
2473
+ "maxLength": 200,
2474
+ "description": "Message shown to the end user when this condition fails."
2475
+ },
2476
+ "allow_failure": {
2477
+ "type": "boolean",
2478
+ "default": false,
2479
+ "description": "When true, the condition is advisory: a failure is reported but never takes part in the\nvalidity verdict. Recommended for `meetsCriteria` until the organisation has reviewed\nresults on real files.\n"
2480
+ }
2481
+ }
2482
+ },
2483
+ "DocumentOperator": {
2484
+ "type": "string",
2485
+ "description": "Predefined document check. Value compatibility (enforced at write time):\n- fileTypeIn: `file_types` value listing the accepted file categories.\n- sizeBelow: static integer, maximum file size in bytes.\n- pageCountBetween: `range` of static non-negative integers (inclusive).\n- resolutionAtLeast / resolutionAtMost: static positive integer, the image's longer edge in pixels.\n- isNotBlank / isNotPasswordProtected: `none` value (unary).\n- meetsCriteria: `criteria` value with the free-text requirement. Requires check level `standard` or `advanced`.\n",
2486
+ "enum": [
2487
+ "fileTypeIn",
2488
+ "sizeBelow",
2489
+ "pageCountBetween",
2490
+ "resolutionAtLeast",
2491
+ "resolutionAtMost",
2492
+ "isNotBlank",
2493
+ "isNotPasswordProtected",
2494
+ "meetsCriteria"
2495
+ ]
2496
+ },
2497
+ "DocumentConditionValue": {
2498
+ "description": "The value of a document condition - a static scalar, a range, nothing, accepted file categories, or a free-text criterion.",
2499
+ "oneOf": [
2500
+ {
2501
+ "$ref": "#/components/schemas/StaticValue"
2502
+ },
2503
+ {
2504
+ "$ref": "#/components/schemas/RangeValue"
2505
+ },
2506
+ {
2507
+ "$ref": "#/components/schemas/NoValue"
2508
+ },
2509
+ {
2510
+ "$ref": "#/components/schemas/FileTypesValue"
2511
+ },
2512
+ {
2513
+ "$ref": "#/components/schemas/CriteriaValue"
2514
+ }
2515
+ ]
2516
+ },
2517
+ "FileTypesValue": {
2518
+ "type": "object",
2519
+ "description": "Accepted file categories; each category expands to a mime list at check time.",
2520
+ "required": [
2521
+ "source",
2522
+ "types"
2523
+ ],
2524
+ "additionalProperties": false,
2525
+ "properties": {
2526
+ "source": {
2527
+ "type": "string",
2528
+ "enum": [
2529
+ "file_types"
2530
+ ]
2531
+ },
2532
+ "types": {
2533
+ "type": "array",
2534
+ "minItems": 1,
2535
+ "uniqueItems": true,
2536
+ "items": {
2537
+ "type": "string",
2538
+ "enum": [
2539
+ "image",
2540
+ "pdf",
2541
+ "document",
2542
+ "spreadsheet"
2543
+ ]
2544
+ }
2545
+ }
2546
+ }
2547
+ },
2548
+ "CriteriaValue": {
2549
+ "type": "object",
2550
+ "description": "A free-text requirement judged against the document's extracted content, e.g. \"The photo shows\nan electricity meter with the meter number and the current reading fully legible.\" One requirement\nper condition keeps results specific and lets each requirement be graded separately.\n",
2551
+ "required": [
2552
+ "source",
2553
+ "text"
2554
+ ],
2555
+ "additionalProperties": false,
2556
+ "properties": {
2557
+ "source": {
2558
+ "type": "string",
2559
+ "enum": [
2560
+ "criteria"
2561
+ ]
2562
+ },
2563
+ "text": {
2564
+ "type": "string",
2565
+ "minLength": 1,
2566
+ "maxLength": 500
2567
+ }
2568
+ }
2569
+ },
2392
2570
  "AppliesWhen": {
2393
2571
  "type": "object",
2394
2572
  "description": "Optional precondition on a condition: the condition only takes part in the\nvalidation when this comparison over context holds. Examples: apply the\ndual-tariff reference only when `contract.htnt` is not empty, or run a\nplausibility check only when a context value reaches a threshold.\n",
@@ -6,25 +6,25 @@ var _chunkS5HBBTKMcjs = require('../chunk-S5HBBTKM.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunk4FP7EKQTcjs = require('../chunk-4FP7EKQT.cjs');
9
+ var _chunkVAM7ZIAFcjs = require('../chunk-VAM7ZIAF.cjs');
10
10
  require('../chunk-NJK5F5TF.cjs');
11
11
 
12
12
  // src/apis/access-token.ts
13
13
  var loadDefinition = () => {
14
14
  const mod = _chunkS5HBBTKMcjs.require_access_token_runtime.call(void 0, );
15
- return _chunk4FP7EKQTcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
15
+ return _chunkVAM7ZIAFcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
16
16
  };
17
17
  var _instance = null;
18
18
  var resolve = () => {
19
19
  if (!_instance) {
20
20
  const def = loadDefinition();
21
- _instance = _chunk4FP7EKQTcjs.createApiClient.call(void 0, { definition: def, apiName: "accessToken" });
21
+ _instance = _chunkVAM7ZIAFcjs.createApiClient.call(void 0, { definition: def, apiName: "accessToken" });
22
22
  }
23
23
  return _instance;
24
24
  };
25
- var _handle = _chunk4FP7EKQTcjs.createApiHandle.call(void 0, {
25
+ var _handle = _chunkVAM7ZIAFcjs.createApiHandle.call(void 0, {
26
26
  resolveClient: resolve,
27
- createClient: () => _chunk4FP7EKQTcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "accessToken" }),
27
+ createClient: () => _chunkVAM7ZIAFcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "accessToken" }),
28
28
  apiName: "accessToken"
29
29
  });
30
30
  var getClient = _handle.getClient;
@@ -35,4 +35,4 @@ var accessToken = _handle;
35
35
 
36
36
 
37
37
 
38
- exports.accessToken = accessToken; exports.authorize = _chunk4FP7EKQTcjs.authorize; exports.createClient = createClient; exports.getClient = getClient;
38
+ exports.accessToken = accessToken; exports.authorize = _chunkVAM7ZIAFcjs.authorize; exports.createClient = createClient; exports.getClient = getClient;
@@ -6,7 +6,7 @@ import {
6
6
  createApiClient,
7
7
  createApiHandle,
8
8
  expand
9
- } from "../chunk-PFO4HNPR.js";
9
+ } from "../chunk-OOMP6BYJ.js";
10
10
  import "../chunk-YPSWSI3M.js";
11
11
 
12
12
  // src/apis/access-token.ts
@@ -6,25 +6,25 @@ var _chunkLKRBFBFNcjs = require('../chunk-LKRBFBFN.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunk4FP7EKQTcjs = require('../chunk-4FP7EKQT.cjs');
9
+ var _chunkVAM7ZIAFcjs = require('../chunk-VAM7ZIAF.cjs');
10
10
  require('../chunk-NJK5F5TF.cjs');
11
11
 
12
12
  // src/apis/address-suggestions.ts
13
13
  var loadDefinition = () => {
14
14
  const mod = _chunkLKRBFBFNcjs.require_address_suggestions_runtime.call(void 0, );
15
- return _chunk4FP7EKQTcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
15
+ return _chunkVAM7ZIAFcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
16
16
  };
17
17
  var _instance = null;
18
18
  var resolve = () => {
19
19
  if (!_instance) {
20
20
  const def = loadDefinition();
21
- _instance = _chunk4FP7EKQTcjs.createApiClient.call(void 0, { definition: def, apiName: "addressSuggestions" });
21
+ _instance = _chunkVAM7ZIAFcjs.createApiClient.call(void 0, { definition: def, apiName: "addressSuggestions" });
22
22
  }
23
23
  return _instance;
24
24
  };
25
- var _handle = _chunk4FP7EKQTcjs.createApiHandle.call(void 0, {
25
+ var _handle = _chunkVAM7ZIAFcjs.createApiHandle.call(void 0, {
26
26
  resolveClient: resolve,
27
- createClient: () => _chunk4FP7EKQTcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "addressSuggestions" }),
27
+ createClient: () => _chunkVAM7ZIAFcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "addressSuggestions" }),
28
28
  apiName: "addressSuggestions"
29
29
  });
30
30
  var getClient = _handle.getClient;
@@ -35,4 +35,4 @@ var addressSuggestions = _handle;
35
35
 
36
36
 
37
37
 
38
- exports.addressSuggestions = addressSuggestions; exports.authorize = _chunk4FP7EKQTcjs.authorize; exports.createClient = createClient; exports.getClient = getClient;
38
+ exports.addressSuggestions = addressSuggestions; exports.authorize = _chunkVAM7ZIAFcjs.authorize; exports.createClient = createClient; exports.getClient = getClient;
@@ -6,7 +6,7 @@ import {
6
6
  createApiClient,
7
7
  createApiHandle,
8
8
  expand
9
- } from "../chunk-PFO4HNPR.js";
9
+ } from "../chunk-OOMP6BYJ.js";
10
10
  import "../chunk-YPSWSI3M.js";
11
11
 
12
12
  // src/apis/address-suggestions.ts
@@ -6,25 +6,25 @@ var _chunkT67ZXTVGcjs = require('../chunk-T67ZXTVG.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunk4FP7EKQTcjs = require('../chunk-4FP7EKQT.cjs');
9
+ var _chunkVAM7ZIAFcjs = require('../chunk-VAM7ZIAF.cjs');
10
10
  require('../chunk-NJK5F5TF.cjs');
11
11
 
12
12
  // src/apis/address.ts
13
13
  var loadDefinition = () => {
14
14
  const mod = _chunkT67ZXTVGcjs.require_address_runtime.call(void 0, );
15
- return _chunk4FP7EKQTcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
15
+ return _chunkVAM7ZIAFcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
16
16
  };
17
17
  var _instance = null;
18
18
  var resolve = () => {
19
19
  if (!_instance) {
20
20
  const def = loadDefinition();
21
- _instance = _chunk4FP7EKQTcjs.createApiClient.call(void 0, { definition: def, apiName: "address" });
21
+ _instance = _chunkVAM7ZIAFcjs.createApiClient.call(void 0, { definition: def, apiName: "address" });
22
22
  }
23
23
  return _instance;
24
24
  };
25
- var _handle = _chunk4FP7EKQTcjs.createApiHandle.call(void 0, {
25
+ var _handle = _chunkVAM7ZIAFcjs.createApiHandle.call(void 0, {
26
26
  resolveClient: resolve,
27
- createClient: () => _chunk4FP7EKQTcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "address" }),
27
+ createClient: () => _chunkVAM7ZIAFcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "address" }),
28
28
  apiName: "address"
29
29
  });
30
30
  var getClient = _handle.getClient;
@@ -35,4 +35,4 @@ var address = _handle;
35
35
 
36
36
 
37
37
 
38
- exports.address = address; exports.authorize = _chunk4FP7EKQTcjs.authorize; exports.createClient = createClient; exports.getClient = getClient;
38
+ exports.address = address; exports.authorize = _chunkVAM7ZIAFcjs.authorize; exports.createClient = createClient; exports.getClient = getClient;
@@ -6,7 +6,7 @@ import {
6
6
  createApiClient,
7
7
  createApiHandle,
8
8
  expand
9
- } from "../chunk-PFO4HNPR.js";
9
+ } from "../chunk-OOMP6BYJ.js";
10
10
  import "../chunk-YPSWSI3M.js";
11
11
 
12
12
  // src/apis/address.ts
@@ -6,25 +6,25 @@ var _chunkGD6KHA54cjs = require('../chunk-GD6KHA54.cjs');
6
6
 
7
7
 
8
8
 
9
- var _chunk4FP7EKQTcjs = require('../chunk-4FP7EKQT.cjs');
9
+ var _chunkVAM7ZIAFcjs = require('../chunk-VAM7ZIAF.cjs');
10
10
  require('../chunk-NJK5F5TF.cjs');
11
11
 
12
12
  // src/apis/ai-agents.ts
13
13
  var loadDefinition = () => {
14
14
  const mod = _chunkGD6KHA54cjs.require_ai_agents_runtime.call(void 0, );
15
- return _chunk4FP7EKQTcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
15
+ return _chunkVAM7ZIAFcjs.expand.call(void 0, _nullishCoalesce(mod.default, () => ( mod)));
16
16
  };
17
17
  var _instance = null;
18
18
  var resolve = () => {
19
19
  if (!_instance) {
20
20
  const def = loadDefinition();
21
- _instance = _chunk4FP7EKQTcjs.createApiClient.call(void 0, { definition: def, apiName: "aiAgents" });
21
+ _instance = _chunkVAM7ZIAFcjs.createApiClient.call(void 0, { definition: def, apiName: "aiAgents" });
22
22
  }
23
23
  return _instance;
24
24
  };
25
- var _handle = _chunk4FP7EKQTcjs.createApiHandle.call(void 0, {
25
+ var _handle = _chunkVAM7ZIAFcjs.createApiHandle.call(void 0, {
26
26
  resolveClient: resolve,
27
- createClient: () => _chunk4FP7EKQTcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "aiAgents" }),
27
+ createClient: () => _chunkVAM7ZIAFcjs.createApiClient.call(void 0, { definition: loadDefinition(), apiName: "aiAgents" }),
28
28
  apiName: "aiAgents"
29
29
  });
30
30
  var getClient = _handle.getClient;
@@ -35,4 +35,4 @@ var aiAgents = _handle;
35
35
 
36
36
 
37
37
 
38
- exports.aiAgents = aiAgents; exports.authorize = _chunk4FP7EKQTcjs.authorize; exports.createClient = createClient; exports.getClient = getClient;
38
+ exports.aiAgents = aiAgents; exports.authorize = _chunkVAM7ZIAFcjs.authorize; exports.createClient = createClient; exports.getClient = getClient;