@anvaka/vue-llm 0.3.1 → 0.4.0

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.
@@ -5,15 +5,15 @@ function S() {
5
5
  const o = f(U), i = f(Y), n = f(B);
6
6
  if (!o || !i)
7
7
  throw new Error("LLM not provided. Did you install the LLMPlugin?");
8
- const u = c(!1), a = c(""), l = c("");
8
+ const a = c(!1), u = c(""), l = c("");
9
9
  async function g(e, t = {}) {
10
- u.value = !0, a.value = "", l.value = "";
10
+ a.value = !0, u.value = "", l.value = "";
11
11
  try {
12
12
  return await o.stream({ messages: e, ...t }, (s) => {
13
- a.value = s.fullContent || "", l.value = s.fullThinking || "";
13
+ u.value = s.fullContent || "", l.value = s.fullThinking || "";
14
14
  });
15
15
  } finally {
16
- u.value = !1;
16
+ a.value = !1;
17
17
  }
18
18
  }
19
19
  function p() {
@@ -58,8 +58,8 @@ function S() {
58
58
  const r = i.saveConfig(e, t);
59
59
  return d() === e && v(null), r;
60
60
  }
61
- async function I(e, t) {
62
- return D(e, t).discoverModels();
61
+ async function I(e, t, { force: r = !1 } = {}) {
62
+ return D(e, t).discoverModels(1e4, { force: r });
63
63
  }
64
64
  async function K(e) {
65
65
  return o.testConnection(e);
@@ -92,8 +92,8 @@ function S() {
92
92
  keyStore: n,
93
93
  // Streaming
94
94
  stream: g,
95
- isStreaming: u,
96
- streamContent: a,
95
+ isStreaming: a,
96
+ streamContent: u,
97
97
  streamThinking: l,
98
98
  // Config management
99
99
  getEnabledConfigs: p,
@@ -122,6 +122,8 @@ function F(o) {
122
122
  name: "",
123
123
  provider: o,
124
124
  baseUrl: "",
125
+ region: "",
126
+ backend: "",
125
127
  apiKey: "",
126
128
  model: "",
127
129
  temperature: 0.7,
package/dist/vue-llm.css CHANGED
@@ -1 +1 @@
1
- .llm-provider-selector[data-v-9fd186c2]{font-size:var(--llm-font-size-sm, .85rem)}.llm-provider-select[data-v-9fd186c2]{padding:var(--llm-spacing-xs, .25rem) var(--llm-spacing-sm, .5rem);border:1px solid var(--llm-border, #444);border-radius:var(--llm-radius-sm, 4px);background:var(--llm-bg, #111);color:var(--llm-text, #ddd);font-family:inherit;font-size:inherit;cursor:pointer;min-width:120px;max-width:180px}.llm-provider-select[data-v-9fd186c2]:focus{outline:none;border-color:var(--llm-accent, #6c7cff)}.llm-provider-select[data-v-9fd186c2]:hover{border-color:var(--llm-border-hover, #666)}.config-option[data-v-9fd186c2]{font-style:italic;border-top:1px solid var(--llm-border, #444)}.llm-stored-keys-manager[data-v-dd3230e5]{background:var(--llm-bg, #181a1f);border-radius:var(--llm-radius-md, 8px);max-height:80vh;display:flex;flex-direction:column;color:var(--llm-text, #e6e8ea)}.llm-manager-header[data-v-dd3230e5]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--llm-border, #33383f);flex-shrink:0}.llm-manager-header h3[data-v-dd3230e5]{margin:0;font-size:1.25rem;font-weight:600;color:var(--llm-text, #e6e8ea)}.llm-close-btn[data-v-dd3230e5]{font-size:1.5rem;line-height:1}.llm-close-btn[data-v-dd3230e5]:hover{opacity:.7}.llm-manager-body[data-v-dd3230e5]{flex:1;overflow:hidden;min-height:0;display:flex;flex-direction:column}.llm-scrollable-content[data-v-dd3230e5]{flex:1;overflow-y:auto;padding:1.5rem;min-height:0}.llm-empty-keys[data-v-dd3230e5]{text-align:center;padding:2rem 1rem;color:var(--llm-text-dim, #9aa0a6)}.llm-empty-keys p[data-v-dd3230e5]{margin:0 0 .5rem;font-size:1rem;font-weight:500}.llm-empty-keys small[data-v-dd3230e5]{font-size:.9rem;opacity:.7}.llm-keys-list[data-v-dd3230e5]{margin-bottom:1rem}.llm-key-item[data-v-dd3230e5]{border:1px solid var(--llm-border, #33383f);border-radius:var(--llm-radius-sm, 6px);margin-bottom:.75rem;background:var(--llm-bg-soft, #1f2228);overflow:hidden}.llm-key-header[data-v-dd3230e5]{display:flex;justify-content:space-between;align-items:flex-start;padding:.75rem}.llm-provider-info[data-v-dd3230e5]{flex:1;display:flex;flex-direction:column;gap:.5rem}.llm-provider-header[data-v-dd3230e5]{display:flex;justify-content:space-between;align-items:center}.llm-provider-name[data-v-dd3230e5]{font-weight:600;font-size:.9rem;color:var(--llm-text, #e6e8ea)}.llm-service-endpoint[data-v-dd3230e5]{margin-top:.25rem}.llm-service-endpoint small[data-v-dd3230e5]{color:var(--llm-text-dim, #9aa0a6);font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:.75rem}.llm-provider-select[data-v-dd3230e5]{font-weight:600;font-size:.9rem;min-width:200px}.llm-key-input-row[data-v-dd3230e5]{display:flex;gap:.5rem;align-items:center}.llm-key-input-inline[data-v-dd3230e5]{flex:1;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:.8rem;padding:.4rem .6rem}.llm-stored-date[data-v-dd3230e5]{font-size:.75rem;color:var(--llm-text-dim, #9aa0a6)}.llm-manager-footer[data-v-dd3230e5]{display:flex;align-items:center;gap:.5rem;padding:1.5rem;border-top:1px solid var(--llm-border, #33383f);flex-shrink:0}.llm-footer-spacer[data-v-dd3230e5]{flex:1}.llm-btn[data-v-dd3230e5]{padding:.5rem 1rem;border-radius:var(--llm-radius-sm, 4px);border:1px solid var(--llm-border, #33383f);background:var(--llm-bg-soft, #1f2228);color:var(--llm-text, #e6e8ea);cursor:pointer;font-size:var(--llm-font-size-sm, .85rem);transition:all .15s ease}.llm-btn[data-v-dd3230e5]:hover:not(:disabled){border-color:var(--llm-border-hover, #4b525c);background:var(--llm-bg-mute, #242830)}.llm-btn--sm[data-v-dd3230e5]{padding:.25rem .5rem;font-size:var(--llm-font-size-xs, .75rem)}.llm-btn--secondary[data-v-dd3230e5]{background:var(--llm-bg-mute, #242830);border-color:var(--llm-accent, #6366f1);color:var(--llm-accent, #6366f1)}.llm-btn--ghost[data-v-dd3230e5]{background:transparent;border-color:transparent}.llm-btn--ghost[data-v-dd3230e5]:hover:not(:disabled){background:var(--llm-bg-mute, #242830)}.llm-btn--danger[data-v-dd3230e5]{background:var(--llm-error, #ef4444);border-color:var(--llm-error, #ef4444);color:#fff}.llm-form-control[data-v-dd3230e5]{width:100%;padding:.5rem .75rem;border:1px solid var(--llm-border, #33383f);border-radius:var(--llm-radius-sm, 4px);background:var(--llm-bg, #181a1f);color:var(--llm-text, #e6e8ea);font-size:var(--llm-font-size-sm, .85rem)}.llm-form-control[data-v-dd3230e5]:focus{outline:none;border-color:var(--llm-accent, #6366f1)}@media(max-width:768px){.llm-manager-header[data-v-dd3230e5],.llm-manager-footer[data-v-dd3230e5],.llm-scrollable-content[data-v-dd3230e5]{padding:1rem}.llm-key-header[data-v-dd3230e5]{flex-direction:column;align-items:stretch;gap:1rem;padding:.75rem}.llm-key-input-row[data-v-dd3230e5]{flex-direction:column;align-items:stretch}.llm-provider-select[data-v-dd3230e5]{min-width:auto}}@media(max-width:480px){.llm-manager-header h3[data-v-dd3230e5]{font-size:1.1rem}}.llm-modal-overlay[data-v-0835d20f]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.llm-modal[data-v-0835d20f]{background:var(--llm-bg, #181a1f);border:2px solid var(--llm-border, #33383f);border-radius:var(--llm-radius-md, 8px);width:90%;max-width:700px;max-height:90%;position:relative;display:flex;flex-direction:column;color:var(--llm-text, #e6e8ea)}.llm-modal-header[data-v-0835d20f]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--llm-border, #33383f);flex-shrink:0}.llm-modal-header h2[data-v-0835d20f]{margin:0;color:var(--llm-text, #e6e8ea);font-size:1.25rem}.llm-close-btn[data-v-0835d20f]{font-size:1.5rem;line-height:1}.llm-close-btn[data-v-0835d20f]:hover{opacity:.7}.llm-modal-body[data-v-0835d20f]{padding:1.5rem;flex:1;overflow-y:auto;min-height:0}.llm-btn[data-v-0835d20f]{padding:.5rem 1rem;border-radius:var(--llm-radius-sm, 4px);border:1px solid var(--llm-border, #33383f);background:var(--llm-bg-soft, #1f2228);color:var(--llm-text, #e6e8ea);cursor:pointer;font-size:var(--llm-font-size-sm, .85rem);transition:all .15s ease}.llm-btn[data-v-0835d20f]:hover:not(:disabled){border-color:var(--llm-border-hover, #4b525c);background:var(--llm-bg-mute, #242830)}.llm-btn[data-v-0835d20f]:disabled{opacity:.5;cursor:not-allowed}.llm-btn--sm[data-v-0835d20f]{padding:.25rem .5rem;font-size:var(--llm-font-size-xs, .75rem)}.llm-btn--primary[data-v-0835d20f]{background:var(--llm-accent, #6366f1);border-color:var(--llm-accent, #6366f1);color:var(--llm-bg, #181a1f)}.llm-btn--primary[data-v-0835d20f]:hover:not(:disabled){filter:brightness(1.1)}.llm-btn--secondary[data-v-0835d20f]{background:var(--llm-bg-mute, #242830);border-color:var(--llm-accent, #6366f1);color:var(--llm-accent, #6366f1)}.llm-btn--ghost[data-v-0835d20f]{background:transparent;border-color:transparent}.llm-btn--ghost[data-v-0835d20f]:hover:not(:disabled){background:var(--llm-bg-mute, #242830)}.llm-btn--danger[data-v-0835d20f]{background:var(--llm-error, #ef4444);border-color:var(--llm-error, #ef4444);color:#fff}.llm-btn--danger[data-v-0835d20f]:hover:not(:disabled){filter:brightness(1.1)}.llm-form-control[data-v-0835d20f]{width:100%;padding:.5rem .75rem;border:1px solid var(--llm-border, #33383f);border-radius:var(--llm-radius-sm, 4px);background:var(--llm-bg, #181a1f);color:var(--llm-text, #e6e8ea);font-size:var(--llm-font-size-sm, .85rem)}.llm-form-control[data-v-0835d20f]:focus{outline:none;border-color:var(--llm-accent, #6366f1)}.llm-form-control[data-v-0835d20f]:disabled{opacity:.6;cursor:not-allowed}.llm-provider-list[data-v-0835d20f]{margin-bottom:2rem;padding-bottom:1.5rem}.llm-provider-list[data-v-0835d20f]:not(:last-child){border-bottom:1px solid var(--llm-border, #33383f)}.llm-provider-list h3[data-v-0835d20f]{margin:0 0 1rem;color:var(--llm-text, #e6e8ea);font-size:1rem}.llm-provider-item[data-v-0835d20f]{display:flex;justify-content:space-between;align-items:center;padding:1rem;border:1px solid var(--llm-border, #33383f);border-radius:var(--llm-radius-sm, 4px);margin-bottom:.5rem;background:var(--llm-bg-soft, #1f2228);cursor:pointer;transition:all .15s ease;position:relative}.llm-provider-item[data-v-0835d20f]:hover{background:var(--llm-bg-mute, #242830);border-color:var(--llm-border-hover, #4b525c)}.llm-provider-item.active[data-v-0835d20f]{border-color:var(--llm-accent, #6366f1);background:var(--llm-bg, #181a1f);box-shadow:0 0 0 1px var(--llm-border, #33383f)}.llm-provider-item.disabled[data-v-0835d20f]{opacity:.6;cursor:not-allowed}.llm-provider-info[data-v-0835d20f]{flex:1}.llm-provider-name-row[data-v-0835d20f]{display:flex;align-items:center;margin-bottom:.25rem}.llm-provider-name[data-v-0835d20f]{font-weight:500;color:var(--llm-text, #e6e8ea);font-size:.95rem}.llm-active-badge[data-v-0835d20f],.llm-judge-badge[data-v-0835d20f]{position:absolute;top:-12px;background:var(--llm-accent, #6366f1);color:var(--llm-bg, #181a1f);font-size:.6rem;font-weight:700;padding:.2rem .5rem;border-radius:3px;text-transform:uppercase;letter-spacing:.5px;z-index:1}.llm-active-badge[data-v-0835d20f]{left:16px}.llm-judge-badge[data-v-0835d20f]{left:80px}.llm-disabled-badge[data-v-0835d20f]{background:var(--llm-border, #33383f);color:var(--llm-text, #e6e8ea);font-size:.65rem;font-weight:500;padding:.1rem .4rem;border-radius:2px;margin-left:.5rem;text-transform:uppercase}.llm-provider-details-row[data-v-0835d20f]{display:flex;align-items:center;gap:.75rem}.llm-test-status-btn[data-v-0835d20f]{background:none;border:1px solid var(--llm-border, #33383f);color:var(--llm-text, #e6e8ea);font-size:.7rem;font-weight:500;padding:.25rem .5rem;border-radius:3px;cursor:pointer;transition:all .15s ease;min-width:60px;text-align:center}.llm-test-status-btn.llm-test-default[data-v-0835d20f]:hover:not(:disabled){background:var(--llm-bg-mute, #242830);border-color:var(--llm-accent, #6366f1)}.llm-test-status-btn.llm-test-testing[data-v-0835d20f]{border-color:var(--llm-border-hover, #4b525c)}.llm-test-status-btn.llm-test-success[data-v-0835d20f]{border-color:var(--llm-success, #10b981);color:var(--llm-success, #10b981)}.llm-test-status-btn.llm-test-failed[data-v-0835d20f]{border-color:var(--llm-error, #ef4444);color:var(--llm-error, #ef4444)}.llm-provider-details[data-v-0835d20f]{font-size:.8rem;color:var(--llm-text-dim, #9aa0a6);flex:1}.llm-provider-actions[data-v-0835d20f]{display:flex;gap:.5rem;align-items:center}.llm-form-grid[data-v-0835d20f]{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center}.llm-field-label[data-v-0835d20f]{margin-bottom:0;white-space:nowrap;color:var(--llm-text, #e6e8ea);font-size:var(--llm-font-size-sm, .85rem)}.llm-api-key-field[data-v-0835d20f]{display:flex;flex-direction:column}.llm-api-key-input-row[data-v-0835d20f]{display:flex;gap:.5rem;align-items:stretch}.llm-api-key-input-row .llm-form-control[data-v-0835d20f]{flex:1}.llm-api-key-field .llm-security-note[data-v-0835d20f]{margin-top:.5rem}.llm-model-selector[data-v-0835d20f]{display:flex;gap:.5rem;align-items:stretch;flex-wrap:wrap}.llm-model-selector .llm-form-control[data-v-0835d20f]{flex:1}.llm-refresh-btn[data-v-0835d20f]{min-width:4rem;flex-shrink:0}.llm-model-error[data-v-0835d20f]{width:100%;font-size:.75rem;color:var(--llm-error, #ef4444)}.llm-thinking-toggle[data-v-0835d20f]{display:block;width:100%;margin-top:.5rem}.llm-temperature-field[data-v-0835d20f]{display:flex;flex-direction:column}.llm-field-note[data-v-0835d20f]{display:block;margin-top:.5rem;font-size:.75rem;color:var(--llm-text-dim, #9aa0a6);font-style:italic}.llm-checkbox-label[data-v-0835d20f]{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500;color:var(--llm-text, #e6e8ea);font-size:var(--llm-font-size-sm, .85rem)}.llm-checkbox[data-v-0835d20f]{width:1rem;height:1rem;cursor:pointer}.llm-security-note[data-v-0835d20f]{display:block;font-size:.75rem;color:var(--llm-text-dim, #9aa0a6)}.llm-modal-footer[data-v-0835d20f]{display:flex;align-items:center;gap:.5rem;padding:1.5rem;border-top:1px solid var(--llm-border, #33383f);flex-shrink:0}.llm-footer-spacer[data-v-0835d20f]{flex:1}.llm-empty-state[data-v-0835d20f]{text-align:center;padding:2rem;color:var(--llm-text-dim, #9aa0a6)}.llm-empty-state p[data-v-0835d20f]{margin:.5rem 0;font-size:.9rem}.llm-keys-manager-overlay[data-v-0835d20f]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1001}.llm-keys-manager-content[data-v-0835d20f]{width:90%;max-width:600px;max-height:80vh;border:2px solid var(--llm-border, #33383f);border-radius:var(--llm-radius-md, 8px);overflow:hidden}.llm-test-result[data-v-0835d20f]{margin-top:1rem;padding:.75rem 1rem;border-radius:var(--llm-radius-sm, 4px);font-size:var(--llm-font-size-sm, .85rem)}.llm-test-result--success[data-v-0835d20f]{background:color-mix(in srgb,var(--llm-success, #10b981) 15%,transparent);border:1px solid var(--llm-success, #10b981);color:var(--llm-success, #10b981)}.llm-test-result--error[data-v-0835d20f]{background:color-mix(in srgb,var(--llm-error, #ef4444) 15%,transparent);border:1px solid var(--llm-error, #ef4444);color:var(--llm-error, #ef4444)}@media(max-width:768px){.llm-modal[data-v-0835d20f]{width:95%;margin:1rem}.llm-modal-body[data-v-0835d20f],.llm-modal-header[data-v-0835d20f],.llm-modal-footer[data-v-0835d20f]{padding:1rem}.llm-provider-item[data-v-0835d20f]{flex-direction:column;align-items:stretch;gap:.75rem;padding:.75rem}.llm-provider-actions[data-v-0835d20f]{width:100%;justify-content:flex-end}.llm-form-grid[data-v-0835d20f]{grid-template-columns:1fr;gap:.5rem}.llm-field-label[data-v-0835d20f]{padding-top:0;margin-top:.5rem}.llm-active-badge[data-v-0835d20f],.llm-judge-badge[data-v-0835d20f]{top:-8px;font-size:.55rem;padding:.15rem .4rem}.llm-judge-badge[data-v-0835d20f]{left:66px}}@media(max-width:480px){.llm-modal[data-v-0835d20f]{width:98%;margin:.5rem}.llm-modal-body[data-v-0835d20f],.llm-modal-header[data-v-0835d20f],.llm-modal-footer[data-v-0835d20f]{padding:.75rem}}
1
+ .llm-provider-selector[data-v-9fd186c2]{font-size:var(--llm-font-size-sm, .85rem)}.llm-provider-select[data-v-9fd186c2]{padding:var(--llm-spacing-xs, .25rem) var(--llm-spacing-sm, .5rem);border:1px solid var(--llm-border, #444);border-radius:var(--llm-radius-sm, 4px);background:var(--llm-bg, #111);color:var(--llm-text, #ddd);font-family:inherit;font-size:inherit;cursor:pointer;min-width:120px;max-width:180px}.llm-provider-select[data-v-9fd186c2]:focus{outline:none;border-color:var(--llm-accent, #6c7cff)}.llm-provider-select[data-v-9fd186c2]:hover{border-color:var(--llm-border-hover, #666)}.config-option[data-v-9fd186c2]{font-style:italic;border-top:1px solid var(--llm-border, #444)}.llm-stored-keys-manager[data-v-dd3230e5]{background:var(--llm-bg, #181a1f);border-radius:var(--llm-radius-md, 8px);max-height:80vh;display:flex;flex-direction:column;color:var(--llm-text, #e6e8ea)}.llm-manager-header[data-v-dd3230e5]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--llm-border, #33383f);flex-shrink:0}.llm-manager-header h3[data-v-dd3230e5]{margin:0;font-size:1.25rem;font-weight:600;color:var(--llm-text, #e6e8ea)}.llm-close-btn[data-v-dd3230e5]{font-size:1.5rem;line-height:1}.llm-close-btn[data-v-dd3230e5]:hover{opacity:.7}.llm-manager-body[data-v-dd3230e5]{flex:1;overflow:hidden;min-height:0;display:flex;flex-direction:column}.llm-scrollable-content[data-v-dd3230e5]{flex:1;overflow-y:auto;padding:1.5rem;min-height:0}.llm-empty-keys[data-v-dd3230e5]{text-align:center;padding:2rem 1rem;color:var(--llm-text-dim, #9aa0a6)}.llm-empty-keys p[data-v-dd3230e5]{margin:0 0 .5rem;font-size:1rem;font-weight:500}.llm-empty-keys small[data-v-dd3230e5]{font-size:.9rem;opacity:.7}.llm-keys-list[data-v-dd3230e5]{margin-bottom:1rem}.llm-key-item[data-v-dd3230e5]{border:1px solid var(--llm-border, #33383f);border-radius:var(--llm-radius-sm, 6px);margin-bottom:.75rem;background:var(--llm-bg-soft, #1f2228);overflow:hidden}.llm-key-header[data-v-dd3230e5]{display:flex;justify-content:space-between;align-items:flex-start;padding:.75rem}.llm-provider-info[data-v-dd3230e5]{flex:1;display:flex;flex-direction:column;gap:.5rem}.llm-provider-header[data-v-dd3230e5]{display:flex;justify-content:space-between;align-items:center}.llm-provider-name[data-v-dd3230e5]{font-weight:600;font-size:.9rem;color:var(--llm-text, #e6e8ea)}.llm-service-endpoint[data-v-dd3230e5]{margin-top:.25rem}.llm-service-endpoint small[data-v-dd3230e5]{color:var(--llm-text-dim, #9aa0a6);font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:.75rem}.llm-provider-select[data-v-dd3230e5]{font-weight:600;font-size:.9rem;min-width:200px}.llm-key-input-row[data-v-dd3230e5]{display:flex;gap:.5rem;align-items:center}.llm-key-input-inline[data-v-dd3230e5]{flex:1;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-size:.8rem;padding:.4rem .6rem}.llm-stored-date[data-v-dd3230e5]{font-size:.75rem;color:var(--llm-text-dim, #9aa0a6)}.llm-manager-footer[data-v-dd3230e5]{display:flex;align-items:center;gap:.5rem;padding:1.5rem;border-top:1px solid var(--llm-border, #33383f);flex-shrink:0}.llm-footer-spacer[data-v-dd3230e5]{flex:1}.llm-btn[data-v-dd3230e5]{padding:.5rem 1rem;border-radius:var(--llm-radius-sm, 4px);border:1px solid var(--llm-border, #33383f);background:var(--llm-bg-soft, #1f2228);color:var(--llm-text, #e6e8ea);cursor:pointer;font-size:var(--llm-font-size-sm, .85rem);transition:all .15s ease}.llm-btn[data-v-dd3230e5]:hover:not(:disabled){border-color:var(--llm-border-hover, #4b525c);background:var(--llm-bg-mute, #242830)}.llm-btn--sm[data-v-dd3230e5]{padding:.25rem .5rem;font-size:var(--llm-font-size-xs, .75rem)}.llm-btn--secondary[data-v-dd3230e5]{background:var(--llm-bg-mute, #242830);border-color:var(--llm-accent, #6366f1);color:var(--llm-accent, #6366f1)}.llm-btn--ghost[data-v-dd3230e5]{background:transparent;border-color:transparent}.llm-btn--ghost[data-v-dd3230e5]:hover:not(:disabled){background:var(--llm-bg-mute, #242830)}.llm-btn--danger[data-v-dd3230e5]{background:var(--llm-error, #ef4444);border-color:var(--llm-error, #ef4444);color:#fff}.llm-form-control[data-v-dd3230e5]{width:100%;padding:.5rem .75rem;border:1px solid var(--llm-border, #33383f);border-radius:var(--llm-radius-sm, 4px);background:var(--llm-bg, #181a1f);color:var(--llm-text, #e6e8ea);font-size:var(--llm-font-size-sm, .85rem)}.llm-form-control[data-v-dd3230e5]:focus{outline:none;border-color:var(--llm-accent, #6366f1)}@media(max-width:768px){.llm-manager-header[data-v-dd3230e5],.llm-manager-footer[data-v-dd3230e5],.llm-scrollable-content[data-v-dd3230e5]{padding:1rem}.llm-key-header[data-v-dd3230e5]{flex-direction:column;align-items:stretch;gap:1rem;padding:.75rem}.llm-key-input-row[data-v-dd3230e5]{flex-direction:column;align-items:stretch}.llm-provider-select[data-v-dd3230e5]{min-width:auto}}@media(max-width:480px){.llm-manager-header h3[data-v-dd3230e5]{font-size:1.1rem}}.llm-modal-overlay[data-v-13e351e0]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.llm-modal[data-v-13e351e0]{background:var(--llm-bg, #181a1f);border:2px solid var(--llm-border, #33383f);border-radius:var(--llm-radius-md, 8px);width:90%;max-width:700px;max-height:90%;position:relative;display:flex;flex-direction:column;color:var(--llm-text, #e6e8ea)}.llm-modal-header[data-v-13e351e0]{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--llm-border, #33383f);flex-shrink:0}.llm-modal-header h2[data-v-13e351e0]{margin:0;color:var(--llm-text, #e6e8ea);font-size:1.25rem}.llm-close-btn[data-v-13e351e0]{font-size:1.5rem;line-height:1}.llm-close-btn[data-v-13e351e0]:hover{opacity:.7}.llm-modal-body[data-v-13e351e0]{padding:1.5rem;flex:1;overflow-y:auto;min-height:0}.llm-btn[data-v-13e351e0]{padding:.5rem 1rem;border-radius:var(--llm-radius-sm, 4px);border:1px solid var(--llm-border, #33383f);background:var(--llm-bg-soft, #1f2228);color:var(--llm-text, #e6e8ea);cursor:pointer;font-size:var(--llm-font-size-sm, .85rem);transition:all .15s ease}.llm-btn[data-v-13e351e0]:hover:not(:disabled){border-color:var(--llm-border-hover, #4b525c);background:var(--llm-bg-mute, #242830)}.llm-btn[data-v-13e351e0]:disabled{opacity:.5;cursor:not-allowed}.llm-btn--sm[data-v-13e351e0]{padding:.25rem .5rem;font-size:var(--llm-font-size-xs, .75rem)}.llm-btn--primary[data-v-13e351e0]{background:var(--llm-accent, #6366f1);border-color:var(--llm-accent, #6366f1);color:var(--llm-bg, #181a1f)}.llm-btn--primary[data-v-13e351e0]:hover:not(:disabled){filter:brightness(1.1)}.llm-btn--secondary[data-v-13e351e0]{background:var(--llm-bg-mute, #242830);border-color:var(--llm-accent, #6366f1);color:var(--llm-accent, #6366f1)}.llm-btn--ghost[data-v-13e351e0]{background:transparent;border-color:transparent}.llm-btn--ghost[data-v-13e351e0]:hover:not(:disabled){background:var(--llm-bg-mute, #242830)}.llm-btn--danger[data-v-13e351e0]{background:var(--llm-error, #ef4444);border-color:var(--llm-error, #ef4444);color:#fff}.llm-btn--danger[data-v-13e351e0]:hover:not(:disabled){filter:brightness(1.1)}.llm-form-control[data-v-13e351e0]{width:100%;padding:.5rem .75rem;border:1px solid var(--llm-border, #33383f);border-radius:var(--llm-radius-sm, 4px);background:var(--llm-bg, #181a1f);color:var(--llm-text, #e6e8ea);font-size:var(--llm-font-size-sm, .85rem)}.llm-form-control[data-v-13e351e0]:focus{outline:none;border-color:var(--llm-accent, #6366f1)}.llm-form-control[data-v-13e351e0]:disabled{opacity:.6;cursor:not-allowed}.llm-provider-list[data-v-13e351e0]{margin-bottom:2rem;padding-bottom:1.5rem}.llm-provider-list[data-v-13e351e0]:not(:last-child){border-bottom:1px solid var(--llm-border, #33383f)}.llm-provider-list h3[data-v-13e351e0]{margin:0 0 1rem;color:var(--llm-text, #e6e8ea);font-size:1rem}.llm-provider-item[data-v-13e351e0]{display:flex;justify-content:space-between;align-items:center;padding:1rem;border:1px solid var(--llm-border, #33383f);border-radius:var(--llm-radius-sm, 4px);margin-bottom:.5rem;background:var(--llm-bg-soft, #1f2228);cursor:pointer;transition:all .15s ease;position:relative}.llm-provider-item[data-v-13e351e0]:hover{background:var(--llm-bg-mute, #242830);border-color:var(--llm-border-hover, #4b525c)}.llm-provider-item.active[data-v-13e351e0]{border-color:var(--llm-accent, #6366f1);background:var(--llm-bg, #181a1f);box-shadow:0 0 0 1px var(--llm-border, #33383f)}.llm-provider-item.disabled[data-v-13e351e0]{opacity:.6;cursor:not-allowed}.llm-provider-info[data-v-13e351e0]{flex:1}.llm-provider-name-row[data-v-13e351e0]{display:flex;align-items:center;margin-bottom:.25rem}.llm-provider-name[data-v-13e351e0]{font-weight:500;color:var(--llm-text, #e6e8ea);font-size:.95rem}.llm-active-badge[data-v-13e351e0],.llm-judge-badge[data-v-13e351e0]{position:absolute;top:-12px;background:var(--llm-accent, #6366f1);color:var(--llm-bg, #181a1f);font-size:.6rem;font-weight:700;padding:.2rem .5rem;border-radius:3px;text-transform:uppercase;letter-spacing:.5px;z-index:1}.llm-active-badge[data-v-13e351e0]{left:16px}.llm-judge-badge[data-v-13e351e0]{left:80px}.llm-disabled-badge[data-v-13e351e0]{background:var(--llm-border, #33383f);color:var(--llm-text, #e6e8ea);font-size:.65rem;font-weight:500;padding:.1rem .4rem;border-radius:2px;margin-left:.5rem;text-transform:uppercase}.llm-provider-details-row[data-v-13e351e0]{display:flex;align-items:center;gap:.75rem}.llm-test-status-btn[data-v-13e351e0]{background:none;border:1px solid var(--llm-border, #33383f);color:var(--llm-text, #e6e8ea);font-size:.7rem;font-weight:500;padding:.25rem .5rem;border-radius:3px;cursor:pointer;transition:all .15s ease;min-width:60px;text-align:center}.llm-test-status-btn.llm-test-default[data-v-13e351e0]:hover:not(:disabled){background:var(--llm-bg-mute, #242830);border-color:var(--llm-accent, #6366f1)}.llm-test-status-btn.llm-test-testing[data-v-13e351e0]{border-color:var(--llm-border-hover, #4b525c)}.llm-test-status-btn.llm-test-success[data-v-13e351e0]{border-color:var(--llm-success, #10b981);color:var(--llm-success, #10b981)}.llm-test-status-btn.llm-test-failed[data-v-13e351e0]{border-color:var(--llm-error, #ef4444);color:var(--llm-error, #ef4444)}.llm-provider-details[data-v-13e351e0]{font-size:.8rem;color:var(--llm-text-dim, #9aa0a6);flex:1}.llm-provider-actions[data-v-13e351e0]{display:flex;gap:.5rem;align-items:center}.llm-form-grid[data-v-13e351e0]{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center}.llm-field-label[data-v-13e351e0]{margin-bottom:0;white-space:nowrap;color:var(--llm-text, #e6e8ea);font-size:var(--llm-font-size-sm, .85rem)}.llm-region-row[data-v-13e351e0]{display:flex;gap:.5rem;align-items:stretch}.llm-region-row .llm-form-control[data-v-13e351e0]{flex:1;min-width:0}.llm-backend-toggle[data-v-13e351e0]{display:inline-flex;flex-shrink:0;border:1px solid var(--llm-border, #33383f);border-radius:var(--llm-radius-sm, 4px);overflow:hidden}.llm-backend-btn[data-v-13e351e0]{padding:0 .75rem;border:none;background:var(--llm-bg, #181a1f);color:var(--llm-text-dim, #9aa0a6);cursor:pointer;font-size:var(--llm-font-size-sm, .85rem);transition:all .15s ease}.llm-backend-btn+.llm-backend-btn[data-v-13e351e0]{border-left:1px solid var(--llm-border, #33383f)}.llm-backend-btn[data-v-13e351e0]:hover:not(.active){background:var(--llm-bg-mute, #242830);color:var(--llm-text, #e6e8ea)}.llm-backend-btn.active[data-v-13e351e0]{background:var(--llm-accent, #6366f1);color:var(--llm-bg, #181a1f)}.llm-api-key-field[data-v-13e351e0]{display:flex;flex-direction:column}.llm-api-key-input-row[data-v-13e351e0]{display:flex;gap:.5rem;align-items:stretch}.llm-api-key-input-row .llm-form-control[data-v-13e351e0]{flex:1}.llm-api-key-field .llm-security-note[data-v-13e351e0]{margin-top:.5rem}.llm-model-selector[data-v-13e351e0]{display:flex;gap:.5rem;align-items:stretch;flex-wrap:wrap}.llm-model-selector .llm-form-control[data-v-13e351e0]{flex:1}.llm-refresh-btn[data-v-13e351e0]{min-width:4rem;flex-shrink:0}.llm-model-error[data-v-13e351e0]{width:100%;font-size:.75rem;color:var(--llm-error, #ef4444)}.llm-thinking-toggle[data-v-13e351e0]{display:block;width:100%;margin-top:.5rem}.llm-temperature-field[data-v-13e351e0]{display:flex;flex-direction:column}.llm-field-note[data-v-13e351e0]{display:block;margin-top:.5rem;font-size:.75rem;color:var(--llm-text-dim, #9aa0a6);font-style:italic}.llm-checkbox-label[data-v-13e351e0]{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:500;color:var(--llm-text, #e6e8ea);font-size:var(--llm-font-size-sm, .85rem)}.llm-checkbox[data-v-13e351e0]{width:1rem;height:1rem;cursor:pointer}.llm-security-note[data-v-13e351e0]{display:block;font-size:.75rem;color:var(--llm-text-dim, #9aa0a6)}.llm-modal-footer[data-v-13e351e0]{display:flex;align-items:center;gap:.5rem;padding:1.5rem;border-top:1px solid var(--llm-border, #33383f);flex-shrink:0}.llm-footer-spacer[data-v-13e351e0]{flex:1}.llm-empty-state[data-v-13e351e0]{text-align:center;padding:2rem;color:var(--llm-text-dim, #9aa0a6)}.llm-empty-state p[data-v-13e351e0]{margin:.5rem 0;font-size:.9rem}.llm-keys-manager-overlay[data-v-13e351e0]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1001}.llm-keys-manager-content[data-v-13e351e0]{width:90%;max-width:600px;max-height:80vh;border:2px solid var(--llm-border, #33383f);border-radius:var(--llm-radius-md, 8px);overflow:hidden}.llm-test-result[data-v-13e351e0]{margin-top:1rem;padding:.75rem 1rem;border-radius:var(--llm-radius-sm, 4px);font-size:var(--llm-font-size-sm, .85rem)}.llm-test-result--success[data-v-13e351e0]{background:color-mix(in srgb,var(--llm-success, #10b981) 15%,transparent);border:1px solid var(--llm-success, #10b981);color:var(--llm-success, #10b981)}.llm-test-result--error[data-v-13e351e0]{background:color-mix(in srgb,var(--llm-error, #ef4444) 15%,transparent);border:1px solid var(--llm-error, #ef4444);color:var(--llm-error, #ef4444)}@media(max-width:768px){.llm-modal[data-v-13e351e0]{width:95%;margin:1rem}.llm-modal-body[data-v-13e351e0],.llm-modal-header[data-v-13e351e0],.llm-modal-footer[data-v-13e351e0]{padding:1rem}.llm-provider-item[data-v-13e351e0]{flex-direction:column;align-items:stretch;gap:.75rem;padding:.75rem}.llm-provider-actions[data-v-13e351e0]{width:100%;justify-content:flex-end}.llm-form-grid[data-v-13e351e0]{grid-template-columns:1fr;gap:.5rem}.llm-field-label[data-v-13e351e0]{padding-top:0;margin-top:.5rem}.llm-active-badge[data-v-13e351e0],.llm-judge-badge[data-v-13e351e0]{top:-8px;font-size:.55rem;padding:.15rem .4rem}.llm-judge-badge[data-v-13e351e0]{left:66px}}@media(max-width:480px){.llm-modal[data-v-13e351e0]{width:98%;margin:.5rem}.llm-modal-body[data-v-13e351e0],.llm-modal-header[data-v-13e351e0],.llm-modal-footer[data-v-13e351e0]{padding:.75rem}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anvaka/vue-llm",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "Browser-only LLM client with provider adapters and Vue 3 components",
5
5
  "type": "module",
6
6
  "license": "MIT",