comisai 1.0.16 → 1.0.18

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 (90) hide show
  1. package/node_modules/@comis/agent/package.json +1 -1
  2. package/node_modules/@comis/channels/package.json +1 -1
  3. package/node_modules/@comis/cli/dist/wizard/non-interactive.js +1 -0
  4. package/node_modules/@comis/cli/dist/wizard/steps/01-detect-existing.js +2 -0
  5. package/node_modules/@comis/cli/dist/wizard/steps/07-gateway.js +9 -0
  6. package/node_modules/@comis/cli/dist/wizard/steps/10-write-config.js +2 -0
  7. package/node_modules/@comis/cli/dist/wizard/steps/12-finish.js +5 -2
  8. package/node_modules/@comis/cli/dist/wizard/types.d.ts +1 -0
  9. package/node_modules/@comis/cli/package.json +1 -1
  10. package/node_modules/@comis/core/dist/config/schema-gateway.d.ts +17 -2
  11. package/node_modules/@comis/core/dist/config/schema-gateway.js +11 -0
  12. package/node_modules/@comis/core/dist/config/schema.d.ts +60 -57
  13. package/node_modules/@comis/core/package.json +1 -1
  14. package/node_modules/@comis/daemon/dist/wiring/setup-gateway.js +34 -6
  15. package/node_modules/@comis/daemon/package.json +1 -1
  16. package/node_modules/@comis/gateway/package.json +1 -1
  17. package/node_modules/@comis/infra/package.json +1 -1
  18. package/node_modules/@comis/memory/package.json +1 -1
  19. package/node_modules/@comis/scheduler/package.json +1 -1
  20. package/node_modules/@comis/shared/package.json +1 -1
  21. package/node_modules/@comis/skills/package.json +1 -1
  22. package/node_modules/@comis/web/dist/android-chrome-192x192.png +0 -0
  23. package/node_modules/@comis/web/dist/android-chrome-512x512.png +0 -0
  24. package/node_modules/@comis/web/dist/apple-touch-icon.png +0 -0
  25. package/node_modules/@comis/web/dist/assets/agent-detail-BG9MGWWj.js +615 -0
  26. package/node_modules/@comis/web/dist/assets/agent-editor-C26Q_xCs.js +2173 -0
  27. package/node_modules/@comis/web/dist/assets/agent-list-LHCJ4rw2.js +504 -0
  28. package/node_modules/@comis/web/dist/assets/approvals-q9VH_IKr.js +54 -0
  29. package/node_modules/@comis/web/dist/assets/billing-view-CtYvBqTE.js +375 -0
  30. package/node_modules/@comis/web/dist/assets/channel-detail-CaInesJM.js +681 -0
  31. package/node_modules/@comis/web/dist/assets/channel-list-B8dj3O9a.js +323 -0
  32. package/node_modules/@comis/web/dist/assets/chat-console-CNmzl0JW.js +943 -0
  33. package/node_modules/@comis/web/dist/assets/config-editor-DX4ITw6y.js +1374 -0
  34. package/node_modules/@comis/web/dist/assets/context-dag-browser-BwiaF5tf.js +393 -0
  35. package/node_modules/@comis/web/dist/assets/context-engine-BZ5Am6hA.js +393 -0
  36. package/node_modules/@comis/web/dist/assets/delivery-view-OfBZof-m.js +392 -0
  37. package/node_modules/@comis/web/dist/assets/diagnostics-view-YFwCxgr2.js +231 -0
  38. package/node_modules/@comis/web/dist/assets/directive-DoeGSK_T.js +1 -0
  39. package/node_modules/@comis/web/dist/assets/extract-variables-BM5qyK-s.js +149 -0
  40. package/node_modules/@comis/web/dist/assets/ic-array-editor-B7m6x7-S.js +118 -0
  41. package/node_modules/@comis/web/dist/assets/ic-breadcrumb-CUMpp3BL.js +75 -0
  42. package/node_modules/@comis/web/dist/assets/ic-budget-segment-bar-BtJ6x5mN.js +64 -0
  43. package/node_modules/@comis/web/dist/assets/ic-chat-message-CFyDJd0z.js +352 -0
  44. package/node_modules/@comis/web/dist/assets/ic-confirm-dialog-CCDbB04e.js +110 -0
  45. package/node_modules/@comis/web/dist/assets/ic-connection-dot-CnT1b8xr.js +54 -0
  46. package/node_modules/@comis/web/dist/assets/ic-data-table-CKUNTxHw.js +277 -0
  47. package/node_modules/@comis/web/dist/assets/ic-delivery-row-GP5Fkygs.js +67 -0
  48. package/node_modules/@comis/web/dist/assets/ic-detail-panel-BF83r-if.js +116 -0
  49. package/node_modules/@comis/web/dist/assets/ic-empty-state-60l2ePhd.js +52 -0
  50. package/node_modules/@comis/web/dist/assets/ic-graph-canvas-C8FuSMe1.js +359 -0
  51. package/node_modules/@comis/web/dist/assets/ic-icon-xeGTVhVG.js +33 -0
  52. package/node_modules/@comis/web/dist/assets/ic-layer-waterfall-COvEYMg5.js +69 -0
  53. package/node_modules/@comis/web/dist/assets/ic-relative-time-3FqpjeAI.js +12 -0
  54. package/node_modules/@comis/web/dist/assets/ic-search-input-CSOxY9g7.js +92 -0
  55. package/node_modules/@comis/web/dist/assets/ic-select-Ce-Raudx.js +127 -0
  56. package/node_modules/@comis/web/dist/assets/ic-tabs-B7QtM_v8.js +95 -0
  57. package/node_modules/@comis/web/dist/assets/ic-tag-CPPUnDLF.js +33 -0
  58. package/node_modules/@comis/web/dist/assets/ic-time-range-picker-CypCT68y.js +93 -0
  59. package/node_modules/@comis/web/dist/assets/ic-tool-call-7MaXSsCW.js +146 -0
  60. package/node_modules/@comis/web/dist/assets/index-CEcM1R_C.js +2830 -0
  61. package/node_modules/@comis/web/dist/assets/index-CIJFuItj.css +1 -0
  62. package/node_modules/@comis/web/dist/assets/mcp-management-BNZPnpDn.js +582 -0
  63. package/node_modules/@comis/web/dist/assets/media-config-BBvTYxOX.js +314 -0
  64. package/node_modules/@comis/web/dist/assets/media-test-BkK3RCRK.js +496 -0
  65. package/node_modules/@comis/web/dist/assets/memory-inspector-1hDGCGat.js +1139 -0
  66. package/node_modules/@comis/web/dist/assets/message-center-CXefwsUu.js +785 -0
  67. package/node_modules/@comis/web/dist/assets/models-C1qcU_j3.js +894 -0
  68. package/node_modules/@comis/web/dist/assets/observability-types-D7jUtSde.js +1 -0
  69. package/node_modules/@comis/web/dist/assets/observe-view-C0VBhX4C.js +814 -0
  70. package/node_modules/@comis/web/dist/assets/pipeline-builder-DcUUIrm0.js +1496 -0
  71. package/node_modules/@comis/web/dist/assets/pipeline-history-DkfOQ6SW.js +317 -0
  72. package/node_modules/@comis/web/dist/assets/pipeline-history-detail-hyHgD0ai.js +287 -0
  73. package/node_modules/@comis/web/dist/assets/pipeline-list-BPW8hV-q.js +518 -0
  74. package/node_modules/@comis/web/dist/assets/pipeline-monitor-Bip16T7e.js +972 -0
  75. package/node_modules/@comis/web/dist/assets/scheduler-BGgwKd06.js +1182 -0
  76. package/node_modules/@comis/web/dist/assets/security-D15st4xx.js +1224 -0
  77. package/node_modules/@comis/web/dist/assets/session-detail-SGEYNJ0M.js +632 -0
  78. package/node_modules/@comis/web/dist/assets/session-key-parser-DPORMVyU.js +1 -0
  79. package/node_modules/@comis/web/dist/assets/session-list-6ybUTxbY.js +231 -0
  80. package/node_modules/@comis/web/dist/assets/setup-wizard-nT0tz9QP.js +853 -0
  81. package/node_modules/@comis/web/dist/assets/skills-D8yVfSUy.js +1051 -0
  82. package/node_modules/@comis/web/dist/assets/subagents-HHXMeHYo.js +193 -0
  83. package/node_modules/@comis/web/dist/assets/workspace-manager-BQlr10iH.js +785 -0
  84. package/node_modules/@comis/web/dist/comis-logo.png +0 -0
  85. package/node_modules/@comis/web/dist/favicon-16x16.png +0 -0
  86. package/node_modules/@comis/web/dist/favicon-32x32.png +0 -0
  87. package/node_modules/@comis/web/dist/favicon.ico +0 -0
  88. package/node_modules/@comis/web/dist/index.html +17 -0
  89. package/node_modules/@comis/web/package.json +29 -0
  90. package/package.json +15 -13
