@yadsh/dsh-qa-surface 0.15.4 → 0.15.6

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 (45) hide show
  1. package/lib/access/model-policy.js +124 -0
  2. package/lib/access/model-policy.js.map +1 -0
  3. package/lib/access/model.js +5 -0
  4. package/lib/access/model.js.map +1 -1
  5. package/lib/access/service.js +77 -3
  6. package/lib/access/service.js.map +1 -1
  7. package/lib/admin/service.js +6 -0
  8. package/lib/admin/service.js.map +1 -1
  9. package/lib/client/admin/ModelPolicyEditor.js +52 -0
  10. package/lib/client/admin/ModelPolicyEditor.js.map +1 -0
  11. package/lib/client/admin/QaAdmin.js +4 -2
  12. package/lib/client/admin/QaAdmin.js.map +1 -1
  13. package/lib/client/admin/pages/Users.js +18 -2
  14. package/lib/client/admin/pages/Users.js.map +1 -1
  15. package/lib/client/admin/shared.js +3 -0
  16. package/lib/client/admin/shared.js.map +1 -1
  17. package/lib/client/components/QaChangelog.js +33 -1
  18. package/lib/client/components/QaChangelog.js.map +1 -1
  19. package/lib/client/index.js +1 -0
  20. package/lib/client/index.js.map +1 -1
  21. package/lib/client/settings/sections/session.js +2 -2
  22. package/lib/client/settings/sections/session.js.map +1 -1
  23. package/lib/client/types.js.map +1 -1
  24. package/lib/client.js +367 -93
  25. package/lib/client.js.map +1 -1
  26. package/lib/index.js +32 -17
  27. package/lib/index.js.map +1 -1
  28. package/lib/integration/host-runner.js +2 -10
  29. package/lib/integration/host-runner.js.map +1 -1
  30. package/lib/secure-session.js +16 -7
  31. package/lib/secure-session.js.map +1 -1
  32. package/lib/session-model.js +40 -0
  33. package/lib/session-model.js.map +1 -0
  34. package/lib/typert.host.js +211 -80
  35. package/lib/typert.remote-client.d.ts +3 -1
  36. package/lib/typert.remote-client.js +184 -75
  37. package/lib/types/access/model-policy.d.ts +95 -0
  38. package/lib/types/access/service.d.ts +41 -4
  39. package/lib/types/client/admin/ModelPolicyEditor.d.ts +23 -0
  40. package/lib/types/client/types.d.ts +3 -1
  41. package/lib/types/index.d.ts +20 -4
  42. package/lib/types/secure-session.d.ts +14 -1
  43. package/lib/types/session-model.d.ts +24 -0
  44. package/lib/types/types.d.ts +35 -0
  45. package/package.json +3 -3
package/lib/client.js CHANGED
@@ -5622,6 +5622,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5622
5622
  "knowledgeSources": array(string()).readonly().optional(),
5623
5623
  "promptAdditions": array(string()).readonly().optional()
5624
5624
  }).readonly(),
5625
+ "model": object({
5626
+ "provider": string().readonly(),
5627
+ "model": string().readonly(),
5628
+ "reasoningEffort": string().readonly().optional()
5629
+ }).readonly().optional(),
5625
5630
  "ui": object({
5626
5631
  "icon": string().readonly().optional(),
5627
5632
  "accent": string().readonly().optional()
@@ -5736,7 +5741,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5736
5741
  "disabled": boolean().readonly(),
5737
5742
  "access": object({
5738
5743
  "allowedSubroles": array(string()).readonly(),
5739
- "defaultSubrole": string().readonly()
5744
+ "defaultSubrole": string().readonly(),
5745
+ "model": object({
5746
+ "provider": string().readonly(),
5747
+ "model": string().readonly(),
5748
+ "reasoningEffort": string().readonly().optional()
5749
+ }).readonly().optional()
5740
5750
  }).readonly()
5741
5751
  })).readonly(),
