dsh-lark-agent 0.4.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +7 -3
  2. package/dist/bridge.d.ts +6 -1
  3. package/dist/bridge.js +92 -16
  4. package/dist/client/AgentSettings.d.ts +12 -0
  5. package/dist/client/ConnectionCard.d.ts +5 -1
  6. package/dist/client/ManagerPanel.d.ts +3 -0
  7. package/dist/client/api.d.ts +14 -2
  8. package/dist/client/index.d.ts +1 -1
  9. package/dist/client/manager-styles.d.ts +2 -0
  10. package/dist/client/use-connection.d.ts +2 -2
  11. package/dist/client.cjs +727 -258
  12. package/dist/config.d.ts +4 -0
  13. package/dist/config.js +8 -0
  14. package/dist/dsh-runtime.d.ts +18 -4
  15. package/dist/dsh-runtime.js +199 -61
  16. package/dist/lark-cli.d.ts +7 -0
  17. package/dist/lark-cli.js +105 -1
  18. package/dist/media-input.d.ts +28 -0
  19. package/dist/media-input.js +127 -0
  20. package/dist/media-scopes.d.ts +5 -0
  21. package/dist/media-scopes.js +6 -0
  22. package/dist/message.d.ts +7 -0
  23. package/dist/message.js +27 -3
  24. package/dist/onboarding/agents.d.ts +9 -0
  25. package/dist/onboarding/agents.js +100 -0
  26. package/dist/onboarding/controller.d.ts +15 -2
  27. package/dist/onboarding/controller.js +155 -14
  28. package/dist/onboarding/host.d.ts +14 -2
  29. package/dist/onboarding/host.js +45 -16
  30. package/dist/onboarding/lark-platform.d.ts +6 -0
  31. package/dist/onboarding/lark-platform.js +15 -4
  32. package/dist/onboarding/manager.d.ts +32 -0
  33. package/dist/onboarding/manager.js +129 -0
  34. package/dist/onboarding/protocol.d.ts +51 -1
  35. package/dist/onboarding/settings-store.d.ts +11 -0
  36. package/dist/onboarding/settings-store.js +67 -0
  37. package/dist/session-store.d.ts +5 -1
  38. package/dist/session-store.js +32 -4
  39. package/package.json +1 -1
