@qilin-agent/client-ui-plan 3.1.5 → 3.1.6

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
@@ -27,8 +27,8 @@
27
27
  en: a13078ade4ef3b9d
28
28
  zh: 2c8b3e8b62ad5652
29
29
  /qilin-agent-client-ui-plan/understand-the-implementation:
30
- en: da55abb94651facd
31
- zh: cb75c8058ceec764
30
+ en: 7c6de822089614bc
31
+ zh: 8ed296122a124f38
32
32
  /qilin-agent-client-ui-plan/further-exploration:
33
33
  en: 98f6da60f8483599
34
34
  zh: d99d92785d4298f6
package/README.md CHANGED
@@ -51,7 +51,7 @@ Admission failures (`matched: false`, business errors, transport faults) surface
51
51
 
52
52
  The chip occupies the conversation-declared `conversation.input.plan` single seat; the node half is an empty apply (the roster row). Reads ride the generic projection pair through the standard-kit `useProjection`: the effective target is `pending ? !active : active` — a folded host value, not client optimism, so an arriving frame corrects the chip either way. The seat's injected face carries one verb, `exitPlanMode`, which executes `/plan off` through `ctx.remote.commands.execute` and maps admission failures to an inline error line. The placeholder and hint text live in ui-conversation's `conversation` locale namespace and are shared verbatim with the claimed `/plan` command hint. The accessible description is "Plan mode on, press to turn off".
53
53
 
54
- Plan cards derive from native `tool/call` or PTC dispatch arguments through a Conversation Definition, with each invocation’s resolved Turn location. They contribute to the additive `conversation.chat.turnTail` list alongside file deliveries. The plan resource address identifies the invocation and its complete ordinary or direct-parent subagent Session address; its provider reads existing Session history, including older pages, without storing document text in sidebar layout. The question plugin owns the review action slot and supplies its request key, complete text, and optional invocation identity. The [decision](../../../.agents/notes/implemented/feature/2026-09-17-persistent-plan-cards.md) explains why review lifetime and document lifetime remain separate.
54
+ Plan cards derive from native `tool/call` or PTC dispatch arguments through a Conversation Definition, with each invocation’s resolved Turn location. They contribute to the additive `conversation.chat.turnTail` list alongside file deliveries. The plan resource address identifies the invocation and its complete ordinary or direct-parent subagent Session address; its provider reads existing Session history, including older pages, without storing document text in sidebar layout. The question plugin owns the review action slot and supplies its request key, complete text, and optional invocation identity. The [decision](../../../.agents/notes/implemented/feature/2026-09-17-persistent-plan-cards.md) explains why review lifetime and document lifetime remain separate. Submitted-plan cards use the delivered-file card's corner radius and neutral icon tile.
55
55
 
56
56
  </details>
57
57
 
package/README.zh.md CHANGED
@@ -51,7 +51,7 @@ kind: "package-reference"
51
51
 
52
52
  徽章占据 conversation 声明的 `conversation.input.plan` 单实例座位;node 半部是空 apply(roster 行)。读取经 standard-kit 的 `useProjection` 走通用投影对:有效目标是 `pending ? !active : active`——折叠的宿主值而非客户端乐观态,因此到达的帧无论哪个方向都会纠正徽章。座位注入面携带一个动词 `exitPlanMode`,经 `ctx.remote.commands.execute` 执行 `/plan off`,并把准入失败映射为一行内联错误。placeholder 与提示文案位于 ui-conversation 的 `conversation` locale 命名空间,与已认领 `/plan` 命令的提示逐字共用。无障碍描述是「Plan mode on, press to turn off」。
53
53
 
54
- 计划卡片通过 Conversation Definition 从原生 `tool/call` 或 PTC dispatch 参数派生,并使用每次调用已解析的回合位置。它们与文件产物一起贡献到可追加的 `conversation.chat.turnTail` 列表。计划资源地址标识调用及完整的普通会话地址或子会话直接父级地址;provider 读取已有会话历史及较早分页,不把正文存入侧边栏布局。提问插件拥有审批操作插槽,并提供请求键、完整正文和可选的调用标识。[决策记录](../../../.agents/notes/implemented/feature/2026-09-17-persistent-plan-cards.zh.md)说明审批与文档为何保持独立生命周期。
54
+ 计划卡片通过 Conversation Definition 从原生 `tool/call` 或 PTC dispatch 参数派生,并使用每次调用已解析的回合位置。它们与文件产物一起贡献到可追加的 `conversation.chat.turnTail` 列表。计划资源地址标识调用及完整的普通会话地址或子会话直接父级地址;provider 读取已有会话历史及较早分页,不把正文存入侧边栏布局。提问插件拥有审批操作插槽,并提供请求键、完整正文和可选的调用标识。[决策记录](../../../.agents/notes/implemented/feature/2026-09-17-persistent-plan-cards.zh.md)说明审批与文档为何保持独立生命周期。已提交计划卡片沿用文件产物卡片的圆角与中性图标底框。
55
55
 
56
56
  </details>
57
57
 