5742
5752
  "audit": array(object({
@@ -5774,6 +5784,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5774
5784
  "knowledgeSources": array(string()).readonly().optional(),
5775
5785
  "promptAdditions": array(string()).readonly().optional()
5776
5786
  }).readonly(),
5787
+ "model": object({
5788
+ "provider": string().readonly(),
5789
+ "model": string().readonly(),
5790
+ "reasoningEffort": string().readonly().optional()
5791
+ }).readonly().optional(),
5777
5792
  "ui": object({
5778
5793
  "icon": string().readonly().optional(),
5779
5794
  "accent": string().readonly().optional()
@@ -5796,6 +5811,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5796
5811
  "knowledgeSources": array(string()).readonly().optional(),
5797
5812
  "promptAdditions": array(string()).readonly().optional()
5798
5813
  }).readonly(),
5814
+ "model": object({
5815
+ "provider": string().readonly(),
5816
+ "model": string().readonly(),
5817
+ "reasoningEffort": string().readonly().optional()
5818
+ }).readonly().optional(),
5799
5819
  "ui": object({
5800
5820
  "icon": string().readonly().optional(),
5801
5821
  "accent": string().readonly().optional()
@@ -5821,6 +5841,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5821
5841
  "knowledgeSources": array(string()).readonly().optional(),
5822
5842
  "promptAdditions": array(string()).readonly().optional()
5823
5843
  }).readonly(),
5844
+ "model": object({
5845
+ "provider": string().readonly(),
5846
+ "model": string().readonly(),
5847
+ "reasoningEffort": string().readonly().optional()
5848
+ }).readonly().optional(),
5824
5849
  "ui": object({
5825
5850
  "icon": string().readonly().optional(),
5826
5851
  "accent": string().readonly().optional()
@@ -5836,6 +5861,15 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5836
5861
  const _yadsh_dsh_qa_surface_qaSurface_accessDeleteSubrole_parameter_2$schema = () => _yadsh_dsh_qa_surface_qaSurface_accessDeleteSubrole_parameter_2$schema$value ??= union([literal(null), string()]);
5837
5862
  let _yadsh_dsh_qa_surface_qaSurface_accessDeleteSubrole_result$schema$value;
5838
5863
  const _yadsh_dsh_qa_surface_qaSurface_accessDeleteSubrole_result$schema = () => _yadsh_dsh_qa_surface_qaSurface_accessDeleteSubrole_result$schema$value ??= object({ "deleted": boolean().readonly() });
5864
+ let _yadsh_dsh_qa_surface_qaSurface_accessModelCatalog_parameter_0$schema$value;
5865
+ const _yadsh_dsh_qa_surface_qaSurface_accessModelCatalog_parameter_0$schema = () => _yadsh_dsh_qa_surface_qaSurface_accessModelCatalog_parameter_0$schema$value ??= string();
5866
+ let _yadsh_dsh_qa_surface_qaSurface_accessModelCatalog_result$schema$value;
5867
+ const _yadsh_dsh_qa_surface_qaSurface_accessModelCatalog_result$schema = () => _yadsh_dsh_qa_surface_qaSurface_accessModelCatalog_result$schema$value ??= array(object({
5868
+ "provider": string().readonly(),
5869
+ "model": string().readonly(),
5870
+ "label": string().readonly(),
5871
+ "reasoningEfforts": array(string()).readonly()
5872
+ }));
5839
5873
  let _yadsh_dsh_qa_surface_qaSurface_accessSession_parameter_0$schema$value;
5840
5874
  const _yadsh_dsh_qa_surface_qaSurface_accessSession_parameter_0$schema = () => _yadsh_dsh_qa_surface_qaSurface_accessSession_parameter_0$schema$value ??= string();
5841
5875
  let _yadsh_dsh_qa_surface_qaSurface_accessSession_parameter_1$schema$value;
@@ -5858,6 +5892,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5858
5892
  "knowledgeSources": array(string()).readonly().optional(),
5859
5893
  "promptAdditions": array(string()).readonly().optional()
5860
5894
  }).readonly(),
5895
+ "model": object({
5896
+ "provider": string().readonly(),
5897
+ "model": string().readonly(),
5898
+ "reasoningEffort": string().readonly().optional()
5899
+ }).readonly().optional(),
5861
5900
  "ui": object({
5862
5901
  "icon": string().readonly().optional(),
5863
5902
  "accent": string().readonly().optional()
@@ -5895,12 +5934,22 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5895
5934
  let _yadsh_dsh_qa_surface_qaSurface_accessUpdateAssignment_parameter_2$schema$value;
5896
5935
  const _yadsh_dsh_qa_surface_qaSurface_accessUpdateAssignment_parameter_2$schema = () => _yadsh_dsh_qa_surface_qaSurface_accessUpdateAssignment_parameter_2$schema$value ??= object({
5897
5936
  "allowedSubroles": array(string()).readonly(),
5898
- "defaultSubrole": string().readonly()
5937
+ "defaultSubrole": string().readonly(),
5938
+ "model": object({
5939
+ "provider": string().readonly(),
5940
+ "model": string().readonly(),
5941
+ "reasoningEffort": string().readonly().optional()
5942
+ }).readonly().optional()
5899
5943
  });
5900
5944
  let _yadsh_dsh_qa_surface_qaSurface_accessUpdateAssignment_result$schema$value;
5901
5945
  const _yadsh_dsh_qa_surface_qaSurface_accessUpdateAssignment_result$schema = () => _yadsh_dsh_qa_surface_qaSurface_accessUpdateAssignment_result$schema$value ??= object({
5902
5946
  "allowedSubroles": array(string()).readonly(),
5903
- "defaultSubrole": string().readonly()
5947
+ "defaultSubrole": string().readonly(),
5948
+ "model": object({
5949
+ "provider": string().readonly(),
5950
+ "model": string().readonly(),
5951
+ "reasoningEffort": string().readonly().optional()
5952
+ }).readonly().optional()
5904
5953
  });
5905
5954
  let _yadsh_dsh_qa_surface_qaSurface_accessUpdateCommon_parameter_0$schema$value;
5906
5955
  const _yadsh_dsh_qa_surface_qaSurface_accessUpdateCommon_parameter_0$schema = () => _yadsh_dsh_qa_surface_qaSurface_accessUpdateCommon_parameter_0$schema$value ??= string();
@@ -5967,6 +6016,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5967
6016
  "knowledgeSources": array(string()).readonly().optional(),
5968
6017
  "promptAdditions": array(string()).readonly().optional()
5969
6018
  }).readonly(),
6019
+ "model": object({
6020
+ "provider": string().readonly(),
6021
+ "model": string().readonly(),
6022
+ "reasoningEffort": string().readonly().optional()
6023
+ }).readonly().optional(),
5970
6024
  "ui": object({
5971
6025
  "icon": string().readonly().optional(),
5972
6026
  "accent": string().readonly().optional()
@@ -5989,6 +6043,11 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
5989
6043
  "knowledgeSources": array(string()).readonly().optional(),
5990
6044
  "promptAdditions": array(string()).readonly().optional()
5991
6045
  }).readonly(),
6046
+ "model": object({
6047
+ "provider": string().readonly(),
6048
+ "model": string().readonly(),
6049
+ "reasoningEffort": string().readonly().optional()
6050
+ }).readonly().optional(),
5992
6051
  "ui": object({
5993
6052
  "icon": string().readonly().optional(),
5994
6053
  "accent": string().readonly().optional()
@@ -7158,7 +7217,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7158
7217
  "lastLoginAt": union([literal(null), string()]).readonly(),
7159
7218
  "access": object({
7160
7219
  "allowedSubroles": array(string()).readonly(),
7161
- "defaultSubrole": string().readonly()
7220
+ "defaultSubrole": string().readonly(),
7221
+ "model": object({
7222
+ "provider": string().readonly(),
7223
+ "model": string().readonly(),
7224
+ "reasoningEffort": string().readonly().optional()
7225
+ }).readonly().optional()
7162
7226
  }).readonly()
7163
7227
  }).readonly(),
7164
7228
  "effective": array(object({
@@ -7659,7 +7723,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7659
7723
  ]).readonly().optional(),
7660
7724
  "access": union([literal(null), object({
7661
7725
  "allowedSubroles": array(string()).readonly(),
7662
- "defaultSubrole": string().readonly()
7726
+ "defaultSubrole": string().readonly(),
7727
+ "model": object({
7728
+ "provider": string().readonly(),
7729
+ "model": string().readonly(),
7730
+ "reasoningEffort": string().readonly().optional()
7731
+ }).readonly().optional()
7663
7732
  })]).readonly().optional()
7664
7733
  });
7665
7734
  let _yadsh_dsh_qa_surface_qaSurface_adminUpdateUser_result$schema$value;
@@ -7681,7 +7750,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7681
7750
  "lastLoginAt": union([literal(null), string()]).readonly(),
7682
7751
  "access": object({
7683
7752
  "allowedSubroles": array(string()).readonly(),
7684
- "defaultSubrole": string().readonly()
7753
+ "defaultSubrole": string().readonly(),
7754
+ "model": object({
7755
+ "provider": string().readonly(),
7756
+ "model": string().readonly(),
7757
+ "reasoningEffort": string().readonly().optional()
7758
+ }).readonly().optional()
7685
7759
  }).readonly()
7686
7760
  }).readonly(),