package/dist/client.cjs CHANGED
@@ -69,6 +69,7 @@ function parseSnapshot(value) {
69
69
  const capabilities = object(data.capabilities);
70
70
  if (typeof capabilities.cards !== "boolean" || typeof capabilities.loading !== "boolean") throw new Error("invalid capabilities");
71
71
  if (capabilities.documents !== void 0 && typeof capabilities.documents !== "boolean") throw new Error("invalid capabilities");
72
+ if (["images", "voice"].some((key) => capabilities[key] !== void 0 && typeof capabilities[key] !== "boolean")) throw new Error("invalid capabilities");
72
73
  const snapshot = {
73
74
  phase: data.phase,
74
75
  message: text(data.message),
@@ -76,7 +77,9 @@ function parseSnapshot(value) {
76
77
  capabilities: {
77
78
  cards: capabilities.cards,
78
79
  loading: capabilities.loading,
79
- ...capabilities.documents === void 0 ? {} : { documents: capabilities.documents }
80
+ ...capabilities.documents === void 0 ? {} : { documents: capabilities.documents },
81
+ ...capabilities.images === void 0 ? {} : { images: capabilities.images },
82
+ ...capabilities.voice === void 0 ? {} : { voice: capabilities.voice }
80
83
  }
81
84
  };
82
85
  if (data.qr !== void 0) {
@@ -111,6 +114,16 @@ function parseSnapshot(value) {
111
114
  snapshot.documentSetup.qr = { url: officialUrl(qr.url), image, expiresAt: timestamp(qr.expiresAt) };
112
115
  }
113
116
  }
117
+ if (data.inputSetup !== void 0) {
118
+ const setup = object(data.inputSetup);
119
+ if (!["images", "voice"].includes(setup.kind) || !["preparing", "scanning", "error"].includes(setup.phase)) throw new Error("invalid input setup");
120
+ snapshot.inputSetup = { kind: setup.kind, phase: setup.phase, message: text(setup.message, 600) };
121
+ if (setup.qr !== void 0) {
122
+ const qr = object(setup.qr), image = text(qr.image, 1e6);
123
+ if (!/^data:image\/(?:png|jpeg|webp);base64,[A-Za-z0-9+/]+=*$/.test(image)) throw new Error("invalid QR image");
124
+ snapshot.inputSetup.qr = { url: officialUrl(qr.url), image, expiresAt: timestamp(qr.expiresAt) };
125
+ }
126
+ }
114
127
  if (data.menu !== void 0) {
115
128
  const menu = object(data.menu);
116
129
  if (!Array.isArray(menu.missing) || !menu.missing.length || menu.missing.length > 10) throw new Error("invalid menu");
@@ -129,8 +142,60 @@ function parseSnapshot(value) {
129
142
  };
130
143
  snapshot.update = { current: version(update.current), latest: version(update.latest) };
131
144
  }
145
+ if (data.agent !== void 0) {
146
+ const agent = object(data.agent);
147
+ if (typeof agent.imageInput !== "boolean" || typeof agent.voiceInput !== "boolean" || typeof agent.editable !== "boolean") throw new Error("invalid agent");
148
+ snapshot.agent = {
149
+ label: text(agent.label, 80),
150
+ agentPreset: text(agent.agentPreset, 200),
151
+ workspace: text(agent.workspace, 4096),
152
+ workspaceDisplay: text(agent.workspaceDisplay, 4096),
153
+ imageInput: agent.imageInput,
154
+ voiceInput: agent.voiceInput,
155
+ editable: agent.editable
156
+ };
157
+ }
132
158
  return snapshot;
133
159
  }
160
+ var connectionId = (value) => {
161
+ const id = text(value, 32);
162
+ if (id !== "default" && !/^[a-f0-9]{32}$/.test(id)) throw new Error("invalid robot");
163
+ return id;
164
+ };
165
+ function parseConnectionList(value) {
166
+ const data = object(value);
167
+ if (!Array.isArray(data.connections) || data.connections.length > 10 || !Number.isInteger(data.limit) || data.limit < 1 || data.limit > 10) throw new Error("invalid robots");
168
+ const connections = data.connections.map((value2) => {
169
+ const row = object(value2);
170
+ if (!phases.has(String(row.phase)) || typeof row.busy !== "boolean") throw new Error("invalid robot status");
171
+ return { id: connectionId(row.id), label: text(row.label, 200), phase: row.phase, busy: row.busy, agentPreset: text(row.agentPreset, 200) };
172
+ });
173
+ if (new Set(connections.map((row) => row.id)).size !== connections.length || connections.length > data.limit) throw new Error("invalid robots");
174
+ return { connections, limit: data.limit };
175
+ }
176
+ function parseAgentCatalog(value) {
177
+ const data = object(value);
178
+ if (!Array.isArray(data.presets) || data.presets.length > 200 || ["presetsAvailable", "imagesAvailable", "voiceAvailable"].some((key) => typeof data[key] !== "boolean")) throw new Error("invalid agent catalog");
179
+ if (data.modelImages !== void 0 && !["supported", "unsupported", "unknown"].includes(data.modelImages)) throw new Error("invalid model capability");
180
+ return {
181
+ presetsAvailable: data.presetsAvailable,
182
+ imagesAvailable: data.imagesAvailable,
183
+ voiceAvailable: data.voiceAvailable,
184
+ model: text(data.model, 200),
185
+ ...data.modelImages === void 0 ? {} : { modelImages: data.modelImages },
186
+ ...data.defaultPreset === void 0 ? {} : { defaultPreset: text(data.defaultPreset, 200) },
187
+ presets: data.presets.map((value2) => {
188
+ const row = object(value2);
189
+ if (typeof row.available !== "boolean") throw new Error("invalid preset");
190
+ return {
191
+ id: text(row.id, 200),
192
+ name: text(row.name, 200),
193
+ available: row.available,
194
+ ...row.description === void 0 ? {} : { description: text(row.description, 600) }
195
+ };
196
+ })
197
+ };
198
+ }
134
199
  function parseProfiles(value) {
135
200
  if (!Array.isArray(value) || value.length > 200) throw new Error("invalid robots");
136
201
  return value.map((value2) => {
@@ -140,16 +205,22 @@ function parseProfiles(value) {
140
205
  }
141
206
  var ConnectionUiError = class extends Error {
142
207
  };
143
- var ConnectionApi = class {
144
- constructor(rpc, modern = false) {
208
+ var ConnectionApi = class _ConnectionApi {
209
+ constructor(rpc, modern = false, id) {
145
210
  this.rpc = rpc;
146
211
  this.modern = modern;
212
+ this.id = id;
147
213
  }
148
214
  rpc;
149
215
  modern;
216
+ id;
217
+ forConnection(id) {
218
+ return new _ConnectionApi(this.rpc, this.modern, connectionId(id));
219
+ }
150
220
  async request(endpoint, payload, signal) {
151
221
  try {
152
- const response = object(await this.rpc.call(this.modern ? "/api" : "/larkbot", this.modern ? `larkbot/${endpoint}` : endpoint, payload, signal));
222
+ const scoped = this.id === void 0 || ["connections", "add-connection", "remove-connection", "agent-catalog"].includes(endpoint) ? payload : { ...object(payload), connectionId: this.id };
223
+ const response = object(await this.rpc.call(this.modern ? "/api" : "/larkbot", this.modern ? `larkbot/${endpoint}` : endpoint, scoped, signal));
153
224
  if (response.ok === true) return response.value;
154
225
  if (response.ok === false) {
155
226
  const error = object(response.error);
@@ -178,10 +249,86 @@ var ConnectionApi = class {
178
249
  throw new ConnectionUiError("\u5DF2\u6709\u673A\u5668\u4EBA\u7684\u5217\u8868\u6682\u65F6\u65E0\u6CD5\u8BFB\u53D6\uFF0C\u8BF7\u91CD\u8BD5\u3002");
179
250
  }
180
251
  }
252
+ async connections(signal) {
253
+ try {
254
+ return parseConnectionList(await this.request("connections", {}, signal));
255
+ } catch (error) {
256
+ if (error instanceof ConnectionUiError || signal.aborted) throw error;
257
+ throw new ConnectionUiError("\u673A\u5668\u4EBA\u5217\u8868\u6682\u65F6\u65E0\u6CD5\u8BFB\u53D6\uFF0C\u8BF7\u5237\u65B0\u3002");
258
+ }
259
+ }
260
+ async addConnection(signal) {
261
+ const value = await this.request("add-connection", {}, signal);
262
+ try {
263
+ const data = object(value), list = parseConnectionList(data), selectedId = connectionId(data.selectedId);
264
+ if (!list.connections.some((row) => row.id === selectedId)) throw new Error();
265
+ return { ...list, selectedId };
266
+ } catch {
267
+ throw new ConnectionUiError("\u6DFB\u52A0\u7ED3\u679C\u6682\u65F6\u65E0\u6CD5\u786E\u8BA4\uFF0C\u8BF7\u5237\u65B0\u673A\u5668\u4EBA\u5217\u8868\u540E\u67E5\u770B\u3002");
268
+ }
269
+ }
270
+ async removeConnection(id, signal) {
271
+ const value = object(await this.request("remove-connection", { connectionId: connectionId(id) }, signal));
272
+ try {
273
+ const list = parseConnectionList(value), selectedId = connectionId(value.selectedId);
274
+ if (list.connections.some((row) => row.id === id) || !list.connections.some((row) => row.id === selectedId)) throw new Error();
275
+ return { ...list, selectedId };
276
+ } catch {
277
+ throw new ConnectionUiError("\u79FB\u9664\u7ED3\u679C\u6682\u65F6\u65E0\u6CD5\u786E\u8BA4\uFF0C\u8BF7\u5237\u65B0\u673A\u5668\u4EBA\u5217\u8868\u67E5\u770B\u3002");
278
+ }
279
+ }
280
+ async agentCatalog(signal) {
281
+ const value = await this.request("agent-catalog", {}, signal);
282
+ try {
283
+ return parseAgentCatalog(value);
284
+ } catch {
285
+ throw new ConnectionUiError("Agent \u9009\u9879\u6682\u65F6\u65E0\u6CD5\u8BFB\u53D6\uFF0C\u8BF7\u5237\u65B0\u3002");
286
+ }
287
+ }
181
288
  };
182
289
 
290
+ // src/client/manager-styles.ts
291
+ var managerCss = `
292
+ .dsh-lark-settings.lark-manager{container:lark-manager / inline-size;max-width:1160px;width:100%;min-width:0;padding:8px 0 24px;--lark-ink:#16263f;--lark-muted:#68788f;--lark-blue:#2965e8;--lark-soft:#f6f8fc}
293
+ .lark-manager-header{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:26px}.lark-eyebrow{color:var(--lark-blue);font:600 10px/1.5 ui-monospace,SFMono-Regular,monospace;letter-spacing:.16em;margin-bottom:5px}.lark-manager-header h2{font:650 26px/1.4 "Avenir Next","PingFang SC",sans-serif;letter-spacing:-.7px;margin:0}.lark-manager-header p{font-size:13px;color:var(--lark-muted);margin:5px 0 0}.lark-manager-tools{display:flex;gap:9px;align-items:center;flex-shrink:0}
294
+ .lark-manager-layout{display:grid;grid-template-columns:252px minmax(0,1fr);gap:28px;align-items:start}.lark-robot-sidebar{min-width:0;background:var(--lark-soft);border:1px solid var(--lark-line);border-radius:14px;padding:17px 12px}.lark-robot-count{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:0 5px 15px}.lark-robot-count strong{font-size:13px;font-weight:600}.lark-robot-count>span{font-size:11px;color:var(--lark-muted);font-variant-numeric:tabular-nums}
295
+ .lark-manager input,.lark-manager select{font:inherit;color:var(--lark-ink);background:var(--lark-surface);border:1px solid var(--lark-line);border-radius:8px;min-height:39px;padding:8px 11px;max-width:100%;width:100%}.lark-manager input:disabled,.lark-manager select:disabled{opacity:.75;cursor:not-allowed}.lark-manager select:focus-visible{outline:3px solid #a1b8ff;outline-offset:3px}.lark-manager .lark-robot-search{font-size:12px;min-height:35px;margin-bottom:13px}.lark-robot-list{display:flex;flex-direction:column;gap:8px}.lark-robot-item{width:100%;display:flex;align-items:flex-start;gap:10px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--lark-ink);text-align:left;padding:13px 10px;position:relative;transition:background .15s}.lark-robot-item:hover{background:var(--lark-surface)}.lark-robot-item.selected{background:var(--lark-surface);border-color:#c9d9fc;box-shadow:0 2px 6px #16377906}.lark-robot-item.selected:before{content:"";position:absolute;left:-13px;top:18px;bottom:18px;width:3px;border-radius:2px;background:var(--lark-blue)}.lark-robot-icon{width:34px;height:34px;display:grid;place-items:center;flex-shrink:0;background:var(--lark-soft);border:1px solid var(--lark-line);border-radius:9px}.lark-robot-icon img{width:25px;height:25px;object-fit:contain}.lark-robot-description{min-width:0;display:flex;flex-direction:column;gap:5px;flex:1}.lark-robot-description>strong{font-size:13px;font-weight:600;overflow-wrap:anywhere;line-height:1.5}.lark-robot-description>small{font-size:10px;color:var(--lark-muted);overflow-wrap:anywhere}.lark-robot-chevron{color:var(--lark-muted);align-self:center;font-size:20px}.lark-robot-item.selected .lark-robot-chevron{color:var(--lark-blue)}.lark-robot-phase{display:flex;align-items:center;gap:5px;color:var(--lark-muted);font-size:10px;line-height:1.5}.lark-robot-phase>i{width:5px;height:5px;border-radius:50%;background:currentColor}.lark-robot-phase.connected{color:#13886f}.lark-robot-phase.error,.lark-robot-phase.action_required{color:#a26714}.lark-robot-note{margin:22px 5px 0;border-top:1px solid var(--lark-line);padding-top:16px;color:var(--lark-muted)}.lark-robot-note strong{font-size:11px;font-weight:600}.lark-robot-note p{font-size:11px;line-height:1.8;margin:6px 0 0}.lark-list-empty{font-size:12px;padding:14px 5px;color:var(--lark-muted)}
296
+ .lark-robot-detail{min-width:0}.dsh-lark-settings.lark-detail-card{max-width:none;padding:0;margin:0;--lark-blue:#2965e8;--lark-soft:#f6f8fc}.lark-detail-card .lark-card-header{padding:20px 25px}.lark-detail-card .lark-card-header h2{font-size:17px}.lark-detail-card .lark-body{padding:24px 26px}.lark-detail-card .lark-connected-row{margin-top:20px;padding:14px 0}.lark-detail-card .lark-connected-row+.lark-connected-row{border-top:0;margin-top:0}.lark-detail-card .lark-connected-row p{line-height:1.8;max-width:340px}.lark-connection-summary{display:flex;align-items:center;gap:12px;border-radius:9px;background:#f0faf6;border:1px solid #d5eee3;padding:13px 15px}.lark-connection-dot{width:8px;height:8px;background:#13886f;border-radius:50%;flex-shrink:0;box-shadow:0 0 0 4px #13886f10}.lark-connection-summary strong{font-size:13px;font-weight:600}.lark-connection-summary p{font-size:12px;color:var(--lark-muted);margin:3px 0 0}.lark-connection-summary.paused{background:var(--lark-soft);border-color:var(--lark-line)}.lark-connection-summary.paused .lark-connection-dot{background:var(--lark-muted);box-shadow:none}
297
+ .lark-agent-settings{border-top:1px solid var(--lark-line);margin-top:25px;padding-top:22px}.lark-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:19px}.lark-body .lark-section-heading h3{font-size:14px;font-weight:650;margin:0;letter-spacing:0}.lark-section-heading>span{font-size:11px;color:var(--lark-muted)}.lark-field{margin-bottom:19px}.lark-field>label{display:block;font-size:12px;font-weight:550;margin-bottom:7px}.lark-field>p,.lark-model-summary>p,.lark-field-help{font-size:11px;color:var(--lark-muted);line-height:1.8;margin:6px 0 0;overflow-wrap:anywhere}.lark-manager input.lark-path-input{font-family:ui-monospace,SFMono-Regular,"PingFang SC",monospace;font-size:12px}.lark-field>p.lark-workspace-path{font-family:ui-monospace,SFMono-Regular,"PingFang SC",monospace;font-size:10px}.lark-model-summary{padding:13px 15px;background:var(--lark-soft);border-radius:9px}.lark-model-summary>span{font-size:12px}.lark-model-summary>strong{float:right;max-width:65%;font-size:12px;font-weight:550;overflow-wrap:anywhere}.lark-model-summary>p{clear:both;padding-top:4px}.lark-input-heading{margin-top:24px;margin-bottom:5px}.lark-input-option{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 0;border-bottom:1px solid var(--lark-line);cursor:pointer}.lark-input-option>span{min-width:0}.lark-input-option strong{display:block;font-size:12px;font-weight:550}.lark-input-option small{display:block;font-size:11px;color:var(--lark-muted);line-height:1.8;margin-top:4px}.lark-manager .lark-input-option input{width:17px;height:17px;min-height:0;padding:0;flex-shrink:0;accent-color:var(--lark-blue)}.lark-settings-save{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:22px}.lark-settings-save>span{font-size:11px;color:var(--lark-muted)}
298
+ .lark-connection-details{font-size:12px;color:var(--lark-muted);margin-top:14px}.lark-connection-details>summary{padding:8px 0}.lark-detail-card .lark-connection-details .lark-connected-row{margin-top:10px}.lark-detail-card .lark-recheck{margin-top:10px}.lark-manager>.lark-disconnect{margin:0 0 20px}
299
+ .lark-manager .lark-text-button{color:var(--lark-blue)}.lark-manager input::placeholder{color:var(--lark-muted);opacity:1}.lark-manager{color-scheme:light}
300
+ .lark-input-capability{padding:14px 0;border-bottom:1px solid var(--lark-line)}.lark-input-capability .lark-input-option{padding:0;border:0;align-items:flex-start}.lark-input-option strong{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lark-input-option em{font-style:normal;font-size:10px;font-weight:450;color:var(--lark-muted);background:var(--lark-soft);padding:2px 6px;border-radius:4px}.lark-input-option input{margin-top:3px}.lark-input-requirements{display:grid;gap:4px;font-size:11px;line-height:1.8;color:var(--lark-muted);margin-top:10px;overflow-wrap:anywhere}.lark-input-footer{margin-top:14px}.lark-input-authorization{border:1px solid var(--lark-line);background:var(--lark-soft);border-radius:9px;padding:15px;margin-top:16px}.lark-input-authorization>strong{font-size:13px}.lark-input-authorization .lark-qr{margin-top:14px}.lark-input-authorization .lark-actions{margin-top:14px}
301
+ @media(prefers-color-scheme:dark){.lark-manager,.lark-detail-card{color-scheme:dark}}
302
+ @media(prefers-color-scheme:dark){.dsh-lark-settings.lark-manager,.dsh-lark-settings.lark-detail-card{--lark-ink:#e0e7f1;--lark-muted:#96a6bd;--lark-soft:#283448;--lark-blue:#7ba0ff}.lark-robot-item.selected{border-color:#465e8d}.lark-connection-summary{background:#213b35;border-color:#36574d}.lark-connection-summary.paused{background:var(--lark-soft);border-color:var(--lark-line)}.lark-robot-phase.connected{color:#78c5b0}.lark-robot-phase.error,.lark-robot-phase.action_required{color:#e4bd7c}.lark-manager .lark-primary{background:#4268df}.lark-connection-dot{background:#78c5b0}}
303
+ .lark-manager-header>div:first-child,.lark-card-header>div{min-width:0}.lark-manager-tools{flex-wrap:wrap}.lark-detail-card{container:lark-detail / inline-size}.lark-detail-card .lark-card-header>div{flex:1}.lark-detail-card .lark-card-header h2{overflow-wrap:anywhere}.lark-detail-card .lark-card-header p{display:block}.lark-detail-card .lark-status{flex-shrink:0}.lark-detail-card .lark-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.lark-detail-card .lark-steps li{min-width:0;white-space:normal}.lark-detail-card .lark-steps li+li:before{display:none}.lark-detail-card .lark-steps li>span{flex-shrink:0}.lark-detail-card .lark-connected-row{flex-wrap:wrap}.lark-detail-card .lark-qr-layout{flex-wrap:wrap}.lark-detail-card .lark-qr-layout>div{min-width:0}.lark-detail-card .lark-loading-row h3{overflow-wrap:anywhere}
304
+ @container lark-manager (max-width:900px){.lark-manager-layout{grid-template-columns:205px minmax(0,1fr);gap:18px}.lark-manager-header{gap:15px}.lark-manager-header h2{font-size:23px}.lark-detail-card .lark-body{padding:21px}.lark-section-heading{flex-wrap:wrap;gap:4px}.lark-robot-count{flex-wrap:wrap;gap:4px}.lark-robot-item{padding:11px 6px;gap:8px}}
305
+ @container lark-manager (max-width:720px){.lark-manager-header{align-items:flex-start;flex-direction:column;gap:16px;margin-bottom:20px}.lark-manager-tools{width:100%;justify-content:flex-start}.lark-manager-layout{display:flex;flex-direction:column;gap:18px}.lark-robot-sidebar,.lark-robot-detail{width:100%}.lark-robot-sidebar{padding:12px}.lark-robot-count{padding-bottom:10px}.lark-robot-list{flex-direction:row;overflow-x:auto;gap:8px;padding-bottom:3px}.lark-robot-item{min-width:180px;max-width:230px;flex:0 0 auto;padding:11px}.lark-robot-item.selected:before{display:none}.lark-robot-note{display:none}.lark-manager .lark-robot-search{margin-bottom:10px}.lark-detail-card .lark-card-header{padding:17px}.lark-detail-card .lark-body{padding:20px 17px}.lark-model-summary>strong{max-width:60%}}
306
+ @container lark-detail (max-width:420px){.lark-detail-card .lark-card-header{display:grid;grid-template-columns:37px minmax(0,1fr);gap:4px 10px}.lark-detail-card .lark-plugin-icon{width:37px;height:37px;grid-row:1 / 3}.lark-detail-card .lark-status{grid-column:2;margin-left:0}.lark-detail-card .lark-card-header h2{font-size:16px}.lark-detail-card .lark-card-header p{font-size:11px}.lark-detail-card .lark-steps li{flex-direction:column;text-align:center;gap:5px;font-size:11px}.lark-detail-card .lark-body h3{font-size:18px}.lark-detail-card .lark-section-heading h3{font-size:14px}.lark-detail-card .lark-section-heading{flex-wrap:wrap;gap:4px}.lark-detail-card .lark-pairing{flex-direction:column;align-items:flex-start}.lark-detail-card .lark-qr-layout{flex-direction:column;align-items:center}.lark-detail-card .lark-model-summary>strong{float:none;display:block;max-width:none;margin-top:4px}.lark-detail-card .lark-settings-save{flex-wrap:wrap}}
307
+ `;
308
+
309
+ // src/client/styles.ts
310
+ var css = `
311
+ .dsh-lark-settings{--lark-ink:#263247;--lark-muted:#738096;--lark-line:#e4eaf2;--lark-blue:#4268df;--lark-surface:#fff;--lark-soft:#f5f8fd;font:14px/1.65 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--lark-ink);max-width:720px;margin:0 auto;padding:8px 0 20px;box-sizing:border-box}
312
+ .dsh-lark-settings *{box-sizing:border-box}.dsh-lark-settings button,.dsh-lark-settings input{font:inherit}.dsh-lark-settings button,.dsh-lark-settings summary{cursor:pointer}.dsh-lark-settings button:disabled{opacity:.5;cursor:not-allowed}.dsh-lark-settings button:focus-visible,.dsh-lark-settings a:focus-visible,.dsh-lark-settings input:focus-visible,.dsh-lark-settings summary:focus-visible{outline:3px solid #a1b8ff;outline-offset:3px}.dsh-lark-settings a{overflow-wrap:anywhere}.lark-heading{margin:0 0 22px}.lark-heading h2{font-size:23px;font-weight:650;margin:0 0 5px;letter-spacing:-.4px}.lark-heading p,.lark-card-header p{color:var(--lark-muted);font-size:13px;margin:0}.lark-card{border:1px solid var(--lark-line);border-radius:15px;background:var(--lark-surface);overflow:hidden;box-shadow:0 2px 5px #27385504}.lark-card-header{display:flex;align-items:center;gap:12px;padding:19px 23px;border-bottom:1px solid var(--lark-line)}.lark-plugin-icon{width:43px;height:43px;object-fit:contain;flex-shrink:0}.lark-card-header h2{font-size:15px;font-weight:650;line-height:1.6;margin:0}.lark-card-header p{font-size:12px}.lark-status{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:11px;color:var(--lark-muted);white-space:nowrap}.lark-status i{width:6px;height:6px;border-radius:50%;background:#9da9bc}.lark-status.online{color:#248470}.lark-status.online i{background:#248470}.lark-body{padding:28px;position:relative}.lark-body h3{font-size:20px;font-weight:650;letter-spacing:-.25px;margin:0 0 9px;line-height:1.5}.lark-copy{color:var(--lark-muted);font-size:13px;margin:0 0 20px}.lark-centered{text-align:center;line-height:1.9}.lark-body .lark-intro-title{text-align:center;font-size:21px}.lark-brands{display:flex;justify-content:center;align-items:center;gap:16px;margin:5px 0 25px}.lark-brand{width:53px;height:53px;display:grid;place-items:center;border-radius:14px;background:var(--lark-soft);border:1px solid var(--lark-line)}.lark-brand img{width:37px;height:37px;object-fit:contain}.lark-brand-line{width:78px;height:1px;background:#dbe3ee;position:relative}.lark-brand-line:after{content:"";position:absolute;left:calc(50% - 3px);top:-3px;width:7px;height:7px;border-radius:50%;background:#a9bbdc;border:2px solid var(--lark-surface)}.lark-brands-connected .lark-brand-line{background:#99d1c1}.lark-brands-connected .lark-brand-line:after{background:#248470}.lark-primary,.lark-secondary,.lark-quiet,.lark-danger{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:8px 16px;border-radius:8px;text-decoration:none;font-size:13px;font-weight:550;border:1px solid transparent;line-height:1.5;transition:background .14s}.lark-primary{background:var(--lark-blue);color:#fff}.lark-primary:hover{background:#3559ca}.lark-secondary{color:#485b79;background:var(--lark-surface);border-color:#dce3ed}.lark-secondary:hover{background:var(--lark-soft)}.lark-quiet{background:transparent;color:var(--lark-muted);font-weight:450}.lark-quiet:hover{background:var(--lark-soft)}.lark-danger{color:#ad4949;border-color:#e5bcbc;background:var(--lark-surface)}.lark-text-button{display:inline-flex;align-items:center;gap:7px;background:transparent;border:0;padding:5px 0;color:#5875a5;font-size:12px}.lark-entry{display:flex;flex-direction:column;align-items:center;gap:10px}.lark-entry .lark-primary{min-width:200px}.lark-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:23px}.lark-spread{justify-content:space-between}.lark-center{justify-content:center}.lark-footnote{color:var(--lark-muted);font-size:11px;text-align:center;margin:18px 0 0}.lark-left{text-align:left}.lark-bottom-note{text-align:center;color:var(--lark-muted);font-size:11px;margin:15px 0 0}.lark-steps{display:flex;list-style:none;gap:12px;margin:0 0 25px;padding:0;color:#8b98ad;font-size:11px}.lark-steps li{display:flex;gap:6px;align-items:center;white-space:nowrap}.lark-steps li+li:before{content:"";width:23px;height:1px;background:var(--lark-line);margin-right:5px}.lark-steps li span{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;background:var(--lark-soft);font-size:10px}.lark-steps .active{color:var(--lark-blue);font-weight:600}.lark-steps .active span{background:#edf2ff}.lark-steps .done{color:#248470}.lark-steps .done span{background:#edf8f4}.lark-qr-layout{display:flex;align-items:center;gap:25px;margin:23px 0}.lark-qr{position:relative;width:166px;height:166px;padding:10px;background:white;border:1px solid var(--lark-line);border-radius:12px;flex-shrink:0}.lark-qr img{width:100%;height:100%;object-fit:contain}.lark-qr.expired img{opacity:.12}.lark-qr>span{position:absolute;inset:0;display:grid;place-items:center;color:#64758e;font-weight:600}.lark-qr-layout strong{font-weight:600;font-size:13px}.lark-qr-layout .lark-copy{margin:7px 0 10px}.lark-time{color:var(--lark-muted);font-size:11px;font-variant-numeric:tabular-nums}.lark-link-details{border-top:1px solid var(--lark-line);padding:13px 0 0;font-size:12px;color:var(--lark-muted)}.lark-link-details summary{margin-bottom:12px}.lark-raw-url{font-size:10px;line-height:1.65;overflow-wrap:anywhere;margin-top:10px;color:var(--lark-muted);user-select:all}.lark-notice{padding:13px 15px;background:#eef3fe;border-radius:9px;color:#526c95;font-size:12px;line-height:1.8}.lark-notice.warning{background:#fff7e9;color:#8b671e}.lark-state-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#edf8f4;color:#248470;font-size:20px;margin:2px 0 18px}.lark-state-icon.warning{background:#fff7e9;color:#9b7530}.lark-checks{padding:0;list-style:none;margin:20px 0;font-size:13px;color:var(--lark-muted)}.lark-checks li{padding:10px 0;border-bottom:1px solid var(--lark-line)}.lark-checks li:before{content:"\xB7";margin-right:12px}.lark-pairing{background:var(--lark-soft);border:1px solid var(--lark-line);border-radius:11px;padding:17px 18px;display:flex;align-items:center;justify-content:space-between;gap:13px}.lark-pair-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:21px;letter-spacing:.02em;color:#3d5a91;margin:4px 0 2px;overflow-wrap:anywhere;user-select:all}.lark-pairing.expired .lark-pair-code{opacity:.5}.lark-caption{font-size:11px;color:var(--lark-muted)}.lark-copy-status{min-height:18px;font-size:11px;color:#248470;margin:5px 0}.lark-instructions{padding-left:20px;color:#536784;font-size:13px}.lark-instructions li{padding:3px 0}.lark-owner{padding:17px 18px;background:var(--lark-soft);border:1px solid var(--lark-line);border-radius:10px;display:grid;gap:6px}.lark-owner strong{font-size:15px;font-weight:600;overflow-wrap:anywhere}.lark-connected-row{border-top:1px solid var(--lark-line);border-bottom:1px solid var(--lark-line);display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;margin:26px 0 0}.lark-connected-row strong{font-size:12px;font-weight:600}.lark-connected-row p{font-size:11px;color:var(--lark-muted);margin:3px 0 0}.lark-advanced{font-size:12px;color:var(--lark-muted);padding-top:14px}.lark-advanced p{margin:9px 0 0;line-height:1.9}.lark-disconnect{border:1px solid #eacbcb;padding:14px;border-radius:10px;margin-top:16px;font-size:12px}.lark-disconnect p{margin:0}.lark-disconnect .lark-actions{margin-top:12px}.lark-profile-list{border:0;margin:20px 0 0;padding:0;display:grid;gap:10px;min-width:0}.lark-profile{display:flex;align-items:center;gap:12px;border:1px solid var(--lark-line);border-radius:10px;padding:15px;background:var(--lark-soft);cursor:pointer;overflow-wrap:anywhere}.lark-profile input{accent-color:var(--lark-blue)}.lark-error{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff1f1;border:1px solid #f0d5d5;color:#9b4e4e;border-radius:9px;padding:11px 13px;font-size:12px;margin-bottom:21px}.lark-error .lark-text-button{flex-shrink:0;color:#9b4e4e}.lark-loading{padding:27px 0;text-align:center}.lark-loading .lark-spinner{margin:0 auto 17px;display:block}.lark-loading p{font-size:13px;color:var(--lark-muted);margin:0}.lark-loading-row{display:flex;align-items:center;gap:12px;color:var(--lark-muted);font-size:13px;margin:4px 0 15px}.lark-loading-row h3{color:var(--lark-ink);margin:0}.lark-spinner{display:inline-block;width:18px;height:18px;border:2px solid #dfe6f4;border-top-color:var(--lark-blue);border-radius:50%;animation:lark-spin .85s linear infinite;flex-shrink:0}.lark-pending{display:flex;align-items:center;gap:9px;margin-top:19px;font-size:11px;color:var(--lark-muted)}.lark-pending .lark-spinner{width:13px;height:13px}.lark-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.lark-update{border:1px solid #cfdcf8;background:#f4f7ff;border-radius:11px;padding:14px 16px;margin:0 0 22px}.lark-connected-row+.lark-update{margin:16px 0 0}.lark-update-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.lark-update strong{font-size:13px;font-weight:600}.lark-update p{font-size:12px;color:var(--lark-muted);margin:3px 0 0}.lark-update .lark-instructions{margin:12px 0 0}.lark-update .lark-actions{margin-top:12px}.lark-update .lark-copy-status{margin:6px 0 0}.lark-command{display:block;margin-top:6px;padding:8px 10px;border-radius:7px;background:var(--lark-surface);border:1px solid var(--lark-line);font:12px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere;user-select:all}
313
+ @keyframes lark-spin{to{transform:rotate(360deg)}}
314
+ @media(prefers-color-scheme:dark){.dsh-lark-settings{--lark-ink:#e0e7f1;--lark-muted:#96a6bd;--lark-line:#364357;--lark-surface:#202a39;--lark-soft:#283448;--lark-blue:#5077ec}.lark-secondary{color:#c6d5ed;border-color:#46536b}.lark-pair-code{color:#b9ceff}.lark-instructions{color:#b0c2de}.lark-notice{background:#273d5a;color:#c2d3ec}.lark-notice.warning,.lark-state-icon.warning{background:#44391f;color:#e4c886}.lark-error{background:#492e32;border-color:#684047;color:#edbec2}.lark-error .lark-text-button{color:#edbec2}.lark-steps .active span{background:#293e6b}.lark-steps .done span,.lark-state-icon{background:#23483f}.lark-status.online,.lark-steps .done{color:#78c5b0}.lark-update{background:#24324a;border-color:#3a4d70}}
315
+ @media(max-width:520px){.lark-heading{margin-bottom:17px}.lark-card-header{padding:16px;gap:10px}.lark-card-header p{display:none}.lark-plugin-icon{width:37px;height:37px}.lark-body{padding:21px 18px}.lark-steps{gap:7px}.lark-steps li+li:before{width:12px;margin-right:2px}.lark-qr-layout{gap:17px;align-items:flex-start}.lark-qr{width:138px;height:138px}.lark-qr-layout strong{font-size:12px}.lark-qr-layout .lark-copy{font-size:12px}.lark-pairing{align-items:flex-start;flex-direction:column}.lark-pair-code{font-size:19px}.lark-body h3{font-size:19px}.lark-connected-row{gap:10px}.lark-actions{gap:8px}.lark-primary,.lark-secondary,.lark-quiet,.lark-danger{padding:8px 12px}.lark-copy{font-size:12px}.lark-update-row{flex-direction:column;align-items:flex-start}}
316
+ @media(max-width:360px){.lark-qr-layout{flex-direction:column;align-items:center;text-align:center}.lark-steps{font-size:10px}.lark-steps li+li:before{width:8px}.lark-status{font-size:10px}}
317
+ @media(prefers-reduced-motion:reduce){.dsh-lark-settings *{animation:none!important;transition:none!important}}
318
+ `;
319
+ function installStyles() {
320
+ const style = document.createElement("style");
321
+ style.dataset.plugin = "dsh-larkbot";
322
+ style.textContent = css + managerCss;
323
+ document.head.appendChild(style);
324
+ return () => style.remove();
325
+ }
326
+
327
+ // src/client/ManagerPanel.tsx
328
+ var import_react4 = require("react");
329
+
183
330
  // src/client/ConnectionCard.tsx
184
- var import_react2 = require("react");
331
+ var import_react3 = require("react");
185
332
 
186
333
  // src/client/use-connection.ts
187
334
  var import_react = require("react");
@@ -260,6 +407,7 @@ function useConnection(api) {
260
407
  } else {
261
408
  const next = await api.snapshot(endpoint, payload, controller.signal);
262
409
  if (live.current && generation === epoch.current && !controller.signal.aborted) accept(next);
410
+ return next;
263
411
  }
264
412
  } catch (error2) {
265
413
  if (live.current && generation === epoch.current && !controller.signal.aborted) setError(report(error2));
@@ -282,6 +430,138 @@ function useConnection(api) {
282
430
  return { snapshot, error, pending, profiles, refresh, mutate: execute, loadProfiles: () => execute("profiles") };
283
431
  }
284
432
 
433
+ // src/client/AgentSettings.tsx
434
+ var import_react2 = require("react");
435
+ var import_jsx_runtime = require("react/jsx-runtime");
436
+ function AgentSettings({ snapshot, catalog, pending, save, authorize, cancelAuthorization, recheck, now }) {
437
+ const current = snapshot.agent;
438
+ const [draft, setDraft] = (0, import_react2.useState)(() => pick(current));
439
+ const [status, setStatus] = (0, import_react2.useState)("");
440
+ const id = (0, import_react2.useId)();
441
+ const savedKey = JSON.stringify(pick(current));
442
+ (0, import_react2.useEffect)(() => {
443
+ setDraft(pick(current));
444
+ setStatus("");
445
+ }, [savedKey]);
446
+ const editable = current.editable && !pending;
447
+ const dirty = JSON.stringify(draft) !== savedKey;
448
+ const update = (key, value) => {
449
+ setDraft((before) => ({ ...before, [key]: value }));
450
+ setStatus("");
451
+ };
452
+ const chosen = catalog?.presets.find((preset) => preset.id === draft.agentPreset);
453
+ const defaultPresetName = catalog?.presets.find((preset) => preset.id === catalog.defaultPreset)?.name || catalog?.defaultPreset;
454
+ const voiceReady = Boolean(catalog?.voiceAvailable && snapshot.capabilities.voice);
455
+ const imagesReady = Boolean(catalog?.imagesAvailable && snapshot.capabilities.images && catalog.modelImages !== "unsupported");
456
+ const canAuthorize = Boolean(snapshot.bot && ["connected", "paused"].includes(snapshot.phase));
457
+ const authorizing = Boolean(snapshot.inputSetup || snapshot.documentSetup);
458
+ const setup = snapshot.inputSetup;
459
+ const inputStatus = (enabled, ready) => !ready ? enabled ? "\u5DF2\u52FE\u9009 \xB7 \u5F85\u5C31\u7EEA" : "\u5F85\u5C31\u7EEA" : enabled ? "\u5DF2\u5F00\u542F" : "\u53EF\u542F\u7528";
460
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("section", { className: "lark-agent-settings", "aria-label": "Agent \u8BBE\u7F6E", children: [
461
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-section-heading", children: [
462
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { children: "Agent \u8BBE\u7F6E" }),
463
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: authorizing ? "\u5B8C\u6210\u6388\u6743\u540E\u53EF\u4FEE\u6539" : current.editable ? "\u6BCF\u4E2A\u673A\u5668\u4EBA\u72EC\u7ACB\u4FDD\u5B58" : "\u6682\u505C\u8FDE\u63A5\u540E\u53EF\u4FEE\u6539" })
464
+ ] }),
465
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-field", children: [
466
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("label", { htmlFor: `${id}-name`, children: "\u673A\u5668\u4EBA\u540D\u79F0" }),
467
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { id: `${id}-name`, value: draft.label, maxLength: 80, placeholder: "\u4F8B\u5982\uFF1A\u5DE5\u4F5C\u52A9\u624B\u3001\u7814\u7A76\u52A9\u624B", disabled: !editable, onChange: (event) => update("label", event.target.value) }),
468
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: "\u4EC5\u7528\u4E8E\u8FD9\u91CC\u7684\u7BA1\u7406\u5217\u8868\u3002" })
469
+ ] }),
470
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-field", children: [
471
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("label", { htmlFor: `${id}-preset`, children: "Agent \u9884\u8BBE" }),
472
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("select", { id: `${id}-preset`, value: draft.agentPreset, disabled: !editable || !catalog?.presetsAvailable, onChange: (event) => update("agentPreset", event.target.value), children: [
473
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("option", { value: "", children: catalog?.presetsAvailable ? `\u8DDF\u968F\u5BBF\u4E3B\u9ED8\u8BA4${defaultPresetName ? ` \xB7 ${defaultPresetName}` : ""}` : "\u5F53\u524D\u5BBF\u4E3B\u4E0D\u63D0\u4F9B\u9884\u8BBE\u9009\u62E9" }),
474
+ draft.agentPreset && !chosen && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("option", { value: draft.agentPreset, disabled: true, children: [
475
+ draft.agentPreset,
476
+ " \xB7 \u5DF2\u4E0D\u53EF\u7528"
477
+ ] }),
478
+ catalog?.presets.map((preset) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("option", { value: preset.id, disabled: !preset.available, children: [
479
+ preset.name,
480
+ preset.available ? "" : " \xB7 \u4E0D\u53EF\u7528"
481
+ ] }, preset.id))
482
+ ] }),
483
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: chosen?.description || "\u4F7F\u7528\u5BBF\u4E3B\u4E2D\u5DF2\u6709\u7684\u5DE5\u5177\u3001\u6280\u80FD\u548C\u4EBA\u8BBE\u3002\u4FEE\u6539\u540E\u4ECE\u65B0\u8BDD\u9898\u5F00\u59CB\u751F\u6548\u3002" }),
484
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: "\u5DE5\u5177\u4E0E\u6280\u80FD\u5728\u5BBF\u4E3B\u7684 Agent \u9884\u8BBE\u4E2D\u7BA1\u7406\uFF1B\u4E0B\u65B9\u5355\u72EC\u68C0\u67E5\u56FE\u7247\u548C\u8BED\u97F3\u6240\u9700\u80FD\u529B\u3002" })
485
+ ] }),
486
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-field", children: [
487
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("label", { htmlFor: `${id}-workspace`, children: "\u5DE5\u4F5C\u533A" }),
488
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { className: "lark-path-input", id: `${id}-workspace`, value: draft.workspace, maxLength: 4096, placeholder: "\u7559\u7A7A\u4F7F\u7528\u72EC\u7ACB\u5DE5\u4F5C\u533A\uFF1B\u4E5F\u53EF\u586B\u5DF2\u6709\u6587\u4EF6\u5939\u7684\u7EDD\u5BF9\u8DEF\u5F84", disabled: !editable, onChange: (event) => update("workspace", event.target.value) }),
489
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "lark-workspace-path", children: current.workspaceDisplay }),
490
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: "\u4FEE\u6539\u540E\u65B0\u8BDD\u9898\u4F7F\u7528\u65B0\u76EE\u5F55\uFF0C\u5DF2\u6709\u8BDD\u9898\u4FDD\u7559\u539F\u5DE5\u4F5C\u533A\u3002" })
491
+ ] }),
492
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-model-summary", children: [
493
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "\u6A21\u578B\u4E0E\u601D\u8003\u6DF1\u5EA6" }),
494
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: catalog?.model || "\u6B63\u5728\u8BFB\u53D6\u5BBF\u4E3B\u6A21\u578B" }),
495
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: "\u65B0\u4F1A\u8BDD\u8DDF\u968F\u5BBF\u4E3B\u6A21\u578B\uFF1B\u5728\u98DE\u4E66\u7528 /model\u3001/thinking \u8C03\u6574\u3002" })
496
+ ] }),
497
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-section-heading lark-input-heading", children: [
498
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { children: "\u6D88\u606F\u8F93\u5165" }),
499
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "\u4EC5\u672C\u4EBA Harness \u79C1\u804A" })
500
+ ] }),
501
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-input-capability", children: [
502
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("label", { className: "lark-input-option", htmlFor: `${id}-images`, children: [
503
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
504
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("strong", { children: [
505
+ "\u56FE\u7247\u8BC6\u522B ",
506
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("em", { children: imagesReady && catalog?.modelImages !== "supported" ? draft.imageInput ? "\u5DF2\u52FE\u9009 \xB7 \u5F85\u6A21\u578B\u786E\u8BA4" : "\u5F85\u6A21\u578B\u786E\u8BA4" : inputStatus(draft.imageInput, imagesReady) })
507
+ ] }),
508
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("small", { children: "\u5355\u5F20 10 MB\uFF0C\u6700\u591A 4 \u5F20\uFF1B\u4EA4\u7ED9\u5F53\u524D\u8BDD\u9898\u7684\u89C6\u89C9\u6A21\u578B\u7406\u89E3\u3002" })
509
+ ] }),
510
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { id: `${id}-images`, "aria-label": "\u56FE\u7247\u8BC6\u522B", "aria-describedby": `${id}-images-help`, type: "checkbox", checked: draft.imageInput, disabled: !editable || !imagesReady && !draft.imageInput, onChange: (event) => update("imageInput", event.target.checked) })
511
+ ] }),
512
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-input-requirements", id: `${id}-images-help`, children: [
513
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: catalog?.imagesAvailable ? "\u2713 \u5BBF\u4E3B\u9644\u4EF6\u670D\u52A1\u5DF2\u5C31\u7EEA" : "\u5BBF\u4E3B\u672A\u63D0\u4F9B\u9644\u4EF6\u670D\u52A1\uFF0C\u8BF7\u66F4\u65B0\u5BBF\u4E3B" }),
514
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: snapshot.capabilities.images ? "\u2713 \u98DE\u4E66\u56FE\u7247\u8BFB\u53D6\u6743\u9650\u5DF2\u5C31\u7EEA" : "\u5F85\u5F00\u901A\u98DE\u4E66\u56FE\u7247\u8BFB\u53D6\u6743\u9650" }),
515
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: catalog?.modelImages === "supported" ? "\u2713 \u5BBF\u4E3B\u9ED8\u8BA4\u6A21\u578B\u652F\u6301\u56FE\u7247" : catalog?.modelImages === "unsupported" ? "\u5BBF\u4E3B\u9ED8\u8BA4\u6A21\u578B\u4E0D\u652F\u6301\u56FE\u7247\uFF0C\u8BF7\u5207\u6362\u6A21\u578B\u540E\u5237\u65B0\u6B64\u9875" : "\u6A21\u578B\u56FE\u7247\u80FD\u529B\u672A\u786E\u8BA4\uFF0C\u6536\u56FE\u65F6\u6309\u5F53\u524D\u8BDD\u9898\u6A21\u578B\u68C0\u67E5" })
516
+ ] }),
517
+ canAuthorize && !snapshot.capabilities.images && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-text-button", disabled: pending || authorizing, onClick: () => authorize("images"), children: "\u5F00\u901A\u56FE\u7247\u6743\u9650" })
518
+ ] }),
519
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-input-capability", children: [
520
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("label", { className: "lark-input-option", htmlFor: `${id}-voice`, children: [
521
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { children: [
522
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("strong", { children: [
523
+ "\u8BED\u97F3\u8F6C\u6587\u5B57 ",
524
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("em", { children: inputStatus(draft.voiceInput, voiceReady) })
525
+ ] }),
526
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("small", { children: "\u5148\u8BC6\u522B\u6210\u6587\u5B57\u4EA4\u7ED9 Agent\uFF0C\u4EE5\u6587\u5B57\u56DE\u590D\uFF1B\u6700\u957F 60 \u79D2\u3002" })
527
+ ] }),
528
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { id: `${id}-voice`, "aria-label": "\u8BED\u97F3\u8F6C\u6587\u5B57", "aria-describedby": `${id}-voice-help`, type: "checkbox", checked: draft.voiceInput, disabled: !editable || !voiceReady && !draft.voiceInput, onChange: (event) => update("voiceInput", event.target.checked) })
529
+ ] }),
530
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-input-requirements", id: `${id}-voice-help`, children: [
531
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: catalog?.voiceAvailable ? "\u2713 FFmpeg \u5DF2\u5C31\u7EEA" : "\u9700\u8981\u5728\u5BBF\u4E3B\u8BBE\u5907\u5B89\u88C5 FFmpeg\uFF0C\u5B89\u88C5\u540E\u5237\u65B0\u6B64\u9875" }),
532
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: snapshot.capabilities.voice ? "\u2713 \u98DE\u4E66\u8BED\u97F3\u8BC6\u522B\u548C\u6587\u4EF6\u8BFB\u53D6\u6743\u9650\u5DF2\u5C31\u7EEA" : "\u5F85\u5F00\u901A\u98DE\u4E66\u8BED\u97F3\u8BC6\u522B\u4E0E\u6587\u4EF6\u8BFB\u53D6\u6743\u9650" }),
533
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "\u98DE\u4E66\u79DF\u6237\u9700\u652F\u6301 ASR\uFF0C\u6388\u6743\u4E0D\u4F1A\u5347\u7EA7\u5957\u9910\uFF1B\u662F\u5426\u53EF\u7528\u4EE5\u98DE\u4E66\u5B9E\u6D4B\u4E3A\u51C6\u3002" })
534
+ ] }),
535
+ canAuthorize && !snapshot.capabilities.voice && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-text-button", disabled: pending || authorizing, onClick: () => authorize("voice"), children: "\u5F00\u901A\u8BED\u97F3\u6743\u9650" })
536
+ ] }),
537
+ setup && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-input-authorization", role: "region", "aria-label": "\u6D88\u606F\u8F93\u5165\u6388\u6743", children: [
538
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: setup.kind === "voice" ? "\u5F00\u901A\u8BED\u97F3\u6743\u9650" : "\u5F00\u901A\u56FE\u7247\u6743\u9650" }),
539
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "lark-field-help", role: "status", children: setup.message }),
540
+ setup.qr && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
541
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-qr", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", { src: setup.qr.image, alt: "\u6D88\u606F\u8F93\u5165\u6743\u9650\u6388\u6743\u4E8C\u7EF4\u7801" }) }),
542
+ setup.qr.expiresAt > now ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { className: "lark-text-button", href: setup.qr.url, target: "_blank", rel: "noopener noreferrer", children: "\u6253\u5F00\u98DE\u4E66\u6388\u6743 \u2197" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "lark-field-help", children: "\u4E8C\u7EF4\u7801\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u53D6\u6D88\u540E\u91CD\u65B0\u5F00\u901A\u3002" })
543
+ ] }),
544
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-actions", children: [
545
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-secondary", disabled: pending, onClick: cancelAuthorization, children: "\u53D6\u6D88\u8F93\u5165\u6388\u6743" }),
546
+ setup.phase === "error" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-secondary", disabled: pending, onClick: () => authorize(setup.kind), children: "\u91CD\u8BD5\u8F93\u5165\u6388\u6743" })
547
+ ] })
548
+ ] }),
549
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-input-footer", children: [
550
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "lark-field-help", children: "\u5F00\u5173\u53EA\u4FDD\u5B58\u5F53\u524D\u673A\u5668\u4EBA\u7684\u8F93\u5165\u8BBE\u7F6E\u3002\u626B\u7801\u6388\u6743\u4EC5\u4F5C\u7528\u4E8E\u6B64\u673A\u5668\u4EBA\uFF1B\u5B8C\u6210\u5BA1\u6279\u540E\u518D\u52FE\u9009\u5E76\u4FDD\u5B58\u3002" }),
551
+ canAuthorize && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-text-button", disabled: pending || authorizing, onClick: recheck, children: "\u91CD\u65B0\u68C0\u67E5\u8F93\u5165\u6743\u9650" })
552
+ ] }),
553
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-settings-save", children: [
554
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { role: "status", children: status || (dirty ? "\u6709\u672A\u4FDD\u5B58\u7684\u4FEE\u6539" : "\u8BBE\u7F6E\u5DF2\u4FDD\u5B58") }),
555
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-primary", disabled: !editable || !dirty, onClick: () => void save({ ...draft, label: draft.label.trim(), agentPreset: draft.agentPreset.trim(), workspace: draft.workspace.trim() }).then((next) => {
556
+ if (next) setStatus("\u8BBE\u7F6E\u5DF2\u4FDD\u5B58");
557
+ }), children: "\u4FDD\u5B58\u8BBE\u7F6E" })
558
+ ] })
559
+ ] });
560
+ }
561
+ function pick(value) {
562
+ return { label: value.label, agentPreset: value.agentPreset, workspace: value.workspace, imageInput: value.imageInput, voiceInput: value.voiceInput };
563
+ }
564
+
285
565
  // assets/plugin-icon.png
