@enterpriseai/cli 3.19.5 → 3.20.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 (69) hide show
  1. package/dist/commands/content-understanding.d.ts +15 -0
  2. package/dist/commands/content-understanding.d.ts.map +1 -0
  3. package/dist/commands/content-understanding.js +277 -0
  4. package/dist/commands/content-understanding.js.map +1 -0
  5. package/dist/commands/docs.d.ts.map +1 -1
  6. package/dist/commands/docs.js +129 -1
  7. package/dist/commands/docs.js.map +1 -1
  8. package/dist/commands/eai-managed-deploy-output.d.ts.map +1 -1
  9. package/dist/commands/eai-managed-deploy-output.js +12 -2
  10. package/dist/commands/eai-managed-deploy-output.js.map +1 -1
  11. package/dist/commands/eai-managed-source-authorize-commit.d.ts +28 -0
  12. package/dist/commands/eai-managed-source-authorize-commit.d.ts.map +1 -0
  13. package/dist/commands/eai-managed-source-authorize-commit.js +200 -0
  14. package/dist/commands/eai-managed-source-authorize-commit.js.map +1 -0
  15. package/dist/commands/eai-managed-source-move.d.ts.map +1 -1
  16. package/dist/commands/eai-managed-source-move.js +3 -0
  17. package/dist/commands/eai-managed-source-move.js.map +1 -1
  18. package/dist/commands/resources.d.ts.map +1 -1
  19. package/dist/commands/resources.js +6 -6
  20. package/dist/commands/resources.js.map +1 -1
  21. package/dist/commands/vertical.d.ts.map +1 -1
  22. package/dist/commands/vertical.js +16 -6
  23. package/dist/commands/vertical.js.map +1 -1
  24. package/dist/index.js +65 -11
  25. package/dist/index.js.map +1 -1
  26. package/dist/lib/agent-guide.d.ts.map +1 -1
  27. package/dist/lib/agent-guide.js +12 -1
  28. package/dist/lib/agent-guide.js.map +1 -1
  29. package/dist/lib/api.d.ts +46 -0
  30. package/dist/lib/api.d.ts.map +1 -1
  31. package/dist/lib/api.js +85 -2
  32. package/dist/lib/api.js.map +1 -1
  33. package/dist/lib/cli-qa-transport.d.ts +7 -0
  34. package/dist/lib/cli-qa-transport.d.ts.map +1 -0
  35. package/dist/lib/cli-qa-transport.js +18 -0
  36. package/dist/lib/cli-qa-transport.js.map +1 -0
  37. package/dist/lib/content-understanding-client.d.ts +64 -0
  38. package/dist/lib/content-understanding-client.d.ts.map +1 -0
  39. package/dist/lib/content-understanding-client.js +105 -0
  40. package/dist/lib/content-understanding-client.js.map +1 -0
  41. package/dist/lib/content-understanding-manifest.d.ts +39 -0
  42. package/dist/lib/content-understanding-manifest.d.ts.map +1 -0
  43. package/dist/lib/content-understanding-manifest.js +265 -0
  44. package/dist/lib/content-understanding-manifest.js.map +1 -0
  45. package/dist/lib/context.d.ts +3 -0
  46. package/dist/lib/context.d.ts.map +1 -1
  47. package/dist/lib/context.js +12 -2
  48. package/dist/lib/context.js.map +1 -1
  49. package/dist/lib/eai-managed-source-client-types.d.ts +37 -1
  50. package/dist/lib/eai-managed-source-client-types.d.ts.map +1 -1
  51. package/dist/lib/eai-managed-source-operation-client.d.ts +3 -0
  52. package/dist/lib/eai-managed-source-operation-client.d.ts.map +1 -1
  53. package/dist/lib/eai-managed-source-operation-client.js +56 -1
  54. package/dist/lib/eai-managed-source-operation-client.js.map +1 -1
  55. package/dist/lib/eai-managed-source-publication-client.d.ts.map +1 -1
  56. package/dist/lib/eai-managed-source-publication-client.js +1 -0
  57. package/dist/lib/eai-managed-source-publication-client.js.map +1 -1
  58. package/dist/lib/error-codes.d.ts +1 -1
  59. package/dist/lib/error-codes.d.ts.map +1 -1
  60. package/dist/lib/error-codes.js +6 -3
  61. package/dist/lib/error-codes.js.map +1 -1
  62. package/dist/lib/tenant-context.d.ts +7 -0
  63. package/dist/lib/tenant-context.d.ts.map +1 -1
  64. package/dist/lib/tenant-context.js +17 -4
  65. package/dist/lib/tenant-context.js.map +1 -1
  66. package/package.json +2 -2
  67. package/resources/content-understanding/contract-golden.json +444 -0
  68. package/resources/content-understanding/manifest.schema.json +551 -0
  69. package/resources/content-understanding/procurement-example.json +135 -0