7687
7761
  "effective": array(object({
@@ -7722,7 +7796,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7722
7796
  "lastLoginAt": union([literal(null), string()]).readonly(),
7723
7797
  "access": object({
7724
7798
  "allowedSubroles": array(string()).readonly(),
7725
- "defaultSubrole": string().readonly()
7799
+ "defaultSubrole": string().readonly(),
7800
+ "model": object({
7801
+ "provider": string().readonly(),
7802
+ "model": string().readonly(),
7803
+ "reasoningEffort": string().readonly().optional()
7804
+ }).readonly().optional()
7726
7805
  }).readonly()
7727
7806
  }).readonly(),
7728
7807
  "effective": array(object({
@@ -7781,7 +7860,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
7781
7860
  "lastLoginAt": union([literal(null), string()]).readonly(),
7782
7861
  "access": object({
7783
7862
  "allowedSubroles": array(string()).readonly(),
7784
- "defaultSubrole": string().readonly()
7863
+ "defaultSubrole": string().readonly(),
7864
+ "model": object({
7865
+ "provider": string().readonly(),
7866
+ "model": string().readonly(),
7867
+ "reasoningEffort": string().readonly().optional()
7868
+ }).readonly().optional()
7785
7869
  }).readonly()
7786
7870
  })).readonly(),
7787
7871
  "nextCursor": union([literal(null), string()]).readonly(),
@@ -8721,7 +8805,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8721
8805
  },
8722
8806
  sourceLocation: {
8723
8807
  "file": "packages/dsh-qa-surface/src/index.ts",
8724
- "line": 1034,
8808
+ "line": 1051,
8725
8809
  "column": 9
8726
8810
  }
8727
8811
  },
@@ -8757,8 +8841,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8757
8841
  },
8758
8842
  sourceLocation: {
8759
8843
  "file": "packages/dsh-qa-surface/src/index.ts",
8760
- "line": 1045,
8761
- "column": 3
8844
+ "line": 1062,
8845
+ "column": 9
8762
8846
  }
8763
8847
  },
8764
8848
  {
@@ -8784,7 +8868,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8784
8868
  },
8785
8869
  sourceLocation: {
8786
8870
  "file": "packages/dsh-qa-surface/src/index.ts",
8787
- "line": 1019,
8871
+ "line": 1036,
8788
8872
  "column": 3
8789
8873
  }
8790
8874
  },
@@ -8833,10 +8917,37 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8833
8917
  },
8834
8918
  sourceLocation: {
8835
8919
  "file": "packages/dsh-qa-surface/src/index.ts",
8836
- "line": 1059,
8920
+ "line": 1093,
8837
8921
  "column": 3
8838
8922
  }
8839
8923
  },
8924
+ {
8925
+ id: "@yadsh/dsh-qa-surface#qaSurface/accessModelCatalog",
8926
+ service: "qaSurface",
8927
+ namespace: "qaSurface",
8928
+ method: "accessModelCatalog",
8929
+ invocation: { kind: "direct" },
8930
+ parameters: [{
8931
+ name: "token",
8932
+ wire: "token",
8933
+ source: "json",
8934
+ codec: {
8935
+ mode: "strict",
8936
+ typeSymbol: "@yadsh/dsh-qa-surface#qaSurface/accessModelCatalog:token",
8937
+ create: _yadsh_dsh_qa_surface_qaSurface_accessModelCatalog_parameter_0$schema
8938
+ }
8939
+ }],
8940
+ result: {
8941
+ mode: "strict",
8942
+ typeSymbol: "@yadsh/dsh-qa-surface#qaSurface/accessModelCatalog:result",
8943
+ create: _yadsh_dsh_qa_surface_qaSurface_accessModelCatalog_result$schema
8944
+ },
8945
+ sourceLocation: {
8946
+ "file": "packages/dsh-qa-surface/src/index.ts",
8947
+ "line": 1084,
8948
+ "column": 9
8949
+ }
8950
+ },
8840
8951
  {
8841
8952
  id: "@yadsh/dsh-qa-surface#qaSurface/accessSession",
8842
8953
  service: "qaSurface",
@@ -8869,7 +8980,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8869
8980
  },
8870
8981
  sourceLocation: {
8871
8982
  "file": "packages/dsh-qa-surface/src/index.ts",
8872
- "line": 1025,
8983
+ "line": 1042,
8873
8984
  "column": 3
8874
8985
  }
8875
8986
  },
@@ -8905,7 +9016,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8905
9016
  },
8906
9017
  sourceLocation: {
8907
9018
  "file": "packages/dsh-qa-surface/src/index.ts",
8908
- "line": 1104,
9019
+ "line": 1138,
8909
9020
  "column": 3
8910
9021
  }
8911
9022
  },
@@ -8954,8 +9065,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8954
9065
  },
8955
9066
  sourceLocation: {
8956
9067
  "file": "packages/dsh-qa-surface/src/index.ts",
8957
- "line": 1081,
8958
- "column": 3
9068
+ "line": 1115,
9069
+ "column": 9
8959
9070
  }
8960
9071
  },
8961
9072
  {
@@ -8990,7 +9101,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
8990
9101
  },
8991
9102
  sourceLocation: {
8992
9103
  "file": "packages/dsh-qa-surface/src/index.ts",
8993
- "line": 1071,
9104
+ "line": 1105,
8994
9105
  "column": 3
8995
9106
  }
8996
9107
  },
@@ -9026,7 +9137,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9026
9137
  },
9027
9138
  sourceLocation: {
9028
9139
  "file": "packages/dsh-qa-surface/src/index.ts",
9029
- "line": 1093,
9140
+ "line": 1127,
9030
9141
  "column": 3
9031
9142
  }
9032
9143
  },
@@ -9075,8 +9186,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9075
9186
  },
9076
9187
  sourceLocation: {
9077
9188
  "file": "packages/dsh-qa-surface/src/index.ts",
9078
- "line": 1052,
9079
- "column": 3
9189
+ "line": 1072,
9190
+ "column": 9
9080
9191
  }
9081
9192
  },
9082
9193
  {
@@ -9124,7 +9235,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9124
9235
  },
9125
9236
  sourceLocation: {
9126
9237
  "file": "packages/dsh-qa-surface/src/index.ts",
9127
- "line": 740,
9238
+ "line": 761,
9128
9239
  "column": 3
9129
9240
  }
9130
9241
  },
@@ -9160,7 +9271,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9160
9271
  },
9161
9272
  sourceLocation: {
9162
9273
  "file": "packages/dsh-qa-surface/src/index.ts",
9163
- "line": 774,
9274
+ "line": 795,
9164
9275
  "column": 3
9165
9276
  }
9166
9277
  },
@@ -9196,7 +9307,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9196
9307
  },
9197
9308
  sourceLocation: {
9198
9309
  "file": "packages/dsh-qa-surface/src/index.ts",
9199
- "line": 861,
9310
+ "line": 882,
9200
9311
  "column": 3
9201
9312
  }
9202
9313
  },
@@ -9223,7 +9334,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9223
9334
  },
9224
9335
  sourceLocation: {
9225
9336
  "file": "packages/dsh-qa-surface/src/index.ts",
9226
- "line": 795,
9337
+ "line": 816,
9227
9338
  "column": 3
9228
9339
  }
