@kingsoftcloud/ksadk-web 0.3.3 → 0.3.4

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 (164) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/RELEASE_PROVENANCE.json +2 -2
  3. package/dist-ksadk/assets/{ArtifactsPanel-CytJCLMc.js → ArtifactsPanel-10GPXIJ6.js} +1 -1
  4. package/dist-ksadk/assets/{CodeBlock-D6tEbvd9.js → CodeBlock-BXk1l-G1.js} +1 -1
  5. package/dist-ksadk/assets/{MathMessageMarkdown-BBnihmbC.js → MathMessageMarkdown-D9uB55Oh.js} +1 -1
  6. package/dist-ksadk/assets/{MermaidBlock-CI9NjqQx.js → MermaidBlock--OEYoXIJ.js} +6 -6
  7. package/dist-ksadk/assets/{NativeTerminalPanel-Czpx2MSS.js → NativeTerminalPanel-DrEe1syq.js} +1 -1
  8. package/dist-ksadk/assets/{abnfDiagram-VCTEODGH-CNsXewmF.js → abnfDiagram-VCTEODGH-eeTFJLvo.js} +1 -1
  9. package/dist-ksadk/assets/{arc-x-74isv6.js → arc-S3ZNbIAd.js} +1 -1
  10. package/dist-ksadk/assets/architecture-7GRP2DOG-Dk9nRQ6-.js +1 -0
  11. package/dist-ksadk/assets/{architectureDiagram-5GKGNRK7-tZ3w1B6m.js → architectureDiagram-5GKGNRK7-CRjgEJDX.js} +1 -1
  12. package/dist-ksadk/assets/{blockDiagram-NRAW4CY4-BEhGFh0b.js → blockDiagram-NRAW4CY4-C7bsBoNH.js} +1 -1
  13. package/dist-ksadk/assets/{c4Diagram-UCG6FXSJ-zrSgZM44.js → c4Diagram-UCG6FXSJ-BX3c33Ob.js} +1 -1
  14. package/dist-ksadk/assets/channel-s354Yo6o.js +1 -0
  15. package/dist-ksadk/assets/chunk-2Q5K7J3B-CDpPpKR5.js +1 -0
  16. package/dist-ksadk/assets/{chunk-5VM5RSS4-VZAcej21.js → chunk-5VM5RSS4-bZ7ws-8m.js} +1 -1
  17. package/dist-ksadk/assets/{chunk-F27PBJKO-DNUQP5bs.js → chunk-F27PBJKO-D2r0pvhY.js} +1 -1
  18. package/dist-ksadk/assets/{chunk-G27WJ6UU-BVuLv5Os.js → chunk-G27WJ6UU-CZwF3oUP.js} +1 -1
  19. package/dist-ksadk/assets/{chunk-JWPE2WC7-CEttzwEN.js → chunk-JWPE2WC7-DigFYCML.js} +1 -1
  20. package/dist-ksadk/assets/{chunk-LCL6LL3I-BT3bzrVf.js → chunk-LCL6LL3I-CnorGV5q.js} +1 -1
  21. package/dist-ksadk/assets/{chunk-POPQ4Y6H-BvutC1JH.js → chunk-POPQ4Y6H-CexntQA-.js} +1 -1
  22. package/dist-ksadk/assets/{chunk-RHFEMEQ7-BIXm03MG.js → chunk-RHFEMEQ7-CHTC7UxA.js} +1 -1
  23. package/dist-ksadk/assets/{chunk-SVP7TREG--LDO57tP.js → chunk-SVP7TREG-BC1EWt_-.js} +1 -1
  24. package/dist-ksadk/assets/{chunk-XXDRQBXY-WtVtVhpq.js → chunk-XXDRQBXY-BTG24xN0.js} +1 -1
  25. package/dist-ksadk/assets/classDiagram-DTDB5LWJ-Dd0nucl9.js +1 -0
  26. package/dist-ksadk/assets/classDiagram-v2-JRS7N3AN-Dd0nucl9.js +1 -0
  27. package/dist-ksadk/assets/{cose-bilkent-JH36ORCC-CnqJMsPI.js → cose-bilkent-JH36ORCC-CkonRdAS.js} +1 -1
  28. package/dist-ksadk/assets/cynefin-OW5HDTMX-BBlT4uMf.js +1 -0
  29. package/dist-ksadk/assets/{cynefinDiagram-5FMLGOSQ-Ci9qjtA_.js → cynefinDiagram-5FMLGOSQ-DEOCBe15.js} +1 -1
  30. package/dist-ksadk/assets/{dagre-3AP2YEHR-Ll3LkcYP.js → dagre-3AP2YEHR-DBThPuLa.js} +1 -1
  31. package/dist-ksadk/assets/{dagre-CKrj2THw.js → dagre-ClTPrTht.js} +1 -1
  32. package/dist-ksadk/assets/{diagram-S7CK7UJ4-BQ1slPEx.js → diagram-S7CK7UJ4-DsZHrnpJ.js} +1 -1
  33. package/dist-ksadk/assets/{diagram-UQ7AKVKN-BXz7DvIg.js → diagram-UQ7AKVKN-BJR4nhVr.js} +1 -1
  34. package/dist-ksadk/assets/{diagram-VSXAHHWV-DOno97OL.js → diagram-VSXAHHWV-xzcERX0a.js} +1 -1
  35. package/dist-ksadk/assets/{diagram-VX7I27RA-CU2kHvv3.js → diagram-VX7I27RA-tn2xM1xu.js} +1 -1
  36. package/dist-ksadk/assets/{diagram-Z3DM3KII-mhpvOavV.js → diagram-Z3DM3KII-BZPGBkw5.js} +1 -1
  37. package/dist-ksadk/assets/{dist-4j-rswH6.js → dist-4zN1_tq5.js} +1 -1
  38. package/dist-ksadk/assets/{dist-CTeZLI0m.js → dist-8VWI-2bZ.js} +1 -1
  39. package/dist-ksadk/assets/{dist-CaTDm1g0.js → dist-B-46q3Hk.js} +1 -1
  40. package/dist-ksadk/assets/{dist-B6XMlZpc.js → dist-B0gdk4rl.js} +1 -1
  41. package/dist-ksadk/assets/{dist-DeO3Qj-D.js → dist-B1oWRmrH.js} +1 -1
  42. package/dist-ksadk/assets/{dist-CUFAKgYs.js → dist-BI1qQH4n.js} +1 -1
  43. package/dist-ksadk/assets/{dist-2cbEIexW.js → dist-BJLUwH6W.js} +1 -1
  44. package/dist-ksadk/assets/{dist-DGFsOxe9.js → dist-Bbwqa8TG.js} +1 -1
  45. package/dist-ksadk/assets/{dist-Byl0QKIY.js → dist-Btyo4vX4.js} +1 -1
  46. package/dist-ksadk/assets/{dist-BvMDy0Xp.js → dist-C71CsujO.js} +1 -1
  47. package/dist-ksadk/assets/{dist-C-V2Wj4x.js → dist-CXpH_Rdd.js} +1 -1
  48. package/dist-ksadk/assets/{dist-BxjBfG2w.js → dist-Cq4OL6nO.js} +1 -1
  49. package/dist-ksadk/assets/{dist-oPMjOYRU.js → dist-D1V3f1B4.js} +1 -1
  50. package/dist-ksadk/assets/{dist-hRISJdRx.js → dist-DJmCPRVB.js} +1 -1
  51. package/dist-ksadk/assets/{dist-C-Q0Ulfg.js → dist-DQAB0qn_.js} +1 -1
  52. package/dist-ksadk/assets/{dist-DgSf2VGQ.js → dist-DUwKa_l6.js} +1 -1
  53. package/dist-ksadk/assets/{dist-B-VEMnGR.js → dist-DdRBIceA.js} +1 -1
  54. package/dist-ksadk/assets/{dist-BQCggVji.js → dist-DfGFrb0v.js} +1 -1
  55. package/dist-ksadk/assets/{dist-DwwtGqH9.js → dist-DjhwGUgZ.js} +1 -1
  56. package/dist-ksadk/assets/{dist-BZiMQVbN.js → dist-DyqV4fL4.js} +1 -1
  57. package/dist-ksadk/assets/{dist-CPZHorum.js → dist-M67Hwu0n.js} +1 -1
  58. package/dist-ksadk/assets/{dist-CoCI5ZIy.js → dist-u8tVH5Ak.js} +1 -1
  59. package/dist-ksadk/assets/{ebnfDiagram-PWID7BFC-DAH8tjOy.js → ebnfDiagram-PWID7BFC-DVfMsLge.js} +1 -1
  60. package/dist-ksadk/assets/{erDiagram-SSCWMZ5O-JvDkJGJ3.js → erDiagram-SSCWMZ5O-CWEZSYaw.js} +1 -1
  61. package/dist-ksadk/assets/eventmodeling-NTZA5JFV-Dr5okd8V.js +1 -0
  62. package/dist-ksadk/assets/flowDiagram-A5DVABFB-VEO-cVcO.js +1 -0
  63. package/dist-ksadk/assets/{ganttDiagram-EL5Y4UJY-B-SEC706.js → ganttDiagram-EL5Y4UJY-TWIxoyYL.js} +1 -1
  64. package/dist-ksadk/assets/gitGraph-4MIJSDKK-CKiKY9Cf.js +1 -0
  65. package/dist-ksadk/assets/{gitGraphDiagram-WWUBYQGX-D7OJf_No.js → gitGraphDiagram-WWUBYQGX-DDh2hd2S.js} +1 -1
  66. package/dist-ksadk/assets/index-B2k_urY8.js +241 -0
  67. package/dist-ksadk/assets/index-ILPt6IWF.css +2 -0
  68. package/dist-ksadk/assets/info-A6RAGUB7-ubA4Nm_p.js +1 -0
  69. package/dist-ksadk/assets/{infoDiagram-RXCK75RN-CTIHOSud.js → infoDiagram-RXCK75RN-CgoyWiDR.js} +1 -1
  70. package/dist-ksadk/assets/{ishikawaDiagram-5VMMS53U-HMO7FchJ.js → ishikawaDiagram-5VMMS53U-CyRIu_om.js} +1 -1
  71. package/dist-ksadk/assets/{journeyDiagram-EYS64GPL-DeFbDr5t.js → journeyDiagram-EYS64GPL-DN5JXHzN.js} +1 -1
  72. package/dist-ksadk/assets/{kanban-definition-3QL26DDD-D3OeNqXY.js → kanban-definition-3QL26DDD-CNP3ui66.js} +1 -1
  73. package/dist-ksadk/assets/{katex-DCJHF0vD.js → katex-DWEzQy1d.js} +1 -1
  74. package/dist-ksadk/assets/{linear-D3-vxS4W.js → linear-C-qHp7d2.js} +1 -1
  75. package/dist-ksadk/assets/{mermaid-parser.core-C-Sc5_7E.js → mermaid-parser.core-Cl-K943T.js} +2 -2
  76. package/dist-ksadk/assets/{mindmap-definition-FBJOCRG2-D-XtspHN.js → mindmap-definition-FBJOCRG2-D5DB5mYm.js} +1 -1
  77. package/dist-ksadk/assets/packet-AYTQ26CC-C7R3NUlK.js +1 -0
  78. package/dist-ksadk/assets/{pegDiagram-XKGWAZYB-BYbAq9Nb.js → pegDiagram-XKGWAZYB-BQVc9ia_.js} +1 -1
  79. package/dist-ksadk/assets/pie-WAS4IAKB-BIT6qjr3.js +1 -0
  80. package/dist-ksadk/assets/{pieDiagram-E7YTZNPT-DQ2yX4VQ.js → pieDiagram-E7YTZNPT-B6UCAvtY.js} +1 -1
  81. package/dist-ksadk/assets/{quadrantDiagram-AXDQQJYC-rvRPUN0j.js → quadrantDiagram-AXDQQJYC-mIr2d3eb.js} +1 -1
  82. package/dist-ksadk/assets/radar-RG4KPBEZ-l5noef9X.js +1 -0
  83. package/dist-ksadk/assets/railroad-74A4TZTK-Baea6ZvM.js +1 -0
  84. package/dist-ksadk/assets/railroad-abnf-HS5TGJTU-OKn8zZnU.js +1 -0
  85. package/dist-ksadk/assets/railroad-ebnf-LZEXJU2U-DdKAKC4l.js +1 -0
  86. package/dist-ksadk/assets/railroad-peg-WCYAUIDC-Bds8udlG.js +1 -0
  87. package/dist-ksadk/assets/{railroadDiagram-O6MQD6OU-2OVn6qwA.js → railroadDiagram-O6MQD6OU-Dt3FFDmK.js} +1 -1
  88. package/dist-ksadk/assets/{requirementDiagram-EFPCY7ZU-ChWVLAKz.js → requirementDiagram-EFPCY7ZU-Cz_vQtgF.js} +1 -1
  89. package/dist-ksadk/assets/{sankeyDiagram-P5KCCOFB-Cb5gXi_j.js → sankeyDiagram-P5KCCOFB-wlO1TsH5.js} +1 -1
  90. package/dist-ksadk/assets/{sequenceDiagram-WJ2MYXX4-D7g_-PUM.js → sequenceDiagram-WJ2MYXX4-CHRbElYq.js} +1 -1
  91. package/dist-ksadk/assets/{sizeCapture-X5ZJPWSS-D__whCj3.js → sizeCapture-X5ZJPWSS-DXX54iyO.js} +1 -1
  92. package/dist-ksadk/assets/{stateDiagram-HBIQ2CUA-CpKIc0dl.js → stateDiagram-HBIQ2CUA-Dp_lw9II.js} +1 -1
  93. package/dist-ksadk/assets/stateDiagram-v2-4QOOHH4V-5b-8o2iS.js +1 -0
  94. package/dist-ksadk/assets/{swimlanes-XN3QIQJK-CFJohC2b.js → swimlanes-XN3QIQJK-D8O5UlLG.js} +1 -1
  95. package/dist-ksadk/assets/swimlanesDiagram-VK2B7HYN-uf6WPRA4.js +8 -0
  96. package/dist-ksadk/assets/{timeline-definition-24CTP7MA-Dg4AY0KC.js → timeline-definition-24CTP7MA-8mfKcxvG.js} +1 -1
  97. package/dist-ksadk/assets/treeView-Q6P3EWNA-CK5CSrSO.js +1 -0
  98. package/dist-ksadk/assets/treemap-WGGIJYW6-Ch2BKgAM.js +1 -0
  99. package/dist-ksadk/assets/{vennDiagram-4TSXK5OY-A6cRoCBU.js → vennDiagram-4TSXK5OY-EnNl0DE7.js} +1 -1
  100. package/dist-ksadk/assets/wardley-WFR3VGLG-YW3Q0ml_.js +1 -0
  101. package/dist-ksadk/assets/{wardleyDiagram-VM6X3IG4-BVD1hMYl.js → wardleyDiagram-VM6X3IG4-DBu5fbYr.js} +1 -1
  102. package/dist-ksadk/assets/{xychartDiagram-S5SC5T6Z-BlBLXETg.js → xychartDiagram-S5SC5T6Z-BSVXs4IY.js} +1 -1
  103. package/dist-ksadk/index.html +2 -2
  104. package/dist-lib/App.d.ts.map +1 -1
  105. package/dist-lib/{ArtifactsPanel-D2EtX4X_.js → ArtifactsPanel-D36BykpN.js} +1 -1
  106. package/dist-lib/{CodeBlock-CPaeJbtf.js → CodeBlock-BlEkUJ8C.js} +1 -1
  107. package/dist-lib/{MathMessageMarkdown-Bpp4hI6Q.js → MathMessageMarkdown-CcnPvEgd.js} +2 -2
  108. package/dist-lib/{NativeTerminalPanel-CJXzKV0z.js → NativeTerminalPanel-Dix1UX_z.js} +1 -1
  109. package/dist-lib/{WorkspacePanelContainer-DbD-6xqx.js → WorkspacePanelContainer-Cr1BwR1P.js} +1387 -1606
  110. package/dist-lib/components/chat/ChatMessageList.d.ts +9 -0
  111. package/dist-lib/components/chat/ChatMessageList.d.ts.map +1 -1
  112. package/dist-lib/components/chat/ProcessingBlocksView.d.ts.map +1 -1
  113. package/dist-lib/components.js +4 -4
  114. package/dist-lib/conversation.js +5 -5
  115. package/dist-lib/core/conversation/client.d.ts.map +1 -1
  116. package/dist-lib/core/conversation/hosted.d.ts +4 -2
  117. package/dist-lib/core/conversation/hosted.d.ts.map +1 -1
  118. package/dist-lib/core/conversation/presentation.d.ts +9 -1
  119. package/dist-lib/core/conversation/presentation.d.ts.map +1 -1
  120. package/dist-lib/core/run/blocks.d.ts +7 -0
  121. package/dist-lib/core/run/blocks.d.ts.map +1 -1
  122. package/dist-lib/core/run/dispatcher.d.ts.map +1 -1
  123. package/dist-lib/core/run/engine.d.ts.map +1 -1
  124. package/dist-lib/core/run/types.d.ts +1 -0
  125. package/dist-lib/core/run/types.d.ts.map +1 -1
  126. package/dist-lib/core/stream/kernel-events.d.ts.map +1 -1
  127. package/dist-lib/hooks/useSessionLifecycle.d.ts.map +1 -1
  128. package/dist-lib/persisted-session-history-C0N8TrMb.js +2033 -0
  129. package/dist-lib/public/conversation.d.ts +3 -0
  130. package/dist-lib/public/conversation.d.ts.map +1 -1
  131. package/dist-lib/runtime.js +1195 -2369
  132. package/dist-lib/styles.css +1 -1
  133. package/dist-lib/tool-display-C4tPXce0.js +0 -0
  134. package/dist-lib/utils/persisted-session-history.d.ts +27 -0
  135. package/dist-lib/utils/persisted-session-history.d.ts.map +1 -0
  136. package/dist-lib/utils/recovered-run.d.ts.map +1 -1
  137. package/dist-lib/utils/session-event-history.d.ts.map +1 -1
  138. package/dist-lib/utils/session-events.d.ts.map +1 -1
  139. package/package.json +4 -2
  140. package/dist-ksadk/assets/architecture-7GRP2DOG-C3S9W0aD.js +0 -1
  141. package/dist-ksadk/assets/channel-CdffTTpb.js +0 -1
  142. package/dist-ksadk/assets/chunk-2Q5K7J3B-B6k89qGR.js +0 -1
  143. package/dist-ksadk/assets/classDiagram-DTDB5LWJ-C0BU8Yr9.js +0 -1
  144. package/dist-ksadk/assets/classDiagram-v2-JRS7N3AN-C0BU8Yr9.js +0 -1
  145. package/dist-ksadk/assets/cynefin-OW5HDTMX-BckONr__.js +0 -1
  146. package/dist-ksadk/assets/eventmodeling-NTZA5JFV-vjy4Z61x.js +0 -1
  147. package/dist-ksadk/assets/flowDiagram-A5DVABFB-CvJ64Qzs.js +0 -1
  148. package/dist-ksadk/assets/gitGraph-4MIJSDKK-CX3KwgqY.js +0 -1
  149. package/dist-ksadk/assets/index-BkDx9KsG.js +0 -241
  150. package/dist-ksadk/assets/index-DW7rZ4ml.css +0 -2
  151. package/dist-ksadk/assets/info-A6RAGUB7-CYHIOuL5.js +0 -1
  152. package/dist-ksadk/assets/packet-AYTQ26CC-Ctg2wH4o.js +0 -1
  153. package/dist-ksadk/assets/pie-WAS4IAKB-CU6GnSzI.js +0 -1
  154. package/dist-ksadk/assets/radar-RG4KPBEZ-Bhe0us4A.js +0 -1
  155. package/dist-ksadk/assets/railroad-74A4TZTK-DEgiNGfx.js +0 -1
  156. package/dist-ksadk/assets/railroad-abnf-HS5TGJTU-GK7ct0QX.js +0 -1
  157. package/dist-ksadk/assets/railroad-ebnf-LZEXJU2U-BzlcTUmk.js +0 -1
  158. package/dist-ksadk/assets/railroad-peg-WCYAUIDC-7ESM96BW.js +0 -1
  159. package/dist-ksadk/assets/stateDiagram-v2-4QOOHH4V-D7ulg6TV.js +0 -1
  160. package/dist-ksadk/assets/swimlanesDiagram-VK2B7HYN-A-oZaquE.js +0 -8
  161. package/dist-ksadk/assets/treeView-Q6P3EWNA-D6u1mSx1.js +0 -1
  162. package/dist-ksadk/assets/treemap-WGGIJYW6-CM87Vav0.js +0 -1
  163. package/dist-ksadk/assets/wardley-WFR3VGLG-BPoQUTzr.js +0 -1
  164. package/dist-lib/client-1WQCunUo.js +0 -616
