@kingsoftcloud/ksadk-web 0.3.2 → 0.3.3

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 (169) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +77 -4
  3. package/RELEASE_PROVENANCE.json +2 -2
  4. package/dist-ksadk/assets/{ArtifactsPanel-DSU1sWD_.js → ArtifactsPanel-CytJCLMc.js} +1 -1
  5. package/dist-ksadk/assets/{CodeBlock-DOH6MVcn.js → CodeBlock-D6tEbvd9.js} +1 -1
  6. package/dist-ksadk/assets/{MathMessageMarkdown-BL8my1R2.js → MathMessageMarkdown-BBnihmbC.js} +1 -1
  7. package/dist-ksadk/assets/{MermaidBlock-Dz4IP-Tx.js → MermaidBlock-CI9NjqQx.js} +6 -6
  8. package/dist-ksadk/assets/{NativeTerminalPanel-DUrK0JpZ.js → NativeTerminalPanel-Czpx2MSS.js} +1 -1
  9. package/dist-ksadk/assets/{abnfDiagram-VCTEODGH-g20pFzNV.js → abnfDiagram-VCTEODGH-CNsXewmF.js} +1 -1
  10. package/dist-ksadk/assets/{arc-C4FzinUA.js → arc-x-74isv6.js} +1 -1
  11. package/dist-ksadk/assets/architecture-7GRP2DOG-C3S9W0aD.js +1 -0
  12. package/dist-ksadk/assets/{architectureDiagram-5GKGNRK7-DpIqL5h4.js → architectureDiagram-5GKGNRK7-tZ3w1B6m.js} +1 -1
  13. package/dist-ksadk/assets/{blockDiagram-NRAW4CY4-BjkljTNz.js → blockDiagram-NRAW4CY4-BEhGFh0b.js} +1 -1
  14. package/dist-ksadk/assets/{c4Diagram-UCG6FXSJ-Dk_ieq2X.js → c4Diagram-UCG6FXSJ-zrSgZM44.js} +1 -1
  15. package/dist-ksadk/assets/channel-CdffTTpb.js +1 -0
  16. package/dist-ksadk/assets/chunk-2Q5K7J3B-B6k89qGR.js +1 -0
  17. package/dist-ksadk/assets/{chunk-5VM5RSS4-BVHAchFb.js → chunk-5VM5RSS4-VZAcej21.js} +1 -1
  18. package/dist-ksadk/assets/{chunk-F27PBJKO-C-ipQzuS.js → chunk-F27PBJKO-DNUQP5bs.js} +1 -1
  19. package/dist-ksadk/assets/{chunk-G27WJ6UU-C2EyJbIK.js → chunk-G27WJ6UU-BVuLv5Os.js} +1 -1
  20. package/dist-ksadk/assets/{chunk-JWPE2WC7-vYvVJb_M.js → chunk-JWPE2WC7-CEttzwEN.js} +1 -1
  21. package/dist-ksadk/assets/{chunk-LCL6LL3I-BcI6ysPT.js → chunk-LCL6LL3I-BT3bzrVf.js} +1 -1
  22. package/dist-ksadk/assets/{chunk-POPQ4Y6H-C030x_Z1.js → chunk-POPQ4Y6H-BvutC1JH.js} +1 -1
  23. package/dist-ksadk/assets/{chunk-RHFEMEQ7-yyGpsz4n.js → chunk-RHFEMEQ7-BIXm03MG.js} +1 -1
  24. package/dist-ksadk/assets/{chunk-SVP7TREG-BLTlmMU7.js → chunk-SVP7TREG--LDO57tP.js} +1 -1
  25. package/dist-ksadk/assets/{chunk-XXDRQBXY-C_32ArgP.js → chunk-XXDRQBXY-WtVtVhpq.js} +1 -1
  26. package/dist-ksadk/assets/classDiagram-DTDB5LWJ-C0BU8Yr9.js +1 -0
  27. package/dist-ksadk/assets/classDiagram-v2-JRS7N3AN-C0BU8Yr9.js +1 -0
  28. package/dist-ksadk/assets/{cose-bilkent-JH36ORCC-9YQYwdl0.js → cose-bilkent-JH36ORCC-CnqJMsPI.js} +1 -1
  29. package/dist-ksadk/assets/cynefin-OW5HDTMX-BckONr__.js +1 -0
  30. package/dist-ksadk/assets/{cynefinDiagram-5FMLGOSQ-ErLF5N13.js → cynefinDiagram-5FMLGOSQ-Ci9qjtA_.js} +1 -1
  31. package/dist-ksadk/assets/{dagre-3AP2YEHR-DFiQF-6f.js → dagre-3AP2YEHR-Ll3LkcYP.js} +1 -1
  32. package/dist-ksadk/assets/{dagre-BuhGnRI1.js → dagre-CKrj2THw.js} +1 -1
  33. package/dist-ksadk/assets/{diagram-S7CK7UJ4-Bt1v8-GC.js → diagram-S7CK7UJ4-BQ1slPEx.js} +1 -1
  34. package/dist-ksadk/assets/{diagram-UQ7AKVKN-DSCxJdBK.js → diagram-UQ7AKVKN-BXz7DvIg.js} +1 -1
  35. package/dist-ksadk/assets/{diagram-VSXAHHWV-DHfYwp_9.js → diagram-VSXAHHWV-DOno97OL.js} +1 -1
  36. package/dist-ksadk/assets/{diagram-VX7I27RA-DdzD-4Le.js → diagram-VX7I27RA-CU2kHvv3.js} +1 -1
  37. package/dist-ksadk/assets/{diagram-Z3DM3KII-Du-nAJ9F.js → diagram-Z3DM3KII-mhpvOavV.js} +1 -1
  38. package/dist-ksadk/assets/{dist-dydu68Fl.js → dist-2cbEIexW.js} +1 -1
  39. package/dist-ksadk/assets/{dist-ClxGviKw.js → dist-4j-rswH6.js} +1 -1
  40. package/dist-ksadk/assets/{dist-B7seoj3d.js → dist-B-VEMnGR.js} +1 -1
  41. package/dist-ksadk/assets/{dist-BjU6y-A2.js → dist-B6XMlZpc.js} +1 -1
  42. package/dist-ksadk/assets/{dist-BytlxIDT.js → dist-BQCggVji.js} +1 -1
  43. package/dist-ksadk/assets/{dist-W-TIVntx.js → dist-BZiMQVbN.js} +1 -1
  44. package/dist-ksadk/assets/{dist-CXYYBw3_.js → dist-BvMDy0Xp.js} +1 -1
  45. package/dist-ksadk/assets/{dist-CSh_DE14.js → dist-BxjBfG2w.js} +1 -1
  46. package/dist-ksadk/assets/{dist-CttYUqzS.js → dist-Byl0QKIY.js} +1 -1
  47. package/dist-ksadk/assets/{dist-DnfXs8Vn.js → dist-C-Q0Ulfg.js} +1 -1
  48. package/dist-ksadk/assets/{dist-dDdADKFA.js → dist-C-V2Wj4x.js} +1 -1
  49. package/dist-ksadk/assets/{dist-DUX-id_F.js → dist-CPZHorum.js} +1 -1
  50. package/dist-ksadk/assets/{dist-BE7bu-DL.js → dist-CTeZLI0m.js} +1 -1
  51. package/dist-ksadk/assets/{dist-ngtN0DJB.js → dist-CUFAKgYs.js} +1 -1
  52. package/dist-ksadk/assets/{dist-BX8z72IC.js → dist-CaTDm1g0.js} +1 -1
  53. package/dist-ksadk/assets/{dist-DmldrHd_.js → dist-CoCI5ZIy.js} +1 -1
  54. package/dist-ksadk/assets/{dist-Dq9gLD7L.js → dist-DGFsOxe9.js} +1 -1
  55. package/dist-ksadk/assets/{dist-C_wsv-Qd.js → dist-DeO3Qj-D.js} +1 -1
  56. package/dist-ksadk/assets/{dist-DNp6rLRA.js → dist-DgSf2VGQ.js} +1 -1
  57. package/dist-ksadk/assets/{dist-Bf2M8m3N.js → dist-DwwtGqH9.js} +1 -1
  58. package/dist-ksadk/assets/{dist-BVDffZ0U.js → dist-hRISJdRx.js} +1 -1
  59. package/dist-ksadk/assets/{dist-8hqcx0sU.js → dist-oPMjOYRU.js} +1 -1
  60. package/dist-ksadk/assets/{ebnfDiagram-PWID7BFC-Da9C9NO1.js → ebnfDiagram-PWID7BFC-DAH8tjOy.js} +1 -1
  61. package/dist-ksadk/assets/{erDiagram-SSCWMZ5O-EAGqqR79.js → erDiagram-SSCWMZ5O-JvDkJGJ3.js} +1 -1
  62. package/dist-ksadk/assets/eventmodeling-NTZA5JFV-vjy4Z61x.js +1 -0
  63. package/dist-ksadk/assets/flowDiagram-A5DVABFB-CvJ64Qzs.js +1 -0
  64. package/dist-ksadk/assets/{ganttDiagram-EL5Y4UJY-DqJsKb59.js → ganttDiagram-EL5Y4UJY-B-SEC706.js} +1 -1
  65. package/dist-ksadk/assets/gitGraph-4MIJSDKK-CX3KwgqY.js +1 -0
  66. package/dist-ksadk/assets/{gitGraphDiagram-WWUBYQGX-B6g4dtDi.js → gitGraphDiagram-WWUBYQGX-D7OJf_No.js} +1 -1
  67. package/dist-ksadk/assets/{index-8ipRcQ-M.js → index-BkDx9KsG.js} +65 -64
  68. package/dist-ksadk/assets/{index-ByFCqjlh.css → index-DW7rZ4ml.css} +1 -1
  69. package/dist-ksadk/assets/info-A6RAGUB7-CYHIOuL5.js +1 -0
  70. package/dist-ksadk/assets/{infoDiagram-RXCK75RN-Djm_nbd5.js → infoDiagram-RXCK75RN-CTIHOSud.js} +1 -1
  71. package/dist-ksadk/assets/{ishikawaDiagram-5VMMS53U-DWya9SG2.js → ishikawaDiagram-5VMMS53U-HMO7FchJ.js} +1 -1
  72. package/dist-ksadk/assets/{journeyDiagram-EYS64GPL-DutxhSNI.js → journeyDiagram-EYS64GPL-DeFbDr5t.js} +1 -1
  73. package/dist-ksadk/assets/{kanban-definition-3QL26DDD-DJdOF8Fm.js → kanban-definition-3QL26DDD-D3OeNqXY.js} +1 -1
  74. package/dist-ksadk/assets/{katex-vFWytM5c.js → katex-DCJHF0vD.js} +1 -1
  75. package/dist-ksadk/assets/{linear-BHjG8b-J.js → linear-D3-vxS4W.js} +1 -1
  76. package/dist-ksadk/assets/{mermaid-parser.core-KGSy4jWT.js → mermaid-parser.core-C-Sc5_7E.js} +2 -2
  77. package/dist-ksadk/assets/{mindmap-definition-FBJOCRG2-9-HC88D4.js → mindmap-definition-FBJOCRG2-D-XtspHN.js} +1 -1
  78. package/dist-ksadk/assets/packet-AYTQ26CC-Ctg2wH4o.js +1 -0
  79. package/dist-ksadk/assets/{pegDiagram-XKGWAZYB-DrEZd4fD.js → pegDiagram-XKGWAZYB-BYbAq9Nb.js} +1 -1
  80. package/dist-ksadk/assets/pie-WAS4IAKB-CU6GnSzI.js +1 -0
  81. package/dist-ksadk/assets/{pieDiagram-E7YTZNPT-DpjqOFFp.js → pieDiagram-E7YTZNPT-DQ2yX4VQ.js} +1 -1
  82. package/dist-ksadk/assets/{quadrantDiagram-AXDQQJYC-BiNhgOXX.js → quadrantDiagram-AXDQQJYC-rvRPUN0j.js} +1 -1
  83. package/dist-ksadk/assets/radar-RG4KPBEZ-Bhe0us4A.js +1 -0
  84. package/dist-ksadk/assets/railroad-74A4TZTK-DEgiNGfx.js +1 -0
  85. package/dist-ksadk/assets/railroad-abnf-HS5TGJTU-GK7ct0QX.js +1 -0
  86. package/dist-ksadk/assets/railroad-ebnf-LZEXJU2U-BzlcTUmk.js +1 -0
  87. package/dist-ksadk/assets/railroad-peg-WCYAUIDC-7ESM96BW.js +1 -0
  88. package/dist-ksadk/assets/{railroadDiagram-O6MQD6OU-_Y3Ojg6G.js → railroadDiagram-O6MQD6OU-2OVn6qwA.js} +1 -1
  89. package/dist-ksadk/assets/{requirementDiagram-EFPCY7ZU-DeCFdg9K.js → requirementDiagram-EFPCY7ZU-ChWVLAKz.js} +1 -1
  90. package/dist-ksadk/assets/{sankeyDiagram-P5KCCOFB-CPH75rhw.js → sankeyDiagram-P5KCCOFB-Cb5gXi_j.js} +1 -1
  91. package/dist-ksadk/assets/{sequenceDiagram-WJ2MYXX4-OEpQQdr4.js → sequenceDiagram-WJ2MYXX4-D7g_-PUM.js} +1 -1
  92. package/dist-ksadk/assets/{sizeCapture-X5ZJPWSS-heUErzhI.js → sizeCapture-X5ZJPWSS-D__whCj3.js} +1 -1
  93. package/dist-ksadk/assets/{stateDiagram-HBIQ2CUA-DvA3jSMB.js → stateDiagram-HBIQ2CUA-CpKIc0dl.js} +1 -1
  94. package/dist-ksadk/assets/stateDiagram-v2-4QOOHH4V-D7ulg6TV.js +1 -0
  95. package/dist-ksadk/assets/{swimlanes-XN3QIQJK-CR-dfN_t.js → swimlanes-XN3QIQJK-CFJohC2b.js} +1 -1
  96. package/dist-ksadk/assets/swimlanesDiagram-VK2B7HYN-A-oZaquE.js +8 -0
  97. package/dist-ksadk/assets/{timeline-definition-24CTP7MA-DAVJf1TX.js → timeline-definition-24CTP7MA-Dg4AY0KC.js} +1 -1
  98. package/dist-ksadk/assets/treeView-Q6P3EWNA-D6u1mSx1.js +1 -0
  99. package/dist-ksadk/assets/treemap-WGGIJYW6-CM87Vav0.js +1 -0
  100. package/dist-ksadk/assets/{vennDiagram-4TSXK5OY-DwM8eDkh.js → vennDiagram-4TSXK5OY-A6cRoCBU.js} +1 -1
  101. package/dist-ksadk/assets/wardley-WFR3VGLG-BPoQUTzr.js +1 -0
  102. package/dist-ksadk/assets/{wardleyDiagram-VM6X3IG4-DZL-Zz2t.js → wardleyDiagram-VM6X3IG4-BVD1hMYl.js} +1 -1
  103. package/dist-ksadk/assets/{xychartDiagram-S5SC5T6Z-Dy6Yh_hu.js → xychartDiagram-S5SC5T6Z-BlBLXETg.js} +1 -1
  104. package/dist-ksadk/index.html +2 -2
  105. package/dist-lib/{ArtifactsPanel-DDCKcvaL.js → ArtifactsPanel-D2EtX4X_.js} +1 -1
  106. package/dist-lib/{CodeBlock-BS9DcS5a.js → CodeBlock-CPaeJbtf.js} +1 -1
  107. package/dist-lib/{MathMessageMarkdown-CpCcJFjZ.js → MathMessageMarkdown-Bpp4hI6Q.js} +2 -2
  108. package/dist-lib/{NativeTerminalPanel-CDqCdIly.js → NativeTerminalPanel-CJXzKV0z.js} +1 -1
  109. package/dist-lib/{WorkspacePanelContainer-DzbAkIfx.js → WorkspacePanelContainer-DbD-6xqx.js} +8 -7
  110. package/dist-lib/client-1WQCunUo.js +616 -0
  111. package/dist-lib/components/chat/A2UIActivityMessage.d.ts.map +1 -1
  112. package/dist-lib/components.js +2 -2
  113. package/dist-lib/conversation.js +28 -0
  114. package/dist-lib/core/conversation/client.d.ts +26 -0
  115. package/dist-lib/core/conversation/client.d.ts.map +1 -0
  116. package/dist-lib/core/conversation/contracts.d.ts +20 -0
  117. package/dist-lib/core/conversation/contracts.d.ts.map +1 -0
  118. package/dist-lib/core/conversation/errors.d.ts +12 -0
  119. package/dist-lib/core/conversation/errors.d.ts.map +1 -0
  120. package/dist-lib/core/conversation/hosted.d.ts +23 -0
  121. package/dist-lib/core/conversation/hosted.d.ts.map +1 -0
  122. package/dist-lib/core/conversation/index.d.ts +8 -0
  123. package/dist-lib/core/conversation/index.d.ts.map +1 -0
  124. package/dist-lib/core/conversation/presentation.d.ts +8 -0
  125. package/dist-lib/core/conversation/presentation.d.ts.map +1 -0
  126. package/dist-lib/core/conversation/reducer.d.ts +19 -0
  127. package/dist-lib/core/conversation/reducer.d.ts.map +1 -0
  128. package/dist-lib/core/conversation/renderer-registry.d.ts +20 -0
  129. package/dist-lib/core/conversation/renderer-registry.d.ts.map +1 -0
  130. package/dist-lib/core/conversation/types.d.ts +176 -0
  131. package/dist-lib/core/conversation/types.d.ts.map +1 -0
  132. package/dist-lib/core/run/dispatcher.d.ts.map +1 -1
  133. package/dist-lib/core/run/engine.d.ts +3 -0
  134. package/dist-lib/core/run/engine.d.ts.map +1 -1
  135. package/dist-lib/core/run/types.d.ts +7 -0
  136. package/dist-lib/core/run/types.d.ts.map +1 -1
  137. package/dist-lib/hooks/useRunAgent.d.ts.map +1 -1
  138. package/dist-lib/public/conversation.d.ts +10 -0
  139. package/dist-lib/public/conversation.d.ts.map +1 -0
  140. package/dist-lib/public/runtime.d.ts +2 -0
  141. package/dist-lib/public/runtime.d.ts.map +1 -1
  142. package/dist-lib/public/types.d.ts +1 -0
  143. package/dist-lib/public/types.d.ts.map +1 -1
  144. package/dist-lib/runtime.js +1467 -1128
  145. package/dist-lib/styles.css +1 -1
  146. package/package.json +11 -2
  147. package/schemas/release-provenance.schema.json +34 -0
  148. package/dist-ksadk/assets/architecture-7GRP2DOG-DjKratdf.js +0 -1
  149. package/dist-ksadk/assets/channel-4cQHKtx1.js +0 -1
  150. package/dist-ksadk/assets/chunk-2Q5K7J3B-DmgWkESh.js +0 -1
  151. package/dist-ksadk/assets/classDiagram-DTDB5LWJ-DLFd9Xi0.js +0 -1
  152. package/dist-ksadk/assets/classDiagram-v2-JRS7N3AN-DLFd9Xi0.js +0 -1
  153. package/dist-ksadk/assets/cynefin-OW5HDTMX-DjEM48Qp.js +0 -1
  154. package/dist-ksadk/assets/eventmodeling-NTZA5JFV-CMgMaJrC.js +0 -1
  155. package/dist-ksadk/assets/flowDiagram-A5DVABFB-BBKL0x3P.js +0 -1
  156. package/dist-ksadk/assets/gitGraph-4MIJSDKK-Dw63mrhw.js +0 -1
  157. package/dist-ksadk/assets/info-A6RAGUB7-B6iAblII.js +0 -1
  158. package/dist-ksadk/assets/packet-AYTQ26CC-BOYAipuq.js +0 -1
  159. package/dist-ksadk/assets/pie-WAS4IAKB-Ctq0Kbku.js +0 -1
  160. package/dist-ksadk/assets/radar-RG4KPBEZ-DN0-ul_0.js +0 -1
  161. package/dist-ksadk/assets/railroad-74A4TZTK-C6cC_to0.js +0 -1
  162. package/dist-ksadk/assets/railroad-abnf-HS5TGJTU-BimjIuRc.js +0 -1
  163. package/dist-ksadk/assets/railroad-ebnf-LZEXJU2U-CvY65ABq.js +0 -1
  164. package/dist-ksadk/assets/railroad-peg-WCYAUIDC-D72Iq_Tv.js +0 -1
  165. package/dist-ksadk/assets/stateDiagram-v2-4QOOHH4V-BgQY03nz.js +0 -1
  166. package/dist-ksadk/assets/swimlanesDiagram-VK2B7HYN-DLVw3q5Q.js +0 -8
  167. package/dist-ksadk/assets/treeView-Q6P3EWNA-BMpO0wsB.js +0 -1
  168. package/dist-ksadk/assets/treemap-WGGIJYW6-Et0aqzU3.js +0 -1
  169. package/dist-ksadk/assets/wardley-WFR3VGLG-CbY0mhpl.js +0 -1