9229
9340
  },
@@ -9250,7 +9361,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9250
9361
  },
9251
9362
  sourceLocation: {
9252
9363
  "file": "packages/dsh-qa-surface/src/index.ts",
9253
- "line": 848,
9364
+ "line": 869,
9254
9365
  "column": 3
9255
9366
  }
9256
9367
  },
@@ -9286,7 +9397,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9286
9397
  },
9287
9398
  sourceLocation: {
9288
9399
  "file": "packages/dsh-qa-surface/src/index.ts",
9289
- "line": 734,
9400
+ "line": 755,
9290
9401
  "column": 3
9291
9402
  }
9292
9403
  },
@@ -9313,7 +9424,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9313
9424
  },
9314
9425
  sourceLocation: {
9315
9426
  "file": "packages/dsh-qa-surface/src/index.ts",
9316
- "line": 785,
9427
+ "line": 806,
9317
9428
  "column": 3
9318
9429
  }
9319
9430
  },
@@ -9349,7 +9460,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9349
9460
  },
9350
9461
  sourceLocation: {
9351
9462
  "file": "packages/dsh-qa-surface/src/index.ts",
9352
- "line": 729,
9463
+ "line": 750,
9353
9464
  "column": 3
9354
9465
  }
9355
9466
  },
@@ -9376,7 +9487,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9376
9487
  },
9377
9488
  sourceLocation: {
9378
9489
  "file": "packages/dsh-qa-surface/src/index.ts",
9379
- "line": 758,
9490
+ "line": 779,
9380
9491
  "column": 3
9381
9492
  }
9382
9493
  },
@@ -9412,7 +9523,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9412
9523
  },
9413
9524
  sourceLocation: {
9414
9525
  "file": "packages/dsh-qa-surface/src/index.ts",
9415
- "line": 874,
9526
+ "line": 895,
9416
9527
  "column": 3
9417
9528
  }
9418
9529
  },
@@ -9448,7 +9559,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9448
9559
  },
9449
9560
  sourceLocation: {
9450
9561
  "file": "packages/dsh-qa-surface/src/index.ts",
9451
- "line": 835,
9562
+ "line": 856,
9452
9563
  "column": 3
9453
9564
  }
9454
9565
  },
@@ -9484,7 +9595,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9484
9595
  },
9485
9596
  sourceLocation: {
9486
9597
  "file": "packages/dsh-qa-surface/src/index.ts",
9487
- "line": 808,
9598
+ "line": 829,
9488
9599
  "column": 3
9489
9600
  }
9490
9601
  },
@@ -9520,7 +9631,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9520
9631
  },
9521
9632
  sourceLocation: {
9522
9633
  "file": "packages/dsh-qa-surface/src/index.ts",
9523
- "line": 821,
9634
+ "line": 842,
9524
9635
  "column": 3
9525
9636
  }
9526
9637
  },
@@ -9547,7 +9658,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9547
9658
  },
9548
9659
  sourceLocation: {
9549
9660
  "file": "packages/dsh-qa-surface/src/index.ts",
9550
- "line": 764,
9661
+ "line": 785,
9551
9662
  "column": 3
9552
9663
  }
9553
9664
  },
@@ -9606,7 +9717,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9606
9717
  },
9607
9718
  sourceLocation: {
9608
9719
  "file": "packages/dsh-qa-surface/src/index.ts",
9609
- "line": 1476,
9720
+ "line": 1510,
9610
9721
  "column": 3
9611
9722
  }
9612
9723
  },
@@ -9642,7 +9753,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9642
9753
  },
9643
9754
  sourceLocation: {
9644
9755
  "file": "packages/dsh-qa-surface/src/index.ts",
9645
- "line": 1356,
9756
+ "line": 1390,
9646
9757
  "column": 3
9647
9758
  }
9648
9759
  },
@@ -9702,7 +9813,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9702
9813
  },
9703
9814
  sourceLocation: {
9704
9815
  "file": "packages/dsh-qa-surface/src/index.ts",
9705
- "line": 1336,
9816
+ "line": 1370,
9706
9817
  "column": 3
9707
9818
  }
9708
9819
  },
@@ -9738,7 +9849,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9738
9849
  },
9739
9850
  sourceLocation: {
9740
9851
  "file": "packages/dsh-qa-surface/src/index.ts",
9741
- "line": 1371,
9852
+ "line": 1405,
9742
9853
  "column": 3
9743
9854
  }
9744
9855
  },
@@ -9797,7 +9908,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9797
9908
  },
9798
9909
  sourceLocation: {
9799
9910
  "file": "packages/dsh-qa-surface/src/index.ts",
9800
- "line": 1381,
9911
+ "line": 1415,
9801
9912
  "column": 3
9802
9913
  }
9803
9914
  },
@@ -9833,7 +9944,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9833
9944
  },
9834
9945
  sourceLocation: {
9835
9946
  "file": "packages/dsh-qa-surface/src/index.ts",
9836
- "line": 1418,
9947
+ "line": 1452,
9837
9948
  "column": 3
9838
9949
  }
9839
9950
  },
@@ -9892,7 +10003,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9892
10003
  },
9893
10004
  sourceLocation: {
9894
10005
  "file": "packages/dsh-qa-surface/src/index.ts",
9895
- "line": 1230,
10006
+ "line": 1264,
9896
10007
  "column": 3
9897
10008
  }
9898
10009
  },
@@ -9941,7 +10052,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
9941
10052
  },
9942
10053
  sourceLocation: {
9943
10054
  "file": "packages/dsh-qa-surface/src/index.ts",
9944
- "line": 1243,
10055
+ "line": 1277,
9945
10056
  "column": 3
9946
10057
  }
9947
10058
  },
@@ -10010,7 +10121,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10010
10121
  },
10011
10122
  sourceLocation: {
10012
10123
  "file": "packages/dsh-qa-surface/src/index.ts",
10013
- "line": 1216,
10124
+ "line": 1250,
10014
10125
  "column": 3
10015
10126
  }
10016
10127
  },
@@ -10037,7 +10148,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10037
10148
  },
10038
10149
  sourceLocation: {
10039
10150
  "file": "packages/dsh-qa-surface/src/index.ts",
10040
- "line": 1210,
10151
+ "line": 1244,
10041
10152
  "column": 3
10042
10153
  }
10043
10154
  },
@@ -10086,7 +10197,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10086
10197
  },
10087
10198
  sourceLocation: {
10088
10199
  "file": "packages/dsh-qa-surface/src/index.ts",
10089
- "line": 1261,
10200
+ "line": 1295,
10090
10201
  "column": 3
10091
10202
  }
10092
10203
  },
@@ -10114,7 +10225,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10114
10225
  },
