@anionex/dsh-turn-rewind 0.2.1 → 0.2.2

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/lib/client.js CHANGED
@@ -5,12 +5,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.inject = void 0;
6
6
  exports.selectRewindMessage = selectRewindMessage;
7
7
  exports.apply = apply;
8
+ exports.collectChatNodes = collectChatNodes;
8
9
  exports.RewindMessagePortals = RewindMessagePortals;
9
10
  exports.RewindMessageAction = RewindMessageAction;
10
11
  exports.TurnRewindSettingsCard = TurnRewindSettingsCard;
11
12
  exports.formatBytes = formatBytes;
12
13
  exports.selectRewindMessageTarget = selectRewindMessageTarget;
14
+ exports.responseJson = responseJson;
13
15
  exports.fileRecoveryLabel = fileRecoveryLabel;
16
+ exports.explainCheckpointFailure = explainCheckpointFailure;
14
17
  const jsx_runtime_1 = require("react/jsx-runtime");
15
18
  const react_1 = require("react");
16
19
  const react_dom_1 = require("react-dom");
@@ -117,9 +120,46 @@ function apply(ctx) {
117
120
  }),
118
121
  }, TurnRewindSettingsCard));
119
122
  }
123
+ /** Narrow a chat node source to the keyed store form. */
124
+ function isNodeStore(value) {
125
+ return typeof value.get === 'function';
126
+ }
127
+ /**
128
+ * Resolve the ordered chat node list from one chat projection.
129
+ *
130
+ * Both inputs keep a stable identity across renders: `order` is republished only
131
+ * when the node set changes and the store is a mutable handle, so the caller can
132
+ * memoize the list instead of allocating a new array on every render (a fresh
133
+ * array per render makes `useSyncExternalStore` loop forever).
134
+ * @param order - ordered node keys, or null when the projection is absent.
135
+ * @param store - keyed node store, a legacy node array, or null.
136
+ * @returns the chat nodes in render order.
137
+ */
138
+ function collectChatNodes(order, store) {
139
+ if (store === null)
140
+ return [];
141
+ if (Array.isArray(store))
142
+ return store;
143
+ if (order !== null && isNodeStore(store)) {
144
+ const nodes = [];
145
+ for (const key of order) {
146
+ const node = store.get(key);
147
+ if (node !== undefined)
148
+ nodes.push(node);
149
+ }
150
+ return nodes;
151
+ }
152
+ return typeof store.values === 'function' ? Array.from(store.values()) : [];
153
+ }
120
154
  /** Session-scoped bridge that portals rewind controls into direct user-message action rows. */
