openxiangda-contracts 2.79.1 → 2.81.0

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 (90) hide show
  1. package/dist/ai.d.ts +290 -21
  2. package/dist/ai.d.ts.map +1 -1
  3. package/dist/ai.js +23 -14
  4. package/dist/ai.js.map +1 -1
  5. package/dist/application-agent.d.ts +540 -0
  6. package/dist/application-agent.d.ts.map +1 -0
  7. package/dist/application-agent.js +98 -0
  8. package/dist/application-agent.js.map +1 -0
  9. package/dist/browser.d.ts +4 -0
  10. package/dist/browser.d.ts.map +1 -1
  11. package/dist/browser.js +4 -0
  12. package/dist/browser.js.map +1 -1
  13. package/dist/field-value-schemas.d.ts +2 -1427
  14. package/dist/field-value-schemas.d.ts.map +1 -1
  15. package/dist/field-value-schemas.js +2 -261
  16. package/dist/field-value-schemas.js.map +1 -1
  17. package/dist/index.d.ts +1 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +1 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/native-compiler/application-agent.d.ts +39 -0
  22. package/dist/native-compiler/application-agent.d.ts.map +1 -0
  23. package/dist/native-compiler/application-agent.js +344 -0
  24. package/dist/native-compiler/application-agent.js.map +1 -0
  25. package/dist/native-compiler/compiler.d.ts.map +1 -1
  26. package/dist/native-compiler/compiler.js +9 -6
  27. package/dist/native-compiler/compiler.js.map +1 -1
  28. package/dist/native-compiler/declaration-capacity.d.ts +3 -0
  29. package/dist/native-compiler/declaration-capacity.d.ts.map +1 -1
  30. package/dist/native-compiler/declaration-capacity.js +1 -1
  31. package/dist/native-compiler/declaration-capacity.js.map +1 -1
  32. package/dist/native-compiler/field-value-schemas.d.ts +1428 -0
  33. package/dist/native-compiler/field-value-schemas.d.ts.map +1 -0
  34. package/dist/native-compiler/field-value-schemas.js +262 -0
  35. package/dist/native-compiler/field-value-schemas.js.map +1 -0
  36. package/dist/native-compiler/index.cjs +3 -3
  37. package/dist/native-compiler/index.d.ts +6 -0
  38. package/dist/native-compiler/index.d.ts.map +1 -1
  39. package/dist/native-compiler/index.js +3 -3
  40. package/dist/native-compiler/workflow-authoring.d.ts +24 -0
  41. package/dist/native-compiler/workflow-authoring.d.ts.map +1 -0
  42. package/dist/native-compiler/workflow-authoring.js +84 -0
  43. package/dist/native-compiler/workflow-authoring.js.map +1 -0
  44. package/dist/native-compiler/workflow-business-step.d.ts +5 -0
  45. package/dist/native-compiler/workflow-business-step.d.ts.map +1 -1
  46. package/dist/native-compiler/workflow-business-step.js +23 -3
  47. package/dist/native-compiler/workflow-business-step.js.map +1 -1
  48. package/dist/native-compiler/workflow-designer.d.ts +8 -1
  49. package/dist/native-compiler/workflow-designer.d.ts.map +1 -1
  50. package/dist/native-compiler/workflow-designer.js +18 -8
  51. package/dist/native-compiler/workflow-designer.js.map +1 -1
  52. package/dist/native-compiler/workflow-expression.d.ts +4 -0
  53. package/dist/native-compiler/workflow-expression.d.ts.map +1 -0
  54. package/dist/native-compiler/workflow-expression.js +47 -0
  55. package/dist/native-compiler/workflow-expression.js.map +1 -0
  56. package/dist/native-compiler/workflow-return-eligibility.d.ts +8 -0
  57. package/dist/native-compiler/workflow-return-eligibility.d.ts.map +1 -0
  58. package/dist/native-compiler/workflow-return-eligibility.js +32 -0
  59. package/dist/native-compiler/workflow-return-eligibility.js.map +1 -0
  60. package/dist/native-compiler/workflow-schema-constants.d.ts +5 -0
  61. package/dist/native-compiler/workflow-schema-constants.d.ts.map +1 -0
  62. package/dist/native-compiler/workflow-schema-constants.js +5 -0
  63. package/dist/native-compiler/workflow-schema-constants.js.map +1 -0
  64. package/dist/native-compiler/workflow-schema.d.ts +1634 -0
  65. package/dist/native-compiler/workflow-schema.d.ts.map +1 -0
  66. package/dist/native-compiler/workflow-schema.js +519 -0
  67. package/dist/native-compiler/workflow-schema.js.map +1 -0
  68. package/dist/native-compiler/workflow-source-sync.d.ts.map +1 -1
  69. package/dist/native-compiler/workflow-source-sync.js +5 -9
  70. package/dist/native-compiler/workflow-source-sync.js.map +1 -1
  71. package/dist/native-version.d.ts +1 -0
  72. package/dist/native-version.d.ts.map +1 -1
  73. package/dist/native-version.js +1 -0
  74. package/dist/native-version.js.map +1 -1
  75. package/dist/native.d.ts +2 -0
  76. package/dist/native.d.ts.map +1 -1
  77. package/dist/native.js.map +1 -1
  78. package/dist/schemas.d.ts +711 -1570
  79. package/dist/schemas.d.ts.map +1 -1
  80. package/dist/schemas.js +4 -495
  81. package/dist/schemas.js.map +1 -1
  82. package/dist/types.d.ts +2 -0
  83. package/dist/types.d.ts.map +1 -1
  84. package/dist/types.js +3 -2
  85. package/dist/types.js.map +1 -1
  86. package/dist/workflow-summary.d.ts +1 -1
  87. package/dist/workflow-summary.d.ts.map +1 -1
  88. package/dist/workflow-summary.js +2 -1
  89. package/dist/workflow-summary.js.map +1 -1
  90. package/package.json +1 -1