10115
10226
  sourceLocation: {
10116
10227
  "file": "packages/dsh-qa-surface/src/index.ts",
10117
- "line": 1469,
10228
+ "line": 1503,
10118
10229
  "column": 3
10119
10230
  }
10120
10231
  },
@@ -10142,7 +10253,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10142
10253
  },
10143
10254
  sourceLocation: {
10144
10255
  "file": "packages/dsh-qa-surface/src/index.ts",
10145
- "line": 1280,
10256
+ "line": 1314,
10146
10257
  "column": 3
10147
10258
  }
10148
10259
  },
@@ -10169,7 +10280,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10169
10280
  },
10170
10281
  sourceLocation: {
10171
10282
  "file": "packages/dsh-qa-surface/src/index.ts",
10172
- "line": 1316,
10283
+ "line": 1350,
10173
10284
  "column": 3
10174
10285
  }
10175
10286
  },
@@ -10218,7 +10329,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10218
10329
  },
10219
10330
  sourceLocation: {
10220
10331
  "file": "packages/dsh-qa-surface/src/index.ts",
10221
- "line": 1446,
10332
+ "line": 1480,
10222
10333
  "column": 3
10223
10334
  }
10224
10335
  },
@@ -10277,7 +10388,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10277
10388
  },
10278
10389
  sourceLocation: {
10279
10390
  "file": "packages/dsh-qa-surface/src/index.ts",
10280
- "line": 1402,
10391
+ "line": 1436,
10281
10392
  "column": 3
10282
10393
  }
10283
10394
  },
@@ -10326,7 +10437,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10326
10437
  },
10327
10438
  sourceLocation: {
10328
10439
  "file": "packages/dsh-qa-surface/src/index.ts",
10329
- "line": 1325,
10440
+ "line": 1359,
10330
10441
  "column": 3
10331
10442
  }
10332
10443
  },
@@ -10376,7 +10487,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10376
10487
  },
10377
10488
  sourceLocation: {
10378
10489
  "file": "packages/dsh-qa-surface/src/index.ts",
10379
- "line": 1428,
10490
+ "line": 1462,
10380
10491
  "column": 3
10381
10492
  }
10382
10493
  },
@@ -10412,7 +10523,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10412
10523
  },
10413
10524
  sourceLocation: {
10414
10525
  "file": "packages/dsh-qa-surface/src/index.ts",
10415
- "line": 1461,
10526
+ "line": 1495,
10416
10527
  "column": 3
10417
10528
  }
10418
10529
  },
@@ -10461,7 +10572,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10461
10572
  },
10462
10573
  sourceLocation: {
10463
10574
  "file": "packages/dsh-qa-surface/src/index.ts",
10464
- "line": 1134,
10575
+ "line": 1168,
10465
10576
  "column": 3
10466
10577
  }
10467
10578
  },
@@ -10520,7 +10631,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10520
10631
  },
10521
10632
  sourceLocation: {
10522
10633
  "file": "packages/dsh-qa-surface/src/index.ts",
10523
- "line": 1162,
10634
+ "line": 1196,
10524
10635
  "column": 3
10525
10636
  }
10526
10637
  },
@@ -10556,7 +10667,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10556
10667
  },
10557
10668
  sourceLocation: {
10558
10669
  "file": "packages/dsh-qa-surface/src/index.ts",
10559
- "line": 1125,
10670
+ "line": 1159,
10560
10671
  "column": 3
10561
10672
  }
10562
10673
  },
@@ -10615,7 +10726,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10615
10726
  },
10616
10727
  sourceLocation: {
10617
10728
  "file": "packages/dsh-qa-surface/src/index.ts",
10618
- "line": 1149,
10729
+ "line": 1183,
10619
10730
  "column": 3
10620
10731
  }
10621
10732
  },
@@ -10651,7 +10762,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10651
10762
  },
10652
10763
  sourceLocation: {
10653
10764
  "file": "packages/dsh-qa-surface/src/index.ts",
10654
- "line": 1188,
10765
+ "line": 1222,
10655
10766
  "column": 9
10656
10767
  }
10657
10768
  },
@@ -10710,7 +10821,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10710
10821
  },
10711
10822
  sourceLocation: {
10712
10823
  "file": "packages/dsh-qa-surface/src/index.ts",
10713
- "line": 1175,
10824
+ "line": 1209,
10714
10825
  "column": 3
10715
10826
  }
10716
10827
  },
@@ -10759,7 +10870,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10759
10870
  },
10760
10871
  sourceLocation: {
10761
10872
  "file": "packages/dsh-qa-surface/src/index.ts",
10762
- "line": 1305,
10873
+ "line": 1339,
10763
10874
  "column": 3
10764
10875
  }
10765
10876
  },
@@ -10795,7 +10906,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10795
10906
  },
10796
10907
  sourceLocation: {
10797
10908
  "file": "packages/dsh-qa-surface/src/index.ts",
10798
- "line": 1299,
10909
+ "line": 1333,
10799
10910
  "column": 3
10800
10911
  }
10801
10912
  },
@@ -10854,7 +10965,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10854
10965
  },
10855
10966
  sourceLocation: {
10856
10967
  "file": "packages/dsh-qa-surface/src/index.ts",
10857
- "line": 1287,
10968
+ "line": 1321,
10858
10969
  "column": 3
10859
10970
  }
10860
10971
  },
@@ -10913,7 +11024,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10913
11024
  },
10914
11025
  sourceLocation: {
10915
11026
  "file": "packages/dsh-qa-surface/src/index.ts",
10916
- "line": 1555,
11027
+ "line": 1589,
10917
11028
  "column": 9
10918
11029
  }
10919
11030
  },
@@ -10972,7 +11083,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
10972
11083
  },
10973
11084
  sourceLocation: {
10974
11085
  "file": "packages/dsh-qa-surface/src/index.ts",
10975
- "line": 1584,
11086
+ "line": 1618,
10976
11087
  "column": 9
10977
11088
  }
10978
11089
  },
@@ -11021,7 +11132,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11021
11132
  },
11022
11133
  sourceLocation: {
11023
11134
  "file": "packages/dsh-qa-surface/src/index.ts",
11024
- "line": 1596,
11135
+ "line": 1630,
11025
11136
  "column": 9
11026
11137
  }
11027
11138
  },
@@ -11070,7 +11181,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11070
11181
  },
11071
11182
  sourceLocation: {
11072
11183
  "file": "packages/dsh-qa-surface/src/index.ts",
11073
- "line": 920,
11184
+ "line": 941,
11074
11185
  "column": 9
11075
11186
  }
11076
11187
  },
@@ -11088,7 +11199,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11088
11199
  },
11089
11200
  sourceLocation: {
11090
11201
  "file": "packages/dsh-qa-surface/src/index.ts",
11091
- "line": 889,
11202
+ "line": 910,
11092
11203
  "column": 3
11093
11204
  }
11094
11205
  },
@@ -11137,7 +11248,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11137
11248
  },