@@ -0,0 +1,616 @@
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 };
@@ -1 +1 @@
1
- {"version":3,"file":"A2UIActivityMessage.d.ts","sourceRoot":"","sources":["../../../src/components/chat/A2UIActivityMessage.tsx"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,sBAAsB,EAC5B,MAAM,2BAA2B,CAAC;AA0BnC,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;CACtD,2CAQA"}
1
+ {"version":3,"file":"A2UIActivityMessage.d.ts","sourceRoot":"","sources":["../../../src/components/chat/A2UIActivityMessage.tsx"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,sBAAsB,EAC5B,MAAM,2BAA2B,CAAC;AA0BnC,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;CACtD,2CAsBA"}
@@ -1,5 +1,5 @@
1
- import { t as e } from "./NativeTerminalPanel-CDqCdIly.js";
2
- import { M as t, P as n, c as r, l as i, o as a, s as o, t as s, z as c } from "./WorkspacePanelContainer-DzbAkIfx.js";
1
+ import { t as e } from "./NativeTerminalPanel-CJXzKV0z.js";
2
+ import { M as t, P as n, c as r, l as i, o as a, s as o, t as s, z as c } from "./WorkspacePanelContainer-DbD-6xqx.js";
3
3
  import { X as l } from "lucide-react";
4
4
  import { jsx as u, jsxs as d } from "react/jsx-runtime";
5
5
  import f, { useEffect as p } from "react";
@@ -0,0 +1,28 @@
1
+ import { a as e, c as t, d as n, f as r, i, l as a, n as o, o as s, r as c, s as l, t as u, u as d } from "./client-1WQCunUo.js";
2
+ //#region src/core/conversation/renderer-registry.ts
3
+ function f(e, t) {
4
+ if (!e.trim()) throw Error(`trusted conversation renderer ${t} must not be empty`);
5
+ }
6
+ function p(e) {
7
+ let t = /* @__PURE__ */ new Map();
8
+ for (let n of e) {
9
+ if (f(n.id, "id"), f(n.schemaRef, "schemaRef"), !n.kinds.length) throw Error("trusted conversation renderer kinds must not be empty");
10
+ if (t.has(n.schemaRef)) throw Error(`duplicate trusted conversation renderer schemaRef: ${n.schemaRef}`);
11
+ t.set(n.schemaRef, Object.freeze({
12
+ ...n,
13
+ kinds: Object.freeze([...n.kinds])
14
+ }));
15
+ }
16
+ let n = Object.freeze([...t.values()]);
17
+ return Object.freeze({
18
+ resolve(e) {
19
+ let n = t.get(e.payloadSchemaRef);
20
+ return n?.kinds.includes(e.kind) ? n : void 0;
21
+ },
22
+ entries() {
23
+ return n;
24
+ }
25
+ });
26
+ }
27
+ //#endregion
28
+ export { r as ConversationClientError, o as ConversationItemReducer, u as HttpConversationClient, s as buildConversationInput, c as createConversationItemState, p as createTrustedRendererCatalog, l as decodeConversationInput, t as decodeConversationItem, a as decodeConversationSurface, d as preflightConversationInput, e as projectConversationItems, i as reduceConversationItem, n as surfacePermitsInput };
@@ -0,0 +1,26 @@
1
+ import type { ConversationClientOptions, ConversationItem, ConversationStreamResult, ConversationStreamTurnOptions, ConversationSurfaceBootstrap } from './types.js';
2
+ /**
3
+ * Minimal HTTP/SSE reference client for ConversationSurface/Input/Item v1.
4
+ *
5
+ * It never accepts auth headers or credentials. Applications are expected to
6
+ * inject a same-origin fetch implementation or an already-authenticated server
7
+ * transport outside this protocol-neutral package.
8
+ */
9
+ export declare class HttpConversationClient {
10
+ private readonly fetcher?;
11
+ private readonly baseUrl;
12
+ private readonly maxReconnects;
13
+ private readonly sleep;
14
+ private readonly retryDelayMs;
15
+ constructor(options?: ConversationClientOptions);
16
+ private fetch;
17
+ private url;
18
+ private request;
19
+ private assertOk;
20
+ getSurface(agentId: string, sessionId: string, options?: {
21
+ signal?: AbortSignal;
22
+ }): Promise<ConversationSurfaceBootstrap>;
23
+ streamTurn(options: ConversationStreamTurnOptions): Promise<ConversationStreamResult>;
24
+ }
25
+ export type { ConversationItem };
26
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/core/conversation/client.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,yBAAyB,EAEzB,gBAAgB,EAChB,wBAAwB,EACxB,6BAA6B,EAC7B,4BAA4B,EAC7B,MAAM,YAAY,CAAC;AA4NpB;;;;;;GAMG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAoB;IAE7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IAEvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+C;IAErE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8B;gBAE/C,OAAO,GAAE,yBAA8B;IAgBnD,OAAO,CAAC,KAAK;IAWb,OAAO,CAAC,GAAG;YAIG,OAAO;IAoBrB,OAAO,CAAC,QAAQ;IAUV,UAAU,CACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAO,GACrC,OAAO,CAAC,4BAA4B,CAAC;IAkClC,UAAU,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAsF5F;AAED,YAAY,EAAE,gBAAgB,EAAE,CAAC"}