121
- function RewindMessagePortals({ sessionId, openRestoredSession, useSession }) {
122
- const nodes = useSession(snapshot => snapshot.chat?.nodes.values() ?? snapshot.nodes);
155
+ function RewindMessagePortals({ sessionId, openRestoredSession, useSession, useChat }) {
156
+ // DSH 0.1.2+ moved the Chat projection out of the Session snapshot into its own
157
+ // session-scoped `useChat` hook; `snapshot.chat` remains the 0.1.1 shape.
158
+ const readSnapshot = useChat ?? useSession;
159
+ const chatOf = (snapshot) => snapshot.chat ?? snapshot;
160
+ const chatOrder = readSnapshot(snapshot => chatOf(snapshot).order ?? null);
161
+ const chatStore = readSnapshot(snapshot => chatOf(snapshot).nodes ?? null);
162
+ const nodes = (0, react_1.useMemo)(() => collectChatNodes(chatOrder, chatStore), [chatOrder, chatStore]);
123
163
  const [targets, setTargets] = (0, react_1.useState)([]);
124
164
  (0, react_1.useLayoutEffect)(() => {
125
165
  let active = true;
@@ -346,7 +386,7 @@ function RewindMessageAction({ matched, sessionId, openRestoredSession }) {
346
386
  const actionLabel = mode === 'both' ? '恢复并从这里继续' : mode === 'code' ? '恢复文件' : '只回溯消息';
347
387
  const radioName = `dcl-rewind-${sessionId}-${String(matched.messageSeq)}`;
348
388
  const branchChanged = ready !== null && ready.checkpointBranch !== ready.currentBranch;
349
- return ((0, jsx_runtime_1.jsxs)("div", { className: "dcl-rewind-tail", children: [(0, jsx_runtime_1.jsx)(dsh_client_ui_primitives_1.Tooltip, { label: "\u6062\u590D\u5230\u53D1\u9001\u8FD9\u6761\u6D88\u606F\u4E4B\u524D", side: "bottom", children: (0, jsx_runtime_1.jsx)("button", { type: "button", className: "dcl-rewind-trigger", onClick: show, "aria-label": "\u6062\u590D\u5230\u53D1\u9001\u8FD9\u6761\u6D88\u606F\u4E4B\u524D", children: (0, jsx_runtime_1.jsx)(RewindIcon, { size: 16 }) }) }), (0, jsx_runtime_1.jsx)(dsh_client_ui_primitives_1.Modal, { open: open, onClose: close, title: "\u6062\u590D\u5230\u53D1\u9001\u8FD9\u6761\u6D88\u606F\u4E4B\u524D", closeLabel: "\u5173\u95ED", description: "\u67E5\u770B\u6062\u590D\u7684\u6587\u4EF6\uFF0C\u9009\u62E9\u9002\u5408\u4F60\u7684\u56DE\u9000\u65B9\u5F0F\u3002\u5F53\u524D\u4F1A\u8BDD\u4E0D\u53D7\u5F71\u54CD\u3002", className: "dcl-rewind-dialog", contentClassName: "dcl-rewind-content", footer: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(dsh_client_ui_primitives_1.Button, { variant: "outline", onClick: close, disabled: applying, children: "\u53D6\u6D88" }), (0, jsx_runtime_1.jsx)(dsh_client_ui_primitives_1.Button, { variant: "primary", onClick: () => { void applyRestore(); }, disabled: !canApply, children: applying ? '正在恢复…' : completed === null ? actionLabel : '已完成' })] })), children: (0, jsx_runtime_1.jsxs)("div", { className: "dcl-rewind-body", children: [loading && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-status", children: "\u6B63\u5728\u68C0\u67E5\u53EF\u4EE5\u6062\u590D\u7684\u9879\u76EE\u6587\u4EF6\u2026" }), preview?.status === 'pending' && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-status", children: "\u8FD9\u6761\u6D88\u606F\u53D1\u9001\u524D\u7684\u6587\u4EF6\u8FD8\u5728\u4FDD\u5B58\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5\u3002" }), preview?.status === 'missing' && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-error", children: "\u6CA1\u6709\u4FDD\u5B58\u8FD9\u6761\u6D88\u606F\u53D1\u9001\u524D\u7684\u6587\u4EF6\u3002\u53EF\u80FD\u662F\u5F53\u65F6\u8FD8\u6CA1\u542F\u7528\u56DE\u9000\u529F\u80FD\u3001\u8BB0\u5F55\u5DF2\u8D85\u8FC7\u4FDD\u7559\u671F\u9650\uFF0C\u6216\u5DF2\u5173\u95ED\u81EA\u52A8\u68C0\u67E5\u70B9\u3002\u4ECD\u53EF\u53EA\u56DE\u6EAF\u6D88\u606F\u3002" }), preview?.status === 'skipped' && (0, jsx_runtime_1.jsxs)("p", { className: "dcl-rewind-status", children: ["\u4E3A\u907F\u514D\u963B\u585E\u6D88\u606F\u53D1\u9001\uFF0C\u672C\u8F6E\u6CA1\u6709\u81EA\u52A8\u4FDD\u5B58\u6587\u4EF6\uFF1A", preview.reason, "\u4ECD\u53EF\u53EA\u56DE\u6EAF\u6D88\u606F\u3002"] }), preview?.status === 'failed' && (0, jsx_runtime_1.jsxs)("p", { className: "dcl-rewind-error", children: ["\u6CA1\u80FD\u4FDD\u5B58\u8FD9\u6761\u6D88\u606F\u53D1\u9001\u524D\u7684\u6587\u4EF6\uFF1A", preview.error, "\u4ECD\u53EF\u53EA\u56DE\u6EAF\u6D88\u606F\u3002"] }), preview !== null && ((0, jsx_runtime_1.jsxs)("div", { className: "dcl-rewind-options", children: [(0, jsx_runtime_1.jsxs)("label", { className: "dcl-rewind-option", "data-selected": mode === 'both', "data-disabled": applying || !hasFileChanges, children: [(0, jsx_runtime_1.jsx)("input", { type: "radio", name: radioName, checked: mode === 'both', disabled: applying || !hasFileChanges, onChange: () => { chooseMode('both'); } }), (0, jsx_runtime_1.jsxs)("span", { className: "dcl-rewind-option-content", children: [(0, jsx_runtime_1.jsx)("strong", { children: "\u6062\u590D\u6587\u4EF6\u5E76\u4ECE\u8FD9\u91CC\u7EE7\u7EED" }), (0, jsx_runtime_1.jsx)("span", { className: "dcl-rewind-option-description", children: "\u521B\u5EFA\u4E00\u4E2A\u4ECE\u8FD9\u91CC\u5F00\u59CB\u7684\u65B0\u4F1A\u8BDD\uFF08\u5F53\u524D\u5BF9\u8BDD\u4F1A\u4FDD\u7559\uFF09" })] })] }), (0, jsx_runtime_1.jsxs)("label", { className: "dcl-rewind-option", "data-selected": mode === 'code', "data-disabled": applying || !hasFileChanges, children: [(0, jsx_runtime_1.jsx)("input", { type: "radio", name: radioName, checked: mode === 'code', disabled: applying || !hasFileChanges, onChange: () => { chooseMode('code'); } }), (0, jsx_runtime_1.jsxs)("span", { className: "dcl-rewind-option-content", children: [(0, jsx_runtime_1.jsx)("strong", { children: "\u53EA\u6062\u590D\u6587\u4EF6" }), (0, jsx_runtime_1.jsx)("span", { className: "dcl-rewind-option-description", children: "\u6062\u590D\u8FD9\u6761\u6D88\u606F\u53D1\u9001\u524D\u7684\u6587\u4EF6\uFF0C\u5F53\u524D\u5BF9\u8BDD\u4FDD\u6301\u4E0D\u53D8\u3002" })] })] }), (0, jsx_runtime_1.jsxs)("label", { className: "dcl-rewind-option", "data-selected": mode === 'messages', "data-disabled": applying, children: [(0, jsx_runtime_1.jsx)("input", { type: "radio", name: radioName, checked: mode === 'messages', disabled: applying, onChange: () => { chooseMode('messages'); } }), (0, jsx_runtime_1.jsxs)("span", { className: "dcl-rewind-option-content", children: [(0, jsx_runtime_1.jsx)("strong", { children: "\u53EA\u56DE\u6EAF\u6D88\u606F\uFF08\u4E0D\u52A8\u6587\u4EF6\uFF09" }), (0, jsx_runtime_1.jsx)("span", { className: "dcl-rewind-option-description", children: "\u521B\u5EFA\u4E00\u4E2A\u4ECE\u8FD9\u91CC\u5F00\u59CB\u7684\u65B0\u4F1A\u8BDD\uFF0C\u9879\u76EE\u6587\u4EF6\u4FDD\u6301\u5F53\u524D\u72B6\u6001\u3002" })] })] })] })), ready !== null && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: "dcl-rewind-summary", children: [mode === 'messages'
389
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "dcl-rewind-tail", children: [(0, jsx_runtime_1.jsx)(dsh_client_ui_primitives_1.Tooltip, { label: "\u6062\u590D\u5230\u53D1\u9001\u8FD9\u6761\u6D88\u606F\u4E4B\u524D", side: "bottom", children: (0, jsx_runtime_1.jsx)("button", { type: "button", className: "dcl-rewind-trigger", onClick: show, "aria-label": "\u6062\u590D\u5230\u53D1\u9001\u8FD9\u6761\u6D88\u606F\u4E4B\u524D", children: (0, jsx_runtime_1.jsx)(RewindIcon, { size: 16 }) }) }), (0, jsx_runtime_1.jsx)(dsh_client_ui_primitives_1.Modal, { open: open, onClose: close, title: "\u6062\u590D\u5230\u53D1\u9001\u8FD9\u6761\u6D88\u606F\u4E4B\u524D", closeLabel: "\u5173\u95ED", description: "\u67E5\u770B\u6062\u590D\u7684\u6587\u4EF6\uFF0C\u9009\u62E9\u9002\u5408\u4F60\u7684\u56DE\u9000\u65B9\u5F0F\u3002\u5F53\u524D\u4F1A\u8BDD\u4E0D\u53D7\u5F71\u54CD\u3002", className: "dcl-rewind-dialog", contentClassName: "dcl-rewind-content", footer: ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(dsh_client_ui_primitives_1.Button, { variant: "outline", onClick: close, disabled: applying, children: "\u53D6\u6D88" }), (0, jsx_runtime_1.jsx)(dsh_client_ui_primitives_1.Button, { variant: "primary", onClick: () => { void applyRestore(); }, disabled: !canApply, children: applying ? '正在恢复…' : completed === null ? actionLabel : '已完成' })] })), children: (0, jsx_runtime_1.jsxs)("div", { className: "dcl-rewind-body", children: [loading && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-status", children: "\u6B63\u5728\u68C0\u67E5\u53EF\u4EE5\u6062\u590D\u7684\u9879\u76EE\u6587\u4EF6\u2026" }), preview?.status === 'pending' && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-status", children: "\u8FD9\u6761\u6D88\u606F\u53D1\u9001\u524D\u7684\u6587\u4EF6\u8FD8\u5728\u4FDD\u5B58\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5\u3002" }), preview?.status === 'missing' && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-error", children: "\u6CA1\u6709\u4FDD\u5B58\u8FD9\u6761\u6D88\u606F\u53D1\u9001\u524D\u7684\u6587\u4EF6\u3002\u53EF\u80FD\u662F\u5F53\u65F6\u8FD8\u6CA1\u542F\u7528\u56DE\u9000\u529F\u80FD\u3001\u8BB0\u5F55\u5DF2\u8D85\u8FC7\u4FDD\u7559\u671F\u9650\uFF0C\u6216\u5DF2\u5173\u95ED\u81EA\u52A8\u68C0\u67E5\u70B9\u3002\u4ECD\u53EF\u53EA\u56DE\u6EAF\u6D88\u606F\u3002" }), preview?.status === 'skipped' && (0, jsx_runtime_1.jsxs)("p", { className: "dcl-rewind-status", children: ["\u4E3A\u907F\u514D\u963B\u585E\u6D88\u606F\u53D1\u9001\uFF0C\u672C\u8F6E\u6CA1\u6709\u81EA\u52A8\u4FDD\u5B58\u6587\u4EF6\uFF1A", preview.reason, "\u4ECD\u53EF\u53EA\u56DE\u6EAF\u6D88\u606F\u3002"] }), preview?.status === 'failed' && (0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-error", children: explainCheckpointFailure(preview.error) }), preview !== null && ((0, jsx_runtime_1.jsxs)("div", { className: "dcl-rewind-options", children: [(0, jsx_runtime_1.jsxs)("label", { className: "dcl-rewind-option", "data-selected": mode === 'both', "data-disabled": applying || !hasFileChanges, children: [(0, jsx_runtime_1.jsx)("input", { type: "radio", name: radioName, checked: mode === 'both', disabled: applying || !hasFileChanges, onChange: () => { chooseMode('both'); } }), (0, jsx_runtime_1.jsxs)("span", { className: "dcl-rewind-option-content", children: [(0, jsx_runtime_1.jsx)("strong", { children: "\u6062\u590D\u6587\u4EF6\u5E76\u4ECE\u8FD9\u91CC\u7EE7\u7EED" }), (0, jsx_runtime_1.jsx)("span", { className: "dcl-rewind-option-description", children: "\u521B\u5EFA\u4E00\u4E2A\u4ECE\u8FD9\u91CC\u5F00\u59CB\u7684\u65B0\u4F1A\u8BDD\uFF08\u5F53\u524D\u5BF9\u8BDD\u4F1A\u4FDD\u7559\uFF09" })] })] }), (0, jsx_runtime_1.jsxs)("label", { className: "dcl-rewind-option", "data-selected": mode === 'code', "data-disabled": applying || !hasFileChanges, children: [(0, jsx_runtime_1.jsx)("input", { type: "radio", name: radioName, checked: mode === 'code', disabled: applying || !hasFileChanges, onChange: () => { chooseMode('code'); } }), (0, jsx_runtime_1.jsxs)("span", { className: "dcl-rewind-option-content", children: [(0, jsx_runtime_1.jsx)("strong", { children: "\u53EA\u6062\u590D\u6587\u4EF6" }), (0, jsx_runtime_1.jsx)("span", { className: "dcl-rewind-option-description", children: "\u6062\u590D\u8FD9\u6761\u6D88\u606F\u53D1\u9001\u524D\u7684\u6587\u4EF6\uFF0C\u5F53\u524D\u5BF9\u8BDD\u4FDD\u6301\u4E0D\u53D8\u3002" })] })] }), (0, jsx_runtime_1.jsxs)("label", { className: "dcl-rewind-option", "data-selected": mode === 'messages', "data-disabled": applying, children: [(0, jsx_runtime_1.jsx)("input", { type: "radio", name: radioName, checked: mode === 'messages', disabled: applying, onChange: () => { chooseMode('messages'); } }), (0, jsx_runtime_1.jsxs)("span", { className: "dcl-rewind-option-content", children: [(0, jsx_runtime_1.jsx)("strong", { children: "\u53EA\u56DE\u6EAF\u6D88\u606F\uFF08\u4E0D\u52A8\u6587\u4EF6\uFF09" }), (0, jsx_runtime_1.jsx)("span", { className: "dcl-rewind-option-description", children: "\u521B\u5EFA\u4E00\u4E2A\u4ECE\u8FD9\u91CC\u5F00\u59CB\u7684\u65B0\u4F1A\u8BDD\uFF0C\u9879\u76EE\u6587\u4EF6\u4FDD\u6301\u5F53\u524D\u72B6\u6001\u3002" })] })] })] })), ready !== null && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: "dcl-rewind-summary", children: [mode === 'messages'
350
390
  ? (0, jsx_runtime_1.jsx)("strong", { children: "\u9879\u76EE\u6587\u4EF6\u4FDD\u6301\u4E0D\u53D8" })
351
391
  : (0, jsx_runtime_1.jsxs)("strong", { children: ["\u5C06\u6062\u590D ", String(ready.totalChanges), " \u4E2A\u6587\u4EF6"] }), (0, jsx_runtime_1.jsx)("span", { children: mode === 'both' ? '恢复后在新对话里继续' : mode === 'code' ? '当前对话保持不变' : '仅创建从这里继续的新对话' })] }), sharedBlocked && ((0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-error", children: "\u8FD9\u4E2A\u9879\u76EE\u76EE\u5F55\u8FD8\u6709\u522B\u7684\u5BF9\u8BDD\u6B63\u5728\u8FD0\u884C\u3002\u6062\u590D\u6587\u4EF6\u4F1A\u5F71\u54CD\u5230\u5B83\u4EEC\uFF0C\u56E0\u6B64\u672C\u6B21\u64CD\u4F5C\u5DF2\u88AB\u963B\u6B62\u3002\u8BF7\u7B49\u90A3\u4E9B\u5BF9\u8BDD\u7ED3\u675F\u6216\u505C\u6B62\u540E\uFF0C\u518D\u91CD\u65B0\u68C0\u67E5\u3002" })), ready.headChanged && !ready.operationChanged && ((0, jsx_runtime_1.jsx)("p", { className: "dcl-rewind-warning", children: branchChanged
352
392
  ? '当前所在的 Git 分支和发送这条消息时不同。恢复不会切换分支,只会把当时的文件内容恢复到当前分支。'
@@ -665,11 +705,34 @@ async function openSessionWithDraft(ctx, sessionId, promptText) {
665
705
  }
666
706
  throw lastError;
667
707
  }
708
+ /**
709
+ * Read one rewind response body without ever leaking a raw parse error.
710
+ *
711
+ * A missing route, a restarted Host, or a proxy answering before the plugin
712
+ * loads all produce a body that is not the plugin's JSON envelope; those must
713
+ * surface as an explained failure instead of `Failed to execute 'json' …`.
714
+ * @param response - fetch response from the rewind endpoint.
715
+ * @returns the decoded JSON body.
716
+ */
668
717
  async function responseJson(response) {
669
- const value = await response.json();
718
+ const text = await response.text();
719
+ let value;
720
+ try {
721
+ value = text === '' ? undefined : JSON.parse(text);
722
+ }
723
+ catch {
724
+ throw new RewindRequestError(response.ok ? 'REWIND_INVALID_RESPONSE' : 'REWIND_ENDPOINT_UNAVAILABLE', `回退服务返回了无法解析的内容(HTTP ${String(response.status)})。`);
725
+ }
726
+ const record = value !== null && typeof value === 'object' && !Array.isArray(value)
727
+ ? value
728
+ : undefined;
670
729
  if (!response.ok) {
671
- const record = recordOf(value);
672
- throw new RewindRequestError(typeof record.code === 'string' ? record.code : 'REWIND_FAILED', typeof record.error === 'string' ? record.error : `请求失败:${String(response.status)}`);
730
+ throw new RewindRequestError(typeof record?.code === 'string'
731
+ ? record.code
732
+ : response.status === 404 ? 'REWIND_ENDPOINT_UNAVAILABLE' : 'REWIND_FAILED', typeof record?.error === 'string' ? record.error : `请求失败:${String(response.status)}`);
733
+ }
734
+ if (value === undefined) {
735
+ throw new RewindRequestError('REWIND_INVALID_RESPONSE', '回退服务返回了空响应。');
673
736
  }
674
737
  return value;
675
738
  }
@@ -723,6 +786,8 @@ function friendlyError(error) {
723
786
  if (!(error instanceof RewindRequestError))
724
787
  return messageOf(error);
725
788
  switch (error.code) {
789
+ case 'REWIND_ENDPOINT_UNAVAILABLE': return '回退服务没有响应。请确认 @anionex/dsh-turn-rewind 已挂载到当前 DSH,并重启 DSH 后重试。';
790
+ case 'REWIND_INVALID_RESPONSE': return '回退服务返回了无法解析的内容。请重启 DSH 后重试。';
726
791
  case 'PLAN_STALE': return '项目文件在检查后又发生了变化。为避免覆盖新修改,请重新检查后再恢复。';
727
792
  case 'PLAN_STALE_REPOSITORY': return 'Git 状态在检查后又发生了变化,恢复已失效。请重新检查后再试。';
728
793
  case 'WORKSPACE_IN_USE': return '这个项目目录还有别的对话正在运行。请等那些对话结束或停止后,再重新检查。';
@@ -737,6 +802,32 @@ function friendlyError(error) {
737
802
  default: return error.message;
738
803
  }
739
804
  }
805
+ /**
806
+ * Explain one recorded checkpoint failure in user terms.
807
+ *
808
+ * The Host records the raw `[CODE] diagnostic` line; a non-Git project
809
+ * directory is the common case and deserves a plain sentence instead of a
810
+ * `git rev-parse` transcript.
811
+ * @param message - recorded checkpoint failure message.
812
+ * @returns one user-facing sentence.
813
+ */
814
+ function explainCheckpointFailure(message) {
815
+ const code = /^\[([A-Z_]+)\]/.exec(message)?.[1];
816
+ switch (code) {
817
+ case 'GIT_COMMAND_FAILED':
818
+ return /not a git repository/i.test(message)
819
+ ? '这个项目目录不是 Git 仓库,回退功能无法保存文件检查点。仍可只回溯消息。'
820
+ : `无法读取这个项目目录的 Git 状态:${message}仍可只回溯消息。`;
821
+ case 'FILE_TOO_LARGE':
822
+ case 'SNAPSHOT_TOO_LARGE':
823
+ case 'TOO_MANY_FILES':
824
+ return '本轮有文件超过检查点的大小或数量上限,没有保存文件检查点。仍可只回溯消息。';
825
+ case 'INVALID_PATH':
826
+ return '项目目录里有无法安全保存的路径(例如嵌套的独立 Git 仓库),没有保存文件检查点。仍可只回溯消息。';
827
+ default:
828
+ return `没能保存这条消息发送前的文件:${message}仍可只回溯消息。`;
829
+ }
830
+ }
740
831
  function messageOf(error) {
741
832
  return error instanceof Error ? error.message : String(error);
742
833
  }
package/lib/client.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client/src/client/index.tsx"],"names":[],"mappings":";;;AAmPA,kDAOC;AAID,sBA2BC;AAGD,oDAkCC;AAGD,kDA6QC;AAiDD,wDAyOC;AA+DD,kCAUC;AAmDD,8DAQC;AAuGD,8CAQC;;AA3lCD,iCAAuH;AACvH,yCAAwC;AACxC,oFAI8C;AA8K9C,MAAM,IAAI,GAAG,cAAc,CAAA;AAC3B,MAAM,WAAW,GAAG,qBAAqB,CAAA;AACzC,MAAM,QAAQ,GAAG,0BAA0B,CAAA;AAC3C,MAAM,MAAM,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyDd,CAAA;AAED,mFAAmF;AACnF,SAAgB,mBAAmB,CAAC,IAA0B;IAC5D,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IACxF,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;SACpC,MAAM,CAAC,CAAC,KAAK,EAA6D,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;SACrI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;SACxB,IAAI,CAAC,IAAI,CAAC,CAAA;IACb,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,CAAA;AAC7C,CAAC;AAED,0FAA0F;AAC7E,QAAA,MAAM,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,CAAC,CAAA;AAC3D,SAAgB,KAAK,CAAC,GAAsB;IAC1C,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;QACd,IAAI,QAAQ,CAAC,aAAa,CAAC,0BAA0B,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;QAC5F,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;QAC3C,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,0BAA0B,CAAA;QAC/C,GAAG,CAAC,OAAO,CAAC,SAAS,GAAG,QAAQ,CAAA;QAChC,GAAG,CAAC,WAAW,GAAG,MAAM,CAAA;QACxB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC9B,OAAO,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAA,CAAC,CAAC,CAAA;IAC/B,CAAC,EAAE,qBAAqB,CAAC,CAAA;IACzB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qCAAqC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC/E,IAAI,EAAE,qCAAqC;QAC3C,EAAE,EAAE,qBAAqB;QACzB,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACb,mBAAmB,EAAE,KAAK,EAAE,SAAiB,EAAE,UAAkB,EAAE,EAAE;gBACnE,MAAM,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,CAAA;YACxD,CAAC;SACF,CAAC;KACH,EAAE,oBAAoB,CAAC,CAAC,CAAA;IACzB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC;QAChE,IAAI,EAAE,sBAAsB;QAC5B,GAAG,EAAE,aAAa;QAClB,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACb,KAAK,EAAE,GAAG,CAAC,aAAa,EAAE,IAAI,CAA0B,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;SACtF,CAAC;KACH,EAAE,sBAAsB,CAAC,CAAC,CAAA;AAC7B,CAAC;AAED,+FAA+F;AAC/F,SAAgB,oBAAoB,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,UAAU,EAA2B;IAC1G,MAAM,KAAK,GAAG,UAAU,CAA4B,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAA;IAChH,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAgC,EAAE,CAAC,CAAA;IAEzE,IAAA,uBAAe,EAAC,GAAG,EAAE;QACnB,IAAI,MAAM,GAAG,IAAI,CAAA;QACjB,IAAI,MAAM,GAAG,KAAK,CAAA;QAClB,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,IAAI,CAAC,MAAM;gBAAE,OAAM;YACnB,MAAM,IAAI,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;YACxC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAC1E,CAAC,CAAA;QACD,MAAM,YAAY,GAAG,GAAS,EAAE;YAC9B,IAAI,MAAM,IAAI,CAAC,MAAM;gBAAE,OAAM;YAC7B,MAAM,GAAG,IAAI,CAAA;YACb,cAAc,CAAC,GAAG,EAAE;gBAClB,MAAM,GAAG,KAAK,CAAA;gBACd,OAAO,EAAE,CAAA;YACX,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;QACD,OAAO,EAAE,CAAA;QACT,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,YAAY,CAAC,CAAA;QACnD,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QACnE,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,KAAK,CAAA;YACd,QAAQ,CAAC,UAAU,EAAE,CAAA;QACvB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,IAAA,wBAAY,EACvC,uBAAC,mBAAmB,IAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,mBAAmB,EAAE,mBAAmB,GAAI,EAChH,MAAM,CAAC,SAAS,EAChB,GAAG,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CACpD,CAAC,CAAA;AACJ,CAAC;AAED,iFAAiF;AACjF,SAAgB,mBAAmB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAA4B;IACvG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IACvC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAC7C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAiB,IAAI,CAAC,CAAA;IAC5D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAa,MAAM,CAAC,CAAA;IACpD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAC/C,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAC3D,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IACzC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAA;IACvD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAA;IAC/D,MAAM,SAAS,GAAG,IAAA,cAAM,EAAyB,IAAI,CAAC,CAAA;IACtD,MAAM,YAAY,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAA;IAClC,MAAM,WAAW,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAA;IAEjC,IAAA,iBAAS,EAAC,GAAG,EAAE,CAAC,GAAG,EAAE;QACnB,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;QAC1B,SAAS,CAAC,OAAO,GAAG,IAAI,CAAA;IAC1B,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,MAAM,IAAI,GAAG,IAAA,mBAAW,EAAC,KAAK,IAAI,EAAE;QAClC,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;QAC1B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,SAAS,CAAC,OAAO,GAAG,UAAU,CAAA;QAC9B,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,QAAQ,CAAC,KAAK,CAAC,CAAA;QACf,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,YAAY,CAAC,IAAI,CAAC,CAAA;QAClB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,cAAc,kBAAkB,CAAC,SAAS,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE;gBAC1H,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM;aACrG,CAAC,CAAA;YACF,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC3D,IAAI,SAAS,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACrC,UAAU,CAAC,OAAO,CAAC,CAAA;gBACnB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;oBACzB,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,OAAO,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;gBACvF,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC/B,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBAC9D,IAAI,CAAC,WAAW,CAAC,OAAO;oBAAE,OAAO,CAAC,UAAU,CAAC,CAAA;YAC/C,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,SAAS,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBACrC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAA;gBACxB,UAAU,CAAC,KAAK,CAAC,CAAA;YACnB,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAA;IAEnC,MAAM,IAAI,GAAG,GAAS,EAAE;QACtB,OAAO,CAAC,IAAI,CAAC,CAAA;QACb,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,OAAO,CAAC,MAAM,CAAC,CAAA;QACf,WAAW,CAAC,OAAO,GAAG,KAAK,CAAA;QAC3B,QAAQ,CAAC,KAAK,CAAC,CAAA;QACf,KAAK,IAAI,EAAE,CAAA;IACb,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,GAAS,EAAE;QACvB,IAAI,QAAQ;YAAE,OAAM;QACpB,SAAS,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;QAC1B,SAAS,CAAC,OAAO,GAAG,IAAI,CAAA;QACxB,UAAU,CAAC,KAAK,CAAC,CAAA;QACjB,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC,CAAA;IACD,MAAM,UAAU,GAAG,CAAC,IAAgB,EAAQ,EAAE;QAC5C,IAAI,QAAQ;YAAE,OAAM;QACpB,WAAW,CAAC,OAAO,GAAG,IAAI,CAAA;QAC1B,OAAO,CAAC,IAAI,CAAC,CAAA;QACb,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,YAAY,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;IAC1D,MAAM,cAAc,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,YAAY,GAAG,CAAC,CAAA;IAC/D,MAAM,YAAY,GAAG,cAAc,IAAI,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACvE,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;IAC/D,MAAM,WAAW,GAAG,cAAc,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY;WAClF,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,CAAC,CAAA;IACrE,MAAM,QAAQ,GAAG,OAAO,KAAK,IAAI;WAC5B,CAAC,OAAO;WACR,CAAC,QAAQ;WACT,CAAC,cAAc;WACf,SAAS,KAAK,IAAI;WAClB,CAAC,IAAI,KAAK,UAAU;YACrB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,KAAK,KAAK,IAAI,IAAI,cAAc,IAAI,CAAC,YAAY,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,CAAA;IAEpG,MAAM,cAAc,GAAG,KAAK,IAAmB,EAAE;QAC/C,IAAI,KAAK,KAAK,IAAI,IAAI,cAAc,IAAI,CAAC,KAAK,CAAC,SAAS;YAAE,OAAM;QAChE,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACvB,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAA;YACpC,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM,CAAA;YAC7B,OAAO,MAAM,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;gBACnC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,cAAc,kBAAkB,CAAC,SAAS,CAAC,eAAe,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;oBACvK,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,UAAU;iBAC1E,CAAC,CAAA;gBACF,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;gBACxD,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;uBACtB,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY;uBACxC,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY;uBACxC,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;oBAC5B,MAAM,IAAI,kBAAkB,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAA;gBAChE,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAA;gBAC/B,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;gBAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;oBAAE,MAAK;YACtC,CAAC;YACD,IAAI,MAAM,KAAK,KAAK,CAAC,YAAY;gBAAE,MAAM,IAAI,kBAAkB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAA;YAC7F,UAAU,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;QAChE,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,IAAI,MAAM,YAAY,kBAAkB,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;gBAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;YACxF,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;QACjC,CAAC;gBAAS,CAAC;YACT,iBAAiB,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,KAAK,IAAmB,EAAE;QAC7C,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC,OAAO;YAAE,OAAM;QACjE,MAAM,IAAI,GAA4B;YACpC,IAAI;YACJ,SAAS;YACT,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAA;QACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS;gBAAE,OAAM;YAC5F,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;YACtC,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;YAC1B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAA;QACxC,CAAC;QACD,YAAY,CAAC,OAAO,GAAG,IAAI,CAAA;QAC3B,WAAW,CAAC,IAAI,CAAC,CAAA;QACjB,QAAQ,CAAC,IAAI,CAAC,CAAA;QACd,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE;gBACjC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC3E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3B,CAAC,CAAA;YACF,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAA;YACrD,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YACtD,IAAI,UAAU,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAA;YACxE,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACxB,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;gBACpE,YAAY,CAAC,wBAAwB,CAAC,CAAA;gBACtC,IAAI,CAAC;oBACH,MAAM,mBAAmB,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;oBAC7D,OAAO,CAAC,KAAK,CAAC,CAAA;gBAChB,CAAC;gBAAC,OAAO,eAAe,EAAE,CAAC;oBACzB,QAAQ,CAAC,kBAAkB,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;gBAC1D,CAAC;gBACD,OAAM;YACR,CAAC;YACD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;gBACrD,YAAY,CAAC,+BAA+B,CAAC,CAAA;gBAC7C,OAAM;YACR,CAAC;YACD,MAAM,cAAc,GAAG,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;YACpE,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,CAAA;YACrD,YAAY,CAAC,8BAA8B,CAAC,CAAA;YAC5C,IAAI,CAAC;gBACH,MAAM,mBAAmB,CAAC,cAAc,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;gBAC7D,OAAO,CAAC,KAAK,CAAC,CAAA;YAChB,CAAC;YAAC,OAAO,eAAe,EAAE,CAAC;gBACzB,QAAQ,CAAC,0BAA0B,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;YAClE,CAAC;QACH,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,IAAI,MAAM,YAAY,kBAAkB,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,CAAC,EAAE,CAAC;gBACjH,QAAQ,CAAC,IAAI,CAAC,CAAA;YAChB,CAAC;YACD,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAA;QACjC,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,GAAG,KAAK,CAAA;YAC5B,WAAW,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;IACrF,MAAM,SAAS,GAAG,cAAc,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAA;IACzE,MAAM,aAAa,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,gBAAgB,KAAK,KAAK,CAAC,aAAa,CAAA;IAEtF,OAAO,CACL,iCAAK,SAAS,EAAC,iBAAiB,aAC9B,uBAAC,kCAAO,IAAC,KAAK,EAAC,oEAAa,EAAC,IAAI,EAAC,QAAQ,YACxC,mCAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,oBAAoB,EAAC,OAAO,EAAE,IAAI,gBAAa,oEAAa,YAC1F,uBAAC,UAAU,IAAC,IAAI,EAAE,EAAE,GAAI,GACjB,GACD,EACV,uBAAC,gCAAK,IACJ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,KAAK,EACd,KAAK,EAAC,oEAAa,EACnB,UAAU,EAAC,cAAI,EACf,WAAW,EAAC,0KAA8B,EAC1C,SAAS,EAAC,mBAAmB,EAC7B,gBAAgB,EAAC,oBAAoB,EACrC,MAAM,EAAE,CACN,6DACE,uBAAC,iCAAM,IAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,6BAAa,EACzE,uBAAC,iCAAM,IAAC,OAAO,EAAC,SAAS,EAAC,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,YAAY,EAAE,CAAA,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,YAClF,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,GACvD,IACR,CACJ,YAED,iCAAK,SAAS,EAAC,iBAAiB,aAC7B,OAAO,IAAI,8BAAG,SAAS,EAAC,mBAAmB,qGAAmB,EAC9D,OAAO,EAAE,MAAM,KAAK,SAAS,IAAI,8BAAG,SAAS,EAAC,mBAAmB,+IAA0B,EAC3F,OAAO,EAAE,MAAM,KAAK,SAAS,IAAI,8BAAG,SAAS,EAAC,kBAAkB,uWAA8D,EAC9H,OAAO,EAAE,MAAM,KAAK,SAAS,IAAI,+BAAG,SAAS,EAAC,mBAAmB,+IAAuB,OAAO,CAAC,MAAM,wDAAa,EACnH,OAAO,EAAE,MAAM,KAAK,QAAQ,IAAI,+BAAG,SAAS,EAAC,kBAAkB,2GAAiB,OAAO,CAAC,KAAK,wDAAa,EAC1G,OAAO,KAAK,IAAI,IAAI,CACnB,iCAAK,SAAS,EAAC,oBAAoB,aACjC,mCAAO,SAAS,EAAC,mBAAmB,mBAAgB,IAAI,KAAK,MAAM,mBAAiB,QAAQ,IAAI,CAAC,cAAc,aAC7G,kCAAO,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,KAAK,MAAM,EAAE,QAAQ,EAAE,QAAQ,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA,CAAC,CAAC,GAAI,EAChJ,kCAAM,SAAS,EAAC,2BAA2B,aAAC,8GAA2B,EAAA,iCAAM,SAAS,EAAC,+BAA+B,qJAA8B,IAAO,IACrJ,EACR,mCAAO,SAAS,EAAC,mBAAmB,mBAAgB,IAAI,KAAK,MAAM,mBAAiB,QAAQ,IAAI,CAAC,cAAc,aAC7G,kCAAO,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,KAAK,MAAM,EAAE,QAAQ,EAAE,QAAQ,IAAI,CAAC,cAAc,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAA,CAAC,CAAC,GAAI,EAChJ,kCAAM,SAAS,EAAC,2BAA2B,aAAC,gFAAsB,EAAA,iCAAM,SAAS,EAAC,+BAA+B,qJAA8B,IAAO,IAChJ,EACR,mCAAO,SAAS,EAAC,mBAAmB,mBAAgB,IAAI,KAAK,UAAU,mBAAiB,QAAQ,aAC9F,kCAAO,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,KAAK,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA,CAAC,CAAC,GAAI,EACrI,kCAAM,SAAS,EAAC,2BAA2B,aAAC,oHAA4B,EAAA,iCAAM,SAAS,EAAC,+BAA+B,uKAAiC,IAAO,IACzJ,IACJ,CACP,EACA,KAAK,KAAK,IAAI,IAAI,CACjB,6DACE,iCAAK,SAAS,EAAC,oBAAoB,aAChC,IAAI,KAAK,UAAU;4CAClB,CAAC,CAAC,kGAAyB;4CAC3B,CAAC,CAAC,sEAAa,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,2BAAc,EACzD,2CAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,GAAQ,IACzF,EACL,aAAa,IAAI,CAChB,8BAAG,SAAS,EAAC,kBAAkB,6WAA+D,CAC/F,EACA,KAAK,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,CAC/C,8BAAG,SAAS,EAAC,oBAAoB,YAAE,aAAa;wCAC9C,CAAC,CAAC,oDAAoD;wCACtD,CAAC,CAAC,oDAAoD,GAAK,CAC9D,EACA,YAAY,IAAI,8BAAG,SAAS,EAAC,oBAAoB,gOAA+C,EAChG,WAAW,IAAI,8BAAG,SAAS,EAAC,kBAAkB,2GAAoB,EAClE,KAAK,IAAI,8BAAG,SAAS,EAAC,kBAAkB,qPAA2C,EACnF,KAAK,CAAC,YAAY,KAAK,CAAC,IAAI,8BAAG,SAAS,EAAC,mBAAmB,yRAAiD,EAC7G,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAC3B,gCAAK,SAAS,EAAC,kBAAkB,YAC9B,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,iCAAK,SAAS,EAAC,iBAAiB,aAAmB,2CAAO,MAAM,CAAC,IAAI,GAAQ,EAAA,iCAAM,SAAS,EAAC,iBAAiB,YAAE,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAQ,KAAhH,MAAM,CAAC,IAAI,CAA2G,CAAC,GACtL,CACP,EACA,KAAK,CAAC,SAAS,IAAI,CAClB,gCAAK,SAAS,EAAC,yBAAyB,YAAC,uBAAC,iCAAM,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,cAAc,EAAE,CAAA,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,YAAG,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAU,GAAM,CAC1O,IACA,CACJ,EACA,SAAS,KAAK,IAAI,IAAI,8BAAG,SAAS,EAAC,mBAAmB,YAAE,SAAS,GAAK,EACtE,KAAK,KAAK,IAAI,IAAI,8BAAG,SAAS,EAAC,kBAAkB,YAAE,KAAK,GAAK,EAC7D,KAAK,KAAK,IAAI,IAAI,8BAAG,SAAS,EAAC,mBAAmB,6QAA+C,EACjG,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,IAAI,KAAK,IAAI,WAAW,IAAI,aAAa,IAAI,YAAY,CAAC,IAAI,uBAAC,iCAAM,IAAC,SAAS,EAAC,kBAAkB,EAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,IAAI,EAAE,CAAA,CAAC,CAAC,yCAAe,IACjN,GACA,IACJ,CACP,CAAA;AACH,CAAC;AAWD,MAAM,uBAAuB,GAAuD;IAClF,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM;CAC9H,CAAA;AAMD,MAAM,aAAa,GAA2G;IAC5H,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,sBAAsB,EAAE;IACrF,EAAE,GAAG,EAAE,8BAA8B,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,4BAA4B,EAAE;IACpG,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE;IACtE,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE;IACxE,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE;IAC3E,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE;IACxE,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE;IACzE,EAAE,GAAG,EAAE,yBAAyB,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,2BAA2B,EAAE;IAChG,EAAE,GAAG,EAAE,2BAA2B,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,yBAAyB,EAAE;CAC/F,CAAA;AAED,MAAM,sBAAsB,GAA4E;IACtG,GAAG,EAAE,cAAc;IACnB,YAAY,EAAE,eAAe;IAC7B,MAAM,EAAE,YAAY;CACrB,CAAA;AAED,MAAM,YAAY,GAA6E;IAC7F,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;CACb,CAAA;AAED,MAAM,iBAAiB,GAAqC;IAC1D,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,IAAI;CACX,CAAA;AAED,iGAAiG;AACjG,SAAgB,sBAAsB,CAAC,EAAE,KAAK,EAA+B;IAC3E,MAAM,QAAQ,GAAG,IAAA,4BAAoB,EACnC,IAAA,mBAAW,EAAC,CAAC,MAAkB,EAAE,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EACpF,IAAA,mBAAW,EAAC,GAAG,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,uBAAuB,EAAE,CAAC,KAAK,CAAC,CAAC,CAC5E,CAAA;IACD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAwB,IAAI,CAAC,CAAA;IACjE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IACzD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAA;IACnE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAA4B,IAAI,CAAC,CAAA;IACjF,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAA;IAC/D,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAA;IACrD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAA+C,EAAE,CAAC,CAAA;IACtF,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IAC7D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAsB,IAAI,GAAG,EAAE,CAAC,CAAA;IAE1E,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,KAAK,IAAmB,EAAE;QAC1D,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACtB,cAAc,CAAC,IAAI,CAAC,CAAA;QACpB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAA;YACxH,SAAS,CAAC,oBAAoB,CAAC,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC/D,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;QACnC,CAAC;gBAAS,CAAC;YACT,gBAAgB,CAAC,KAAK,CAAC,CAAA;QACzB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAA,iBAAS,EAAC,GAAG,EAAE,GAAG,KAAK,aAAa,EAAE,CAAA,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAA;IAE1D,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAA+B,CAAC,CAAC,CAAC,EAAE,CAAA;IAC7H,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;IAC5B,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAA;IAEjE,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,IAAY,EAAQ,EAAE;QACvD,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,QAAQ;YAAE,OAAM;QAC5C,YAAY,CAAC,IAAI,CAAC,CAAA;QAClB,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,MAAe,EAAE,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;IAC7F,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,CAAC,KAA0B,EAAQ,EAAE;QACxD,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,QAAQ;YAAE,OAAM;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAC3B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAM;QAC/B,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,GAAG,MAAM,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,IAAI,CAAA,CAAC,CAAC,CAAC,CAAA;QACxF,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACxB,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,MAAe,EAAE,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;YACvF,OAAM;QACR,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACzC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YACjD,YAAY,CAAC,GAAG,KAAK,UAAU,CAAC,CAAA;YAChC,OAAM;QACR,CAAC;QACD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC,KAAK,CAAC;YAAE,OAAM;QACrC,YAAY,CAAC,IAAI,CAAC,CAAA;QAClB,KAAK,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,MAAe,EAAE,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;IAC/F,CAAC,CAAA;IAED,MAAM,eAAe,GAAG,KAAK,EAAE,IAA6B,EAAE,GAAW,EAAiB,EAAE;QAC1F,IAAI,IAAI,KAAK,IAAI;YAAE,OAAM;QACzB,OAAO,CAAC,GAAG,CAAC,CAAA;QACZ,cAAc,CAAC,IAAI,CAAC,CAAA;QACpB,eAAe,CAAC,IAAI,CAAC,CAAA;QACrB,kBAAkB,CAAC,KAAK,CAAC,CAAA;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,MAAM,KAAK,CAAC,WAAW,EAAE;gBACzD,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC3E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;aAC3B,CAAC,CAAC,CAAA;YACH,eAAe,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAA;YACjD,MAAM,aAAa,EAAE,CAAA;QACvB,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;QACnC,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC;IACH,CAAC,CAAA;IAED,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAQ,EAAE;QAClD,YAAY,CAAC,CAAC,OAAO,EAAE,EAAE;YACvB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAA;YAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;;gBAC1C,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YACxB,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,OAAO,CACL,iCAAK,SAAS,EAAC,cAAc,aAC3B,qCAAS,SAAS,EAAC,iBAAiB,aAClC,gCAAK,SAAS,EAAC,uBAAuB,YACpC,sFAAiC,GAC7B,EACL,QAAQ,CAAC,MAAM,KAAK,SAAS,IAAI,8BAAG,SAAS,EAAC,gBAAgB,2DAAY,EAC1E,QAAQ,CAAC,MAAM,KAAK,aAAa,IAAI,8BAAG,SAAS,EAAC,gBAAgB,yIAAyB,EAC3F,QAAQ,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,8BAAG,SAAS,EAAC,gBAAgB,iKAA6B,EAC/G,KAAK,KAAK,SAAS,IAAI,CACtB,6DACE,iCAAK,SAAS,EAAC,eAAe,aAC5B,kCAAM,SAAS,EAAC,qBAAqB,aAAC,4FAAwB,EAC5D,iCAAM,SAAS,EAAC,oBAAoB,+LAAqC,IAAO,EAClF,kCAAM,SAAS,EAAC,uBAAuB,aACrC,mCACE,KAAK,EAAE,KAAK,CAAC,kBAAkB,EAC/B,QAAQ,EAAE,CAAC,QAAQ,IAAI,IAAI,KAAK,IAAI,EACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,UAAU,CAAC,oBAAoB,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,YAE3E,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAqD,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACxG,mCAAqB,KAAK,EAAE,MAAM,YAAG,sBAAsB,CAAC,MAAM,CAAC,IAAtD,MAAM,CAA0D,CAC9E,CAAC,GACK,EACR,SAAS,CAAC,kBAAkB,KAAK,SAAS,IAAI,iCAAM,SAAS,EAAC,kBAAkB,mCAAW,EAC3F,SAAS,CAAC,kBAAkB,KAAK,SAAS,IAAI,CAC7C,uBAAC,iCAAM,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAE,CAAC,QAAQ,IAAI,IAAI,KAAK,IAAI,EACpE,OAAO,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,CAAC,MAAe,EAAE,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,yCAAe,CAChK,IACI,IACH,EACN,iCAAK,SAAS,EAAC,eAAe,aAC5B,kCAAM,SAAS,EAAC,qBAAqB,aAAC,4FAAwB,EAC5D,iCAAM,SAAS,EAAC,oBAAoB,6IAAqC,IAAO,EAClF,kCAAM,SAAS,EAAC,uBAAuB,aACrC,mCACE,KAAK,EAAE,KAAK,CAAC,mBAAmB,EAChC,QAAQ,EAAE,CAAC,QAAQ,IAAI,IAAI,KAAK,IAAI,EACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,UAAU,CAAC,qBAAqB,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,YAE5E,MAAM,CAAC,IAAI,CAAC,YAAY,CAAsD,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC/F,mCAAqB,KAAK,EAAE,MAAM,YAAG,YAAY,CAAC,MAAM,CAAC,IAA5C,MAAM,CAAgD,CACpE,CAAC,GACK,EACR,SAAS,CAAC,mBAAmB,KAAK,SAAS,IAAI,iCAAM,SAAS,EAAC,kBAAkB,mCAAW,EAC5F,SAAS,CAAC,mBAAmB,KAAK,SAAS,IAAI,CAC9C,uBAAC,iCAAM,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAE,CAAC,QAAQ,IAAI,IAAI,KAAK,IAAI,EACpE,OAAO,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,CAAC,MAAe,EAAE,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,yCAAe,CACjK,IACI,IACH,EACL,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC5B,iCAAK,SAAS,EAAC,eAAe,aAC5B,kCAAM,SAAS,EAAC,qBAAqB,aAAC,6CAAS,KAAK,CAAC,KAAK,GAAU,EAClE,iCAAM,SAAS,EAAC,oBAAoB,YAAE,KAAK,CAAC,WAAW,GAAQ,IAAO,EACxE,kCAAM,SAAS,EAAC,uBAAuB,aACrC,kCACE,IAAI,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAC7B,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EACpD,QAAQ,EAAE,CAAC,QAAQ,IAAI,IAAI,KAAK,IAAI,EACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA,CAAC,CAAC,EAClG,MAAM,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC,EACzC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO;oDAAE,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA,CAAC,CAAC,GAC5E,EACD,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,iCAAM,SAAS,EAAC,kBAAkB,mCAAW,EACnF,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CACrC,uBAAC,iCAAM,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAE,CAAC,QAAQ,IAAI,IAAI,KAAK,IAAI,EACpE,OAAO,EAAE,GAAG,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,MAAe,EAAE,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,yCAAe,CACrJ,IACI,KAjB2B,KAAK,CAAC,GAAG,CAkBvC,CACP,CAAC,IACD,CACJ,EACA,SAAS,KAAK,IAAI,IAAI,8BAAG,SAAS,EAAC,eAAe,YAAE,SAAS,GAAK,EACnE,+BAAG,SAAS,EAAC,iBAAiB,+IAAsC,MAAM,EAAE,UAAU,IAAI,GAAG,IAAK,IAC1F,EACV,qCAAS,SAAS,EAAC,iBAAiB,aAClC,iCAAK,SAAS,EAAC,uBAAuB,aACpC,gFAAsB,EACtB,kCAAM,SAAS,EAAC,+BAA+B,aAC7C,uBAAC,iCAAM,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,aAAa,EAAE,CAAA,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,YACjG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GACxB,EACR,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAClD,eAAe;wCACb,CAAC,CAAC,CACA,6DACE,uBAAC,iCAAM,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,KAAK,IAAI,6BAAa,EACtH,uBAAC,iCAAM,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,eAAe,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,CAAA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,KAAK,IAAI,YACvI,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,GACnC,IACR,CACJ;wCACD,CAAC,CAAC,uBAAC,iCAAM,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,GAAG,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,KAAK,IAAI,qDAAiB,CAC9H,IACI,IACH,EACN,8BAAG,SAAS,EAAC,sBAAsB,YAChC,MAAM,KAAK,IAAI;4BACd,CAAC,CAAC,YAAY;4BACd,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,+BAA+B,GACtP,EACH,YAAY,KAAK,IAAI,IAAI,8BAAG,SAAS,EAAC,gBAAgB,kBAAe,YAAY,CAAC,OAAO,YAAG,YAAY,CAAC,OAAO,GAAK,EACrH,WAAW,KAAK,IAAI,IAAI,8BAAG,SAAS,EAAC,eAAe,YAAE,WAAW,GAAK,EACtE,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CACrC,iCAAK,SAAS,EAAC,mBAAmB,aAChC,iCAAK,SAAS,EAAC,wBAAwB,aACrC,iCAAM,SAAS,EAAC,wBAAwB,EAAC,KAAK,EAAE,SAAS,CAAC,SAAS,YAAG,SAAS,CAAC,SAAS,GAAQ,EACjG,kCAAM,SAAS,EAAC,wBAAwB,aAAE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,uCAAU,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,IAAQ,EAClI,SAAS,CAAC,aAAa,GAAG,CAAC,IAAI,kCAAM,SAAS,EAAC,eAAe,aAAE,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,6CAAe,EAC/G,uBAAC,iCAAM,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAAC,OAAO,EAAE,GAAG,EAAE,GAAG,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA,CAAC,CAAC,YACtF,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAC1C,EACT,uBAAC,iCAAM,IAAC,OAAO,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EACjC,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,eAAe,CAAC,EAAE,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,SAAS,CAAC,SAAS,EAAE,CAAC,CAAA,CAAC,CAAC,EACtI,QAAQ,EAAE,IAAI,KAAK,IAAI,IAAI,SAAS,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,YAC9D,IAAI,KAAK,SAAS,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GACrD,IACL,EACL,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAC5E,+BAAI,SAAS,EAAC,gBAAgB,YAC3B,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACtC,gCAAI,SAAS,EAAC,eAAe,aAC3B,2CAAO,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,GAAQ,EAC1C,iCAAM,SAAS,EAAC,oBAAoB,YAAE,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,GAAQ,EACzF,iCAAM,SAAS,EAAC,oBAAoB,YAAE,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,GAAQ,EAC3E,kCAAM,SAAS,EAAC,qBAAqB,aAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,2BAAY,EACzE,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,2CAAO,KAAK,CAAC,SAAS,GAAQ,EAChE,uBAAC,iCAAM,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,IAAI,EAC/B,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,eAAe,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,UAAU,KAAK,CAAC,EAAE,EAAE,CAAC,CAAA,CAAC,CAAC,EAC7I,QAAQ,EAAE,IAAI,KAAK,IAAI,YACtB,IAAI,KAAK,UAAU,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GACxC,KAVwB,KAAK,CAAC,EAAE,CAWtC,CACN,CAAC,GACC,CACN,KA/BqC,SAAS,CAAC,SAAS,CAgCrD,CACP,CAAC,EACD,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,8BAAG,SAAS,EAAC,gBAAgB,+FAAkB,IAC7F,IACN,CACP,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC9B,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,CAAA;IACzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;IACzE,OAAO;QACL,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC;QAC3D,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC;QAC5D,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACxC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;YACjC,MAAM,WAAW,GAAG,SAAS,CAAC,aAAa,CAAA;YAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;YACxE,OAAO;gBACL,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC;gBAC3D,UAAU,EAAE,eAAe,CAAC,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC;gBAC/D,aAAa,EAAE,eAAe,CAAC,SAAS,CAAC,aAAa,EAAE,eAAe,CAAC;gBACxE,aAAa,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;oBAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAA;oBAClC,OAAO;wBACL,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC;wBAClC,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;wBACxC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;wBAC/C,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC;wBACxD,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC;wBAC3D,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC;wBACxD,GAAG,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC;wBAC3C,GAAG,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC;qBACxC,CAAA;gBACH,CAAC,CAAC;aACH,CAAA;QACH,CAAC,CAAC;KACH,CAAA;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC9B,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACtD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;QACrE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;YAC9B,OAAO;gBACL,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,oBAAoB,EAAE,sBAAsB,CAAC;gBAC/F,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,CAAC;aACpG,CAAA;QACH,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;QAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAA;QAClF,OAAO;YACL,OAAO;YACP,OAAO,EAAE,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG;SAC3K,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAA;IACpF,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,CAAA;IACvF,OAAO;QACL,OAAO,EAAE,QAAQ,GAAG,CAAC;QACrB,OAAO,EAAE,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG;KAChG,CAAA;AACH,CAAC;AAED,uDAAuD;AACvD,SAAgB,WAAW,CAAC,KAAa;IACvC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,KAAK,CAAA;IACtD,MAAM,KAAK,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAC3C,IAAI,KAAK,GAAG,KAAK,CAAA;IACjB,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,OAAO,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,KAAK,IAAI,IAAI,CAAA;QACb,IAAI,IAAI,CAAC,CAAA;IACX,CAAC;IACD,OAAO,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAA;AACzG,CAAC;AAED,SAAS,UAAU,CAAC,SAAiB;IACnC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAA;IAChC,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAA;AACjF,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC9B,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACtD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;IACnE,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAA;IAC5F,IAAI,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAA;IACxF,IAAI,MAAM,KAAK,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,UAAU,MAAM,EAAE,CAAC,CAAA;IAC3D,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAA;IACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;IACnE,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC9B,OAAO,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAe,EAAE,CAAA;IAC/G,CAAC,CAAC,CAAA;IACF,MAAM,qBAAqB,GAAG,MAAM,CAAC,gBAAgB,CAAA;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC9G,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IACD,OAAO;QACL,MAAM;QACN,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC;QACxD,UAAU,EAAE,eAAe,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC;QAC5D,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;QAC1C,YAAY,EAAE,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC;QACjE,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC;QAClE,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC;QAClE,OAAO;QACP,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;QAChD,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC;QACzD,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC;QAC/D,gBAAgB,EAAE,eAAe,CAAC,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,CAAC;QAC9E,GAAG,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,CAAC;QACjD,GAAG,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,CAAC;QACnD,GAAG,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,CAAC;QACtD,GAAG,oBAAoB,CAAC,MAAM,EAAE,aAAa,CAAC;QAC9C,GAAG,oBAAoB,CAAC,MAAM,EAAE,eAAe,CAAC;QAChD,GAAG,oBAAoB,CAAC,MAAM,EAAE,kBAAkB,CAAC;QACnD,gBAAgB,EAAE,qBAAiC;QACnD,cAAc,EAAE,eAAe,CAAC,MAAM,CAAC,cAAc,EAAE,gBAAgB,CAAC;QACxE,GAAG,CAAC,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,OAAO,MAAM,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1F,CAAA;AACH,CAAC;AAED,yEAAyE;AACzE,SAAgB,yBAAyB,CAAC,KAAqB;IAC7D,MAAM,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;IACnE,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;IACzC,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IACjC,OAAO;QACL,OAAO;QACP,MAAM,EAAE,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;KACnF,CAAA;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAgC;IAC5D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAuB,CAAA;IAC3C,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CACxD,oDAAoD,CACrD,CAAC,EAAE,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAA;QACzC,IAAI,GAAG,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IAC/C,CAAC;IACD,MAAM,OAAO,GAAyB,EAAE,CAAA;IACxC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAA;QAC/C,IAAI,MAAM,KAAK,IAAI;YAAE,SAAQ;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACnC,MAAM,WAAW,GAAG,GAAG,EAAE,aAAa,EAAE,CAAc,+BAA+B,CAAC,CAAA;QACtF,6DAA6D;QAC7D,MAAM,OAAO,GAAG,CAAC,OAAO,WAAW,EAAE,aAAa,KAAK,UAAU;YAC/D,CAAC,CAAC,WAAW,CAAC,aAAa,CAAc,oBAAoB,CAAC;YAC9D,CAAC,CAAC,SAAS,CAAC,IAAI,WAAW,EAAE,gBAAgB,CAAA;QAC/C,IAAI,CAAC,CAAC,OAAO,YAAY,WAAW,CAAC;YAAE,SAAQ;QAC/C,OAAO,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;IAC/D,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAmC,EACnC,KAAoC;IAEpC,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAClE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;QAC1B,OAAO,KAAK,KAAK,SAAS;eACrB,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;eACpC,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,KAAK,CAAC,OAAO,CAAC,UAAU;eACtD,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,KAAK,CAAC,OAAO,CAAC,UAAU,CAAA;IAC7D,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,GAAsB,EAAE,SAAiB,EAAE,UAAkB;IAC/F,IAAI,SAAS,GAAY,IAAI,KAAK,CAAC,WAAW,CAAC,CAAA;IAC/C,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC;YACH,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;YAC3C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;gBACtD,OAAM;YACR,CAAC;YACD,SAAS,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC,CAAA;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,CAAA;QACnB,CAAC;QACD,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;IACjE,CAAC;IACD,MAAM,SAAS,CAAA;AACjB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAkB;IAC5C,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAa,CAAA;IAC9C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;QAC9B,MAAM,IAAI,kBAAkB,CAC1B,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,EAC/D,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CACpF,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,kBAAmB,SAAQ,KAAK;IACf;IAArB,YAAqB,IAAY,EAAE,OAAe;QAChD,KAAK,CAAC,OAAO,CAAC,CAAA;QADK,SAAI,GAAJ,IAAI,CAAQ;IAEjC,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAA;IACtG,OAAO,KAAgC,CAAA;AACzC,CAAC;AAED,SAAS,cAAc,CAAC,KAAc,EAAE,IAAY;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,CAAA;IAC5E,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,IAAY;IACnD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAK,KAAgB,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,CAAA;IACxF,OAAO,KAAe,CAAA;AACxB,CAAC;AAED,SAAS,eAAe,CAAC,KAAc,EAAE,IAAY;IACnD,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,CAAA;IAC7D,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,MAA+B,EAAE,IAAY;IACzE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAC1B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAClC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAA;AAChD,CAAC;AAED,sEAAsE;AACtE,SAAgB,iBAAiB,CAAC,IAAgB;IAChD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,OAAO,CAAC,CAAC,OAAO,WAAW,CAAA;QAChC,KAAK,SAAS,CAAC,CAAC,OAAO,MAAM,CAAA;QAC7B,KAAK,UAAU,CAAC,CAAC,OAAO,SAAS,CAAA;QACjC,KAAK,cAAc,CAAC,CAAC,OAAO,QAAQ,CAAA;QACpC,KAAK,cAAc,CAAC,CAAC,OAAO,WAAW,CAAA;IACzC,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,EAAE,IAAI,EAA6B;IACrD,OAAO,CACL,gCAAK,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,iBAAa,MAAM,YAChF,iCAAM,CAAC,EAAC,sEAAsE,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,MAAM,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,GAAG,GACnK,CACP,CAAA;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,CAAC,CAAC,KAAK,YAAY,kBAAkB,CAAC;QAAE,OAAO,SAAS,CAAC,KAAK,CAAC,CAAA;IACnE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,YAAY,CAAC,CAAC,OAAO,oCAAoC,CAAA;QAC9D,KAAK,uBAAuB,CAAC,CAAC,OAAO,kCAAkC,CAAA;QACvE,KAAK,kBAAkB,CAAC,CAAC,OAAO,sCAAsC,CAAA;QACtE,KAAK,kBAAkB,CAAC,CAAC,OAAO,gCAAgC,CAAA;QAChE,KAAK,cAAc,CAAC,CAAC,OAAO,mCAAmC,CAAA;QAC/D,KAAK,oBAAoB,CAAC,CAAC,OAAO,6BAA6B,CAAA;QAC/D,KAAK,uBAAuB,CAAC,CAAC,OAAO,gCAAgC,CAAA;QACrE,KAAK,yBAAyB,CAAC,CAAC,OAAO,qBAAqB,CAAA;QAC5D,KAAK,YAAY,CAAC,CAAC,OAAO,8CAA8C,CAAA;QACxE,KAAK,4BAA4B,CAAC,CAAC,OAAO,0BAA0B,CAAA;QACpE,KAAK,4BAA4B,CAAC,CAAC,OAAO,2BAA2B,CAAA;QACrE,OAAO,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,CAAA;IAC/B,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAC/D,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client/src/client/index.tsx"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -15,7 +15,9 @@ export class ChangeLedgerService {
15
15
  this.engine = new ChangeLedgerEngine(config);
16
16
  const checkpoints = new TurnCheckpointCoordinator(this.engine);
17
17
  ctx.inject(['agents'], (scope) => { checkpoints.install(scope); });
18
- ctx.inject(['webServer', 'sessions', 'sessionQuery', 'apiProxy', 'agents'], (scope) => {
18
+ // `apiProxy` is deliberately absent: DSH 0.1.2-alpha carriers (DSH Desktop 2.x)
19
+ // provide `sessionController` instead, and the route must exist on both.
20
+ ctx.inject(['webServer', 'sessions', 'sessionQuery', 'agents'], (scope) => {
19
21
  installRewindHttp(scope, this.engine, checkpoints);
20
22
  installManageHttp(scope, this.engine);
21
23
  });
@@ -2,6 +2,14 @@ import { randomUUID } from 'node:crypto';
2
2
  import { createDeadline } from './deadline.js';
3
3
  import { ChangeLedgerError, errorMessage } from './errors.js';
4
4
  import { discoverRepositoryRoot } from './git.js';
5
+ function getSessionEvents(session) {
6
+ if (!session)
7
+ return [];
8
+ if (typeof session.snapshotEvents === 'function') {
9
+ return session.snapshotEvents();
10
+ }
11
+ return session.events ?? [];
12
+ }
5
13
  export const REWIND_HTTP_PATH = '/turn-rewind';
6
14
  const BODY_LIMIT = 64 * 1024;
7
15
  const INITIAL_CHANGE_PREVIEW_LIMIT = 8;
@@ -56,7 +64,8 @@ export class TurnCheckpointCoordinator {
56
64
  const cwd = agent.session.header.cwd;
57
65
  if (cwd === undefined)
58
66
  return;
59
- const start = agent.session.events.findLast(event => event.type === 'turn/start' && event.data.turn === turn);
67
+ const events = getSessionEvents(agent.session);
68
+ const start = events.findLast(event => event.type === 'turn/start' && event.data.turn === turn);
60
69
  if (start === undefined) {
61
70
  await this.recordFailure(ctx, agent.id, turn, new Error('turn/start is unavailable before the first step'));
62
71
  return;
@@ -120,7 +129,8 @@ export class TurnCheckpointCoordinator {
120
129
  async waitForOpenTurn(agent, signal) {
121
130
  if (signal.aborted)
122
131
  return;
123
- const boundary = agent.session.events.findLast(event => event.type === 'turn/start' || event.type === 'turn/end');
132
+ const events = getSessionEvents(agent.session);
133
+ const boundary = events.findLast(event => event.type === 'turn/start' || event.type === 'turn/end');
124
134
  if (boundary?.type !== 'turn/start')
125
135
  return;
126
136
  const turn = boundary.data.turn;
@@ -407,12 +417,23 @@ async function createConversationRestart(ctx, sourceId, checkpoint) {
407
417
  || current.previousTurnEndSeq !== checkpoint.previousTurnEndSeq) {
408
418
  throw new ChangeLedgerError('PLAN_STALE', 'the session no longer contains the selected message boundary');
409
419
  }
420
+ const controller = ctx.sessionController;
421
+ if (controller !== undefined) {
422
+ const created = checkpoint.previousTurnEndSeq === undefined
423
+ ? await controller.create({ cwd: checkpoint.cwd })
424
+ : await controller.fork({ sessionId: sourceId, atSeq: checkpoint.previousTurnEndSeq });
425
+ return { sessionId: requiredText(created.sessionId, 'sessionController sessionId') };
426
+ }
427
+ const apiProxy = ctx.apiProxy;
428
+ if (apiProxy === undefined) {
429
+ throw new ChangeLedgerError('CONVERSATION_REWIND_FAILED', 'this DSH host exposes neither sessionController nor apiProxy, so a new conversation cannot be created');
430
+ }
410
431
  const response = checkpoint.previousTurnEndSeq === undefined
411
- ? await ctx.apiProxy.sessions.create({
432
+ ? await apiProxy.sessions.create({
412
433
  rpcId: randomUUID(),
413
434
  payload: { cwd: checkpoint.cwd },
414
435
  })
415
- : await ctx.apiProxy.sessions.fork({
436
+ : await apiProxy.sessions.fork({
416
437
  rpcId: randomUUID(),
417
438
  payload: { sessionId: sourceId, atSeq: checkpoint.previousTurnEndSeq },
418
439
  });
@@ -425,27 +446,28 @@ function messageTarget(session, messageSeq) {
425
446
  const cwd = session.header.cwd;
426
447
  if (cwd === undefined)
427
448
  throw new ChangeLedgerError('WORKSPACE_REQUIRED', `session ${session.id} has no workspace`);
428
- const message = session.events.find(event => event.type === 'user/message' && event.seq === messageSeq && isDirectUserMessage(event));
449
+ const events = getSessionEvents(session);
450
+ const message = events.find(event => event.type === 'user/message' && event.seq === messageSeq && isDirectUserMessage(event));
429
451
  if (message === undefined) {
430
452
  throw new ChangeLedgerError('RESTORE_POINT_NOT_FOUND', `session ${session.id} has no user message at ${String(messageSeq)}`);
431
453
  }
432
- const start = session.events.findLast(event => event.type === 'turn/start' && event.seq < messageSeq);
454
+ const start = events.findLast(event => event.type === 'turn/start' && event.seq < messageSeq);
433
455
  const turn = start?.data.turn;
434
456
  if (start === undefined || !Number.isSafeInteger(turn) || turn < 0) {
435
457
  throw new ChangeLedgerError('PLAN_STALE', 'the selected user message has no valid turn start');
436
458
  }
437
- const openingMessage = session.events.find(event => (event.type === 'user/message'
459
+ const openingMessage = events.find(event => (event.type === 'user/message'
438
460
  && event.seq > start.seq
439
461
  && event.seq <= messageSeq
440
462
  && isDirectUserMessage(event)));
441
463
  if (openingMessage?.seq !== messageSeq) {
442
464
  throw new ChangeLedgerError('RESTORE_POINT_NOT_FOUND', 'rewind is available only for the opening user message of a turn');
443
465
  }
444
- const interveningEnd = session.events.find(event => event.type === 'turn/end' && event.seq > start.seq && event.seq < messageSeq);
466
+ const interveningEnd = events.find(event => event.type === 'turn/end' && event.seq > start.seq && event.seq < messageSeq);
445
467
  if (interveningEnd !== undefined) {
446
468
  throw new ChangeLedgerError('PLAN_STALE', 'the selected user message is outside its recorded turn');
447
469
  }
448
- const previousEnd = session.events.findLast(event => event.type === 'turn/end' && event.seq < start.seq);
470
+ const previousEnd = events.findLast(event => event.type === 'turn/end' && event.seq < start.seq);
449
471
  return {
450
472
  messageSeq,
451
473
  turn: turn,
@@ -12,14 +12,29 @@ interface ConversationChatNodeLike {
12
12
  readonly kind: string;
13
13
  readonly data: ConversationNodeLike;
14
14
  }
15
- interface ConversationSnapshotLike {
16
- readonly nodes: readonly ConversationNodeLike[];
17
- readonly chat?: {
18
- readonly nodes: {
19
- values(): readonly ConversationChatNodeLike[];
20
- };
21
- };
15
+ /**
16
+ * Chat node store exposed by the Chat target. DSH 0.1.2+ publishes a mutable
17
+ * keyed store; older clients published a Map with the same `get` contract.
18
+ */
19
+ interface ChatNodeStoreLike {
20
+ get(key: string): RewindNodeLike | undefined;
21
+ values?(): Iterable<RewindNodeLike>;
22
+ }
23
+ /** Chat projection shared by `session.chat` (0.1.1) and the `useChat` hook (0.1.2+). */
24
+ interface ChatSnapshotLike {
25
+ readonly order?: readonly string[];
26
+ readonly nodes?: ChatNodeStoreLike | readonly RewindNodeLike[];
27
+ }
28
+ /**
29
+ * Snapshot seen by a session-scoped slot entry. 0.1.1 exposes the chat
30
+ * projection as `snapshot.chat`; 0.1.2+ moved it to the separate `useChat`
31
+ * hook, so the same snapshot is the chat projection itself.
32
+ */
33
+ interface ConversationSnapshotLike extends ChatSnapshotLike {
34
+ readonly chat?: ChatSnapshotLike;
22
35
  }
36
+ /** Selector hook shape shared by `useSession` and `useChat`. */
37
+ type SnapshotSelectorHook = <T>(selector: (snapshot: ConversationSnapshotLike) => T) => T;
23
38
  type RewindNodeLike = ConversationNodeLike | ConversationChatNodeLike;
24
39
  interface RewindMatch {
25
40
  readonly messageSeq: number;
@@ -33,7 +48,8 @@ interface RewindMessageActionProps {
33
48
  interface RewindPortalBridgeProps {
34
49
  readonly sessionId: string;
35
50
  readonly openRestoredSession: (sessionId: string, promptText: string) => Promise<void>;
36
- readonly useSession: <T>(selector: (snapshot: ConversationSnapshotLike) => T) => T;
51
+ readonly useSession: SnapshotSelectorHook;
52
+ readonly useChat?: SnapshotSelectorHook;
37
53
  }
38
54
  interface SlotsLike {
39
55
  inject(name: string, install: () => unknown): void;
@@ -127,8 +143,20 @@ export declare function selectRewindMessage(node: ConversationNodeLike): RewindM
127
143
  /** Browser plugin entry: bridge every direct user-message action row to the rewind UI. */
128
144
  export declare const inject: string[];
129
145
  export declare function apply(ctx: ClientContextLike): void;
146
+ /**
147
+ * Resolve the ordered chat node list from one chat projection.
148
+ *
149
+ * Both inputs keep a stable identity across renders: `order` is republished only
150
+ * when the node set changes and the store is a mutable handle, so the caller can
151
+ * memoize the list instead of allocating a new array on every render (a fresh
152
+ * array per render makes `useSyncExternalStore` loop forever).
153
+ * @param order - ordered node keys, or null when the projection is absent.
154
+ * @param store - keyed node store, a legacy node array, or null.
155
+ * @returns the chat nodes in render order.
156
+ */
157
+ export declare function collectChatNodes(order: readonly string[] | null, store: ChatNodeStoreLike | readonly RewindNodeLike[] | null): readonly RewindNodeLike[];
130
158
  /** Session-scoped bridge that portals rewind controls into direct user-message action rows. */
131
- export declare function RewindMessagePortals({ sessionId, openRestoredSession, useSession }: RewindPortalBridgeProps): ReactNode;
159
+ export declare function RewindMessagePortals({ sessionId, openRestoredSession, useSession, useChat }: RewindPortalBridgeProps): ReactNode;
132
160
  /** User-message action and its review-first file/conversation restore dialog. */
133
161
  export declare function RewindMessageAction({ matched, sessionId, openRestoredSession }: RewindMessageActionProps): ReactNode;
134
162
  interface TurnRewindSettingsCardProps {
@@ -143,6 +171,26 @@ export declare function selectRewindMessageTarget(value: RewindNodeLike): {
143
171
  readonly matched: RewindMatch;
144
172
  readonly rowKey: string;
145
173
  } | null;
174
+ /**
175
+ * Read one rewind response body without ever leaking a raw parse error.
176
+ *
177
+ * A missing route, a restarted Host, or a proxy answering before the plugin
178
+ * loads all produce a body that is not the plugin's JSON envelope; those must
179
+ * surface as an explained failure instead of `Failed to execute 'json' …`.
180
+ * @param response - fetch response from the rewind endpoint.
181
+ * @returns the decoded JSON body.
182
+ */
183
+ export declare function responseJson(response: Response): Promise<unknown>;
146
184
  /** Describe the user-visible result of restoring one changed file. */
147
185
  export declare function fileRecoveryLabel(kind: ChangeKind): string;
186
+ /**
187
+ * Explain one recorded checkpoint failure in user terms.
188
+ *
189
+ * The Host records the raw `[CODE] diagnostic` line; a non-Git project
190
+ * directory is the common case and deserves a plain sentence instead of a
191
+ * `git rev-parse` transcript.
192
+ * @param message - recorded checkpoint failure message.
193
+ * @returns one user-facing sentence.
194
+ */
195
+ export declare function explainCheckpointFailure(message: string): string;
148
196
  export {};
@@ -13,7 +13,8 @@ interface SessionHeaderLike {
13
13
  interface SessionLike {
14
14
  readonly id: string;
15
15
  readonly header: SessionHeaderLike;
16
- readonly events: readonly SessionEventLike[];
16
+ readonly events?: readonly SessionEventLike[];
17
+ snapshotEvents?(fromSeq?: number, toSeqExclusive?: number): readonly SessionEventLike[];
17
18
  }
18
19
  interface AgentLike {
19
20
  readonly id: string;
@@ -96,6 +97,31 @@ interface ApiProxyLike {
96
97
  }>;
97
98
  };
98
99
  }
100
+ /**
101
+ * Conversation create/fork capability of the Session controller service.
102
+ *
103
+ * DSH 0.1.2-alpha replaced the `apiProxy` RPC envelope with this plain service,
104
+ * so carriers without `apiProxy` (DSH Desktop 2.x) reach the same capability here.
105
+ */
106
+ interface SessionControllerLike {
107
+ create(request: {
108
+ readonly cwd?: string;
109
+ readonly workspaceId?: string;
110
+ }): Promise<{
111
+ readonly sessionId: string;
112
+ }>;
113
+ fork(request: {
114
+ readonly sessionId: string;
115
+ readonly atSeq?: number;
116
+ }): Promise<{
117
+ readonly sessionId: string;
118
+ }>;
119
+ }
120
+ /** Services a conversation restart can be built on, in either carrier shape. */
121
+ type ConversationRestartContext = Pick<Context, 'sessions' | 'sessionQuery'> & {
122
+ readonly apiProxy?: ApiProxyLike;
123
+ readonly sessionController?: SessionControllerLike;
124
+ };
99
125
  declare module '@deepseek-ai/cordis' {
100
126
  interface Context {
101
127
  agents: AgentsLike;
@@ -103,6 +129,7 @@ declare module '@deepseek-ai/cordis' {
103
129
  sessionQuery: SessionQueryLike;
104
130
  webServer: HttpServerLike;
105
131
  apiProxy: ApiProxyLike;
132
+ sessionController: SessionControllerLike;
106
133
  }
107
134
  interface Events {
108
135
  'agent/pre-step'(payload: {
@@ -142,7 +169,7 @@ export declare class TurnCheckpointCoordinator {
142
169
  /** Register the same-origin preview/apply endpoint consumed by the browser half. */
143
170
  export declare function installRewindHttp(ctx: Context, engine: ChangeLedgerEngine, coordinator: TurnCheckpointCoordinator): void;
144
171
  /** Build the exact-route handler as a testable unit. */
145
- export declare function createRewindHttpHandler(ctx: Pick<Context, 'sessions' | 'sessionQuery' | 'apiProxy'> & {
172
+ export declare function createRewindHttpHandler(ctx: ConversationRestartContext & {
146
173
  readonly agents?: AgentsLike;
147
174
  }, engine: ChangeLedgerEngine, coordinator: TurnCheckpointCoordinator): (request: HttpRequestLike, response: HttpResponseLike) => Promise<void>;
148
175
  export declare const MANAGE_HTTP_PATH = "/turn-rewind/manage";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anionex/dsh-turn-rewind",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "Turn-level conversation and workspace rewind for DeepSeek Harness, powered by a persistent Change Ledger",
5
5
  "repository": {
6
6
  "type": "git",
@@ -64,7 +64,11 @@
64
64
  "dshReleases": {
65
65
  "0.1.0-rc.8": "compatible",
66
66
  "0.1.1-rc.1": "compatible",
67
- "0.1.1-rc.2": "compatible"
67
+ "0.1.1-rc.2": "compatible",
68
+ "0.1.2-alpha.1": "compatible",
69
+ "0.1.2-alpha.3": "compatible",
70
+ "0.1.2-alpha.4": "compatible",
71
+ "0.1.2-alpha.5": "compatible"
68
72
  },
69
73
  "profiles": [
70
74
  "web"
@@ -1,4 +1,4 @@
1
- import { useCallback, useEffect, useLayoutEffect, useRef, useState, useSyncExternalStore, type ReactNode } from 'react'
1
+ import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState, useSyncExternalStore, type ReactNode } from 'react'
2
2
  import { createPortal } from 'react-dom'
3
3
  import {
4
4
  Button,
@@ -18,15 +18,33 @@ interface ConversationChatNodeLike {
18
18
  readonly data: ConversationNodeLike
19
19
  }
20
20
 
21
- interface ConversationSnapshotLike {
22
- readonly nodes: readonly ConversationNodeLike[]
23
- readonly chat?: {
24
- readonly nodes: {
25
- values(): readonly ConversationChatNodeLike[]
26
- }
27
- }
21
+ /**
22
+ * Chat node store exposed by the Chat target. DSH 0.1.2+ publishes a mutable
23
+ * keyed store; older clients published a Map with the same `get` contract.
24
+ */
25
+ interface ChatNodeStoreLike {
26
+ get(key: string): RewindNodeLike | undefined
27
+ values?(): Iterable<RewindNodeLike>
28
+ }
29
+
30
+ /** Chat projection shared by `session.chat` (0.1.1) and the `useChat` hook (0.1.2+). */
31
+ interface ChatSnapshotLike {
32
+ readonly order?: readonly string[]
33
+ readonly nodes?: ChatNodeStoreLike | readonly RewindNodeLike[]
34
+ }
35
+
36
+ /**
37
+ * Snapshot seen by a session-scoped slot entry. 0.1.1 exposes the chat
38
+ * projection as `snapshot.chat`; 0.1.2+ moved it to the separate `useChat`
39
+ * hook, so the same snapshot is the chat projection itself.
40
+ */
41
+ interface ConversationSnapshotLike extends ChatSnapshotLike {
42
+ readonly chat?: ChatSnapshotLike
28
43
  }
29
44
 
45
+ /** Selector hook shape shared by `useSession` and `useChat`. */
46
+ type SnapshotSelectorHook = <T>(selector: (snapshot: ConversationSnapshotLike) => T) => T
47
+
30
48
  type RewindNodeLike = ConversationNodeLike | ConversationChatNodeLike
31
49
 
32
50
  interface RewindMatch {
@@ -43,7 +61,8 @@ interface RewindMessageActionProps {
43
61
  interface RewindPortalBridgeProps {
44
62
  readonly sessionId: string
45
63
  readonly openRestoredSession: (sessionId: string, promptText: string) => Promise<void>
46
- readonly useSession: <T>(selector: (snapshot: ConversationSnapshotLike) => T) => T
64
+ readonly useSession: SnapshotSelectorHook
65
+ readonly useChat?: SnapshotSelectorHook
47
66
  }
48
67
 
49
68
  interface RewindPortalTarget {
@@ -281,9 +300,50 @@ export function apply(ctx: ClientContextLike): void {
281
300
  }, TurnRewindSettingsCard))
282
301
  }
283
302
 
303
+ /** Narrow a chat node source to the keyed store form. */
304
+ function isNodeStore(value: ChatNodeStoreLike | readonly RewindNodeLike[]): value is ChatNodeStoreLike {
305
+ return typeof (value as ChatNodeStoreLike).get === 'function'
306
+ }
307
+
308
+ /**
309
+ * Resolve the ordered chat node list from one chat projection.
310
+ *
311
+ * Both inputs keep a stable identity across renders: `order` is republished only
312
+ * when the node set changes and the store is a mutable handle, so the caller can
313
+ * memoize the list instead of allocating a new array on every render (a fresh
314
+ * array per render makes `useSyncExternalStore` loop forever).
315
+ * @param order - ordered node keys, or null when the projection is absent.
316
+ * @param store - keyed node store, a legacy node array, or null.
317
+ * @returns the chat nodes in render order.
318
+ */
319
+ export function collectChatNodes(
320
+ order: readonly string[] | null,
321
+ store: ChatNodeStoreLike | readonly RewindNodeLike[] | null,
322
+ ): readonly RewindNodeLike[] {
323
+ if (store === null) return []
324
+ if (Array.isArray(store)) return store as readonly RewindNodeLike[]
325
+ if (order !== null && isNodeStore(store)) {
326
+ const nodes: RewindNodeLike[] = []
327
+ for (const key of order) {
328
+ const node = store.get(key)
329
+ if (node !== undefined) nodes.push(node)
330
+ }
331
+ return nodes
332
+ }
333
+ return typeof store.values === 'function' ? Array.from(store.values() as Iterable<RewindNodeLike>) : []
334
+ }
335
+
284
336
  /** Session-scoped bridge that portals rewind controls into direct user-message action rows. */
285
- export function RewindMessagePortals({ sessionId, openRestoredSession, useSession }: RewindPortalBridgeProps): ReactNode {
286
- const nodes = useSession<readonly RewindNodeLike[]>(snapshot => snapshot.chat?.nodes.values() ?? snapshot.nodes)
337
+ export function RewindMessagePortals({ sessionId, openRestoredSession, useSession, useChat }: RewindPortalBridgeProps): ReactNode {
338
+ // DSH 0.1.2+ moved the Chat projection out of the Session snapshot into its own
339
+ // session-scoped `useChat` hook; `snapshot.chat` remains the 0.1.1 shape.
340
+ const readSnapshot = useChat ?? useSession
341
+ const chatOf = (snapshot: ConversationSnapshotLike): ChatSnapshotLike => snapshot.chat ?? snapshot
342
+ const chatOrder = readSnapshot<readonly string[] | null>(snapshot => chatOf(snapshot).order ?? null)
343
+ const chatStore = readSnapshot<ChatNodeStoreLike | readonly RewindNodeLike[] | null>(
344
+ snapshot => chatOf(snapshot).nodes ?? null,
345
+ )
346
+ const nodes = useMemo(() => collectChatNodes(chatOrder, chatStore), [chatOrder, chatStore])
287
347
  const [targets, setTargets] = useState<readonly RewindPortalTarget[]>([])
288
348
 
289
349
  useLayoutEffect(() => {
@@ -533,7 +593,7 @@ export function RewindMessageAction({ matched, sessionId, openRestoredSession }:
533
593
  {preview?.status === 'pending' && <p className="dcl-rewind-status">这条消息发送前的文件还在保存,请稍后再试。</p>}
534
594
  {preview?.status === 'missing' && <p className="dcl-rewind-error">没有保存这条消息发送前的文件。可能是当时还没启用回退功能、记录已超过保留期限,或已关闭自动检查点。仍可只回溯消息。</p>}
535
595
  {preview?.status === 'skipped' && <p className="dcl-rewind-status">为避免阻塞消息发送,本轮没有自动保存文件:{preview.reason}仍可只回溯消息。</p>}
536
- {preview?.status === 'failed' && <p className="dcl-rewind-error">没能保存这条消息发送前的文件:{preview.error}仍可只回溯消息。</p>}
596
+ {preview?.status === 'failed' && <p className="dcl-rewind-error">{explainCheckpointFailure(preview.error)}</p>}
537
597
  {preview !== null && (
538
598
  <div className="dcl-rewind-options">
539
599
  <label className="dcl-rewind-option" data-selected={mode === 'both'} data-disabled={applying || !hasFileChanges}>
@@ -1060,15 +1120,40 @@ async function openSessionWithDraft(ctx: ClientContextLike, sessionId: string, p
1060
1120
  throw lastError
1061
1121
  }
1062
1122
 
1063
- async function responseJson(response: Response): Promise<unknown> {
1064
- const value = await response.json() as unknown
1123
+ /**
1124
+ * Read one rewind response body without ever leaking a raw parse error.
1125
+ *
1126
+ * A missing route, a restarted Host, or a proxy answering before the plugin
1127
+ * loads all produce a body that is not the plugin's JSON envelope; those must
1128
+ * surface as an explained failure instead of `Failed to execute 'json' …`.
1129
+ * @param response - fetch response from the rewind endpoint.
1130
+ * @returns the decoded JSON body.
1131
+ */
1132
+ export async function responseJson(response: Response): Promise<unknown> {
1133
+ const text = await response.text()
1134
+ let value: unknown
1135
+ try {
1136
+ value = text === '' ? undefined : JSON.parse(text) as unknown
1137
+ } catch {
1138
+ throw new RewindRequestError(
1139
+ response.ok ? 'REWIND_INVALID_RESPONSE' : 'REWIND_ENDPOINT_UNAVAILABLE',
1140
+ `回退服务返回了无法解析的内容(HTTP ${String(response.status)})。`,
1141
+ )
1142
+ }
1143
+ const record = value !== null && typeof value === 'object' && !Array.isArray(value)
1144
+ ? value as Record<string, unknown>
1145
+ : undefined
1065
1146
  if (!response.ok) {
1066
- const record = recordOf(value)
1067
1147
  throw new RewindRequestError(
1068
- typeof record.code === 'string' ? record.code : 'REWIND_FAILED',
1069
- typeof record.error === 'string' ? record.error : `请求失败:${String(response.status)}`,
1148
+ typeof record?.code === 'string'
1149
+ ? record.code
1150
+ : response.status === 404 ? 'REWIND_ENDPOINT_UNAVAILABLE' : 'REWIND_FAILED',
1151
+ typeof record?.error === 'string' ? record.error : `请求失败:${String(response.status)}`,
1070
1152
  )
1071
1153
  }
1154
+ if (value === undefined) {
1155
+ throw new RewindRequestError('REWIND_INVALID_RESPONSE', '回退服务返回了空响应。')
1156
+ }
1072
1157
  return value
1073
1158
  }
1074
1159
 
@@ -1126,6 +1211,8 @@ function RewindIcon({ size }: { readonly size: number }): ReactNode {
1126
1211
  function friendlyError(error: unknown): string {
1127
1212
  if (!(error instanceof RewindRequestError)) return messageOf(error)
1128
1213
  switch (error.code) {
1214
+ case 'REWIND_ENDPOINT_UNAVAILABLE': return '回退服务没有响应。请确认 @anionex/dsh-turn-rewind 已挂载到当前 DSH,并重启 DSH 后重试。'
1215
+ case 'REWIND_INVALID_RESPONSE': return '回退服务返回了无法解析的内容。请重启 DSH 后重试。'
1129
1216
  case 'PLAN_STALE': return '项目文件在检查后又发生了变化。为避免覆盖新修改,请重新检查后再恢复。'
1130
1217
  case 'PLAN_STALE_REPOSITORY': return 'Git 状态在检查后又发生了变化,恢复已失效。请重新检查后再试。'
1131
1218
  case 'WORKSPACE_IN_USE': return '这个项目目录还有别的对话正在运行。请等那些对话结束或停止后,再重新检查。'
@@ -1141,6 +1228,33 @@ function friendlyError(error: unknown): string {
1141
1228
  }
1142
1229
  }
1143
1230
 
1231
+ /**
1232
+ * Explain one recorded checkpoint failure in user terms.
1233
+ *
1234
+ * The Host records the raw `[CODE] diagnostic` line; a non-Git project
1235
+ * directory is the common case and deserves a plain sentence instead of a
1236
+ * `git rev-parse` transcript.
1237
+ * @param message - recorded checkpoint failure message.
1238
+ * @returns one user-facing sentence.
1239
+ */
1240
+ export function explainCheckpointFailure(message: string): string {
1241
+ const code = /^\[([A-Z_]+)\]/.exec(message)?.[1]
1242
+ switch (code) {
1243
+ case 'GIT_COMMAND_FAILED':
1244
+ return /not a git repository/i.test(message)
1245
+ ? '这个项目目录不是 Git 仓库,回退功能无法保存文件检查点。仍可只回溯消息。'
1246
+ : `无法读取这个项目目录的 Git 状态:${message}仍可只回溯消息。`
1247
+ case 'FILE_TOO_LARGE':
1248
+ case 'SNAPSHOT_TOO_LARGE':
1249
+ case 'TOO_MANY_FILES':
1250
+ return '本轮有文件超过检查点的大小或数量上限,没有保存文件检查点。仍可只回溯消息。'
1251
+ case 'INVALID_PATH':
1252
+ return '项目目录里有无法安全保存的路径(例如嵌套的独立 Git 仓库),没有保存文件检查点。仍可只回溯消息。'
1253
+ default:
1254
+ return `没能保存这条消息发送前的文件:${message}仍可只回溯消息。`
1255
+ }
1256
+ }
1257
+
1144
1258
  function messageOf(error: unknown): string {
1145
1259
  return error instanceof Error ? error.message : String(error)
1146
1260
  }
package/src/index.ts CHANGED
@@ -30,7 +30,9 @@ export class ChangeLedgerService {
30
30
  this.engine = new ChangeLedgerEngine(config)
31
31
  const checkpoints = new TurnCheckpointCoordinator(this.engine)
32
32
  ctx.inject(['agents'], (scope: Context) => { checkpoints.install(scope) })
33
- ctx.inject(['webServer', 'sessions', 'sessionQuery', 'apiProxy', 'agents'], (scope: Context) => {
33
+ // `apiProxy` is deliberately absent: DSH 0.1.2-alpha carriers (DSH Desktop 2.x)
34
+ // provide `sessionController` instead, and the route must exist on both.
35
+ ctx.inject(['webServer', 'sessions', 'sessionQuery', 'agents'], (scope: Context) => {
34
36
  installRewindHttp(scope, this.engine, checkpoints)
35
37
  installManageHttp(scope, this.engine)
36
38
  })
@@ -20,7 +20,8 @@ interface SessionHeaderLike {
20
20
  interface SessionLike {
21
21
  readonly id: string
22
22
  readonly header: SessionHeaderLike
23
- readonly events: readonly SessionEventLike[]
23
+ readonly events?: readonly SessionEventLike[]
24
+ snapshotEvents?(fromSeq?: number, toSeqExclusive?: number): readonly SessionEventLike[]
24
25
  }
25
26
 
26
27
  interface AgentLike {
@@ -89,6 +90,31 @@ interface ApiProxyLike {
89
90
  }
90
91
  }
91
92
 
93
+ /**
94
+ * Conversation create/fork capability of the Session controller service.
95
+ *
96
+ * DSH 0.1.2-alpha replaced the `apiProxy` RPC envelope with this plain service,
97
+ * so carriers without `apiProxy` (DSH Desktop 2.x) reach the same capability here.
98
+ */
99
+ interface SessionControllerLike {
100
+ create(request: { readonly cwd?: string; readonly workspaceId?: string }): Promise<{ readonly sessionId: string }>
101
+ fork(request: { readonly sessionId: string; readonly atSeq?: number }): Promise<{ readonly sessionId: string }>
102
+ }
103
+
104
+ /** Services a conversation restart can be built on, in either carrier shape. */
105
+ type ConversationRestartContext = Pick<Context, 'sessions' | 'sessionQuery'> & {
106
+ readonly apiProxy?: ApiProxyLike
107
+ readonly sessionController?: SessionControllerLike
108
+ }
109
+
110
+ function getSessionEvents(session: SessionLike | undefined): readonly SessionEventLike[] {
111
+ if (!session) return []
112
+ if (typeof session.snapshotEvents === 'function') {
113
+ return session.snapshotEvents()
114
+ }
115
+ return session.events ?? []
116
+ }
117
+
92
118
  declare module '@deepseek-ai/cordis' {
93
119
  interface Context {
94
120
  agents: AgentsLike
@@ -96,6 +122,7 @@ declare module '@deepseek-ai/cordis' {
96
122
  sessionQuery: SessionQueryLike
97
123
  webServer: HttpServerLike
98
124
  apiProxy: ApiProxyLike
125
+ sessionController: SessionControllerLike
99
126
  }
100
127
 
101
128
  interface Events {
@@ -178,7 +205,8 @@ export class TurnCheckpointCoordinator {
178
205
  const key = checkpointKey(agent.id, turn)
179
206
  const cwd = agent.session.header.cwd
180
207
  if (cwd === undefined) return
181
- const start = agent.session.events.findLast(event => event.type === 'turn/start' && event.data.turn === turn)
208
+ const events = getSessionEvents(agent.session)
209
+ const start = events.findLast(event => event.type === 'turn/start' && event.data.turn === turn)
182
210
  if (start === undefined) {
183
211
  await this.recordFailure(ctx, agent.id, turn, new Error('turn/start is unavailable before the first step'))
184
212
  return
@@ -248,7 +276,8 @@ export class TurnCheckpointCoordinator {
248
276
  /** Wait only for the bounded checkpoint outcome of the Agent's open turn. */
249
277
  private async waitForOpenTurn(agent: AgentLike, signal: AbortSignal): Promise<void> {
250
278
  if (signal.aborted) return
251
- const boundary = agent.session.events.findLast(event => event.type === 'turn/start' || event.type === 'turn/end')
279
+ const events = getSessionEvents(agent.session)
280
+ const boundary = events.findLast(event => event.type === 'turn/start' || event.type === 'turn/end')
252
281
  if (boundary?.type !== 'turn/start') return
253
282
  const turn = boundary.data.turn
254
283
  if (!Number.isSafeInteger(turn) || (turn as number) < 0) return
@@ -357,7 +386,7 @@ export function installRewindHttp(
357
386
 
358
387
  /** Build the exact-route handler as a testable unit. */
359
388
  export function createRewindHttpHandler(
360
- ctx: Pick<Context, 'sessions' | 'sessionQuery' | 'apiProxy'> & { readonly agents?: AgentsLike },
389
+ ctx: ConversationRestartContext & { readonly agents?: AgentsLike },
361
390
  engine: ChangeLedgerEngine,
362
391
  coordinator: TurnCheckpointCoordinator,
363
392
  ): (request: HttpRequestLike, response: HttpResponseLike) => Promise<void> {
@@ -577,7 +606,7 @@ async function checkpointForRequest(
577
606
  }
578
607
 
579
608
  async function createConversationRestart(
580
- ctx: Pick<Context, 'sessions' | 'sessionQuery' | 'apiProxy'>,
609
+ ctx: ConversationRestartContext,
581
610
  sourceId: string,
582
611
  checkpoint: MessageCheckpoint,
583
612
  ): Promise<{ readonly sessionId: string }> {
@@ -588,12 +617,26 @@ async function createConversationRestart(
588
617
  || current.previousTurnEndSeq !== checkpoint.previousTurnEndSeq) {
589
618
  throw new ChangeLedgerError('PLAN_STALE', 'the session no longer contains the selected message boundary')
590
619
  }
620
+ const controller = ctx.sessionController
621
+ if (controller !== undefined) {
622
+ const created = checkpoint.previousTurnEndSeq === undefined
623
+ ? await controller.create({ cwd: checkpoint.cwd })
624
+ : await controller.fork({ sessionId: sourceId, atSeq: checkpoint.previousTurnEndSeq })
625
+ return { sessionId: requiredText(created.sessionId, 'sessionController sessionId') }
626
+ }
627
+ const apiProxy = ctx.apiProxy
628
+ if (apiProxy === undefined) {
629
+ throw new ChangeLedgerError(
630
+ 'CONVERSATION_REWIND_FAILED',
631
+ 'this DSH host exposes neither sessionController nor apiProxy, so a new conversation cannot be created',
632
+ )
633
+ }
591
634
  const response = checkpoint.previousTurnEndSeq === undefined
592
- ? await ctx.apiProxy.sessions.create({
635
+ ? await apiProxy.sessions.create({
593
636
  rpcId: randomUUID(),
594
637
  payload: { cwd: checkpoint.cwd },
595
638
  })
596
- : await ctx.apiProxy.sessions.fork({
639
+ : await apiProxy.sessions.fork({
597
640
  rpcId: randomUUID(),
598
641
  payload: { sessionId: sourceId, atSeq: checkpoint.previousTurnEndSeq },
599
642
  })
@@ -606,16 +649,17 @@ async function createConversationRestart(
606
649
  function messageTarget(session: SessionLike, messageSeq: number): MessageTarget {
607
650
  const cwd = session.header.cwd
608
651
  if (cwd === undefined) throw new ChangeLedgerError('WORKSPACE_REQUIRED', `session ${session.id} has no workspace`)
609
- const message = session.events.find(event => event.type === 'user/message' && event.seq === messageSeq && isDirectUserMessage(event))
652
+ const events = getSessionEvents(session)
653
+ const message = events.find(event => event.type === 'user/message' && event.seq === messageSeq && isDirectUserMessage(event))
610
654
  if (message === undefined) {
611
655
  throw new ChangeLedgerError('RESTORE_POINT_NOT_FOUND', `session ${session.id} has no user message at ${String(messageSeq)}`)
612
656
  }
613
- const start = session.events.findLast(event => event.type === 'turn/start' && event.seq < messageSeq)
657
+ const start = events.findLast(event => event.type === 'turn/start' && event.seq < messageSeq)
614
658
  const turn = start?.data.turn
615
659
  if (start === undefined || !Number.isSafeInteger(turn) || (turn as number) < 0) {
616
660
  throw new ChangeLedgerError('PLAN_STALE', 'the selected user message has no valid turn start')
617
661
  }
618
- const openingMessage = session.events.find(event => (
662
+ const openingMessage = events.find(event => (
619
663
  event.type === 'user/message'
620
664
  && event.seq > start.seq
621
665
  && event.seq <= messageSeq
@@ -624,11 +668,11 @@ function messageTarget(session: SessionLike, messageSeq: number): MessageTarget
624
668
  if (openingMessage?.seq !== messageSeq) {
625
669
  throw new ChangeLedgerError('RESTORE_POINT_NOT_FOUND', 'rewind is available only for the opening user message of a turn')
626
670
  }
627
- const interveningEnd = session.events.find(event => event.type === 'turn/end' && event.seq > start.seq && event.seq < messageSeq)
671
+ const interveningEnd = events.find(event => event.type === 'turn/end' && event.seq > start.seq && event.seq < messageSeq)
628
672
  if (interveningEnd !== undefined) {
629
673
  throw new ChangeLedgerError('PLAN_STALE', 'the selected user message is outside its recorded turn')
630
674
  }
631
- const previousEnd = session.events.findLast(event => event.type === 'turn/end' && event.seq < start.seq)
675
+ const previousEnd = events.findLast(event => event.type === 'turn/end' && event.seq < start.seq)
632
676
  return {
633
677
  messageSeq,
634
678
  turn: turn as number,