286
566
  var plugin_icon_default = "data:image/png;base64,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";
287
567
 
@@ -292,7 +572,7 @@ var feishu_logo_default = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAAC
292
572
  var deepseek_harness_icon_default = "data:image/png;base64,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";
293
573
 
294
574
  // src/client/ConnectionCard.tsx
295
- var import_jsx_runtime = require("react/jsx-runtime");
575
+ var import_jsx_runtime2 = require("react/jsx-runtime");
296
576
  var UPGRADE_COMMAND = "dsh plugin --profile web update dsh-lark-agent@latest";
297
577
  var UPGRADE_GUIDE = "https://github.com/Nirvana-Jie/dsh-lark-agent/blob/main/DEVELOPMENT.md#\u5347\u7EA7";
298
578
  var phaseLabels = {
@@ -309,8 +589,8 @@ var phaseLabels = {
309
589
  error: "\u8FDE\u63A5\u672A\u5B8C\u6210"
310
590
  };
311
591
  function useNow() {
312
- const [now, setNow] = (0, import_react2.useState)(Date.now);
313
- (0, import_react2.useEffect)(() => {
592
+ const [now, setNow] = (0, import_react3.useState)(Date.now);
593
+ (0, import_react3.useEffect)(() => {
314
594
  const timer = setInterval(() => setNow(Date.now()), 1e3);
315
595
  return () => clearInterval(timer);
316
596
  }, []);
@@ -321,39 +601,45 @@ function remaining(expiresAt, now) {
321
601
  return `${Math.floor(seconds / 60)}:${String(seconds % 60).padStart(2, "0")}`;
322
602
  }
323
603
  function External({ url, children, className = "lark-secondary" }) {
324
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("a", { className, href: url, target: "_blank", rel: "noopener noreferrer", children: [
604
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("a", { className, href: url, target: "_blank", rel: "noopener noreferrer", children: [
325
605
  children,
326
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { "aria-hidden": "true", children: "\u2197" })
606
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { "aria-hidden": "true", children: "\u2197" })
327
607
  ] });
328
608
  }
329
609
  function BrandLink({ connected = false }) {
330
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: `lark-brands ${connected ? "lark-brands-connected" : ""}`, "aria-hidden": "true", children: [
331
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-brand", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", { src: deepseek_harness_icon_default, alt: "" }) }),
332
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-brand-line" }),
333
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-brand", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", { src: feishu_logo_default, alt: "" }) })
610
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: `lark-brands ${connected ? "lark-brands-connected" : ""}`, "aria-hidden": "true", children: [
611
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "lark-brand", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("img", { src: deepseek_harness_icon_default, alt: "" }) }),
612
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "lark-brand-line" }),
613
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "lark-brand", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("img", { src: feishu_logo_default, alt: "" }) })
334
614
  ] });
