@deepseek-ai/dsh-client-ui-trajectory 0.1.7-alpha.2 → 0.1.7-rc.1

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/README.i18n.yaml CHANGED
@@ -2,5 +2,5 @@
2
2
  # side as of the last confirmed-consistent state. Both languages carry equal authority;
3
3
  # after editing either side, bring the other along and re-record with:
4
4
  # pnpm run verify-translation-pairing --write packages/client/ui-trajectory/README.md
5
- README.md: d15b1c7c6d605ba1b73180566a84fe29ab08530c
6
- README.zh.md: 87cbae17c53a112cc62054a6150df9565a7bd8c0
5
+ README.md: 03553df4c69da9d5ec64416a8e65765d5dbcc904
6
+ README.zh.md: 7ce33007c40e77e9b288df988c4e7b7597576646
package/README.md CHANGED
@@ -55,6 +55,8 @@ The view is a pure projection: Trajectory-owned Definitions assemble business re
55
55
 
56
56
  Native and nested PTC Tool results retain their raw structured error details. Failed records show the error code in the ledger and the error name and code in the inspector.
57
57
 
58
+ Tool records begin at durable tool/call events and use complete arguments. Chat's transient preparing stage does not create Trajectory tool rows or alter historical tool timing.
59
+
58
60
  A complete appended prompt without a loaded request header appears as a standalone system row; only its known text is available, with no inferred request options or tool catalog. Prepending its request history replaces that standalone presentation without duplicating the prompt. In-history system prompt changes compare against the most recent request state, including earlier prompt updates without a new request header. Each request retains the prompt and change that applied at its own position. Surface replacements, including compaction, restore the last nonempty surviving system prompt even without a new system event; an unloaded prompt remains unavailable until its page arrives.
59
61
 
60
62
  ### Virtual rows
package/README.zh.md CHANGED
@@ -55,6 +55,8 @@ Trajectory 标签页让你以按轮次组织的事件记录表和交互式时间
55
55
 
56
56
  原生与嵌套 PTC 工具结果保留原始结构化错误详情。失败记录在记录表中显示错误代码,在检查器中显示错误名称和代码。
57
57
 
58
+ 工具记录从持久 tool/call 事件开始,使用完整参数。Chat 的瞬态 preparing 阶段不创建 Trajectory 工具行,也不改变历史工具计时。
59
+
58
60
  完整的追加提示词在请求头未加载时显示为独立系统行;仅提供已知文本,不推断请求选项或工具目录。补入其请求历史后,该独立展示被替代而不重复提示词。历史中的系统提示词变更与最近的请求状态比较,包括没有新请求头的先前提示词更新。每个请求保留其所在位置生效的提示词与变更。包括压缩在内的 surface 替换会恢复最后一个非空的存活系统提示词,即使没有新的系统事件;未加载的提示词在对应分页到达前仍不可用。
59
61
 
60
62
  ### 虚拟行