@@ -0,0 +1,92 @@
1
+ import{s as u,f as d,i as h,n as o,a as p,b,t as v}from"./index-CEcM1R_C.js";var f=Object.defineProperty,m=Object.getOwnPropertyDescriptor,a=(e,r,c,n)=>{for(var t=n>1?void 0:n?m(r,c):r,s=e.length-1,l;s>=0;s--)(l=e[s])&&(t=(n?l(r,c,t):l(t))||t);return n&&t&&f(r,c,t),t};let i=class extends p{constructor(){super(...arguments),this.value="",this.placeholder="Search...",this.debounce=300,this.disabled=!1,this._debounceTimer=null}disconnectedCallback(){super.disconnectedCallback(),this._cancelDebounce()}_cancelDebounce(){this._debounceTimer!==null&&(clearTimeout(this._debounceTimer),this._debounceTimer=null)}_onInput(e){const r=e.target;this.value=r.value,this._cancelDebounce(),this._debounceTimer=setTimeout(()=>{this._fireSearch()},this.debounce)}_onKeyDown(e){e.key==="Enter"&&(e.preventDefault(),this._cancelDebounce(),this._fireSearch())}_onClear(){this.value="",this._cancelDebounce(),this._fireSearch(),this.shadowRoot?.querySelector("input")?.focus()}_fireSearch(){this.dispatchEvent(new CustomEvent("search",{detail:this.value}))}render(){return b`
2
+ <div class="container">
3
+ <span class="search-icon" aria-hidden="true">\u{1F50D}</span>
4
+ <input
5
+ type="text"
6
+ role="searchbox"
7
+ aria-label="Search"
8
+ .value=${this.value}
9
+ placeholder=${this.placeholder}
10
+ ?disabled=${this.disabled}
11
+ @input=${this._onInput}
12
+ @keydown=${this._onKeyDown}
13
+ />
14
+ <button
15
+ class="clear-btn"
16
+ aria-label="Clear search"
17
+ ?hidden=${!this.value}
18
+ @click=${this._onClear}
19
+ >\u2715</button>
20
+ </div>
21
+ `}};i.styles=[u,d,h`
22
+ :host {
23
+ display: block;
24
+ }
25
+
26
+ .container {
27
+ position: relative;
28
+ display: flex;
29
+ align-items: center;
30
+ }
31
+
32
+ .search-icon {
33
+ position: absolute;
34
+ left: var(--ic-space-sm);
35
+ color: var(--ic-text-dim);
36
+ font-size: var(--ic-text-sm);
37
+ pointer-events: none;
38
+ line-height: 1;
39
+ }
40
+
41
+ input {
42
+ width: 100%;
43
+ background: var(--ic-surface-2);
44
+ border: 1px solid var(--ic-border);
45
+ border-radius: var(--ic-radius-md);
46
+ color: var(--ic-text);
47
+ font-family: inherit;
48
+ font-size: var(--ic-text-sm);
49
+ padding: var(--ic-space-sm) var(--ic-space-lg);
50
+ padding-left: calc(var(--ic-space-sm) + 1.25rem);
51
+ transition: border-color var(--ic-transition);
52
+ }
53
+
54
+ input::placeholder {
55
+ color: var(--ic-text-dim);
56
+ }
57
+
58
+ input:focus {
59
+ outline: none;
60
+ border-color: var(--ic-accent);
61
+ }
62
+
63
+ input:disabled {
64
+ opacity: 0.5;
65
+ cursor: not-allowed;
66
+ }
67
+
68
+ .clear-btn {
69
+ position: absolute;
70
+ right: var(--ic-space-sm);
71
+ background: none;
72
+ border: none;
73
+ color: var(--ic-text-dim);
74
+ cursor: pointer;
75
+ padding: 2px;
76
+ font-size: var(--ic-text-xs);
77
+ line-height: 1;
78
+ border-radius: var(--ic-radius-sm);
79
+ transition: color var(--ic-transition);
80
+ display: flex;
81
+ align-items: center;
82
+ justify-content: center;
83
+ }
84
+
85
+ .clear-btn:hover {
86
+ color: var(--ic-text);
87
+ }
88
+
89
+ .clear-btn[hidden] {
90
+ display: none;
91
+ }
92
+ `];a([o()],i.prototype,"value",2);a([o()],i.prototype,"placeholder",2);a([o({type:Number})],i.prototype,"debounce",2);a([o({type:Boolean})],i.prototype,"disabled",2);i=a([v("ic-search-input")],i);
@@ -0,0 +1,127 @@
1
+ import{s as u,f as v,i as f,n as c,a as g,A as h,b as d,t as y}from"./index-CEcM1R_C.js";var x=Object.defineProperty,m=Object.getOwnPropertyDescriptor,b=(e,a,s,r)=>{for(var t=r>1?void 0:r?m(a,s):a,i=e.length-1,l;i>=0;i--)(l=e[i])&&(t=(r?l(a,s,t):l(t))||t);return r&&t&&x(a,s,t),t};let n=class extends g{constructor(){super(...arguments),this.label="",this.checked=!1,this.disabled=!1}_toggle(){this.disabled||(this.checked=!this.checked,this.dispatchEvent(new CustomEvent("change",{detail:this.checked,bubbles:!0,composed:!0})))}_onKeyDown(e){(e.key===" "||e.key==="Enter")&&(e.preventDefault(),this._toggle())}render(){return d`
2
+ ${this.label?d`<span class="toggle-label" ?data-disabled=${this.disabled} @click=${()=>this._toggle()}>${this.label}</span>`:h}
3
+ <div
4
+ class="track"
5
+ role="switch"
6
+ tabindex=${this.disabled?-1:0}
7
+ aria-checked=${this.checked?"true":"false"}
8
+ aria-label=${this.label||h}
9
+ ?data-checked=${this.checked}
10
+ ?data-disabled=${this.disabled}
11
+ @click=${()=>this._toggle()}
12
+ @keydown=${this._onKeyDown}
13
+ >
14
+ <div class="thumb"></div>
15
+ </div>
16
+ `}};n.styles=[u,v,f`
17
+ :host {
18
+ display: inline-flex;
19
+ align-items: center;
20
+ gap: var(--ic-space-sm);
21
+ }
22
+
23
+ .toggle-label {
24
+ font-size: var(--ic-text-sm);
25
+ color: var(--ic-text-muted);
26
+ cursor: pointer;
27
+ user-select: none;
28
+ }
29
+
30
+ .toggle-label[data-disabled] {
31
+ opacity: 0.5;
32
+ cursor: not-allowed;
33
+ }
34
+
35
+ .track {
36
+ position: relative;
37
+ width: 36px;
38
+ height: 20px;
39
+ border-radius: 10px;
40
+ background: var(--ic-surface-2);
41
+ border: 1px solid var(--ic-border);
42
+ cursor: pointer;
43
+ transition: background var(--ic-transition), border-color var(--ic-transition);
44
+ flex-shrink: 0;
45
+ }
46
+
47
+ .track[data-checked] {
48
+ background: var(--ic-accent);
49
+ border-color: var(--ic-accent);
50
+ }
51
+
52
+ .track[data-disabled] {
53
+ opacity: 0.5;
54
+ cursor: not-allowed;
55
+ }
56
+
57
+ .track:focus-visible {
58
+ outline: 2px solid var(--ic-accent);
59
+ outline-offset: 2px;
60
+ }
61
+
62
+ .thumb {
63
+ position: absolute;
64
+ top: 1px;
65
+ left: 1px;
66
+ width: 16px;
67
+ height: 16px;
68
+ border-radius: 50%;
69
+ background: var(--ic-text);
70
+ transition: transform var(--ic-transition);
71
+ }
72
+
73
+ .track[data-checked] .thumb {
74
+ transform: translateX(16px);
75
+ }
76
+ `];b([c()],n.prototype,"label",2);b([c({type:Boolean})],n.prototype,"checked",2);b([c({type:Boolean})],n.prototype,"disabled",2);n=b([y("ic-toggle")],n);var $=Object.defineProperty,_=Object.getOwnPropertyDescriptor,p=(e,a,s,r)=>{for(var t=r>1?void 0:r?_(a,s):a,i=e.length-1,l;i>=0;i--)(l=e[i])&&(t=(r?l(a,s,t):l(t))||t);return r&&t&&$(a,s,t),t};let o=class extends g{constructor(){super(...arguments),this.label="",this.value="",this.options=[],this.disabled=!1}_onChange(e){const a=e.target.value;this.dispatchEvent(new CustomEvent("change",{detail:a,bubbles:!0,composed:!0}))}render(){return d`
77
+ <div class="select-wrapper">
78
+ ${this.label?d`<label>${this.label}</label>`:h}
79
+ <select
80
+ .value=${this.value}
81
+ ?disabled=${this.disabled}
82
+ aria-label=${this.label||h}
83
+ @change=${this._onChange}
84
+ >
85
+ ${this.options.map(e=>d`<option value=${e.value} ?selected=${e.value===this.value}>${e.label}</option>`)}
86
+ </select>
87
+ </div>
88
+ `}};o.styles=[u,v,f`
89
+ :host {
90
+ display: block;
91
+ }
92
+
93
+ .select-wrapper {
94
+ display: flex;
95
+ flex-direction: column;
96
+ gap: var(--ic-space-xs);
97
+ }
98
+
99
+ label {
100
+ font-size: var(--ic-text-sm);
101
+ font-weight: 500;
102
+ color: var(--ic-text-muted);
103
+ }
104
+
105
+ select {
106
+ padding: 0.5rem 0.75rem;
107
+ background: var(--ic-surface-2);
108
+ border: 1px solid var(--ic-border);
109
+ border-radius: var(--ic-radius-md);
110
+ color: var(--ic-text);
111
+ font-family: inherit;
112
+ font-size: var(--ic-text-sm);
113
+ cursor: pointer;
114
+ appearance: auto;
115
+ transition: border-color var(--ic-transition);
116
+ }
117
+
118
+ select:focus {
119
+ outline: none;
120
+ border-color: var(--ic-accent);
121
+ }
122
+
123
+ select:disabled {
124
+ opacity: 0.5;
125
+ cursor: not-allowed;
126
+ }
127
+ `];p([c()],o.prototype,"label",2);p([c()],o.prototype,"value",2);p([c({type:Array})],o.prototype,"options",2);p([c({type:Boolean})],o.prototype,"disabled",2);o=p([y("ic-select")],o);
@@ -0,0 +1,95 @@
1
+ import{s as b,f as p,i as h,n as d,a as v,A as f,b as n,t as u}from"./index-CEcM1R_C.js";var g=Object.defineProperty,m=Object.getOwnPropertyDescriptor,l=(e,t,a,i)=>{for(var s=i>1?void 0:i?m(t,a):t,o=e.length-1,c;o>=0;o--)(c=e[o])&&(s=(i?c(t,a,s):c(s))||s);return i&&s&&g(t,a,s),s};let r=class extends v{constructor(){super(...arguments),this.tabs=[],this.activeTab=""}willUpdate(e){(!this.activeTab||e.has("tabs"))&&this.tabs.length>0&&!this.activeTab&&(this.activeTab=this.tabs[0].id)}updated(e){this._updatePanelVisibility()}_updatePanelVisibility(){const e=this.shadowRoot?.querySelector("slot:not([name])");if(!e)return;const t=e.assignedElements();for(const a of t){const i=a.dataset.tab;i&&(i===this.activeTab?a.setAttribute("data-active",""):a.removeAttribute("data-active"))}}_selectTab(e){e!==this.activeTab&&(this.activeTab=e,this.dispatchEvent(new CustomEvent("tab-change",{detail:e})))}_onTabKeyDown(e){const t=Array.from(this.shadowRoot?.querySelectorAll('[role="tab"]')??[]),a=t.indexOf(e.target);if(a<0)return;let i=-1;switch(e.key){case"ArrowLeft":e.preventDefault(),i=a>0?a-1:t.length-1;break;case"ArrowRight":e.preventDefault(),i=a<t.length-1?a+1:0;break;case"Home":e.preventDefault(),i=0;break;case"End":e.preventDefault(),i=t.length-1;break;default:return}if(i>=0&&i<t.length){t[i].focus();const s=this.tabs[i]?.id;s&&this._selectTab(s)}}render(){const e=this.activeTab||(this.tabs.length>0?this.tabs[0].id:"");return n`
2
+ <div class="tablist" role="tablist">
3
+ ${this.tabs.map(t=>{const a=t.id===e;return n`
4
+ <button
5
+ role="tab"
6
+ id="tab-${t.id}"
7
+ class="tab ${a?"tab--active":""}"
8
+ aria-selected=${a?"true":"false"}
9
+ aria-controls="panel-${t.id}"
10
+ tabindex=${a?"0":"-1"}
11
+ @click=${()=>this._selectTab(t.id)}
12
+ @keydown=${this._onTabKeyDown}
13
+ >
14
+ ${t.label}
15
+ ${t.badge&&t.badge>0?n`<span class="badge">${t.badge}</span>`:f}
16
+ </button>
17
+ `})}
18
+ </div>
19
+ <div class="panels">
20
+ ${this.tabs.map(t=>{const a=t.id===e;return n`
21
+ <div
22
+ role="tabpanel"
23
+ id="panel-${t.id}"
24
+ aria-labelledby="tab-${t.id}"
25
+ ?hidden=${!a}
26
+ >
27
+ <slot name=${t.id}></slot>
28
+ </div>
29
+ `})}
30
+ <slot @slotchange=${this._updatePanelVisibility}></slot>
31
+ </div>
32
+ `}};r.styles=[b,p,h`
33
+ :host {
34
+ display: block;
35
+ }
36
+
37
+ .tablist {
38
+ display: flex;
39
+ border-bottom: 1px solid var(--ic-border);
40
+ gap: 0;
41
+ }
42
+
43
+ .tab {
44
+ padding: var(--ic-space-sm) var(--ic-space-md);
45
+ font-size: var(--ic-text-sm);
46
+ font-family: inherit;
47
+ background: none;
48
+ border: none;
49
+ border-bottom: 2px solid transparent;
50
+ color: var(--ic-text-muted);
51
+ cursor: pointer;
52
+ display: inline-flex;
53
+ align-items: center;
54
+ gap: var(--ic-space-xs);
55
+ transition: color var(--ic-transition), border-color var(--ic-transition);
56
+ white-space: nowrap;
57
+ }
58
+
59
+ .tab:hover:not(.tab--active) {
60
+ color: var(--ic-text);
61
+ }
62
+
63
+ .tab--active {
64
+ color: var(--ic-accent);
65
+ border-bottom-color: var(--ic-accent);
66
+ font-weight: 500;
67
+ }
68
+
69
+ .badge {
70
+ display: inline-flex;
71
+ align-items: center;
72
+ justify-content: center;
73
+ min-width: 1.25rem;
74
+ height: 1.25rem;
75
+ padding: 0 var(--ic-space-xs);
76
+ background: var(--ic-accent);
77
+ color: #fff;
78
+ font-size: var(--ic-text-xs);
79
+ font-weight: 600;
80
+ border-radius: 9999px;
81
+ line-height: 1;
82
+ }
83
+
84
+ .panels {
85
+ margin-top: var(--ic-space-md);
86
+ }
87
+
88
+ ::slotted([data-tab]) {
89
+ display: none;
90
+ }
91
+
92
+ ::slotted([data-tab][data-active]) {
93
+ display: block;
94
+ }
95
+ `];l([d({type:Array})],r.prototype,"tabs",2);l([d()],r.prototype,"activeTab",2);r=l([u("ic-tabs")],r);
@@ -0,0 +1,33 @@
1
+ import{s as g,i as v,n as p,a as d,b as m,t as f}from"./index-CEcM1R_C.js";var u=Object.defineProperty,h=Object.getOwnPropertyDescriptor,o=(r,s,i,t)=>{for(var a=t>1?void 0:t?h(s,i):s,c=r.length-1,n;c>=0;c--)(n=r[c])&&(a=(t?n(s,i,a):n(a))||a);return t&&a&&u(s,i,a),a};const l={default:"var(--ic-text-muted)",success:"var(--ic-success)",warning:"var(--ic-warning)",error:"var(--ic-error)",info:"var(--ic-info)",accent:"var(--ic-accent)",telegram:"var(--ic-telegram)",discord:"var(--ic-discord)",slack:"var(--ic-slack)",whatsapp:"var(--ic-whatsapp)",line:"var(--ic-line)",signal:"var(--ic-signal)",imessage:"var(--ic-imessage)",irc:"var(--ic-irc)"};let e=class extends d{constructor(){super(...arguments),this.variant="default",this.size="sm"}render(){const r=l[this.variant]??l.default,s=this.size==="md"?"tag--md":"tag--sm";return m`
2
+ <span
3
+ class="tag ${s}"
4
+ style="background-color: color-mix(in srgb, ${r} 10%, transparent); color: ${r};"
5
+ >
6
+ <slot></slot>
7
+ </span>
8
+ `}};e.styles=[g,v`
9
+ :host {
10
+ display: inline-block;
11
+ }
12
+
13
+ .tag {
14
+ display: inline-flex;
15
+ align-items: center;
16
+ border-radius: 9999px;
17
+ font-weight: 500;
18
+ white-space: nowrap;
19
+ line-height: 1;
20
+ }
21
+
22
+ .tag--sm {
23
+ padding: 2px 8px;
24
+ font-size: var(--ic-text-xs);
25
+ text-transform: uppercase;
26
+ letter-spacing: 0.02em;
27
+ }
28
+
29
+ .tag--md {
30
+ padding: 4px 12px;
31
+ font-size: var(--ic-text-sm);
32
+ }
33
+ `];o([p()],e.prototype,"variant",2);o([p()],e.prototype,"size",2);e=o([f("ic-tag")],e);
@@ -0,0 +1,93 @@
1
+ import{s as d,f as m,i as v,n as p,r as u,a as b,A as h,b as l,t as f}from"./index-CEcM1R_C.js";var g=Object.defineProperty,_=Object.getOwnPropertyDescriptor,r=(e,a,o,i)=>{for(var t=i>1?void 0:i?_(a,o):a,c=e.length-1,n;c>=0;c--)(n=e[c])&&(t=(i?n(a,o,t):n(t))||t);return i&&t&&g(a,o,t),t};const x=[{label:"Today",sinceMs:864e5},{label:"7d",sinceMs:6048e5},{label:"30d",sinceMs:2592e6},{label:"Custom",sinceMs:0}];let s=class extends b{constructor(){super(...arguments),this.selected="7d",this.presets=x,this._customFrom="",this._customTo=""}_onPresetClick(e){this.selected=e.label,e.label!=="Custom"&&this.dispatchEvent(new CustomEvent("time-range-change",{detail:{sinceMs:e.sinceMs,label:e.label},bubbles:!0,composed:!0}))}_onCustomDateChange(){if(!this._customFrom||!this._customTo)return;const e=new Date(this._customFrom).getTime(),a=Date.now()-e;this.dispatchEvent(new CustomEvent("time-range-change",{detail:{sinceMs:a,label:"Custom"},bubbles:!0,composed:!0}))}render(){return l`
2
+ <div class="presets">
3
+ ${this.presets.map(e=>l`
4
+ <button
5
+ class="preset ${this.selected===e.label?"preset--active":"preset--inactive"}"
6
+ @click=${()=>this._onPresetClick(e)}
7
+ >
8
+ ${e.label}
9
+ </button>
10
+ `)}
11
+ </div>
12
+ ${this.selected==="Custom"?l`
13
+ <div class="custom-dates">
14
+ <span class="date-label">From</span>
15
+ <input
16
+ type="date"
17
+ class="date-input"
18
+ .value=${this._customFrom}
19
+ @change=${e=>{this._customFrom=e.target.value,this._onCustomDateChange()}}
20
+ />
21
+ <span class="date-label">To</span>
22
+ <input
23
+ type="date"
24
+ class="date-input"
25
+ .value=${this._customTo}
26
+ @change=${e=>{this._customTo=e.target.value,this._onCustomDateChange()}}
27
+ />
28
+ </div>
29
+ `:h}
30
+ `}};s.styles=[d,m,v`
31
+ :host {
32
+ display: block;
33
+ }
34
+
35
+ .presets {
36
+ display: flex;
37
+ flex-wrap: wrap;
38
+ gap: var(--ic-space-xs);
39
+ }
40
+
41
+ .preset {
42
+ border-radius: 9999px;
43
+ padding: 0.25rem 0.75rem;
44
+ font-size: var(--ic-text-xs);
45
+ cursor: pointer;
46
+ transition: all 0.15s;
47
+ font-family: inherit;
48
+ line-height: 1.5;
49
+ }
50
+
51
+ .preset--active {
52
+ background: var(--ic-accent);
53
+ color: var(--ic-bg, #0f172a);
54
+ border: 1px solid var(--ic-accent);
55
+ }
56
+
57
+ .preset--inactive {
58
+ background: transparent;
59
+ color: var(--ic-text-dim);
60
+ border: 1px solid var(--ic-border);
61
+ }
62
+
63
+ .preset--inactive:hover {
64
+ border-color: var(--ic-text-dim);
65
+ }
66
+
67
+ .custom-dates {
68
+ display: flex;
69
+ gap: var(--ic-space-sm);
70
+ margin-top: var(--ic-space-sm);
71
+ align-items: center;
72
+ }
73
+
74
+ .date-label {
75
+ font-size: var(--ic-text-xs);
76
+ color: var(--ic-text-dim);
77
+ }
78
+
79
+ .date-input {
80
+ background: var(--ic-surface);
81
+ border: 1px solid var(--ic-border);
82
+ color: var(--ic-text);
83
+ border-radius: var(--ic-radius-sm, 4px);
84
+ padding: 0.25rem 0.5rem;
85
+ font-size: var(--ic-text-xs);
86
+ font-family: inherit;
87
+ }
88
+
89
+ .date-input:focus {
90
+ outline: 2px solid var(--ic-accent);
91
+ outline-offset: 1px;
92
+ }
93
+ `];r([p({type:String})],s.prototype,"selected",2);r([p({attribute:!1})],s.prototype,"presets",2);r([u()],s.prototype,"_customFrom",2);r([u()],s.prototype,"_customTo",2);s=r([f("ic-time-range-picker")],s);
@@ -0,0 +1,146 @@
1
+ import{s as h,f,i as v,n as l,r as m,a as x,b as o,A as d,t as g}from"./index-CEcM1R_C.js";import"./ic-chat-message-CFyDJd0z.js";import"./ic-icon-xeGTVhVG.js";function b(e){return e.replace(/\b(?:NO_REPLY|HEARTBEAT_OK)\b/g,"").trim()}function y(e){if(!e.includes("[System context]")&&!e.includes("[End system context]"))return e;const t="[End system context]",i=e.lastIndexOf(t);if(i===-1)return e;const n=e.slice(i+t.length),s=n.match(/\s*\[[\w-]+\]\s+\S+\s+\([^)]*\):\s*/);if(s){const c=n.indexOf(s[0])+s[0].length;return n.slice(c).trim()}return n.trim()}function S(e,t){return t==="assistant"?b(e):t==="user"?y(e):e}var w=Object.defineProperty,_=Object.getOwnPropertyDescriptor,a=(e,t,i,n)=>{for(var s=n>1?void 0:n?_(t,i):t,c=e.length-1,u;c>=0;c--)(u=e[c])&&(s=(n?u(t,i,s):u(s))||s);return n&&s&&w(t,i,s),s};function p(e){if(e==null)return"";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}let r=class extends x{constructor(){super(...arguments),this.toolName="",this.input=null,this.output=null,this.expanded=!1,this.status="success",this._showFullOutput=!1}_toggleExpanded(){this.expanded=!this.expanded}_handleHeaderKeyDown(e){(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),this._toggleExpanded())}_renderStatus(){switch(this.status){case"running":return o`<ic-loading size="sm"></ic-loading>`;case"success":return o`<ic-icon name="check" size="16px" color="var(--ic-success)"></ic-icon>`;case"error":return o`<ic-icon name="x" size="16px" color="var(--ic-error)"></ic-icon>`}}_renderBody(){return this.expanded?o`
2
+ <div class="body">
3
+ ${this.input!=null?o`
4
+ <div class="section">
5
+ <div class="section-label">Input</div>
6
+ <ic-code-block
7
+ language=${typeof this.input=="string"?"":"json"}
8
+ .code=${p(this.input)}
9
+ ></ic-code-block>
10
+ </div>
11
+ `:d}
12
+ ${this.output!=null?this._renderOutput():d}
13
+ </div>
14
+ `:d}_renderOutput(){const e=p(this.output),t=e.length>500&&!this._showFullOutput,i=t?e.slice(0,500)+"... (truncated)":e;return o`
15
+ <div class="section">
16
+ <div class="section-label">Output</div>
17
+ <ic-code-block
18
+ language=${typeof this.output=="string"?"":"json"}
19
+ .code=${i}
20
+ ></ic-code-block>
21
+ ${t?o`
22
+ <button class="show-full" @click=${()=>{this._showFullOutput=!0}}>
23
+ Show full
24
+ </button>
25
+ `:d}
26
+ </div>
27
+ `}render(){const e=this.expanded?"chevron chevron--expanded":"chevron";return o`
28
+ <div
29
+ class="container"
30
+ role="group"
31
+ aria-label="Tool call: ${this.toolName}"
32
+ >
33
+ <button
34
+ class="header"
35
+ @click=${this._toggleExpanded}
36
+ @keydown=${this._handleHeaderKeyDown}
37
+ aria-expanded="${this.expanded}"
38
+ >
39
+ <span class=${e}>
40
+ <ic-icon name="chevron-right" size="16px"></ic-icon>
41
+ </span>
42
+ <span class="tool-icon">
43
+ <ic-icon name="skills" size="16px" color="var(--ic-text-muted)"></ic-icon>
44
+ </span>
45
+ <span class="tool-name">${this.toolName}</span>
46
+ <span class="status">${this._renderStatus()}</span>
47
+ </button>
48
+ ${this._renderBody()}
49
+ </div>
50
+ `}};r.styles=[h,f,v`
51
+ :host {
52
+ display: block;
53
+ }
54
+
55
+ .container {
56
+ background: var(--ic-surface);
57
+ border: 1px solid var(--ic-border);
58
+ border-radius: var(--ic-radius-md);
59
+ margin: var(--ic-space-xs) 0;
60
+ overflow: hidden;
61
+ }
62
+
63
+ .header {
64
+ display: flex;
65
+ align-items: center;
66
+ gap: var(--ic-space-sm);
67
+ padding: var(--ic-space-sm) var(--ic-space-md);
68
+ cursor: pointer;
69
+ border: none;
70
+ background: none;
71
+ width: 100%;
72
+ color: inherit;
73
+ font: inherit;
74
+ text-align: left;
75
+ transition: background var(--ic-transition);
76
+ }
77
+
78
+ .header:hover {
79
+ background: var(--ic-surface-2);
80
+ }
81
+
82
+ .chevron {
83
+ display: inline-flex;
84
+ color: var(--ic-text-dim);
85
+ transition: transform 150ms ease;
86
+ flex-shrink: 0;
87
+ }
88
+
89
+ .chevron--expanded {
90
+ transform: rotate(90deg);
91
+ }
92
+
93
+ .tool-icon {
94
+ flex-shrink: 0;
95
+ }
96
+
97
+ .tool-name {
98
+ font-family: var(--ic-font-mono);
99
+ font-size: var(--ic-text-sm);
100
+ color: var(--ic-text);
101
+ font-weight: 500;
102
+ flex: 1;
103
+ overflow: hidden;
104
+ text-overflow: ellipsis;
105
+ white-space: nowrap;
106
+ }
107
+
108
+ .status {
109
+ flex-shrink: 0;
110
+ display: inline-flex;
111
+ align-items: center;
112
+ }
113
+
114
+ .body {
115
+ border-top: 1px solid var(--ic-border);
116
+ padding: var(--ic-space-sm) var(--ic-space-md) var(--ic-space-md);
117
+ }
118
+
119
+ .section-label {
120
+ font-size: var(--ic-text-xs);
121
+ color: var(--ic-text-dim);
122
+ text-transform: uppercase;
123
+ letter-spacing: 0.04em;
124
+ font-weight: 500;
125
+ margin-bottom: var(--ic-space-xs);
126
+ }
127
+
128
+ .section + .section {
129
+ margin-top: var(--ic-space-sm);
130
+ }
131
+
132
+ .show-full {
133
+ background: none;
134
+ border: none;
135
+ color: var(--ic-accent);
136
+ cursor: pointer;
137
+ font-size: var(--ic-text-xs);
138
+ padding: 0;
139
+ margin-top: var(--ic-space-xs);
140
+ font-family: inherit;
141
+ }
142
+
143
+ .show-full:hover {
144
+ text-decoration: underline;
145
+ }
146
+ `];a([l()],r.prototype,"toolName",2);a([l({attribute:!1})],r.prototype,"input",2);a([l({attribute:!1})],r.prototype,"output",2);a([l({type:Boolean})],r.prototype,"expanded",2);a([l()],r.prototype,"status",2);a([m()],r.prototype,"_showFullOutput",2);r=a([g("ic-tool-call")],r);export{y as a,S as c,b as s};