11138
11249
  sourceLocation: {
11139
11250
  "file": "packages/dsh-qa-surface/src/index.ts",
11140
- "line": 1664,
11251
+ "line": 1698,
11141
11252
  "column": 9
11142
11253
  }
11143
11254
  },
@@ -11173,7 +11284,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11173
11284
  },
11174
11285
  sourceLocation: {
11175
11286
  "file": "packages/dsh-qa-surface/src/index.ts",
11176
- "line": 1541,
11287
+ "line": 1575,
11177
11288
  "column": 9
11178
11289
  }
11179
11290
  },
@@ -11209,7 +11320,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11209
11320
  },
11210
11321
  sourceLocation: {
11211
11322
  "file": "packages/dsh-qa-surface/src/index.ts",
11212
- "line": 1570,
11323
+ "line": 1604,
11213
11324
  "column": 9
11214
11325
  }
11215
11326
  },
@@ -11258,7 +11369,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11258
11369
  },
11259
11370
  sourceLocation: {
11260
11371
  "file": "packages/dsh-qa-surface/src/index.ts",
11261
- "line": 1725,
11372
+ "line": 1759,
11262
11373
  "column": 9
11263
11374
  }
11264
11375
  },
@@ -11276,7 +11387,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11276
11387
  },
11277
11388
  sourceLocation: {
11278
11389
  "file": "packages/dsh-qa-surface/src/index.ts",
11279
- "line": 907,
11390
+ "line": 928,
11280
11391
  "column": 3
11281
11392
  }
11282
11393
  },
@@ -11325,7 +11436,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11325
11436
  },
11326
11437
  sourceLocation: {
11327
11438
  "file": "packages/dsh-qa-surface/src/index.ts",
11328
- "line": 1615,
11439
+ "line": 1649,
11329
11440
  "column": 9
11330
11441
  }
11331
11442
  },
@@ -11374,7 +11485,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11374
11485
  },
11375
11486
  sourceLocation: {
11376
11487
  "file": "packages/dsh-qa-surface/src/index.ts",
11377
- "line": 1691,
11488
+ "line": 1725,
11378
11489
  "column": 9
11379
11490
  }
11380
11491
  },
@@ -11410,7 +11521,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11410
11521
  },
11411
11522
  sourceLocation: {
11412
11523
  "file": "packages/dsh-qa-surface/src/index.ts",
11413
- "line": 1489,
11524
+ "line": 1523,
11414
11525
  "column": 9
11415
11526
  }
11416
11527
  },
@@ -11446,7 +11557,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11446
11557
  },
11447
11558
  sourceLocation: {
11448
11559
  "file": "packages/dsh-qa-surface/src/index.ts",
11449
- "line": 1795,
11560
+ "line": 1829,
11450
11561
  "column": 3
11451
11562
  }
11452
11563
  },
@@ -11482,7 +11593,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11482
11593
  },
11483
11594
  sourceLocation: {
11484
11595
  "file": "packages/dsh-qa-surface/src/index.ts",
11485
- "line": 1789,
11596
+ "line": 1823,
11486
11597
  "column": 3
11487
11598
  }
11488
11599
  },
@@ -11509,7 +11620,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11509
11620
  },
11510
11621
  sourceLocation: {
11511
11622
  "file": "packages/dsh-qa-surface/src/index.ts",
11512
- "line": 1783,
11623
+ "line": 1817,
11513
11624
  "column": 3
11514
11625
  }
11515
11626
  },
@@ -11558,7 +11669,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11558
11669
  },
11559
11670
  sourceLocation: {
11560
11671
  "file": "packages/dsh-qa-surface/src/index.ts",
11561
- "line": 1814,
11672
+ "line": 1848,
11562
11673
  "column": 3
11563
11674
  }
11564
11675
  },
@@ -11585,7 +11696,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11585
11696
  },
11586
11697
  sourceLocation: {
11587
11698
  "file": "packages/dsh-qa-surface/src/index.ts",
11588
- "line": 1840,
11699
+ "line": 1874,
11589
11700
  "column": 3
11590
11701
  }
11591
11702
  },
@@ -11634,7 +11745,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11634
11745
  },
11635
11746
  sourceLocation: {
11636
11747
  "file": "packages/dsh-qa-surface/src/index.ts",
11637
- "line": 1804,
11748
+ "line": 1838,
11638
11749
  "column": 3
11639
11750
  }
11640
11751
  },
@@ -11683,7 +11794,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11683
11794
  },
11684
11795
  sourceLocation: {
11685
11796
  "file": "packages/dsh-qa-surface/src/index.ts",
11686
- "line": 1827,
11797
+ "line": 1861,
11687
11798
  "column": 3
11688
11799
  }
11689
11800
  },
@@ -11719,7 +11830,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11719
11830
  },
11720
11831
  sourceLocation: {
11721
11832
  "file": "packages/dsh-qa-surface/src/index.ts",
11722
- "line": 1857,
11833
+ "line": 1891,
11723
11834
  "column": 3
11724
11835
  }
11725
11836
  },
@@ -11778,7 +11889,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11778
11889
  },
11779
11890
  sourceLocation: {
11780
11891
  "file": "packages/dsh-qa-surface/src/index.ts",
11781
- "line": 1872,
11892
+ "line": 1906,
11782
11893
  "column": 3
11783
11894
  }
11784
11895
  },
@@ -11814,7 +11925,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
11814
11925
  },
11815
11926
  sourceLocation: {
11816
11927
  "file": "packages/dsh-qa-surface/src/index.ts",
11817
- "line": 1528,
11928
+ "line": 1562,
11818
11929
  "column": 9
11819
11930
  }
11820
11931
  }
@@ -53072,8 +53183,24 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
53072
53183
  }
53073
53184
  //#endregion
53074
53185
  //#region src/client/components/QaChangelog.tsx