@@ -1,616 +0,0 @@
1
- //#region src/core/conversation/errors.ts
2
- var e = class extends Error {
3
- code;
4
- status;
5
- capability;
6
- runId;
7
- cursor;
8
- cause;
9
- constructor(e, t, n = {}) {
10
- super(t), this.name = "ConversationClientError", this.code = e, this.status = n.status, this.capability = n.capability, this.runId = n.runId, this.cursor = n.cursor, this.cause = n.cause;
11
- }
12
- }, t = "conversation.ksadk.io/v1", n = /^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/, r = new Set([
13
- "native",
14
- "translated",
15
- "degraded",
16
- "unavailable"
17
- ]), i = new Set([
18
- "user_message",
19
- "assistant_text",
20
- "reasoning",
21
- "tool_call",
22
- "approval",
23
- "progress",
24
- "plan",
25
- "goal",
26
- "artifact",
27
- "a2ui",
28
- "error",
29
- "unknown"
30
- ]), a = new Set([
31
- "append",
32
- "replace",
33
- "completed"
34
- ]), o = new Set([
35
- "pending",
36
- "streaming",
37
- "completed",
38
- "failed"
39
- ]), s = new Set([
40
- "public",
41
- "internal",
42
- "hidden"
43
- ]), c = new Set([
44
- "apiVersion",
45
- "kind",
46
- "inputId",
47
- "sessionId",
48
- "idempotencyKey",
49
- "parts",
50
- "modelRef",
51
- "reasoning",
52
- "extensions"
53
- ]), l = new Set(["kind", "text"]), u = new Set([
54
- "kind",
55
- "attachmentRef",
56
- "mediaType",
57
- "name"
58
- ]), d = "ksadk.approval", f = "ksadk.collaboration", p = "ksadk.goal";
59
- function m(e) {
60
- return typeof e == "object" && e && !Array.isArray(e) ? e : null;
61
- }
62
- function h(e, t) {
63
- return typeof e == "string" && e.length > 0 && e.length <= t;
64
- }
65
- function g(e, t, n = !1) {
66
- return e == null || typeof e == "string" && e.length <= t && (n || e.length > 0);
67
- }
68
- function _(e, t) {
69
- return Object.keys(e).every((e) => t.has(e));
70
- }
71
- function ee(e) {
72
- let t = m(e);
73
- return !t || typeof t.kind != "string" ? null : t.kind === "text" ? !_(t, l) || !h(t.text, 131072) ? null : {
74
- kind: "text",
75
- text: t.text
76
- } : t.kind === "attachment" ? !_(t, u) || !h(t.attachmentRef, 2048) || !h(t.mediaType, 256) || !g(t.name, 1024, !0) ? null : {
77
- kind: "attachment",
78
- attachmentRef: t.attachmentRef,
79
- mediaType: t.mediaType,
80
- ...t.name === void 0 ? {} : { name: t.name }
81
- } : null;
82
- }
83
- function v(e) {
84
- if (e === void 0) return {};
85
- let t = m(e);
86
- if (!t || Object.keys(t).some((e) => !n.test(e) || !e.includes("."))) return null;
87
- let r = t[d], i = t[f], a = t[p];
88
- return r !== void 0 && ![
89
- "ask",
90
- "risk",
91
- "full"
92
- ].includes(String(r)) || i !== void 0 && !["default", "plan"].includes(String(i)) || a !== void 0 && !h(a, 4096) ? null : { ...t };
93
- }
94
- function y(e) {
95
- let n = m(e);
96
- if (!n || !_(n, c) || n.apiVersion !== t || n.kind !== "ConversationInput" || !h(n.inputId, 256) || !h(n.sessionId, 256) || !h(n.idempotencyKey, 512) || !Array.isArray(n.parts) || n.parts.length === 0 || !g(n.modelRef, 256) || !g(n.reasoning, 64)) return null;
97
- let r = n.parts.map(ee), i = v(n.extensions);
98
- return r.some((e) => e === null) || i === null ? null : {
99
- apiVersion: t,
100
- kind: "ConversationInput",
101
- inputId: n.inputId,
102
- sessionId: n.sessionId,
103
- idempotencyKey: n.idempotencyKey,
104
- parts: r,
105
- ...n.modelRef === void 0 ? {} : { modelRef: n.modelRef },
106
- ...n.reasoning === void 0 ? {} : { reasoning: n.reasoning },
107
- ...n.extensions === void 0 ? {} : { extensions: i }
108
- };
109
- }
110
- function b(n) {
111
- let r = y({
112
- ...n,
113
- apiVersion: n.apiVersion || t,
114
- kind: n.kind || "ConversationInput"
115
- });
116
- if (!r) throw new e("conversation_contract_mismatch", "Conversation input does not match conversation.ksadk.io/v1.");
117
- return r;
118
- }
119
- function x(e) {
120
- let t = e.parts.map((e) => e.kind === "text" ? "text" : e.mediaType.toLowerCase().startsWith("image/") ? "attachment.image" : "attachment.file");
121
- e.modelRef && t.push("model.select"), e.reasoning && t.push("reasoning.effort");
122
- for (let n of Object.keys(e.extensions || {})) n === d ? t.push("approval") : n === f ? e.extensions?.[n] === "plan" && t.push("plan") : n === p ? t.push("goal") : t.push(n);
123
- return [...new Set(t)];
124
- }
125
- function S(t, n) {
126
- if (t.sessionId !== n.sessionId) throw new e("conversation_session_mismatch", "Conversation input session does not match the active surface.");
127
- for (let r of x(n)) if (!D(t, r)) throw new e("conversation_input_unsupported", "Conversation input is not declared by the active surface.", { capability: r });
128
- return n;
129
- }
130
- function C(e) {
131
- let t = m(e);
132
- return !t || !h(t.name, 128) || !n.test(t.name) || !r.has(t.mode) || !g(t.reason, 512, !0) || (t.mode === "degraded" || t.mode === "unavailable") && !h(t.reason, 512) ? null : {
133
- name: t.name,
134
- mode: t.mode,
135
- ...t.reason === void 0 ? {} : { reason: t.reason }
136
- };
137
- }
138
- function w(e) {
139
- if (e === void 0) return [];
140
- if (!Array.isArray(e)) return null;
141
- let t = e.map(C);
142
- if (t.some((e) => e === null)) return null;
143
- let n = t;
144
- return new Set(n.map((e) => e.name)).size === n.length ? n : null;
145
- }
146
- function T(e) {
147
- let n = m(e);
148
- if (!n || n.apiVersion !== t || n.kind !== "ConversationSurface" || !h(n.surfaceId, 256) || !h(n.sessionId, 256) || !h(n.providerRef, 256)) return null;
149
- let r = w(n.inputs), i = w(n.outputs);
150
- return !r || !i ? null : {
151
- apiVersion: t,
152
- kind: "ConversationSurface",
153
- surfaceId: n.surfaceId,
154
- sessionId: n.sessionId,
155
- providerRef: n.providerRef,
156
- inputs: r,
157
- outputs: i
158
- };
159
- }
160
- function E(e) {
161
- let n = m(e);
162
- if (!n || n.apiVersion !== t || n.kindVersion !== 1 || !h(n.itemId, 512) || !g(n.parentItemId, 512) || !Array.isArray(n.sourceEventIds) || n.sourceEventIds.length === 0 || n.sourceEventIds.some((e) => typeof e != "string" || e.length === 0) || new Set(n.sourceEventIds).size !== n.sourceEventIds.length || !h(n.sessionId, 256) || !h(n.runId, 256) || !h(n.kind, 128) || !a.has(n.operation) || !o.has(n.lifecycle) || n.visibility !== void 0 && !s.has(n.visibility) || !h(n.payloadSchemaRef, 256) || !g(n.capabilityRef, 256, !0)) return null;
163
- let r = n.operation, c = n.lifecycle;
164
- if (r === "completed" && c !== "completed" && c !== "failed") return null;
165
- let l = n.payload === void 0 ? {} : m(n.payload), u = n.nativeRef === void 0 ? {} : m(n.nativeRef);
166
- if (!l || !u) return null;
167
- let d = String(n.kind || "unknown"), f = i.has(d) ? d : "unknown";
168
- return {
169
- apiVersion: t,
170
- kindVersion: 1,
171
- itemId: n.itemId,
172
- ...n.parentItemId === void 0 ? {} : { parentItemId: n.parentItemId },
173
- sourceEventIds: [...n.sourceEventIds],
174
- sessionId: n.sessionId,
175
- runId: n.runId,
176
- kind: f,
177
- operation: r,
178
- lifecycle: c,
179
- visibility: f === "unknown" && d !== "unknown" ? "hidden" : n.visibility || "public",
180
- payloadSchemaRef: n.payloadSchemaRef,
181
- payload: f === "unknown" && d !== "unknown" ? {
182
- originalKind: d,
183
- summary: "This content type is not supported by the current renderer."
184
- } : { ...l },
185
- ...n.capabilityRef === void 0 ? {} : { capabilityRef: n.capabilityRef },
186
- nativeRef: { ...u }
187
- };
188
- }
189
- function D(e, ...t) {
190
- return e.inputs.some((e) => t.includes(e.name) && (e.mode === "native" || e.mode === "translated"));
191
- }
192
- //#endregion
193
- //#region src/core/conversation/presentation.ts
194
- var te = {
195
- user_message: "conversation.item.user_message/v1",
196
- assistant_text: "conversation.item.assistant_text/v1",
197
- reasoning: "conversation.item.reasoning/v1",
198
- tool_call: "conversation.item.tool-call/v1",
199
- approval: "conversation.item.approval/v1",
200
- artifact: "conversation.item.artifact/v1",
201
- a2ui: "conversation.item.a2ui/v1",
202
- error: "conversation.item.error/v1"
203
- };
204
- function O(e) {
205
- return e.lifecycle === "completed" || e.lifecycle === "failed";
206
- }
207
- function k(e) {
208
- let t = te[e.kind];
209
- return t === void 0 || t === e.payloadSchemaRef;
210
- }
211
- function A(e) {
212
- if (typeof e != "string" || e.length === 0) return null;
213
- try {
214
- let t = new URL(e);
215
- return t.protocol !== "http:" && t.protocol !== "https:" || t.username || t.password ? null : t.toString();
216
- } catch {
217
- return null;
218
- }
219
- }
220
- function j(e) {
221
- return {
222
- id: e.itemId,
223
- parentId: e.parentItemId || null,
224
- runId: e.runId,
225
- kind: e.kind,
226
- text: typeof e.payload.text == "string" ? e.payload.text : "",
227
- lifecycle: e.lifecycle
228
- };
229
- }
230
- function M(e) {
231
- return {
232
- id: e.itemId,
233
- name: typeof e.payload.name == "string" && e.payload.name ? e.payload.name : "Artifact",
234
- mimeType: typeof e.payload.mimeType == "string" && e.payload.mimeType ? e.payload.mimeType : "application/octet-stream",
235
- uri: A(e.payload.uri)
236
- };
237
- }
238
- function N(e, t) {
239
- let n = e.payload[t];
240
- return typeof n == "string" && n ? n : null;
241
- }
242
- function P(e) {
243
- if (e.kind === "tool_call") {
244
- let t = N(e, "callId");
245
- if (t) return `tool:${t}`;
246
- }
247
- if (e.kind === "approval") {
248
- let t = N(e, "interactionId");
249
- if (t) return `approval:${t}`;
250
- }
251
- if (e.kind === "a2ui") {
252
- let t = N(e, "surfaceId");
253
- if (t) return `a2ui:${t}`;
254
- }
255
- return `item:${e.itemId}`;
256
- }
257
- function F(e, t) {
258
- let n = O(e) && !O(t);
259
- return {
260
- ...e,
261
- ...t,
262
- itemId: e.itemId,
263
- parentItemId: e.parentItemId,
264
- sourceEventIds: [...new Set([...e.sourceEventIds, ...t.sourceEventIds])],
265
- payload: {
266
- ...e.payload,
267
- ...t.payload
268
- },
269
- nativeRef: {
270
- ...e.nativeRef,
271
- ...t.nativeRef
272
- },
273
- ...n ? {
274
- lifecycle: e.lifecycle,
275
- operation: e.operation
276
- } : {}
277
- };
278
- }
279
- function ne(e) {
280
- let t = [], n = /* @__PURE__ */ new Map();
281
- for (let r of e) {
282
- let e = P(r), i = n.get(e);
283
- if (i === void 0) {
284
- n.set(e, t.length), t.push({
285
- key: e,
286
- item: r,
287
- sourceItemIds: [r.itemId]
288
- });
289
- continue;
290
- }
291
- let a = t[i];
292
- t[i] = {
293
- key: e,
294
- item: F(a.item, r),
295
- sourceItemIds: [...new Set([...a.sourceItemIds, r.itemId])]
296
- };
297
- }
298
- return t;
299
- }
300
- function I(e, t = {}) {
301
- let n = e.items.filter((e) => e.visibility === "public" || t.includeInternal === !0 && e.visibility === "internal"), r = n.filter(k), i = n.filter((e) => !k(e)), a = new Set([
302
- "user_message",
303
- "assistant_text",
304
- "reasoning"
305
- ]), o = r.filter((e) => a.has(e.kind)).map(j), s = (e) => r.filter((t) => t.kind === e).map((e) => typeof e.payload.text == "string" ? e.payload.text : "").join(""), c = [...r.filter((e) => e.kind === "unknown"), ...i], l = r.filter((e) => e.kind === "error"), u = [...r].reverse().find((e) => (e.kind === "progress" || e.kind === "error") && O(e));
306
- return {
307
- timeline: ne(r.filter((e) => e.kind !== "progress")),
308
- output: s("assistant_text"),
309
- reasoning: s("reasoning"),
310
- textItems: o,
311
- toolItems: r.filter((e) => e.kind === "tool_call"),
312
- approvalItems: r.filter((e) => e.kind === "approval"),
313
- structuredInputItems: r.filter((e) => e.kind === "progress" && e.payloadSchemaRef === "conversation.item.structured-input/v1"),
314
- a2uiItems: r.filter((e) => e.kind === "a2ui"),
315
- artifacts: r.filter((e) => e.kind === "artifact").map(M),
316
- fallbacks: [...c.map((e) => ({
317
- id: e.itemId,
318
- title: "Unsupported content",
319
- detail: String(e.payload.summary || e.payload.originalKind || e.payloadSchemaRef),
320
- failed: e.lifecycle === "failed"
321
- })), ...l.map((e) => ({
322
- id: e.itemId,
323
- title: "Run failed",
324
- detail: String(e.payload.error || "The agent run failed."),
325
- failed: !0
326
- }))],
327
- runId: n.at(-1)?.runId || "",
328
- terminalStatus: u ? u.lifecycle === "failed" ? "failed" : "completed" : void 0
329
- };
330
- }
331
- //#endregion
332
- //#region src/core/conversation/reducer.ts
333
- function L() {
334
- return {
335
- items: [],
336
- appliedSources: []
337
- };
338
- }
339
- function R(e) {
340
- return e.lifecycle === "completed" || e.lifecycle === "failed";
341
- }
342
- function z(e, t) {
343
- let n = {
344
- ...e,
345
- ...t
346
- };
347
- typeof e.text == "string" && typeof t.text == "string" && (n.text = e.text + t.text);
348
- for (let r of ["data", "operations"]) Array.isArray(e[r]) && Array.isArray(t[r]) && (n[r] = [...e[r], ...t[r]]);
349
- return n;
350
- }
351
- function B(e, t) {
352
- let n = t.sourceEventIds.map((e) => JSON.stringify([t.itemId, e])), r = new Set(e.appliedSources);
353
- if (n.every((e) => r.has(e))) return e;
354
- n.forEach((e) => r.add(e));
355
- let i = e.items.findIndex((e) => e.itemId === t.itemId), a = i >= 0 ? e.items[i] : void 0;
356
- if (a && R(a) && !R(t)) return {
357
- ...e,
358
- appliedSources: [...r]
359
- };
360
- let o = [...e.items];
361
- if (!a) o.push(t);
362
- else {
363
- let e = [...new Set([...a.sourceEventIds, ...t.sourceEventIds])];
364
- a.kind === t.kind ? t.operation === "append" ? o[i] = {
365
- ...t,
366
- payload: z(a.payload, t.payload),
367
- sourceEventIds: e
368
- } : o[i] = {
369
- ...t,
370
- sourceEventIds: e
371
- } : o[i] = {
372
- ...t,
373
- kind: "unknown",
374
- operation: "replace",
375
- payloadSchemaRef: "conversation.item.unknown/v1",
376
- payload: { summary: "The content type changed for the same item and was safely degraded." },
377
- sourceEventIds: e
378
- };
379
- }
380
- return {
381
- items: o,
382
- appliedSources: [...r]
383
- };
384
- }
385
- var V = class {
386
- state = L();
387
- apply(e) {
388
- let t = B(this.state, e);
389
- if (t === this.state) return !1;
390
- let n = t.items !== this.state.items;
391
- return this.state = t, n;
392
- }
393
- applyAll(e) {
394
- for (let t of e) this.apply(t);
395
- }
396
- snapshot() {
397
- return {
398
- items: this.state.items.map((e) => ({
399
- ...e,
400
- sourceEventIds: [...e.sourceEventIds],
401
- payload: { ...e.payload },
402
- nativeRef: { ...e.nativeRef }
403
- })),
404
- appliedSources: [...this.state.appliedSources]
405
- };
406
- }
407
- }, H = 8;
408
- function U(e) {
409
- return typeof e == "object" && e && !Array.isArray(e) ? e : null;
410
- }
411
- function W(t) {
412
- if (t?.aborted) throw new e("conversation_aborted", "Conversation request was aborted.");
413
- }
414
- function G(e, t) {
415
- return t?.aborted === !0 || e instanceof Error && e.name === "AbortError";
416
- }
417
- function K(t) {
418
- let n = t.trim().replace(/\/+$/, "");
419
- if (!n) return "";
420
- if (!n.includes("://")) return n.startsWith("/") ? n : `/${n}`;
421
- try {
422
- let e = new URL(n);
423
- if (e.protocol !== "http:" && e.protocol !== "https:" || e.username || e.password) throw Error("unsafe URL");
424
- return e.toString().replace(/\/$/, "");
425
- } catch (t) {
426
- throw new e("conversation_contract_mismatch", "Conversation base URL must be an HTTP(S) URL without embedded credentials.", { cause: t });
427
- }
428
- }
429
- function q(e) {
430
- return Math.min(200 * 2 ** Math.max(0, e - 1), 2e3);
431
- }
432
- function J(e) {
433
- return new Promise((t) => {
434
- setTimeout(t, e);
435
- });
436
- }
437
- async function Y(t, n, r) {
438
- if (W(r), !r) {
439
- await t(n);
440
- return;
441
- }
442
- await new Promise((i, a) => {
443
- let o = () => a(new e("conversation_aborted", "Conversation request was aborted."));
444
- r.addEventListener("abort", o, { once: !0 }), t(n).then(i, a).finally(() => {
445
- r.removeEventListener("abort", o);
446
- });
447
- });
448
- }
449
- function X(e, t, n) {
450
- let r = e.snapshot();
451
- return {
452
- cursor: t,
453
- runId: n,
454
- state: r,
455
- presentation: I(r)
456
- };
457
- }
458
- function Z(t, n) {
459
- let r, i = [];
460
- for (let n of t.split(/\r?\n/)) {
461
- let t = n.endsWith("\r") ? n.slice(0, -1) : n;
462
- if (!t || t.startsWith(":")) continue;
463
- let a = t.indexOf(":"), o = a < 0 ? t : t.slice(0, a), s = a < 0 ? "" : t.slice(a + 1), c = s.startsWith(" ") ? s.slice(1) : s;
464
- if (o === "id") {
465
- if (!/^\d+$/.test(c) || !Number.isSafeInteger(Number(c))) throw new e("conversation_stream_error", "Conversation stream contains an invalid replay cursor.");
466
- r = Number(c);
467
- } else o === "data" && i.push(c);
468
- }
469
- if (i.length === 0) return;
470
- let a = i.join("\n");
471
- if (!a || a === "[DONE]") return;
472
- let o;
473
- try {
474
- o = JSON.parse(a);
475
- } catch (t) {
476
- throw new e("conversation_contract_mismatch", "Conversation stream contains invalid JSON.", { cause: t });
477
- }
478
- let s = U(o);
479
- if (!s || s.conversationItem === void 0) {
480
- r !== void 0 && (n.cursor = Math.max(n.cursor, r));
481
- return;
482
- }
483
- if (r === void 0) throw new e("conversation_stream_error", "Canonical conversation items require an SSE replay cursor.");
484
- let c = E(s.conversationItem);
485
- if (!c) throw new e("conversation_contract_mismatch", "Conversation stream item does not match conversation.ksadk.io/v1.");
486
- if (n.runId && n.runId !== c.runId) throw new e("conversation_contract_mismatch", "Conversation stream changed canonical run identity.", {
487
- runId: n.runId,
488
- cursor: n.cursor
489
- });
490
- n.runId = c.runId;
491
- let l = n.reducer.apply(c);
492
- n.cursor = Math.max(n.cursor, r), l && n.options.onItem?.(c), n.options.onUpdate?.(X(n.reducer, n.cursor, n.runId));
493
- }
494
- async function Q(t, n) {
495
- if (!t.body) throw new e("conversation_stream_error", "Conversation response has no event stream body.");
496
- let r = t.body.getReader(), i = new TextDecoder(), a = "";
497
- try {
498
- for (;;) {
499
- W(n.options.signal);
500
- let { value: e, done: t } = await r.read();
501
- if (t) break;
502
- a += i.decode(e, { stream: !0 });
503
- let o = /\r?\n\r?\n/.exec(a);
504
- for (; o?.index !== void 0;) {
505
- let e = o.index, t = o[0].length;
506
- Z(a.slice(0, e), n), a = a.slice(e + t), o = /\r?\n\r?\n/.exec(a);
507
- }
508
- }
509
- a += i.decode(), a.trim() && Z(a, n);
510
- } catch (t) {
511
- throw t instanceof e ? t : (G(t, n.options.signal) && W(n.options.signal), new e("conversation_stream_error", "Conversation event stream was interrupted.", {
512
- cause: t,
513
- runId: n.runId || void 0,
514
- cursor: n.cursor
515
- }));
516
- } finally {
517
- r.releaseLock();
518
- }
519
- }
520
- function $(e) {
521
- return e.state.items.some((e) => (e.kind === "progress" || e.kind === "error") && (e.lifecycle === "completed" || e.lifecycle === "failed"));
522
- }
523
- var re = class {
524
- fetcher;
525
- baseUrl;
526
- maxReconnects;
527
- sleep;
528
- retryDelayMs;
529
- constructor(t = {}) {
530
- if (!Number.isInteger(t.maxReconnects ?? H) || (t.maxReconnects ?? H) < 0 || (t.maxReconnects ?? H) > 32) throw new e("conversation_contract_mismatch", "Conversation reconnect limit must be an integer from 0 to 32.");
531
- this.fetcher = t.fetch, this.baseUrl = K(t.baseUrl || ""), this.maxReconnects = t.maxReconnects ?? H, this.sleep = t.sleep || J, this.retryDelayMs = t.retryDelayMs || q;
532
- }
533
- fetch() {
534
- if (this.fetcher) return this.fetcher;
535
- if (typeof globalThis.fetch == "function") return globalThis.fetch.bind(globalThis);
536
- throw new e("conversation_http_error", "No fetch implementation is available for the conversation client.");
537
- }
538
- url(e) {
539
- return `${this.baseUrl}${e}`;
540
- }
541
- async request(t, n, r, i = "conversation_stream_error") {
542
- W(r);
543
- try {
544
- return await this.fetch()(t, n);
545
- } catch (t) {
546
- throw t instanceof e ? t : (G(t, r) && W(r), new e(i, "Conversation network request failed.", { cause: t }));
547
- }
548
- }
549
- assertOk(t) {
550
- if (!t.ok) throw new e("conversation_http_error", `Conversation endpoint returned HTTP ${t.status}.`, { status: t.status });
551
- }
552
- async getSurface(t, n, r = {}) {
553
- if (!t || !n) throw new e("conversation_contract_mismatch", "Agent and session identities are required to get a conversation surface.");
554
- let i = r.signal ? { signal: r.signal } : void 0, a = await this.request(this.url(`/api/v1/agents/${encodeURIComponent(t)}/conversation-surface?sessionId=${encodeURIComponent(n)}`), i, r.signal, "conversation_http_error");
555
- this.assertOk(a);
556
- let o;
557
- try {
558
- o = await a.json();
559
- } catch (t) {
560
- throw new e("conversation_contract_mismatch", "Conversation surface response is not valid JSON.", { cause: t });
561
- }
562
- let s = U(o), c = T(s?.surface);
563
- if (!s || typeof s.buildId != "string" || !s.buildId || !c) throw new e("conversation_contract_mismatch", "Conversation surface response does not match conversation.ksadk.io/v1.");
564
- return {
565
- buildId: s.buildId,
566
- surface: c
567
- };
568
- }
569
- async streamTurn(t) {
570
- W(t.signal), S(t.bootstrap.surface, t.input);
571
- let n = {
572
- cursor: 0,
573
- runId: "",
574
- reducer: new V(),
575
- options: t
576
- }, r = {
577
- method: "POST",
578
- headers: {
579
- "Content-Type": "application/json",
580
- "Idempotency-Key": t.input.idempotencyKey
581
- },
582
- body: JSON.stringify({ input: t.input }),
583
- ...t.signal ? { signal: t.signal } : {}
584
- }, i = await this.request(this.url(`/api/v1/builds/${encodeURIComponent(t.bootstrap.buildId)}/conversation:stream`), r, t.signal);
585
- this.assertOk(i);
586
- try {
587
- await Q(i, n);
588
- } catch (t) {
589
- if (!(t instanceof e) || t.code !== "conversation_stream_error" || !n.runId) throw t;
590
- }
591
- let a = X(n.reducer, n.cursor, n.runId);
592
- if ($(a)) return a;
593
- if (!n.runId) throw new e("conversation_run_identity_missing", "The stream ended before a canonical item supplied its run identity.", { cursor: n.cursor });
594
- for (let r = 1; r <= this.maxReconnects; r += 1) {
595
- await Y(this.sleep, this.retryDelayMs(r), t.signal), W(t.signal);
596
- let i;
597
- try {
598
- i = await this.request(this.url(`/api/v1/runs/${encodeURIComponent(n.runId)}/events?after=${n.cursor}`), {
599
- method: "GET",
600
- headers: { "Last-Event-ID": String(n.cursor) },
601
- ...t.signal ? { signal: t.signal } : {}
602
- }, t.signal), this.assertOk(i), await Q(i, n);
603
- } catch (t) {
604
- if (t instanceof e && t.code === "conversation_aborted" || t instanceof e && t.code === "conversation_contract_mismatch" || t instanceof e && t.code === "conversation_http_error" && t.status !== void 0 && t.status < 500) throw t;
605
- continue;
606
- }
607
- if (a = X(n.reducer, n.cursor, n.runId), $(a)) return a;
608
- }
609
- throw new e("conversation_reconnect_exhausted", "Conversation replay stopped after the configured reconnect limit.", {
610
- runId: n.runId,
611
- cursor: n.cursor
612
- });
613
- }
614
- };
615
- //#endregion
616
- export { I as a, E as c, D as d, e as f, B as i, T as l, V as n, b as o, L as r, y as s, re as t, S as u };