comisai 1.0.24 → 1.0.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node_modules/@comis/agent/package.json +1 -1
- package/node_modules/@comis/channels/package.json +1 -1
- package/node_modules/@comis/cli/package.json +1 -1
- package/node_modules/@comis/core/dist/bootstrap.js +5 -0
- package/node_modules/@comis/core/dist/config/env-layer.d.ts +31 -0
- package/node_modules/@comis/core/dist/config/env-layer.js +41 -0
- package/node_modules/@comis/core/dist/config/layered.d.ts +9 -0
- package/node_modules/@comis/core/dist/config/layered.js +11 -0
- package/node_modules/@comis/core/package.json +1 -1
- package/node_modules/@comis/daemon/dist/daemon.js +3 -0
- package/node_modules/@comis/daemon/package.json +1 -1
- package/node_modules/@comis/gateway/package.json +1 -1
- package/node_modules/@comis/infra/package.json +1 -1
- package/node_modules/@comis/memory/package.json +1 -1
- package/node_modules/@comis/scheduler/package.json +1 -1
- package/node_modules/@comis/shared/package.json +1 -1
- package/node_modules/@comis/skills/package.json +1 -1
- package/node_modules/@comis/web/dist/assets/{agent-detail-BG9MGWWj.js → agent-detail-ru-AhppM.js} +270 -270
- package/node_modules/@comis/web/dist/assets/agent-editor-hjwRuFVp.js +2173 -0
- package/node_modules/@comis/web/dist/assets/{agent-list-LHCJ4rw2.js → agent-list-6Uotjatr.js} +170 -170
- package/node_modules/@comis/web/dist/assets/{approvals-q9VH_IKr.js → approvals-C-K6hN2U.js} +13 -13
- package/node_modules/@comis/web/dist/assets/billing-view-CxysXH0p.js +375 -0
- package/node_modules/@comis/web/dist/assets/{channel-detail-CaInesJM.js → channel-detail-BBCKtmne.js} +265 -265
- package/node_modules/@comis/web/dist/assets/channel-list-FkfeOLBQ.js +323 -0
- package/node_modules/@comis/web/dist/assets/{chat-console-CNmzl0JW.js → chat-console-BumBaIgO.js} +243 -246
- package/node_modules/@comis/web/dist/assets/{config-editor-DX4ITw6y.js → config-editor-C9BSwHGy.js} +477 -477
- package/node_modules/@comis/web/dist/assets/{context-dag-browser-BwiaF5tf.js → context-dag-browser-BHm00mJD.js} +105 -105
- package/node_modules/@comis/web/dist/assets/{context-engine-BZ5Am6hA.js → context-engine-BENY3pWE.js} +136 -136
- package/node_modules/@comis/web/dist/assets/decorate-BvWYovGE.js +38 -0
- package/node_modules/@comis/web/dist/assets/{delivery-view-OfBZof-m.js → delivery-view-BCnkPsAp.js} +134 -134
- package/node_modules/@comis/web/dist/assets/{diagnostics-view-YFwCxgr2.js → diagnostics-view-C_jQFG2H.js} +82 -82
- package/node_modules/@comis/web/dist/assets/directive-BOYXJ-K-.js +1 -0
- package/node_modules/@comis/web/dist/assets/{extract-variables-BM5qyK-s.js → extract-variables-B7-Doo7l.js} +39 -39
- package/node_modules/@comis/web/dist/assets/{ic-array-editor-B7m6x7-S.js → ic-array-editor-BLoEyeLS.js} +29 -29
- package/node_modules/@comis/web/dist/assets/{ic-breadcrumb-CUMpp3BL.js → ic-breadcrumb-DqN6G3gc.js} +16 -16
- package/node_modules/@comis/web/dist/assets/{ic-budget-segment-bar-BtJ6x5mN.js → ic-budget-segment-bar-zLsMzjDO.js} +20 -20
- package/node_modules/@comis/web/dist/assets/ic-chat-message-FdQcZsSQ.js +352 -0
- package/node_modules/@comis/web/dist/assets/{ic-confirm-dialog-CCDbB04e.js → ic-confirm-dialog-DGlPbV1T.js} +26 -26
- package/node_modules/@comis/web/dist/assets/{ic-connection-dot-CnT1b8xr.js → ic-connection-dot-BgYiK2N4.js} +13 -13
- package/node_modules/@comis/web/dist/assets/ic-data-table-CKIvr-ag.js +277 -0
- package/node_modules/@comis/web/dist/assets/ic-delivery-row-B3YwjjuM.js +67 -0
- package/node_modules/@comis/web/dist/assets/{ic-detail-panel-BF83r-if.js → ic-detail-panel-DiCe4hLr.js} +27 -27
- package/node_modules/@comis/web/dist/assets/{ic-empty-state-60l2ePhd.js → ic-empty-state-CM3Wbj2f.js} +19 -19
- package/node_modules/@comis/web/dist/assets/ic-graph-canvas-ByRjij68.js +359 -0
- package/node_modules/@comis/web/dist/assets/ic-icon-BGNCCPpZ.js +33 -0
- package/node_modules/@comis/web/dist/assets/{ic-layer-waterfall-COvEYMg5.js → ic-layer-waterfall-WkaFyu-l.js} +18 -18
- package/node_modules/@comis/web/dist/assets/ic-relative-time-B3UAnTqg.js +12 -0
- package/node_modules/@comis/web/dist/assets/{ic-search-input-CSOxY9g7.js → ic-search-input-B02AGw1i.js} +22 -22
- package/node_modules/@comis/web/dist/assets/{ic-select-Ce-Raudx.js → ic-select-BqfZISjw.js} +29 -29
- package/node_modules/@comis/web/dist/assets/ic-tabs-yBjkWKJH.js +95 -0
- package/node_modules/@comis/web/dist/assets/ic-tag-CvMVQFRR.js +33 -0
- package/node_modules/@comis/web/dist/assets/{ic-time-range-picker-CypCT68y.js → ic-time-range-picker-DXbYeBmY.js} +31 -31
- package/node_modules/@comis/web/dist/assets/{ic-tool-call-7MaXSsCW.js → ic-tool-call-DMPHsLyx.js} +51 -51
- package/node_modules/@comis/web/dist/assets/index-CVEaS9aY.css +2 -0
- package/node_modules/@comis/web/dist/assets/index-FLPhHz8p.js +2792 -0
- package/node_modules/@comis/web/dist/assets/{mcp-management-BNZPnpDn.js → mcp-management-5jyScQis.js} +209 -209
- package/node_modules/@comis/web/dist/assets/{media-config-BBvTYxOX.js → media-config-J9oT9PPs.js} +154 -154
- package/node_modules/@comis/web/dist/assets/{media-test-BkK3RCRK.js → media-test-DGTCtM8-.js} +259 -259
- package/node_modules/@comis/web/dist/assets/{memory-inspector-1hDGCGat.js → memory-inspector-D5Re9ptG.js} +450 -450
- package/node_modules/@comis/web/dist/assets/{message-center-CXefwsUu.js → message-center-cRLK6ZmG.js} +290 -290
- package/node_modules/@comis/web/dist/assets/{models-C1qcU_j3.js → models-D5vu07MR.js} +371 -371
- package/node_modules/@comis/web/dist/assets/observability-types-D0tkwElU.js +1 -0
- package/node_modules/@comis/web/dist/assets/{observe-view-C0VBhX4C.js → observe-view-CalNNEmd.js} +399 -399
- package/node_modules/@comis/web/dist/assets/pipeline-builder-DUYDGwZf.js +1495 -0
- package/node_modules/@comis/web/dist/assets/{pipeline-history-DkfOQ6SW.js → pipeline-history-BAO8brOe.js} +124 -124
- package/node_modules/@comis/web/dist/assets/{pipeline-history-detail-hyHgD0ai.js → pipeline-history-detail-DectIoQt.js} +65 -65
- package/node_modules/@comis/web/dist/assets/{pipeline-list-BPW8hV-q.js → pipeline-list-BHlaBKww.js} +227 -227
- package/node_modules/@comis/web/dist/assets/{pipeline-monitor-Bip16T7e.js → pipeline-monitor-BhtpNEHf.js} +298 -298
- package/node_modules/@comis/web/dist/assets/{scheduler-BGgwKd06.js → scheduler-VafN_8xi.js} +486 -486
- package/node_modules/@comis/web/dist/assets/{security-D15st4xx.js → security-QQXMRTlo.js} +389 -389
- package/node_modules/@comis/web/dist/assets/{session-detail-SGEYNJ0M.js → session-detail-BpZ_8Yih.js} +294 -294
- package/node_modules/@comis/web/dist/assets/session-key-parser-Dkqcj2Ss.js +1 -0
- package/node_modules/@comis/web/dist/assets/session-list-DfCm8Cec.js +231 -0
- package/node_modules/@comis/web/dist/assets/{setup-wizard-nT0tz9QP.js → setup-wizard-C-z477CG.js} +486 -494
- package/node_modules/@comis/web/dist/assets/{skills-D8yVfSUy.js → skills-BCOGPf6s.js} +329 -329
- package/node_modules/@comis/web/dist/assets/{subagents-HHXMeHYo.js → subagents-l-auUraL.js} +74 -74
- package/node_modules/@comis/web/dist/assets/{workspace-manager-BQlr10iH.js → workspace-manager-DlvBixiq.js} +236 -236
- package/node_modules/@comis/web/dist/index.html +3 -2
- package/node_modules/@comis/web/package.json +1 -1
- package/package.json +15 -15
- package/node_modules/@comis/web/dist/assets/agent-editor-C26Q_xCs.js +0 -2173
- package/node_modules/@comis/web/dist/assets/billing-view-CtYvBqTE.js +0 -375
- package/node_modules/@comis/web/dist/assets/channel-list-B8dj3O9a.js +0 -323
- package/node_modules/@comis/web/dist/assets/directive-DoeGSK_T.js +0 -1
- package/node_modules/@comis/web/dist/assets/ic-chat-message-CFyDJd0z.js +0 -352
- package/node_modules/@comis/web/dist/assets/ic-data-table-CKUNTxHw.js +0 -277
- package/node_modules/@comis/web/dist/assets/ic-delivery-row-GP5Fkygs.js +0 -67
- package/node_modules/@comis/web/dist/assets/ic-graph-canvas-C8FuSMe1.js +0 -359
- package/node_modules/@comis/web/dist/assets/ic-icon-xeGTVhVG.js +0 -33
- package/node_modules/@comis/web/dist/assets/ic-relative-time-3FqpjeAI.js +0 -12
- package/node_modules/@comis/web/dist/assets/ic-tabs-B7QtM_v8.js +0 -95
- package/node_modules/@comis/web/dist/assets/ic-tag-CPPUnDLF.js +0 -33
- package/node_modules/@comis/web/dist/assets/index-CEcM1R_C.js +0 -2830
- package/node_modules/@comis/web/dist/assets/index-CIJFuItj.css +0 -1
- package/node_modules/@comis/web/dist/assets/observability-types-D7jUtSde.js +0 -1
- package/node_modules/@comis/web/dist/assets/pipeline-builder-DcUUIrm0.js +0 -1496
- package/node_modules/@comis/web/dist/assets/session-key-parser-DPORMVyU.js +0 -1
- package/node_modules/@comis/web/dist/assets/session-list-6ybUTxbY.js +0 -231
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
import{
|
|
2
|
-
<ic-data-table
|
|
3
|
-
.columns=${e}
|
|
4
|
-
.rows=${this.entries}
|
|
5
|
-
?selectable=${this.selectable}
|
|
6
|
-
emptyMessage="No memory entries found"
|
|
7
|
-
@row-click=${this._handleRowClick}
|
|
8
|
-
@selection-change=${this._handleSelectionChange}
|
|
9
|
-
></ic-data-table>
|
|
10
|
-
`}};u.styles=[f,_,y`
|
|
1
|
+
import{c as e,f as t,h as n,l as r,n as i,o as a,r as o,s,t as c,u as l}from"./decorate-BvWYovGE.js";import"./index-FLPhHz8p.js";import"./ic-tag-CvMVQFRR.js";import"./ic-confirm-dialog-DGlPbV1T.js";import"./ic-relative-time-B3UAnTqg.js";import"./ic-data-table-CKIvr-ag.js";import"./ic-search-input-B02AGw1i.js";import"./ic-detail-panel-DiCe4hLr.js";var u=class extends r{constructor(...e){super(...e),this.entries=[],this.selectable=!1}static{this.styles=[o,i,n`
|
|
11
2
|
:host {
|
|
12
3
|
display: block;
|
|
13
4
|
}
|
|
@@ -24,96 +15,16 @@ import{s as f,f as _,i as y,n as m,a as x,b as i,t as $,A as h,r as n}from"./ind
|
|
|
24
15
|
text-overflow: ellipsis;
|
|
25
16
|
white-space: nowrap;
|
|
26
17
|
}
|
|
27
|
-
`]
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<div class="detail-label">Relevance Score</div>
|
|
38
|
-
<div class="score-display">${e.score.toFixed(4)}</div>
|
|
39
|
-
</div>
|
|
40
|
-
`:h}
|
|
41
|
-
|
|
42
|
-
<!-- Content -->
|
|
43
|
-
<div class="detail-section">
|
|
44
|
-
<div class="detail-label">Content</div>
|
|
45
|
-
<div class="content-block">${e.content}</div>
|
|
46
|
-
</div>
|
|
47
|
-
|
|
48
|
-
<!-- Classification -->
|
|
49
|
-
<div class="detail-section">
|
|
50
|
-
<div class="detail-label">Classification</div>
|
|
51
|
-
<div class="badges-row">
|
|
52
|
-
<ic-tag variant=${this._typeVariant(e.memoryType)}>${e.memoryType}</ic-tag>
|
|
53
|
-
<ic-tag variant=${this._trustVariant(e.trustLevel)}>${e.trustLevel}</ic-tag>
|
|
54
|
-
</div>
|
|
55
|
-
</div>
|
|
56
|
-
|
|
57
|
-
<!-- Agent -->
|
|
58
|
-
<div class="detail-section">
|
|
59
|
-
<div class="detail-label">Agent</div>
|
|
60
|
-
<div class="detail-value">${e.agentId}</div>
|
|
61
|
-
</div>
|
|
62
|
-
|
|
63
|
-
<!-- Source (if available) -->
|
|
64
|
-
${e.source?i`
|
|
65
|
-
<div class="detail-section">
|
|
66
|
-
<div class="detail-label">Source</div>
|
|
67
|
-
<div class="detail-value">${e.source}</div>
|
|
68
|
-
</div>
|
|
69
|
-
`:h}
|
|
70
|
-
|
|
71
|
-
<!-- Tags (if present) -->
|
|
72
|
-
${e.tags&&e.tags.length>0?i`
|
|
73
|
-
<div class="detail-section">
|
|
74
|
-
<div class="detail-label">Tags</div>
|
|
75
|
-
<div class="tags-list">
|
|
76
|
-
${e.tags.map(t=>i`<ic-tag variant="default">${t}</ic-tag>`)}
|
|
77
|
-
</div>
|
|
78
|
-
</div>
|
|
79
|
-
`:h}
|
|
80
|
-
|
|
81
|
-
<!-- Embedding status -->
|
|
82
|
-
<div class="detail-section">
|
|
83
|
-
<div class="detail-label">Embedding</div>
|
|
84
|
-
<div class="embedding-status">
|
|
85
|
-
${e.hasEmbedding?i`
|
|
86
|
-
<span class="embedding-icon embedding-icon--yes">✓</span>
|
|
87
|
-
<span>Indexed</span>
|
|
88
|
-
${e.embeddingDims?i`<span class="embedding-dims">(${e.embeddingDims} dims)</span>`:h}
|
|
89
|
-
`:i`
|
|
90
|
-
<span class="embedding-icon embedding-icon--no">✗</span>
|
|
91
|
-
<span>Not indexed</span>
|
|
92
|
-
`}
|
|
93
|
-
</div>
|
|
94
|
-
</div>
|
|
95
|
-
|
|
96
|
-
<!-- Created timestamp -->
|
|
97
|
-
<div class="detail-section">
|
|
98
|
-
<div class="detail-label">Created</div>
|
|
99
|
-
<div class="timestamp-value">${this._formatTimestamp(e.createdAt)}</div>
|
|
100
|
-
</div>
|
|
101
|
-
|
|
102
|
-
<!-- Updated timestamp (if exists) -->
|
|
103
|
-
${e.updatedAt?i`
|
|
104
|
-
<div class="detail-section">
|
|
105
|
-
<div class="detail-label">Updated</div>
|
|
106
|
-
<div class="timestamp-value">${this._formatTimestamp(e.updatedAt)}</div>
|
|
107
|
-
</div>
|
|
108
|
-
`:h}
|
|
109
|
-
|
|
110
|
-
<!-- Delete button -->
|
|
111
|
-
<div class="detail-section">
|
|
112
|
-
<button class="delete-btn" @click=${this._handleDelete}>
|
|
113
|
-
Delete Entry
|
|
114
|
-
</button>
|
|
115
|
-
</div>
|
|
116
|
-
`}};v.styles=[f,_,y`
|
|
18
|
+
`]}_hasScores(){return this.entries.some(e=>e.score!==void 0&&e.score!==null)}_getColumns(){let e=[];return this._hasScores()&&e.push({key:`score`,label:`Score`,sortable:!0,render:e=>{let n=e;return n==null?``:t`<span class="score-cell">${n.toFixed(3)}</span>`}}),e.push({key:`content`,label:`Content`,sortable:!1,render:e=>t`<span class="content-cell">${String(e??``)}</span>`},{key:`memoryType`,label:`Type`,sortable:!0,render:e=>t`<ic-tag variant=${this._typeVariant(String(e??``))}>${e}</ic-tag>`},{key:`trustLevel`,label:`Trust`,sortable:!0,render:e=>t`<ic-tag variant=${this._trustVariant(String(e??``))}>${e}</ic-tag>`},{key:`agentId`,label:`Agent`,sortable:!0},{key:`createdAt`,label:`Age`,sortable:!0,render:e=>{let n=e;return n?t`<ic-relative-time .timestamp=${n}></ic-relative-time>`:``}}),e}_typeVariant(e){let t=(e??``).toLowerCase();return t===`working`||t===`episodic`?`info`:t===`semantic`?`success`:t===`procedural`?`warning`:`default`}_trustVariant(e){let t=(e??``).toLowerCase();return t===`system`?`success`:t===`learned`?`info`:t===`external`?`warning`:`default`}_handleRowClick(e){this.dispatchEvent(new CustomEvent(`detail-requested`,{detail:e.detail,bubbles:!0,composed:!0}))}_handleSelectionChange(e){this.dispatchEvent(new CustomEvent(`selection-change`,{detail:e.detail,bubbles:!0,composed:!0}))}render(){return t`
|
|
19
|
+
<ic-data-table
|
|
20
|
+
.columns=${this._getColumns()}
|
|
21
|
+
.rows=${this.entries}
|
|
22
|
+
?selectable=${this.selectable}
|
|
23
|
+
emptyMessage="No memory entries found"
|
|
24
|
+
@row-click=${this._handleRowClick}
|
|
25
|
+
@selection-change=${this._handleSelectionChange}
|
|
26
|
+
></ic-data-table>
|
|
27
|
+
`}};c([s({attribute:!1})],u.prototype,`entries`,void 0),c([s({type:Boolean})],u.prototype,`selectable`,void 0),u=c([e(`ic-memory-table`)],u);var d=class extends r{constructor(...e){super(...e),this.entry=null}static{this.styles=[o,i,n`
|
|
117
28
|
:host {
|
|
118
29
|
display: block;
|
|
119
30
|
}
|
|
@@ -234,370 +145,96 @@ import{s as f,f as _,i as y,n as m,a as x,b as i,t as $,A as h,r as n}from"./ind
|
|
|
234
145
|
text-align: center;
|
|
235
146
|
padding: var(--ic-space-xl);
|
|
236
147
|
}
|
|
237
|
-
`]
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
<div class="bar-label" title=${d}>${d}</div>
|
|
243
|
-
<div class="bar-track">
|
|
244
|
-
<div
|
|
245
|
-
class="bar-fill"
|
|
246
|
-
style="width: ${r>0?l/r*100:0}%"
|
|
247
|
-
></div>
|
|
248
|
-
</div>
|
|
249
|
-
<div class="bar-value">${this._formatNumber(l)}</div>
|
|
250
|
-
</div>
|
|
251
|
-
`)}
|
|
252
|
-
${a>0?i`<div class="agent-chart-overflow">and ${a} more</div>`:h}
|
|
253
|
-
</div>
|
|
254
|
-
`}_renderEmbeddingSection(){if(!this._embeddingStats)return h;const e=this._embeddingStats,t=e.circuitBreaker.state,r=t==="closed"?"success":t==="halfOpen"?"warning":t==="open"?"error":"default",c=t==="closed"?"Closed (Healthy)":t==="halfOpen"?"Half-Open (Recovering)":t==="open"?"Open (Failing)":"Unknown",a=e.vecAvailable?"success":"error",d=e.vecAvailable?"Active":"Unavailable";if(!e.enabled)return i`
|
|
255
|
-
<div class="embedding-section">
|
|
256
|
-
<div class="section-heading">Embedding Infrastructure</div>
|
|
257
|
-
<div class="embedding-disabled">
|
|
258
|
-
<span>Embedding cache not configured</span>
|
|
259
|
-
<span>Vec: <ic-tag variant=${a}>${d}</ic-tag></span>
|
|
260
|
-
<span>CB: <ic-tag variant=${r}>${c}</ic-tag></span>
|
|
261
|
-
</div>
|
|
262
|
-
</div>
|
|
263
|
-
`;const l=e.l1?(e.l1.hitRate*100).toFixed(1)+"%":"N/A",p=e.l1?`${e.l1.entries}/${e.l1.maxEntries}`:"N/A";return i`
|
|
264
|
-
<div class="embedding-section">
|
|
265
|
-
<div class="section-heading">Embedding Infrastructure</div>
|
|
266
|
-
<div class="stats-row">
|
|
267
|
-
<ic-stat-card label="Provider" value=${e.provider??"N/A"}></ic-stat-card>
|
|
268
|
-
<ic-stat-card label="L1 Hit Rate" value=${l}></ic-stat-card>
|
|
269
|
-
<ic-stat-card label="L1 Entries" value=${p}></ic-stat-card>
|
|
270
|
-
<ic-stat-card label="Vector Search" value=${d}></ic-stat-card>
|
|
271
|
-
</div>
|
|
272
|
-
<div class="stats-row">
|
|
273
|
-
<ic-stat-card label="L1 Hits" value=${this._formatNumber(e.l1?.hits??0)}></ic-stat-card>
|
|
274
|
-
<ic-stat-card label="L1 Misses" value=${this._formatNumber(e.l1?.misses??0)}></ic-stat-card>
|
|
275
|
-
<ic-stat-card label="Circuit Breaker" value=${c}></ic-stat-card>
|
|
276
|
-
</div>
|
|
148
|
+
`]}_typeVariant(e){let t=(e??``).toLowerCase();return t===`working`||t===`episodic`?`info`:t===`semantic`?`success`:t===`procedural`?`warning`:`default`}_trustVariant(e){let t=(e??``).toLowerCase();return t===`system`?`success`:t===`learned`?`info`:t===`external`?`warning`:`default`}_formatTimestamp(e){return new Date(e).toLocaleString(void 0,{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}_handleDelete(){this.entry&&this.dispatchEvent(new CustomEvent(`delete-requested`,{detail:this.entry.id,bubbles:!0,composed:!0}))}_handleClose(){this.dispatchEvent(new CustomEvent(`close`,{bubbles:!0,composed:!0}))}render(){if(!this.entry)return t`<div class="empty-state">No entry selected</div>`;let e=this.entry;return t`
|
|
149
|
+
<!-- ID -->
|
|
150
|
+
<div class="detail-section">
|
|
151
|
+
<div class="detail-label">ID</div>
|
|
152
|
+
<div class="detail-id">${e.id}</div>
|
|
277
153
|
</div>
|
|
278
|
-
`}render(){const e=this._getFilteredResults();return i`
|
|
279
|
-
<div class="page-header">Memory Inspector</div>
|
|
280
154
|
|
|
281
|
-
<!--
|
|
282
|
-
${
|
|
283
|
-
<div class="
|
|
284
|
-
<
|
|
285
|
-
|
|
286
|
-
value=${this._formatNumber(this._stats.totalEntries)}
|
|
287
|
-
></ic-stat-card>
|
|
288
|
-
<ic-stat-card
|
|
289
|
-
label="Sessions"
|
|
290
|
-
value=${this._formatNumber(this._stats.totalSessions)}
|
|
291
|
-
></ic-stat-card>
|
|
292
|
-
<ic-stat-card
|
|
293
|
-
label="Vectors"
|
|
294
|
-
value=${this._formatNumber(this._stats.embeddedEntries)}
|
|
295
|
-
></ic-stat-card>
|
|
296
|
-
<ic-stat-card
|
|
297
|
-
label="DB Size"
|
|
298
|
-
value=${this._formatBytes(this._stats.dbSizeBytes)}
|
|
299
|
-
></ic-stat-card>
|
|
300
|
-
${this._stats.oldestCreatedAt!=null?i`
|
|
301
|
-
<ic-stat-card
|
|
302
|
-
label="Oldest Entry"
|
|
303
|
-
value=${this._formatRelativeTime(this._stats.oldestCreatedAt)}
|
|
304
|
-
title=${this._formatFullDate(this._stats.oldestCreatedAt)}
|
|
305
|
-
></ic-stat-card>
|
|
306
|
-
`:h}
|
|
155
|
+
<!-- Score (only if present) -->
|
|
156
|
+
${e.score!==void 0&&e.score!==null?t`
|
|
157
|
+
<div class="detail-section">
|
|
158
|
+
<div class="detail-label">Relevance Score</div>
|
|
159
|
+
<div class="score-display">${e.score.toFixed(4)}</div>
|
|
307
160
|
</div>
|
|
308
|
-
|
|
309
|
-
<div class="stats-row">
|
|
310
|
-
${this._stats.byType?Object.entries(this._stats.byType).map(([t,r])=>i`
|
|
311
|
-
<ic-stat-card label=${t} value=${this._formatNumber(r)}></ic-stat-card>
|
|
312
|
-
`):h}
|
|
313
|
-
${this._stats.byTrustLevel?Object.entries(this._stats.byTrustLevel).map(([t,r])=>i`
|
|
314
|
-
<ic-stat-card label=${"Trust: "+t} value=${this._formatNumber(r)}></ic-stat-card>
|
|
315
|
-
`):h}
|
|
316
|
-
</div>
|
|
317
|
-
`:h}
|
|
318
|
-
${this._renderAgentChart()}
|
|
319
|
-
`:h}
|
|
320
|
-
|
|
321
|
-
<!-- Embedding Infrastructure -->
|
|
322
|
-
${this._renderEmbeddingSection()}
|
|
161
|
+
`:l}
|
|
323
162
|
|
|
324
|
-
<!--
|
|
325
|
-
<
|
|
326
|
-
|
|
327
|
-
|
|
163
|
+
<!-- Content -->
|
|
164
|
+
<div class="detail-section">
|
|
165
|
+
<div class="detail-label">Content</div>
|
|
166
|
+
<div class="content-block">${e.content}</div>
|
|
167
|
+
</div>
|
|
328
168
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
169
|
+
<!-- Classification -->
|
|
170
|
+
<div class="detail-section">
|
|
171
|
+
<div class="detail-label">Classification</div>
|
|
172
|
+
<div class="badges-row">
|
|
173
|
+
<ic-tag variant=${this._typeVariant(e.memoryType)}>${e.memoryType}</ic-tag>
|
|
174
|
+
<ic-tag variant=${this._trustVariant(e.trustLevel)}>${e.trustLevel}</ic-tag>
|
|
175
|
+
</div>
|
|
176
|
+
</div>
|
|
332
177
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
.value=${this._createContent}
|
|
339
|
-
@input=${t=>{this._createContent=t.target.value}}
|
|
340
|
-
></textarea>
|
|
341
|
-
</div>
|
|
178
|
+
<!-- Agent -->
|
|
179
|
+
<div class="detail-section">
|
|
180
|
+
<div class="detail-label">Agent</div>
|
|
181
|
+
<div class="detail-value">${e.agentId}</div>
|
|
182
|
+
</div>
|
|
342
183
|
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
@input=${t=>{this._createTags=t.target.value}}
|
|
351
|
-
/>
|
|
352
|
-
</div>
|
|
184
|
+
<!-- Source (if available) -->
|
|
185
|
+
${e.source?t`
|
|
186
|
+
<div class="detail-section">
|
|
187
|
+
<div class="detail-label">Source</div>
|
|
188
|
+
<div class="detail-value">${e.source}</div>
|
|
189
|
+
</div>
|
|
190
|
+
`:l}
|
|
353
191
|
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
>
|
|
361
|
-
<option value="learned">learned</option>
|
|
362
|
-
<option value="external">external</option>
|
|
363
|
-
</select>
|
|
192
|
+
<!-- Tags (if present) -->
|
|
193
|
+
${e.tags&&e.tags.length>0?t`
|
|
194
|
+
<div class="detail-section">
|
|
195
|
+
<div class="detail-label">Tags</div>
|
|
196
|
+
<div class="tags-list">
|
|
197
|
+
${e.tags.map(e=>t`<ic-tag variant="default">${e}</ic-tag>`)}
|
|
364
198
|
</div>
|
|
199
|
+
</div>
|
|
200
|
+
`:l}
|
|
365
201
|
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
202
|
+
<!-- Embedding status -->
|
|
203
|
+
<div class="detail-section">
|
|
204
|
+
<div class="detail-label">Embedding</div>
|
|
205
|
+
<div class="embedding-status">
|
|
206
|
+
${e.hasEmbedding?t`
|
|
207
|
+
<span class="embedding-icon embedding-icon--yes">✓</span>
|
|
208
|
+
<span>Indexed</span>
|
|
209
|
+
${e.embeddingDims?t`<span class="embedding-dims">(${e.embeddingDims} dims)</span>`:l}
|
|
210
|
+
`:t`
|
|
211
|
+
<span class="embedding-icon embedding-icon--no">✗</span>
|
|
212
|
+
<span>Not indexed</span>
|
|
213
|
+
`}
|
|
214
|
+
</div>
|
|
215
|
+
</div>
|
|
376
216
|
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
>
|
|
383
|
-
${this._createSubmitting?"Creating...":"Create"}
|
|
384
|
-
</button>
|
|
385
|
-
</div>
|
|
217
|
+
<!-- Created timestamp -->
|
|
218
|
+
<div class="detail-section">
|
|
219
|
+
<div class="detail-label">Created</div>
|
|
220
|
+
<div class="timestamp-value">${this._formatTimestamp(e.createdAt)}</div>
|
|
221
|
+
</div>
|
|
386
222
|
|
|
387
|
-
|
|
223
|
+
<!-- Updated timestamp (if exists) -->
|
|
224
|
+
${e.updatedAt?t`
|
|
225
|
+
<div class="detail-section">
|
|
226
|
+
<div class="detail-label">Updated</div>
|
|
227
|
+
<div class="timestamp-value">${this._formatTimestamp(e.updatedAt)}</div>
|
|
388
228
|
</div>
|
|
389
|
-
`:
|
|
229
|
+
`:l}
|
|
390
230
|
|
|
391
|
-
<!--
|
|
392
|
-
<div class="
|
|
393
|
-
<
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
?data-active=${this._mode==="search"}
|
|
397
|
-
@click=${()=>this._handleModeChange("search")}
|
|
398
|
-
>
|
|
399
|
-
Search
|
|
400
|
-
</button>
|
|
401
|
-
<button
|
|
402
|
-
class="mode-btn"
|
|
403
|
-
?data-active=${this._mode==="browse"}
|
|
404
|
-
@click=${()=>this._handleModeChange("browse")}
|
|
405
|
-
>
|
|
406
|
-
Browse All
|
|
407
|
-
</button>
|
|
408
|
-
</div>
|
|
409
|
-
${this._mode==="search"?i`
|
|
410
|
-
<div class="search-wrapper">
|
|
411
|
-
<ic-search-input
|
|
412
|
-
placeholder="Search memories by content, topic, or keyword..."
|
|
413
|
-
.value=${this._query}
|
|
414
|
-
@search=${this._handleSearchEvent}
|
|
415
|
-
></ic-search-input>
|
|
416
|
-
</div>
|
|
417
|
-
`:h}
|
|
418
|
-
<div class="toolbar-right">
|
|
419
|
-
<span class="filter-label">Flush scope:</span>
|
|
420
|
-
<select
|
|
421
|
-
class="filter-select"
|
|
422
|
-
.value=${this._flushAgentId}
|
|
423
|
-
@change=${t=>{this._flushAgentId=t.target.value}}
|
|
424
|
-
>
|
|
425
|
-
<option value="">All Agents</option>
|
|
426
|
-
${this._agents.map(t=>i`<option value=${t}>${t}</option>`)}
|
|
427
|
-
</select>
|
|
428
|
-
<button class="flush-btn" @click=${this._openFlushDialog}>Flush Memory</button>
|
|
429
|
-
</div>
|
|
430
|
-
</div>
|
|
431
|
-
|
|
432
|
-
<!-- Filters row -->
|
|
433
|
-
<div class="filters-row">
|
|
434
|
-
<div class="filter-group">
|
|
435
|
-
<span class="filter-label">Type:</span>
|
|
436
|
-
${b.map(t=>i`
|
|
437
|
-
<label class="filter-checkbox">
|
|
438
|
-
<input
|
|
439
|
-
type="checkbox"
|
|
440
|
-
.checked=${this._typeFilter.has(t)}
|
|
441
|
-
@change=${()=>this._toggleTypeFilter(t)}
|
|
442
|
-
/>
|
|
443
|
-
${t}
|
|
444
|
-
</label>
|
|
445
|
-
`)}
|
|
446
|
-
</div>
|
|
447
|
-
|
|
448
|
-
<div class="filter-group">
|
|
449
|
-
<span class="filter-label">Trust:</span>
|
|
450
|
-
${g.map(t=>i`
|
|
451
|
-
<label class="filter-checkbox">
|
|
452
|
-
<input
|
|
453
|
-
type="checkbox"
|
|
454
|
-
.checked=${this._trustFilter.has(t)}
|
|
455
|
-
@change=${()=>this._toggleTrustFilter(t)}
|
|
456
|
-
/>
|
|
457
|
-
${t}
|
|
458
|
-
</label>
|
|
459
|
-
`)}
|
|
460
|
-
</div>
|
|
461
|
-
|
|
462
|
-
<div class="filter-group">
|
|
463
|
-
<span class="filter-label">Agent:</span>
|
|
464
|
-
<select
|
|
465
|
-
class="filter-select"
|
|
466
|
-
.value=${this._agentFilter}
|
|
467
|
-
@change=${this._handleAgentFilterChange}
|
|
468
|
-
>
|
|
469
|
-
<option value="">All</option>
|
|
470
|
-
${this._agents.map(t=>i`<option value=${t}>${t}</option>`)}
|
|
471
|
-
</select>
|
|
472
|
-
</div>
|
|
473
|
-
|
|
474
|
-
<div class="filter-group">
|
|
475
|
-
<span class="filter-label">Date:</span>
|
|
476
|
-
<input
|
|
477
|
-
type="date"
|
|
478
|
-
class="filter-date"
|
|
479
|
-
.value=${this._dateFrom}
|
|
480
|
-
@change=${this._handleDateFromChange}
|
|
481
|
-
/>
|
|
482
|
-
<span class="filter-label">to</span>
|
|
483
|
-
<input
|
|
484
|
-
type="date"
|
|
485
|
-
class="filter-date"
|
|
486
|
-
.value=${this._dateTo}
|
|
487
|
-
@change=${this._handleDateToChange}
|
|
488
|
-
/>
|
|
489
|
-
</div>
|
|
231
|
+
<!-- Delete button -->
|
|
232
|
+
<div class="detail-section">
|
|
233
|
+
<button class="delete-btn" @click=${this._handleDelete}>
|
|
234
|
+
Delete Entry
|
|
235
|
+
</button>
|
|
490
236
|
</div>
|
|
491
|
-
|
|
492
|
-
<!-- Error -->
|
|
493
|
-
${this._error?i`<div class="error-message">${this._error}</div>`:h}
|
|
494
|
-
|
|
495
|
-
<!-- Bulk actions bar -->
|
|
496
|
-
${this._selectedIds.length>0?i`
|
|
497
|
-
<div class="bulk-bar">
|
|
498
|
-
<span class="bulk-count">${this._selectedIds.length} selected</span>
|
|
499
|
-
<button class="bulk-btn bulk-btn--delete" @click=${this._handleBulkDelete}>
|
|
500
|
-
Delete Selected
|
|
501
|
-
</button>
|
|
502
|
-
<button class="bulk-btn bulk-btn--export" @click=${this._handleExportSelected}>
|
|
503
|
-
Export Selected
|
|
504
|
-
</button>
|
|
505
|
-
</div>
|
|
506
|
-
`:h}
|
|
507
|
-
|
|
508
|
-
<!-- Results area -->
|
|
509
|
-
${this._loading?i`
|
|
510
|
-
<div class="state-container">
|
|
511
|
-
<div class="loading-spinner"></div>
|
|
512
|
-
</div>
|
|
513
|
-
`:this._searched?i`
|
|
514
|
-
<!-- Results header -->
|
|
515
|
-
<div class="results-header">
|
|
516
|
-
<span class="result-count">
|
|
517
|
-
${e.length} result${e.length!==1?"s":""}
|
|
518
|
-
${this._mode==="browse"&&this._total>0?i` of ${this._total}`:h}
|
|
519
|
-
</span>
|
|
520
|
-
<button class="export-btn" @click=${this._handleExportAll}>
|
|
521
|
-
Export JSONL
|
|
522
|
-
</button>
|
|
523
|
-
</div>
|
|
524
|
-
|
|
525
|
-
<ic-memory-table
|
|
526
|
-
.entries=${e}
|
|
527
|
-
?selectable=${!0}
|
|
528
|
-
@detail-requested=${this._handleDetailRequested}
|
|
529
|
-
@selection-change=${this._handleSelectionChange}
|
|
530
|
-
></ic-memory-table>
|
|
531
|
-
|
|
532
|
-
<!-- Browse pagination controls -->
|
|
533
|
-
${this._mode==="browse"?i`
|
|
534
|
-
<div class="browse-controls">
|
|
535
|
-
<span class="browse-info">
|
|
536
|
-
${this._browseOffset+1}-${Math.min(this._browseOffset+this._browseLimit,this._total)}
|
|
537
|
-
of ${this._total}
|
|
538
|
-
</span>
|
|
539
|
-
<div class="browse-nav">
|
|
540
|
-
<button
|
|
541
|
-
class="browse-btn"
|
|
542
|
-
?disabled=${this._browseOffset===0}
|
|
543
|
-
@click=${this._handleBrowsePrev}
|
|
544
|
-
>
|
|
545
|
-
Prev
|
|
546
|
-
</button>
|
|
547
|
-
<button
|
|
548
|
-
class="browse-btn"
|
|
549
|
-
?disabled=${this._browseOffset+this._browseLimit>=this._total}
|
|
550
|
-
@click=${this._handleBrowseNext}
|
|
551
|
-
>
|
|
552
|
-
Next
|
|
553
|
-
</button>
|
|
554
|
-
</div>
|
|
555
|
-
</div>
|
|
556
|
-
`:h}
|
|
557
|
-
`:i`
|
|
558
|
-
<div class="empty-state">
|
|
559
|
-
<div>Search your agent's memory</div>
|
|
560
|
-
<div class="empty-hint">
|
|
561
|
-
Enter a query to find stored memories by content or semantic similarity
|
|
562
|
-
</div>
|
|
563
|
-
</div>
|
|
564
|
-
`}
|
|
565
|
-
|
|
566
|
-
<!-- Detail panel -->
|
|
567
|
-
<ic-detail-panel
|
|
568
|
-
?open=${this._selectedEntry!==null}
|
|
569
|
-
panelTitle="Memory Entry"
|
|
570
|
-
@close=${this._handleDetailClose}
|
|
571
|
-
>
|
|
572
|
-
<ic-memory-detail
|
|
573
|
-
.entry=${this._selectedEntry}
|
|
574
|
-
@delete-requested=${this._handleEntryDeleted}
|
|
575
|
-
@close=${this._handleDetailClose}
|
|
576
|
-
></ic-memory-detail>
|
|
577
|
-
</ic-detail-panel>
|
|
578
|
-
|
|
579
|
-
<!-- Confirm dialog for bulk delete -->
|
|
580
|
-
<ic-confirm-dialog
|
|
581
|
-
?open=${this._confirmOpen}
|
|
582
|
-
title="Delete Memories"
|
|
583
|
-
message="Are you sure you want to delete ${this._selectedIds.length} selected ${this._selectedIds.length===1?"entry":"entries"}? This cannot be undone."
|
|
584
|
-
confirmLabel="Delete"
|
|
585
|
-
variant="danger"
|
|
586
|
-
@confirm=${this._confirmBulkDelete}
|
|
587
|
-
@cancel=${this._cancelBulkDelete}
|
|
588
|
-
></ic-confirm-dialog>
|
|
589
|
-
|
|
590
|
-
<!-- Flush confirm dialog -->
|
|
591
|
-
<ic-confirm-dialog
|
|
592
|
-
?open=${this._flushDialogOpen}
|
|
593
|
-
title="Flush Memory"
|
|
594
|
-
.message=${"This will permanently delete "+(this._flushAgentId?`all memory entries for agent "${this._flushAgentId}"`:"ALL memory entries")+". This cannot be undone."}
|
|
595
|
-
confirmLabel="Flush"
|
|
596
|
-
variant="danger"
|
|
597
|
-
@confirm=${this._confirmFlush}
|
|
598
|
-
@cancel=${this._cancelFlush}
|
|
599
|
-
></ic-confirm-dialog>
|
|
600
|
-
`}};s.styles=[f,_,y`
|
|
237
|
+
`}};c([s({attribute:!1})],d.prototype,`entry`,void 0),d=c([e(`ic-memory-detail`)],d);var f=[`working`,`episodic`,`semantic`,`procedural`],p=[`system`,`learned`,`external`],m=class extends r{constructor(...e){super(...e),this.apiClient=null,this.rpcClient=null,this._mode=`search`,this._query=``,this._results=[],this._loading=!1,this._searched=!1,this._error=``,this._stats=null,this._statsLoaded=!1,this._selectedEntry=null,this._selectedIds=[],this._typeFilter=new Set(f),this._trustFilter=new Set(p),this._agentFilter=``,this._dateFrom=``,this._dateTo=``,this._browseOffset=0,this._browseLimit=25,this._total=0,this._agents=[],this._confirmOpen=!1,this._createOpen=!1,this._createContent=``,this._createTags=``,this._createTrustLevel=`learned`,this._createProvenance=``,this._createSubmitting=!1,this._createMessage=``,this._createMessageType=`success`,this._embeddingStats=null,this._embeddingLoading=!1,this._flushDialogOpen=!1,this._flushAgentId=``,this._flushSubmitting=!1}static{this.styles=[o,i,n`
|
|
601
238
|
:host {
|
|
602
239
|
display: block;
|
|
603
240
|
}
|
|
@@ -1136,4 +773,367 @@ import{s as f,f as _,i as y,n as m,a as x,b as i,t as $,A as h,r as n}from"./ind
|
|
|
1136
773
|
align-items: center;
|
|
1137
774
|
gap: var(--ic-space-md);
|
|
1138
775
|
}
|
|
1139
|
-
`]
|
|
776
|
+
`]}connectedCallback(){super.connectedCallback()}updated(e){e.has(`apiClient`)&&this.apiClient&&(this._loadStats(),this._loadAgents()),e.has(`rpcClient`)&&this.rpcClient&&this._loadEmbeddingStats()}_normalizeEntry(e){return{id:String(e.id??``),content:String(e.content??``),memoryType:String(e.memoryType??e.type??`unknown`),trustLevel:String(e.trustLevel??e.trust??`unknown`),agentId:String(e.agentId??`unknown`),tenantId:String(e.tenantId??`default`),source:typeof e.source==`string`?e.source:void 0,tags:Array.isArray(e.tags)?e.tags:void 0,score:typeof e.score==`number`?e.score:void 0,hasEmbedding:!!(e.hasEmbedding??!1),embeddingDims:typeof e.embeddingDims==`number`?e.embeddingDims:void 0,createdAt:typeof e.createdAt==`number`?e.createdAt:Date.now(),updatedAt:typeof e.updatedAt==`number`?e.updatedAt:void 0}}async _loadStats(){if(this.apiClient)try{let e=await this.apiClient.getMemoryStats(),t=typeof e.stats==`object`&&e.stats!==null?e.stats:e;this._stats={totalEntries:t.totalEntries??0,totalSessions:t.totalSessions??0,embeddedEntries:t.embeddedEntries??0,dbSizeBytes:t.dbSizeBytes??0,byType:t.byType,byTrustLevel:t.byTrustLevel,byAgent:t.byAgent,oldestCreatedAt:t.oldestCreatedAt},this._statsLoaded=!0}catch{this._statsLoaded=!0}}async _loadAgents(){if(this.apiClient)try{let e=await this.apiClient.getAgents();this._agents=e.map(e=>e.id)}catch{}}async _loadEmbeddingStats(){if(!(!this.rpcClient||this._embeddingLoading)){this._embeddingLoading=!0;try{let e=await this.rpcClient.call(`memory.embeddingCache`);this._embeddingStats=e}catch{}finally{this._embeddingLoading=!1}}}async _search(){let e=this._query.trim();if(!(!e||!this.apiClient||this._loading)){this._loading=!0,this._error=``,this._selectedIds=[];try{let t=await this.apiClient.searchMemory(e,50);this._results=t.map(e=>this._normalizeEntry(e)),this._searched=!0}catch(e){this._error=e instanceof Error&&!e.message.startsWith(`Request failed`)?e.message:`Search failed. Please try again.`,this._results=[]}finally{this._loading=!1}}}async _browse(){if(!(!this.apiClient||this._loading)){this._loading=!0,this._error=``,this._selectedIds=[];try{let e={offset:this._browseOffset,limit:this._browseLimit};this._typeFilter.size<f.length&&(e.type=[...this._typeFilter].join(`,`)),this._trustFilter.size<p.length&&(e.trust=[...this._trustFilter].join(`,`)),this._agentFilter&&(e.agentId=this._agentFilter),this._dateFrom&&(e.from=new Date(this._dateFrom).getTime()),this._dateTo&&(e.to=new Date(this._dateTo).getTime());let t=await this.apiClient.browseMemory(e);this._results=t.entries.map(e=>this._normalizeEntry(e)),this._total=t.total,this._searched=!0}catch(e){this._error=e instanceof Error&&!e.message.startsWith(`Request failed`)?e.message:`Browse failed. Please try again.`,this._results=[]}finally{this._loading=!1}}}_applyFilters(e){return e.filter(e=>{if(!this._typeFilter.has(e.memoryType)||!this._trustFilter.has(e.trustLevel)||this._agentFilter&&e.agentId!==this._agentFilter)return!1;if(this._dateFrom){let t=new Date(this._dateFrom).getTime();if(e.createdAt<t)return!1}if(this._dateTo){let t=new Date(this._dateTo).getTime()+864e5;if(e.createdAt>t)return!1}return!0})}_getFilteredResults(){return this._mode===`search`?this._applyFilters(this._results):this._results}_toggleTypeFilter(e){let t=new Set(this._typeFilter);t.has(e)?t.delete(e):t.add(e),this._typeFilter=t}_toggleTrustFilter(e){let t=new Set(this._trustFilter);t.has(e)?t.delete(e):t.add(e),this._trustFilter=t}_handleModeChange(e){this._mode!==e&&(this._mode=e,this._results=[],this._searched=!1,this._error=``,this._selectedIds=[],this._browseOffset=0,e===`browse`&&this._browse())}_handleSearchEvent(e){this._query=e.detail,this._query.trim()&&this._search()}_handleDetailRequested(e){this._selectedEntry=e.detail}_handleDetailClose(){this._selectedEntry=null}_handleSelectionChange(e){this._selectedIds=e.detail}_handleAgentFilterChange(e){this._agentFilter=e.target.value,this._mode===`browse`&&(this._browseOffset=0,this._browse())}_handleDateFromChange(e){this._dateFrom=e.target.value,this._mode===`browse`&&(this._browseOffset=0,this._browse())}_handleDateToChange(e){this._dateTo=e.target.value,this._mode===`browse`&&(this._browseOffset=0,this._browse())}_toggleCreateForm(){this._createOpen=!this._createOpen,this._createOpen||(this._createContent=``,this._createTags=``,this._createTrustLevel=`learned`,this._createProvenance=``,this._createMessage=``)}async _submitCreate(){let e=this._createContent.trim();if(!(!e||!this.rpcClient||this._createSubmitting)){this._createSubmitting=!0,this._createMessage=``;try{let t=this._createTags.split(`,`).map(e=>e.trim()).filter(Boolean);this._createProvenance.trim()&&t.push(`provenance:${this._createProvenance.trim()}`),await this.rpcClient.call(`memory.store`,{content:e,tags:t.length>0?t:void 0,trustLevel:this._createTrustLevel}),this._createMessage=`Memory entry created successfully.`,this._createMessageType=`success`,this._createContent=``,this._createTags=``,this._createProvenance=``,this._loadStats(),this._mode===`browse`&&this._browse()}catch(e){this._createMessage=e instanceof Error?e.message:`Failed to create memory entry.`,this._createMessageType=`error`}finally{this._createSubmitting=!1}}}_openFlushDialog(){this._flushAgentId=``,this._flushDialogOpen=!0}async _confirmFlush(){if(this._flushDialogOpen=!1,!(!this.rpcClient||this._flushSubmitting)){this._flushSubmitting=!0;try{await this.rpcClient.call(`memory.flush`,{agent_id:this._flushAgentId||void 0}),this._loadStats(),this._results=[],this._searched=!1,this._mode===`browse`&&this._browse()}catch(e){this._error=e instanceof Error?e.message:`Flush failed. Please try again.`}finally{this._flushSubmitting=!1}}}_cancelFlush(){this._flushDialogOpen=!1}_handleBulkDelete(){this._confirmOpen=!0}async _confirmBulkDelete(){if(this._confirmOpen=!1,!(!this.apiClient||this._selectedIds.length===0))try{await this.apiClient.deleteMemoryBulk(this._selectedIds);let e=new Set(this._selectedIds);this._results=this._results.filter(t=>!e.has(t.id)),this._selectedIds=[],this._loadStats()}catch(e){this._error=e instanceof Error?e.message:`Delete failed. Please try again.`}}_cancelBulkDelete(){this._confirmOpen=!1}async _handleExport(e){if(this.apiClient)try{let t=await this.apiClient.exportMemory(e),n=new Blob([t],{type:`application/jsonl`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`memory-export-${Date.now()}.jsonl`,i.click(),URL.revokeObjectURL(r)}catch(e){this._error=e instanceof Error?e.message:`Export failed. Please try again.`}}_handleExportAll(){this._handleExport()}_handleExportSelected(){this._handleExport(this._selectedIds)}async _handleEntryDeleted(e){if(!this.apiClient)return;let t=e.detail;try{await this.apiClient.deleteMemory(t),this._results=this._results.filter(e=>e.id!==t),this._selectedEntry=null,this._loadStats()}catch(e){this._error=e instanceof Error?e.message:`Delete failed. Please try again.`}}_handleBrowsePrev(){this._browseOffset=Math.max(0,this._browseOffset-this._browseLimit),this._browse()}_handleBrowseNext(){this._browseOffset+=this._browseLimit,this._browse()}_formatBytes(e){if(e===0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`],n=Math.floor(Math.log(e)/Math.log(1024));return`${(e/1024**n).toFixed(n===0?0:1)} ${t[n]}`}_formatNumber(e){return e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e)}_formatRelativeTime(e){let t=Date.now()-e,n=Math.floor(t/1e3),r=Math.floor(n/60),i=Math.floor(r/60),a=Math.floor(i/24);if(a>365){let e=Math.floor(a/365);return`${e} year${e===1?``:`s`} ago`}if(a>30){let e=Math.floor(a/30);return`${e} month${e===1?``:`s`} ago`}return a>0?`${a} day${a===1?``:`s`} ago`:i>0?`${i} hour${i===1?``:`s`} ago`:r>0?`${r} min${r===1?``:`s`} ago`:`just now`}_formatFullDate(e){return new Date(e).toLocaleString()}_renderAgentChart(){let e=this._stats?.byAgent;if(!e)return l;let n=Object.entries(e).sort(([,e],[,t])=>t-e);if(n.length===0)return l;let r=n[0][1],i=n.slice(0,10),a=n.length-i.length;return t`
|
|
777
|
+
<div class="agent-chart">
|
|
778
|
+
<div class="agent-chart-title">Entries by Agent</div>
|
|
779
|
+
${i.map(([e,n])=>t`
|
|
780
|
+
<div class="bar-container">
|
|
781
|
+
<div class="bar-label" title=${e}>${e}</div>
|
|
782
|
+
<div class="bar-track">
|
|
783
|
+
<div
|
|
784
|
+
class="bar-fill"
|
|
785
|
+
style="width: ${r>0?n/r*100:0}%"
|
|
786
|
+
></div>
|
|
787
|
+
</div>
|
|
788
|
+
<div class="bar-value">${this._formatNumber(n)}</div>
|
|
789
|
+
</div>
|
|
790
|
+
`)}
|
|
791
|
+
${a>0?t`<div class="agent-chart-overflow">and ${a} more</div>`:l}
|
|
792
|
+
</div>
|
|
793
|
+
`}_renderEmbeddingSection(){if(!this._embeddingStats)return l;let e=this._embeddingStats,n=e.circuitBreaker.state,r=n===`closed`?`success`:n===`halfOpen`?`warning`:n===`open`?`error`:`default`,i=n===`closed`?`Closed (Healthy)`:n===`halfOpen`?`Half-Open (Recovering)`:n===`open`?`Open (Failing)`:`Unknown`,a=e.vecAvailable?`success`:`error`,o=e.vecAvailable?`Active`:`Unavailable`;if(!e.enabled)return t`
|
|
794
|
+
<div class="embedding-section">
|
|
795
|
+
<div class="section-heading">Embedding Infrastructure</div>
|
|
796
|
+
<div class="embedding-disabled">
|
|
797
|
+
<span>Embedding cache not configured</span>
|
|
798
|
+
<span>Vec: <ic-tag variant=${a}>${o}</ic-tag></span>
|
|
799
|
+
<span>CB: <ic-tag variant=${r}>${i}</ic-tag></span>
|
|
800
|
+
</div>
|
|
801
|
+
</div>
|
|
802
|
+
`;let s=e.l1?(e.l1.hitRate*100).toFixed(1)+`%`:`N/A`,c=e.l1?`${e.l1.entries}/${e.l1.maxEntries}`:`N/A`;return t`
|
|
803
|
+
<div class="embedding-section">
|
|
804
|
+
<div class="section-heading">Embedding Infrastructure</div>
|
|
805
|
+
<div class="stats-row">
|
|
806
|
+
<ic-stat-card label="Provider" value=${e.provider??`N/A`}></ic-stat-card>
|
|
807
|
+
<ic-stat-card label="L1 Hit Rate" value=${s}></ic-stat-card>
|
|
808
|
+
<ic-stat-card label="L1 Entries" value=${c}></ic-stat-card>
|
|
809
|
+
<ic-stat-card label="Vector Search" value=${o}></ic-stat-card>
|
|
810
|
+
</div>
|
|
811
|
+
<div class="stats-row">
|
|
812
|
+
<ic-stat-card label="L1 Hits" value=${this._formatNumber(e.l1?.hits??0)}></ic-stat-card>
|
|
813
|
+
<ic-stat-card label="L1 Misses" value=${this._formatNumber(e.l1?.misses??0)}></ic-stat-card>
|
|
814
|
+
<ic-stat-card label="Circuit Breaker" value=${i}></ic-stat-card>
|
|
815
|
+
</div>
|
|
816
|
+
</div>
|
|
817
|
+
`}render(){let e=this._getFilteredResults();return t`
|
|
818
|
+
<div class="page-header">Memory Inspector</div>
|
|
819
|
+
|
|
820
|
+
<!-- Stat cards -->
|
|
821
|
+
${this._statsLoaded&&this._stats?t`
|
|
822
|
+
<div class="stats-row">
|
|
823
|
+
<ic-stat-card
|
|
824
|
+
label="Total Entries"
|
|
825
|
+
value=${this._formatNumber(this._stats.totalEntries)}
|
|
826
|
+
></ic-stat-card>
|
|
827
|
+
<ic-stat-card
|
|
828
|
+
label="Sessions"
|
|
829
|
+
value=${this._formatNumber(this._stats.totalSessions)}
|
|
830
|
+
></ic-stat-card>
|
|
831
|
+
<ic-stat-card
|
|
832
|
+
label="Vectors"
|
|
833
|
+
value=${this._formatNumber(this._stats.embeddedEntries)}
|
|
834
|
+
></ic-stat-card>
|
|
835
|
+
<ic-stat-card
|
|
836
|
+
label="DB Size"
|
|
837
|
+
value=${this._formatBytes(this._stats.dbSizeBytes)}
|
|
838
|
+
></ic-stat-card>
|
|
839
|
+
${this._stats.oldestCreatedAt==null?l:t`
|
|
840
|
+
<ic-stat-card
|
|
841
|
+
label="Oldest Entry"
|
|
842
|
+
value=${this._formatRelativeTime(this._stats.oldestCreatedAt)}
|
|
843
|
+
title=${this._formatFullDate(this._stats.oldestCreatedAt)}
|
|
844
|
+
></ic-stat-card>
|
|
845
|
+
`}
|
|
846
|
+
</div>
|
|
847
|
+
${this._stats.byType||this._stats.byTrustLevel?t`
|
|
848
|
+
<div class="stats-row">
|
|
849
|
+
${this._stats.byType?Object.entries(this._stats.byType).map(([e,n])=>t`
|
|
850
|
+
<ic-stat-card label=${e} value=${this._formatNumber(n)}></ic-stat-card>
|
|
851
|
+
`):l}
|
|
852
|
+
${this._stats.byTrustLevel?Object.entries(this._stats.byTrustLevel).map(([e,n])=>t`
|
|
853
|
+
<ic-stat-card label=${`Trust: `+e} value=${this._formatNumber(n)}></ic-stat-card>
|
|
854
|
+
`):l}
|
|
855
|
+
</div>
|
|
856
|
+
`:l}
|
|
857
|
+
${this._renderAgentChart()}
|
|
858
|
+
`:l}
|
|
859
|
+
|
|
860
|
+
<!-- Embedding Infrastructure -->
|
|
861
|
+
${this._renderEmbeddingSection()}
|
|
862
|
+
|
|
863
|
+
<!-- Creation form -->
|
|
864
|
+
<button class="create-toggle" @click=${this._toggleCreateForm}>
|
|
865
|
+
${this._createOpen?`- Hide Create Form`:`+ Create Entry`}
|
|
866
|
+
</button>
|
|
867
|
+
|
|
868
|
+
${this._createOpen?t`
|
|
869
|
+
<div class="create-form">
|
|
870
|
+
<div class="create-form-title">Create Memory Entry</div>
|
|
871
|
+
|
|
872
|
+
<div class="create-field">
|
|
873
|
+
<label class="create-label">Content *</label>
|
|
874
|
+
<textarea
|
|
875
|
+
class="create-textarea"
|
|
876
|
+
placeholder="Memory content..."
|
|
877
|
+
.value=${this._createContent}
|
|
878
|
+
@input=${e=>{this._createContent=e.target.value}}
|
|
879
|
+
></textarea>
|
|
880
|
+
</div>
|
|
881
|
+
|
|
882
|
+
<div class="create-field">
|
|
883
|
+
<label class="create-label">Tags</label>
|
|
884
|
+
<input
|
|
885
|
+
class="create-input"
|
|
886
|
+
type="text"
|
|
887
|
+
placeholder="tag1, tag2, ..."
|
|
888
|
+
.value=${this._createTags}
|
|
889
|
+
@input=${e=>{this._createTags=e.target.value}}
|
|
890
|
+
/>
|
|
891
|
+
</div>
|
|
892
|
+
|
|
893
|
+
<div class="create-field">
|
|
894
|
+
<label class="create-label">Trust Level</label>
|
|
895
|
+
<select
|
|
896
|
+
class="create-select"
|
|
897
|
+
.value=${this._createTrustLevel}
|
|
898
|
+
@change=${e=>{this._createTrustLevel=e.target.value}}
|
|
899
|
+
>
|
|
900
|
+
<option value="learned">learned</option>
|
|
901
|
+
<option value="external">external</option>
|
|
902
|
+
</select>
|
|
903
|
+
</div>
|
|
904
|
+
|
|
905
|
+
<div class="create-field">
|
|
906
|
+
<label class="create-label">Provenance</label>
|
|
907
|
+
<input
|
|
908
|
+
class="create-input"
|
|
909
|
+
type="text"
|
|
910
|
+
placeholder="Source description (optional)"
|
|
911
|
+
.value=${this._createProvenance}
|
|
912
|
+
@input=${e=>{this._createProvenance=e.target.value}}
|
|
913
|
+
/>
|
|
914
|
+
</div>
|
|
915
|
+
|
|
916
|
+
<div class="create-actions">
|
|
917
|
+
<button
|
|
918
|
+
class="create-submit"
|
|
919
|
+
?disabled=${!this._createContent.trim()||this._createSubmitting}
|
|
920
|
+
@click=${this._submitCreate}
|
|
921
|
+
>
|
|
922
|
+
${this._createSubmitting?`Creating...`:`Create`}
|
|
923
|
+
</button>
|
|
924
|
+
</div>
|
|
925
|
+
|
|
926
|
+
${this._createMessage?t`<div class="create-message create-message--${this._createMessageType}">${this._createMessage}</div>`:l}
|
|
927
|
+
</div>
|
|
928
|
+
`:l}
|
|
929
|
+
|
|
930
|
+
<!-- Mode toggle + search bar + flush -->
|
|
931
|
+
<div class="toolbar">
|
|
932
|
+
<div class="mode-toggle">
|
|
933
|
+
<button
|
|
934
|
+
class="mode-btn"
|
|
935
|
+
?data-active=${this._mode===`search`}
|
|
936
|
+
@click=${()=>this._handleModeChange(`search`)}
|
|
937
|
+
>
|
|
938
|
+
Search
|
|
939
|
+
</button>
|
|
940
|
+
<button
|
|
941
|
+
class="mode-btn"
|
|
942
|
+
?data-active=${this._mode===`browse`}
|
|
943
|
+
@click=${()=>this._handleModeChange(`browse`)}
|
|
944
|
+
>
|
|
945
|
+
Browse All
|
|
946
|
+
</button>
|
|
947
|
+
</div>
|
|
948
|
+
${this._mode===`search`?t`
|
|
949
|
+
<div class="search-wrapper">
|
|
950
|
+
<ic-search-input
|
|
951
|
+
placeholder="Search memories by content, topic, or keyword..."
|
|
952
|
+
.value=${this._query}
|
|
953
|
+
@search=${this._handleSearchEvent}
|
|
954
|
+
></ic-search-input>
|
|
955
|
+
</div>
|
|
956
|
+
`:l}
|
|
957
|
+
<div class="toolbar-right">
|
|
958
|
+
<span class="filter-label">Flush scope:</span>
|
|
959
|
+
<select
|
|
960
|
+
class="filter-select"
|
|
961
|
+
.value=${this._flushAgentId}
|
|
962
|
+
@change=${e=>{this._flushAgentId=e.target.value}}
|
|
963
|
+
>
|
|
964
|
+
<option value="">All Agents</option>
|
|
965
|
+
${this._agents.map(e=>t`<option value=${e}>${e}</option>`)}
|
|
966
|
+
</select>
|
|
967
|
+
<button class="flush-btn" @click=${this._openFlushDialog}>Flush Memory</button>
|
|
968
|
+
</div>
|
|
969
|
+
</div>
|
|
970
|
+
|
|
971
|
+
<!-- Filters row -->
|
|
972
|
+
<div class="filters-row">
|
|
973
|
+
<div class="filter-group">
|
|
974
|
+
<span class="filter-label">Type:</span>
|
|
975
|
+
${f.map(e=>t`
|
|
976
|
+
<label class="filter-checkbox">
|
|
977
|
+
<input
|
|
978
|
+
type="checkbox"
|
|
979
|
+
.checked=${this._typeFilter.has(e)}
|
|
980
|
+
@change=${()=>this._toggleTypeFilter(e)}
|
|
981
|
+
/>
|
|
982
|
+
${e}
|
|
983
|
+
</label>
|
|
984
|
+
`)}
|
|
985
|
+
</div>
|
|
986
|
+
|
|
987
|
+
<div class="filter-group">
|
|
988
|
+
<span class="filter-label">Trust:</span>
|
|
989
|
+
${p.map(e=>t`
|
|
990
|
+
<label class="filter-checkbox">
|
|
991
|
+
<input
|
|
992
|
+
type="checkbox"
|
|
993
|
+
.checked=${this._trustFilter.has(e)}
|
|
994
|
+
@change=${()=>this._toggleTrustFilter(e)}
|
|
995
|
+
/>
|
|
996
|
+
${e}
|
|
997
|
+
</label>
|
|
998
|
+
`)}
|
|
999
|
+
</div>
|
|
1000
|
+
|
|
1001
|
+
<div class="filter-group">
|
|
1002
|
+
<span class="filter-label">Agent:</span>
|
|
1003
|
+
<select
|
|
1004
|
+
class="filter-select"
|
|
1005
|
+
.value=${this._agentFilter}
|
|
1006
|
+
@change=${this._handleAgentFilterChange}
|
|
1007
|
+
>
|
|
1008
|
+
<option value="">All</option>
|
|
1009
|
+
${this._agents.map(e=>t`<option value=${e}>${e}</option>`)}
|
|
1010
|
+
</select>
|
|
1011
|
+
</div>
|
|
1012
|
+
|
|
1013
|
+
<div class="filter-group">
|
|
1014
|
+
<span class="filter-label">Date:</span>
|
|
1015
|
+
<input
|
|
1016
|
+
type="date"
|
|
1017
|
+
class="filter-date"
|
|
1018
|
+
.value=${this._dateFrom}
|
|
1019
|
+
@change=${this._handleDateFromChange}
|
|
1020
|
+
/>
|
|
1021
|
+
<span class="filter-label">to</span>
|
|
1022
|
+
<input
|
|
1023
|
+
type="date"
|
|
1024
|
+
class="filter-date"
|
|
1025
|
+
.value=${this._dateTo}
|
|
1026
|
+
@change=${this._handleDateToChange}
|
|
1027
|
+
/>
|
|
1028
|
+
</div>
|
|
1029
|
+
</div>
|
|
1030
|
+
|
|
1031
|
+
<!-- Error -->
|
|
1032
|
+
${this._error?t`<div class="error-message">${this._error}</div>`:l}
|
|
1033
|
+
|
|
1034
|
+
<!-- Bulk actions bar -->
|
|
1035
|
+
${this._selectedIds.length>0?t`
|
|
1036
|
+
<div class="bulk-bar">
|
|
1037
|
+
<span class="bulk-count">${this._selectedIds.length} selected</span>
|
|
1038
|
+
<button class="bulk-btn bulk-btn--delete" @click=${this._handleBulkDelete}>
|
|
1039
|
+
Delete Selected
|
|
1040
|
+
</button>
|
|
1041
|
+
<button class="bulk-btn bulk-btn--export" @click=${this._handleExportSelected}>
|
|
1042
|
+
Export Selected
|
|
1043
|
+
</button>
|
|
1044
|
+
</div>
|
|
1045
|
+
`:l}
|
|
1046
|
+
|
|
1047
|
+
<!-- Results area -->
|
|
1048
|
+
${this._loading?t`
|
|
1049
|
+
<div class="state-container">
|
|
1050
|
+
<div class="loading-spinner"></div>
|
|
1051
|
+
</div>
|
|
1052
|
+
`:this._searched?t`
|
|
1053
|
+
<!-- Results header -->
|
|
1054
|
+
<div class="results-header">
|
|
1055
|
+
<span class="result-count">
|
|
1056
|
+
${e.length} result${e.length===1?``:`s`}
|
|
1057
|
+
${this._mode===`browse`&&this._total>0?t` of ${this._total}`:l}
|
|
1058
|
+
</span>
|
|
1059
|
+
<button class="export-btn" @click=${this._handleExportAll}>
|
|
1060
|
+
Export JSONL
|
|
1061
|
+
</button>
|
|
1062
|
+
</div>
|
|
1063
|
+
|
|
1064
|
+
<ic-memory-table
|
|
1065
|
+
.entries=${e}
|
|
1066
|
+
?selectable=${!0}
|
|
1067
|
+
@detail-requested=${this._handleDetailRequested}
|
|
1068
|
+
@selection-change=${this._handleSelectionChange}
|
|
1069
|
+
></ic-memory-table>
|
|
1070
|
+
|
|
1071
|
+
<!-- Browse pagination controls -->
|
|
1072
|
+
${this._mode===`browse`?t`
|
|
1073
|
+
<div class="browse-controls">
|
|
1074
|
+
<span class="browse-info">
|
|
1075
|
+
${this._browseOffset+1}-${Math.min(this._browseOffset+this._browseLimit,this._total)}
|
|
1076
|
+
of ${this._total}
|
|
1077
|
+
</span>
|
|
1078
|
+
<div class="browse-nav">
|
|
1079
|
+
<button
|
|
1080
|
+
class="browse-btn"
|
|
1081
|
+
?disabled=${this._browseOffset===0}
|
|
1082
|
+
@click=${this._handleBrowsePrev}
|
|
1083
|
+
>
|
|
1084
|
+
Prev
|
|
1085
|
+
</button>
|
|
1086
|
+
<button
|
|
1087
|
+
class="browse-btn"
|
|
1088
|
+
?disabled=${this._browseOffset+this._browseLimit>=this._total}
|
|
1089
|
+
@click=${this._handleBrowseNext}
|
|
1090
|
+
>
|
|
1091
|
+
Next
|
|
1092
|
+
</button>
|
|
1093
|
+
</div>
|
|
1094
|
+
</div>
|
|
1095
|
+
`:l}
|
|
1096
|
+
`:t`
|
|
1097
|
+
<div class="empty-state">
|
|
1098
|
+
<div>Search your agent's memory</div>
|
|
1099
|
+
<div class="empty-hint">
|
|
1100
|
+
Enter a query to find stored memories by content or semantic similarity
|
|
1101
|
+
</div>
|
|
1102
|
+
</div>
|
|
1103
|
+
`}
|
|
1104
|
+
|
|
1105
|
+
<!-- Detail panel -->
|
|
1106
|
+
<ic-detail-panel
|
|
1107
|
+
?open=${this._selectedEntry!==null}
|
|
1108
|
+
panelTitle="Memory Entry"
|
|
1109
|
+
@close=${this._handleDetailClose}
|
|
1110
|
+
>
|
|
1111
|
+
<ic-memory-detail
|
|
1112
|
+
.entry=${this._selectedEntry}
|
|
1113
|
+
@delete-requested=${this._handleEntryDeleted}
|
|
1114
|
+
@close=${this._handleDetailClose}
|
|
1115
|
+
></ic-memory-detail>
|
|
1116
|
+
</ic-detail-panel>
|
|
1117
|
+
|
|
1118
|
+
<!-- Confirm dialog for bulk delete -->
|
|
1119
|
+
<ic-confirm-dialog
|
|
1120
|
+
?open=${this._confirmOpen}
|
|
1121
|
+
title="Delete Memories"
|
|
1122
|
+
message="Are you sure you want to delete ${this._selectedIds.length} selected ${this._selectedIds.length===1?`entry`:`entries`}? This cannot be undone."
|
|
1123
|
+
confirmLabel="Delete"
|
|
1124
|
+
variant="danger"
|
|
1125
|
+
@confirm=${this._confirmBulkDelete}
|
|
1126
|
+
@cancel=${this._cancelBulkDelete}
|
|
1127
|
+
></ic-confirm-dialog>
|
|
1128
|
+
|
|
1129
|
+
<!-- Flush confirm dialog -->
|
|
1130
|
+
<ic-confirm-dialog
|
|
1131
|
+
?open=${this._flushDialogOpen}
|
|
1132
|
+
title="Flush Memory"
|
|
1133
|
+
.message=${`This will permanently delete `+(this._flushAgentId?`all memory entries for agent "${this._flushAgentId}"`:`ALL memory entries`)+`. This cannot be undone.`}
|
|
1134
|
+
confirmLabel="Flush"
|
|
1135
|
+
variant="danger"
|
|
1136
|
+
@confirm=${this._confirmFlush}
|
|
1137
|
+
@cancel=${this._cancelFlush}
|
|
1138
|
+
></ic-confirm-dialog>
|
|
1139
|
+
`}};c([s({attribute:!1})],m.prototype,`apiClient`,void 0),c([s({attribute:!1})],m.prototype,`rpcClient`,void 0),c([a()],m.prototype,`_mode`,void 0),c([a()],m.prototype,`_query`,void 0),c([a()],m.prototype,`_results`,void 0),c([a()],m.prototype,`_loading`,void 0),c([a()],m.prototype,`_searched`,void 0),c([a()],m.prototype,`_error`,void 0),c([a()],m.prototype,`_stats`,void 0),c([a()],m.prototype,`_statsLoaded`,void 0),c([a()],m.prototype,`_selectedEntry`,void 0),c([a()],m.prototype,`_selectedIds`,void 0),c([a()],m.prototype,`_typeFilter`,void 0),c([a()],m.prototype,`_trustFilter`,void 0),c([a()],m.prototype,`_agentFilter`,void 0),c([a()],m.prototype,`_dateFrom`,void 0),c([a()],m.prototype,`_dateTo`,void 0),c([a()],m.prototype,`_browseOffset`,void 0),c([a()],m.prototype,`_browseLimit`,void 0),c([a()],m.prototype,`_total`,void 0),c([a()],m.prototype,`_agents`,void 0),c([a()],m.prototype,`_confirmOpen`,void 0),c([a()],m.prototype,`_createOpen`,void 0),c([a()],m.prototype,`_createContent`,void 0),c([a()],m.prototype,`_createTags`,void 0),c([a()],m.prototype,`_createTrustLevel`,void 0),c([a()],m.prototype,`_createProvenance`,void 0),c([a()],m.prototype,`_createSubmitting`,void 0),c([a()],m.prototype,`_createMessage`,void 0),c([a()],m.prototype,`_createMessageType`,void 0),c([a()],m.prototype,`_embeddingStats`,void 0),c([a()],m.prototype,`_embeddingLoading`,void 0),c([a()],m.prototype,`_flushDialogOpen`,void 0),c([a()],m.prototype,`_flushAgentId`,void 0),c([a()],m.prototype,`_flushSubmitting`,void 0),m=c([e(`ic-memory-inspector`)],m);export{m as IcMemoryInspector};
|