@@ -0,0 +1,551 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "urn:eai:content-understanding:manifest:1",
4
+ "title": "EAI Content Understanding typed document manifest",
5
+ "type": "object",
6
+ "required": [
7
+ "kind",
8
+ "schemaVersion",
9
+ "tenantId",
10
+ "bundleKey",
11
+ "provider",
12
+ "apiVersion",
13
+ "binding",
14
+ "documentTypes"
15
+ ],
16
+ "properties": {
17
+ "kind": {
18
+ "const": "eai.content-understanding"
19
+ },
20
+ "schemaVersion": {
21
+ "const": 1
22
+ },
23
+ "tenantId": {
24
+ "type": "string",
25
+ "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$",
26
+ "not": {
27
+ "const": "00000000-0000-0000-0000-000000000000"
28
+ }
29
+ },
30
+ "bundleKey": {
31
+ "type": "string",
32
+ "minLength": 1,
33
+ "maxLength": 128,
34
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]*$"
35
+ },
36
+ "provider": {
37
+ "const": "azure-content-understanding"
38
+ },
39
+ "apiVersion": {
40
+ "const": "2025-11-01"
41
+ },
42
+ "binding": {
43
+ "type": "object",
44
+ "required": [
45
+ "appKey",
46
+ "workflowKey",
47
+ "documentLifecycle"
48
+ ],
49
+ "properties": {
50
+ "appKey": {
51
+ "type": "string",
52
+ "minLength": 1,
53
+ "maxLength": 128,
54
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]*$"
55
+ },
56
+ "workflowKey": {
57
+ "type": "string",
58
+ "minLength": 1,
59
+ "maxLength": 128,
60
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]*$"
61
+ },
62
+ "documentLifecycle": {
63
+ "const": "business-document-v1"
64
+ }
65
+ },
66
+ "additionalProperties": false
67
+ },
68
+ "documentTypes": {
69
+ "type": "array",
70
+ "minItems": 1,
71
+ "maxItems": 64,
72
+ "items": {
73
+ "type": "object",
74
+ "required": [
75
+ "code",
76
+ "name",
77
+ "contentUnderstanding"
78
+ ],
79
+ "properties": {
80
+ "code": {
81
+ "type": "string",
82
+ "minLength": 1,
83
+ "maxLength": 128,
84
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]*$",
85
+ "not": {
86
+ "const": "Other"
87
+ }
88
+ },
89
+ "name": {
90
+ "type": "string",
91
+ "minLength": 1,
92
+ "maxLength": 200
93
+ },
94
+ "description": {
95
+ "type": "string",
96
+ "maxLength": 1024
97
+ },
98
+ "category": {
99
+ "type": "string",
100
+ "minLength": 1,
101
+ "maxLength": 128,
102
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]*$"
103
+ },
104
+ "contentUnderstanding": {
105
+ "type": "object",
106
+ "required": [
107
+ "analyzerDefinition"
108
+ ],
109
+ "properties": {
110
+ "analyzerDefinition": {
111
+ "$ref": "#/$defs/analyzer"
112
+ }
113
+ },
114
+ "additionalProperties": false
115
+ }
116
+ },
117
+ "additionalProperties": false
118
+ }
119
+ },
120
+ "classifier": {
121
+ "type": "object",
122
+ "required": [
123
+ "classifierKey",
124
+ "displayName",
125
+ "definition"
126
+ ],
127
+ "properties": {
128
+ "classifierKey": {
129
+ "type": "string",
130
+ "minLength": 1,
131
+ "maxLength": 128,
132
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]*$"
133
+ },
134
+ "displayName": {
135
+ "type": "string",
136
+ "minLength": 1,
137
+ "maxLength": 200
138
+ },
139
+ "description": {
140
+ "type": "string",
141
+ "maxLength": 1024
142
+ },
143
+ "definition": {
144
+ "type": "object",
145
+ "required": [
146
+ "labels"
147
+ ],
148
+ "properties": {
149
+ "labels": {
150
+ "type": "array",
151
+ "minItems": 2,
152
+ "maxItems": 64,
153
+ "items": {
154
+ "type": "object",
155
+ "required": [
156
+ "key",
157
+ "displayName",
158
+ "description",
159
+ "documentTypeKey"
160
+ ],
161
+ "properties": {
162
+ "key": {
163
+ "type": "string",
164
+ "minLength": 1,
165
+ "maxLength": 128,
166
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]*$"
167
+ },
168
+ "displayName": {
169
+ "type": "string",
170
+ "minLength": 1,
171
+ "maxLength": 200
172
+ },
173
+ "description": {
174
+ "type": "string",
175
+ "minLength": 1,
176
+ "maxLength": 1024
177
+ },
178
+ "documentTypeKey": {
179
+ "type": "string",
180
+ "minLength": 1,
181
+ "maxLength": 128,
182
+ "pattern": "^[A-Za-z0-9][A-Za-z0-9_.-]*$"
183
+ }
184
+ },
185
+ "additionalProperties": false,
186
+ "allOf": [
187
+ {
188
+ "if": {
189
+ "properties": {
190
+ "key": {
191
+ "const": "Other"
192
+ }
193
+ },
194
+ "required": [
195
+ "key"
196
+ ]
197
+ },
198
+ "then": {
199
+ "properties": {
200
+ "documentTypeKey": {
201
+ "const": "Other"
202
+ }
203
+ }
204
+ }
205
+ }
206
+ ]
207
+ }
208
+ },
209
+ "minimumConfidence": {
210
+ "type": "number",
211
+ "minimum": 0,
212
+ "maximum": 1
213
+ }
214
+ },
215
+ "additionalProperties": false
216
+ }
217
+ },
218
+ "additionalProperties": false
219
+ }
220
+ },
221
+ "additionalProperties": false,
222
+ "$defs": {
223
+ "field": {
224
+ "oneOf": [
225
+ {
226
+ "type": "object",
227
+ "required": [
228
+ "$ref"
229
+ ],
230
+ "properties": {
231
+ "$ref": {
232
+ "type": "string",
233
+ "pattern": "^#/definitions/[A-Za-z][A-Za-z0-9_]{0,63}$"
234
+ },
235
+ "description": {
236
+ "type": "string",
237
+ "maxLength": 1024
238
+ },
239
+ "estimateSourceAndConfidence": {
240
+ "type": "boolean"
241
+ }
242
+ },
243
+ "additionalProperties": false
244
+ },
245
+ {
246
+ "type": "object",
247
+ "required": [
248
+ "type"
249
+ ],
250
+ "properties": {
251
+ "type": {
252
+ "enum": [
253
+ "string",
254
+ "date",
255
+ "time",
256
+ "number",
257
+ "integer",
258
+ "boolean",
259
+ "array",
260
+ "object",
261
+ "json"
262
+ ]
263
+ },
264
+ "method": {
265
+ "enum": [
266
+ "extract",
267
+ "generate",
268
+ "classify"
269
+ ]
270
+ },
271
+ "description": {
272
+ "type": "string",
273
+ "maxLength": 1024
274
+ },
275
+ "examples": {
276
+ "type": "array",
277
+ "maxItems": 100,
278
+ "items": {
279
+ "type": "string",
280
+ "maxLength": 1024
281
+ }
282
+ },
283
+ "estimateSourceAndConfidence": {
284
+ "type": "boolean"
285
+ },
286
+ "properties": {
287
+ "type": "object",
288
+ "minProperties": 1,
289
+ "propertyNames": {
290
+ "type": "string",
291
+ "maxLength": 64,
292
+ "pattern": "^[A-Za-z][A-Za-z0-9_]*$"
293
+ },
294
+ "additionalProperties": {
295
+ "$ref": "#/$defs/field"
296
+ }
297
+ },
298
+ "items": {
299
+ "$ref": "#/$defs/field"
300
+ },
301
+ "enum": {
302
+ "type": "array",
303
+ "minItems": 1,
304
+ "maxItems": 200,
305
+ "uniqueItems": true,
306
+ "items": {
307
+ "type": "string",
308
+ "minLength": 1,
309
+ "maxLength": 200
310
+ }
311
+ },
312
+ "enumDescriptions": {
313
+ "type": "object",
314
+ "additionalProperties": {
315
+ "type": "string",
316
+ "maxLength": 1024
317
+ }
318
+ }
319
+ },
320
+ "additionalProperties": false,
321
+ "allOf": [
322
+ {
323
+ "if": {
324
+ "properties": {
325
+ "type": {
326
+ "const": "array"
327
+ }
328
+ }
329
+ },
330
+ "then": {
331
+ "required": [
332
+ "items"
333
+ ],
334
+ "not": {
335
+ "required": [
336
+ "properties"
337
+ ]
338
+ }
339
+ },
340
+ "else": {
341
+ "not": {
342
+ "required": [
343
+ "items"
344
+ ]
345
+ }
346
+ }
347
+ },
348
+ {
349
+ "if": {
350
+ "properties": {
351
+ "type": {
352
+ "const": "object"
353
+ }
354
+ }
355
+ },
356
+ "then": {
357
+ "required": [
358
+ "properties"
359
+ ]
360
+ },
361
+ "else": {
362
+ "not": {
363
+ "required": [
364
+ "properties"
365
+ ]
366
+ }
367
+ }
368
+ },
369
+ {
370
+ "if": {
371
+ "required": [
372
+ "method"
373
+ ],
374
+ "properties": {
375
+ "method": {
376
+ "const": "classify"
377
+ }
378
+ }
379
+ },
380
+ "then": {
381
+ "required": [
382
+ "enum"
383
+ ],
384
+ "properties": {
385
+ "type": {
386
+ "const": "string"
387
+ }
388
+ }
389
+ },
390
+ "else": {
391
+ "not": {
392
+ "anyOf": [
393
+ {
394
+ "required": [
395
+ "enum"
396
+ ]
397
+ },
398
+ {
399
+ "required": [
400
+ "enumDescriptions"
401
+ ]
402
+ }
403
+ ]
404
+ }
405
+ }
406
+ }
407
+ ]
408
+ }
409
+ ]
410
+ },
411
+ "analyzer": {
412
+ "type": "object",
413
+ "required": [
414
+ "fieldSchema"
415
+ ],
416
+ "properties": {
417
+ "schemaVersion": {
418
+ "const": 1,
419
+ "default": 1
420
+ },
421
+ "baseAnalyzerId": {
422
+ "const": "prebuilt-document",
423
+ "default": "prebuilt-document"
424
+ },
425
+ "modelProfile": {
426
+ "const": "default",
427
+ "default": "default"
428
+ },
429
+ "description": {
430
+ "type": "string",
431
+ "maxLength": 1024
432
+ },
433
+ "config": {
434
+ "type": "object",
435
+ "properties": {
436
+ "enableOcr": {
437
+ "type": "boolean"
438
+ },
439
+ "enableLayout": {
440
+ "type": "boolean"
441
+ },
442
+ "enableFormula": {
443
+ "type": "boolean",
444
+ "description": "Values other than false require features.advancedDocumentConfig exactly true on the selected workspace before apply or continuation."
445
+ },
446
+ "enableFigureAnalysis": {
447
+ "type": "boolean",
448
+ "description": "Values other than false require features.advancedDocumentConfig exactly true on the selected workspace before apply or continuation."
449
+ },
450
+ "enableFigureDescription": {
451
+ "type": "boolean",
452
+ "description": "Values other than false require features.advancedDocumentConfig exactly true on the selected workspace before apply or continuation."
453
+ },
454
+ "returnDetails": {
455
+ "type": "boolean",
456
+ "default": true
457
+ },
458
+ "estimateFieldSourceAndConfidence": {
459
+ "type": "boolean",
460
+ "default": true
461
+ },
462
+ "omitContent": {
463
+ "const": false
464
+ },
465
+ "enableSegment": {
466
+ "const": false
467
+ },
468
+ "segmentPerPage": {
469
+ "const": false
470
+ },
471
+ "tableFormat": {
472
+ "enum": [
473
+ "html",
474
+ "markdown"
475
+ ],
476
+ "description": "Values other than false require features.advancedDocumentConfig exactly true on the selected workspace before apply or continuation."
477
+ },
478
+ "chartFormat": {
479
+ "enum": [
480
+ "chartJs",
481
+ "markdown"
482
+ ],
483
+ "description": "Values other than false require features.advancedDocumentConfig exactly true on the selected workspace before apply or continuation."
484
+ },
485
+ "annotationFormat": {
486
+ "enum": [
487
+ "markdown",
488
+ "none"
489
+ ],
490
+ "description": "Values other than false require features.advancedDocumentConfig exactly true on the selected workspace before apply or continuation."
491
+ }
492
+ },
493
+ "additionalProperties": false
494
+ },
495
+ "fieldSchema": {
496
+ "type": "object",
497
+ "required": [
498
+ "fields"
499
+ ],
500
+ "properties": {
501
+ "name": {
502
+ "type": "string",
503
+ "maxLength": 64
504
+ },
505
+ "description": {
506
+ "type": "string",
507
+ "maxLength": 1024
508
+ },
509
+ "fields": {
510
+ "type": "object",
511
+ "minProperties": 1,
512
+ "propertyNames": {
513
+ "type": "string",
514
+ "maxLength": 64,
515
+ "pattern": "^[A-Za-z][A-Za-z0-9_]*$"
516
+ },
517
+ "additionalProperties": {
518
+ "$ref": "#/$defs/field"
519
+ }
520
+ },
521
+ "definitions": {
522
+ "type": "object",
523
+ "propertyNames": {
524
+ "type": "string",
525
+ "maxLength": 64,
526
+ "pattern": "^[A-Za-z][A-Za-z0-9_]*$"
527
+ },
528
+ "additionalProperties": {
529
+ "$ref": "#/$defs/field"
530
+ }
531
+ }
532
+ },
533
+ "additionalProperties": false
534
+ }
535
+ },
536
+ "additionalProperties": false
537
+ }
538
+ },
539
+ "x-eai-semanticRules": [
540
+ "Expanded validation includes referenced targets, array items and unused definitions: at most200 nodes, nesting7, classify categories300.",
541
+ "Only local finite definition references; no cycles; reference overlays only description and evidence.",
542
+ "Extract including omitted method requires effective source/confidence estimation exactlytrue.",
543
+ "If present, enumDescriptions covers exactly the classify enum; field descriptions cannot contain context templates.",
544
+ "Combined normalized leaf snapshots must fit16KiB; the backend also validates complete queue snapshots.",
545
+ "Document codes and label keys are unique; non-Other labels must reference a leaf in the bundle.",
546
+ "Ready typed mode requires features.typed_fields and features.flatClassifiers exactly true. Advanced format/figure/formula values other than false require features.advancedDocumentConfig exactly true before apply and continuation.",
547
+ "No direct Azure credentials, infrastructure/model deployment, nested classifiers or segmentation.",
548
+ "Other is reserved for manual review: no leaf code Other; its label routes only to Other. Strings and keys must contain Unicode scalar values.",
549
+ "Bounded human strings count UTF-16 code units; JSON Schema maxLength alone is insufficient for this bound."
550
+ ]
551
+ }
@@ -0,0 +1,135 @@
1
+ {
2
+ "kind": "eai.content-understanding",
3
+ "schemaVersion": 1,
4
+ "tenantId": "11111111-1111-4111-8111-111111111111",
5
+ "bundleKey": "procurement",
6
+ "provider": "azure-content-understanding",
7
+ "apiVersion": "2025-11-01",
8
+ "binding": {
9
+ "appKey": "document-assistant",
10
+ "workflowKey": "procurement",
11
+ "documentLifecycle": "business-document-v1"
12
+ },
13
+ "documentTypes": [
14
+ {
15
+ "code": "Quotation",
16
+ "name": "Quotation",
17
+ "contentUnderstanding": {
18
+ "analyzerDefinition": {
19
+ "fieldSchema": {
20
+ "fields": {
21
+ "quotationNumber": {
22
+ "type": "string",
23
+ "method": "extract",
24
+ "description": "Read the quotation number"
25
+ },
26
+ "validUntil": {
27
+ "type": "date",
28
+ "method": "extract"
29
+ },
30
+ "arrivalTime": {
31
+ "type": "time",
32
+ "method": "extract"
33
+ },
34
+ "totalAmount": {
35
+ "type": "number",
36
+ "method": "extract"
37
+ },
38
+ "quantity": {
39
+ "type": "integer",
40
+ "method": "extract"
41
+ },
42
+ "includesTax": {
43
+ "type": "boolean",
44
+ "method": "extract"
45
+ },
46
+ "supplier": {
47
+ "$ref": "#/definitions/Supplier"
48
+ },
49
+ "lineItems": {
50
+ "type": "array",
51
+ "method": "generate",
52
+ "items": {
53
+ "type": "object",
54
+ "properties": {
55
+ "description": {
56
+ "type": "string",
57
+ "method": "extract"
58
+ },
59
+ "expenseCategory": {
60
+ "type": "string",
61
+ "method": "classify",
62
+ "enum": [
63
+ "Goods",
64
+ "Transportation",
65
+ "Services",
66
+ "Other"
67
+ ],
68
+ "enumDescriptions": {
69
+ "Goods": "Physical goods",
70
+ "Transportation": "Delivery charges",
71
+ "Services": "Installation charges",
72
+ "Other": "Anything else"
73
+ }
74
+ }
75
+ }
76
+ }
77
+ },
78
+ "additionalSpecifications": {
79
+ "type": "json",
80
+ "method": "generate",
81
+ "description": "Preserve supplier-specific specifications"
82
+ },
83
+ "summary": {
84
+ "type": "string",
85
+ "method": "generate",
86
+ "description": "Summarize the main decisions"
87
+ }
88
+ },
89
+ "definitions": {
90
+ "Supplier": {
91
+ "type": "object",
92
+ "method": "extract",
93
+ "properties": {
94
+ "name": {
95
+ "type": "string",
96
+ "method": "extract"
97
+ },
98
+ "address": {
99
+ "type": "string",
100
+ "method": "extract"
101
+ },
102
+ "contact": {
103
+ "type": "string",
104
+ "method": "extract"
105
+ }
106
+ }
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+ }
113
+ ],
114
+ "classifier": {
115
+ "classifierKey": "procurement",
116
+ "displayName": "Procurement router",
117
+ "definition": {
118
+ "labels": [
119
+ {
120
+ "key": "Quote",
121
+ "displayName": "Quotation",
122
+ "description": "A supplier quotation",
123
+ "documentTypeKey": "Quotation"
124
+ },
125
+ {
126
+ "key": "Other",
127
+ "displayName": "Other",
128
+ "description": "Anything else for manual review",
129
+ "documentTypeKey": "Other"
130
+ }
131
+ ],
132
+ "minimumConfidence": 0.75
133
+ }
134
+ }
135
+ }