335
615
  }
336
616
  function Steps({ active }) {
337
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("ol", { className: "lark-steps", "aria-label": "\u8FDE\u63A5\u8FDB\u5EA6", children: ["\u8FDE\u63A5\u673A\u5668\u4EBA", "\u786E\u8BA4\u672C\u4EBA", "\u5B8C\u6210"].map((label, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("li", { className: index < active ? "done" : index === active ? "active" : "", "aria-current": index === active ? "step" : void 0, children: [
338
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { "aria-hidden": "true", children: index < active ? "\u2713" : index + 1 }),
617
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("ol", { className: "lark-steps", "aria-label": "\u8FDE\u63A5\u8FDB\u5EA6", children: ["\u8FDE\u63A5\u673A\u5668\u4EBA", "\u786E\u8BA4\u672C\u4EBA", "\u5B8C\u6210"].map((label, index) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("li", { className: index < active ? "done" : index === active ? "active" : "", "aria-current": index === active ? "step" : void 0, children: [
618
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { "aria-hidden": "true", children: index < active ? "\u2713" : index + 1 }),
339
619
  label
340
620
  ] }, label)) });
341
621
  }
622
+ function ConnectionDetails({ compact, open, children }) {
623
+ return compact ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("details", { className: "lark-connection-details", open: open || void 0, children: [
624
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("summary", { children: "\u6743\u9650\u3001\u83DC\u5355\u4E0E\u8FDE\u63A5\u7BA1\u7406" }),
625
+ children
626
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_jsx_runtime2.Fragment, { children });
627
+ }
342
628
  function MenuNotice({ menu, phase }) {
343
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-update", role: "status", children: [
344
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: "\u98DE\u4E66\u5E95\u90E8\u83DC\u5355\u7F3A\u5C11\u5165\u53E3" }),
345
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: menu.missing.map((entry) => `${entry.parent ? `${entry.parent} \u2192 ` : ""}${entry.label}\uFF08\u4E8B\u4EF6\u6807\u8BC6 ${entry.eventKey}\uFF09`).join("\u3001") }),
346
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("ol", { className: "lark-instructions", children: [
347
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: "\u5728\u98DE\u4E66\u5F00\u53D1\u8005\u540E\u53F0\u6253\u5F00\u300C\u673A\u5668\u4EBA\u81EA\u5B9A\u4E49\u83DC\u5355\u300D\u8865\u4E0A\uFF0C\u54CD\u5E94\u52A8\u4F5C\u9009\u300C\u63A8\u9001\u4E8B\u4EF6\u300D\uFF0C\u4E8B\u4EF6\u6807\u8BC6\u9010\u5B57\u586B\u5199\u3002" }),
348
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: "\u521B\u5EFA\u7248\u672C\u5E76\u53D1\u5E03\uFF0C\u5BA2\u6237\u7AEF\u7EA6 5 \u5206\u949F\u540E\u66F4\u65B0\u3002" }),
349
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: phase === "paused" ? "\u56DE\u5230\u8FD9\u91CC\u70B9\u300C\u6062\u590D\u8FDE\u63A5\u300D\u3002" : "\u56DE\u5230\u8FD9\u91CC\u70B9\u300C\u6682\u505C\u8FDE\u63A5\u300D\uFF0C\u518D\u70B9\u300C\u6062\u590D\u8FDE\u63A5\u300D\u3002" })
629
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-update", role: "status", children: [
630
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("strong", { children: "\u98DE\u4E66\u5E95\u90E8\u83DC\u5355\u7F3A\u5C11\u5165\u53E3" }),
631
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: menu.missing.map((entry) => `${entry.parent ? `${entry.parent} \u2192 ` : ""}${entry.label}\uFF08\u4E8B\u4EF6\u6807\u8BC6 ${entry.eventKey}\uFF09`).join("\u3001") }),
632
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("ol", { className: "lark-instructions", children: [
633
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", { children: "\u5728\u98DE\u4E66\u5F00\u53D1\u8005\u540E\u53F0\u6253\u5F00\u300C\u673A\u5668\u4EBA\u81EA\u5B9A\u4E49\u83DC\u5355\u300D\u8865\u4E0A\uFF0C\u54CD\u5E94\u52A8\u4F5C\u9009\u300C\u63A8\u9001\u4E8B\u4EF6\u300D\uFF0C\u4E8B\u4EF6\u6807\u8BC6\u9010\u5B57\u586B\u5199\u3002" }),
634
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", { children: "\u521B\u5EFA\u7248\u672C\u5E76\u53D1\u5E03\uFF0C\u5BA2\u6237\u7AEF\u7EA6 5 \u5206\u949F\u540E\u66F4\u65B0\u3002" }),
635
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", { children: phase === "paused" ? "\u56DE\u5230\u8FD9\u91CC\u70B9\u300C\u6062\u590D\u8FDE\u63A5\u300D\u3002" : "\u56DE\u5230\u8FD9\u91CC\u70B9\u300C\u6682\u505C\u8FDE\u63A5\u300D\uFF0C\u518D\u70B9\u300C\u6062\u590D\u8FDE\u63A5\u300D\u3002" })
350
636
  ] }),
351
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-actions", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(External, { url: menu.url, children: "\u6253\u5F00\u98DE\u4E66\u540E\u53F0" }) })
637
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "lark-actions", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(External, { url: menu.url, children: "\u6253\u5F00\u98DE\u4E66\u540E\u53F0" }) })
352
638
  ] });
353
639
  }
354
640
  function UpdateNotice({ update, host, phase }) {
355
- const [open, setOpen] = (0, import_react2.useState)(false);
356
- const [status, setStatus] = (0, import_react2.useState)("");
641
+ const [open, setOpen] = (0, import_react3.useState)(false);
642
+ const [status, setStatus] = (0, import_react3.useState)("");
357
643
  const app = host?.app ?? false;
358
644
  const settled = phase === "connected" || phase === "paused";
359
645
  const copy = async () => {
@@ -364,49 +650,49 @@ function UpdateNotice({ update, host, phase }) {
364
650
  setStatus("\u8BF7\u9009\u4E2D\u4E0A\u65B9\u547D\u4EE4\u624B\u52A8\u590D\u5236");
365
651
  }
366
652
  };
367
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-update", children: [
368
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-update-row", children: [
369
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
370
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("strong", { children: [
653
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-update", children: [
654
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-update-row", children: [
655
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { children: [
656
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("strong", { children: [
371
657
  "\u98DE\u4E66\u63D2\u4EF6\u6709\u65B0\u7248\u672C ",
372
658
  update.latest
373
659
  ] }),
374
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", { children: [
660
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("p", { children: [
375
661
  "\u5F53\u524D ",
376
662
  update.current,
377
663
  "\uFF0C\u5347\u7EA7\u540E\u4FDD\u7559\u73B0\u6709\u8FDE\u63A5\u548C\u5BF9\u8BDD\u3002"
378
664
  ] })
379
665
  ] }),
380
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-secondary", "aria-expanded": open, onClick: () => setOpen(!open), children: open ? "\u6536\u8D77" : "\u5347\u7EA7" })
666
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-secondary", "aria-expanded": open, onClick: () => setOpen(!open), children: open ? "\u6536\u8D77" : "\u5347\u7EA7" })
381
667
  ] }),
382
- open && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
383
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("ol", { className: "lark-instructions", children: [
384
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: phase === "paused" ? "\u8FDE\u63A5\u5DF2\u6682\u505C\uFF0C\u53EF\u4EE5\u76F4\u63A5\u5347\u7EA7\u3002" : settled ? "\u5148\u70B9\u4E0B\u65B9\u300C\u6682\u505C\u8FDE\u63A5\u300D\u3002" : "\u5148\u5B8C\u6210\u6216\u53D6\u6D88\u5F53\u524D\u7684\u8FDE\u63A5\u6B65\u9AA4\u3002" }),
385
- app ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: "\u5728\u300C\u63D2\u4EF6\u5217\u8868\u300D\u5378\u8F7D dsh-lark-agent\uFF0C\u518D\u70B9\u300C\u6DFB\u52A0\u63D2\u4EF6\u300D\u8F93\u5165 dsh-lark-agent \u5B89\u88C5\u65B0\u7248\u3002" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("li", { children: [
668
+ open && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
669
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("ol", { className: "lark-instructions", children: [
670
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", { children: phase === "paused" ? "\u8FDE\u63A5\u5DF2\u6682\u505C\uFF0C\u53EF\u4EE5\u76F4\u63A5\u5347\u7EA7\u3002" : settled ? "\u5148\u70B9\u4E0B\u65B9\u300C\u6682\u505C\u8FDE\u63A5\u300D\u3002" : "\u5148\u5B8C\u6210\u6216\u53D6\u6D88\u5F53\u524D\u7684\u8FDE\u63A5\u6B65\u9AA4\u3002" }),
671
+ app ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", { children: "\u5728\u300C\u63D2\u4EF6\u5217\u8868\u300D\u5378\u8F7D dsh-lark-agent\uFF0C\u518D\u70B9\u300C\u6DFB\u52A0\u63D2\u4EF6\u300D\u8F93\u5165 dsh-lark-agent \u5B89\u88C5\u65B0\u7248\u3002" }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("li", { children: [
386
672
  "\u5728\u7EC8\u7AEF\u8FD0\u884C\u4E0B\u9762\u7684\u547D\u4EE4\uFF0C\u7136\u540E\u91CD\u542F dsh web\uFF1A",
387
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("code", { className: "lark-command", children: UPGRADE_COMMAND })
673
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("code", { className: "lark-command", children: UPGRADE_COMMAND })
388
674
  ] }),
389
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: settled ? "\u56DE\u5230\u8FD9\u91CC\u70B9\u300C\u6062\u590D\u8FDE\u63A5\u300D\uFF0C\u5728\u98DE\u4E66\u53D1\u4E00\u53E5\u8BDD\u786E\u8BA4\u80FD\u56DE\u590D\u3002" : "\u5347\u7EA7\u540E\u56DE\u5230\u8FD9\u91CC\u7EE7\u7EED\u3002" })
675
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", { children: settled ? "\u56DE\u5230\u8FD9\u91CC\u70B9\u300C\u6062\u590D\u8FDE\u63A5\u300D\uFF0C\u5728\u98DE\u4E66\u53D1\u4E00\u53E5\u8BDD\u786E\u8BA4\u80FD\u56DE\u590D\u3002" : "\u5347\u7EA7\u540E\u56DE\u5230\u8FD9\u91CC\u7EE7\u7EED\u3002" })
390
676
  ] }),
391
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-actions", children: [
392
- app ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-secondary", onClick: () => {
677
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-actions", children: [
678
+ app ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-secondary", onClick: () => {
393
679
  if (!host?.openPlugins?.()) setStatus("\u8BF7\u5207\u5230\u4E0A\u65B9\u7684\u300C\u63D2\u4EF6\u5217\u8868\u300D\u7EE7\u7EED\u3002");
394
- }, children: "\u6253\u5F00\u63D2\u4EF6\u5217\u8868" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-secondary", onClick: () => void copy(), children: "\u590D\u5236\u5347\u7EA7\u547D\u4EE4" }),
395
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(External, { className: "lark-text-button", url: UPGRADE_GUIDE, children: "\u5347\u7EA7\u524D\u7684\u5907\u4EFD\u8BF4\u660E" })
680
+ }, children: "\u6253\u5F00\u63D2\u4EF6\u5217\u8868" }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-secondary", onClick: () => void copy(), children: "\u590D\u5236\u5347\u7EA7\u547D\u4EE4" }),
681
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(External, { className: "lark-text-button", url: UPGRADE_GUIDE, children: "\u5347\u7EA7\u524D\u7684\u5907\u4EFD\u8BF4\u660E" })
396
682
  ] }),
397
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "lark-copy-status", role: "status", children: status })
683
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "lark-copy-status", role: "status", children: status })
398
684
  ] })
399
685
  ] });
400
686
  }
401
- function ConnectionCard({ api, host }) {
687
+ function ConnectionCard({ api, host, embedded = false, catalog, onSnapshot }) {
402
688
  const { snapshot, error, pending, profiles, refresh, mutate, loadProfiles } = useConnection(api);
403
- const [chooseExisting, setChooseExisting] = (0, import_react2.useState)(false);
404
- const [selected, setSelected] = (0, import_react2.useState)("");
405
- const [disconnecting, setDisconnecting] = (0, import_react2.useState)(false);
406
- const [copyMessage, setCopyMessage] = (0, import_react2.useState)("");
689
+ const [chooseExisting, setChooseExisting] = (0, import_react3.useState)(false);
690
+ const [selected, setSelected] = (0, import_react3.useState)("");
691
+ const [disconnecting, setDisconnecting] = (0, import_react3.useState)(false);
692
+ const [copyMessage, setCopyMessage] = (0, import_react3.useState)("");
407
693
  const now = useNow();
408
- const titleId = (0, import_react2.useId)();
409
- const labelId = (0, import_react2.useId)();
694
+ const titleId = (0, import_react3.useId)();
695
+ const labelId = (0, import_react3.useId)();
410
696
  const phase = snapshot?.phase ?? "idle";
411
697
  const disabled = pending !== null;
412
698
  const unavailable = disabled || Boolean(snapshot?.busy);
@@ -421,10 +707,13 @@ function ConnectionCard({ api, host }) {
421
707
  setDisconnecting(false);
422
708
  void mutate("cancel");
423
709
  };
424
- (0, import_react2.useEffect)(() => {
710
+ (0, import_react3.useEffect)(() => {
425
711
  setCopyMessage("");
426
712
  }, [snapshot?.pairing?.code]);
427
- (0, import_react2.useEffect)(() => {
713
+ (0, import_react3.useEffect)(() => {
714
+ if (snapshot) onSnapshot?.(snapshot);
715
+ }, [snapshot, onSnapshot]);
716
+ (0, import_react3.useEffect)(() => {
428
717
  if (phase !== "connected" && phase !== "paused") setDisconnecting(false);
429
718
  }, [phase]);
430
719
  const copyPairing = async () => {
@@ -437,275 +726,454 @@ function ConnectionCard({ api, host }) {
437
726
  }
438
727
  };
439
728
  function body() {
440
- if (!snapshot) return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-loading", children: [
441
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "lark-spinner", "aria-hidden": "true" }),
442
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { children: "\u6B63\u5728\u8BFB\u53D6\u8FDE\u63A5\u72B6\u6001" }),
443
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: "\u7A0D\u7B49\u7247\u523B\uFF0C\u786E\u8BA4\u52A9\u624B\u662F\u5426\u5DF2\u8FDE\u63A5\u3002" })
729
+ if (!snapshot) return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-loading", children: [
730
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "lark-spinner", "aria-hidden": "true" }),
731
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h3", { children: "\u6B63\u5728\u8BFB\u53D6\u8FDE\u63A5\u72B6\u6001" }),
732
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: "\u7A0D\u7B49\u7247\u523B\uFF0C\u786E\u8BA4\u52A9\u624B\u662F\u5426\u5DF2\u8FDE\u63A5\u3002" })
444
733
  ] });
445
- if (phase === "idle" && chooseExisting) return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
446
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { children: "\u8FDE\u63A5\u5DF2\u6709\u673A\u5668\u4EBA" }),
447
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "lark-copy", children: "\u9009\u62E9\u8FD9\u53F0\u8BBE\u5907\u4E0A\u5DF2\u914D\u7F6E\u7684\u673A\u5668\u4EBA\uFF0C\u7EE7\u7EED\u786E\u8BA4\u672C\u4EBA\u3002" }),
448
- profiles === null ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-loading-row", children: [
449
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "lark-spinner", "aria-hidden": "true" }),
734
+ if (phase === "idle" && chooseExisting) return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
735
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h3", { children: "\u8FDE\u63A5\u5DF2\u6709\u673A\u5668\u4EBA" }),
736
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "lark-copy", children: "\u9009\u62E9\u8FD9\u53F0\u8BBE\u5907\u4E0A\u5DF2\u914D\u7F6E\u7684\u673A\u5668\u4EBA\uFF0C\u7EE7\u7EED\u786E\u8BA4\u672C\u4EBA\u3002" }),
737
+ profiles === null ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-loading-row", children: [
738
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "lark-spinner", "aria-hidden": "true" }),
450
739
  "\u6B63\u5728\u67E5\u627E\u5DF2\u6709\u673A\u5668\u4EBA"