@@ -0,0 +1,540 @@
1
+ import type { AiJsonSchema, AiConfirmationPolicy } from './ai.js';
2
+ import type { DataFieldType } from './types.js';
3
+ export interface ApplicationAgentTaskBaseV2 {
4
+ code: string;
5
+ name?: string;
6
+ description?: string;
7
+ resource: string;
8
+ view: string;
9
+ examples?: string[];
10
+ }
11
+ export type ApplicationAgentTaskDeclarationV2 = (ApplicationAgentTaskBaseV2 & {
12
+ kind: 'view';
13
+ filters?: string[];
14
+ }) | (ApplicationAgentTaskBaseV2 & {
15
+ kind: 'form';
16
+ action: 'create' | 'update';
17
+ fields: string[];
18
+ confirmation?: AiConfirmationPolicy;
19
+ });
20
+ /** Authoring only. File references are inlined by the bounded workspace loader. */
21
+ export interface ApplicationAgentDeclarationV2 {
22
+ code: string;
23
+ name: string;
24
+ purpose: string;
25
+ instructions: string | {
26
+ file: string;
27
+ };
28
+ starters?: string[];
29
+ tasks: ApplicationAgentTaskDeclarationV2[];
30
+ }
31
+ export interface ApplicationAgentDefinitionV2 {
32
+ code: string;
33
+ name: string;
34
+ purpose: string;
35
+ instructions: string;
36
+ starters: string[];
37
+ tasks: Array<{
38
+ code: string;
39
+ capabilityCode: string;
40
+ }>;
41
+ digest: string;
42
+ }
43
+ export interface ApplicationAgentDefinitionsV2 {
44
+ schemaVersion: 'openxiangda.application-agent-definitions/v2';
45
+ appCode: string;
46
+ agents: ApplicationAgentDefinitionV2[];
47
+ }
48
+ /** Routing only. The selected owner still authorizes the ordinary field value. */
49
+ export type NativeAgentSelectorV2 = {
50
+ owner: 'directory' | 'user-candidates' | 'field-source' | 'options';
51
+ } | {
52
+ owner: 'scope';
53
+ dimensionCode: string;
54
+ };
55
+ export interface NativeAgentFieldCoverageV2 {
56
+ field: string;
57
+ selector?: NativeAgentSelectorV2;
58
+ create: boolean;
59
+ update: boolean;
60
+ filter: boolean;
61
+ output: 'label' | 'value' | 'page';
62
+ reason?: 'multiple-scope-dimensions' | 'saved-scope-required';
63
+ }
64
+ /** The command owns field value schemas; this descriptor never redescribes them. */
65
+ export interface NativeAgentFormDescriptorV2 {
66
+ contractVersion: 2;
67
+ action: 'create' | 'update';
68
+ title: string;
69
+ submitLabel: string;
70
+ resource: string;
71
+ view: string;
72
+ fields: Array<{
73
+ path: string;
74
+ label: string;
75
+ fieldType: DataFieldType;
76
+ required: boolean;
77
+ source: {
78
+ resource: string;
79
+ field: string;
80
+ };
81
+ selector?: NativeAgentSelectorV2;
82
+ }>;
83
+ }
84
+ export interface NativeAgentTaskMetadataV2 {
85
+ contractVersion: 2;
86
+ agentCode: string;
87
+ taskCode: string;
88
+ /** Input assistance only. It cannot be sent to the command owner. */
89
+ hintSchema: AiJsonSchema;
90
+ coverage?: NativeAgentFieldCoverageV2[];
91
+ form?: NativeAgentFormDescriptorV2;
92
+ }
93
+ export type NativeAgentTaskBindingV2 = {
94
+ kind: 'native-view';
95
+ resourceCode: string;
96
+ viewCode: string;
97
+ filterFields: string[];
98
+ } | {
99
+ kind: 'native-form';
100
+ resourceCode: string;
101
+ viewCode: string;
102
+ action: 'create' | 'update';
103
+ fields: string[];
104
+ };
105
+ export declare const applicationAgentDeclarationSchemaV2: {
106
+ readonly type: "object";
107
+ readonly additionalProperties: false;
108
+ readonly required: readonly ["code", "name", "purpose", "instructions", "tasks"];
109
+ readonly properties: {
110
+ readonly code: {
111
+ type: string;
112
+ minLength: number;
113
+ maxLength: number;
114
+ pattern: string;
115
+ };
116
+ readonly name: {
117
+ readonly type: "string";
118
+ readonly minLength: 1;
119
+ readonly maxLength: 80;
120
+ };
121
+ readonly purpose: {
122
+ readonly type: "string";
123
+ readonly minLength: 1;
124
+ readonly maxLength: 1000;
125
+ };
126
+ readonly instructions: {
127
+ readonly type: "string";
128
+ readonly minLength: 1;
129
+ readonly maxLength: 16000;
130
+ };
131
+ readonly starters: {
132
+ readonly type: "array";
133
+ readonly maxItems: 12;
134
+ readonly uniqueItems: true;
135
+ readonly items: {
136
+ readonly type: "string";
137
+ readonly minLength: 1;
138
+ readonly maxLength: 160;
139
+ };
140
+ };
141
+ readonly tasks: {
142
+ readonly type: "array";
143
+ readonly minItems: 1;
144
+ readonly maxItems: 20;
145
+ readonly items: {
146
+ readonly oneOf: readonly [{
147
+ readonly type: "object";
148
+ readonly additionalProperties: false;
149
+ readonly required: readonly ["code", "kind", "resource", "view"];
150
+ readonly properties: {
151
+ readonly kind: {
152
+ readonly const: "view";
153
+ };
154
+ readonly filters: {
155
+ type: string;
156
+ maxItems: number;
157
+ uniqueItems: boolean;
158
+ items: {
159
+ type: string;
160
+ minLength: number;
161
+ maxLength: number;
162
+ };
163
+ };
164
+ readonly code: {
165
+ type: string;
166
+ minLength: number;
167
+ maxLength: number;
168
+ pattern: string;
169
+ };
170
+ readonly name: {
171
+ type: string;
172
+ minLength: number;
173
+ maxLength: number;
174
+ };
175
+ readonly description: {
176
+ type: string;
177
+ minLength: number;
178
+ maxLength: number;
179
+ };
180
+ readonly resource: {
181
+ type: string;
182
+ minLength: number;
183
+ maxLength: number;
184
+ pattern: string;
185
+ };
186
+ readonly view: {
187
+ type: string;
188
+ minLength: number;
189
+ maxLength: number;
190
+ pattern: string;
191
+ };
192
+ readonly examples: {
193
+ type: string;
194
+ maxItems: number;
195
+ uniqueItems: boolean;
196
+ items: {
197
+ type: string;
198
+ minLength: number;
199
+ maxLength: number;
200
+ };
201
+ };
202
+ };
203
+ }, {
204
+ readonly type: "object";
205
+ readonly additionalProperties: false;
206
+ readonly required: readonly ["code", "kind", "resource", "view", "action", "fields"];
207
+ readonly properties: {
208
+ readonly kind: {
209
+ readonly const: "form";
210
+ };
211
+ readonly action: {
212
+ readonly enum: readonly ["create", "update"];
213
+ };
214
+ readonly fields: {
215
+ readonly minItems: 1;
216
+ readonly type: string;
217
+ readonly maxItems: number;
218
+ readonly uniqueItems: boolean;
219
+ readonly items: {
220
+ type: string;
221
+ minLength: number;
222
+ maxLength: number;
223
+ };
224
+ };
225
+ readonly confirmation: {
226
+ readonly enum: readonly ["none", "required"];
227
+ };
228
+ readonly code: {
229
+ type: string;
230
+ minLength: number;
231
+ maxLength: number;
232
+ pattern: string;
233
+ };
234
+ readonly name: {
235
+ type: string;
236
+ minLength: number;
237
+ maxLength: number;
238
+ };
239
+ readonly description: {
240
+ type: string;
241
+ minLength: number;
242
+ maxLength: number;
243
+ };
244
+ readonly resource: {
245
+ type: string;
246
+ minLength: number;
247
+ maxLength: number;
248
+ pattern: string;
249
+ };
250
+ readonly view: {
251
+ type: string;
252
+ minLength: number;
253
+ maxLength: number;
254
+ pattern: string;
255
+ };
256
+ readonly examples: {
257
+ type: string;
258
+ maxItems: number;
259
+ uniqueItems: boolean;
260
+ items: {
261
+ type: string;
262
+ minLength: number;
263
+ maxLength: number;
264
+ };
265
+ };
266
+ };
267
+ }];
268
+ };
269
+ };
270
+ };
271
+ };
272
+ export declare const nativeAgentTaskBindingSchemaV2: {
273
+ readonly oneOf: readonly [{
274
+ readonly type: "object";
275
+ readonly additionalProperties: false;
276
+ readonly required: readonly ["kind", "resourceCode", "viewCode", "filterFields"];
277
+ readonly properties: {
278
+ readonly kind: {
279
+ readonly const: "native-view";
280
+ };
281
+ readonly resourceCode: {
282
+ type: string;
283
+ minLength: number;
284
+ maxLength: number;
285
+ pattern: string;
286
+ };
287
+ readonly viewCode: {
288
+ type: string;
289
+ minLength: number;
290
+ maxLength: number;
291
+ pattern: string;
292
+ };
293
+ readonly filterFields: {
294
+ type: string;
295
+ maxItems: number;
296
+ uniqueItems: boolean;
297
+ items: {
298
+ type: string;
299
+ minLength: number;
300
+ maxLength: number;
301
+ };
302
+ };
303
+ };
304
+ }, {
305
+ readonly type: "object";
306
+ readonly additionalProperties: false;
307
+ readonly required: readonly ["kind", "resourceCode", "viewCode", "action", "fields"];
308
+ readonly properties: {
309
+ readonly kind: {
310
+ readonly const: "native-form";
311
+ };
312
+ readonly resourceCode: {
313
+ type: string;
314
+ minLength: number;
315
+ maxLength: number;
316
+ pattern: string;
317
+ };
318
+ readonly viewCode: {
319
+ type: string;
320
+ minLength: number;
321
+ maxLength: number;
322
+ pattern: string;
323
+ };
324
+ readonly action: {
325
+ readonly enum: readonly ["create", "update"];
326
+ };
327
+ readonly fields: {
328
+ readonly minItems: 1;
329
+ readonly type: string;
330
+ readonly maxItems: number;
331
+ readonly uniqueItems: boolean;
332
+ readonly items: {
333
+ type: string;
334
+ minLength: number;
335
+ maxLength: number;
336
+ };
337
+ };
338
+ };
339
+ }];
340
+ };
341
+ export declare const nativeAgentTaskMetadataSchemaV2: {
342
+ readonly type: "object";
343
+ readonly additionalProperties: false;
344
+ readonly required: readonly ["contractVersion", "agentCode", "taskCode", "hintSchema"];
345
+ readonly properties: {
346
+ readonly contractVersion: {
347
+ readonly const: 2;
348
+ };
349
+ readonly agentCode: {
350
+ type: string;
351
+ minLength: number;
352
+ maxLength: number;
353
+ pattern: string;
354
+ };
355
+ readonly taskCode: {
356
+ type: string;
357
+ minLength: number;
358
+ maxLength: number;
359
+ pattern: string;
360
+ };
361
+ readonly hintSchema: {
362
+ readonly type: "object";
363
+ };
364
+ readonly coverage: {
365
+ type: string;
366
+ maxItems: number;
367
+ items: {
368
+ type: string;
369
+ additionalProperties: boolean;
370
+ required: string[];
371
+ properties: {
372
+ field: {
373
+ type: string;
374
+ minLength: number;
375
+ maxLength: number;
376
+ };
377
+ selector: {
378
+ oneOf: ({
379
+ type: string;
380
+ additionalProperties: boolean;
381
+ required: string[];
382
+ properties: {
383
+ owner: {
384
+ enum: string[];
385
+ const?: never;
386
+ };
387
+ dimensionCode?: never;
388
+ };
389
+ } | {
390
+ type: string;
391
+ additionalProperties: boolean;
392
+ required: string[];
393
+ properties: {
394
+ owner: {
395
+ const: string;
396
+ enum?: never;
397
+ };
398
+ dimensionCode: {
399
+ type: string;
400
+ minLength: number;
401
+ maxLength: number;
402
+ pattern: string;
403
+ };
404
+ };
405
+ })[];
406
+ };
407
+ create: {
408
+ type: string;
409
+ };
410
+ update: {
411
+ type: string;
412
+ };
413
+ filter: {
414
+ type: string;
415
+ };
416
+ output: {
417
+ enum: string[];
418
+ };
419
+ reason: {
420
+ enum: string[];
421
+ };
422
+ };
423
+ };
424
+ };
425
+ readonly form: {
426
+ readonly type: "object";
427
+ readonly additionalProperties: false;
428
+ readonly required: readonly ["contractVersion", "action", "title", "submitLabel", "resource", "view", "fields"];
429
+ readonly properties: {
430
+ readonly contractVersion: {
431
+ readonly const: 2;
432
+ };
433
+ readonly action: {
434
+ readonly enum: readonly ["create", "update"];
435
+ };
436
+ readonly title: {
437
+ readonly type: "string";
438
+ readonly minLength: 1;
439
+ readonly maxLength: 80;
440
+ };
441
+ readonly submitLabel: {
442
+ readonly type: "string";
443
+ readonly minLength: 1;
444
+ readonly maxLength: 40;
445
+ };
446
+ readonly resource: {
447
+ type: string;
448
+ minLength: number;
449
+ maxLength: number;
450
+ pattern: string;
451
+ };
452
+ readonly view: {
453
+ type: string;
454
+ minLength: number;
455
+ maxLength: number;
456
+ pattern: string;
457
+ };
458
+ readonly fields: {
459
+ readonly type: "array";
460
+ readonly minItems: 1;
461
+ readonly maxItems: 20;
462
+ readonly items: {
463
+ readonly type: "object";
464
+ readonly additionalProperties: false;
465
+ readonly required: readonly ["path", "label", "fieldType", "required", "source"];
466
+ readonly properties: {
467
+ readonly path: {
468
+ readonly type: "string";
469
+ readonly minLength: 1;
470
+ readonly maxLength: 100;
471
+ };
472
+ readonly label: {
473
+ readonly type: "string";
474
+ readonly minLength: 1;
475
+ readonly maxLength: 500;
476
+ };
477
+ readonly fieldType: {
478
+ readonly enum: readonly ["text.short", "text.long", "text.rich", "number.integer", "number.decimal", "boolean", "date", "time", "datetime", "date-range", "datetime-range", "option.single", "option.multiple", "cascade.single", "cascade.multiple", "user.single", "user.multiple", "department.single", "department.multiple", "resource-ref.single", "resource-ref.multiple", "image", "signature", "address", "location", "uuid", "json", "file", "serial-number", "subtable"];
479
+ };
480
+ readonly required: {
481
+ readonly type: "boolean";
482
+ };
483
+ readonly selector: {
484
+ oneOf: ({
485
+ type: string;
486
+ additionalProperties: boolean;
487
+ required: string[];
488
+ properties: {
489
+ owner: {
490
+ enum: string[];
491
+ const?: never;
492
+ };
493
+ dimensionCode?: never;
494
+ };
495
+ } | {
496
+ type: string;
497
+ additionalProperties: boolean;
498
+ required: string[];
499
+ properties: {
500
+ owner: {
501
+ const: string;
502
+ enum?: never;
503
+ };
504
+ dimensionCode: {
505
+ type: string;
506
+ minLength: number;
507
+ maxLength: number;
508
+ pattern: string;
509
+ };
510
+ };
511
+ })[];
512
+ };
513
+ readonly source: {
514
+ readonly type: "object";
515
+ readonly additionalProperties: false;
516
+ readonly required: readonly ["resource", "field"];
517
+ readonly properties: {
518
+ readonly resource: {
519
+ type: string;
520
+ minLength: number;
521
+ maxLength: number;
522
+ pattern: string;
523
+ };
524
+ readonly field: {
525
+ readonly type: "string";
526
+ readonly minLength: 1;
527
+ readonly maxLength: 100;
528
+ };
529
+ };
530
+ };
531
+ };
532
+ };
533
+ };
534
+ };
535
+ };
536
+ };
537
+ };
538
+ /** Structural validation only. The native compiler additionally reproduces bindings from the sealed resource/view graph. */
539
+ export declare function validNativeAgentCapabilityV2(raw: Record<string, any>): boolean;
540
+ //# sourceMappingURL=application-agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application-agent.d.ts","sourceRoot":"","sources":["../src/application-agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ import { DATA_FIELD_TYPES } from './types.js';
2
+ const stableCode = { type: 'string', minLength: 1, maxLength: 100, pattern: '^[a-z][a-z0-9]*(?:[-.][a-z0-9]+)*$' };
3
+ const fieldNames = { type: 'array', maxItems: 20, uniqueItems: true, items: { type: 'string', minLength: 1, maxLength: 100 } };
4
+ const selectorSchema = { oneOf: [
5
+ { type: 'object', additionalProperties: false, required: ['owner'], properties: { owner: { enum: ['directory', 'user-candidates', 'field-source', 'options'] } } },
6
+ { type: 'object', additionalProperties: false, required: ['owner', 'dimensionCode'], properties: { owner: { const: 'scope' }, dimensionCode: stableCode } },
7
+ ] };
8
+ const coverageSchema = { type: 'array', maxItems: 500, items: {
9
+ type: 'object', additionalProperties: false, required: ['field', 'create', 'update', 'filter', 'output'],
10
+ properties: { field: { type: 'string', minLength: 1, maxLength: 100 }, selector: selectorSchema,
11
+ create: { type: 'boolean' }, update: { type: 'boolean' }, filter: { type: 'boolean' },
12
+ output: { enum: ['label', 'value', 'page'] }, reason: { enum: ['multiple-scope-dimensions', 'saved-scope-required'] } },
13
+ } };
14
+ const taskBase = { code: stableCode, name: { type: 'string', minLength: 1, maxLength: 80 },
15
+ description: { type: 'string', minLength: 1, maxLength: 1000 }, resource: stableCode, view: stableCode,
16
+ examples: { type: 'array', maxItems: 12, uniqueItems: true, items: { type: 'string', minLength: 1, maxLength: 160 } } };
17
+ export const applicationAgentDeclarationSchemaV2 = {
18
+ type: 'object', additionalProperties: false, required: ['code', 'name', 'purpose', 'instructions', 'tasks'],
19
+ properties: {
20
+ code: stableCode, name: { type: 'string', minLength: 1, maxLength: 80 },
21
+ purpose: { type: 'string', minLength: 1, maxLength: 1000 }, instructions: { type: 'string', minLength: 1, maxLength: 16000 },
22
+ starters: { type: 'array', maxItems: 12, uniqueItems: true, items: { type: 'string', minLength: 1, maxLength: 160 } },
23
+ tasks: { type: 'array', minItems: 1, maxItems: 20, items: { oneOf: [
24
+ { type: 'object', additionalProperties: false, required: ['code', 'kind', 'resource', 'view'],
25
+ properties: { ...taskBase, kind: { const: 'view' }, filters: fieldNames } },
26
+ { type: 'object', additionalProperties: false, required: ['code', 'kind', 'resource', 'view', 'action', 'fields'],
27
+ properties: { ...taskBase, kind: { const: 'form' }, action: { enum: ['create', 'update'] },
28
+ fields: { ...fieldNames, minItems: 1 }, confirmation: { enum: ['none', 'required'] } } },
29
+ ] } },
30
+ },
31
+ };
32
+ export const nativeAgentTaskBindingSchemaV2 = { oneOf: [
33
+ { type: 'object', additionalProperties: false, required: ['kind', 'resourceCode', 'viewCode', 'filterFields'],
34
+ properties: { kind: { const: 'native-view' }, resourceCode: stableCode, viewCode: stableCode, filterFields: fieldNames } },
35
+ { type: 'object', additionalProperties: false, required: ['kind', 'resourceCode', 'viewCode', 'action', 'fields'],
36
+ properties: { kind: { const: 'native-form' }, resourceCode: stableCode, viewCode: stableCode,
37
+ action: { enum: ['create', 'update'] }, fields: { ...fieldNames, minItems: 1 } } },
38
+ ] };
39
+ export const nativeAgentTaskMetadataSchemaV2 = {
40
+ type: 'object', additionalProperties: false, required: ['contractVersion', 'agentCode', 'taskCode', 'hintSchema'],
41
+ properties: { contractVersion: { const: 2 }, agentCode: stableCode, taskCode: stableCode, hintSchema: { type: 'object' },
42
+ coverage: coverageSchema,
43
+ form: { type: 'object', additionalProperties: false,
44
+ required: ['contractVersion', 'action', 'title', 'submitLabel', 'resource', 'view', 'fields'],
45
+ properties: { contractVersion: { const: 2 }, action: { enum: ['create', 'update'] },
46
+ title: { type: 'string', minLength: 1, maxLength: 80 }, submitLabel: { type: 'string', minLength: 1, maxLength: 40 },
47
+ resource: stableCode, view: stableCode, fields: { type: 'array', minItems: 1, maxItems: 20,
48
+ items: { type: 'object', additionalProperties: false, required: ['path', 'label', 'fieldType', 'required', 'source'],
49
+ properties: { path: { type: 'string', minLength: 1, maxLength: 100 }, label: { type: 'string', minLength: 1, maxLength: 500 },
50
+ fieldType: { enum: DATA_FIELD_TYPES }, required: { type: 'boolean' },
51
+ selector: selectorSchema,
52
+ source: { type: 'object', additionalProperties: false, required: ['resource', 'field'],
53
+ properties: { resource: stableCode, field: { type: 'string', minLength: 1, maxLength: 100 } } } } } } },
54
+ },
55
+ },
56
+ };
57
+ /** Structural validation only. The native compiler additionally reproduces bindings from the sealed resource/view graph. */
58
+ export function validNativeAgentCapabilityV2(raw) {
59
+ const isObject = (v) => Boolean(v) && typeof v === 'object' && !Array.isArray(v);
60
+ const exact = (v, allowed) => Object.keys(v).every(k => allowed.includes(k));
61
+ const nonEmpty = (v, max = 100) => typeof v === 'string' && v.trim().length > 0 && v.length <= max;
62
+ const names = (v, min = 0) => Array.isArray(v) && v.length >= min && v.length <= 20 && new Set(v).size === v.length && v.every(k => nonEmpty(k));
63
+ const binding = raw.binding, meta = raw.agent?.nativeTask;
64
+ if (!isObject(binding) || !isObject(meta) || !isObject(raw.agent) || raw.agent.visibility !== 'task' ||
65
+ !exact(raw.agent, ['visibility', 'examples', 'nativeTask']) ||
66
+ (raw.agent.examples !== undefined && (!Array.isArray(raw.agent.examples) || raw.agent.examples.length > 12 ||
67
+ new Set(raw.agent.examples).size !== raw.agent.examples.length || raw.agent.examples.some((example) => !nonEmpty(example, 160)))) ||
68
+ !exact(meta, ['contractVersion', 'agentCode', 'taskCode', 'hintSchema', 'coverage', 'form']) || meta.contractVersion !== 2 ||
69
+ !nonEmpty(meta.agentCode) || !nonEmpty(meta.taskCode) || !isObject(meta.hintSchema) || meta.hintSchema.type !== 'object' ||
70
+ !nonEmpty(binding.resourceCode) || !nonEmpty(binding.viewCode) || raw.resources?.length !== 1 || raw.resources[0] !== binding.resourceCode ||
71
+ raw.generatedFrom !== undefined || raw.code !== `${raw.appCode}.agent.${meta.agentCode}.${meta.taskCode}`)
72
+ return false;
73
+ const validSelector = (v) => isObject(v) && (v.owner === 'scope'
74
+ ? exact(v, ['owner', 'dimensionCode']) && nonEmpty(v.dimensionCode)
75
+ : exact(v, ['owner']) && ['directory', 'user-candidates', 'field-source', 'options'].includes(v.owner));
76
+ if (meta.coverage !== undefined && (!Array.isArray(meta.coverage) || meta.coverage.length > 500 ||
77
+ new Set(meta.coverage.map((entry) => entry?.field)).size !== meta.coverage.length || meta.coverage.some((entry) => !isObject(entry) || !exact(entry, ['field', 'selector', 'create', 'update', 'filter', 'output', 'reason']) || !nonEmpty(entry.field) ||
78
+ ['create', 'update', 'filter'].some(key => typeof entry[key] !== 'boolean') || !['label', 'value', 'page'].includes(entry.output) ||
79
+ (entry.selector !== undefined && !validSelector(entry.selector)) ||
80
+ (entry.reason !== undefined && !['multiple-scope-dimensions', 'saved-scope-required'].includes(entry.reason)))))
81
+ return false;
82
+ if (binding.kind === 'native-view')
83
+ return exact(binding, ['kind', 'resourceCode', 'viewCode', 'filterFields']) && names(binding.filterFields) &&
84
+ meta.form === undefined && raw.operation === 'query' && raw.risk === 'read' && raw.confirmation === 'none' && raw.idempotency === 'none' && raw.concurrency === 'none';
85
+ if (binding.kind !== 'native-form' || !exact(binding, ['kind', 'resourceCode', 'viewCode', 'action', 'fields']) || !names(binding.fields, 1) ||
86
+ !['create', 'update'].includes(binding.action) || raw.operation !== binding.action || raw.risk !== 'write' || raw.idempotency !== 'required' ||
87
+ raw.concurrency !== (binding.action === 'update' ? 'revision' : 'none'))
88
+ return false;
89
+ const form = meta.form;
90
+ return isObject(form) && exact(form, ['contractVersion', 'action', 'title', 'submitLabel', 'resource', 'view', 'fields']) &&
91
+ form.contractVersion === 2 && form.action === binding.action && form.resource === binding.resourceCode && form.view === binding.viewCode &&
92
+ nonEmpty(form.title, 80) && nonEmpty(form.submitLabel, 40) && Array.isArray(form.fields) && form.fields.length === binding.fields.length &&
93
+ form.fields.every((field, i) => isObject(field) && exact(field, ['path', 'label', 'fieldType', 'required', 'source', 'selector']) &&
94
+ (field.selector === undefined || validSelector(field.selector)) &&
95
+ field.path === binding.fields[i] && nonEmpty(field.label, 500) && DATA_FIELD_TYPES.includes(field.fieldType) && typeof field.required === 'boolean' &&
96
+ isObject(field.source) && exact(field.source, ['resource', 'field']) && field.source.resource === binding.resourceCode && field.source.field === field.path);
97
+ }
98
+ //# sourceMappingURL=application-agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"application-agent.js","sourceRoot":"","sources":["../src/application-agent.ts"],"names":[],"mappings":"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"}