@operla-ai/sdk 1.1.8 → 1.2.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.
@@ -4564,9 +4564,31 @@ export type SendMessageResponses = {
4564
4564
  reason?: string;
4565
4565
  }>;
4566
4566
  /**
4567
- * Information the AI needed on this turn and did not have, one short phrase per gap — use it to find what your knowledge base or the user context you send is missing. Empty when nothing was missing. Whether a gap also hands the turn to a human depends on your missing-information setting; the gap is reported either way.
4567
+ * Information the AI needed on this turn and did not have, one entry per gap — use it to find what your knowledge base or the `user` you send is missing. Empty when nothing was missing. Whether a gap also hands the turn to a human depends on your missing-information setting; the gap is reported either way.
4568
4568
  */
4569
- missingInfo: Array<string>;
4569
+ missingInfo: Array<{
4570
+ /**
4571
+ * The gap in one short phrase.
4572
+ */
4573
+ summary: string;
4574
+ /**
4575
+ * Where the point belongs, derived from `keys` — a shortcut, never a judgement. Resolved only when every cited key agrees; `null` when no key was cited, and when the cited keys span both stores, where naming one would hide the other. `null` says the shortcut does not apply, never that a point has no origin, and it has no bearing on `sources`. Read `keys` for the full picture.
4576
+ */
4577
+ store: 'kb' | 'user';
4578
+ /**
4579
+ * The keys this gap concerns. Empty when no field covers the point — the ordinary case, and `summary` then carries it alone. Never a key you did not declare.
4580
+ */
4581
+ keys: Array<{
4582
+ /**
4583
+ * `kb`: a field of a knowledge base article's grid. `user`: a field of the `user.data` you send on the request.
4584
+ */
4585
+ store: 'kb' | 'user';
4586
+ /**
4587
+ * The key as you declared it, e.g. `warranty.duration` or `identity.phone`.
4588
+ */
4589
+ key: string;
4590
+ }>;
4591
+ }>;
4570
4592
  /**
4571
4593
  * Sources of yours the user contradicted on this turn — use it to find what your knowledge base holds that is no longer true. The AI keeps answering from its sources; this is a doubt for you to verify, never a verdict. Group your report on `sources[].articleId`: two specialists reading the same article phrase the same doubt independently, so the same fiche can appear on two lines. Empty when nothing was contradicted. Whether a contradiction also hands the turn to a human depends on your stale-information setting; it is reported either way.
4572
4594
  */