451
- ] }) : profiles.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-notice", children: "\u8FD9\u53F0\u8BBE\u5907\u4E0A\u8FD8\u6CA1\u6709\u53EF\u7528\u7684\u673A\u5668\u4EBA\u3002\u53EF\u4EE5\u8FD4\u56DE\uFF0C\u901A\u8FC7\u626B\u7801\u521B\u5EFA\u3002" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("fieldset", { className: "lark-profile-list", children: [
452
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("legend", { className: "lark-sr", children: "\u9009\u62E9\u673A\u5668\u4EBA" }),
453
- profiles.map((profile, i) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("label", { className: "lark-profile", children: [
454
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", { type: "radio", name: `${titleId}-robot`, value: profile.name, checked: (selected || profiles[0]?.name) === profile.name, onChange: () => setSelected(profile.name), disabled }),
455
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: profile.label || `\u98DE\u4E66\u673A\u5668\u4EBA ${i + 1}` })
740
+ ] }) : profiles.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "lark-notice", children: "\u8FD9\u53F0\u8BBE\u5907\u4E0A\u8FD8\u6CA1\u6709\u53EF\u7528\u7684\u673A\u5668\u4EBA\u3002\u53EF\u4EE5\u8FD4\u56DE\uFF0C\u901A\u8FC7\u626B\u7801\u521B\u5EFA\u3002" }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("fieldset", { className: "lark-profile-list", children: [
741
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("legend", { className: "lark-sr", children: "\u9009\u62E9\u673A\u5668\u4EBA" }),
742
+ profiles.map((profile, i) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("label", { className: "lark-profile", children: [
743
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("input", { type: "radio", name: `${titleId}-robot`, value: profile.name, checked: (selected || profiles[0]?.name) === profile.name, onChange: () => setSelected(profile.name), disabled }),
744
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children: profile.label || `\u98DE\u4E66\u673A\u5668\u4EBA ${i + 1}` })
456
745
  ] }, profile.name))
457
746
  ] }),
458
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-actions lark-spread", children: [
459
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-quiet", disabled, onClick: () => setChooseExisting(false), children: "\u8FD4\u56DE" }),
460
- profiles && profiles.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-primary", disabled: unavailable, onClick: () => {
747
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-actions lark-spread", children: [
748
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-quiet", disabled, onClick: () => setChooseExisting(false), children: "\u8FD4\u56DE" }),
749
+ profiles && profiles.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-primary", disabled: unavailable, onClick: () => {
461
750
  setChooseExisting(false);
462
751
  void mutate("use-profile", { name: selected || profiles[0]?.name });
463
- }, children: "\u8FDE\u63A5\u8FD9\u4E2A\u673A\u5668\u4EBA" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-secondary", disabled, onClick: () => void loadProfiles(), children: "\u91CD\u65B0\u67E5\u627E" })
752
+ }, children: "\u8FDE\u63A5\u8FD9\u4E2A\u673A\u5668\u4EBA" }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-secondary", disabled, onClick: () => void loadProfiles(), children: "\u91CD\u65B0\u67E5\u627E" })
464
753
  ] })
465
754
  ] });
466
- if (phase === "idle") return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
467
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(BrandLink, {}),
468
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { className: "lark-intro-title", children: "\u628A\u52A9\u624B\u5E26\u5230\u98DE\u4E66" }),
469
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", { className: "lark-copy lark-centered", children: [
755
+ if (phase === "idle") return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
756
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(BrandLink, {}),
757
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h3", { className: "lark-intro-title", children: "\u628A\u52A9\u624B\u5E26\u5230\u98DE\u4E66" }),
758
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("p", { className: "lark-copy lark-centered", children: [
470
759
  "\u63A5\u7740\u8BA8\u8BBA\u3001\u4EA4\u4EE3\u4E00\u4EF6\u4E8B\uFF0C\u6216\u53D1\u6765\u4E00\u4E2A\u60F3\u6CD5\u3002",
471
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {}),
760
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("br", {}),
472
761
  "\u6253\u5F00\u98DE\u4E66\uFF0C\u5C31\u80FD\u7EE7\u7EED\u804A\u3002"
473
762
  ] }),
474
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-entry", children: [
475
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("button", { className: "lark-primary", disabled: unavailable, onClick: start, children: [
763
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-entry", children: [
764
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("button", { className: "lark-primary", disabled: unavailable, onClick: start, children: [
476
765
  "\u626B\u7801\u521B\u5EFA\u5E76\u8FDE\u63A5",
477
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { "aria-hidden": "true", children: "\u2192" })
766
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { "aria-hidden": "true", children: "\u2192" })
478
767
  ] }),
479
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("button", { className: "lark-text-button", disabled, onClick: () => {
768
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("button", { className: "lark-text-button", disabled, onClick: () => {
480
769
  setChooseExisting(true);
481
770
  void loadProfiles();
482
771
  }, children: [
483
772
  "\u6211\u5DF2\u6709\u673A\u5668\u4EBA",
484
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { "aria-hidden": "true", children: "\u203A" })
773
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { "aria-hidden": "true", children: "\u203A" })
485
774
  ] })
486
775
  ] }),
487
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "lark-footnote", children: "\u7528\u98DE\u4E66\u786E\u8BA4\uFF0C\u65E0\u9700\u624B\u52A8\u6574\u7406\u914D\u7F6E\u3002" })
776
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "lark-footnote", children: "\u7528\u98DE\u4E66\u786E\u8BA4\uFF0C\u65E0\u9700\u624B\u52A8\u6574\u7406\u914D\u7F6E\u3002" })
488
777
  ] });
489
- if (phase === "creating" || phase === "configuring" || phase === "starting") return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
490
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Steps, { active: phase === "starting" ? 1 : 0 }),
491
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-loading-row", children: [
492
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "lark-spinner", "aria-hidden": "true" }),
493
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { children: phase === "creating" ? "\u6B63\u5728\u51C6\u5907\u626B\u7801\u5165\u53E3" : phase === "starting" ? "\u6B63\u5728\u8FDE\u63A5\u4F60\u7684\u52A9\u624B" : "\u6B63\u5728\u51C6\u5907\u8FDE\u63A5" })
778
+ if (phase === "creating" || phase === "configuring" || phase === "starting") return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
779
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Steps, { active: phase === "starting" ? 2 : 0 }),
780
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-loading-row", children: [
781
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "lark-spinner", "aria-hidden": "true" }),
782
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h3", { children: phase === "creating" ? "\u6B63\u5728\u51C6\u5907\u626B\u7801\u5165\u53E3" : phase === "starting" ? "\u6B63\u5728\u8FDE\u63A5\u4F60\u7684\u52A9\u624B" : "\u6B63\u5728\u51C6\u5907\u8FDE\u63A5" })
494
783
  ] }),
495
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "lark-copy", children: snapshot.message || "\u68C0\u67E5\u5B8C\u6210\u540E\u4F1A\u81EA\u52A8\u7EE7\u7EED\u3002" }),
496
- phase === "configuring" && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("ul", { className: "lark-checks", children: [
497
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: "\u914D\u7F6E\u8FD9\u4E2A\u673A\u5668\u4EBA" }),
498
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: "\u68C0\u67E5\u6D88\u606F\u6536\u53D1\u4E0E\u4E92\u52A8\u56DE\u590D" }),
499
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: "\u786E\u8BA4\u4F01\u4E1A\u4F7F\u7528\u6743\u9650" })
784
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "lark-copy", children: snapshot.message || "\u68C0\u67E5\u5B8C\u6210\u540E\u4F1A\u81EA\u52A8\u7EE7\u7EED\u3002" }),
785
+ phase === "configuring" && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("ul", { className: "lark-checks", children: [
786
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", { children: "\u914D\u7F6E\u8FD9\u4E2A\u673A\u5668\u4EBA" }),
787
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", { children: "\u68C0\u67E5\u6D88\u606F\u6536\u53D1\u4E0E\u4E92\u52A8\u56DE\u590D" }),
788
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", { children: "\u786E\u8BA4\u4F01\u4E1A\u4F7F\u7528\u6743\u9650" })
500
789
  ] }),
501
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-actions", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-quiet", disabled, onClick: cancel, children: "\u53D6\u6D88\u8FDE\u63A5" }) })
790
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "lark-actions", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-quiet", disabled, onClick: cancel, children: "\u53D6\u6D88\u8FDE\u63A5" }) })
502
791
  ] });
503
- if (phase === "waiting_scan") return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
504
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Steps, { active: 0 }),
505
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { children: "\u7528\u98DE\u4E66\u626B\u7801" }),
506
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "lark-copy", children: "\u7528\u4F60\u5E73\u65F6\u4F7F\u7528\u7684\u98DE\u4E66\u8D26\u53F7\uFF0C\u786E\u8BA4\u521B\u5EFA\u4E13\u5C5E\u52A9\u624B\u3002" }),
507
- snapshot.qr ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
508
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-qr-layout", children: [
509
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: `lark-qr ${qrExpired ? "expired" : ""}`, children: [
510
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", { src: snapshot.qr.image, alt: "\u98DE\u4E66\u5E94\u7528\u521B\u5EFA\u6388\u6743\u4E8C\u7EF4\u7801" }),
511
- qrExpired && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "\u5DF2\u8FC7\u671F" })
792
+ if (phase === "waiting_scan") return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
793
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Steps, { active: 0 }),
794
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h3", { children: "\u7528\u98DE\u4E66\u626B\u7801" }),
795
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "lark-copy", children: "\u7528\u4F60\u5E73\u65F6\u4F7F\u7528\u7684\u98DE\u4E66\u8D26\u53F7\uFF0C\u786E\u8BA4\u521B\u5EFA\u4E13\u5C5E\u52A9\u624B\u3002" }),
796
+ snapshot.qr ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
797
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-qr-layout", children: [
798
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: `lark-qr ${qrExpired ? "expired" : ""}`, children: [
799
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("img", { src: snapshot.qr.image, alt: "\u98DE\u4E66\u5E94\u7528\u521B\u5EFA\u6388\u6743\u4E8C\u7EF4\u7801" }),
800
+ qrExpired && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children: "\u5DF2\u8FC7\u671F" })
512
801
  ] }),
513
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
514
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: qrExpired ? "\u8FD9\u4E2A\u4E8C\u7EF4\u7801\u5DF2\u8FC7\u671F" : "\u6253\u5F00\u98DE\u4E66\u626B\u4E00\u626B" }),
515
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", { className: "lark-copy", children: [
802
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { children: [
803
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("strong", { children: qrExpired ? "\u8FD9\u4E2A\u4E8C\u7EF4\u7801\u5DF2\u8FC7\u671F" : "\u6253\u5F00\u98DE\u4E66\u626B\u4E00\u626B" }),
804
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("p", { className: "lark-copy", children: [
516
805
  "\u5728\u98DE\u4E66\u91CC\u786E\u8BA4\u8D26\u53F7\uFF0C",
517
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {}),
806
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("br", {}),
518
807
  "\u5B8C\u6210\u540E\u8FD9\u91CC\u4F1A\u81EA\u52A8\u7EE7\u7EED\u3002"
519
808
  ] }),
520
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "lark-time", children: qrExpired ? "\u5237\u65B0\u540E\u518D\u7EE7\u7EED" : `${remaining(snapshot.qr.expiresAt, now)} \u540E\u5931\u6548` })
809
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "lark-time", children: qrExpired ? "\u5237\u65B0\u540E\u518D\u7EE7\u7EED" : `${remaining(snapshot.qr.expiresAt, now)} \u540E\u5931\u6548` })
521
810
  ] })
522
811
  ] }),
523
- !qrExpired && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("details", { className: "lark-link-details", children: [
524
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("summary", { children: "\u65E0\u6CD5\u626B\u7801\uFF1F\u6253\u5F00\u6388\u6743\u94FE\u63A5" }),
525
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(External, { url: snapshot.qr.url, children: "\u6253\u5F00\u98DE\u4E66\u6388\u6743" }),
526
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-raw-url", children: snapshot.qr.url })
812
+ !qrExpired && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("details", { className: "lark-link-details", children: [
813
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("summary", { children: "\u65E0\u6CD5\u626B\u7801\uFF1F\u6253\u5F00\u6388\u6743\u94FE\u63A5" }),
814
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(External, { url: snapshot.qr.url, children: "\u6253\u5F00\u98DE\u4E66\u6388\u6743" }),
815
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "lark-raw-url", children: snapshot.qr.url })
527
816
  ] })
528
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-notice", children: "\u4E8C\u7EF4\u7801\u5C1A\u672A\u51C6\u5907\u597D\uFF0C\u8BF7\u7A0D\u540E\u5237\u65B0\u3002" }),
529
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-actions lark-spread", children: [
530
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-quiet", disabled, onClick: cancel, children: "\u53D6\u6D88\u8FDE\u63A5" }),
531
- (qrExpired || !snapshot.qr) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-primary", disabled, onClick: start, children: "\u5237\u65B0\u4E8C\u7EF4\u7801" })
817
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "lark-notice", children: "\u4E8C\u7EF4\u7801\u5C1A\u672A\u51C6\u5907\u597D\uFF0C\u8BF7\u7A0D\u540E\u5237\u65B0\u3002" }),
818
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-actions lark-spread", children: [
819
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-quiet", disabled, onClick: cancel, children: "\u53D6\u6D88\u8FDE\u63A5" }),
820
+ (qrExpired || !snapshot.qr) && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-primary", disabled, onClick: start, children: "\u5237\u65B0\u4E8C\u7EF4\u7801" })
532
821
  ] })
533
822
  ] });
534
- if (phase === "action_required") return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
535
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Steps, { active: 0 }),
536
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-state-icon warning", "aria-hidden": "true", children: "!" }),
537
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { children: "\u8FD8\u9700\u8981\u5B8C\u6210\u4E00\u6B65" }),
538
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "lark-copy", children: snapshot.message || "\u8BF7\u5728\u98DE\u4E66\u5B8C\u6210\u6240\u9700\u8BBE\u7F6E\uFF0C\u518D\u56DE\u6765\u68C0\u67E5\u8FDE\u63A5\u3002" }),
539
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-notice warning", children: "\u4F01\u4E1A\u89C4\u5219\u53EF\u80FD\u9700\u8981\u7BA1\u7406\u5458\u6279\u51C6\u3002\u68C0\u67E5\u901A\u8FC7\u524D\uFF0C\u52A9\u624B\u8FD8\u4E0D\u80FD\u5728\u98DE\u4E66\u63A5\u6536\u4F60\u7684\u6D88\u606F\u3002" }),
540
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-actions", children: [
541
- snapshot.action && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(External, { url: snapshot.action.url, children: snapshot.action.label }),
542
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-primary", disabled: unavailable, onClick: () => void mutate("recheck"), children: "\u91CD\u65B0\u68C0\u67E5" })
823
+ if (phase === "action_required") return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
824
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Steps, { active: 0 }),
825
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "lark-state-icon warning", "aria-hidden": "true", children: "!" }),
826
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h3", { children: "\u8FD8\u9700\u8981\u5B8C\u6210\u4E00\u6B65" }),
827
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "lark-copy", children: snapshot.message || "\u8BF7\u5728\u98DE\u4E66\u5B8C\u6210\u6240\u9700\u8BBE\u7F6E\uFF0C\u518D\u56DE\u6765\u68C0\u67E5\u8FDE\u63A5\u3002" }),
828
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "lark-notice warning", children: "\u4F01\u4E1A\u89C4\u5219\u53EF\u80FD\u9700\u8981\u7BA1\u7406\u5458\u6279\u51C6\u3002\u68C0\u67E5\u901A\u8FC7\u524D\uFF0C\u52A9\u624B\u8FD8\u4E0D\u80FD\u5728\u98DE\u4E66\u63A5\u6536\u4F60\u7684\u6D88\u606F\u3002" }),
829
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-actions", children: [
830
+ snapshot.action && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(External, { url: snapshot.action.url, children: snapshot.action.label }),
831
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-primary", disabled: unavailable, onClick: () => void mutate("recheck"), children: "\u91CD\u65B0\u68C0\u67E5" })
543
832
  ] }),
544
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-actions", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-quiet", disabled, onClick: cancel, children: "\u7A0D\u540E\u518D\u8BF4" }) })
833
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "lark-actions", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-quiet", disabled, onClick: cancel, children: "\u7A0D\u540E\u518D\u8BF4" }) })
545
834
  ] });
546
- if (phase === "pairing") return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
547
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Steps, { active: 1 }),
548
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { children: "\u53BB\u98DE\u4E66\u8DDF\u6211\u6253\u4E2A\u62DB\u547C" }),
549
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "lark-copy", children: "\u5728\u673A\u5668\u4EBA\u7684\u79C1\u804A\u4E2D\u53D1\u9001\u4E0B\u9762\u8FD9\u53E5\u8BDD\uFF0C\u786E\u8BA4\u6765\u7684\u662F\u4F60\u672C\u4EBA\u3002" }),
550
- snapshot.pairing ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: `lark-pairing ${pairExpired ? "expired" : ""}`, children: [
551
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
552
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "lark-caption", children: "\u4EC5\u7528\u4E8E\u8FD9\u6B21\u8FDE\u63A5" }),
553
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-pair-code", children: snapshot.pairing.code }),
554
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "lark-time", children: pairExpired ? "\u914D\u5BF9\u8BCD\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u6362\u4E00\u4E2A" : `${remaining(snapshot.pairing.expiresAt, now)} \u540E\u5931\u6548` })
835
+ if (phase === "pairing") return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
836
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Steps, { active: 1 }),
837
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h3", { children: "\u53BB\u98DE\u4E66\u8DDF\u6211\u6253\u4E2A\u62DB\u547C" }),
838
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "lark-copy", children: "\u5728\u673A\u5668\u4EBA\u7684\u79C1\u804A\u4E2D\u53D1\u9001\u4E0B\u9762\u8FD9\u53E5\u8BDD\uFF0C\u786E\u8BA4\u6765\u7684\u662F\u4F60\u672C\u4EBA\u3002" }),
839
+ snapshot.pairing ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: `lark-pairing ${pairExpired ? "expired" : ""}`, children: [
840
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { children: [
841
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "lark-caption", children: "\u4EC5\u7528\u4E8E\u8FD9\u6B21\u8FDE\u63A5" }),
842
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "lark-pair-code", children: snapshot.pairing.code }),
843
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "lark-time", children: pairExpired ? "\u914D\u5BF9\u8BCD\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u6362\u4E00\u4E2A" : `${remaining(snapshot.pairing.expiresAt, now)} \u540E\u5931\u6548` })
555
844
  ] }),