package/lib/client.js CHANGED
@@ -23,7 +23,7 @@ window.__ModuleLoader__.load({
23
23
  }
24
24
  //#endregion
25
25
  //#region \0qilin-css:/home/runner/work/QiLin/QiLin/packages/client/ui-plan/src/client/PlanPreview.module.css.mjs
26
- const css$1 = ".yVhkTW_cards{flex-direction:column;gap:10px;display:flex}.yVhkTW_card{--plan-card-fill:var(--qilin-static-neutral-50);--plan-card-hover:var(--qilin-static-neutral-100);box-sizing:border-box;border:.5px solid var(--qilin-alias-border-l1);background:var(--plan-card-fill);width:100%;min-width:0;height:60px;color:var(--qilin-alias-label-primary);font:inherit;text-align:left;cursor:pointer;border-radius:18px;align-items:center;gap:10px;margin:0;padding:8px 10px;transition:background-color .12s;display:flex}body[data-ds-dark-theme] .yVhkTW_card{--plan-card-fill:var(--qilin-static-neutral-850);--plan-card-hover:var(--qilin-static-neutral-800)}.yVhkTW_card:hover{background:var(--plan-card-hover)}.yVhkTW_card:focus-visible{outline:var(--qilin-focus-ring-width) solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:3px}.yVhkTW_iconButton:focus-visible{outline:var(--qilin-focus-ring-width) solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary))}.yVhkTW_cardIcon{box-sizing:border-box;border:.5px solid var(--qilin-alias-border-l1);background:var(--plan-card-fill);border-radius:10px;flex:none;place-items:center;width:40px;height:40px;display:grid}.yVhkTW_cardDetails{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.yVhkTW_cardTitle{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;line-height:20px;overflow:hidden}.yVhkTW_cardDescription{text-overflow:ellipsis;white-space:nowrap;color:var(--qilin-alias-label-tertiary);font-size:10px;line-height:16px;overflow:hidden}.yVhkTW_cardOpen{box-sizing:border-box;border:.5px solid var(--qilin-alias-border-l3);background:var(--qilin-alias-button-floating-fill);border-radius:10px;flex:none;align-items:center;height:28px;padding:4px 8px;font-size:12px;line-height:18px;display:inline-flex}.yVhkTW_reviewLink{color:var(--qilin-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.yVhkTW_reviewLink:hover{color:var(--qilin-alias-label-primary)}.yVhkTW_reviewLink:focus-visible{outline:var(--qilin-focus-ring-width) solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:3px}.yVhkTW_iconButton{width:28px;height:28px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;display:flex}.yVhkTW_iconButton:hover{background:var(--qilin-alias-interactive-bg-hover)}.yVhkTW_preview{box-sizing:border-box;height:100%;padding:20px 24px 40px;position:relative;overflow:auto}.yVhkTW_toolbar{justify-content:flex-end;margin-bottom:8px;display:flex}.yVhkTW_document{color:var(--qilin-alias-label-primary);overflow-wrap:anywhere;font-size:14px;line-height:1.75}.yVhkTW_message{color:var(--qilin-alias-label-secondary);padding:24px;font-size:14px}.yVhkTW_titleIcon{flex:none;display:inline-flex}@media (width<=767px){.yVhkTW_preview{padding:16px 18px 32px}}";
26
+ const css$1 = ".yVhkTW_cards{flex-direction:column;gap:10px;display:flex}.yVhkTW_card{--plan-card-fill:var(--qilin-static-neutral-50);--plan-card-hover:var(--qilin-static-neutral-100);box-sizing:border-box;border:.5px solid var(--qilin-alias-border-l1);border-radius:var(--qilin-radius-lg);background:var(--plan-card-fill);width:100%;min-width:0;height:60px;color:var(--qilin-alias-label-primary);font:inherit;text-align:left;cursor:pointer;align-items:center;gap:10px;margin:0;padding:8px 10px;transition:background-color .12s;display:flex}body[data-ds-dark-theme] .yVhkTW_card{--plan-card-fill:var(--qilin-static-neutral-850);--plan-card-hover:var(--qilin-static-neutral-800)}.yVhkTW_card:hover{background:var(--plan-card-hover)}.yVhkTW_card:focus-visible{outline:var(--qilin-focus-ring-width) solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:3px}.yVhkTW_iconButton:focus-visible{outline:var(--qilin-focus-ring-width) solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary))}.yVhkTW_cardIcon{box-sizing:border-box;border:.5px solid var(--qilin-alias-border-l1);background:color-mix(in srgb, var(--qilin-static-neutral-00) 50%, transparent);border-radius:10px;flex:none;place-items:center;width:40px;height:40px;display:grid}body[data-ds-dark-theme] .yVhkTW_cardIcon{background:color-mix(in srgb, var(--qilin-static-neutral-00) 5%, transparent)}.yVhkTW_cardDetails{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.yVhkTW_cardTitle{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;line-height:20px;overflow:hidden}.yVhkTW_cardDescription{text-overflow:ellipsis;white-space:nowrap;color:var(--qilin-alias-label-tertiary);font-size:10px;line-height:16px;overflow:hidden}.yVhkTW_cardOpen{box-sizing:border-box;border:.5px solid var(--qilin-alias-border-l3);background:var(--qilin-alias-button-floating-fill);border-radius:10px;flex:none;align-items:center;height:28px;padding:4px 8px;font-size:12px;line-height:18px;display:inline-flex}.yVhkTW_reviewLink{color:var(--qilin-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.yVhkTW_reviewLink:hover{color:var(--qilin-alias-label-primary)}.yVhkTW_reviewLink:focus-visible{outline:var(--qilin-focus-ring-width) solid var(--qilin-focus-ring-color,var(--qilin-alias-state-business-primary));outline-offset:3px}.yVhkTW_iconButton{width:28px;height:28px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;display:flex}.yVhkTW_iconButton:hover{background:var(--qilin-alias-interactive-bg-hover)}.yVhkTW_preview{box-sizing:border-box;height:100%;padding:20px 24px 40px;position:relative;overflow:auto}.yVhkTW_toolbar{justify-content:flex-end;margin-bottom:8px;display:flex}.yVhkTW_document{color:var(--qilin-alias-label-primary);overflow-wrap:anywhere;font-size:14px;line-height:1.75}.yVhkTW_message{color:var(--qilin-alias-label-secondary);padding:24px;font-size:14px}.yVhkTW_titleIcon{flex:none;display:inline-flex}@media (width<=767px){.yVhkTW_preview{padding:16px 18px 32px}}";
27
27
  const tagId$1 = "@qilin-agent/client-ui-plan/PlanPreview.module.css";
28
28
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$1) + "]") === null) {
29
29
  const tag = document.createElement("style");
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@qilin-agent/client-ui-plan",
3
3
  "description": "Plan mode controls, persistent transcript plan cards, and sidebar Markdown previews",
4
- "version": "3.1.5",
4
+ "version": "3.1.6",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -45,32 +45,32 @@
45
45
  },