@@ -4580,7 +4602,24 @@ export type SendMessageResponses = {
4580
4602
  */
4581
4603
  contradiction: string;
4582
4604
  /**
4583
- * The articles the specialist read on this turn. More than one when several were injected: the engine cannot tell which carried the claim.
4605
+ * Where the point belongs, derived from `keys` — a shortcut, never a judgement. Resolved only when every cited key agrees; `null` when no key was cited, and when the cited keys span both stores, where naming one would hide the other. `null` says the shortcut does not apply, never that a point has no origin, and it has no bearing on `sources`. Read `keys` for the full picture.
4606
+ */
4607
+ store: 'kb' | 'user';
4608
+ /**
4609
+ * The keys carrying the contradicted fact. Empty when it came from an article's prose or from an action's result — `store` may still name the origin. Never a key you did not declare.
4610
+ */
4611
+ keys: Array<{
4612
+ /**
4613
+ * `kb`: a field of a knowledge base article's grid. `user`: a field of the `user.data` you send on the request.
4614
+ */
4615
+ store: 'kb' | 'user';
4616
+ /**
4617
+ * The key as you declared it, e.g. `warranty.duration` or `identity.phone`.
4618
+ */
4619
+ key: string;
4620
+ }>;
4621
+ /**
4622
+ * The articles the specialist read on this turn. More than one when several were injected: the engine cannot tell which carried the claim. Empty when every cited key points at the `user` you send — the contradiction did not come from an article, so none is worth checking.
4584
4623
  */
4585
4624
  sources: Array<{
4586
4625
  /**
@@ -5258,9 +5297,31 @@ export type SimulateResponses = {
5258
5297
  reason?: string;
5259
5298
  }>;
5260
5299
  /**
5261
- * Information the AI needed on this turn and did not have, one short phrase per gap — use it to find what your knowledge base or the user context you send is missing. Empty when nothing was missing. Whether a gap also hands the turn to a human depends on your missing-information setting; the gap is reported either way.
5300
+ * Information the AI needed on this turn and did not have, one entry per gap — use it to find what your knowledge base or the `user` you send is missing. Empty when nothing was missing. Whether a gap also hands the turn to a human depends on your missing-information setting; the gap is reported either way.
5262
5301
  */
5263
- missingInfo: Array<string>;
5302
+ missingInfo: Array<{
5303
+ /**
5304
+ * The gap in one short phrase.
5305
+ */
5306
+ summary: string;
5307
+ /**
5308
+ * Where the point belongs, derived from `keys` — a shortcut, never a judgement. Resolved only when every cited key agrees; `null` when no key was cited, and when the cited keys span both stores, where naming one would hide the other. `null` says the shortcut does not apply, never that a point has no origin, and it has no bearing on `sources`. Read `keys` for the full picture.
5309
+ */
5310
+ store: 'kb' | 'user';
5311
+ /**
5312
+ * The keys this gap concerns. Empty when no field covers the point — the ordinary case, and `summary` then carries it alone. Never a key you did not declare.
5313
+ */
5314
+ keys: Array<{
5315
+ /**
5316
+ * `kb`: a field of a knowledge base article's grid. `user`: a field of the `user.data` you send on the request.
5317
+ */
5318
+ store: 'kb' | 'user';
5319
+ /**
5320
+ * The key as you declared it, e.g. `warranty.duration` or `identity.phone`.
5321
+ */
5322
+ key: string;
5323
+ }>;
5324
+ }>;
5264
5325
  /**
5265
5326
  * Sources of yours the user contradicted on this turn — use it to find what your knowledge base holds that is no longer true. The AI keeps answering from its sources; this is a doubt for you to verify, never a verdict. Group your report on `sources[].articleId`: two specialists reading the same article phrase the same doubt independently, so the same fiche can appear on two lines. Empty when nothing was contradicted. Whether a contradiction also hands the turn to a human depends on your stale-information setting; it is reported either way.
5266
5327
  */
@@ -5274,7 +5335,24 @@ export type SimulateResponses = {
5274
5335
  */
5275
5336
  contradiction: string;
5276
5337
  /**
5277
- * The articles the specialist read on this turn. More than one when several were injected: the engine cannot tell which carried the claim.
5338
+ * Where the point belongs, derived from `keys` — a shortcut, never a judgement. Resolved only when every cited key agrees; `null` when no key was cited, and when the cited keys span both stores, where naming one would hide the other. `null` says the shortcut does not apply, never that a point has no origin, and it has no bearing on `sources`. Read `keys` for the full picture.
5339
+ */
5340
+ store: 'kb' | 'user';
5341
+ /**
5342
+ * The keys carrying the contradicted fact. Empty when it came from an article's prose or from an action's result — `store` may still name the origin. Never a key you did not declare.
5343
+ */
5344
+ keys: Array<{
5345
+ /**
5346
+ * `kb`: a field of a knowledge base article's grid. `user`: a field of the `user.data` you send on the request.
5347
+ */
5348
+ store: 'kb' | 'user';
5349
+ /**
5350
+ * The key as you declared it, e.g. `warranty.duration` or `identity.phone`.
5351
+ */
5352
+ key: string;
5353
+ }>;
5354
+ /**
5355
+ * The articles the specialist read on this turn. More than one when several were injected: the engine cannot tell which carried the claim. Empty when every cited key points at the `user` you send — the contradiction did not come from an article, so none is worth checking.
5278
5356
  */
5279
5357
  sources: Array<{
5280
5358
  /**
@@ -7552,6 +7630,37 @@ export type List7Responses = {
7552
7630
  * True when an unpublished draft exists on this article.
7553
7631
  */
7554
7632
  hasDraft: boolean;
7633
+ /**
7634
+ * Structured field grid, when the article has one.
7635
+ */
7636
+ fields?: {
7637
+ /**
7638
+ * Grouped rows of the grid, in display order.
7639
+ */
7640
+ sections: Array<{
7641
+ /**
7642
+ * Section heading, e.g. `Coverage`.
7643
+ */
7644
+ label: string;
7645
+ /**
7646
+ * Keyed facts under this section.
7647
+ */
7648
+ fields: Array<{
7649
+ /**
7650
+ * Stable identifier your software routes on. Unique within the article.
7651
+ */
7652
+ key: string;
7653
+ /**
7654
+ * Human label, in your language.
7655
+ */
7656
+ label: string;
7657
+ /**
7658
+ * `null` means not filled in — the AI will not guess it.
7659
+ */
7660
+ value: string | null;
7661
+ }>;
7662
+ }>;
7663
+ };
7555
7664
  /**
7556
7665
  * ISO timestamp of the last publication.
7557
7666
  */
@@ -7585,11 +7694,42 @@ export type Create6Data = {
7585
7694
  /**
7586
7695
  * Article body (Markdown).
7587
7696
  */
7588
- content: string;
7697
+ content?: string;
7589
7698
  /**
7590
7699
  * Intent IDs this article serves — a routing restriction, not a topic label. Empty means no restriction: the article reaches every agent that runs on every conversation in this article's scope (each specialist and the response agent). Non-empty means it reaches them only when one of those intents is detected, and only that intent's destination agent — its specialist when the intent routes to one, otherwise the response agent.
7591
7700
  */
7592
7701
  intents?: Array<string>;
7702
+ /**
7703
+ * Structured field grid. Additive to `content` — never derived from it.
7704
+ */
7705
+ fields?: {
7706
+ /**
7707
+ * Grouped rows of the grid, in display order.
7708
+ */
7709
+ sections: Array<{
7710
+ /**
7711
+ * Section heading, e.g. `Coverage`.
7712
+ */
7713
+ label: string;
7714
+ /**
7715
+ * Keyed facts under this section.
7716
+ */
7717
+ fields: Array<{
7718
+ /**
7719
+ * Stable identifier your software routes on. Unique within the article.
7720
+ */
7721
+ key: string;
7722
+ /**
7723
+ * Human label, in your language.
7724
+ */
7725
+ label: string;
7726
+ /**
7727
+ * `null` means not filled in — the AI will not guess it.
7728
+ */
7729
+ value: string | null;
7730
+ }>;
7731
+ }>;
7732
+ };
7593
7733
  };
7594
7734
  path?: never;
7595
7735
  query?: {
@@ -7715,6 +7855,37 @@ export type Create6Responses = {
7715
7855
  * Article body (Markdown) at this version.
7716
7856
  */
7717
7857
  content: string;
7858
+ /**
7859
+ * Structured field grid at this version, when the article has one.
7860
+ */
7861
+ fields?: {
7862
+ /**
7863
+ * Grouped rows of the grid, in display order.
7864
+ */
7865
+ sections: Array<{
7866
+ /**
7867
+ * Section heading, e.g. `Coverage`.
7868
+ */
7869
+ label: string;
7870
+ /**
7871
+ * Keyed facts under this section.
7872
+ */
7873
+ fields: Array<{
7874
+ /**
7875
+ * Stable identifier your software routes on. Unique within the article.
7876
+ */
7877
+ key: string;
7878
+ /**
7879
+ * Human label, in your language.
7880
+ */
7881
+ label: string;
7882
+ /**
7883
+ * `null` means not filled in — the AI will not guess it.
7884
+ */
7885
+ value: string | null;
7886
+ }>;
7887
+ }>;
7888
+ };
7718
7889
  /**
7719
7890
  * ISO timestamp of the publication that produced this snapshot.
7720
7891
  */
@@ -7740,6 +7911,37 @@ export type Create6Responses = {
7740
7911
  * Article body (Markdown) at this version.
7741
7912
  */
7742
7913
  content: string;
7914
+ /**
7915
+ * Structured field grid at this version, when the article has one.
7916
+ */
7917
+ fields?: {
7918
+ /**
7919
+ * Grouped rows of the grid, in display order.
7920
+ */
7921
+ sections: Array<{
7922
+ /**
7923
+ * Section heading, e.g. `Coverage`.
7924
+ */
7925
+ label: string;
7926
+ /**
7927
+ * Keyed facts under this section.
7928
+ */
7929
+ fields: Array<{
7930
+ /**
7931
+ * Stable identifier your software routes on. Unique within the article.
7932
+ */
7933
+ key: string;
7934
+ /**
7935
+ * Human label, in your language.
7936
+ */
7937
+ label: string;
7938
+ /**
7939
+ * `null` means not filled in — the AI will not guess it.
7940
+ */
7941
+ value: string | null;
7942
+ }>;
7943
+ }>;
7944
+ };
7743
7945
  /**
7744
7946
  * ISO timestamp of the publication that produced this snapshot.
7745
7947
  */
@@ -7978,6 +8180,37 @@ export type Get7Responses = {
7978
8180
  * Article body (Markdown) at this version.
7979
8181
  */
7980
8182
  content: string;
8183
+ /**
8184
+ * Structured field grid at this version, when the article has one.
8185
+ */
8186
+ fields?: {
8187
+ /**
8188
+ * Grouped rows of the grid, in display order.
8189
+ */
8190
+ sections: Array<{
8191
+ /**
8192
+ * Section heading, e.g. `Coverage`.
8193
+ */
8194
+ label: string;
8195
+ /**
8196
+ * Keyed facts under this section.
8197
+ */
8198
+ fields: Array<{
8199
+ /**
8200
+ * Stable identifier your software routes on. Unique within the article.
8201
+ */
8202
+ key: string;
8203
+ /**
8204
+ * Human label, in your language.
8205
+ */
8206
+ label: string;
8207
+ /**
8208
+ * `null` means not filled in — the AI will not guess it.
8209
+ */
8210
+ value: string | null;
8211
+ }>;
8212
+ }>;
8213
+ };
7981
8214
  /**
7982
8215
  * ISO timestamp of the publication that produced this snapshot.
7983
8216
  */
@@ -8003,6 +8236,37 @@ export type Get7Responses = {
8003
8236
  * Article body (Markdown) at this version.
8004
8237
  */
8005
8238
  content: string;
8239
+ /**
8240
+ * Structured field grid at this version, when the article has one.
8241
+ */
8242
+ fields?: {
8243
+ /**
8244
+ * Grouped rows of the grid, in display order.
8245
+ */
8246
+ sections: Array<{
8247
+ /**
8248
+ * Section heading, e.g. `Coverage`.
8249
+ */
8250
+ label: string;
8251
+ /**
8252
+ * Keyed facts under this section.
8253
+ */
8254
+ fields: Array<{
8255
+ /**
8256
+ * Stable identifier your software routes on. Unique within the article.
8257
+ */
8258
+ key: string;
8259
+ /**
8260
+ * Human label, in your language.
8261
+ */
8262
+ label: string;
8263
+ /**
8264
+ * `null` means not filled in — the AI will not guess it.
8265
+ */
8266
+ value: string | null;
8267
+ }>;
8268
+ }>;
8269
+ };
8006
8270
  /**
8007
8271
  * ISO timestamp of the publication that produced this snapshot.
8008
8272
  */
@@ -8033,12 +8297,43 @@ export type Update5Data = {
8033
8297
  * New article body.
8034
8298
  */
8035
8299
  content?: string;
8300
+ /**
8301
+ * Replace the structured field grid. Additive to `content` — never derived from it.
8302
+ */
8303
+ fields?: {
8304
+ /**
8305
+ * Grouped rows of the grid, in display order.
8306
+ */
8307
+ sections: Array<{
8308
+ /**
8309
+ * Section heading, e.g. `Coverage`.
8310
+ */
8311
+ label: string;
8312
+ /**
8313
+ * Keyed facts under this section.
8314
+ */
8315
+ fields: Array<{
8316
+ /**
8317
+ * Stable identifier your software routes on. Unique within the article.
8318
+ */
8319
+ key: string;
8320
+ /**
8321
+ * Human label, in your language.
8322
+ */
8323
+ label: string;
8324
+ /**
8325
+ * `null` means not filled in — the AI will not guess it.
8326
+ */
8327
+ value: string | null;
8328
+ }>;
8329
+ }>;
8330
+ };
8036
8331
  /**
8037
8332
  * Replace the intents list. Pass `[]` to drop the routing restriction — the article is then loaded into every agent on every conversation in its scope.
8038
8333
  */
8039
8334
  intents?: Array<string>;
8040
8335
  /**
8041
- * When true and `title`/`content` is provided, the changes are written to draft and immediately promoted to published (a version snapshot is still created so rollback remains possible). When false (default), the content stays in draft. Routing changes (`intents`) bypass this flag.
8336
+ * When true and `title`/`content`/`fields` is provided, the changes are written to draft and immediately promoted to published (a version snapshot is still created so rollback remains possible). When false (default), the content stays in draft. Routing changes (`intents`) bypass this flag.
8042
8337
  */
8043
8338
  publish?: boolean;
8044
8339
  };
@@ -8166,6 +8461,37 @@ export type Update5Responses = {
8166
8461
  * Article body (Markdown) at this version.
8167
8462
  */
8168
8463
  content: string;
8464
+ /**
8465
+ * Structured field grid at this version, when the article has one.
8466
+ */
8467
+ fields?: {
8468
+ /**
8469
+ * Grouped rows of the grid, in display order.
8470
+ */
8471
+ sections: Array<{
8472
+ /**
8473
+ * Section heading, e.g. `Coverage`.
8474
+ */
8475
+ label: string;
8476
+ /**
8477
+ * Keyed facts under this section.
8478
+ */
8479
+ fields: Array<{
8480
+ /**
8481
+ * Stable identifier your software routes on. Unique within the article.
8482
+ */
8483
+ key: string;
8484
+ /**
8485
+ * Human label, in your language.
8486
+ */
8487
+ label: string;
8488
+ /**
8489
+ * `null` means not filled in — the AI will not guess it.
8490
+ */
8491
+ value: string | null;
8492
+ }>;
8493
+ }>;
8494
+ };
8169
8495
  /**
8170
8496
  * ISO timestamp of the publication that produced this snapshot.
8171
8497
  */
@@ -8191,6 +8517,37 @@ export type Update5Responses = {
8191
8517
  * Article body (Markdown) at this version.
8192
8518
  */
8193
8519
  content: string;
8520
+ /**
8521
+ * Structured field grid at this version, when the article has one.
8522
+ */
8523
+ fields?: {
8524
+ /**
8525
+ * Grouped rows of the grid, in display order.
8526
+ */
8527
+ sections: Array<{
8528
+ /**
8529
+ * Section heading, e.g. `Coverage`.
8530
+ */
8531
+ label: string;
8532
+ /**
8533
+ * Keyed facts under this section.
8534
+ */
8535
+ fields: Array<{
8536
+ /**
8537
+ * Stable identifier your software routes on. Unique within the article.
8538
+ */
8539
+ key: string;
8540
+ /**
8541
+ * Human label, in your language.
8542
+ */
8543
+ label: string;
8544
+ /**
8545
+ * `null` means not filled in — the AI will not guess it.
8546
+ */
8547
+ value: string | null;
8548
+ }>;
8549
+ }>;
8550
+ };
8194
8551
  /**
8195
8552
  * ISO timestamp of the publication that produced this snapshot.
8196
8553
  */
@@ -8366,6 +8723,37 @@ export type CreateManyResponses = {
8366
8723
  * Article body (Markdown) at this version.
8367
8724
  */
8368
8725
  content: string;
8726
+ /**
8727
+ * Structured field grid at this version, when the article has one.
8728
+ */
8729
+ fields?: {
8730
+ /**
8731
+ * Grouped rows of the grid, in display order.
8732
+ */
8733
+ sections: Array<{
8734
+ /**
8735
+ * Section heading, e.g. `Coverage`.
8736
+ */
8737
+ label: string;
8738
+ /**
8739
+ * Keyed facts under this section.
8740
+ */
8741
+ fields: Array<{
8742
+ /**
8743
+ * Stable identifier your software routes on. Unique within the article.
8744
+ */
8745
+ key: string;
8746
+ /**
8747
+ * Human label, in your language.
8748
+ */
8749
+ label: string;
8750
+ /**
8751
+ * `null` means not filled in — the AI will not guess it.
8752
+ */
8753
+ value: string | null;
8754
+ }>;
8755
+ }>;
8756
+ };
8369
8757
  /**
8370
8758
  * ISO timestamp of the publication that produced this snapshot.
8371
8759
  */
@@ -8391,6 +8779,37 @@ export type CreateManyResponses = {
8391
8779
  * Article body (Markdown) at this version.
8392
8780
  */
8393
8781
  content: string;
8782
+ /**
8783
+ * Structured field grid at this version, when the article has one.
8784
+ */
8785
+ fields?: {
8786
+ /**
8787
+ * Grouped rows of the grid, in display order.
8788
+ */
8789
+ sections: Array<{
8790
+ /**
8791
+ * Section heading, e.g. `Coverage`.
8792
+ */
8793
+ label: string;
8794
+ /**
8795
+ * Keyed facts under this section.
8796
+ */
8797
+ fields: Array<{
8798
+ /**
8799
+ * Stable identifier your software routes on. Unique within the article.
8800
+ */
8801
+ key: string;
8802
+ /**
8803
+ * Human label, in your language.
8804
+ */
8805
+ label: string;
8806
+ /**
8807
+ * `null` means not filled in — the AI will not guess it.
8808
+ */
8809
+ value: string | null;
8810
+ }>;
8811
+ }>;
8812
+ };
8394
8813
  /**
8395
8814
  * ISO timestamp of the publication that produced this snapshot.
8396
8815
  */
@@ -8485,6 +8904,37 @@ export type CreateManyResponses = {
8485
8904
  * Article body (Markdown) at this version.
8486
8905
  */
8487
8906
  content: string;
8907
+ /**
8908
+ * Structured field grid at this version, when the article has one.
8909
+ */
8910
+ fields?: {
8911
+ /**
8912
+ * Grouped rows of the grid, in display order.
8913
+ */
8914
+ sections: Array<{
8915
+ /**
8916
+ * Section heading, e.g. `Coverage`.
8917
+ */
8918
+ label: string;
8919
+ /**
8920
+ * Keyed facts under this section.
8921
+ */
8922
+ fields: Array<{
8923
+ /**
8924
+ * Stable identifier your software routes on. Unique within the article.
8925
+ */
8926
+ key: string;
8927
+ /**
8928
+ * Human label, in your language.
8929
+ */
8930
+ label: string;
8931
+ /**
8932
+ * `null` means not filled in — the AI will not guess it.
8933
+ */
8934
+ value: string | null;
8935
+ }>;
8936
+ }>;
8937
+ };
8488
8938
  /**
8489
8939
  * ISO timestamp of the publication that produced this snapshot.
8490
8940
  */
@@ -8510,6 +8960,37 @@ export type CreateManyResponses = {
8510
8960
  * Article body (Markdown) at this version.
8511
8961
  */
8512
8962
  content: string;
8963
+ /**
8964
+ * Structured field grid at this version, when the article has one.
8965
+ */
8966
+ fields?: {
8967
+ /**
8968
+ * Grouped rows of the grid, in display order.
8969
+ */
8970
+ sections: Array<{
8971
+ /**
8972
+ * Section heading, e.g. `Coverage`.
8973
+ */
8974
+ label: string;
8975
+ /**
8976
+ * Keyed facts under this section.
8977
+ */
8978
+ fields: Array<{
8979
+ /**
8980
+ * Stable identifier your software routes on. Unique within the article.
8981
+ */
8982
+ key: string;
8983
+ /**
8984
+ * Human label, in your language.
8985
+ */
8986
+ label: string;
8987
+ /**
8988
+ * `null` means not filled in — the AI will not guess it.
8989
+ */
8990
+ value: string | null;
8991
+ }>;
8992
+ }>;
8993
+ };
8513
8994
  /**
8514
8995
  * ISO timestamp of the publication that produced this snapshot.
8515
8996
  */
@@ -8692,6 +9173,37 @@ export type Publish2Responses = {
8692
9173
  * Article body (Markdown) at this version.
8693
9174
  */
8694
9175
  content: string;
9176
+ /**
9177
+ * Structured field grid at this version, when the article has one.
9178
+ */
9179
+ fields?: {
9180
+ /**
9181
+ * Grouped rows of the grid, in display order.
9182
+ */
9183
+ sections: Array<{
9184
+ /**
9185
+ * Section heading, e.g. `Coverage`.
9186
+ */
9187
+ label: string;
9188
+ /**
9189
+ * Keyed facts under this section.
9190
+ */
9191
+ fields: Array<{
9192
+ /**
9193
+ * Stable identifier your software routes on. Unique within the article.
9194
+ */
9195
+ key: string;
9196
+ /**
9197
+ * Human label, in your language.
9198
+ */
9199
+ label: string;
9200
+ /**
9201
+ * `null` means not filled in — the AI will not guess it.
9202
+ */
9203
+ value: string | null;
9204
+ }>;
9205
+ }>;
9206
+ };
8695
9207
  /**
8696
9208
  * ISO timestamp of the publication that produced this snapshot.
8697
9209
  */
@@ -8717,6 +9229,37 @@ export type Publish2Responses = {
8717
9229
  * Article body (Markdown) at this version.
8718
9230
  */
8719
9231
  content: string;
9232
+ /**
9233
+ * Structured field grid at this version, when the article has one.
9234
+ */
9235
+ fields?: {
9236
+ /**
9237
+ * Grouped rows of the grid, in display order.
9238
+ */
9239
+ sections: Array<{
9240
+ /**
9241
+ * Section heading, e.g. `Coverage`.
9242
+ */
9243
+ label: string;
9244
+ /**
9245
+ * Keyed facts under this section.
9246
+ */
9247
+ fields: Array<{
9248
+ /**
9249
+ * Stable identifier your software routes on. Unique within the article.
9250
+ */
9251
+ key: string;
9252
+ /**
9253
+ * Human label, in your language.
9254
+ */
9255
+ label: string;
9256
+ /**
9257
+ * `null` means not filled in — the AI will not guess it.
9258
+ */
9259
+ value: string | null;
9260
+ }>;
9261
+ }>;
9262
+ };
8720
9263
  /**
8721
9264
  * ISO timestamp of the publication that produced this snapshot.
8722
9265
  */
@@ -8868,6 +9411,37 @@ export type Rollback2Responses = {
8868
9411
  * Article body (Markdown) at this version.
8869
9412
  */
8870
9413
  content: string;
9414
+ /**
9415
+ * Structured field grid at this version, when the article has one.
9416
+ */
9417
+ fields?: {
9418
+ /**
9419
+ * Grouped rows of the grid, in display order.
9420
+ */
9421
+ sections: Array<{
9422
+ /**
9423
+ * Section heading, e.g. `Coverage`.
9424
+ */
9425
+ label: string;
9426
+ /**
9427
+ * Keyed facts under this section.
9428
+ */
9429
+ fields: Array<{
9430
+ /**
9431
+ * Stable identifier your software routes on. Unique within the article.
9432
+ */
9433
+ key: string;
9434
+ /**
9435
+ * Human label, in your language.
9436
+ */
9437
+ label: string;
9438
+ /**
9439
+ * `null` means not filled in — the AI will not guess it.
9440
+ */
9441
+ value: string | null;
9442
+ }>;
9443
+ }>;
9444
+ };
8871
9445
  /**
8872
9446
  * ISO timestamp of the publication that produced this snapshot.
8873
9447
  */
@@ -8893,6 +9467,37 @@ export type Rollback2Responses = {
8893
9467
  * Article body (Markdown) at this version.
8894
9468
  */
8895
9469
  content: string;
9470
+ /**
9471
+ * Structured field grid at this version, when the article has one.
9472
+ */
9473
+ fields?: {
9474
+ /**
9475
+ * Grouped rows of the grid, in display order.
9476
+ */
9477
+ sections: Array<{
9478
+ /**
9479
+ * Section heading, e.g. `Coverage`.
9480
+ */
9481
+ label: string;
9482
+ /**
9483
+ * Keyed facts under this section.
9484
+ */
9485
+ fields: Array<{
9486
+ /**
9487
+ * Stable identifier your software routes on. Unique within the article.
9488
+ */
9489
+ key: string;
9490
+ /**
9491
+ * Human label, in your language.
9492
+ */
9493
+ label: string;
9494
+ /**
9495
+ * `null` means not filled in — the AI will not guess it.
9496
+ */
9497
+ value: string | null;
9498
+ }>;
9499
+ }>;
9500
+ };
8896
9501
  /**
8897
9502
  * ISO timestamp of the publication that produced this snapshot.
8898
9503
  */