556
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-secondary", disabled: disabled || pairExpired, onClick: () => void copyPairing(), children: "\u590D\u5236\u914D\u5BF9\u8BCD" })
557
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-notice", children: "\u914D\u5BF9\u8BCD\u6B63\u5728\u51C6\u5907\uFF0C\u8BF7\u7A0D\u540E\u5237\u65B0\u3002" }),
558
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "lark-copy-status", role: "status", children: copyMessage }),
559
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("ol", { className: "lark-instructions", children: [
560
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: "\u6253\u5F00\u673A\u5668\u4EBA\u7684\u79C1\u804A" }),
561
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { children: "\u53D1\u9001\u8FD9\u53E5\u914D\u5BF9\u8BCD\uFF0C\u7136\u540E\u56DE\u5230\u8FD9\u91CC" })
845
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-secondary", disabled: disabled || pairExpired, onClick: () => void copyPairing(), children: "\u590D\u5236\u914D\u5BF9\u8BCD" })
846
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "lark-notice", children: "\u914D\u5BF9\u8BCD\u6B63\u5728\u51C6\u5907\uFF0C\u8BF7\u7A0D\u540E\u5237\u65B0\u3002" }),
847
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "lark-copy-status", role: "status", children: copyMessage }),
848
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("ol", { className: "lark-instructions", children: [
849
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", { children: "\u6253\u5F00\u673A\u5668\u4EBA\u7684\u79C1\u804A" }),
850
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("li", { children: "\u53D1\u9001\u8FD9\u53E5\u914D\u5BF9\u8BCD\uFF0C\u7136\u540E\u56DE\u5230\u8FD9\u91CC" })
562
851
  ] }),
563
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-actions", children: [
564
- snapshot.bot && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(External, { url: snapshot.bot.url, children: "\u6253\u5F00\u98DE\u4E66\u79C1\u804A" }),
565
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-quiet", disabled: unavailable, onClick: () => void mutate("renew-pairing"), children: "\u6362\u4E00\u4E2A\u914D\u5BF9\u8BCD" })
852
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-actions", children: [
853
+ snapshot.bot && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(External, { url: snapshot.bot.url, children: "\u6253\u5F00\u98DE\u4E66\u79C1\u804A" }),
854
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-quiet", disabled: unavailable, onClick: () => void mutate("renew-pairing"), children: "\u6362\u4E00\u4E2A\u914D\u5BF9\u8BCD" })
566
855
  ] }),
567
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "lark-footnote lark-left", children: "\u6B63\u5728\u7B49\u5F85\u771F\u5B9E\u6D88\u606F\u3002\u53D1\u9001\u540E\u4F1A\u81EA\u52A8\u7EE7\u7EED\uFF0C\u65E0\u9700\u91CD\u590D\u70B9\u51FB\u3002" }),
568
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-actions", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-quiet", disabled, onClick: cancel, children: "\u53D6\u6D88\u8FDE\u63A5" }) })
856
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "lark-footnote lark-left", children: "\u6B63\u5728\u7B49\u5F85\u771F\u5B9E\u6D88\u606F\u3002\u53D1\u9001\u540E\u4F1A\u81EA\u52A8\u7EE7\u7EED\uFF0C\u65E0\u9700\u91CD\u590D\u70B9\u51FB\u3002" }),
857
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "lark-actions", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-quiet", disabled, onClick: cancel, children: "\u53D6\u6D88\u8FDE\u63A5" }) })
569
858
  ] });
570
- if (phase === "confirming_owner") return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
571
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Steps, { active: 1 }),
572
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-state-icon", "aria-hidden": "true", children: "\u2713" }),
573
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { children: "\u786E\u8BA4\u662F\u4F60\u53D1\u6765\u7684\u6D88\u606F" }),
574
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "lark-copy", children: "\u6536\u5230\u914D\u5BF9\u6D88\u606F\u4E86\u3002\u786E\u8BA4\u8FD9\u662F\u4F60\u7684\u98DE\u4E66\u8D26\u53F7\u540E\uFF0C\u52A9\u624B\u624D\u4F1A\u5F00\u59CB\u56DE\u590D\u3002" }),
575
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-owner", children: [
576
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "lark-caption", children: "\u53D1\u6765\u914D\u5BF9\u8BCD\u7684\u8D26\u53F7" }),
577
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: snapshot.confirmation?.label || "\u7B49\u5F85\u8D26\u53F7\u4FE1\u606F" })
859
+ if (phase === "confirming_owner") return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
860
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Steps, { active: 1 }),
861
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "lark-state-icon", "aria-hidden": "true", children: "\u2713" }),
862
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h3", { children: "\u786E\u8BA4\u662F\u4F60\u53D1\u6765\u7684\u6D88\u606F" }),
863
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "lark-copy", children: "\u6536\u5230\u914D\u5BF9\u6D88\u606F\u4E86\u3002\u786E\u8BA4\u8FD9\u662F\u4F60\u7684\u98DE\u4E66\u8D26\u53F7\u540E\uFF0C\u52A9\u624B\u624D\u4F1A\u5F00\u59CB\u56DE\u590D\u3002" }),
864
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-owner", children: [
865
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "lark-caption", children: "\u53D1\u6765\u914D\u5BF9\u8BCD\u7684\u8D26\u53F7" }),
866
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("strong", { children: snapshot.confirmation?.label || "\u7B49\u5F85\u8D26\u53F7\u4FE1\u606F" })
578
867
  ] }),
579
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-actions", children: [
580
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-primary", disabled: unavailable || !snapshot.confirmation, onClick: () => {
868
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-actions", children: [
869
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-primary", disabled: unavailable || !snapshot.confirmation, onClick: () => {
581
870
  if (snapshot.confirmation) void mutate("confirm-owner", { id: snapshot.confirmation.id });
582
871
  }, children: "\u8FD9\u662F\u6211\uFF0C\u5B8C\u6210\u8FDE\u63A5" }),
583
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-secondary", disabled: unavailable, onClick: () => void mutate("renew-pairing"), children: "\u4E0D\u662F\u6211\uFF0C\u91CD\u65B0\u914D\u5BF9" })
872
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-secondary", disabled: unavailable, onClick: () => void mutate("renew-pairing"), children: "\u4E0D\u662F\u6211\uFF0C\u91CD\u65B0\u914D\u5BF9" })
584
873
  ] }),
585
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-actions", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-quiet", disabled, onClick: cancel, children: "\u53D6\u6D88\u8FDE\u63A5" }) })
874
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "lark-actions", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-quiet", disabled, onClick: cancel, children: "\u53D6\u6D88\u8FDE\u63A5" }) })
586
875
  ] });
587
- if (phase === "connected" || phase === "paused") return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
588
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Steps, { active: 3 }),
589
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)(BrandLink, { connected: phase === "connected" }),
590
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { className: "lark-intro-title", children: phase === "paused" ? "\u5DF2\u6682\u505C\u98DE\u4E66\u8FDE\u63A5" : "\u53EF\u4EE5\u5728\u98DE\u4E66\u627E\u6211\u4E86" }),
591
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "lark-copy lark-centered", children: phase === "paused" ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
592
- "\u6682\u505C\u671F\u95F4\uFF0C\u6211\u4E0D\u4F1A\u5728\u98DE\u4E66\u56DE\u590D\u3002",
593
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {}),
594
- "\u51C6\u5907\u597D\u4E86\uFF0C\u968F\u65F6\u6062\u590D\u3002"
595
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
596
- "\u6253\u5F00\u673A\u5668\u4EBA\u7684\u79C1\u804A\uFF0C\u76F4\u63A5\u53D1\u6D88\u606F\u3002",
597
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("br", {}),
598
- "\u6211\u4EEC\u53EF\u4EE5\u63A5\u7740\u804A\u3002"
599
- ] }) }),
600
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-actions lark-center", children: phase === "paused" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-primary", disabled: unavailable, onClick: () => void mutate("resume"), children: "\u6062\u590D\u8FDE\u63A5" }) : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
601
- snapshot.bot && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(External, { className: "lark-primary", url: snapshot.bot.url, children: "\u53BB\u98DE\u4E66\u804A\u5929" }),
602
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-secondary", disabled: unavailable, onClick: () => void mutate("pause"), children: "\u6682\u505C\u8FDE\u63A5" })
876
+ if (phase === "connected" || phase === "paused") return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
877
+ embedded ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: `lark-connection-summary ${phase}`, children: [
878
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "lark-connection-dot", "aria-hidden": "true" }),
879
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { children: [
880
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("strong", { children: phase === "paused" ? "\u8FDE\u63A5\u5DF2\u6682\u505C" : "\u8FDE\u63A5\u8FD0\u884C\u6B63\u5E38" }),
881
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: phase === "paused" ? "\u4FEE\u6539\u8BBE\u7F6E\u540E\u6062\u590D\u8FDE\u63A5\uFF0C\u5373\u53EF\u7EE7\u7EED\u5BF9\u8BDD\u3002" : "\u5DF2\u786E\u8BA4\u672C\u4EBA\uFF0C\u79C1\u804A\u6D88\u606F\u4F1A\u4EA4\u7ED9\u8FD9\u4E2A Agent\u3002" })
882
+ ] })
883
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
884
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Steps, { active: 3 }),
885
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(BrandLink, { connected: phase === "connected" }),
886
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h3", { className: "lark-intro-title", children: phase === "paused" ? "\u5DF2\u6682\u505C\u98DE\u4E66\u8FDE\u63A5" : "\u53EF\u4EE5\u5728\u98DE\u4E66\u627E\u6211\u4E86" }),
887
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "lark-copy lark-centered", children: phase === "paused" ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
888
+ "\u6682\u505C\u671F\u95F4\uFF0C\u6211\u4E0D\u4F1A\u5728\u98DE\u4E66\u56DE\u590D\u3002",
889
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("br", {}),
890
+ "\u51C6\u5907\u597D\u4E86\uFF0C\u968F\u65F6\u6062\u590D\u3002"
891
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
892
+ "\u6253\u5F00\u673A\u5668\u4EBA\u7684\u79C1\u804A\uFF0C\u76F4\u63A5\u53D1\u6D88\u606F\u3002",
893
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("br", {}),
894
+ "\u6211\u4EEC\u53EF\u4EE5\u63A5\u7740\u804A\u3002"
895
+ ] }) })
896
+ ] }),
897
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: `lark-actions ${embedded ? "" : "lark-center"}`, children: phase === "paused" ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-primary", disabled: unavailable, onClick: () => void mutate("resume"), children: "\u6062\u590D\u8FDE\u63A5" }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
898
+ snapshot.bot && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(External, { className: "lark-primary", url: snapshot.bot.url, children: "\u53BB\u98DE\u4E66\u804A\u5929" }),
899
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-secondary", disabled: unavailable, onClick: () => void mutate("pause"), children: "\u6682\u505C\u8FDE\u63A5" })
603
900
  ] }) }),
604
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-connected-row", children: [
605
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
606
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: snapshot.bot?.name || "\u6211\u7684\u98DE\u4E66\u52A9\u624B" }),
607
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: phase === "paused" ? "\u8FDE\u63A5\u5DF2\u6682\u505C" : "\u5DF2\u786E\u8BA4\u672C\u4EBA \xB7 \u79C1\u804A\u5DF2\u5C31\u7EEA" })
901
+ embedded && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-text-button lark-recheck", disabled, onClick: () => void mutate("recheck"), children: "\u68C0\u67E5\u8FDE\u63A5" }),
902
+ !embedded && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-connected-row", children: [
903
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { children: [
904
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("strong", { children: snapshot.bot?.name || "\u6211\u7684\u98DE\u4E66\u52A9\u624B" }),
905
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: phase === "paused" ? "\u8FDE\u63A5\u5DF2\u6682\u505C" : "\u5DF2\u786E\u8BA4\u672C\u4EBA \xB7 \u79C1\u804A\u5DF2\u5C31\u7EEA" })
608
906
  ] }),
609
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-text-button", disabled, onClick: () => void mutate("recheck"), children: "\u68C0\u67E5\u8FDE\u63A5" })
907
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-text-button", disabled, onClick: () => void mutate("recheck"), children: "\u68C0\u67E5\u8FDE\u63A5" })
610
908
  ] }),
611
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-connected-row", children: [
612
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
613
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("strong", { children: "\u5B9E\u65F6\u56DE\u590D\u3001\u6587\u6863\u4E0E\u753B\u677F" }),
614
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: snapshot.capabilities.documents ? "\u5DF2\u542F\u7528 \xB7 \u56DE\u590D\u5B9E\u65F6\u663E\u793A\uFF0C\u79C1\u804A\u4F5C\u54C1\u4EC5\u4F9B\u672C\u4EBA\u67E5\u770B" : "\u5B9E\u65F6\u663E\u793A\u56DE\u590D\u548C\u601D\u8003\u8FC7\u7A0B\uFF0C\u5E76\u628A\u590D\u6742\u65B9\u6848\u6574\u7406\u6210\u6587\u6863\u548C\u56FE\u793A" })
909
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(ConnectionDetails, { compact: embedded, open: Boolean(snapshot.documentSetup || snapshot.menu || disconnecting), children: [
910
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-connected-row", children: [
911
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { children: [
912
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("strong", { children: "\u5B9E\u65F6\u56DE\u590D\u3001\u6587\u6863\u4E0E\u753B\u677F" }),
913
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: snapshot.capabilities.documents ? "\u5DF2\u542F\u7528 \xB7 \u56DE\u590D\u5B9E\u65F6\u663E\u793A\uFF0C\u79C1\u804A\u4F5C\u54C1\u4EC5\u4F9B\u672C\u4EBA\u67E5\u770B" : "\u5B9E\u65F6\u663E\u793A\u56DE\u590D\u548C\u601D\u8003\u8FC7\u7A0B\uFF0C\u5E76\u628A\u590D\u6742\u65B9\u6848\u6574\u7406\u6210\u6587\u6863\u548C\u56FE\u793A" })
914
+ ] }),
915
+ !snapshot.capabilities.documents && !snapshot.documentSetup && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-secondary", disabled, onClick: () => void mutate("enable-documents"), children: "\u8865\u5145\u9ED8\u8BA4\u6743\u9650" })
615
916
  ] }),
616
- !snapshot.capabilities.documents && !snapshot.documentSetup && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-secondary", disabled, onClick: () => void mutate("enable-documents"), children: "\u8865\u5145\u9ED8\u8BA4\u6743\u9650" })
617
- ] }),
618
- snapshot.menu && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MenuNotice, { menu: snapshot.menu, phase }),
619
- snapshot.documentSetup && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-notice", role: "status", children: [
620
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: snapshot.documentSetup.message }),
621
- snapshot.documentSetup.phase === "preparing" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "lark-spinner", "aria-label": "\u6B63\u5728\u51C6\u5907\u6388\u6743" }),
622
- snapshot.documentSetup.qr && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
623
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-qr", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", { src: snapshot.documentSetup.qr.image, alt: "\u9ED8\u8BA4\u6743\u9650\u8865\u5145\u6388\u6743\u4E8C\u7EF4\u7801" }) }),
624
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: snapshot.documentSetup.qr.expiresAt <= now ? "\u4E8C\u7EF4\u7801\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u53D6\u6D88\u540E\u91CD\u8BD5\u3002" : "\u626B\u7801\u786E\u8BA4\u540E\u81EA\u52A8\u5B8C\u6210\uFF0C\u804A\u5929\u8FDE\u63A5\u7EE7\u7EED\u4FDD\u6301\u3002" }),
625
- snapshot.documentSetup.qr.expiresAt > now && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(External, { url: snapshot.documentSetup.qr.url, children: "\u6253\u5F00\u98DE\u4E66\u6388\u6743" })
917
+ snapshot.menu && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(MenuNotice, { menu: snapshot.menu, phase }),
918
+ snapshot.documentSetup && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-notice", role: "status", children: [
919
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: snapshot.documentSetup.message }),
920
+ snapshot.documentSetup.phase === "preparing" && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "lark-spinner", "aria-label": "\u6B63\u5728\u51C6\u5907\u6388\u6743" }),
921
+ snapshot.documentSetup.qr && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
922
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "lark-qr", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("img", { src: snapshot.documentSetup.qr.image, alt: "\u9ED8\u8BA4\u6743\u9650\u8865\u5145\u6388\u6743\u4E8C\u7EF4\u7801" }) }),
923
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: snapshot.documentSetup.qr.expiresAt <= now ? "\u4E8C\u7EF4\u7801\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u53D6\u6D88\u540E\u91CD\u8BD5\u3002" : "\u626B\u7801\u786E\u8BA4\u540E\u81EA\u52A8\u5B8C\u6210\uFF0C\u804A\u5929\u8FDE\u63A5\u7EE7\u7EED\u4FDD\u6301\u3002" }),
924
+ snapshot.documentSetup.qr.expiresAt > now && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(External, { url: snapshot.documentSetup.qr.url, children: "\u6253\u5F00\u98DE\u4E66\u6388\u6743" })
925
+ ] }),
926
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-actions", children: [
927
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-quiet", disabled, onClick: () => void mutate("cancel-documents"), children: "\u8FD4\u56DE\u804A\u5929\u8FDE\u63A5" }),
928
+ snapshot.documentSetup.phase === "error" && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-secondary", disabled, onClick: () => void mutate("enable-documents"), children: "\u91CD\u8BD5\u6388\u6743" })
929
+ ] })
626
930
  ] }),
