@yadsh/dsh-qa-surface 0.4.0 → 0.5.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 (89) hide show
  1. package/README.md +41 -5
  2. package/cordis.patch.yml +8 -0
  3. package/lib/accounts/credentials.js +12 -4
  4. package/lib/accounts/credentials.js.map +1 -1
  5. package/lib/accounts/store.js +16 -1
  6. package/lib/accounts/store.js.map +1 -1
  7. package/lib/approvals.js +179 -0
  8. package/lib/approvals.js.map +1 -0
  9. package/lib/cli.js +10 -0
  10. package/lib/cli.js.map +1 -1
  11. package/lib/client/QaSessionController.js +93 -0
  12. package/lib/client/QaSessionController.js.map +1 -1
  13. package/lib/client/QaSurface.js +14 -1
  14. package/lib/client/QaSurface.js.map +1 -1
  15. package/lib/client/approvals.js +104 -0
  16. package/lib/client/approvals.js.map +1 -0
  17. package/lib/client/attestation.js +3 -0
  18. package/lib/client/attestation.js.map +1 -1
  19. package/lib/client/components/QaApproval.js +23 -0
  20. package/lib/client/components/QaApproval.js.map +1 -0
  21. package/lib/client/components/QaChangelog.js +24 -0
  22. package/lib/client/components/QaChangelog.js.map +1 -1
  23. package/lib/client/components/QaQuestions.js +96 -0
  24. package/lib/client/components/QaQuestions.js.map +1 -0
  25. package/lib/client/index.js +11 -0
  26. package/lib/client/index.js.map +1 -1
  27. package/lib/client/project-session-state.js +5 -3
  28. package/lib/client/project-session-state.js.map +1 -1
  29. package/lib/client/questions.js +114 -0
  30. package/lib/client/questions.js.map +1 -0
  31. package/lib/client/settings/sections/sources.js +2 -0
  32. package/lib/client/settings/sections/sources.js.map +1 -1
  33. package/lib/client/styles.js +42 -0
  34. package/lib/client/styles.js.map +1 -1
  35. package/lib/client/types.js +2 -0
  36. package/lib/client/types.js.map +1 -1
  37. package/lib/client.js +1018 -56
  38. package/lib/client.js.map +1 -1
  39. package/lib/config-resolvers/basics.js +4 -2
  40. package/lib/config-resolvers/basics.js.map +1 -1
  41. package/lib/config-resolvers/defaults.js +4 -0
  42. package/lib/config-resolvers/defaults.js.map +1 -1
  43. package/lib/config-resolvers/lockdown.js +11 -0
  44. package/lib/config-resolvers/lockdown.js.map +1 -1
  45. package/lib/config-resolvers/session.js +2 -2
  46. package/lib/config-resolvers/session.js.map +1 -1
  47. package/lib/config-resolvers/shared.js +9 -0
  48. package/lib/config-resolvers/shared.js.map +1 -1
  49. package/lib/config-resolvers/sources.js +2 -0
  50. package/lib/config-resolvers/sources.js.map +1 -1
  51. package/lib/config.js +11 -2
  52. package/lib/config.js.map +1 -1
  53. package/lib/index.js +76 -6
  54. package/lib/index.js.map +1 -1
  55. package/lib/provenance/host-store.js +25 -9
  56. package/lib/provenance/host-store.js.map +1 -1
  57. package/lib/provenance/reported.js +37 -12
  58. package/lib/provenance/reported.js.map +1 -1
  59. package/lib/questions.js +185 -0
  60. package/lib/questions.js.map +1 -0
  61. package/lib/secure-session.js +69 -17
  62. package/lib/secure-session.js.map +1 -1
  63. package/lib/session-ownership.js +55 -0
  64. package/lib/session-ownership.js.map +1 -0
  65. package/lib/typert.host.js +357 -17
  66. package/lib/typert.remote-client.d.ts +11 -1
  67. package/lib/typert.remote-client.js +287 -14
  68. package/lib/types/accounts/credentials.d.ts +6 -0
  69. package/lib/types/accounts/store.d.ts +8 -0
  70. package/lib/types/approvals.d.ts +65 -0
  71. package/lib/types/client/QaSessionController.d.ts +38 -1
  72. package/lib/types/client/QaSurface.d.ts +8 -1
  73. package/lib/types/client/approvals.d.ts +39 -0
  74. package/lib/types/client/components/QaApproval.d.ts +13 -0
  75. package/lib/types/client/components/QaQuestions.d.ts +13 -0
  76. package/lib/types/client/project-session-state.d.ts +8 -1
  77. package/lib/types/client/questions.d.ts +45 -0
  78. package/lib/types/client/types.d.ts +48 -1
  79. package/lib/types/config-resolvers/shared.d.ts +7 -0
  80. package/lib/types/index.d.ts +29 -3
  81. package/lib/types/provenance/reported.d.ts +9 -1
  82. package/lib/types/questions.d.ts +83 -0
  83. package/lib/types/secure-session.d.ts +21 -2
  84. package/lib/types/session-ownership.d.ts +30 -0
  85. package/lib/types/types.d.ts +80 -4
  86. package/lib/types/user-workspace.d.ts +5 -1
  87. package/lib/user-workspace.js +21 -6
  88. package/lib/user-workspace.js.map +1 -1
  89. package/package.json +3 -3
@@ -103,6 +103,24 @@ const _yadsh_dsh_qa_surface_qaSurface_accountsWhoami_result$schema = z.union([z.
103
103
  }).readonly(),
104
104
  }).readonly(),
105
105
  })])