package/lib/client.js CHANGED
@@ -1274,6 +1274,7 @@ window.__ModuleLoader__.load({
1274
1274
  role: "start"
1275
1275
  } : null,
1276
1276
  start: (_context, match, reader) => {
1277
+ if (match.event.type === "assistant/live-chunk") throw new Error("system-message requires a durable event");
1277
1278
  const prior = reader.previous("trajectory-system-message")?.state;
1278
1279
  const state = inspect(prior, match.event);
1279
1280
  const node = state.effective;
@@ -1622,6 +1623,7 @@ window.__ModuleLoader__.load({
1622
1623
  function rootCall(match) {
1623
1624
  if (match.event.type !== "tool/call") throw new Error("trajectory-tool-call start requires tool/call");
1624
1625
  return {
1626
+ phase: "start",
1625
1627
  callId: String(match.event.data.callId),
1626
1628
  name: match.event.data.name,
1627
1629
  argsRaw: match.event.data.arguments,
@@ -1659,6 +1661,7 @@ window.__ModuleLoader__.load({
1659
1661
  }
1660
1662
  function childCall(match, data) {
1661
1663
  return {
1664
+ phase: "start",
1662
1665
  callId: data.subCallId,
1663
1666
  parentCallId: data.parentCallId,
1664
1667
  name: data.name,
@@ -7352,6 +7355,7 @@ window.__ModuleLoader__.load({
7352
7355
  if (startedAt !== null) callStartById.set(result.callId, startedAt);
7353
7356
  }
7354
7357
  for (const call of runningCalls) {
7358
+ if (call.phase === "preparing") continue;
7355
7359
  const startedAt = finiteTime(call.time);
7356
7360
  if (startedAt !== null) callStartById.set(call.callId, startedAt);
7357
7361
  }
@@ -7623,7 +7627,7 @@ window.__ModuleLoader__.load({
7623
7627
  }
7624
7628
  const seenCalls = collectCallIds(turns);
7625
7629
  for (const call of runningCalls) {
7626
- if (seenCalls.has(call.callId)) continue;
7630
+ if (call.phase === "preparing" || seenCalls.has(call.callId)) continue;
7627
7631
  const laidList = [{
7628
7632
  absTime: null,
7629
7633
  toolName: call.name,
@@ -8011,6 +8015,7 @@ window.__ModuleLoader__.load({
8011
8015
  const out = [];
8012
8016
  let index = startIndex;
8013
8017
  for (const sub of subs) {
8018
+ if (!("kind" in sub) && sub.phase === "preparing") continue;
8014
8019
  const settled = "kind" in sub;
8015
8020
  const resultPreview = settled ? summarizeResult(sub, t) : void 0;
8016
8021
  const laid = {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-client-ui-trajectory",
3
3
  "description": "Trajectory event ledger with an interactive timing overview: pure-consumer plugin registering into the conversation ViewMap (no service)",
4
- "version": "0.1.7-alpha.2",
4
+ "version": "0.1.7-rc.1",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -48,23 +48,23 @@
48
48
  "react-dom": "^18.2.0",
49
49
  "@tanstack/react-virtual": "^3.14.9",
50
50
  "diff": "^9.0.0",
51
- "@deepseek-ai/dsh-agent": "0.1.7-alpha.2",
52
- "@deepseek-ai/dsh-client-locale": "0.1.7-alpha.2",
53
- "@deepseek-ai/dsh-client-test-runtime": "0.1.7-alpha.2",
54
- "@deepseek-ai/dsh-client-ui-primitives": "0.1.7-alpha.2",
55
- "@deepseek-ai/dsh-client-ui-conversation": "0.1.7-alpha.2",
56
- "@deepseek-ai/dsh-client-ui-slots": "0.1.7-alpha.2",
57
- "@deepseek-ai/dsh-compaction": "0.1.7-alpha.2",
58
- "@deepseek-ai/dsh-tools": "0.1.7-alpha.2",
51
+ "@deepseek-ai/dsh-agent": "0.1.7-rc.1",
52
+ "@deepseek-ai/dsh-client-locale": "0.1.7-rc.1",
53
+ "@deepseek-ai/dsh-client-test-runtime": "0.1.7-rc.1",
54
+ "@deepseek-ai/dsh-client-ui-primitives": "0.1.7-rc.1",
55
+ "@deepseek-ai/dsh-client-ui-conversation": "0.1.7-rc.1",
56
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.1",
57
+ "@deepseek-ai/dsh-tools": "0.1.7-rc.1",
58
+ "@deepseek-ai/dsh-compaction": "0.1.7-rc.1",
59
59
  "@deepseek-ai/cordis": "~4.0.4",
60
- "@deepseek-ai/dsh-client-store": "0.1.7-alpha.2",
61
- "@deepseek-ai/dsh-client-ui-chat": "0.1.7-alpha.2",
62
- "@deepseek-ai/dsh-session": "0.1.7-alpha.2",
63
- "@deepseek-ai/dsh-api-session-controller": "0.1.7-alpha.2",
64
- "@deepseek-ai/dsh-client-ui-renderer": "0.1.7-alpha.2",
65
- "@deepseek-ai/dsh-client-ui-session": "0.1.7-alpha.2",
66
- "@deepseek-ai/dsh-attachment": "0.1.7-alpha.2",
67
- "@deepseek-ai/dsh-llm": "0.1.7-alpha.2"
60
+ "@deepseek-ai/dsh-client-store": "0.1.7-rc.1",
61
+ "@deepseek-ai/dsh-client-ui-chat": "0.1.7-rc.1",
62
+ "@deepseek-ai/dsh-session": "0.1.7-rc.1",
63
+ "@deepseek-ai/dsh-api-session-controller": "0.1.7-rc.1",
64
+ "@deepseek-ai/dsh-client-ui-renderer": "0.1.7-rc.1",
65
+ "@deepseek-ai/dsh-client-ui-session": "0.1.7-rc.1",
66
+ "@deepseek-ai/dsh-llm": "0.1.7-rc.1",
67
+ "@deepseek-ai/dsh-attachment": "0.1.7-rc.1"
68
68
  },
69
69
  "files": [
70
70
  "lib/index.js",