627
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-actions", children: [
628
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-quiet", disabled, onClick: () => void mutate("cancel-documents"), children: "\u8FD4\u56DE\u804A\u5929\u8FDE\u63A5" }),
629
- snapshot.documentSetup.phase === "error" && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-secondary", disabled, onClick: () => void mutate("enable-documents"), children: "\u91CD\u8BD5\u6388\u6743" })
630
- ] })
631
- ] }),
632
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("details", { className: "lark-advanced", children: [
633
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("summary", { children: "\u66F4\u591A\u4F7F\u7528\u65B9\u5F0F" }),
634
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: "\u9700\u8981\u5728\u7FA4\u91CC\u4F7F\u7528\u65F6\uFF0C\u7531\u7BA1\u7406\u5458\u5355\u72EC\u914D\u7F6E\u5141\u8BB8\u63A5\u5165\u7684\u7FA4\u3002\u4E2A\u4EBA\u4FE1\u606F\u9ED8\u8BA4\u53EA\u5728\u672C\u4EBA\u79C1\u804A\u4E2D\u4F7F\u7528\u3002" })
635
- ] }),
636
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-actions lark-spread", children: [
637
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "lark-caption", children: "\u5728\u719F\u6089\u7684\u5730\u65B9\uFF0C\u7EE7\u7EED\u5BF9\u8BDD\u3002" }),
638
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-quiet", disabled, onClick: () => setDisconnecting(true), children: "\u65AD\u5F00\u8FDE\u63A5" })
639
- ] }),
640
- disconnecting && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-disconnect", role: "group", "aria-labelledby": `${labelId}-disconnect`, children: [
641
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { id: `${labelId}-disconnect`, children: "\u65AD\u5F00\u540E\uFF0C\u98DE\u4E66\u4F1A\u6682\u65F6\u65E0\u6CD5\u8054\u7CFB\u5230\u52A9\u624B\u3002" }),
642
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-actions", children: [
643
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-danger", disabled, onClick: () => void mutate("disconnect"), children: "\u786E\u8BA4\u65AD\u5F00" }),
644
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-secondary", disabled, onClick: () => setDisconnecting(false), children: "\u7EE7\u7EED\u4FDD\u6301\u8FDE\u63A5" })
931
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("details", { className: "lark-advanced", children: [
932
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("summary", { children: "\u66F4\u591A\u4F7F\u7528\u65B9\u5F0F" }),
933
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: "\u9700\u8981\u5728\u7FA4\u91CC\u4F7F\u7528\u65F6\uFF0C\u7531\u7BA1\u7406\u5458\u5355\u72EC\u914D\u7F6E\u5141\u8BB8\u63A5\u5165\u7684\u7FA4\u3002\u4E2A\u4EBA\u4FE1\u606F\u9ED8\u8BA4\u53EA\u5728\u672C\u4EBA\u79C1\u804A\u4E2D\u4F7F\u7528\u3002" })
934
+ ] }),
935
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-actions lark-spread", children: [
936
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "lark-caption", children: "\u5728\u719F\u6089\u7684\u5730\u65B9\uFF0C\u7EE7\u7EED\u5BF9\u8BDD\u3002" }),
937
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-quiet", disabled, onClick: () => setDisconnecting(true), children: "\u65AD\u5F00\u8FDE\u63A5" })
938
+ ] }),
939
+ disconnecting && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-disconnect", role: "group", "aria-labelledby": `${labelId}-disconnect`, children: [
940
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { id: `${labelId}-disconnect`, children: "\u65AD\u5F00\u540E\uFF0C\u98DE\u4E66\u4F1A\u6682\u65F6\u65E0\u6CD5\u8054\u7CFB\u5230\u52A9\u624B\u3002" }),
941
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-actions", children: [
942
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-danger", disabled, onClick: () => void mutate("disconnect"), children: "\u786E\u8BA4\u65AD\u5F00" }),
943
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-secondary", disabled, onClick: () => setDisconnecting(false), children: "\u7EE7\u7EED\u4FDD\u6301\u8FDE\u63A5" })
944
+ ] })
645
945
  ] })
646
946
  ] })
647
947
  ] });
648
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
649
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "lark-state-icon warning", "aria-hidden": "true", children: "!" }),
650
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h3", { children: "\u8FDE\u63A5\u8FD8\u6CA1\u6709\u5B8C\u6210" }),
651
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "lark-copy", children: snapshot.message || "\u8BF7\u68C0\u67E5\u8BBE\u7F6E\u540E\u91CD\u8BD5\u3002" }),
652
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-actions", children: [
653
- snapshot.action && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(External, { url: snapshot.action.url, children: snapshot.action.label }),
654
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-primary", disabled: unavailable, onClick: () => void mutate("recheck"), children: "\u91CD\u8BD5\u8FDE\u63A5" }),
655
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-quiet", disabled, onClick: cancel, children: "\u8FD4\u56DE\u8D77\u70B9" })
948
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
949
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "lark-state-icon warning", "aria-hidden": "true", children: "!" }),
950
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h3", { children: "\u8FDE\u63A5\u8FD8\u6CA1\u6709\u5B8C\u6210" }),
951
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "lark-copy", children: snapshot.message || "\u8BF7\u68C0\u67E5\u8BBE\u7F6E\u540E\u91CD\u8BD5\u3002" }),
952
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-actions", children: [
953
+ snapshot.action && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(External, { url: snapshot.action.url, children: snapshot.action.label }),
954
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-primary", disabled: unavailable, onClick: () => void mutate("recheck"), children: "\u91CD\u8BD5\u8FDE\u63A5" }),
955
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-quiet", disabled, onClick: cancel, children: "\u8FD4\u56DE\u8D77\u70B9" })
656
956
  ] })
657
957
  ] });
658
958
  }
659
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "dsh-lark-settings", children: [
660
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("header", { className: "lark-heading", children: [
661
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { children: "\u98DE\u4E66" }),
662
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: "\u5728\u98DE\u4E66\u91CC\uFF0C\u76F4\u63A5\u548C\u4F60\u7684 dsh \u52A9\u624B\u5BF9\u8BDD\u3002" })
959
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: `dsh-lark-settings ${embedded ? "lark-detail-card" : ""}`, children: [
960
+ !embedded && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("header", { className: "lark-heading", children: [
961
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h2", { children: "\u98DE\u4E66 agent" }),
962
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: "\u5728\u98DE\u4E66\u91CC\uFF0C\u76F4\u63A5\u548C\u4F60\u7684 dsh \u52A9\u624B\u5BF9\u8BDD\u3002" })
663
963
  ] }),
664
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("section", { className: "lark-card", "aria-labelledby": titleId, children: [
665
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-card-header", children: [
666
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("img", { className: "lark-plugin-icon", src: plugin_icon_default, alt: "" }),
667
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { children: [
668
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("h2", { id: titleId, children: "\u98DE\u4E66\u52A9\u624B" }),
669
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { children: phase === "connected" ? "\u5728\u98DE\u4E66\uFF0C\u7EE7\u7EED\u4E0E\u4F60\u7684\u52A9\u624B\u4EA4\u6D41" : "\u8FDE\u63A5\u540E\uFF0C\u5C31\u80FD\u5728\u98DE\u4E66\u627E\u5230\u6211" })
964
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("section", { className: "lark-card", "aria-labelledby": titleId, children: [
965
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-card-header", children: [
966
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("img", { className: "lark-plugin-icon", src: plugin_icon_default, alt: "" }),
967
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { children: [
968
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("h2", { id: titleId, children: embedded ? snapshot?.agent?.label || snapshot?.bot?.name || "\u65B0\u7684\u98DE\u4E66\u52A9\u624B" : "\u98DE\u4E66\u52A9\u624B" }),
969
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { children: embedded ? "\u98DE\u4E66\u673A\u5668\u4EBA \xB7 \u4EC5\u672C\u4EBA\u79C1\u804A" : phase === "connected" ? "\u5728\u98DE\u4E66\uFF0C\u7EE7\u7EED\u4E0E\u4F60\u7684\u52A9\u624B\u4EA4\u6D41" : "\u8FDE\u63A5\u540E\uFF0C\u5C31\u80FD\u5728\u98DE\u4E66\u627E\u5230\u6211" })
670
970
  ] }),
671
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: `lark-status ${phase === "connected" ? "online" : ""}`, role: "status", children: [
672
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("i", { "aria-hidden": "true" }),
971
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { className: `lark-status ${phase === "connected" ? "online" : ""}`, role: "status", children: [
972
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("i", { "aria-hidden": "true" }),
673
973
  snapshot ? phaseLabels[phase] : "\u8BFB\u53D6\u4E2D"
674
974
  ] })
675
975
  ] }),
676
- /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-body", "aria-busy": disabled, children: [
677
- error && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-error", role: "alert", children: [
678
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: error }),
679
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "lark-text-button", disabled, onClick: refresh, children: "\u91CD\u8BD5" })
976
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-body", "aria-busy": disabled, children: [
977
+ error && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-error", role: "alert", children: [
978
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children: error }),
979
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { className: "lark-text-button", disabled, onClick: refresh, children: "\u91CD\u8BD5" })
680
980
  ] }),
681
- snapshot?.update && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UpdateNotice, { update: snapshot.update, host, phase }),
981
+ snapshot?.update && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(UpdateNotice, { update: snapshot.update, host, phase }),
682
982
  body(),
683
- pending && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "lark-pending", role: "status", children: [
684
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "lark-spinner", "aria-hidden": "true" }),
983
+ embedded && snapshot?.agent && ["idle", "connected", "paused", "error"].includes(phase) && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
984
+ AgentSettings,
985
+ {
986
+ snapshot,
987
+ catalog,
988
+ pending: disabled,
989
+ now,
990
+ authorize: (kind) => void mutate("enable-input", { kind }),
991
+ cancelAuthorization: () => void mutate("cancel-input"),
992
+ recheck: () => void mutate("recheck"),
993
+ save: (settings) => mutate("update-agent", settings)
994
+ }
995
+ ),
996
+ pending && /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "lark-pending", role: "status", children: [
997
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "lark-spinner", "aria-hidden": "true" }),
685
998
  "\u6B63\u5728\u5904\u7406\uFF0C\u8BF7\u7A0D\u7B49\u2026"
686
999
  ] })
687
1000
  ] })
688
1001
  ] }),
689
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "lark-bottom-note", children: "\u5148\u786E\u8BA4\u662F\u4F60\u672C\u4EBA\uFF0C\u518D\u5F00\u59CB\u5BF9\u8BDD\u3002" })
1002
+ !embedded && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("p", { className: "lark-bottom-note", children: "\u5148\u786E\u8BA4\u662F\u4F60\u672C\u4EBA\uFF0C\u518D\u5F00\u59CB\u5BF9\u8BDD\u3002" })
690
1003
  ] });
691
1004
  }
692
1005
 