46
46
  "license": "MIT",
47
47
  "peerDependencies": {
48
- "@qilin-agent/kylin": "~4.0.3"
48
+ "@qilin-agent/kylin": "~4.0.5"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@types/react": "~18.3.1",
52
52
  "react": "^18.2.0",
53
- "@qilin-agent/client-store": "3.1.5",
54
- "@qilin-agent/api-remotes": "3.1.5",
55
- "@qilin-agent/client-ui-conversation": "3.1.5",
56
- "@qilin-agent/client-ui-primitives": "3.1.5",
57
- "@qilin-agent/client-test-runtime": "3.1.5",
58
- "@qilin-agent/client-locale": "3.1.5",
59
- "@qilin-agent/client-ui-slots": "3.1.5",
60
- "@qilin-agent/kylin": "~4.0.3",
61
- "@qilin-agent/plan-mode": "3.1.5",
62
- "@qilin-agent/session": "3.1.5",
63
- "@qilin-agent/client-ui-renderer": "3.1.5",
64
- "@qilin-agent/client-ui-session": "3.1.5",
65
- "@qilin-agent/client-ui-chat": "3.1.5",
66
- "@qilin-agent/api-session-controller": "3.1.5",
67
- "@qilin-agent/client-ui-sidebar-right": "3.1.5",
68
- "@qilin-agent/client-ui-user-questions": "3.1.5",
69
- "@qilin-agent/client-resources": "3.1.5",
70
- "@qilin-agent/llm": "3.1.5",
71
- "@qilin-agent/tools": "3.1.5",
72
- "@qilin-agent/typert-protocol": "3.1.5",
73
- "@qilin-agent/util-crypto": "3.1.5"
53
+ "@qilin-agent/client-store": "3.1.6",
54
+ "@qilin-agent/client-test-runtime": "3.1.6",
55
+ "@qilin-agent/api-remotes": "3.1.6",
56
+ "@qilin-agent/client-ui-conversation": "3.1.6",
57
+ "@qilin-agent/client-ui-primitives": "3.1.6",
58
+ "@qilin-agent/client-locale": "3.1.6",
59
+ "@qilin-agent/client-ui-slots": "3.1.6",
60
+ "@qilin-agent/kylin": "~4.0.5",
61
+ "@qilin-agent/session": "3.1.6",
62
+ "@qilin-agent/client-ui-session": "3.1.6",
63
+ "@qilin-agent/plan-mode": "3.1.6",
64
+ "@qilin-agent/client-ui-renderer": "3.1.6",
65
+ "@qilin-agent/api-session-controller": "3.1.6",
66
+ "@qilin-agent/client-ui-chat": "3.1.6",
67
+ "@qilin-agent/client-ui-user-questions": "3.1.6",
68
+ "@qilin-agent/client-resources": "3.1.6",
69
+ "@qilin-agent/typert-protocol": "3.1.6",
70
+ "@qilin-agent/tools": "3.1.6",
71
+ "@qilin-agent/llm": "3.1.6",
72
+ "@qilin-agent/client-ui-sidebar-right": "3.1.6",
73
+ "@qilin-agent/util-crypto": "3.1.6"
74
74
  },
75
75
  "files": [
76
76
  "lib/index.js",