53075
- const QA_VERSION = "0.15.4";
53186
+ const QA_VERSION = "0.15.6";
53076
53187
  const QA_CHANGELOG = [
53188
+ {
53189
+ version: "0.15.6",
53190
+ date: "2026-10-08",
53191
+ sections: [{
53192
+ title: "Изменения",
53193
+ items: ["Провайдер и модель задаются ролью, а не всем стендом. Раньше пара была одна на развёртывание: аккаунты технической поддержки отвечали той же платной моделью, что и остальные, и Choice пользователя в интерфейсе ни на что не влиял только потому, что стенд сам всё выбрал. Теперь пара пишется у роли (и, если надо, у отдельного аккаунта — он сильнее роли), а настройки стенда остаются значением по умолчанию для тех, кто своей пары не задал. Пишется она в консоли QA: вкладка «Модель» у роли и блок «Модель этого аккаунта» в карточке пользователя, — и только выбором из каталога хоста, потому что раньше свободное поле принимало опечатку молча, а отказывал стенд уже на первом вопросе каждого чата этой роли, не называя ни модель, ни причину. Тумблер «фиксированная модель» сохраняет смысл: чат не может уйти на модель вне своей политики, — но сверяется он теперь с парой своей роли, а не с единственной парой стенда.", "Делегированный запуск и ревью ответа идут по политике роли. Субагент, у которого профиль модели не задан, раньше наследовал модель родителя — то есть ту, что стояла в чате, а не ту, что для этой роли решил оператор; теперь он берёт пару политики этого чата. Так же поступают воркеры разгрузки инструментов, эксперты по домену и, когда собственная настройка ревизора молчит, ревизор ответа. Переставить модель уже запущенного субагента стенд не может — это изменение харнесса, — поэтому политика действует на делегирования, начатые после её записи, а начатый ход доделывается на своей модели."]
53194
+ }]
53195
+ },
53196
+ {
53197
+ version: "0.15.5",
53198
+ date: "2026-10-08",
53199
+ sections: [{
53200
+ title: "Исправления",
53201
+ items: ["История версий больше не рисует заголовок раздела, под которым нет ни одного пункта. Текст уже выпущенных версий остаётся ровно тем, что было опубликовано: пустой раздел не вычёркивается из данных, а просто не показывается — заголовок без содержимого читался как чейнджлог, у которого потеряли пункты."]
53202
+ }]
53203
+ },
53077
53204
  {
53078
53205
  version: "0.15.4",
53079
53206
  date: "2026-10-08",
@@ -53648,12 +53775,12 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
53648
53775
  className: "dsh-qa-changelog__date",
53649
53776
  children: entry.date
53650
53777
  }),
53651
- entry.version === "0.15.4" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
53778
+ entry.version === "0.15.6" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", {
53652
53779
  className: "dsh-qa-changelog__current",
53653
53780
  children: "текущая"
53654
53781
  }) : null
53655
53782
  ]
53656
- }), entry.sections.map((section, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
53783
+ }), entry.sections.filter((section) => section.items.some((item) => item.trim() !== "")).map((section, index) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
53657
53784
  className: "dsh-qa-changelog__section",
53658
53785
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("h4", {
53659
53786
  className: "dsh-qa-changelog__section-title",
@@ -59631,6 +59758,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
59631
59758
  if (/reason: memory-unavailable/u.test(message)) return "Память экспертов на этом стенде недоступна: плагин доменов не установлен, выключен или его хранилище не открылось.";
59632
59759
  if (/reason: memory-record-unknown/u.test(message)) return "Этой записи уже нет — кто-то изменил память домена, пока страница была открыта. Обновите список.";
59633
59760
  if (/reason: invalid-memory/u.test(message)) return "Плагин доменов отклонил правку.";
59761
+ if (/reason: policy-model-unknown/u.test(message)) return "Этой пары провайдера и модели хост не предлагает: выберите значение из каталога.";
59634
59762
  return message;
59635
59763
  }
59636
59764
  /**
@@ -61874,6 +62002,120 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
61874
62002
  });
61875
62003
  }
61876
62004
  //#endregion
62005
+ //#region src/client/admin/ModelPolicyEditor.tsx
62006
+ /** Identity of a pair, as the value of one `<option>`. */
62007
+ function pairKey(provider, model) {
62008
+ return `${provider}/${model}`;
62009
+ }
62010
+ function entryKey(entry) {
62011
+ return pairKey(entry.provider, entry.model);
62012
+ }
62013
+ /**
62014
+ * The provider and model one policy fixes, written by picking a pair this Host
62015
+ * actually serves.
62016
+ *
62017
+ * Free text was the trap: a pair nobody can serve does not fail when it is
62018
+ * saved, it fails on the first question of every chat that policy opens, in
62019
+ * words that name neither the pair nor the role that asked for it. So the
62020
+ * operator chooses from the harness catalog, and a pair already stored but no
62021
+ * longer offered stays in the list, marked as such — an editor that cannot see
62022
+ * it would otherwise drop it while the operator was changing something else.
62023
+ */
62024
+ function ModelPolicyEditor(props) {
62025
+ const models = useAdminResource(() => props.api.modelCatalog(props.token), [props.api, props.token]);
62026
+ const catalog = models.data ?? [];
62027
+ const value = props.value;
62028
+ const storedKey = value === void 0 ? "" : pairKey(value.provider, value.model);
62029
+ const byKey = new Map(catalog.map((entry) => [entryKey(entry), entry]));
62030
+ const selected = byKey.get(storedKey);
62031
+ const efforts = selected?.reasoningEfforts ?? [];
62032
+ if (catalog.length === 0) return models.loading ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
62033
+ className: "dsh-qa-admin__empty",
62034
+ "data-testid": `${props.testId}-loading`,
62035
+ children: "Загружаю каталог моделей…"
62036
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("p", {
62037
+ className: "dsh-qa-admin__error",
62038
+ "data-testid": `${props.testId}-failed`,
62039
+ children: [
62040
+ "Хост не отдал каталог моделей, поэтому пару выбрать нельзя.",
62041
+ " ",
62042
+ value === void 0 ? "Действует политика развёртывания." : `Действует пара ${storedKey}.`
62043
+ ]
62044
+ });
62045
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
62046
+ "data-testid": props.testId,
62047
+ children: [
62048
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FilterField, {
62049
+ label: "Модель этого профиля",
62050
+ testId: `${props.testId}-field`,
62051
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
62052
+ "data-testid": `${props.testId}-pair`,
62053
+ disabled: props.disabled,
62054
+ value: storedKey,
62055
+ onChange: (event) => {
62056
+ const next = byKey.get(event.currentTarget.value);
62057
+ props.onChange(next === void 0 ? void 0 : {
62058
+ provider: next.provider,
62059
+ model: next.model
62060
+ });
62061
+ },
62062
+ children: [
62063
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
62064
+ value: "",
62065
+ children: "Как в настройках стенда"
62066
+ }),
62067
+ value !== void 0 && selected === void 0 ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("option", {
62068
+ value: storedKey,
62069
+ children: [storedKey, " — нет в каталоге хоста"]
62070
+ }) : null,
62071
+ catalog.map((entry) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("option", {
62072
+ value: entryKey(entry),
62073
+ children: [
62074
+ entry.provider,
62075
+ " / ",
62076
+ entry.label
62077
+ ]
62078
+ }, entryKey(entry)))
62079
+ ]
62080
+ })
62081
+ }),
62082
+ efforts.length === 0 ? null : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(FilterField, {
62083
+ label: "Усилие рассуждений",
62084
+ testId: `${props.testId}-effort-field`,
62085
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("select", {
62086
+ "data-testid": `${props.testId}-effort`,
62087
+ disabled: props.disabled,
62088
+ value: value?.reasoningEffort ?? "",
62089
+ onChange: (event) => {
62090
+ if (value === void 0) return;
62091
+ const effort = event.currentTarget.value;
62092
+ props.onChange(effort === "" ? {
62093
+ provider: value.provider,
62094
+ model: value.model
62095
+ } : {
62096
+ provider: value.provider,
62097
+ model: value.model,
62098
+ reasoningEffort: effort
62099
+ });
62100
+ },
62101
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
62102
+ value: "",
62103
+ children: "Как решает пресет"
62104
+ }), efforts.map((effort) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
62105
+ value: effort,
62106
+ children: effort
62107
+ }, effort))]
62108
+ })
62109
+ }),
62110
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("p", {
62111
+ className: "dsh-qa-admin__empty",
62112
+ "data-testid": `${props.testId}-hint`,
62113
+ children: "Пара задаётся до запуска: ей открывается каждый новый чат этого профиля, а не выбор пользователя в интерфейсе."
62114
+ })
62115
+ ]
62116
+ });
62117
+ }
62118
+ //#endregion
61877
62119
  //#region src/client/admin/pages/Users.tsx