106
+ const _yadsh_dsh_qa_surface_qaSurface_answerApproval_parameter_0$schema = z.string()
107
+ const _yadsh_dsh_qa_surface_qaSurface_answerApproval_parameter_1$schema = z.string()
108
+ const _yadsh_dsh_qa_surface_qaSurface_answerApproval_parameter_2$schema = z.string()
109
+ const _yadsh_dsh_qa_surface_qaSurface_answerApproval_parameter_3$schema = z.union([z.literal("allowed-once"), z.literal("rejected")])
110
+ const _yadsh_dsh_qa_surface_qaSurface_answerApproval_result$schema = z.boolean()
111
+ const _yadsh_dsh_qa_surface_qaSurface_answerQuestion_parameter_0$schema = z.string()
112
+ const _yadsh_dsh_qa_surface_qaSurface_answerQuestion_parameter_1$schema = z.string()
113
+ const _yadsh_dsh_qa_surface_qaSurface_answerQuestion_parameter_2$schema = z.string()
114
+ const _yadsh_dsh_qa_surface_qaSurface_answerQuestion_parameter_3$schema = z.array(z.object({
115
+ 'id': z.string().readonly(),
116
+ 'selected': z.array(z.string()).readonly(),
117
+ 'custom': z.string().readonly().optional(),
118
+ }))
119
+ const _yadsh_dsh_qa_surface_qaSurface_answerQuestion_result$schema = z.boolean()
120
+ const _yadsh_dsh_qa_surface_qaSurface_cancelQuestion_parameter_0$schema = z.string()
121
+ const _yadsh_dsh_qa_surface_qaSurface_cancelQuestion_parameter_1$schema = z.string()
122
+ const _yadsh_dsh_qa_surface_qaSurface_cancelQuestion_parameter_2$schema = z.string()
123
+ const _yadsh_dsh_qa_surface_qaSurface_cancelQuestion_result$schema = z.boolean()
106
124
  const _yadsh_dsh_qa_surface_qaSurface_createSession_parameter_0$schema = z.string()
107
125
  const _yadsh_dsh_qa_surface_qaSurface_createSession_result$schema = z.string()