693
- // src/client/styles.ts
694
- var css = `
695
- .dsh-lark-settings{--lark-ink:#263247;--lark-muted:#738096;--lark-line:#e4eaf2;--lark-blue:#4268df;--lark-surface:#fff;--lark-soft:#f5f8fd;font:14px/1.65 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--lark-ink);max-width:720px;margin:0 auto;padding:8px 0 20px;box-sizing:border-box}
696
- .dsh-lark-settings *{box-sizing:border-box}.dsh-lark-settings button,.dsh-lark-settings input{font:inherit}.dsh-lark-settings button,.dsh-lark-settings summary{cursor:pointer}.dsh-lark-settings button:disabled{opacity:.5;cursor:not-allowed}.dsh-lark-settings button:focus-visible,.dsh-lark-settings a:focus-visible,.dsh-lark-settings input:focus-visible,.dsh-lark-settings summary:focus-visible{outline:3px solid #a1b8ff;outline-offset:3px}.dsh-lark-settings a{overflow-wrap:anywhere}.lark-heading{margin:0 0 22px}.lark-heading h2{font-size:23px;font-weight:650;margin:0 0 5px;letter-spacing:-.4px}.lark-heading p,.lark-card-header p{color:var(--lark-muted);font-size:13px;margin:0}.lark-card{border:1px solid var(--lark-line);border-radius:15px;background:var(--lark-surface);overflow:hidden;box-shadow:0 2px 5px #27385504}.lark-card-header{display:flex;align-items:center;gap:12px;padding:19px 23px;border-bottom:1px solid var(--lark-line)}.lark-plugin-icon{width:43px;height:43px;object-fit:contain;flex-shrink:0}.lark-card-header h2{font-size:15px;font-weight:650;line-height:1.6;margin:0}.lark-card-header p{font-size:12px}.lark-status{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:11px;color:var(--lark-muted);white-space:nowrap}.lark-status i{width:6px;height:6px;border-radius:50%;background:#9da9bc}.lark-status.online{color:#248470}.lark-status.online i{background:#248470}.lark-body{padding:28px;position:relative}.lark-body h3{font-size:20px;font-weight:650;letter-spacing:-.25px;margin:0 0 9px;line-height:1.5}.lark-copy{color:var(--lark-muted);font-size:13px;margin:0 0 20px}.lark-centered{text-align:center;line-height:1.9}.lark-body .lark-intro-title{text-align:center;font-size:21px}.lark-brands{display:flex;justify-content:center;align-items:center;gap:16px;margin:5px 0 25px}.lark-brand{width:53px;height:53px;display:grid;place-items:center;border-radius:14px;background:var(--lark-soft);border:1px solid var(--lark-line)}.lark-brand img{width:37px;height:37px;object-fit:contain}.lark-brand-line{width:78px;height:1px;background:#dbe3ee;position:relative}.lark-brand-line:after{content:"";position:absolute;left:calc(50% - 3px);top:-3px;width:7px;height:7px;border-radius:50%;background:#a9bbdc;border:2px solid var(--lark-surface)}.lark-brands-connected .lark-brand-line{background:#99d1c1}.lark-brands-connected .lark-brand-line:after{background:#248470}.lark-primary,.lark-secondary,.lark-quiet,.lark-danger{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:8px 16px;border-radius:8px;text-decoration:none;font-size:13px;font-weight:550;border:1px solid transparent;line-height:1.5;transition:background .14s}.lark-primary{background:var(--lark-blue);color:#fff}.lark-primary:hover{background:#3559ca}.lark-secondary{color:#485b79;background:var(--lark-surface);border-color:#dce3ed}.lark-secondary:hover{background:var(--lark-soft)}.lark-quiet{background:transparent;color:var(--lark-muted);font-weight:450}.lark-quiet:hover{background:var(--lark-soft)}.lark-danger{color:#ad4949;border-color:#e5bcbc;background:var(--lark-surface)}.lark-text-button{display:inline-flex;align-items:center;gap:7px;background:transparent;border:0;padding:5px 0;color:#5875a5;font-size:12px}.lark-entry{display:flex;flex-direction:column;align-items:center;gap:10px}.lark-entry .lark-primary{min-width:200px}.lark-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:23px}.lark-spread{justify-content:space-between}.lark-center{justify-content:center}.lark-footnote{color:var(--lark-muted);font-size:11px;text-align:center;margin:18px 0 0}.lark-left{text-align:left}.lark-bottom-note{text-align:center;color:var(--lark-muted);font-size:11px;margin:15px 0 0}.lark-steps{display:flex;list-style:none;gap:12px;margin:0 0 25px;padding:0;color:#8b98ad;font-size:11px}.lark-steps li{display:flex;gap:6px;align-items:center;white-space:nowrap}.lark-steps li+li:before{content:"";width:23px;height:1px;background:var(--lark-line);margin-right:5px}.lark-steps li span{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;background:var(--lark-soft);font-size:10px}.lark-steps .active{color:var(--lark-blue);font-weight:600}.lark-steps .active span{background:#edf2ff}.lark-steps .done{color:#248470}.lark-steps .done span{background:#edf8f4}.lark-qr-layout{display:flex;align-items:center;gap:25px;margin:23px 0}.lark-qr{position:relative;width:166px;height:166px;padding:10px;background:white;border:1px solid var(--lark-line);border-radius:12px;flex-shrink:0}.lark-qr img{width:100%;height:100%;object-fit:contain}.lark-qr.expired img{opacity:.12}.lark-qr>span{position:absolute;inset:0;display:grid;place-items:center;color:#64758e;font-weight:600}.lark-qr-layout strong{font-weight:600;font-size:13px}.lark-qr-layout .lark-copy{margin:7px 0 10px}.lark-time{color:var(--lark-muted);font-size:11px;font-variant-numeric:tabular-nums}.lark-link-details{border-top:1px solid var(--lark-line);padding:13px 0 0;font-size:12px;color:var(--lark-muted)}.lark-link-details summary{margin-bottom:12px}.lark-raw-url{font-size:10px;line-height:1.65;overflow-wrap:anywhere;margin-top:10px;color:var(--lark-muted);user-select:all}.lark-notice{padding:13px 15px;background:#eef3fe;border-radius:9px;color:#526c95;font-size:12px;line-height:1.8}.lark-notice.warning{background:#fff7e9;color:#8b671e}.lark-state-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#edf8f4;color:#248470;font-size:20px;margin:2px 0 18px}.lark-state-icon.warning{background:#fff7e9;color:#9b7530}.lark-checks{padding:0;list-style:none;margin:20px 0;font-size:13px;color:var(--lark-muted)}.lark-checks li{padding:10px 0;border-bottom:1px solid var(--lark-line)}.lark-checks li:before{content:"\xB7";margin-right:12px}.lark-pairing{background:var(--lark-soft);border:1px solid var(--lark-line);border-radius:11px;padding:17px 18px;display:flex;align-items:center;justify-content:space-between;gap:13px}.lark-pair-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:21px;letter-spacing:.02em;color:#3d5a91;margin:4px 0 2px;overflow-wrap:anywhere;user-select:all}.lark-pairing.expired .lark-pair-code{opacity:.5}.lark-caption{font-size:11px;color:var(--lark-muted)}.lark-copy-status{min-height:18px;font-size:11px;color:#248470;margin:5px 0}.lark-instructions{padding-left:20px;color:#536784;font-size:13px}.lark-instructions li{padding:3px 0}.lark-owner{padding:17px 18px;background:var(--lark-soft);border:1px solid var(--lark-line);border-radius:10px;display:grid;gap:6px}.lark-owner strong{font-size:15px;font-weight:600;overflow-wrap:anywhere}.lark-connected-row{border-top:1px solid var(--lark-line);border-bottom:1px solid var(--lark-line);display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 0;margin:26px 0 0}.lark-connected-row strong{font-size:12px;font-weight:600}.lark-connected-row p{font-size:11px;color:var(--lark-muted);margin:3px 0 0}.lark-advanced{font-size:12px;color:var(--lark-muted);padding-top:14px}.lark-advanced p{margin:9px 0 0;line-height:1.9}.lark-disconnect{border:1px solid #eacbcb;padding:14px;border-radius:10px;margin-top:16px;font-size:12px}.lark-disconnect p{margin:0}.lark-disconnect .lark-actions{margin-top:12px}.lark-profile-list{border:0;margin:20px 0 0;padding:0;display:grid;gap:10px;min-width:0}.lark-profile{display:flex;align-items:center;gap:12px;border:1px solid var(--lark-line);border-radius:10px;padding:15px;background:var(--lark-soft);cursor:pointer;overflow-wrap:anywhere}.lark-profile input{accent-color:var(--lark-blue)}.lark-error{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff1f1;border:1px solid #f0d5d5;color:#9b4e4e;border-radius:9px;padding:11px 13px;font-size:12px;margin-bottom:21px}.lark-error .lark-text-button{flex-shrink:0;color:#9b4e4e}.lark-loading{padding:27px 0;text-align:center}.lark-loading .lark-spinner{margin:0 auto 17px;display:block}.lark-loading p{font-size:13px;color:var(--lark-muted);margin:0}.lark-loading-row{display:flex;align-items:center;gap:12px;color:var(--lark-muted);font-size:13px;margin:4px 0 15px}.lark-loading-row h3{color:var(--lark-ink);margin:0}.lark-spinner{display:inline-block;width:18px;height:18px;border:2px solid #dfe6f4;border-top-color:var(--lark-blue);border-radius:50%;animation:lark-spin .85s linear infinite;flex-shrink:0}.lark-pending{display:flex;align-items:center;gap:9px;margin-top:19px;font-size:11px;color:var(--lark-muted)}.lark-pending .lark-spinner{width:13px;height:13px}.lark-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.lark-update{border:1px solid #cfdcf8;background:#f4f7ff;border-radius:11px;padding:14px 16px;margin:0 0 22px}.lark-connected-row+.lark-update{margin:16px 0 0}.lark-update-row{display:flex;align-items:center;justify-content:space-between;gap:14px}.lark-update strong{font-size:13px;font-weight:600}.lark-update p{font-size:12px;color:var(--lark-muted);margin:3px 0 0}.lark-update .lark-instructions{margin:12px 0 0}.lark-update .lark-actions{margin-top:12px}.lark-update .lark-copy-status{margin:6px 0 0}.lark-command{display:block;margin-top:6px;padding:8px 10px;border-radius:7px;background:var(--lark-surface);border:1px solid var(--lark-line);font:12px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere;user-select:all}
697
- @keyframes lark-spin{to{transform:rotate(360deg)}}
698
- @media(prefers-color-scheme:dark){.dsh-lark-settings{--lark-ink:#e0e7f1;--lark-muted:#96a6bd;--lark-line:#364357;--lark-surface:#202a39;--lark-soft:#283448;--lark-blue:#5077ec}.lark-secondary{color:#c6d5ed;border-color:#46536b}.lark-pair-code{color:#b9ceff}.lark-instructions{color:#b0c2de}.lark-notice{background:#273d5a;color:#c2d3ec}.lark-notice.warning,.lark-state-icon.warning{background:#44391f;color:#e4c886}.lark-error{background:#492e32;border-color:#684047;color:#edbec2}.lark-error .lark-text-button{color:#edbec2}.lark-steps .active span{background:#293e6b}.lark-steps .done span,.lark-state-icon{background:#23483f}.lark-status.online,.lark-steps .done{color:#78c5b0}.lark-update{background:#24324a;border-color:#3a4d70}}
699
- @media(max-width:520px){.lark-heading{margin-bottom:17px}.lark-card-header{padding:16px;gap:10px}.lark-card-header p{display:none}.lark-plugin-icon{width:37px;height:37px}.lark-body{padding:21px 18px}.lark-steps{gap:7px}.lark-steps li+li:before{width:12px;margin-right:2px}.lark-qr-layout{gap:17px;align-items:flex-start}.lark-qr{width:138px;height:138px}.lark-qr-layout strong{font-size:12px}.lark-qr-layout .lark-copy{font-size:12px}.lark-pairing{align-items:flex-start;flex-direction:column}.lark-pair-code{font-size:19px}.lark-body h3{font-size:19px}.lark-connected-row{gap:10px}.lark-actions{gap:8px}.lark-primary,.lark-secondary,.lark-quiet,.lark-danger{padding:8px 12px}.lark-copy{font-size:12px}.lark-update-row{flex-direction:column;align-items:flex-start}}
700
- @media(max-width:360px){.lark-qr-layout{flex-direction:column;align-items:center;text-align:center}.lark-steps{font-size:10px}.lark-steps li+li:before{width:8px}.lark-status{font-size:10px}}
701
- @media(prefers-reduced-motion:reduce){.dsh-lark-settings *{animation:none!important;transition:none!important}}
702
- `;
703
- function installStyles() {
704
- const style = document.createElement("style");
705
- style.dataset.plugin = "dsh-larkbot";
706
- style.textContent = css;
707
- document.head.appendChild(style);
708
- return () => style.remove();
1006
+ // src/client/ManagerPanel.tsx
1007
+ var import_jsx_runtime3 = require("react/jsx-runtime");
1008
+ var labels = {
1009
+ idle: "\u672A\u8FDE\u63A5",
1010
+ creating: "\u521B\u5EFA\u4E2D",
1011
+ waiting_scan: "\u7B49\u5F85\u626B\u7801",
1012
+ configuring: "\u68C0\u67E5\u4E2D",
1013
+ action_required: "\u9700\u8981\u5904\u7406",
1014
+ pairing: "\u7B49\u5F85\u914D\u5BF9",
1015
+ confirming_owner: "\u786E\u8BA4\u672C\u4EBA",
1016
+ starting: "\u8FDE\u63A5\u4E2D",
1017
+ connected: "\u8FD0\u884C\u6B63\u5E38",
1018
+ paused: "\u5DF2\u6682\u505C",
1019
+ error: "\u9700\u8981\u68C0\u67E5"
1020
+ };
1021
+ function ManagerPanel({ api, host }) {
1022
+ const [list, setList] = (0, import_react4.useState)();
1023
+ const [catalog, setCatalog] = (0, import_react4.useState)();
1024
+ const [selected, setSelected] = (0, import_react4.useState)("default");
1025
+ const [query, setQuery] = (0, import_react4.useState)("");
1026
+ const [error, setError] = (0, import_react4.useState)("");
1027
+ const [adding, setAdding] = (0, import_react4.useState)(false);
1028
+ const [removing, setRemoving] = (0, import_react4.useState)(false);
1029
+ const [canRemove, setCanRemove] = (0, import_react4.useState)(false);
1030
+ const busy = (0, import_react4.useRef)(false);
1031
+ const generation = (0, import_react4.useRef)(0);
1032
+ const requests = (0, import_react4.useRef)(/* @__PURE__ */ new Set());
1033
+ const robotList = (0, import_react4.useRef)(null);
1034
+ const selectedApi = (0, import_react4.useMemo)(() => api.forConnection(selected), [api, selected]);
1035
+ const report = (error2) => error2 instanceof ConnectionUiError ? error2.message : "\u673A\u5668\u4EBA\u7BA1\u7406\u6682\u65F6\u4E0D\u53EF\u7528\uFF0C\u8BF7\u5237\u65B0\u3002";
1036
+ const load = (0, import_react4.useCallback)(async (includeCatalog = false) => {
1037
+ if (busy.current) return;
1038
+ const expected = generation.current;
1039
+ const request = new AbortController();
1040
+ requests.current.add(request);
1041
+ try {
1042
+ const next = await api.connections(request.signal);
1043
+ if (!request.signal.aborted && expected === generation.current) {
1044
+ setList(next);
1045
+ setError("");
1046
+ }
1047
+ if (includeCatalog) {
1048
+ const nextCatalog = await api.agentCatalog(request.signal);
1049
+ if (!request.signal.aborted && expected === generation.current) setCatalog(nextCatalog);
1050
+ }
1051
+ } catch (error2) {
1052
+ if (!request.signal.aborted && expected === generation.current) setError(report(error2));
1053
+ } finally {
1054
+ requests.current.delete(request);
1055
+ }
1056
+ }, [api]);
1057
+ (0, import_react4.useEffect)(() => {
1058
+ void load(true);
1059
+ const timer = setInterval(() => void load(), 5e3);
1060
+ return () => {
1061
+ generation.current++;
1062
+ clearInterval(timer);
1063
+ for (const request of requests.current) request.abort();
1064
+ requests.current.clear();
1065
+ };
1066
+ }, [load]);
1067
+ const onSnapshot = (0, import_react4.useCallback)((snapshot) => {
1068
+ setCanRemove(Boolean(snapshot.agent?.editable && !snapshot.documentSetup && !snapshot.inputSetup));
1069
+ setList((before) => before && { ...before, connections: before.connections.map((row) => row.id === selected ? { ...row, phase: snapshot.phase, busy: snapshot.busy, label: snapshot.agent?.label || snapshot.bot?.name || row.label, agentPreset: snapshot.agent?.agentPreset ?? "" } : row) });
1070
+ }, [selected]);
1071
+ (0, import_react4.useEffect)(() => {
1072
+ setRemoving(false);
1073
+ setCanRemove(false);
1074
+ }, [selected]);
1075
+ (0, import_react4.useEffect)(() => {
1076
+ const reveal = () => {
1077
+ const list2 = robotList.current, active = list2?.querySelector('[aria-pressed="true"]');
1078
+ if (list2 && active && getComputedStyle(list2).flexDirection === "row") list2.scrollLeft += active.getBoundingClientRect().left - list2.getBoundingClientRect().left;
1079
+ };
1080
+ reveal();
1081
+ window.addEventListener("resize", reveal);
1082
+ const observer = typeof ResizeObserver === "undefined" ? void 0 : new ResizeObserver(reveal);
1083
+ if (robotList.current) observer?.observe(robotList.current);
1084
+ return () => {
1085
+ window.removeEventListener("resize", reveal);
1086
+ observer?.disconnect();
1087
+ };
1088
+ }, [selected, list?.connections.length, query]);
1089
+ const changeList = async (remove = false) => {
1090
+ if (busy.current) return;
1091
+ busy.current = true;
1092
+ setAdding(true);
1093
+ setError("");
1094
+ generation.current++;
1095
+ for (const request2 of requests.current) request2.abort();
1096
+ const request = new AbortController();
1097
+ requests.current.add(request);
1098
+ try {
1099
+ const next = remove ? await api.removeConnection(selected, request.signal) : await api.addConnection(request.signal);
1100
+ if (!request.signal.aborted) {
1101
+ setList(next);
1102
+ setSelected(next.selectedId);
1103
+ setQuery("");
1104
+ setRemoving(false);
1105
+ }
1106
+ } catch (error2) {
1107
+ if (!request.signal.aborted) setError(`${report(error2)} ${remove ? "\u79FB\u9664" : "\u6DFB\u52A0"}\u7ED3\u679C\u4E0D\u786E\u5B9A\u65F6\uFF0C\u8BF7\u5148\u5237\u65B0\u5217\u8868\u67E5\u770B\u3002`);
1108
+ } finally {
1109
+ requests.current.delete(request);
1110
+ if (!request.signal.aborted) {
1111
+ busy.current = false;
1112
+ setAdding(false);
1113
+ }
1114
+ }
1115
+ };
1116
+ const presetName = (id) => catalog?.presets.find((preset) => preset.id === id)?.name || id || "\u5BBF\u4E3B\u9ED8\u8BA4";
1117
+ const rows = list?.connections.filter((row) => `${row.label} ${row.agentPreset} ${presetName(row.agentPreset)}`.toLowerCase().includes(query.toLowerCase())) ?? [];
1118
+ const online = list?.connections.filter((row) => row.phase === "connected").length ?? 0;
1119
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "dsh-lark-settings lark-manager", children: [
1120
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("header", { className: "lark-manager-header", children: [
1121
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { children: [
1122
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "lark-eyebrow", children: "FEISHU \xB7 AGENTS" }),
1123
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h2", { children: "\u98DE\u4E66 agent" }),
1124
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { children: "\u4E0D\u540C\u7684\u673A\u5668\u4EBA\uFF0C\u5404\u81EA\u7684 Agent \u4E0E\u5DE5\u4F5C\u533A\u3002" })
1125
+ ] }),
1126
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "lark-manager-tools", children: [
1127
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { className: "lark-secondary", disabled: adding, onClick: () => void load(true), "aria-label": "\u5237\u65B0\u673A\u5668\u4EBA\u5217\u8868", children: "\u5237\u65B0" }),
1128
+ selected !== "default" && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { className: "lark-quiet", disabled: adding || !canRemove, onClick: () => setRemoving(true), children: "\u79FB\u9664\u673A\u5668\u4EBA" }),
1129
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { className: "lark-primary", disabled: adding || !list || list.connections.length >= list.limit, onClick: () => void changeList(), children: adding ? "\u6B63\u5728\u5904\u7406\u2026" : "\uFF0B \u6DFB\u52A0\u673A\u5668\u4EBA" })
1130
+ ] })
1131
+ ] }),
1132
+ error && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: "lark-error", role: "alert", children: error }),
1133
+ removing && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "lark-disconnect", role: "group", "aria-label": "\u786E\u8BA4\u79FB\u9664\u673A\u5668\u4EBA", children: [
1134
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { children: "\u4ECE\u5217\u8868\u79FB\u9664\u8FD9\u4E2A\u673A\u5668\u4EBA\uFF1F\u672C\u5730\u4F1A\u8BDD\u3001\u8BB0\u5FC6\u4E0E CLI \u51ED\u636E\u4ECD\u4FDD\u7559\u3002" }),
1135
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "lark-actions", children: [
1136
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { className: "lark-danger", disabled: adding, onClick: () => void changeList(true), children: "\u786E\u8BA4\u79FB\u9664" }),
1137
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { className: "lark-secondary", disabled: adding, onClick: () => setRemoving(false), children: "\u53D6\u6D88" })
1138
+ ] })
1139
+ ] }),
1140
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "lark-manager-layout", children: [
1141
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("aside", { className: "lark-robot-sidebar", children: [
1142
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "lark-robot-count", children: [
1143
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("strong", { children: "\u6211\u7684\u673A\u5668\u4EBA" }),
1144
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { children: [
1145
+ online,
1146
+ " / ",
1147
+ list?.connections.length ?? "\u2014",
1148
+ " \u5728\u7EBF"
1149
+ ] })
1150
+ ] }),
1151
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("input", { type: "search", className: "lark-robot-search", "aria-label": "\u641C\u7D22\u673A\u5668\u4EBA", placeholder: "\u641C\u7D22\u673A\u5668\u4EBA\u6216 Agent", value: query, onChange: (event) => setQuery(event.target.value) }),
1152
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("nav", { ref: robotList, className: "lark-robot-list", "aria-label": "\u673A\u5668\u4EBA\u5217\u8868", children: rows.map((row) => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("button", { "aria-pressed": row.id === selected, className: `lark-robot-item ${row.id === selected ? "selected" : ""}`, onClick: () => setSelected(row.id), children: [
1153
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "lark-robot-icon", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("img", { src: feishu_logo_default, alt: "" }) }),
1154
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { className: "lark-robot-description", children: [
1155
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("strong", { children: row.label }),
1156
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("small", { children: [
1157
+ "Agent \xB7 ",
1158
+ presetName(row.agentPreset)
1159
+ ] }),
1160
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { className: `lark-robot-phase ${row.phase}`, children: [
1161
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("i", { "aria-hidden": "true" }),
1162
+ labels[row.phase]
1163
+ ] })
1164
+ ] }),
1165
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "lark-robot-chevron", "aria-hidden": "true", children: "\u203A" })
1166
+ ] }, row.id)) }),
1167
+ list && !rows.length && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: "lark-list-empty", children: "\u6CA1\u6709\u5339\u914D\u7684\u673A\u5668\u4EBA\u3002" }),
1168
+ !list && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: "lark-list-empty", role: "status", children: "\u6B63\u5728\u8BFB\u53D6\u673A\u5668\u4EBA\u5217\u8868\u2026" }),
1169
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "lark-robot-note", children: [
1170
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("strong", { children: "\u4E00\u4E2A\u673A\u5668\u4EBA\uFF0C\u4E00\u4E2A\u5206\u5DE5" }),
1171
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { children: "\u8FDE\u63A5\u4E0E\u5BF9\u8BDD\u5404\u81EA\u4FDD\u5B58\u3002\u6682\u505C\u4E00\u4E2A\u673A\u5668\u4EBA\uFF0C\u5176\u4F59\u7EE7\u7EED\u5DE5\u4F5C\u3002" })
1172
+ ] })
1173
+ ] }),
1174
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("main", { className: "lark-robot-detail", "aria-label": "\u673A\u5668\u4EBA\u8BE6\u60C5", children: list && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ConnectionCard, { api: selectedApi, host, embedded: true, catalog, onSnapshot }, selected) })
1175
+ ] })
1176
+ ] });
709
1177
  }
710
1178
 
711
1179
  // src/client/index.tsx
@@ -724,13 +1192,14 @@ function apply(ctx) {
724
1192
  }
725
1193
  };
726
1194
  ctx.effect(installStyles, "dsh-larkbot: connection styles");
727
- ctx.slots.inject("settings.plugins.tab", () => ctx.slots.register({
728
- name: "settings.plugins.tab",
1195
+ const seat = app ? "settings.section" : "settings.plugins.tab";
1196
+ ctx.slots.inject(seat, () => ctx.slots.register({
1197
+ name: seat,
729
1198
  id: "dsh-larkbot",
730
- order: 30,
731
- label: () => "\u98DE\u4E66",
1199
+ order: 40,
1200
+ label: () => "\u98DE\u4E66 agent",
732
1201
  inject: () => ({ api, host: { app, openPlugins } })
733
- }, ConnectionCard));
1202
+ }, ManagerPanel));
734
1203
  }
735
1204
  return module.exports; } });
736
1205
  //# sourceMappingURL=client.cjs.map