61878
62120
  const PAGE_SIZE = 25;
61879
62121
  /** The Host's floor; the queue answers a shorter password before the round trip. */
@@ -62254,7 +62496,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62254
62496
  const defaultSubrole = allowed.includes(access.defaultSubrole) ? access.defaultSubrole : allowed[0];
62255
62497
  write({ access: {
62256
62498
  allowedSubroles: allowed,
62257
- defaultSubrole
62499
+ defaultSubrole,
62500
+ ...access.model === void 0 ? {} : { model: access.model }
62258
62501
  } });
62259
62502
  };
62260
62503
  return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("section", {
@@ -62355,7 +62598,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62355
62598
  disabled: busy || access.allowedSubroles.length === 0,
62356
62599
  onChange: (event) => void write({ access: {
62357
62600
  allowedSubroles: access.allowedSubroles,
62358
- defaultSubrole: event.currentTarget.value
62601
+ defaultSubrole: event.currentTarget.value,
62602
+ ...access.model === void 0 ? {} : { model: access.model }
62359
62603
  } }),
62360
62604
  children: access.allowedSubroles.map((id) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("option", {
62361
62605
  value: id,
@@ -62363,6 +62607,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62363
62607
  }, id))
62364
62608
  })
62365
62609
  }),
62610
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", { children: "Модель этого аккаунта" }),
62611
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ModelPolicyEditor, {
62612
+ api: props.accessApi,
62613
+ token: props.token,
62614
+ disabled: busy,
62615
+ testId: "qa-admin-user-model",
62616
+ value: access.model,
62617
+ onChange: (model) => void write({ access: {
62618
+ allowedSubroles: access.allowedSubroles,
62619
+ defaultSubrole: access.defaultSubrole,
62620
+ ...model === void 0 ? {} : { model }
62621
+ } })
62622
+ }),
62366
62623
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("h3", { children: "Действующие возможности" }),
62367
62624
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
62368
62625
  className: "dsh-qa-admin__effective",
@@ -62783,6 +63040,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62783
63040
  "data-testid": "qa-admin-role-tabs",
62784
63041
  children: [
62785
63042
  ["general", "Общее"],
63043
+ ["model", "Модель"],
62786
63044
  ["tools", "Инструменты"],
62787
63045
  ["skills", "Навыки"],
62788
63046
  ["effective", "Фактический доступ"]
@@ -62850,6 +63108,19 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
62850
63108
  }), "Включена"]
62851
63109
  })
62852
63110
  ]
63111
+ }) : tab === "model" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
63112
+ "data-testid": "qa-admin-role-model-panel",
63113
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ModelPolicyEditor, {
63114
+ api: props.api,
63115
+ token: props.token,
63116
+ disabled: saving,
63117
+ testId: "qa-admin-role-model",
63118
+ value: draft.model,
63119
+ onChange: (model) => setDraft({
63120
+ ...draft,
63121
+ model
63122
+ })
63123
+ })
62853
63124
  }) : tab === "tools" ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
62854
63125
  className: "dsh-qa-tool-buckets",
62855
63126
  "data-testid": "qa-admin-role-tool-buckets",
@@ -63365,6 +63636,8 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
63365
63636
  "aria-label": "Редактор саброли",
63366
63637
  children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(RoleEditor, {
63367
63638
  role: editing,
63639
+ api: props.api,
63640
+ token: props.token,
63368
63641
  catalog: snapshot.catalog,
63369
63642
  common: snapshot.config.common,
63370
63643
  system: snapshot.systemRequired,
@@ -67991,7 +68264,7 @@ ${QA_ROOT_STYLES}`;
67991
68264
  value: provider,
67992
68265
  disabled,
67993
68266
  placeholder: "deepseek",
67994
- hint: "Задаётся вместе с моделью: по отдельности хост отвергает конфигурацию, поэтому поле сохраняет оба значения сразу.",
68267
+ hint: "Пара развёртывания: ею открывается чат любой роли, которая задала свою пару сама. Задаётся вместе с моделью: по отдельности хост отвергает конфигурацию, поэтому поле сохраняет оба значения сразу. Пару отдельной роли или аккаунта задаёт консоль QA на странице «Саброли» и в карточке пользователя.",
67995
68268
  testId: "qa-settings-session-provider",
67996
68269
  onChange: (value) => {
67997
68270
  props.writeMany([{
@@ -68008,7 +68281,7 @@ ${QA_ROOT_STYLES}`;
68008
68281
  value: model,
68009
68282
  disabled,
68010
68283
  placeholder: "deepseek-chat",
68011
- hint: "Сохраняется вместе с провайдером по той же причине.",
68284
+ hint: "Вторая половина пары развёртывания; роль со своей парой её переопределяет. Сохраняется вместе с провайдером по той же причине. Значение, которого нет в каталоге хоста, отвергается при открытии чата — стенд не уходит в попытку выбрать несуществующую модель.",
68012
68285
  testId: "qa-settings-session-model",
68013
68286
  onChange: (value) => {
68014
68287
  props.writeMany([{
@@ -69473,6 +69746,7 @@ textarea.qa-card-control{height:auto;padding:8px 12px;line-height:1.5;resize:ver
69473
69746
  deleteSubrole: (token, id, replacementId) => policyRemote.accessDeleteSubrole(token, id, replacementId),
69474
69747
  updateCommon: (token, input) => policyRemote.accessUpdateCommon(token, input),
69475
69748
  updateAssignment: (token, userId, input) => policyRemote.accessUpdateAssignment(token, userId, input),
69749
+ modelCatalog: (token) => policyRemote.accessModelCatalog(token),
69476
69750
  updateSkillOverride: (token, input) => policyRemote.accessUpdateSkillOverride(token, input),
69477
69751
  skillActivations: (token, sessionId) => policyRemote.accessSkillActivations(token, sessionId)
69478
69752
  };