108
126
  const _yadsh_dsh_qa_surface_qaSurface_describe_result$schema = z.object({
@@ -144,8 +162,8 @@ const _yadsh_dsh_qa_surface_qaSurface_describe_result$schema = z.object({
144
162
  'suggestedQuestions': z.array(z.string()).readonly(),
145
163
  'thinkingPhrases': z.array(z.string()).readonly(),
146
164
  'interaction': z.object({
147
- 'approvals': z.literal("blocked").readonly(),
148
- 'questions': z.literal("unsupported").readonly(),
165
+ 'approvals': z.union([z.literal("blocked"), z.literal("interactive")]).readonly(),
166
+ 'questions': z.union([z.literal("interactive"), z.literal("unsupported")]).readonly(),
149
167
  }).readonly(),
150
168
  'lockdown': z.object({
151
169
  'enabled': z.boolean().readonly(),
@@ -166,6 +184,7 @@ const _yadsh_dsh_qa_surface_qaSurface_describe_result$schema = z.object({
166
184
  'mode': z.literal("allow-list").readonly(),
167
185
  'allow': z.array(z.string()).readonly(),
168
186
  }).readonly(),
187
+ 'sharedReadOnlyRoots': z.array(z.string()).readonly(),
169
188
  }).readonly(),
170
189
  'embedding': z.object({
171
190
  'frameAncestors': z.union([z.literal(null), z.string()]).readonly(),
@@ -225,6 +244,7 @@ const _yadsh_dsh_qa_surface_qaSurface_describe_result$schema = z.object({
225
244
  'inheritSources': z.boolean().readonly(),
226
245
  'enableReportToolFallback': z.boolean().readonly(),
227
246
  'markIncompleteOpaqueRuns': z.boolean().readonly(),
247
+ 'validateReportedSources': z.boolean().readonly(),
228
248
  }).readonly(),
229
249
  'legacy': z.object({
230
250
  'parseAssistantSourcesBlock': z.boolean().readonly(),
@@ -238,6 +258,34 @@ const _yadsh_dsh_qa_surface_qaSurface_describe_result$schema = z.object({
238
258
  'extensions': z.array(z.string()).readonly(),
239
259
  }).readonly(),
240
260
  })
261
+ const _yadsh_dsh_qa_surface_qaSurface_pendingApprovals_parameter_0$schema = z.string()
262
+ const _yadsh_dsh_qa_surface_qaSurface_pendingApprovals_parameter_1$schema = z.string()
263
+ const _yadsh_dsh_qa_surface_qaSurface_pendingApprovals_result$schema = z.array(z.object({
264
+ 'id': z.string().readonly(),
265
+ 'sessionId': z.string().readonly(),
266
+ 'toolName': z.string().readonly(),
267
+ 'reason': z.union([z.literal(null), z.string()]).readonly(),
268
+ 'createdAt': z.number().readonly(),
269
+ 'delegated': z.boolean().readonly(),
270
+ }))
271
+ const _yadsh_dsh_qa_surface_qaSurface_pendingQuestions_parameter_0$schema = z.string()
272
+ const _yadsh_dsh_qa_surface_qaSurface_pendingQuestions_parameter_1$schema = z.string()
273
+ const _yadsh_dsh_qa_surface_qaSurface_pendingQuestions_result$schema = z.array(z.object({
274
+ 'id': z.string().readonly(),
275
+ 'sessionId': z.string().readonly(),
276
+ 'questions': z.array(z.object({
277
+ 'id': z.string().readonly(),
278
+ 'question': z.string().readonly(),
279
+ 'header': z.union([z.literal(null), z.string()]).readonly(),
280
+ 'detail': z.union([z.literal(null), z.string()]).readonly(),
281
+ 'options': z.array(z.object({
282
+ 'label': z.string().readonly(),
283
+ 'description': z.union([z.literal(null), z.string()]).readonly(),
284
+ })).readonly(),
285
+ 'multiSelect': z.boolean().readonly(),
286
+ })).readonly(),
287
+ 'createdAt': z.number().readonly(),
288
+ }))
241
289
  const _yadsh_dsh_qa_surface_qaSurface_readSourceFile_parameter_0$schema = z.string()
242
290
  const _yadsh_dsh_qa_surface_qaSurface_readSourceFile_parameter_1$schema = z.string()
243
291
  const _yadsh_dsh_qa_surface_qaSurface_readSourceFile_parameter_2$schema = z.string()
@@ -376,7 +424,7 @@ export const TYPERT = {
376
424
  typeSymbol: '@yadsh/dsh-qa-surface/types#QaClaimResult',
377
425
  schema: _yadsh_dsh_qa_surface_qaSurface_accountsClaimSessions_result$schema,
378
426
  },
379
- sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":230,"column":3},
427
+ sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":268,"column":3},
380
428
  },
381
429
  {
382
430
  id: '@yadsh/dsh-qa-surface#qaSurface/accountsListOwnership',
@@ -401,7 +449,7 @@ export const TYPERT = {
401
449
  typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/accountsListOwnership:result',
402
450
  schema: _yadsh_dsh_qa_surface_qaSurface_accountsListOwnership_result$schema,
403
451
  },
404
- sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":249,"column":3},
452
+ sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":287,"column":3},
405
453
  },
406
454
  {
407
455
  id: '@yadsh/dsh-qa-surface#qaSurface/accountsLogin',
@@ -436,7 +484,7 @@ export const TYPERT = {
436
484
  typeSymbol: '@yadsh/dsh-qa-surface/types#QaAccountSession',
437
485
  schema: _yadsh_dsh_qa_surface_qaSurface_accountsLogin_result$schema,
438
486
  },
439
- sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":218,"column":3},
487
+ sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":256,"column":3},
440
488
  },
441
489
  {
442
490
  id: '@yadsh/dsh-qa-surface#qaSurface/accountsOwnedSessions',
@@ -461,7 +509,7 @@ export const TYPERT = {
461
509
  typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/accountsOwnedSessions:result',
462
510
  schema: _yadsh_dsh_qa_surface_qaSurface_accountsOwnedSessions_result$schema,
463
511
  },
464
- sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":239,"column":3},
512
+ sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":277,"column":3},
465
513
  },
466
514
  {
467
515
  id: '@yadsh/dsh-qa-surface#qaSurface/accountsRegister',
@@ -496,7 +544,7 @@ export const TYPERT = {
496
544
  typeSymbol: '@yadsh/dsh-qa-surface/types#QaAccountSession',
497
545
  schema: _yadsh_dsh_qa_surface_qaSurface_accountsRegister_result$schema,
498
546
  },
499
- sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":213,"column":3},
547
+ sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":251,"column":3},
500
548
  },
501
549
  {
502
550
  id: '@yadsh/dsh-qa-surface#qaSurface/accountsUpdateProfile',
@@ -531,7 +579,7 @@ export const TYPERT = {
531
579
  typeSymbol: '@yadsh/dsh-qa-surface/types#QaAccountUserPublic',
532
580
  schema: _yadsh_dsh_qa_surface_qaSurface_accountsUpdateProfile_result$schema,
533
581
  },
534
- sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":262,"column":3},
582
+ sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":300,"column":3},
535
583
  },
536
584
  {
537
585
  id: '@yadsh/dsh-qa-surface#qaSurface/accountsWhoami',
@@ -556,7 +604,162 @@ export const TYPERT = {
556
604
  typeSymbol: '@yadsh/dsh-qa-surface/types#QaWhoamiResult',
557
605
  schema: _yadsh_dsh_qa_surface_qaSurface_accountsWhoami_result$schema,
558
606
  },
559
- sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":224,"column":3},
607
+ sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":262,"column":3},
608
+ },
609
+ {
610
+ id: '@yadsh/dsh-qa-surface#qaSurface/answerApproval',
611
+ service: 'qaSurface',
612
+ namespace: 'qaSurface',
613
+ method: 'answerApproval',
614
+ invocation: { kind: 'direct' },
615
+ parameters: [
616
+ {
617
+ name: 'token',
618
+ wire: 'token',
619
+ source: 'json',
620
+ codec: {
621
+ mode: 'strict',
622
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/answerApproval:token',
623
+ schema: _yadsh_dsh_qa_surface_qaSurface_answerApproval_parameter_0$schema,
624
+ },
625
+ },
626
+ {
627
+ name: 'sessionId',
628
+ wire: 'sessionId',
629
+ source: 'json',
630
+ codec: {
631
+ mode: 'strict',
632
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/answerApproval:sessionId',
633
+ schema: _yadsh_dsh_qa_surface_qaSurface_answerApproval_parameter_1$schema,
634
+ },
635
+ },
636
+ {
637
+ name: 'requestId',
638
+ wire: 'requestId',
639
+ source: 'json',
640
+ codec: {
641
+ mode: 'strict',
642
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/answerApproval:requestId',
643
+ schema: _yadsh_dsh_qa_surface_qaSurface_answerApproval_parameter_2$schema,
644
+ },
645
+ },
646
+ {
647
+ name: 'decision',
648
+ wire: 'decision',
649
+ source: 'json',
650
+ codec: {
651
+ mode: 'strict',
652
+ typeSymbol: '@yadsh/dsh-qa-surface/types#QaApprovalDecision',
653
+ schema: _yadsh_dsh_qa_surface_qaSurface_answerApproval_parameter_3$schema,
654
+ },
655
+ },
656
+ ],
657
+ result: {
658
+ mode: 'strict',
659
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/answerApproval:result',
660
+ schema: _yadsh_dsh_qa_surface_qaSurface_answerApproval_result$schema,
661
+ },
662
+ sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":455,"column":9},
663
+ },
664
+ {
665
+ id: '@yadsh/dsh-qa-surface#qaSurface/answerQuestion',
666
+ service: 'qaSurface',
667
+ namespace: 'qaSurface',
668
+ method: 'answerQuestion',
669
+ invocation: { kind: 'direct' },
670
+ parameters: [
671
+ {
672
+ name: 'token',
673
+ wire: 'token',
674
+ source: 'json',
675
+ codec: {
676
+ mode: 'strict',
677
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/answerQuestion:token',
678
+ schema: _yadsh_dsh_qa_surface_qaSurface_answerQuestion_parameter_0$schema,
679
+ },
680
+ },
681
+ {
682
+ name: 'sessionId',
683
+ wire: 'sessionId',
684
+ source: 'json',
685
+ codec: {
686
+ mode: 'strict',
687
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/answerQuestion:sessionId',
688
+ schema: _yadsh_dsh_qa_surface_qaSurface_answerQuestion_parameter_1$schema,
689
+ },
690
+ },
691
+ {
692
+ name: 'requestId',
693
+ wire: 'requestId',
694
+ source: 'json',
695
+ codec: {
696
+ mode: 'strict',
697
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/answerQuestion:requestId',
698
+ schema: _yadsh_dsh_qa_surface_qaSurface_answerQuestion_parameter_2$schema,
699
+ },
700
+ },
701
+ {
702
+ name: 'answers',
703
+ wire: 'answers',
704
+ source: 'json',
705
+ codec: {
706
+ mode: 'strict',
707
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/answerQuestion:answers',
708
+ schema: _yadsh_dsh_qa_surface_qaSurface_answerQuestion_parameter_3$schema,
709
+ },
710
+ },
711
+ ],
712
+ result: {
713
+ mode: 'strict',
714
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/answerQuestion:result',
715
+ schema: _yadsh_dsh_qa_surface_qaSurface_answerQuestion_result$schema,
716
+ },
717
+ sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":484,"column":9},
718
+ },
719
+ {
720
+ id: '@yadsh/dsh-qa-surface#qaSurface/cancelQuestion',
721
+ service: 'qaSurface',
722
+ namespace: 'qaSurface',
723
+ method: 'cancelQuestion',
724
+ invocation: { kind: 'direct' },
725
+ parameters: [
726
+ {
727
+ name: 'token',
728
+ wire: 'token',
729
+ source: 'json',
730
+ codec: {
731
+ mode: 'strict',
732
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/cancelQuestion:token',
733
+ schema: _yadsh_dsh_qa_surface_qaSurface_cancelQuestion_parameter_0$schema,
734
+ },
735
+ },
736
+ {
737
+ name: 'sessionId',
738
+ wire: 'sessionId',
739
+ source: 'json',
740
+ codec: {
741
+ mode: 'strict',
742
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/cancelQuestion:sessionId',
743
+ schema: _yadsh_dsh_qa_surface_qaSurface_cancelQuestion_parameter_1$schema,
744
+ },
745
+ },
746
+ {
747
+ name: 'requestId',
748
+ wire: 'requestId',
749
+ source: 'json',
750
+ codec: {
751
+ mode: 'strict',
752
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/cancelQuestion:requestId',
753
+ schema: _yadsh_dsh_qa_surface_qaSurface_cancelQuestion_parameter_2$schema,
754
+ },
755
+ },
756
+ ],
757
+ result: {
758
+ mode: 'strict',
759
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/cancelQuestion:result',
760
+ schema: _yadsh_dsh_qa_surface_qaSurface_cancelQuestion_result$schema,
761
+ },
762
+ sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":496,"column":9},
560
763
  },
561
764
  {
562
765
  id: '@yadsh/dsh-qa-surface#qaSurface/createSession',
@@ -581,7 +784,7 @@ export const TYPERT = {
581
784
  typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/createSession:result',
582
785
  schema: _yadsh_dsh_qa_surface_qaSurface_createSession_result$schema,
583
786
  },
584
- sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":287,"column":9},
787
+ sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":325,"column":9},
585
788
  },
586
789
  {
587
790
  id: '@yadsh/dsh-qa-surface#qaSurface/describe',
@@ -596,7 +799,77 @@ export const TYPERT = {
596
799
  typeSymbol: '@yadsh/dsh-qa-surface/types#ResolvedQaSurfaceConfig',
597
800
  schema: _yadsh_dsh_qa_surface_qaSurface_describe_result$schema,
598
801
  },
599
- sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":277,"column":3},
802
+ sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":315,"column":3},
803
+ },
804
+ {
805
+ id: '@yadsh/dsh-qa-surface#qaSurface/pendingApprovals',
806
+ service: 'qaSurface',
807
+ namespace: 'qaSurface',
808
+ method: 'pendingApprovals',
809
+ invocation: { kind: 'direct' },
810
+ parameters: [
811
+ {
812
+ name: 'token',
813
+ wire: 'token',
814
+ source: 'json',
815
+ codec: {
816
+ mode: 'strict',
817
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/pendingApprovals:token',
818
+ schema: _yadsh_dsh_qa_surface_qaSurface_pendingApprovals_parameter_0$schema,
819
+ },
820
+ },
821
+ {
822
+ name: 'sessionId',
823
+ wire: 'sessionId',
824
+ source: 'json',
825
+ codec: {
826
+ mode: 'strict',
827
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/pendingApprovals:sessionId',
828
+ schema: _yadsh_dsh_qa_surface_qaSurface_pendingApprovals_parameter_1$schema,
829
+ },
830
+ },
831
+ ],
832
+ result: {
833
+ mode: 'strict',
834
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/pendingApprovals:result',
835
+ schema: _yadsh_dsh_qa_surface_qaSurface_pendingApprovals_result$schema,
836
+ },
837
+ sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":441,"column":9},
838
+ },
839
+ {
840
+ id: '@yadsh/dsh-qa-surface#qaSurface/pendingQuestions',
841
+ service: 'qaSurface',
842
+ namespace: 'qaSurface',
843
+ method: 'pendingQuestions',
844
+ invocation: { kind: 'direct' },
845
+ parameters: [
846
+ {
847
+ name: 'token',
848
+ wire: 'token',
849
+ source: 'json',
850
+ codec: {
851
+ mode: 'strict',
852
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/pendingQuestions:token',
853
+ schema: _yadsh_dsh_qa_surface_qaSurface_pendingQuestions_parameter_0$schema,
854
+ },
855
+ },
856
+ {
857
+ name: 'sessionId',
858
+ wire: 'sessionId',
859
+ source: 'json',
860
+ codec: {
861
+ mode: 'strict',
862
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/pendingQuestions:sessionId',
863
+ schema: _yadsh_dsh_qa_surface_qaSurface_pendingQuestions_parameter_1$schema,
864
+ },
865
+ },
866
+ ],
867
+ result: {
868
+ mode: 'strict',
869
+ typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/pendingQuestions:result',
870
+ schema: _yadsh_dsh_qa_surface_qaSurface_pendingQuestions_result$schema,
871
+ },
872
+ sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":470,"column":9},
600
873
  },
601
874
  {
602
875
  id: '@yadsh/dsh-qa-surface#qaSurface/readSourceFile',
@@ -641,7 +914,7 @@ export const TYPERT = {
641
914
  typeSymbol: '@yadsh/dsh-qa-surface/types#QaSourceFilePreview',
642
915
  schema: _yadsh_dsh_qa_surface_qaSurface_readSourceFile_result$schema,
643
916
  },
644
- sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":394,"column":9},
917
+ sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":507,"column":9},
645
918
  },
646
919
  {
647
920
  id: '@yadsh/dsh-qa-surface#qaSurface/secureSession',
@@ -676,7 +949,7 @@ export const TYPERT = {
676
949
  typeSymbol: '@yadsh/dsh-qa-surface/types#QaLockdownProof',
677
950
  schema: _yadsh_dsh_qa_surface_qaSurface_secureSession_result$schema,
678
951
  },
679
- sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":361,"column":3},
952
+ sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":399,"column":9},
680
953
  },
681
954
  {
682
955
  id: '@yadsh/dsh-qa-surface#qaSurface/sources',
@@ -711,7 +984,7 @@ export const TYPERT = {
711
984
  typeSymbol: '@yadsh/dsh-qa-surface#qaSurface/sources:result',
712
985
  schema: _yadsh_dsh_qa_surface_qaSurface_sources_result$schema,
713
986
  },
714
- sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":387,"column":3},
987
+ sourceLocation: {"file":"packages/dsh-qa-surface/src/index.ts","line":428,"column":9},
715
988
  },
716
989
  ],
717
990
  model: {
@@ -793,17 +1066,52 @@ export const TYPERT = {
793
1066
  {
794
1067
  "kind": "method",
795
1068
  "name": "secureSession",
796
- "signature": "@Remote(\"secureSession\") secureSession(token: string, sessionId: string): QaLockdownProof",
1069
+ "signature": "@Remote(\"secureSession\") async secureSession( token: string, sessionId: string, ): Promise<QaLockdownProof>",
797
1070
  "summary": "Pin and attest the effective policy.",
798
1071
  "jsDoc": "/** Pin and attest the effective policy. The browser supplies identity only. */"
799
1072
  },
800
1073
  {
801
1074
  "kind": "method",
802
1075
  "name": "sources",
803
- "signature": "@Remote(\"sources\") sources(token: string, sessionId: string): readonly QaTurnSources[]",
1076
+ "signature": "@Remote(\"sources\") async sources( token: string, sessionId: string, ): Promise<readonly QaTurnSources[]>",
804
1077
  "summary": "Return canonical Host snapshots; replay is rebuilt from qa/sources events.",
805
1078
  "jsDoc": "/** Return canonical Host snapshots; replay is rebuilt from qa/sources events. */"
806
1079
  },
1080
+ {
1081
+ "kind": "method",
1082
+ "name": "pendingApprovals",
1083
+ "signature": "@Remote(\"pendingApprovals\") async pendingApprovals( token: string, sessionId: string, ): Promise<readonly QaPendingApproval[]>",
1084
+ "summary": "The tool calls of one chat that wait for the operator.",
1085
+ "jsDoc": "/**\n * The tool calls of one chat that wait for the operator. Read-only: a\n * deployment with blocked approvals answers with an empty list.\n */"
1086
+ },
1087
+ {
1088
+ "kind": "method",
1089
+ "name": "answerApproval",
1090
+ "signature": "@Remote(\"answerApproval\") async answerApproval( token: string, sessionId: string, requestId: string, decision: QaApprovalDecision, ): Promise<boolean>",
1091
+ "summary": "Apply the operator's answer to one parked call.",
1092
+ "jsDoc": "/**\n * Apply the operator's answer to one parked call. The id must belong to a\n * request of this chat; an answer that lost the race (the turn was stopped,\n * the agent went away) is refused with `false`.\n */"
1093
+ },
1094
+ {
1095
+ "kind": "method",
1096
+ "name": "pendingQuestions",
1097
+ "signature": "@Remote(\"pendingQuestions\") async pendingQuestions( token: string, sessionId: string, ): Promise<readonly QaPendingQuestion[]>",
1098
+ "summary": "The questions of one chat that wait for the operator.",
1099
+ "jsDoc": "/**\n * The questions of one chat that wait for the operator. Read-only: a\n * deployment with unsupported questions answers with an empty list.\n */"
1100
+ },
1101
+ {
1102
+ "kind": "method",
1103
+ "name": "answerQuestion",
1104
+ "signature": "@Remote(\"answerQuestion\") async answerQuestion( token: string, sessionId: string, requestId: string, answers: readonly QaQuestionAnswerItem[], ): Promise<boolean>",
1105
+ "summary": "Apply the operator's answers to one parked question request.",
1106
+ "jsDoc": "/**\n * Apply the operator's answers to one parked question request. Every question\n * of the request must be present in `answers`; one the browser omits reads as\n * a skip.\n */"
1107
+ },
1108
+ {
1109
+ "kind": "method",
1110
+ "name": "cancelQuestion",
1111
+ "signature": "@Remote(\"cancelQuestion\") async cancelQuestion( token: string, sessionId: string, requestId: string, ): Promise<boolean>",
1112
+ "summary": "Close a parked question request without answering it.",
1113
+ "jsDoc": "/** Close a parked question request without answering it. */"
1114
+ },
807
1115
  {
808
1116
  "kind": "method",
809
1117
  "name": "readSourceFile",
@@ -837,6 +1145,14 @@ export const TYPERT = {
837
1145
  "name": "QaAccountUserPublic",
838
1146
  "declaration": "export interface QaAccountUserPublic {\n readonly id: string;\n readonly email: string;\n readonly displayName: string;\n readonly role: QaAccountRole;\n readonly createdAt: string;\n readonly lastLoginAt: string | null;\n readonly disabled: boolean;\n readonly profile: QaAccountProfile;\n}"
839
1147
  },
1148
+ {
1149
+ "name": "QaApprovalDecision",
1150
+ "declaration": "export type QaApprovalDecision = \"allowed-once\" | \"rejected\";"
1151
+ },
1152
+ {
1153
+ "name": "QaApprovalInteraction",
1154
+ "declaration": "export type QaApprovalInteraction = \"blocked\" | \"interactive\";"
1155
+ },
840
1156
  {
841
1157
  "name": "QaApprovalPolicy",
842
1158
  "declaration": "export type QaApprovalPolicy = \"never\";"
@@ -853,6 +1169,30 @@ export const TYPERT = {
853
1169
  "name": "QaOwnershipEntry",
854
1170
  "declaration": "export interface QaOwnershipEntry {\n readonly sessionId: string;\n readonly userId: string;\n readonly displayName: string;\n readonly claimedAt: string;\n}"
855
1171
  },
1172
+ {
1173
+ "name": "QaPendingApproval",
1174
+ "declaration": "export interface QaPendingApproval {\n readonly id: string;\n readonly sessionId: string;\n readonly toolName: string;\n readonly reason: string | null;\n readonly createdAt: number;\n readonly delegated: boolean;\n}"
1175
+ },
1176
+ {
1177
+ "name": "QaPendingQuestion",
1178
+ "declaration": "export interface QaPendingQuestion {\n readonly id: string;\n readonly sessionId: string;\n readonly questions: readonly QaPendingQuestionItem[];\n readonly createdAt: number;\n}"
1179
+ },
1180
+ {
1181
+ "name": "QaPendingQuestionItem",
1182
+ "declaration": "export interface QaPendingQuestionItem {\n readonly id: string;\n readonly question: string;\n readonly header: string | null;\n readonly detail: string | null;\n readonly options: readonly QaPendingQuestionOption[];\n readonly multiSelect: boolean;\n}"
1183
+ },
1184
+ {
1185
+ "name": "QaPendingQuestionOption",
1186
+ "declaration": "export interface QaPendingQuestionOption {\n readonly label: string;\n readonly description: string | null;\n}"
1187
+ },
1188
+ {
1189
+ "name": "QaQuestionAnswerItem",
1190
+ "declaration": "export interface QaQuestionAnswerItem {\n readonly id: string;\n readonly selected: readonly string[];\n readonly custom?: string;\n}"
1191
+ },
1192
+ {
1193
+ "name": "QaQuestionInteraction",
1194
+ "declaration": "export type QaQuestionInteraction = \"unsupported\" | \"interactive\";"
1195
+ },
856
1196
  {
857
1197
  "name": "QaSandboxMode",
858
1198
  "declaration": "export type QaSandboxMode = \"read-only\" | \"workspace-write\";"
@@ -907,7 +1247,7 @@ export const TYPERT = {
907
1247
  },
908
1248
  {
909
1249
  "name": "ResolvedQaSurfaceConfig",
910
- "declaration": "export interface ResolvedQaSurfaceConfig {\n readonly enabled: boolean;\n readonly route: { readonly path: string; readonly matchChildren: boolean; };\n readonly branding: { readonly title: string; readonly subtitle: string; readonly welcomeMessage: string; readonly placeholder: string; readonly logoUrl: string | null; readonly disclaimer: string; };\n readonly session: { readonly policy: QaSessionPolicy; readonly storageKey: string; readonly cwd: string | null; readonly workspaceId: string | null; readonly fixedSessionId: string | null; readonly agentPreset: string | null; readonly provider: string | null; readonly model: string | null; readonly reasoningEffort: string | null; };\n readonly ui: { readonly showHeader: boolean; readonly showReset: boolean; readonly showStop: boolean; readonly showTimestamps: boolean; readonly showToolActivity: boolean; readonly showReasoning: boolean; readonly renderMarkdown: boolean; readonly minContentWidth: number; readonly showSessionList: boolean; };\n readonly suggestedQuestions: readonly string[];\n readonly thinkingPhrases: readonly string[];\n readonly interaction: { readonly approvals: \"blocked\"; readonly questions: \"unsupported\"; };\n readonly lockdown: { readonly enabled: boolean; readonly enforceFixedAgentPreset: boolean; readonly enforceFixedWorkspace: boolean; readonly enforceFixedModel: boolean; readonly sandboxMode: QaSandboxMode; readonly approvalPolicy: QaApprovalPolicy; readonly permissionPreset: string; readonly allowPermissionChanges: false; readonly allowSlashCommands: false; readonly allowSettingsMutation: false; readonly allowSessionReset: boolean; readonly allowSessionRename: false; readonly allowSessionDelete: false; readonly allowArbitrarySessionOpen: false; readonly toolPolicy: { readonly mode: QaToolPolicyMode; readonly allow: readonly string[]; }; };\n readonly embedding: { readonly frameAncestors: string | null; };\n readonly accounts: { readonly enabled: boolean; readonly allowRegistration: boolean; readonly sessionTtlDays: number; readonly showOtherUsersChats: boolean; readonly perUserWorkspace: boolean; readonly profile: { readonly enabled: boolean; readonly inject: boolean; readonly identities: readonly QaAccountIdentityField[]; readonly instructionsMaxLength: number; }; };\n readonly entry: { readonly redirectNonLoopback: boolean; readonly cookieBootstrap: boolean; };\n readonly sources: { readonly enabled: boolean; readonly collect: { readonly parentAgent: boolean; readonly subagents: boolean; readonly persistTurnEvent: boolean; }; readonly display: { readonly sidebar: boolean; readonly footer: boolean; readonly groupByKind: boolean; readonly showDiscovered: boolean; readonly showOriginBadges: boolean; readonly maxInitiallyVisiblePerGroup: number; }; readonly webSearch: { readonly promoteSearchResultsWithoutFetch: boolean; readonly maxPromotedPerSearch: number; }; readonly dedupe: { readonly normalizeUrls: boolean; readonly stripTrackingParams: boolean; readonly mergeFileRanges: boolean; }; readonly filePreview: { readonly enabled: boolean; readonly markdownRenderedByDefault: boolean; readonly allowRawToggle: boolean; readonly maxBytes: number; readonly maxMarkdownRenderBytes: number; }; readonly subagents: { readonly inheritSources: boolean; readonly enableReportToolFallback: boolean; readonly markIncompleteOpaqueRuns: boolean; }; readonly legacy: { readonly parseAssistantSourcesBlock: boolean; }; };\n readonly attachments: { readonly textFiles: boolean; readonly pastedTextLines: number; readonly maxFileBytes: number; readonly maxPending: number; readonly extensions: readonly string[]; };\n}"
1250
+ "declaration": "export interface ResolvedQaSurfaceConfig {\n readonly enabled: boolean;\n readonly route: { readonly path: string; readonly matchChildren: boolean; };\n readonly branding: { readonly title: string; readonly subtitle: string; readonly welcomeMessage: string; readonly placeholder: string; readonly logoUrl: string | null; readonly disclaimer: string; };\n readonly session: { readonly policy: QaSessionPolicy; readonly storageKey: string; readonly cwd: string | null; readonly workspaceId: string | null; readonly fixedSessionId: string | null; readonly agentPreset: string | null; readonly provider: string | null; readonly model: string | null; readonly reasoningEffort: string | null; };\n readonly ui: { readonly showHeader: boolean; readonly showReset: boolean; readonly showStop: boolean; readonly showTimestamps: boolean; readonly showToolActivity: boolean; readonly showReasoning: boolean; readonly renderMarkdown: boolean; readonly minContentWidth: number; readonly showSessionList: boolean; };\n readonly suggestedQuestions: readonly string[];\n readonly thinkingPhrases: readonly string[];\n readonly interaction: { readonly approvals: QaApprovalInteraction; readonly questions: QaQuestionInteraction; };\n readonly lockdown: { readonly enabled: boolean; readonly enforceFixedAgentPreset: boolean; readonly enforceFixedWorkspace: boolean; readonly enforceFixedModel: boolean; readonly sandboxMode: QaSandboxMode; readonly approvalPolicy: QaApprovalPolicy; readonly permissionPreset: string; readonly allowPermissionChanges: false; readonly allowSlashCommands: false; readonly allowSettingsMutation: false; readonly allowSessionReset: boolean; readonly allowSessionRename: false; readonly allowSessionDelete: false; readonly allowArbitrarySessionOpen: false; readonly toolPolicy: { readonly mode: QaToolPolicyMode; readonly allow: readonly string[]; }; readonly sharedReadOnlyRoots: readonly string[]; };\n readonly embedding: { readonly frameAncestors: string | null; };\n readonly accounts: { readonly enabled: boolean; readonly allowRegistration: boolean; readonly sessionTtlDays: number; readonly showOtherUsersChats: boolean; readonly perUserWorkspace: boolean; readonly profile: { readonly enabled: boolean; readonly inject: boolean; readonly identities: readonly QaAccountIdentityField[]; readonly instructionsMaxLength: number; }; };\n readonly entry: { readonly redirectNonLoopback: boolean; readonly cookieBootstrap: boolean; };\n readonly sources: { readonly enabled: boolean; readonly collect: { readonly parentAgent: boolean; readonly subagents: boolean; readonly persistTurnEvent: boolean; }; readonly display: { readonly sidebar: boolean; readonly footer: boolean; readonly groupByKind: boolean; readonly showDiscovered: boolean; readonly showOriginBadges: boolean; readonly maxInitiallyVisiblePerGroup: number; }; readonly webSearch: { readonly promoteSearchResultsWithoutFetch: boolean; readonly maxPromotedPerSearch: number; }; readonly dedupe: { readonly normalizeUrls: boolean; readonly stripTrackingParams: boolean; readonly mergeFileRanges: boolean; }; readonly filePreview: { readonly enabled: boolean; readonly markdownRenderedByDefault: boolean; readonly allowRawToggle: boolean; readonly maxBytes: number; readonly maxMarkdownRenderBytes: number; }; readonly subagents: { readonly inheritSources: boolean; readonly enableReportToolFallback: boolean; readonly markIncompleteOpaqueRuns: boolean; readonly validateReportedSources: boolean; }; readonly legacy: { readonly parseAssistantSourcesBlock: boolean; }; };\n readonly attachments: { readonly textFiles: boolean; readonly pastedTextLines: number; readonly maxFileBytes: number; readonly maxPending: number; readonly extensions: readonly string[]; };\n}"
911
1251
  }
912
1252
  ]
913
1253
  }
@@ -3,7 +3,7 @@ import type {
3
3
  RemoteResult,
4
4
  TypertRemoteContribution,
5
5
  } from '@deepseek-ai/dsh-typert-protocol'
6
- import type { QaAccountProfileInput, QaAccountSession, QaAccountUserPublic, QaClaimResult, QaLockdownProof, QaOwnershipEntry, QaSourceFilePreview, QaTurnSources, QaWhoamiResult, ResolvedQaSurfaceConfig } from '@yadsh/dsh-qa-surface/types'
6
+ import type { QaAccountProfileInput, QaAccountSession, QaAccountUserPublic, QaApprovalDecision, QaClaimResult, QaLockdownProof, QaOwnershipEntry, QaPendingApproval, QaPendingQuestion, QaQuestionAnswerItem, QaSourceFilePreview, QaTurnSources, QaWhoamiResult, ResolvedQaSurfaceConfig } from '@yadsh/dsh-qa-surface/types'
7
7
 
8
8
  declare module '@deepseek-ai/dsh-typert-protocol' {
9
9
  interface TypertRemoteNamespace$716153757266616365 {
@@ -14,8 +14,13 @@ declare module '@deepseek-ai/dsh-typert-protocol' {
14
14
  accountsRegister: (email: string, password: string) => Promise<RemoteResult<QaAccountSession>>
15
15
  accountsUpdateProfile: (token: string, input: QaAccountProfileInput) => Promise<RemoteResult<QaAccountUserPublic>>
16
16
  accountsWhoami: (token: string) => Promise<RemoteResult<QaWhoamiResult>>
17
+ answerApproval: (token: string, sessionId: string, requestId: string, decision: QaApprovalDecision) => Promise<RemoteResult<boolean>>
18
+ answerQuestion: (token: string, sessionId: string, requestId: string, answers: readonly QaQuestionAnswerItem[]) => Promise<RemoteResult<boolean>>
19
+ cancelQuestion: (token: string, sessionId: string, requestId: string) => Promise<RemoteResult<boolean>>
17
20
  createSession: (token: string) => Promise<RemoteResult<string>>
18
21
  describe: () => Promise<RemoteResult<ResolvedQaSurfaceConfig>>
22
+ pendingApprovals: (token: string, sessionId: string) => Promise<RemoteResult<readonly QaPendingApproval[]>>
23
+ pendingQuestions: (token: string, sessionId: string) => Promise<RemoteResult<readonly QaPendingQuestion[]>>
19
24
  readSourceFile: (token: string, sessionId: string, sourcePath: string) => Promise<RemoteResult<QaSourceFilePreview>>
20
25
  secureSession: (token: string, sessionId: string) => Promise<RemoteResult<QaLockdownProof>>
21
26
  sources: (token: string, sessionId: string) => Promise<RemoteResult<readonly QaTurnSources[]>>
@@ -28,8 +33,13 @@ declare module '@deepseek-ai/dsh-typert-protocol' {
28
33
  'qaSurface/accountsRegister': (email: string, password: string) => Promise<RemoteResult<QaAccountSession>>
29
34
  'qaSurface/accountsUpdateProfile': (token: string, input: QaAccountProfileInput) => Promise<RemoteResult<QaAccountUserPublic>>
30
35
  'qaSurface/accountsWhoami': (token: string) => Promise<RemoteResult<QaWhoamiResult>>
36
+ 'qaSurface/answerApproval': (token: string, sessionId: string, requestId: string, decision: QaApprovalDecision) => Promise<RemoteResult<boolean>>
37
+ 'qaSurface/answerQuestion': (token: string, sessionId: string, requestId: string, answers: readonly QaQuestionAnswerItem[]) => Promise<RemoteResult<boolean>>
38
+ 'qaSurface/cancelQuestion': (token: string, sessionId: string, requestId: string) => Promise<RemoteResult<boolean>>
31
39
  'qaSurface/createSession': (token: string) => Promise<RemoteResult<string>>
32
40
  'qaSurface/describe': () => Promise<RemoteResult<ResolvedQaSurfaceConfig>>
41
+ 'qaSurface/pendingApprovals': (token: string, sessionId: string) => Promise<RemoteResult<readonly QaPendingApproval[]>>
42
+ 'qaSurface/pendingQuestions': (token: string, sessionId: string) => Promise<RemoteResult<readonly QaPendingQuestion[]>>
33
43
  'qaSurface/readSourceFile': (token: string, sessionId: string, sourcePath: string) => Promise<RemoteResult<QaSourceFilePreview>>
34
44
  'qaSurface/secureSession': (token: string, sessionId: string) => Promise<RemoteResult<QaLockdownProof>>
35
45
  'qaSurface/sources': (token: string, sessionId: string) => Promise<RemoteResult<readonly QaTurnSources[]>>