@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.
- package/CHANGELOG.md +38 -0
- package/README.md +77 -4
- package/RELEASE_PROVENANCE.json +2 -2
- package/dist-ksadk/assets/{ArtifactsPanel-DSU1sWD_.js → ArtifactsPanel-CytJCLMc.js} +1 -1
- package/dist-ksadk/assets/{CodeBlock-DOH6MVcn.js → CodeBlock-D6tEbvd9.js} +1 -1
- package/dist-ksadk/assets/{MathMessageMarkdown-BL8my1R2.js → MathMessageMarkdown-BBnihmbC.js} +1 -1
- package/dist-ksadk/assets/{MermaidBlock-Dz4IP-Tx.js → MermaidBlock-CI9NjqQx.js} +6 -6
- package/dist-ksadk/assets/{NativeTerminalPanel-DUrK0JpZ.js → NativeTerminalPanel-Czpx2MSS.js} +1 -1
- package/dist-ksadk/assets/{abnfDiagram-VCTEODGH-g20pFzNV.js → abnfDiagram-VCTEODGH-CNsXewmF.js} +1 -1
- package/dist-ksadk/assets/{arc-C4FzinUA.js → arc-x-74isv6.js} +1 -1
- package/dist-ksadk/assets/architecture-7GRP2DOG-C3S9W0aD.js +1 -0
- package/dist-ksadk/assets/{architectureDiagram-5GKGNRK7-DpIqL5h4.js → architectureDiagram-5GKGNRK7-tZ3w1B6m.js} +1 -1
- package/dist-ksadk/assets/{blockDiagram-NRAW4CY4-BjkljTNz.js → blockDiagram-NRAW4CY4-BEhGFh0b.js} +1 -1
- package/dist-ksadk/assets/{c4Diagram-UCG6FXSJ-Dk_ieq2X.js → c4Diagram-UCG6FXSJ-zrSgZM44.js} +1 -1
- package/dist-ksadk/assets/channel-CdffTTpb.js +1 -0
- package/dist-ksadk/assets/chunk-2Q5K7J3B-B6k89qGR.js +1 -0
- package/dist-ksadk/assets/{chunk-5VM5RSS4-BVHAchFb.js → chunk-5VM5RSS4-VZAcej21.js} +1 -1
- package/dist-ksadk/assets/{chunk-F27PBJKO-C-ipQzuS.js → chunk-F27PBJKO-DNUQP5bs.js} +1 -1
- package/dist-ksadk/assets/{chunk-G27WJ6UU-C2EyJbIK.js → chunk-G27WJ6UU-BVuLv5Os.js} +1 -1
- package/dist-ksadk/assets/{chunk-JWPE2WC7-vYvVJb_M.js → chunk-JWPE2WC7-CEttzwEN.js} +1 -1
- package/dist-ksadk/assets/{chunk-LCL6LL3I-BcI6ysPT.js → chunk-LCL6LL3I-BT3bzrVf.js} +1 -1
- package/dist-ksadk/assets/{chunk-POPQ4Y6H-C030x_Z1.js → chunk-POPQ4Y6H-BvutC1JH.js} +1 -1
- package/dist-ksadk/assets/{chunk-RHFEMEQ7-yyGpsz4n.js → chunk-RHFEMEQ7-BIXm03MG.js} +1 -1
- package/dist-ksadk/assets/{chunk-SVP7TREG-BLTlmMU7.js → chunk-SVP7TREG--LDO57tP.js} +1 -1
- package/dist-ksadk/assets/{chunk-XXDRQBXY-C_32ArgP.js → chunk-XXDRQBXY-WtVtVhpq.js} +1 -1
- package/dist-ksadk/assets/classDiagram-DTDB5LWJ-C0BU8Yr9.js +1 -0
- package/dist-ksadk/assets/classDiagram-v2-JRS7N3AN-C0BU8Yr9.js +1 -0
- package/dist-ksadk/assets/{cose-bilkent-JH36ORCC-9YQYwdl0.js → cose-bilkent-JH36ORCC-CnqJMsPI.js} +1 -1
- package/dist-ksadk/assets/cynefin-OW5HDTMX-BckONr__.js +1 -0
- package/dist-ksadk/assets/{cynefinDiagram-5FMLGOSQ-ErLF5N13.js → cynefinDiagram-5FMLGOSQ-Ci9qjtA_.js} +1 -1
- package/dist-ksadk/assets/{dagre-3AP2YEHR-DFiQF-6f.js → dagre-3AP2YEHR-Ll3LkcYP.js} +1 -1
- package/dist-ksadk/assets/{dagre-BuhGnRI1.js → dagre-CKrj2THw.js} +1 -1
- package/dist-ksadk/assets/{diagram-S7CK7UJ4-Bt1v8-GC.js → diagram-S7CK7UJ4-BQ1slPEx.js} +1 -1
- package/dist-ksadk/assets/{diagram-UQ7AKVKN-DSCxJdBK.js → diagram-UQ7AKVKN-BXz7DvIg.js} +1 -1
- package/dist-ksadk/assets/{diagram-VSXAHHWV-DHfYwp_9.js → diagram-VSXAHHWV-DOno97OL.js} +1 -1
- package/dist-ksadk/assets/{diagram-VX7I27RA-DdzD-4Le.js → diagram-VX7I27RA-CU2kHvv3.js} +1 -1
- package/dist-ksadk/assets/{diagram-Z3DM3KII-Du-nAJ9F.js → diagram-Z3DM3KII-mhpvOavV.js} +1 -1
- package/dist-ksadk/assets/{dist-dydu68Fl.js → dist-2cbEIexW.js} +1 -1
- package/dist-ksadk/assets/{dist-ClxGviKw.js → dist-4j-rswH6.js} +1 -1
- package/dist-ksadk/assets/{dist-B7seoj3d.js → dist-B-VEMnGR.js} +1 -1
- package/dist-ksadk/assets/{dist-BjU6y-A2.js → dist-B6XMlZpc.js} +1 -1
- package/dist-ksadk/assets/{dist-BytlxIDT.js → dist-BQCggVji.js} +1 -1
- package/dist-ksadk/assets/{dist-W-TIVntx.js → dist-BZiMQVbN.js} +1 -1
- package/dist-ksadk/assets/{dist-CXYYBw3_.js → dist-BvMDy0Xp.js} +1 -1
- package/dist-ksadk/assets/{dist-CSh_DE14.js → dist-BxjBfG2w.js} +1 -1
- package/dist-ksadk/assets/{dist-CttYUqzS.js → dist-Byl0QKIY.js} +1 -1
- package/dist-ksadk/assets/{dist-DnfXs8Vn.js → dist-C-Q0Ulfg.js} +1 -1
- package/dist-ksadk/assets/{dist-dDdADKFA.js → dist-C-V2Wj4x.js} +1 -1
- package/dist-ksadk/assets/{dist-DUX-id_F.js → dist-CPZHorum.js} +1 -1
- package/dist-ksadk/assets/{dist-BE7bu-DL.js → dist-CTeZLI0m.js} +1 -1
- package/dist-ksadk/assets/{dist-ngtN0DJB.js → dist-CUFAKgYs.js} +1 -1
- package/dist-ksadk/assets/{dist-BX8z72IC.js → dist-CaTDm1g0.js} +1 -1
- package/dist-ksadk/assets/{dist-DmldrHd_.js → dist-CoCI5ZIy.js} +1 -1
- package/dist-ksadk/assets/{dist-Dq9gLD7L.js → dist-DGFsOxe9.js} +1 -1
- package/dist-ksadk/assets/{dist-C_wsv-Qd.js → dist-DeO3Qj-D.js} +1 -1
- package/dist-ksadk/assets/{dist-DNp6rLRA.js → dist-DgSf2VGQ.js} +1 -1
- package/dist-ksadk/assets/{dist-Bf2M8m3N.js → dist-DwwtGqH9.js} +1 -1
- package/dist-ksadk/assets/{dist-BVDffZ0U.js → dist-hRISJdRx.js} +1 -1
- package/dist-ksadk/assets/{dist-8hqcx0sU.js → dist-oPMjOYRU.js} +1 -1
- package/dist-ksadk/assets/{ebnfDiagram-PWID7BFC-Da9C9NO1.js → ebnfDiagram-PWID7BFC-DAH8tjOy.js} +1 -1
- package/dist-ksadk/assets/{erDiagram-SSCWMZ5O-EAGqqR79.js → erDiagram-SSCWMZ5O-JvDkJGJ3.js} +1 -1
- package/dist-ksadk/assets/eventmodeling-NTZA5JFV-vjy4Z61x.js +1 -0
- package/dist-ksadk/assets/flowDiagram-A5DVABFB-CvJ64Qzs.js +1 -0
- package/dist-ksadk/assets/{ganttDiagram-EL5Y4UJY-DqJsKb59.js → ganttDiagram-EL5Y4UJY-B-SEC706.js} +1 -1
- package/dist-ksadk/assets/gitGraph-4MIJSDKK-CX3KwgqY.js +1 -0
- package/dist-ksadk/assets/{gitGraphDiagram-WWUBYQGX-B6g4dtDi.js → gitGraphDiagram-WWUBYQGX-D7OJf_No.js} +1 -1
- package/dist-ksadk/assets/{index-8ipRcQ-M.js → index-BkDx9KsG.js} +65 -64
- package/dist-ksadk/assets/{index-ByFCqjlh.css → index-DW7rZ4ml.css} +1 -1
- package/dist-ksadk/assets/info-A6RAGUB7-CYHIOuL5.js +1 -0
- package/dist-ksadk/assets/{infoDiagram-RXCK75RN-Djm_nbd5.js → infoDiagram-RXCK75RN-CTIHOSud.js} +1 -1
- package/dist-ksadk/assets/{ishikawaDiagram-5VMMS53U-DWya9SG2.js → ishikawaDiagram-5VMMS53U-HMO7FchJ.js} +1 -1
- package/dist-ksadk/assets/{journeyDiagram-EYS64GPL-DutxhSNI.js → journeyDiagram-EYS64GPL-DeFbDr5t.js} +1 -1
- package/dist-ksadk/assets/{kanban-definition-3QL26DDD-DJdOF8Fm.js → kanban-definition-3QL26DDD-D3OeNqXY.js} +1 -1
- package/dist-ksadk/assets/{katex-vFWytM5c.js → katex-DCJHF0vD.js} +1 -1
- package/dist-ksadk/assets/{linear-BHjG8b-J.js → linear-D3-vxS4W.js} +1 -1
- package/dist-ksadk/assets/{mermaid-parser.core-KGSy4jWT.js → mermaid-parser.core-C-Sc5_7E.js} +2 -2
- package/dist-ksadk/assets/{mindmap-definition-FBJOCRG2-9-HC88D4.js → mindmap-definition-FBJOCRG2-D-XtspHN.js} +1 -1
- package/dist-ksadk/assets/packet-AYTQ26CC-Ctg2wH4o.js +1 -0
- package/dist-ksadk/assets/{pegDiagram-XKGWAZYB-DrEZd4fD.js → pegDiagram-XKGWAZYB-BYbAq9Nb.js} +1 -1
- package/dist-ksadk/assets/pie-WAS4IAKB-CU6GnSzI.js +1 -0
- package/dist-ksadk/assets/{pieDiagram-E7YTZNPT-DpjqOFFp.js → pieDiagram-E7YTZNPT-DQ2yX4VQ.js} +1 -1
- package/dist-ksadk/assets/{quadrantDiagram-AXDQQJYC-BiNhgOXX.js → quadrantDiagram-AXDQQJYC-rvRPUN0j.js} +1 -1
- package/dist-ksadk/assets/radar-RG4KPBEZ-Bhe0us4A.js +1 -0
- package/dist-ksadk/assets/railroad-74A4TZTK-DEgiNGfx.js +1 -0
- package/dist-ksadk/assets/railroad-abnf-HS5TGJTU-GK7ct0QX.js +1 -0
- package/dist-ksadk/assets/railroad-ebnf-LZEXJU2U-BzlcTUmk.js +1 -0
- package/dist-ksadk/assets/railroad-peg-WCYAUIDC-7ESM96BW.js +1 -0
- package/dist-ksadk/assets/{railroadDiagram-O6MQD6OU-_Y3Ojg6G.js → railroadDiagram-O6MQD6OU-2OVn6qwA.js} +1 -1
- package/dist-ksadk/assets/{requirementDiagram-EFPCY7ZU-DeCFdg9K.js → requirementDiagram-EFPCY7ZU-ChWVLAKz.js} +1 -1
- package/dist-ksadk/assets/{sankeyDiagram-P5KCCOFB-CPH75rhw.js → sankeyDiagram-P5KCCOFB-Cb5gXi_j.js} +1 -1
- package/dist-ksadk/assets/{sequenceDiagram-WJ2MYXX4-OEpQQdr4.js → sequenceDiagram-WJ2MYXX4-D7g_-PUM.js} +1 -1
- package/dist-ksadk/assets/{sizeCapture-X5ZJPWSS-heUErzhI.js → sizeCapture-X5ZJPWSS-D__whCj3.js} +1 -1
- package/dist-ksadk/assets/{stateDiagram-HBIQ2CUA-DvA3jSMB.js → stateDiagram-HBIQ2CUA-CpKIc0dl.js} +1 -1
- package/dist-ksadk/assets/stateDiagram-v2-4QOOHH4V-D7ulg6TV.js +1 -0
- package/dist-ksadk/assets/{swimlanes-XN3QIQJK-CR-dfN_t.js → swimlanes-XN3QIQJK-CFJohC2b.js} +1 -1
- package/dist-ksadk/assets/swimlanesDiagram-VK2B7HYN-A-oZaquE.js +8 -0
- package/dist-ksadk/assets/{timeline-definition-24CTP7MA-DAVJf1TX.js → timeline-definition-24CTP7MA-Dg4AY0KC.js} +1 -1
- package/dist-ksadk/assets/treeView-Q6P3EWNA-D6u1mSx1.js +1 -0
- package/dist-ksadk/assets/treemap-WGGIJYW6-CM87Vav0.js +1 -0
- package/dist-ksadk/assets/{vennDiagram-4TSXK5OY-DwM8eDkh.js → vennDiagram-4TSXK5OY-A6cRoCBU.js} +1 -1
- package/dist-ksadk/assets/wardley-WFR3VGLG-BPoQUTzr.js +1 -0
- package/dist-ksadk/assets/{wardleyDiagram-VM6X3IG4-DZL-Zz2t.js → wardleyDiagram-VM6X3IG4-BVD1hMYl.js} +1 -1
- package/dist-ksadk/assets/{xychartDiagram-S5SC5T6Z-Dy6Yh_hu.js → xychartDiagram-S5SC5T6Z-BlBLXETg.js} +1 -1
- package/dist-ksadk/index.html +2 -2
- package/dist-lib/{ArtifactsPanel-DDCKcvaL.js → ArtifactsPanel-D2EtX4X_.js} +1 -1
- package/dist-lib/{CodeBlock-BS9DcS5a.js → CodeBlock-CPaeJbtf.js} +1 -1
- package/dist-lib/{MathMessageMarkdown-CpCcJFjZ.js → MathMessageMarkdown-Bpp4hI6Q.js} +2 -2
- package/dist-lib/{NativeTerminalPanel-CDqCdIly.js → NativeTerminalPanel-CJXzKV0z.js} +1 -1
- package/dist-lib/{WorkspacePanelContainer-DzbAkIfx.js → WorkspacePanelContainer-DbD-6xqx.js} +8 -7
- package/dist-lib/client-1WQCunUo.js +616 -0
- package/dist-lib/components/chat/A2UIActivityMessage.d.ts.map +1 -1
- package/dist-lib/components.js +2 -2
- package/dist-lib/conversation.js +28 -0
- package/dist-lib/core/conversation/client.d.ts +26 -0
- package/dist-lib/core/conversation/client.d.ts.map +1 -0
- package/dist-lib/core/conversation/contracts.d.ts +20 -0
- package/dist-lib/core/conversation/contracts.d.ts.map +1 -0
- package/dist-lib/core/conversation/errors.d.ts +12 -0
- package/dist-lib/core/conversation/errors.d.ts.map +1 -0
- package/dist-lib/core/conversation/hosted.d.ts +23 -0
- package/dist-lib/core/conversation/hosted.d.ts.map +1 -0
- package/dist-lib/core/conversation/index.d.ts +8 -0
- package/dist-lib/core/conversation/index.d.ts.map +1 -0
- package/dist-lib/core/conversation/presentation.d.ts +8 -0
- package/dist-lib/core/conversation/presentation.d.ts.map +1 -0
- package/dist-lib/core/conversation/reducer.d.ts +19 -0
- package/dist-lib/core/conversation/reducer.d.ts.map +1 -0
- package/dist-lib/core/conversation/renderer-registry.d.ts +20 -0
- package/dist-lib/core/conversation/renderer-registry.d.ts.map +1 -0
- package/dist-lib/core/conversation/types.d.ts +176 -0
- package/dist-lib/core/conversation/types.d.ts.map +1 -0
- package/dist-lib/core/run/dispatcher.d.ts.map +1 -1
- package/dist-lib/core/run/engine.d.ts +3 -0
- package/dist-lib/core/run/engine.d.ts.map +1 -1
- package/dist-lib/core/run/types.d.ts +7 -0
- package/dist-lib/core/run/types.d.ts.map +1 -1
- package/dist-lib/hooks/useRunAgent.d.ts.map +1 -1
- package/dist-lib/public/conversation.d.ts +10 -0
- package/dist-lib/public/conversation.d.ts.map +1 -0
- package/dist-lib/public/runtime.d.ts +2 -0
- package/dist-lib/public/runtime.d.ts.map +1 -1
- package/dist-lib/public/types.d.ts +1 -0
- package/dist-lib/public/types.d.ts.map +1 -1
- package/dist-lib/runtime.js +1467 -1128
- package/dist-lib/styles.css +1 -1
- package/package.json +11 -2
- package/schemas/release-provenance.schema.json +34 -0
- package/dist-ksadk/assets/architecture-7GRP2DOG-DjKratdf.js +0 -1
- package/dist-ksadk/assets/channel-4cQHKtx1.js +0 -1
- package/dist-ksadk/assets/chunk-2Q5K7J3B-DmgWkESh.js +0 -1
- package/dist-ksadk/assets/classDiagram-DTDB5LWJ-DLFd9Xi0.js +0 -1
- package/dist-ksadk/assets/classDiagram-v2-JRS7N3AN-DLFd9Xi0.js +0 -1
- package/dist-ksadk/assets/cynefin-OW5HDTMX-DjEM48Qp.js +0 -1
- package/dist-ksadk/assets/eventmodeling-NTZA5JFV-CMgMaJrC.js +0 -1
- package/dist-ksadk/assets/flowDiagram-A5DVABFB-BBKL0x3P.js +0 -1
- package/dist-ksadk/assets/gitGraph-4MIJSDKK-Dw63mrhw.js +0 -1
- package/dist-ksadk/assets/info-A6RAGUB7-B6iAblII.js +0 -1
- package/dist-ksadk/assets/packet-AYTQ26CC-BOYAipuq.js +0 -1
- package/dist-ksadk/assets/pie-WAS4IAKB-Ctq0Kbku.js +0 -1
- package/dist-ksadk/assets/radar-RG4KPBEZ-DN0-ul_0.js +0 -1
- package/dist-ksadk/assets/railroad-74A4TZTK-C6cC_to0.js +0 -1
- package/dist-ksadk/assets/railroad-abnf-HS5TGJTU-BimjIuRc.js +0 -1
- package/dist-ksadk/assets/railroad-ebnf-LZEXJU2U-CvY65ABq.js +0 -1
- package/dist-ksadk/assets/railroad-peg-WCYAUIDC-D72Iq_Tv.js +0 -1
- package/dist-ksadk/assets/stateDiagram-v2-4QOOHH4V-BgQY03nz.js +0 -1
- package/dist-ksadk/assets/swimlanesDiagram-VK2B7HYN-DLVw3q5Q.js +0 -8
- package/dist-ksadk/assets/treeView-Q6P3EWNA-BMpO0wsB.js +0 -1
- package/dist-ksadk/assets/treemap-WGGIJYW6-Et0aqzU3.js +0 -1
- package/dist-ksadk/assets/wardley-WFR3VGLG-CbY0mhpl.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.3 - 2026-08-28
|
|
4
|
+
|
|
5
|
+
### Headless conversation surface
|
|
6
|
+
|
|
7
|
+
- Add the Node/SSR-safe `@kingsoftcloud/ksadk-web/conversation` entrypoint with
|
|
8
|
+
strict ConversationSurface/Input/Item v1 decoders, input preflight, bounded
|
|
9
|
+
HTTP/SSE reconnect, passive renderer data, and the shared identity reducer.
|
|
10
|
+
- Route the bundled Hosted UI through the same conversation client and reducer
|
|
11
|
+
when a valid Surface is advertised. A Surface HTTP 404 keeps the existing
|
|
12
|
+
Responses / AG-UI / legacy path; malformed surfaces and server failures do
|
|
13
|
+
not silently bypass the declared contract.
|
|
14
|
+
- Preserve different item identities even when their text is equal, ignore
|
|
15
|
+
replayed `(itemId, sourceEventId)` pairs, keep terminal items monotonic, and
|
|
16
|
+
retain additive unknown item kinds for replay/audit without rendering a
|
|
17
|
+
repeated transcript card; newer schemas on known kinds safely downgrade to
|
|
18
|
+
one passive fallback card.
|
|
19
|
+
- Preserve the canonical item timeline for renderers: a separate native tool
|
|
20
|
+
result enriches its original `callId` tool card rather than rendering a
|
|
21
|
+
duplicate card, while reasoning, tools and answers keep their original
|
|
22
|
+
interleaving. Add an immutable exact `kind + payloadSchemaRef` trusted
|
|
23
|
+
renderer catalog; providers cannot supply executable UI code in event
|
|
24
|
+
payloads or claim a future schema version.
|
|
25
|
+
- Keep `output` and `reasoning` summaries as a compatibility view beside the
|
|
26
|
+
canonical timeline, so Studio can adopt the shared reducer without a second
|
|
27
|
+
text aggregation implementation during the 0.8.3 transition.
|
|
28
|
+
- Keep canonical approvals without a durable `revision` read-only. Consumers
|
|
29
|
+
must not guess a revision or submit them through the revision-CAS Interaction
|
|
30
|
+
API until the server supplies an authoritative value.
|
|
31
|
+
- Make attachment upload and model selection first-class canonical inputs in
|
|
32
|
+
Hosted UI. Unsupported inputs and oversized files fail before upload or turn
|
|
33
|
+
submission instead of silently degrading to legacy `RunAgent` behavior.
|
|
34
|
+
- Prove the headless entrypoint from a minimal independent consumer across two
|
|
35
|
+
turns, cursor reconnect, text/tool/approval/unknown-item rendering, and
|
|
36
|
+
revision-CAS approval submission.
|
|
37
|
+
- Add a repeatable release preflight that runs unit, Node contract, lint, all
|
|
38
|
+
production builds, canonical Conversation browser E2E, provenance checks,
|
|
39
|
+
npm packing, and a clean tarball-install public API smoke test.
|
|
40
|
+
|
|
3
41
|
## 0.3.2 - 2026-08-21
|
|
4
42
|
|
|
5
43
|
Release candidate for the durable Interaction/v1 web experience. This is the
|
package/README.md
CHANGED
|
@@ -43,6 +43,7 @@ package entrypoints under `dist-lib`.
|
|
|
43
43
|
The npm package exposes these stable entrypoints:
|
|
44
44
|
|
|
45
45
|
- `@kingsoftcloud/ksadk-web/components`
|
|
46
|
+
- `@kingsoftcloud/ksadk-web/conversation` (headless, Node/SSR-safe)
|
|
46
47
|
- `@kingsoftcloud/ksadk-web/runtime`
|
|
47
48
|
- `@kingsoftcloud/ksadk-web/capabilities`
|
|
48
49
|
- `@kingsoftcloud/ksadk-web/styles`
|
|
@@ -51,6 +52,57 @@ The npm package exposes these stable entrypoints:
|
|
|
51
52
|
Hosted UI should import the shared shell from the package and keep private
|
|
52
53
|
auth, routing, feature flags, Docker, nginx, and Helm logic in its own repo.
|
|
53
54
|
|
|
55
|
+
### Headless conversation client
|
|
56
|
+
|
|
57
|
+
`@kingsoftcloud/ksadk-web/conversation` provides strict
|
|
58
|
+
`ConversationSurface/Input/Item` decoders, the identity reducer, passive
|
|
59
|
+
renderer data, and a small HTTP/SSE reference client. It has no React or DOM
|
|
60
|
+
runtime dependency and can be imported by Node/SSR applications.
|
|
61
|
+
|
|
62
|
+
```ts
|
|
63
|
+
import {
|
|
64
|
+
HttpConversationClient,
|
|
65
|
+
buildConversationInput,
|
|
66
|
+
} from '@kingsoftcloud/ksadk-web/conversation'
|
|
67
|
+
|
|
68
|
+
const client = new HttpConversationClient()
|
|
69
|
+
const bootstrap = await client.getSurface('agent-id', 'session-id')
|
|
70
|
+
const result = await client.streamTurn({
|
|
71
|
+
bootstrap,
|
|
72
|
+
input: buildConversationInput({
|
|
73
|
+
inputId: 'input-id',
|
|
74
|
+
sessionId: 'session-id',
|
|
75
|
+
idempotencyKey: 'turn-id',
|
|
76
|
+
parts: [{ kind: 'text', text: 'Hello' }],
|
|
77
|
+
}),
|
|
78
|
+
onUpdate(snapshot) {
|
|
79
|
+
// Render snapshot.presentation. It is already reduced by canonical item
|
|
80
|
+
// identity and is safe to replace after a reconnect or replay.
|
|
81
|
+
renderConversation(snapshot.presentation)
|
|
82
|
+
},
|
|
83
|
+
})
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
The client submits a turn once and only reconnects through the canonical Run
|
|
87
|
+
event endpoint. `onUpdate` and the final result use the same reducer: equal text
|
|
88
|
+
from different item identities is retained, replayed `(itemId, sourceEventId)`
|
|
89
|
+
pairs are idempotent, and a terminal item never regresses. It does not accept
|
|
90
|
+
tokens, cookies, credential modes, or provider-specific request fields;
|
|
91
|
+
applications keep authentication at their same-origin server boundary or in
|
|
92
|
+
an injected transport.
|
|
93
|
+
|
|
94
|
+
The bundled Hosted UI uses this same client and reducer when the server returns
|
|
95
|
+
a valid `ConversationSurface`. HTTP 404 is the compatibility signal for the
|
|
96
|
+
existing Responses / AG-UI / legacy path. A declared but invalid or unavailable
|
|
97
|
+
surface fails closed, and unknown item kinds or schema versions render as
|
|
98
|
+
passive fallback cards rather than provider-specific UI.
|
|
99
|
+
|
|
100
|
+
Approval and structured-input items are actionable only when their canonical
|
|
101
|
+
payload carries the server's durable, non-negative `revision`. Without that
|
|
102
|
+
value the shared Hosted UI intentionally renders the item read-only: it never
|
|
103
|
+
guesses revision `0` or bypasses the Interaction API's revision-CAS contract.
|
|
104
|
+
Likewise, unknown payloads and unsafe artifact URIs remain passive content.
|
|
105
|
+
|
|
54
106
|
## Release Contract
|
|
55
107
|
|
|
56
108
|
Consumers should record the resolved KSADK Web package version and lockfile
|
|
@@ -89,12 +141,33 @@ Before creating a release or dispatching the workflow, verify the payload:
|
|
|
89
141
|
|
|
90
142
|
```bash
|
|
91
143
|
npm ci
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
npm run build:all
|
|
95
|
-
npm pack --dry-run --access public
|
|
144
|
+
npx playwright install chromium
|
|
145
|
+
npm run release:preflight
|
|
96
146
|
```
|
|
97
147
|
|
|
148
|
+
The preflight is intentionally stricter than a development build: it requires
|
|
149
|
+
a clean worktree, checks the frozen Git source recorded in
|
|
150
|
+
`RELEASE_PROVENANCE.json`, rejects content changes under an already tagged
|
|
151
|
+
version, runs the canonical Conversation browser flow, creates the real npm
|
|
152
|
+
tarball, installs it into a disposable consumer, and imports the public
|
|
153
|
+
`@kingsoftcloud/ksadk-web/conversation` API. During development only, use
|
|
154
|
+
`npm run release:preflight -- --allow-unreleased --allow-dirty` to rehearse the
|
|
155
|
+
same tests without claiming the current commit is a releasable source.
|
|
156
|
+
|
|
157
|
+
After the next version is set and all code is committed, freeze its provenance
|
|
158
|
+
from that clean commit before the final attestation commit:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
npm run release:provenance -- generate
|
|
162
|
+
git add RELEASE_PROVENANCE.json
|
|
163
|
+
git commit -m "chore(release): attest ksadk-web source"
|
|
164
|
+
npm run release:preflight
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
The generator refuses dirty worktrees and versions whose `vX.Y.Z` tag already
|
|
168
|
+
exists. Never edit `source_commit` by hand or regenerate provenance for an
|
|
169
|
+
already published version.
|
|
170
|
+
|
|
98
171
|
The publish workflow checks whether `package.json`'s exact version is already
|
|
99
172
|
present on npm. Existing versions are skipped because npm packages are
|
|
100
173
|
immutable; publish a new patch version for any package-content change.
|
package/RELEASE_PROVENANCE.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema_version": 1,
|
|
3
3
|
"package": "@kingsoftcloud/ksadk-web",
|
|
4
|
-
"version": "0.3.
|
|
5
|
-
"source_commit": "
|
|
4
|
+
"version": "0.3.3",
|
|
5
|
+
"source_commit": "37eb8dd6ae8c44ea4622d39f8c7ae9b13916a793",
|
|
6
6
|
"interaction_contract_digest": "47e1003e03d97abeba232cc3e03a14b9cbcf78b1109870ccd2ce371f073b6211"
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{St as e,Tt as t,bt as n,gt as r,lt as i,n as a,t as o,ut as s,xt as c}from"./index-
|
|
1
|
+
import{St as e,Tt as t,bt as n,gt as r,lt as i,n as a,t as o,ut as s,xt as c}from"./index-BkDx9KsG.js";var l=t(e(),1),u=n();function d(){let e=c(e=>e.visible),t=c(e=>e.content),n=c(e=>e.type),d=c(e=>e.hide),f=(0,l.useRef)(null);if(a(f),!e||!t)return null;let p=o(t);return(0,u.jsxs)(`aside`,{className:i(`flex h-full flex-shrink-0 flex-col border-l border-slate-200/30 bg-white dark:border-slate-800/40 dark:bg-slate-950`,`w-[min(42rem,50vw)]`),children:[(0,u.jsxs)(`div`,{className:`flex h-14 flex-shrink-0 items-center justify-between border-b border-slate-200/30 px-4 dark:border-slate-800/40`,children:[(0,u.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,u.jsx)(`span`,{className:`text-sm font-semibold text-slate-900 dark:text-slate-100`,children:`Artifact`}),(0,u.jsx)(`span`,{className:`rounded-md bg-slate-100 px-1.5 py-0.5 font-mono text-[11px] text-slate-500 dark:bg-slate-900 dark:text-slate-400`,children:n})]}),(0,u.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,u.jsxs)(`button`,{type:`button`,onClick:()=>{let e=new Blob([t],{type:`text/html;charset=utf-8`}),r=URL.createObjectURL(e),i=document.createElement(`a`);i.href=r,i.download=`artifact.${n===`svg`?`svg`:`html`}`,document.body.appendChild(i),i.click(),document.body.removeChild(i),URL.revokeObjectURL(r)},className:`inline-flex items-center gap-1.5 rounded-lg px-2.5 py-1.5 text-xs font-medium text-slate-600 transition hover:bg-slate-100 dark:text-slate-300 dark:hover:bg-slate-900`,title:`Download`,children:[(0,u.jsx)(r,{className:`h-3.5 w-3.5`}),`Download`]}),(0,u.jsx)(`button`,{type:`button`,onClick:d,className:`rounded-lg p-1.5 text-slate-500 transition hover:bg-slate-100 hover:text-slate-900 dark:text-slate-400 dark:hover:bg-slate-900 dark:hover:text-slate-100`,"aria-label":`Close Artifact`,title:`Close`,children:(0,u.jsx)(s,{className:`h-4 w-4`})})]})]}),(0,u.jsx)(`div`,{className:`min-h-0 flex-1`,children:(0,u.jsx)(`iframe`,{ref:f,srcDoc:p,sandbox:`allow-scripts allow-downloads`,title:`Artifact Preview`,className:`h-full w-full border-0 bg-white`})})]})}export{d as ArtifactsPanel};
|