agent-tool-chat 1.0.2 → 1.1.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.
@@ -9,6 +9,8 @@ export interface AgentConfig {
9
9
  storage?: StorageAdapter;
10
10
  maxToolRounds?: number;
11
11
  systemPrompt?: string;
12
+ maxContextTokens?: number;
13
+ maxHistoryMessages?: number;
12
14
  }
13
15
  export declare class Agent {
14
16
  readonly messages: CoreMessage[];
@@ -33,14 +33,16 @@ export interface StreamResult {
33
33
  tool_calls: ToolCall[];
34
34
  finish_reason: string;
35
35
  }
36
+ export interface ThinkingConfig {
37
+ type: 'enabled' | 'disabled';
38
+ effort?: 'low' | 'high' | 'max';
39
+ }
36
40
  export interface LLMProviderConfig {
37
41
  baseUrl: string;
38
42
  apiKey: string;
39
43
  model: string;
40
44
  temperature?: number;
41
- thinking?: {
42
- type: 'enabled' | 'disabled';
43
- };
45
+ thinking?: ThinkingConfig;
44
46
  }
45
47
  export type AgentEvent = {
46
48
  type: 'message';
@@ -1 +1 @@
1
- .render-block[data-v-dd314030]{margin:8px 0;padding:8px 0;width:100%}.render-block__component[data-v-dd314030]{border-radius:8px;background:var(--el-fill-color-lighter);box-shadow:0 0 10px #0000001a}.render-block__title[data-v-dd314030]{font-weight:600;font-size:14px;margin-bottom:6px;color:var(--el-text-color-primary)}.render-block__table[data-v-dd314030]{width:100%;max-width:100%}.render-block__cards[data-v-dd314030]{display:flex;flex-direction:column;gap:8px}.card-item[data-v-dd314030]{border:1px solid var(--el-border-color);border-radius:8px;padding:10px 14px;background:var(--el-fill-color-lighter)}.card-field[data-v-dd314030]{display:flex;gap:6px;font-size:13px;line-height:1.8}.card-label[data-v-dd314030]{font-weight:600;color:var(--el-text-color-secondary);min-width:80px}.card-value[data-v-dd314030]{color:var(--el-text-color-primary)}.render-block__list[data-v-dd314030]{display:flex;flex-direction:column;gap:4px}.list-item[data-v-dd314030]{padding:6px 10px;font-size:13px;border-left:3px solid var(--el-color-primary);background:var(--el-fill-color-lighter);border-radius:0 4px 4px 0}.suggested-next[data-v-0e0e9b65]{display:flex;align-items:center;gap:8px;padding:8px 12px;margin:6px 0;background:var(--el-color-primary-light-9);border:1px solid var(--el-color-primary-light-7);border-radius:8px;font-size:13px}.suggested-next__icon[data-v-0e0e9b65]{font-size:15px;flex-shrink:0}.suggested-next__text[data-v-0e0e9b65]{flex:1;color:var(--el-text-color-regular)}.chat-message[data-v-61b9c7d3]{display:flex;gap:10px;padding:12px 0}.chat-message.role-user[data-v-61b9c7d3]{flex-direction:row-reverse}.message-avatar[data-v-61b9c7d3]{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px}.role-user .message-avatar[data-v-61b9c7d3]{background:var(--el-color-primary);color:#fff}.role-assistant .message-avatar[data-v-61b9c7d3]{background:var(--el-color-success);color:#fff}.message-body[data-v-61b9c7d3]{max-width:80%;min-width:0}.role-user .message-body[data-v-61b9c7d3]{background:var(--el-color-primary-light-9);padding:8px 14px;border-radius:12px 4px 12px 12px;box-shadow:0 0 10px #0000001a}.role-assistant .message-body[data-v-61b9c7d3]{background:var(--el-fill-color-lighter);padding:8px 14px;border-radius:4px 12px 12px;display:flex;flex-direction:column;box-shadow:0 0 10px #0000001a}.message-user-text[data-v-61b9c7d3]{font-size:14px;line-height:1.5;color:var(--el-text-color-primary);white-space:pre-wrap;word-break:break-word}.message-content[data-v-61b9c7d3]{font-size:14px;line-height:1.6;color:var(--el-text-color-primary);word-break:break-word;background:transparent;border:none;outline:none;box-shadow:none;height:auto;overflow-wrap:break-word}.message-content[data-v-61b9c7d3] p{margin:0 0 8px}.message-content[data-v-61b9c7d3] p:last-child{margin-bottom:0}.message-content[data-v-61b9c7d3] h1,.message-content[data-v-61b9c7d3] h2,.message-content[data-v-61b9c7d3] h3,.message-content[data-v-61b9c7d3] h4,.message-content[data-v-61b9c7d3] h5,.message-content[data-v-61b9c7d3] h6{margin:12px 0 8px;font-weight:600;line-height:1.4;color:var(--el-text-color-primary)}.message-content[data-v-61b9c7d3] h1{font-size:20px}.message-content[data-v-61b9c7d3] h2{font-size:18px;padding-bottom:4px;border-bottom:1px solid var(--el-border-color-lighter)}.message-content[data-v-61b9c7d3] h3{font-size:16px}.message-content[data-v-61b9c7d3] h4{font-size:15px}.message-content[data-v-61b9c7d3] h5,.message-content[data-v-61b9c7d3] h6{font-size:14px}.message-content[data-v-61b9c7d3] strong{font-weight:600}.message-content[data-v-61b9c7d3] em{font-style:italic}.message-content[data-v-61b9c7d3] ul,.message-content[data-v-61b9c7d3] ol{margin:0 0 8px;padding-left:20px}.message-content[data-v-61b9c7d3] ul:last-child,.message-content[data-v-61b9c7d3] ol:last-child{margin-bottom:0}.message-content[data-v-61b9c7d3] li{margin:2px 0}.message-content[data-v-61b9c7d3] li>ul,.message-content[data-v-61b9c7d3] li>ol{margin:0}.message-content[data-v-61b9c7d3] code{padding:1px 5px;margin:0 2px;font-size:12px;font-family:Consolas,Monaco,Courier New,monospace;background:var(--el-fill-color);color:var(--el-color-primary);border-radius:4px}.message-content[data-v-61b9c7d3] pre{margin:8px 0;padding:10px 12px;background:var(--el-bg-color);border:1px solid var(--el-border-color-lighter);border-radius:6px;overflow-x:auto}.message-content[data-v-61b9c7d3] pre code{display:block;padding:0;margin:0;font-size:12px;line-height:1.6;background:transparent;color:var(--el-text-color-primary);border-radius:0;white-space:pre}.message-content[data-v-61b9c7d3] blockquote{margin:8px 0;padding:4px 12px;border-left:3px solid var(--el-color-primary-light-5);background:var(--el-fill-color-lighter);border-radius:0 6px 6px 0;color:var(--el-text-color-regular)}.message-content[data-v-61b9c7d3] blockquote p{margin:0}.message-content[data-v-61b9c7d3] table{width:100%;margin:8px 0;border-collapse:collapse;font-size:13px}.message-content[data-v-61b9c7d3] th,.message-content[data-v-61b9c7d3] td{padding:6px 10px;border:1px solid var(--el-border-color-lighter);text-align:left}.message-content[data-v-61b9c7d3] th{background:var(--el-fill-color);font-weight:600;color:var(--el-text-color-primary)}.message-content[data-v-61b9c7d3] tbody tr:nth-child(2n){background:var(--el-fill-color-lighter)}.message-content[data-v-61b9c7d3] a{color:var(--el-color-primary);text-decoration:none}.message-content[data-v-61b9c7d3] a:hover{text-decoration:underline}.message-content[data-v-61b9c7d3] img{max-width:100%;border-radius:6px}.message-content[data-v-61b9c7d3] hr{margin:12px 0;border:none;border-top:1px solid var(--el-border-color-lighter)}.message-cursor[data-v-61b9c7d3]{display:inline-block;animation:blink-61b9c7d3 .8s step-end infinite;color:var(--el-color-primary);font-size:16px}@keyframes blink-61b9c7d3{50%{opacity:0}}.message-error[data-v-61b9c7d3]{margin-top:4px;font-size:12px;color:var(--el-color-danger)}.message-reasoning[data-v-61b9c7d3]{margin-bottom:8px}.message-reasoning details[data-v-61b9c7d3]{font-size:13px}.message-reasoning summary[data-v-61b9c7d3]{cursor:pointer;color:var(--el-color-info);font-size:12px}.message-reasoning pre[data-v-61b9c7d3]{margin:6px 0 0;padding:8px;background:var(--el-fill-color);border-radius:6px;font-size:12px;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.message-files[data-v-61b9c7d3]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.message-file[data-v-61b9c7d3]{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--el-border-color);border-radius:8px;background:var(--el-bg-color);font-size:12px}.message-file.is-image[data-v-61b9c7d3]{padding:4px;flex-direction:column;align-items:flex-start}.file-image[data-v-61b9c7d3]{max-width:200px;max-height:200px;border-radius:6px;object-fit:contain;cursor:pointer}.file-info[data-v-61b9c7d3]{display:flex;flex-direction:column;gap:2px}.file-name[data-v-61b9c7d3]{color:var(--el-text-color-primary);font-weight:500;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size[data-v-61b9c7d3]{color:var(--el-text-color-secondary);font-size:11px}.chat-input[data-v-fcb6ee4c]{padding:12px 16px;border-top:1px solid var(--el-border-color-lighter);background:var(--el-bg-color);display:flex;flex-direction:column}.chat-input__files[data-v-fcb6ee4c]{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.chat-input__preview[data-v-fcb6ee4c]{margin-left:auto;height:24px;padding:0 8px}.chat-input__wrap[data-v-fcb6ee4c]{display:flex;align-items:flex-end;gap:8px;background:var(--el-fill-color-light);border:1px solid var(--el-border-color);border-radius:12px;padding:6px 6px 6px 12px;transition:border-color .2s,box-shadow .2s}.chat-input__wrap[data-v-fcb6ee4c]:focus-within{border-color:var(--el-color-primary);box-shadow:0 0 0 2px var(--el-color-primary-light-8)}.chat-input__wrap[data-v-fcb6ee4c] .el-textarea__inner{border:none;background:transparent;box-shadow:none;padding:4px 0;line-height:1.6;font-size:14px}.chat-input__wrap[data-v-fcb6ee4c] .el-textarea__inner:focus{box-shadow:none}.chat-input__actions[data-v-fcb6ee4c]{flex-shrink:0;display:flex;align-items:center;gap:2px;padding-bottom:2px}.form-tip[data-v-9634bbdc]{font-size:12px;color:var(--el-text-color-secondary);line-height:1.6;margin-top:4px}.form-tip-inline[data-v-9634bbdc]{margin-left:8px;font-size:12px;color:var(--el-text-color-secondary)}.temp-row[data-v-9634bbdc]{display:flex;align-items:center;gap:12px;width:100%}.temp-val[data-v-9634bbdc]{width:28px;text-align:right;font-size:13px;color:var(--el-text-color-secondary)}.chat-panel-root[data-v-9c108ff6]{position:absolute;bottom:100px;right:100px;z-index:1999}.ai-fab[data-v-9c108ff6]{position:fixed;right:22px;bottom:25px;z-index:2000;display:flex;align-items:center;gap:8px;height:52px;padding:0 22px 0 18px;border-radius:26px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;background:linear-gradient(135deg,#009688,#2d8cf0);box-shadow:0 6px 24px #2d8cf080;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s;-webkit-user-select:none;user-select:none;overflow:hidden;isolation:isolate;animation:ai-fab-float-9c108ff6 3.6s ease-in-out infinite}@keyframes ai-fab-float-9c108ff6{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.ai-fab[data-v-9c108ff6]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.25) 50%,transparent 70%);background-size:200% 100%;background-position:100% 0;animation:ai-fab-shimmer-9c108ff6 4s ease-in-out infinite;z-index:-1;pointer-events:none}@keyframes ai-fab-shimmer-9c108ff6{0%,to{background-position:100% 0}50%{background-position:0 0}}.ai-fab[data-v-9c108ff6]:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:inherit;border:2px solid rgba(45,140,240,.35);animation:ai-fab-pulse-9c108ff6 2.4s ease-in-out infinite;pointer-events:none;z-index:-2}@keyframes ai-fab-pulse-9c108ff6{0%,to{opacity:.6;transform:scale(1)}50%{opacity:0;transform:scale(1.12)}}.ai-fab__icon[data-v-9c108ff6]{font-size:22px;filter:drop-shadow(0 0 4px rgba(255,255,255,.4));transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.ai-fab__label[data-v-9c108ff6]{line-height:1;text-shadow:0 1px 4px rgba(0,0,0,.15)}.ai-fab[data-v-9c108ff6]:hover{animation:none;transform:translateY(-4px) scale(1.04);box-shadow:0 12px 32px #2d8cf099}.ai-fab[data-v-9c108ff6]:hover:before{animation:none;background-position:0 0}.ai-fab--active[data-v-9c108ff6]{animation:none;box-shadow:0 4px 16px #2d8cf066}.ai-fab--active[data-v-9c108ff6]:after{animation:none;opacity:0}.ai-fab--active[data-v-9c108ff6]:before{animation:none}.ai-fab--active .ai-fab__icon[data-v-9c108ff6]{transform:rotate(45deg)}.chat-panel[data-v-9c108ff6]{position:fixed;bottom:25px;right:22px;z-index:9999;display:flex;flex-direction:column;height:680px;width:560px;min-height:400px;background:var(--el-bg-color);box-shadow:0 0 12px #0000006b;border-radius:8px}.chat-panel__header[data-v-9c108ff6]{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--el-border-color-lighter);flex-shrink:0}.chat-panel__title[data-v-9c108ff6]{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--el-text-color-primary)}.title-icon[data-v-9c108ff6]{color:var(--el-color-primary);font-size:18px}.chat-panel__ops[data-v-9c108ff6]{display:flex;gap:4px}.chat-panel__body[data-v-9c108ff6]{flex:1;overflow-y:auto;padding:0 16px;min-height:0;scrollbar-width:thin;scrollbar-color:var(--el-border-color-darker) transparent}.chat-panel__body[data-v-9c108ff6]::-webkit-scrollbar{width:8px}.chat-panel__body[data-v-9c108ff6]::-webkit-scrollbar-track{background:var(--el-fill-color-lighter);border-radius:4px}.chat-panel__body[data-v-9c108ff6]::-webkit-scrollbar-thumb{background:var(--el-border-color-darker);border-radius:4px;border:2px solid transparent;background-clip:content-box}.chat-panel__body[data-v-9c108ff6]::-webkit-scrollbar-thumb:hover{background:var(--el-text-color-secondary);background-clip:content-box}.chat-empty[data-v-9c108ff6]{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px}.chat-empty__logo[data-v-9c108ff6]{width:64px;height:64px;border-radius:18px;background:linear-gradient(135deg,#009688,#2d8cf0);color:#fff;display:flex;align-items:center;justify-content:center;font-size:32px;box-shadow:0 8px 24px #2d8cf04d}.chat-empty h3[data-v-9c108ff6]{margin:0;font-size:18px;color:var(--el-text-color-primary)}.chat-empty__desc[data-v-9c108ff6]{margin:0;font-size:13px;color:var(--el-text-color-secondary);line-height:1.6}.chat-empty__desc .hl[data-v-9c108ff6]{color:var(--el-color-primary);font-weight:600}.chat-empty__commands[data-v-9c108ff6]{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.chat-empty__commands .el-button[data-v-9c108ff6]{margin-left:0}.chat-panel__footer[data-v-9c108ff6]{flex-shrink:0}.chat-panel__stop[data-v-9c108ff6]{display:flex;justify-content:center;padding:6px 0 0}.chat-panel__error[data-v-9c108ff6]{padding:8px 16px 0}.fade-enter-active[data-v-9c108ff6],.fade-leave-active[data-v-9c108ff6]{transition:opacity .2s}.fade-enter-from[data-v-9c108ff6],.fade-leave-to[data-v-9c108ff6]{opacity:0}.chat-panel--fullscreen[data-v-9c108ff6]{position:fixed;top:5%;right:10%;bottom:5%;left:10%;z-index:9999;height:90vh!important;width:80%!important}
1
+ .render-block[data-v-ea599d5b]{margin:8px 0;padding:8px 0;width:100%}.render-block__component[data-v-ea599d5b]{border-radius:8px;background:var(--el-fill-color-lighter);box-shadow:0 0 10px #0000001a}.render-block__title[data-v-ea599d5b]{font-weight:600;font-size:14px;margin-bottom:6px;color:var(--el-text-color-primary)}.render-block__table[data-v-ea599d5b]{width:100%;max-width:900px;border-radius:8px;overflow:hidden;box-shadow:0 2px 8px #0000000f}.render-block__cards[data-v-ea599d5b]{display:flex;flex-direction:column;gap:8px}.card-item[data-v-ea599d5b]{border:1px solid var(--el-border-color);border-radius:8px;padding:10px 14px;background:var(--el-fill-color-lighter);box-shadow:0 2px 6px #0000000d}.card-field[data-v-ea599d5b]{display:flex;gap:6px;font-size:13px;line-height:1.8}.card-label[data-v-ea599d5b]{font-weight:600;color:var(--el-text-color-secondary);min-width:80px}.card-value[data-v-ea599d5b]{color:var(--el-text-color-primary)}.render-block__list[data-v-ea599d5b]{display:flex;flex-direction:column;gap:4px}.list-item[data-v-ea599d5b]{padding:6px 10px;font-size:13px;border-left:3px solid var(--el-color-primary);background:var(--el-fill-color-lighter);border-radius:0 4px 4px 0;box-shadow:0 1px 4px #0000000a}.suggested-next[data-v-0e0e9b65]{display:flex;align-items:center;gap:8px;padding:8px 12px;margin:6px 0;background:var(--el-color-primary-light-9);border:1px solid var(--el-color-primary-light-7);border-radius:8px;font-size:13px}.suggested-next__icon[data-v-0e0e9b65]{font-size:15px;flex-shrink:0}.suggested-next__text[data-v-0e0e9b65]{flex:1;color:var(--el-text-color-regular)}.chat-message[data-v-7317da3a]{display:flex;gap:10px;padding:12px 0;animation:msg-in-7317da3a .25s ease both}@keyframes msg-in-7317da3a{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.chat-message.role-user[data-v-7317da3a]{flex-direction:row-reverse}.chat-message.role-user .message-time[data-v-7317da3a]{text-align:right}.message-avatar[data-v-7317da3a]{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px;color:#fff;box-shadow:0 0 0 2px var(--el-bg-color),0 2px 6px #0000001f}.role-user .message-avatar[data-v-7317da3a]{background:linear-gradient(135deg,var(--el-color-primary),var(--el-color-primary-light-3))}.role-assistant .message-avatar[data-v-7317da3a]{background:linear-gradient(135deg,#009688,#2d8cf0)}.message-time[data-v-7317da3a]{display:block;font-size:11px;line-height:1;color:var(--el-text-color-placeholder);margin-bottom:4px}.message-body[data-v-7317da3a]{max-width:80%;min-width:0}.role-user .message-body[data-v-7317da3a]{background:linear-gradient(135deg,var(--el-color-primary-light-9),var(--el-color-primary-light-8));padding:8px 14px;border-radius:12px 4px 12px 12px;box-shadow:0 2px 8px #0000000f,0 1px 2px #0000000a}.role-assistant .message-body[data-v-7317da3a]{position:relative;background:var(--el-fill-color-lighter);padding:8px 14px;border-radius:4px 12px 12px;display:flex;flex-direction:column;box-shadow:0 2px 8px #0000000f,0 1px 2px #0000000a}.message-actions[data-v-7317da3a]{position:absolute;top:0;right:0;opacity:0;transition:opacity .2s;z-index:1}.role-assistant .message-body:hover .message-actions[data-v-7317da3a]{opacity:1}.role-assistant .message-body .message-time[data-v-7317da3a]{float:left;width:10px}.message-action-btn[data-v-7317da3a]{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;background:transparent;border-radius:4px;color:var(--el-text-color-secondary);cursor:pointer;font-size:15px}.message-action-btn[data-v-7317da3a]:hover{background:var(--el-fill-color);color:var(--el-color-primary)}.message-user-text[data-v-7317da3a]{font-size:14px;line-height:1.5;color:var(--el-text-color-primary);white-space:pre-wrap;word-break:break-word}.message-content[data-v-7317da3a]{font-size:14px;line-height:1.6;color:var(--el-text-color-primary);word-break:break-word;background:transparent;border:none;outline:none;box-shadow:none;height:auto;overflow-wrap:break-word}.message-content[data-v-7317da3a] p{margin:0 0 8px}.message-content[data-v-7317da3a] p:last-child{margin-bottom:0}.message-content[data-v-7317da3a] h1,.message-content[data-v-7317da3a] h2,.message-content[data-v-7317da3a] h3,.message-content[data-v-7317da3a] h4,.message-content[data-v-7317da3a] h5,.message-content[data-v-7317da3a] h6{margin:12px 0 8px;font-weight:600;line-height:1.4;color:var(--el-text-color-primary);cursor:pointer;-webkit-user-select:none;user-select:none}.message-content[data-v-7317da3a] h1[data-collapsed]:after,.message-content[data-v-7317da3a] h2[data-collapsed]:after,.message-content[data-v-7317da3a] h3[data-collapsed]:after,.message-content[data-v-7317da3a] h4[data-collapsed]:after,.message-content[data-v-7317da3a] h5[data-collapsed]:after,.message-content[data-v-7317da3a] h6[data-collapsed]:after{content:" ▸";font-size:.8em;color:var(--el-text-color-secondary)}.message-content[data-v-7317da3a] h1{font-size:20px}.message-content[data-v-7317da3a] h2{font-size:18px;padding-bottom:4px;border-bottom:1px solid var(--el-border-color-lighter)}.message-content[data-v-7317da3a] h3{font-size:16px}.message-content[data-v-7317da3a] h4{font-size:15px}.message-content[data-v-7317da3a] h5,.message-content[data-v-7317da3a] h6{font-size:14px}.message-content[data-v-7317da3a] strong{font-weight:600}.message-content[data-v-7317da3a] em{font-style:italic}.message-content[data-v-7317da3a] ul,.message-content[data-v-7317da3a] ol{margin:0 0 8px;padding-left:20px}.message-content[data-v-7317da3a] ul:last-child,.message-content[data-v-7317da3a] ol:last-child{margin-bottom:0}.message-content[data-v-7317da3a] li{margin:2px 0}.message-content[data-v-7317da3a] li>ul,.message-content[data-v-7317da3a] li>ol{margin:0}.message-content[data-v-7317da3a] code{padding:1px 5px;margin:0 2px;font-size:12px;font-family:Consolas,Monaco,Courier New,monospace;background:var(--el-fill-color);color:var(--el-color-primary);border-radius:4px}.message-content[data-v-7317da3a] pre{margin:8px 0;padding:10px 12px;background:var(--el-bg-color);border:1px solid var(--el-border-color-lighter);border-radius:6px;overflow-x:auto}.message-content[data-v-7317da3a] .md-code-block{margin:8px 0}.message-content[data-v-7317da3a] .md-code-block__head{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:var(--el-fill-color);border:1px solid var(--el-border-color-lighter);border-bottom:none;border-radius:6px 6px 0 0;font-size:12px}.message-content[data-v-7317da3a] .md-code-block__lang{color:var(--el-text-color-secondary);font-family:Consolas,Monaco,Courier New,monospace}.message-content[data-v-7317da3a] .md-code-block__copy{color:var(--el-color-primary);cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .2s}.message-content[data-v-7317da3a] .md-code-block__copy:hover{opacity:.7}.message-content[data-v-7317da3a] .md-code-block pre{margin:0;border-radius:0 0 6px 6px}.message-content[data-v-7317da3a] pre code{display:block;padding:0;margin:0;font-size:12px;line-height:1.6;background:transparent;color:var(--el-text-color-primary);border-radius:0;white-space:pre}.message-content[data-v-7317da3a] blockquote{margin:8px 0;padding:4px 12px;border-left:3px solid var(--el-color-primary-light-5);background:var(--el-fill-color-lighter);border-radius:0 6px 6px 0;color:var(--el-text-color-regular)}.message-content[data-v-7317da3a] blockquote p{margin:0}.message-content[data-v-7317da3a] table{width:100%;margin:8px 0;border-collapse:collapse;font-size:13px}.message-content[data-v-7317da3a] th,.message-content[data-v-7317da3a] td{padding:6px 10px;border:1px solid var(--el-border-color-lighter);text-align:left}.message-content[data-v-7317da3a] th{background:var(--el-fill-color);font-weight:600;color:var(--el-text-color-primary)}.message-content[data-v-7317da3a] tbody tr:nth-child(2n){background:var(--el-fill-color-lighter)}.message-content.is-table-clickable[data-v-7317da3a] tbody tr{cursor:pointer;transition:background .15s}.message-content.is-table-clickable[data-v-7317da3a] tbody tr:hover{background:var(--el-color-primary-light-9)}.message-content.is-list-clickable[data-v-7317da3a] li{cursor:pointer;border-radius:4px;transition:background .15s}.message-content.is-list-clickable[data-v-7317da3a] li:hover{background:var(--el-color-primary-light-9)}.message-content[data-v-7317da3a] a{color:var(--el-color-primary);text-decoration:none}.message-content[data-v-7317da3a] a:hover{text-decoration:underline}.message-content[data-v-7317da3a] img{max-width:100%;border-radius:6px}.message-content[data-v-7317da3a] hr{margin:12px 0;border:none;border-top:1px solid var(--el-border-color-lighter)}.typing-dots[data-v-7317da3a]{display:inline-flex;align-items:center;gap:4px;padding:2px 0}.typing-dots i[data-v-7317da3a]{width:6px;height:6px;border-radius:50%;background:var(--el-color-primary);animation:typing-bounce-7317da3a 1.2s ease-in-out infinite}.typing-dots i[data-v-7317da3a]:nth-child(2){animation-delay:.15s}.typing-dots i[data-v-7317da3a]:nth-child(3){animation-delay:.3s}@keyframes typing-bounce-7317da3a{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}.message-error[data-v-7317da3a]{margin-top:4px;font-size:12px;color:var(--el-color-danger)}.message-reasoning[data-v-7317da3a]{margin-bottom:8px}.reasoning-toggle[data-v-7317da3a]{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--el-border-color);border-radius:999px;background:var(--el-fill-color);color:var(--el-text-color-regular);font-size:12px;line-height:1;cursor:pointer;transition:all .2s}.reasoning-toggle[data-v-7317da3a]:hover{background:var(--el-fill-color-light);color:var(--el-color-primary);border-color:var(--el-color-primary-light-5)}.reasoning-toggle__arrow[data-v-7317da3a]{display:inline-block;font-size:12px;transition:transform .2s}.reasoning-toggle__arrow.open[data-v-7317da3a]{transform:rotate(180deg)}.reasoning-content[data-v-7317da3a]{margin:6px 0 0;padding:8px;background:var(--el-fill-color);border-radius:6px;font-size:12px;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto}.message-files[data-v-7317da3a]{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.message-file[data-v-7317da3a]{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--el-border-color);border-radius:8px;background:var(--el-bg-color);font-size:12px}.message-file.is-image[data-v-7317da3a]{padding:4px;flex-direction:column;align-items:flex-start}.file-image[data-v-7317da3a]{max-width:200px;max-height:200px;border-radius:6px;object-fit:contain;cursor:zoom-in;transition:box-shadow .2s}.file-image[data-v-7317da3a]:hover{box-shadow:0 0 0 2px var(--el-color-primary-light-5)}.file-info[data-v-7317da3a]{display:flex;flex-direction:column;gap:2px}.file-name[data-v-7317da3a]{color:var(--el-text-color-primary);font-weight:500;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size[data-v-7317da3a]{color:var(--el-text-color-secondary);font-size:11px}.chat-input[data-v-e7db63f0]{padding:12px 16px;border-top:1px solid var(--el-border-color-lighter);background:var(--el-bg-color);display:flex;flex-direction:column}.chat-input__files[data-v-e7db63f0]{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.chat-input__preview[data-v-e7db63f0]{margin-left:auto;height:24px;padding:0 8px}.chat-input__files[data-v-e7db63f0] .el-tag{border-radius:999px}.chat-input__send.el-button--primary[data-v-e7db63f0]{background:linear-gradient(135deg,#009688,#2d8cf0);border-color:transparent;color:#fff;transition:box-shadow .2s,transform .2s}.chat-input__send.el-button--primary[data-v-e7db63f0]:hover{background:linear-gradient(135deg,#00807a,#256fce);box-shadow:0 4px 12px #2d8cf059;transform:translateY(-1px)}.chat-input__wrap[data-v-e7db63f0]{display:flex;align-items:flex-end;gap:8px;background:var(--el-fill-color-light);border:1px solid var(--el-border-color);border-radius:12px;padding:6px 6px 6px 12px;transition:border-color .2s,box-shadow .2s}.chat-input__wrap[data-v-e7db63f0]:focus-within{border-color:var(--el-color-primary);box-shadow:0 0 0 2px var(--el-color-primary-light-8)}.chat-input__wrap[data-v-e7db63f0] .el-textarea__inner{border:none;background:transparent;box-shadow:none;padding:4px 0;line-height:1.6;font-size:14px}.chat-input__wrap[data-v-e7db63f0] .el-textarea__inner:focus{box-shadow:none}.chat-input__actions[data-v-e7db63f0]{flex-shrink:0;display:flex;align-items:center;gap:2px;padding-bottom:2px}.form-tip[data-v-5879c4da]{font-size:12px;color:var(--el-text-color-secondary);line-height:1.6;margin-top:4px}.form-tip-inline[data-v-5879c4da]{margin-left:8px;font-size:12px;color:var(--el-text-color-secondary)}.temp-row[data-v-5879c4da]{display:flex;align-items:center;gap:12px;width:100%}.temp-val[data-v-5879c4da]{width:28px;text-align:right;font-size:13px;color:var(--el-text-color-secondary)}.chat-panel-root[data-v-bc711bbf]{position:fixed;z-index:1999}.ai-fab[data-v-bc711bbf]{position:fixed;right:22px;bottom:25px;z-index:2000;display:flex;align-items:center;gap:8px;height:52px;padding:0 22px 0 18px;border-radius:26px;color:#fff;font-size:15px;font-weight:600;cursor:pointer;background:linear-gradient(135deg,#009688,#2d8cf0);box-shadow:0 6px 24px #2d8cf080;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s;-webkit-user-select:none;user-select:none;overflow:hidden;isolation:isolate;animation:ai-fab-float-bc711bbf 3.6s ease-in-out infinite}@keyframes ai-fab-float-bc711bbf{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.ai-fab[data-v-bc711bbf]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.25) 50%,transparent 70%);background-size:200% 100%;background-position:100% 0;animation:ai-fab-shimmer-bc711bbf 4s ease-in-out infinite;z-index:-1;pointer-events:none}@keyframes ai-fab-shimmer-bc711bbf{0%,to{background-position:100% 0}50%{background-position:0 0}}.ai-fab[data-v-bc711bbf]:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:inherit;border:2px solid rgba(45,140,240,.35);animation:ai-fab-pulse-bc711bbf 2.4s ease-in-out infinite;pointer-events:none;z-index:-2}@keyframes ai-fab-pulse-bc711bbf{0%,to{opacity:.6;transform:scale(1)}50%{opacity:0;transform:scale(1.12)}}.ai-fab__icon[data-v-bc711bbf]{font-size:22px;filter:drop-shadow(0 0 4px rgba(255,255,255,.4));transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.ai-fab__label[data-v-bc711bbf]{line-height:1;text-shadow:0 1px 4px rgba(0,0,0,.15)}.ai-fab[data-v-bc711bbf]:hover{animation:none;transform:translateY(-4px) scale(1.04);box-shadow:0 12px 32px #2d8cf099}.ai-fab[data-v-bc711bbf]:hover:before{animation:none;background-position:0 0}.ai-fab--active[data-v-bc711bbf]{animation:none;box-shadow:0 4px 16px #2d8cf066}.ai-fab--active[data-v-bc711bbf]:after{animation:none;opacity:0}.ai-fab--active[data-v-bc711bbf]:before{animation:none}.ai-fab--active .ai-fab__icon[data-v-bc711bbf]{transform:rotate(45deg)}.ai-fab--dragged[data-v-bc711bbf]{animation:none}.ai-fab--dragged[data-v-bc711bbf]:before,.ai-fab--dragged[data-v-bc711bbf]:after{animation:none;opacity:0}.chat-panel[data-v-bc711bbf]{position:fixed;bottom:25px;right:22px;z-index:9999;display:flex;flex-direction:column;height:680px;width:560px;min-height:400px;background:var(--el-bg-color);box-shadow:0 20px 50px #0000002e,0 6px 18px #00000014;border-radius:16px;transform-origin:bottom right}.panel-enter-active[data-v-bc711bbf],.panel-leave-active[data-v-bc711bbf]{transition:opacity .3s ease,transform .3s cubic-bezier(.34,1.56,.64,1)}.panel-enter-from[data-v-bc711bbf],.panel-leave-to[data-v-bc711bbf]{opacity:0;transform:translateY(16px) scale(.96)}.chat-panel__header[data-v-bc711bbf]{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;cursor:move;-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--el-border-color-lighter);background:linear-gradient(135deg,var(--el-color-primary-light-7),var(--el-bg-color));border-radius:16px 16px 0 0;flex-shrink:0}.chat-panel__title[data-v-bc711bbf]{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--el-text-color-primary)}.title-icon[data-v-bc711bbf]{color:var(--el-color-primary);font-size:18px}.chat-panel__ops[data-v-bc711bbf]{display:flex;gap:4px}.chat-panel__body[data-v-bc711bbf]{flex:1;overflow-y:auto;padding:0 16px;min-height:0;scrollbar-width:thin;scrollbar-color:var(--el-border-color-darker) transparent}.chat-panel__body[data-v-bc711bbf]::-webkit-scrollbar{width:8px}.chat-panel__body[data-v-bc711bbf]::-webkit-scrollbar-track{background:var(--el-fill-color-lighter);border-radius:4px}.chat-panel__body[data-v-bc711bbf]::-webkit-scrollbar-thumb{background:var(--el-border-color-darker);border-radius:4px;border:2px solid transparent;background-clip:content-box}.chat-panel__body[data-v-bc711bbf]::-webkit-scrollbar-thumb:hover{background:var(--el-text-color-secondary);background-clip:content-box}.chat-empty[data-v-bc711bbf]{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px}.chat-empty__logo[data-v-bc711bbf]{width:64px;height:64px;border-radius:18px;background:linear-gradient(135deg,#009688,#2d8cf0);color:#fff;display:flex;align-items:center;justify-content:center;font-size:32px;box-shadow:0 8px 24px #2d8cf04d}.chat-empty h3[data-v-bc711bbf]{margin:0;font-size:18px;color:var(--el-text-color-primary)}.chat-empty__desc[data-v-bc711bbf]{margin:0;font-size:13px;color:var(--el-text-color-secondary);line-height:1.6}.chat-empty__desc .hl[data-v-bc711bbf]{color:var(--el-color-primary);font-weight:600}.chat-empty__commands[data-v-bc711bbf]{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.chat-empty__commands .el-button[data-v-bc711bbf]{margin-left:0}.chat-panel__footer[data-v-bc711bbf]{flex-shrink:0}.chat-panel__stop[data-v-bc711bbf]{display:flex;justify-content:center;padding:6px 0 0}.chat-panel__error[data-v-bc711bbf]{padding:8px 16px 0}.fade-enter-active[data-v-bc711bbf],.fade-leave-active[data-v-bc711bbf]{transition:opacity .2s}.fade-enter-from[data-v-bc711bbf],.fade-leave-to[data-v-bc711bbf]{opacity:0}.chat-panel--fullscreen[data-v-bc711bbf]{position:fixed;top:5%;right:10%;bottom:5%;left:10%;z-index:9999;height:90vh!important;width:80%!important}
@@ -0,0 +1,17 @@
1
+ import { ref } from 'vue';
2
+ import { EventBus } from '../core/event-bus';
3
+ export interface AgentAction {
4
+ actionId: number;
5
+ page: string;
6
+ actionName?: string;
7
+ data?: Record<string, any>;
8
+ targetName?: string;
9
+ }
10
+ export interface AgentBridge {
11
+ pendingAction: ReturnType<typeof ref<AgentAction | null>>;
12
+ dispatch: (action: Omit<AgentAction, 'actionId'>) => void;
13
+ consume: () => void;
14
+ }
15
+ export declare function createAgentBridge(): AgentBridge;
16
+ export declare function getDefaultBridge(): AgentBridge;
17
+ export declare function setBridgeBus(bus?: EventBus): void;
@@ -0,0 +1,4 @@
1
+ export { createAgentBridge, getDefaultBridge, setBridgeBus } from './agent-bridge-core';
2
+ export type { AgentBridge, AgentAction } from './agent-bridge-core';
3
+ export { usePageAgentBridge } from './usePageAgentBridge';
4
+ export type { AgentActionHandlers } from './usePageAgentBridge';
@@ -0,0 +1,9 @@
1
+ import { AgentBridge, AgentAction } from './agent-bridge-core';
2
+ export type AgentActionHandlers = Partial<Record<string, (action: AgentAction) => void>>;
3
+ interface UsePageAgentBridgeOptions {
4
+ page: string;
5
+ handlers: AgentActionHandlers;
6
+ bridge?: AgentBridge;
7
+ }
8
+ export declare function usePageAgentBridge(options: UsePageAgentBridgeOptions): void;
9
+ export {};
@@ -6,6 +6,8 @@ type __VLS_Props = {
6
6
  id: string;
7
7
  components?: Record<string, Component>;
8
8
  }[];
9
+ mdTableClick?: boolean;
10
+ mdListClick?: boolean;
9
11
  };
10
12
  declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
11
13
  execute: (text: string) => any;
@@ -25,6 +25,8 @@ type __VLS_Props = {
25
25
  declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
26
26
  showFab: boolean;
27
27
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
28
+ fabRef: HTMLDivElement;
29
+ panelRef: HTMLDivElement;
28
30
  scrollRef: HTMLDivElement;
29
31
  }, HTMLDivElement>;
30
32
  export default _default;
@@ -8,5 +8,5 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
8
8
  select: (text: string) => any;
9
9
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
10
10
  onSelect?: (text: string) => any;
11
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
11
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
12
12
  export default _default;
@@ -19,7 +19,7 @@ export declare function useAgentChat(options: AgentChatOptions): {
19
19
  timestamp: number;
20
20
  error?: string;
21
21
  renderBlocks?: {
22
- type: "component" | "table" | "card" | "list";
22
+ type: "component" | "table" | "card" | "list" | "auto" | "none";
23
23
  packageId?: string;
24
24
  componentName?: string;
25
25
  title?: string;
@@ -53,6 +53,7 @@ export declare function useAgentChat(options: AgentChatOptions): {
53
53
  success: boolean;
54
54
  status: "running" | "success" | "error";
55
55
  }[];
56
+ hideMarkdown?: boolean;
56
57
  }[], ChatMessage[] | {
57
58
  id: string;
58
59
  role: import('../types').MessageRole;
@@ -71,7 +72,7 @@ export declare function useAgentChat(options: AgentChatOptions): {
71
72
  timestamp: number;
72
73
  error?: string;
73
74
  renderBlocks?: {
74
- type: "component" | "table" | "card" | "list";
75
+ type: "component" | "table" | "card" | "list" | "auto" | "none";
75
76
  packageId?: string;
76
77
  componentName?: string;
77
78
  title?: string;
@@ -105,6 +106,7 @@ export declare function useAgentChat(options: AgentChatOptions): {
105
106
  success: boolean;
106
107
  status: "running" | "success" | "error";
107
108
  }[];
109
+ hideMarkdown?: boolean;
108
110
  }[]>;
109
111
  settings: import('vue').Ref<{
110
112
  apiKey: string;
@@ -114,6 +116,10 @@ export declare function useAgentChat(options: AgentChatOptions): {
114
116
  useTools?: boolean;
115
117
  providerMode: "direct" | "proxy";
116
118
  proxyUrl: string;
119
+ thinking?: boolean;
120
+ thinkingEffort?: "low" | "high" | "max";
121
+ mdTableClick?: boolean;
122
+ mdListClick?: boolean;
117
123
  }, ChatSettings | {
118
124
  apiKey: string;
119
125
  baseUrl: string;
@@ -122,6 +128,10 @@ export declare function useAgentChat(options: AgentChatOptions): {
122
128
  useTools?: boolean;
123
129
  providerMode: "direct" | "proxy";
124
130
  proxyUrl: string;
131
+ thinking?: boolean;
132
+ thinkingEffort?: "low" | "high" | "max";
133
+ mdTableClick?: boolean;
134
+ mdListClick?: boolean;
125
135
  }>;
126
136
  loading: import('vue').Ref<boolean, boolean>;
127
137
  errorMsg: import('vue').Ref<string, string>;
@@ -0,0 +1,26 @@
1
+ import { Ref } from 'vue';
2
+ export interface DraggableOptions {
3
+ /** 是否允许拖拽,例如全屏时禁用 */
4
+ disabled?: () => boolean;
5
+ /** 判定为“拖拽”而非“点击”的位移阈值(px) */
6
+ threshold?: number;
7
+ /** 拖拽开始时回调 */
8
+ onDragStart?: () => void;
9
+ /** 拖拽结束且发生过移动时回调 */
10
+ onDragMove?: () => void;
11
+ }
12
+ export declare function useDraggable(options?: DraggableOptions): {
13
+ pos: Ref<{
14
+ x: number;
15
+ y: number;
16
+ }, {
17
+ x: number;
18
+ y: number;
19
+ } | {
20
+ x: number;
21
+ y: number;
22
+ }>;
23
+ dragging: Ref<boolean, boolean>;
24
+ startDrag: (e: PointerEvent, el: HTMLElement) => void;
25
+ consumeMoved: () => boolean;
26
+ };
@@ -11,4 +11,5 @@ export declare class EventBus {
11
11
  clear(): void;
12
12
  }
13
13
  export declare function createEventBus(): EventBus;
14
+ export declare function getDefaultEventBus(): EventBus;
14
15
  export {};
@@ -6,4 +6,6 @@ export interface ResolvedBlock {
6
6
  fallbackText: string;
7
7
  }
8
8
  export declare function resolveRenderBlock(block: RenderBlock, packages: ToolPackage[], contextPackageId?: string): ResolvedBlock;
9
+ /** 数据驱动的渲染类型:单行→none(不渲染,回退模型文本),多行→table(基于 extractRows 行数判定) */
10
+ export declare function resolveAutoType(data: any): 'none' | 'table';
9
11
  export declare function extractRows(data: any): any[] | null;