@christopherlittle51/postclaw 1.3.1 → 1.3.4
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/README.md +76 -690
- package/dashboard/README.md +89 -0
- package/dashboard/public/app.js +1023 -543
- package/dashboard/public/index.html +283 -75
- package/dashboard/public/styles.css +583 -126
- package/dist/dashboard/routes/config.d.ts.map +1 -1
- package/dist/dashboard/routes/config.js +17 -1
- package/dist/dashboard/routes/config.js.map +1 -1
- package/dist/dashboard/routes/graph.d.ts +2 -2
- package/dist/dashboard/routes/graph.d.ts.map +1 -1
- package/dist/dashboard/routes/graph.js +61 -23
- package/dist/dashboard/routes/graph.js.map +1 -1
- package/dist/dashboard/routes/memories.d.ts.map +1 -1
- package/dist/dashboard/routes/memories.js +97 -11
- package/dist/dashboard/routes/memories.js.map +1 -1
- package/dist/dashboard/routes/scripts.d.ts.map +1 -1
- package/dist/dashboard/routes/scripts.js +3 -1
- package/dist/dashboard/routes/scripts.js.map +1 -1
- package/dist/dashboard/routes/workspace.d.ts +4 -3
- package/dist/dashboard/routes/workspace.d.ts.map +1 -1
- package/dist/dashboard/routes/workspace.js +119 -7
- package/dist/dashboard/routes/workspace.js.map +1 -1
- package/dist/dashboard/server.js +1 -1
- package/dist/dashboard/server.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +189 -43
- package/dist/index.js.map +1 -1
- package/dist/schemas/validation.d.ts +108 -12
- package/dist/schemas/validation.d.ts.map +1 -1
- package/dist/schemas/validation.js +66 -11
- package/dist/schemas/validation.js.map +1 -1
- package/dist/scripts/bootstrap_persona.d.ts.map +1 -1
- package/dist/scripts/bootstrap_persona.js +3 -3
- package/dist/scripts/bootstrap_persona.js.map +1 -1
- package/dist/scripts/setup-db.d.ts.map +1 -1
- package/dist/scripts/setup-db.js +74 -37
- package/dist/scripts/setup-db.js.map +1 -1
- package/dist/scripts/sleep_cycle.d.ts +1 -0
- package/dist/scripts/sleep_cycle.d.ts.map +1 -1
- package/dist/scripts/sleep_cycle.js +209 -38
- package/dist/scripts/sleep_cycle.js.map +1 -1
- package/dist/services/config.d.ts +1 -0
- package/dist/services/config.d.ts.map +1 -1
- package/dist/services/config.js +15 -29
- package/dist/services/config.js.map +1 -1
- package/dist/services/db.d.ts +10 -0
- package/dist/services/db.d.ts.map +1 -1
- package/dist/services/db.js +38 -1
- package/dist/services/db.js.map +1 -1
- package/dist/services/llm.d.ts.map +1 -1
- package/dist/services/llm.js +3 -1
- package/dist/services/llm.js.map +1 -1
- package/dist/services/memoryService.d.ts +4 -2
- package/dist/services/memoryService.d.ts.map +1 -1
- package/dist/services/memoryService.js +127 -43
- package/dist/services/memoryService.js.map +1 -1
- package/dist/services/personaService.d.ts +25 -0
- package/dist/services/personaService.d.ts.map +1 -1
- package/dist/services/personaService.js +79 -0
- package/dist/services/personaService.js.map +1 -1
- package/dist/tests/dashboard-schemas.test.js +71 -1
- package/dist/tests/dashboard-schemas.test.js.map +1 -1
- package/openclaw.plugin.json +5 -0
- package/package.json +2 -1
- package/schemas/README.md +64 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
<!DOCTYPE html>
|
|
2
2
|
<html lang="en">
|
|
3
|
+
|
|
3
4
|
<head>
|
|
4
5
|
<meta charset="UTF-8" />
|
|
5
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
@@ -15,14 +16,22 @@
|
|
|
15
16
|
<!-- Custom styles -->
|
|
16
17
|
<link rel="stylesheet" href="/styles.css" />
|
|
17
18
|
</head>
|
|
18
|
-
|
|
19
|
+
|
|
20
|
+
<body>
|
|
19
21
|
<!-- Header -->
|
|
20
|
-
<header class="dashboard-header ambient amb-surface
|
|
22
|
+
<header class="dashboard-header ambient amb-surface amb-chamfer amb-elevation-3">
|
|
21
23
|
<div class="header-content">
|
|
22
24
|
<h1>🦐 PostClaw</h1>
|
|
23
25
|
<div class="header-controls">
|
|
26
|
+
<div class="light-slider-group">
|
|
27
|
+
<label for="key-light-slider">🌑</label>
|
|
28
|
+
<input type="range" id="key-light-slider" class="light-slider" min="0.08" max="0.92" step="0.01"
|
|
29
|
+
value="0.22" />
|
|
30
|
+
<label for="key-light-slider">☀️</label>
|
|
31
|
+
<span id="key-light-value" class="light-value">0.22</span>
|
|
32
|
+
</div>
|
|
24
33
|
<label for="agent-select">Agent:</label>
|
|
25
|
-
<select id="agent-select" class="ambient amb-surface amb-fillet amb-elevation-
|
|
34
|
+
<select id="agent-select" class="ambient amb-surface-concave amb-fillet amb-elevation-0">
|
|
26
35
|
<option value="main">main</option>
|
|
27
36
|
</select>
|
|
28
37
|
</div>
|
|
@@ -30,12 +39,14 @@
|
|
|
30
39
|
</header>
|
|
31
40
|
|
|
32
41
|
<!-- Tab Navigation -->
|
|
33
|
-
<nav class="tab-nav ambient amb-surface amb-chamfer amb-elevation-
|
|
34
|
-
<button class="tab-btn active" data-tab="personas">🎭
|
|
35
|
-
|
|
36
|
-
<button class="tab-btn" data-tab="
|
|
37
|
-
|
|
38
|
-
<button class="tab-btn" data-tab="
|
|
42
|
+
<nav class="tab-nav ambient amb-surface amb-chamfer amb-elevation-2">
|
|
43
|
+
<button class="tab-btn active ambient amb-surface-convex amb-fillet amb-elevation-1" data-tab="personas">🎭
|
|
44
|
+
Personas</button>
|
|
45
|
+
<button class="tab-btn ambient amb-surface-convex amb-fillet amb-elevation-1" data-tab="memories">🧠
|
|
46
|
+
Memories</button>
|
|
47
|
+
<button class="tab-btn ambient amb-surface-convex amb-fillet amb-elevation-1" data-tab="graph">🕸️ Graph</button>
|
|
48
|
+
<button class="tab-btn ambient amb-surface-convex amb-fillet amb-elevation-1" data-tab="scripts">⚡ Scripts</button>
|
|
49
|
+
<button class="tab-btn ambient amb-surface-convex amb-fillet amb-elevation-1" data-tab="config">⚙️ Config</button>
|
|
39
50
|
</nav>
|
|
40
51
|
|
|
41
52
|
<!-- Tab Panels -->
|
|
@@ -45,23 +56,23 @@
|
|
|
45
56
|
<section id="tab-personas" class="tab-panel active">
|
|
46
57
|
<div class="panel-header">
|
|
47
58
|
<h2>Persona Manager</h2>
|
|
48
|
-
<button id="btn-new-persona" class="btn-primary ambient amb-surface amb-chamfer amb-elevation-
|
|
59
|
+
<button id="btn-new-persona" class="btn-primary ambient amb-surface-convex amb-chamfer amb-elevation-2">
|
|
49
60
|
+ New Persona
|
|
50
61
|
</button>
|
|
51
62
|
</div>
|
|
52
63
|
|
|
53
64
|
<!-- Create/Edit form (hidden by default) -->
|
|
54
|
-
<div id="persona-form" class="form-card ambient amb-surface amb-
|
|
65
|
+
<div id="persona-form" class="form-card ambient amb-surface amb-chamfer amb-elevation-2" style="display:none;">
|
|
55
66
|
<input type="hidden" id="persona-form-id" />
|
|
56
67
|
<div class="form-row">
|
|
57
68
|
<label for="persona-category">Category</label>
|
|
58
69
|
<input id="persona-category" type="text" placeholder="e.g., communication_style" maxlength="50"
|
|
59
|
-
|
|
70
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
60
71
|
</div>
|
|
61
72
|
<div class="form-row">
|
|
62
73
|
<label for="persona-content">Content</label>
|
|
63
74
|
<textarea id="persona-content" rows="4" placeholder="Persona rule or instruction..."
|
|
64
|
-
|
|
75
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0"></textarea>
|
|
65
76
|
</div>
|
|
66
77
|
<div class="form-row form-row-inline">
|
|
67
78
|
<label>
|
|
@@ -69,10 +80,10 @@
|
|
|
69
80
|
</label>
|
|
70
81
|
</div>
|
|
71
82
|
<div class="form-actions">
|
|
72
|
-
<button id="btn-save-persona" class="btn-primary ambient amb-surface amb-chamfer amb-elevation-1
|
|
83
|
+
<button id="btn-save-persona" class="btn-primary ambient amb-surface-convex amb-chamfer amb-elevation-1">
|
|
73
84
|
Save
|
|
74
85
|
</button>
|
|
75
|
-
<button id="btn-cancel-persona" class="btn-secondary ambient amb-surface amb-fillet amb-elevation-1">
|
|
86
|
+
<button id="btn-cancel-persona" class="btn-secondary ambient amb-surface-convex amb-fillet amb-elevation-1">
|
|
76
87
|
Cancel
|
|
77
88
|
</button>
|
|
78
89
|
</div>
|
|
@@ -83,9 +94,10 @@
|
|
|
83
94
|
<!-- Workspace files panel -->
|
|
84
95
|
<div class="panel-section">
|
|
85
96
|
<h3>📄 Workspace Files</h3>
|
|
86
|
-
<p class="hint">View .md files from the
|
|
97
|
+
<p class="hint">View .md files from the workspace. Import directly into personas or memories.</p>
|
|
87
98
|
<div id="workspace-files" class="workspace-files"></div>
|
|
88
|
-
<pre id="workspace-content" class="workspace-content ambient amb-surface-
|
|
99
|
+
<pre id="workspace-content" class="workspace-content ambient amb-surface-concave amb-fillet amb-elevation-0"
|
|
100
|
+
style="display:none;"></pre>
|
|
89
101
|
</div>
|
|
90
102
|
</section>
|
|
91
103
|
|
|
@@ -93,19 +105,19 @@
|
|
|
93
105
|
<section id="tab-memories" class="tab-panel">
|
|
94
106
|
<div class="panel-header">
|
|
95
107
|
<h2>Memory Manager</h2>
|
|
96
|
-
<button id="btn-new-memory" class="btn-primary ambient amb-surface amb-chamfer amb-elevation-
|
|
108
|
+
<button id="btn-new-memory" class="btn-primary ambient amb-surface-convex amb-chamfer amb-elevation-2">
|
|
97
109
|
+ New Memory
|
|
98
110
|
</button>
|
|
99
|
-
<button id="btn-import-memory" class="btn-secondary ambient amb-surface amb-fillet amb-elevation-1">
|
|
111
|
+
<button id="btn-import-memory" class="btn-secondary ambient amb-surface-convex amb-fillet amb-elevation-1">
|
|
100
112
|
📥 Import
|
|
101
113
|
</button>
|
|
102
114
|
</div>
|
|
103
115
|
|
|
104
116
|
<!-- Filters -->
|
|
105
|
-
<div class="filters ambient amb-surface amb-fillet amb-elevation-
|
|
117
|
+
<div class="filters ambient amb-surface-concave amb-fillet amb-elevation-0">
|
|
106
118
|
<input id="memory-search" type="text" placeholder="Search memories..."
|
|
107
|
-
|
|
108
|
-
<select id="memory-tier-filter" class="ambient amb-surface-
|
|
119
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
120
|
+
<select id="memory-tier-filter" class="ambient amb-surface-concave amb-fillet amb-elevation-0">
|
|
109
121
|
<option value="">All Tiers</option>
|
|
110
122
|
<option value="permanent">Permanent</option>
|
|
111
123
|
<option value="stable">Stable</option>
|
|
@@ -113,7 +125,7 @@
|
|
|
113
125
|
<option value="session">Session</option>
|
|
114
126
|
<option value="volatile">Volatile</option>
|
|
115
127
|
</select>
|
|
116
|
-
<select id="memory-archived-filter" class="ambient amb-surface-
|
|
128
|
+
<select id="memory-archived-filter" class="ambient amb-surface-concave amb-fillet amb-elevation-0">
|
|
117
129
|
<option value="false">Active</option>
|
|
118
130
|
<option value="true">Archived</option>
|
|
119
131
|
<option value="all">All</option>
|
|
@@ -121,22 +133,68 @@
|
|
|
121
133
|
</div>
|
|
122
134
|
|
|
123
135
|
<!-- Memory form -->
|
|
124
|
-
<div id="memory-form" class="form-card ambient amb-surface amb-
|
|
136
|
+
<div id="memory-form" class="form-card ambient amb-surface amb-chamfer amb-elevation-2" style="display:none; max-width: 1000px; max-height: 80vh; overflow-y: auto;">
|
|
125
137
|
<input type="hidden" id="memory-form-id" />
|
|
126
138
|
<div class="form-row">
|
|
127
139
|
<label for="memory-content">Content</label>
|
|
128
140
|
<textarea id="memory-content" rows="3" placeholder="Memory content..."
|
|
129
|
-
|
|
141
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0"></textarea>
|
|
130
142
|
</div>
|
|
131
|
-
<div class="form-row form-row-grid">
|
|
143
|
+
<div class="form-row form-row-grid" style="grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));">
|
|
144
|
+
<div>
|
|
145
|
+
<label for="memory-agent_id">Agent ID</label>
|
|
146
|
+
<input id="memory-agent_id" type="text" class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
147
|
+
</div>
|
|
148
|
+
<div>
|
|
149
|
+
<label for="memory-access_scope">Access Scope</label>
|
|
150
|
+
<select id="memory-access_scope" class="ambient amb-surface-concave amb-fillet amb-elevation-0">
|
|
151
|
+
<option value="private">Private</option>
|
|
152
|
+
<option value="shared">Shared</option>
|
|
153
|
+
<option value="global">Global</option>
|
|
154
|
+
</select>
|
|
155
|
+
</div>
|
|
156
|
+
<div>
|
|
157
|
+
<label for="memory-content_hash">Content Hash</label>
|
|
158
|
+
<input id="memory-content_hash" type="text" class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
159
|
+
</div>
|
|
132
160
|
<div>
|
|
133
161
|
<label for="memory-category">Category</label>
|
|
134
|
-
<input id="memory-category" type="text" placeholder="e.g., preference"
|
|
135
|
-
|
|
162
|
+
<input id="memory-category" type="text" placeholder="e.g., preference" class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
163
|
+
</div>
|
|
164
|
+
<div>
|
|
165
|
+
<label for="memory-source_uri">Source URI</label>
|
|
166
|
+
<input id="memory-source_uri" type="text" class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
167
|
+
</div>
|
|
168
|
+
<div>
|
|
169
|
+
<label for="memory-volatility">Volatility</label>
|
|
170
|
+
<select id="memory-volatility" class="ambient amb-surface-concave amb-fillet amb-elevation-0">
|
|
171
|
+
<option value="low">Low</option>
|
|
172
|
+
<option value="medium">Medium</option>
|
|
173
|
+
<option value="high">High</option>
|
|
174
|
+
</select>
|
|
175
|
+
</div>
|
|
176
|
+
<div>
|
|
177
|
+
<label for="memory-is_pointer">Is Pointer</label>
|
|
178
|
+
<select id="memory-is_pointer" class="ambient amb-surface-concave amb-fillet amb-elevation-0">
|
|
179
|
+
<option value="false">False</option>
|
|
180
|
+
<option value="true">True</option>
|
|
181
|
+
</select>
|
|
182
|
+
</div>
|
|
183
|
+
<div>
|
|
184
|
+
<label for="memory-embedding_model">Embedding Model</label>
|
|
185
|
+
<input id="memory-embedding_model" type="text" class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
186
|
+
</div>
|
|
187
|
+
<div>
|
|
188
|
+
<label for="memory-token_count">Token Count</label>
|
|
189
|
+
<input id="memory-token_count" type="number" class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
190
|
+
</div>
|
|
191
|
+
<div>
|
|
192
|
+
<label for="memory-confidence">Confidence</label>
|
|
193
|
+
<input id="memory-confidence" type="number" step="0.01" class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
136
194
|
</div>
|
|
137
195
|
<div>
|
|
138
196
|
<label for="memory-tier">Tier</label>
|
|
139
|
-
<select id="memory-tier" class="ambient amb-surface-
|
|
197
|
+
<select id="memory-tier" class="ambient amb-surface-concave amb-fillet amb-elevation-0">
|
|
140
198
|
<option value="daily">Daily</option>
|
|
141
199
|
<option value="stable">Stable</option>
|
|
142
200
|
<option value="permanent">Permanent</option>
|
|
@@ -144,30 +202,104 @@
|
|
|
144
202
|
<option value="volatile">Volatile</option>
|
|
145
203
|
</select>
|
|
146
204
|
</div>
|
|
205
|
+
<div>
|
|
206
|
+
<label for="memory-usefulness_score">Usefulness Score</label>
|
|
207
|
+
<input id="memory-usefulness_score" type="number" step="0.1" class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
208
|
+
</div>
|
|
209
|
+
<div>
|
|
210
|
+
<label for="memory-injection_count">Injection Count</label>
|
|
211
|
+
<input id="memory-injection_count" type="number" class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
212
|
+
</div>
|
|
213
|
+
<div>
|
|
214
|
+
<label for="memory-access_count">Access Count</label>
|
|
215
|
+
<input id="memory-access_count" type="number" class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
216
|
+
</div>
|
|
217
|
+
<div>
|
|
218
|
+
<label for="memory-last_injected_at">Last Injected At (ISO)</label>
|
|
219
|
+
<input id="memory-last_injected_at" type="text" class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
220
|
+
</div>
|
|
221
|
+
<div>
|
|
222
|
+
<label for="memory-last_accessed_at">Last Accessed At (ISO)</label>
|
|
223
|
+
<input id="memory-last_accessed_at" type="text" class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
224
|
+
</div>
|
|
225
|
+
<div>
|
|
226
|
+
<label for="memory-expires_at">Expires At (ISO)</label>
|
|
227
|
+
<input id="memory-expires_at" type="text" class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
228
|
+
</div>
|
|
229
|
+
<div>
|
|
230
|
+
<label for="memory-created_at">Created At (ISO)</label>
|
|
231
|
+
<input id="memory-created_at" type="text" class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
232
|
+
</div>
|
|
233
|
+
<div>
|
|
234
|
+
<label for="memory-updated_at">Updated At (ISO)</label>
|
|
235
|
+
<input id="memory-updated_at" type="text" class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
236
|
+
</div>
|
|
237
|
+
<div>
|
|
238
|
+
<label for="memory-is_archived">Is Archived</label>
|
|
239
|
+
<select id="memory-is_archived" class="ambient amb-surface-concave amb-fillet amb-elevation-0">
|
|
240
|
+
<option value="false">False</option>
|
|
241
|
+
<option value="true">True</option>
|
|
242
|
+
</select>
|
|
243
|
+
</div>
|
|
244
|
+
<div>
|
|
245
|
+
<label for="memory-superseded_by">Superseded By (UUID)</label>
|
|
246
|
+
<input id="memory-superseded_by" type="text" class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
247
|
+
</div>
|
|
248
|
+
</div>
|
|
249
|
+
<div class="form-row">
|
|
250
|
+
<label for="memory-embedding">Embedding (Raw JSON array)</label>
|
|
251
|
+
<input id="memory-embedding" type="text" class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
252
|
+
</div>
|
|
253
|
+
<div class="form-row">
|
|
254
|
+
<label for="memory-metadata">Metadata (Raw JSON object)</label>
|
|
255
|
+
<input id="memory-metadata" type="text" class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
256
|
+
</div>
|
|
257
|
+
|
|
258
|
+
<!-- Memory Links Section -->
|
|
259
|
+
<div class="memory-links-section">
|
|
260
|
+
<h4>🔗 Linked Nodes</h4>
|
|
261
|
+
<div id="memory-edge-list" class="edge-list"></div>
|
|
262
|
+
<div class="link-form">
|
|
263
|
+
<input id="link-target-search" type="text" placeholder="Search for target memory or persona..."
|
|
264
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
265
|
+
<div id="link-target-results" class="link-search-results" style="display:none;"></div>
|
|
266
|
+
<input type="hidden" id="link-target-id" />
|
|
267
|
+
<input type="hidden" id="link-target-type" />
|
|
268
|
+
<input id="link-relationship" type="text" placeholder="Relationship (e.g., related_to, supports)"
|
|
269
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
270
|
+
<button id="btn-add-link"
|
|
271
|
+
class="btn-secondary btn-sm ambient amb-surface-convex amb-fillet amb-elevation-1">
|
|
272
|
+
+ Add Link
|
|
273
|
+
</button>
|
|
274
|
+
</div>
|
|
147
275
|
</div>
|
|
276
|
+
|
|
148
277
|
<div class="form-actions">
|
|
149
|
-
<button id="btn-save-memory"
|
|
150
|
-
|
|
278
|
+
<button id="btn-save-memory"
|
|
279
|
+
class="btn-primary ambient amb-surface-convex amb-chamfer amb-elevation-1">Save</button>
|
|
280
|
+
<button id="btn-cancel-memory"
|
|
281
|
+
class="btn-secondary ambient amb-surface-convex amb-fillet amb-elevation-1">Cancel</button>
|
|
151
282
|
</div>
|
|
152
283
|
</div>
|
|
153
284
|
|
|
154
285
|
<!-- Import form -->
|
|
155
|
-
<div id="import-form" class="form-card ambient amb-surface amb-
|
|
286
|
+
<div id="import-form" class="form-card ambient amb-surface amb-chamfer amb-elevation-2" style="display:none;">
|
|
156
287
|
<div class="form-row">
|
|
157
288
|
<label for="import-content">Markdown Content</label>
|
|
158
289
|
<textarea id="import-content" rows="8" placeholder="Paste markdown content here..."
|
|
159
|
-
|
|
290
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0"></textarea>
|
|
160
291
|
</div>
|
|
161
292
|
<div class="form-row">
|
|
162
293
|
<label for="import-filename">Source Filename (optional)</label>
|
|
163
294
|
<input id="import-filename" type="text" placeholder="e.g., memory.md"
|
|
164
|
-
|
|
295
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
165
296
|
</div>
|
|
166
297
|
<div class="form-actions">
|
|
167
|
-
<button id="btn-run-import" class="btn-primary ambient amb-surface amb-chamfer amb-elevation-1
|
|
298
|
+
<button id="btn-run-import" class="btn-primary ambient amb-surface-convex amb-chamfer amb-elevation-1">
|
|
168
299
|
Import
|
|
169
300
|
</button>
|
|
170
|
-
<button id="btn-cancel-import"
|
|
301
|
+
<button id="btn-cancel-import"
|
|
302
|
+
class="btn-secondary ambient amb-surface-convex amb-fillet amb-elevation-1">Cancel</button>
|
|
171
303
|
</div>
|
|
172
304
|
</div>
|
|
173
305
|
|
|
@@ -180,26 +312,27 @@
|
|
|
180
312
|
<div class="panel-header">
|
|
181
313
|
<h2>Knowledge Graph</h2>
|
|
182
314
|
<div class="graph-controls">
|
|
183
|
-
<button id="btn-fit-graph" class="btn-secondary ambient amb-surface amb-fillet amb-elevation-1">
|
|
315
|
+
<button id="btn-fit-graph" class="btn-secondary ambient amb-surface-convex amb-fillet amb-elevation-1">
|
|
184
316
|
📐 Fit
|
|
185
317
|
</button>
|
|
186
|
-
<button id="btn-toggle-labels" class="btn-secondary ambient amb-surface amb-fillet amb-elevation-1">
|
|
318
|
+
<button id="btn-toggle-labels" class="btn-secondary ambient amb-surface-convex amb-fillet amb-elevation-1">
|
|
187
319
|
🏷️ Labels On
|
|
188
320
|
</button>
|
|
189
|
-
<button id="btn-refresh-graph" class="btn-secondary ambient amb-surface amb-fillet amb-elevation-1">
|
|
321
|
+
<button id="btn-refresh-graph" class="btn-secondary ambient amb-surface-convex amb-fillet amb-elevation-1">
|
|
190
322
|
🔄 Refresh
|
|
191
323
|
</button>
|
|
192
324
|
</div>
|
|
193
325
|
</div>
|
|
194
326
|
<div class="graph-wrapper">
|
|
195
|
-
<div id="graph-container" class="graph-container ambient amb-surface-
|
|
327
|
+
<div id="graph-container" class="graph-container ambient amb-surface-concave amb-chamfer amb-elevation-0">
|
|
196
328
|
<svg id="graph-svg"></svg>
|
|
197
329
|
<div id="graph-legend" class="graph-legend"></div>
|
|
198
330
|
</div>
|
|
199
331
|
<div id="graph-info" class="graph-info ambient amb-surface amb-fillet amb-elevation-1">
|
|
200
|
-
<span id="graph-stats">Scroll to zoom • Drag to pan • Click a node for details</span>
|
|
332
|
+
<span id="graph-stats">Scroll to zoom • Drag to pan • Click a node for details • Shift+drag to link</span>
|
|
201
333
|
</div>
|
|
202
|
-
<div id="graph-detail" class="graph-detail-panel ambient amb-surface amb-chamfer amb-elevation-2"
|
|
334
|
+
<div id="graph-detail" class="graph-detail-panel ambient amb-surface amb-chamfer amb-elevation-2"
|
|
335
|
+
style="display:none;"></div>
|
|
203
336
|
</div>
|
|
204
337
|
</section>
|
|
205
338
|
|
|
@@ -211,8 +344,9 @@
|
|
|
211
344
|
<div class="scripts-grid">
|
|
212
345
|
<div class="script-card ambient amb-surface amb-chamfer amb-elevation-2">
|
|
213
346
|
<h3>💤 Sleep Cycle</h3>
|
|
214
|
-
<p>Run knowledge graph maintenance: episodic consolidation, duplicate detection, low-value cleanup, and link
|
|
215
|
-
|
|
347
|
+
<p>Run knowledge graph maintenance: episodic consolidation, duplicate detection, low-value cleanup, and link
|
|
348
|
+
discovery.</p>
|
|
349
|
+
<button id="btn-run-sleep" class="btn-primary ambient amb-surface-convex amb-chamfer amb-elevation-1">
|
|
216
350
|
Run Sleep Cycle
|
|
217
351
|
</button>
|
|
218
352
|
<div id="sleep-status" class="script-status"></div>
|
|
@@ -222,9 +356,10 @@
|
|
|
222
356
|
<p>Bootstrap a Markdown persona file into the agent_persona table.</p>
|
|
223
357
|
<div class="form-row">
|
|
224
358
|
<input id="persona-import-file" type="text" placeholder="/path/to/SOUL.md"
|
|
225
|
-
|
|
359
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
226
360
|
</div>
|
|
227
|
-
<button id="btn-run-persona-import"
|
|
361
|
+
<button id="btn-run-persona-import"
|
|
362
|
+
class="btn-primary ambient amb-surface-convex amb-chamfer amb-elevation-1">
|
|
228
363
|
Import Persona
|
|
229
364
|
</button>
|
|
230
365
|
<div id="persona-import-status" class="script-status"></div>
|
|
@@ -237,10 +372,10 @@
|
|
|
237
372
|
<div class="panel-header">
|
|
238
373
|
<h2>Plugin Configuration</h2>
|
|
239
374
|
<div class="header-actions">
|
|
240
|
-
<button id="btn-reset-config" class="btn-secondary ambient amb-surface amb-fillet amb-elevation-1">
|
|
375
|
+
<button id="btn-reset-config" class="btn-secondary ambient amb-surface-convex amb-fillet amb-elevation-1">
|
|
241
376
|
Reset to Defaults
|
|
242
377
|
</button>
|
|
243
|
-
<button id="btn-save-config" class="btn-primary ambient amb-surface amb-chamfer amb-elevation-
|
|
378
|
+
<button id="btn-save-config" class="btn-primary ambient amb-surface-convex amb-chamfer amb-elevation-2">
|
|
244
379
|
Save All Settings
|
|
245
380
|
</button>
|
|
246
381
|
</div>
|
|
@@ -250,91 +385,163 @@
|
|
|
250
385
|
<!-- RAG Settings -->
|
|
251
386
|
<div class="config-card ambient amb-surface amb-chamfer amb-elevation-2">
|
|
252
387
|
<h3>🔍 RAG & Search</h3>
|
|
253
|
-
<p class="hint">
|
|
388
|
+
<p class="hint">Controls how memories are retrieved and injected into the agent's context window.</p>
|
|
254
389
|
<div class="form-row">
|
|
255
390
|
<label for="cfg-rag-semantic-limit">Semantic Matches (Direct)</label>
|
|
256
|
-
<input id="cfg-rag-semantic-limit" type="number" min="1" max="50"
|
|
257
|
-
|
|
391
|
+
<input id="cfg-rag-semantic-limit" type="number" min="1" max="50" placeholder="7"
|
|
392
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
393
|
+
<small>Number of memories fetched via vector cosine similarity before graph traversal. Higher = more direct
|
|
394
|
+
context but slower.</small>
|
|
258
395
|
</div>
|
|
259
396
|
<div class="form-row">
|
|
260
397
|
<label for="cfg-rag-total-limit">Total Matches (Final)</label>
|
|
261
|
-
<input id="cfg-rag-total-limit" type="number" min="1" max="100"
|
|
262
|
-
|
|
398
|
+
<input id="cfg-rag-total-limit" type="number" min="1" max="100" placeholder="15"
|
|
399
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
400
|
+
<small>Maximum total memories injected into context after adding graph-linked results. Cap this to avoid
|
|
401
|
+
overloading the context window.</small>
|
|
263
402
|
</div>
|
|
264
403
|
<div class="form-row">
|
|
265
404
|
<label for="cfg-rag-linked-similarity">Linked Similarity Floor</label>
|
|
266
|
-
<input id="cfg-rag-linked-similarity" type="number" step="0.01" min="0" max="1"
|
|
267
|
-
|
|
405
|
+
<input id="cfg-rag-linked-similarity" type="number" step="0.01" min="0" max="1" placeholder="0.80"
|
|
406
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
407
|
+
<small>Boosted similarity score assigned to memories found via graph traversal (linked). Higher = more
|
|
408
|
+
weight given to linked results. (0.0–1.0)</small>
|
|
409
|
+
</div>
|
|
410
|
+
<div class="form-row">
|
|
411
|
+
<label for="cfg-rag-max-traversal-depth">Graph Traversal Depth</label>
|
|
412
|
+
<input id="cfg-rag-max-traversal-depth" type="number" min="1" max="10" placeholder="3"
|
|
413
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
414
|
+
<small>Maximum number of edge hops during recursive graph traversal (A→B→C = depth 2). Higher depth
|
|
415
|
+
discovers distant connections but increases query time.</small>
|
|
268
416
|
</div>
|
|
269
417
|
</div>
|
|
270
418
|
|
|
271
419
|
<!-- Persona -->
|
|
272
420
|
<div class="config-card ambient amb-surface amb-chamfer amb-elevation-2">
|
|
273
421
|
<h3>🎭 Persona</h3>
|
|
274
|
-
<p class="hint">
|
|
422
|
+
<p class="hint">Controls how persona traits are selected and injected into the agent's system prompt.</p>
|
|
275
423
|
<div class="form-row">
|
|
276
424
|
<label for="cfg-persona-situational-limit">Situational Persona Limit</label>
|
|
277
|
-
<input id="cfg-persona-situational-limit" type="number" min="1" max="20"
|
|
278
|
-
|
|
425
|
+
<input id="cfg-persona-situational-limit" type="number" min="1" max="20" placeholder="3"
|
|
426
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
427
|
+
<small>Number of context-relevant persona traits injected per prompt (in addition to always-active traits).
|
|
428
|
+
Higher = more identity context.</small>
|
|
279
429
|
</div>
|
|
280
430
|
</div>
|
|
281
431
|
|
|
282
432
|
<!-- System Prompt Templates -->
|
|
283
433
|
<div class="config-card config-card-full ambient amb-surface amb-chamfer amb-elevation-2">
|
|
284
434
|
<h3>📝 System Prompt Templates</h3>
|
|
285
|
-
<p class="hint">These blocks are injected into the agent's system prompt. Changes take effect on the next user
|
|
435
|
+
<p class="hint">These blocks are injected into the agent's system prompt. Changes take effect on the next user
|
|
436
|
+
message. Use concise, behavior-guiding language.</p>
|
|
286
437
|
<div class="form-row">
|
|
287
438
|
<label for="cfg-prompt-memory">Memory Management Rules</label>
|
|
288
|
-
<textarea id="cfg-prompt-memory" rows="
|
|
439
|
+
<textarea id="cfg-prompt-memory" rows="5"
|
|
440
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0 code-font"></textarea>
|
|
441
|
+
<small>Instructions for how the agent should silently save, update, and link knowledge.</small>
|
|
289
442
|
</div>
|
|
290
443
|
<div class="form-row">
|
|
291
444
|
<label for="cfg-prompt-persona">Persona Management Rules</label>
|
|
292
|
-
<textarea id="cfg-prompt-persona" rows="
|
|
445
|
+
<textarea id="cfg-prompt-persona" rows="4"
|
|
446
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0 code-font"></textarea>
|
|
447
|
+
<small>Instructions for when/how the agent modifies its own persona traits.</small>
|
|
293
448
|
</div>
|
|
294
449
|
<div class="form-row">
|
|
295
450
|
<label for="cfg-prompt-heartbeat">Heartbeat / Autonomous Rules</label>
|
|
296
|
-
<textarea id="cfg-prompt-heartbeat" rows="
|
|
297
|
-
|
|
451
|
+
<textarea id="cfg-prompt-heartbeat" rows="4"
|
|
452
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0 code-font"></textarea>
|
|
453
|
+
<small>Autonomous loop behavior. Use {{heartbeatFilePath}} as a placeholder for the path below.</small>
|
|
298
454
|
</div>
|
|
299
455
|
<div class="form-row">
|
|
300
456
|
<label for="cfg-prompt-heartbeat-path">Heartbeat File Path</label>
|
|
301
|
-
<input id="cfg-prompt-heartbeat-path" type="text"
|
|
457
|
+
<input id="cfg-prompt-heartbeat-path" type="text"
|
|
458
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
459
|
+
<small>Absolute path to the heartbeat task file the agent checks on each autonomous loop.</small>
|
|
302
460
|
</div>
|
|
303
461
|
</div>
|
|
304
462
|
|
|
305
463
|
<!-- Sleep Cycle -->
|
|
306
464
|
<div class="config-card config-card-full ambient amb-surface amb-chamfer amb-elevation-2">
|
|
307
465
|
<h3>💤 Sleep & Maintenance</h3>
|
|
308
|
-
<p class="hint">
|
|
466
|
+
<p class="hint">Thresholds for the background knowledge graph optimization cycle. These run when "Sleep Cycle"
|
|
467
|
+
is triggered.</p>
|
|
309
468
|
<div class="form-row-grid">
|
|
310
469
|
<div class="form-row">
|
|
311
470
|
<label for="cfg-sleep-dedup-threshold">Dedup Similarity</label>
|
|
312
|
-
<input id="cfg-sleep-dedup-threshold" type="number" step="0.01" min="0" max="1"
|
|
313
|
-
|
|
471
|
+
<input id="cfg-sleep-dedup-threshold" type="number" step="0.01" min="0" max="1" placeholder="0.80"
|
|
472
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
473
|
+
<small>Merge memories with cosine similarity above this threshold. Higher = stricter dedup (fewer merges).
|
|
474
|
+
Default 0.80.</small>
|
|
314
475
|
</div>
|
|
315
476
|
<div class="form-row">
|
|
316
477
|
<label for="cfg-sleep-low-value-age">Cleanup Age (Days)</label>
|
|
317
|
-
<input id="cfg-sleep-low-value-age" type="number" min="1" max="365"
|
|
318
|
-
|
|
478
|
+
<input id="cfg-sleep-low-value-age" type="number" min="1" max="365" placeholder="7"
|
|
479
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
480
|
+
<small>Archive unused memories older than this many days. Prevents memory bloat over time.</small>
|
|
319
481
|
</div>
|
|
320
482
|
<div class="form-row">
|
|
321
483
|
<label for="cfg-sleep-link-min">Link Min Similarity</label>
|
|
322
|
-
<input id="cfg-sleep-link-min" type="number" step="0.01" min="0" max="1"
|
|
484
|
+
<input id="cfg-sleep-link-min" type="number" step="0.01" min="0" max="1" placeholder="0.65"
|
|
485
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
486
|
+
<small>During sleep, only auto-create links between memories with similarity above this floor.</small>
|
|
323
487
|
</div>
|
|
324
488
|
<div class="form-row">
|
|
325
489
|
<label for="cfg-sleep-link-max">Link Max Similarity</label>
|
|
326
|
-
<input id="cfg-sleep-link-max" type="number" step="0.01" min="0" max="1"
|
|
490
|
+
<input id="cfg-sleep-link-max" type="number" step="0.01" min="0" max="1" placeholder="0.92"
|
|
491
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
492
|
+
<small>During sleep, skip link creation between memories with similarity above this ceiling (likely
|
|
493
|
+
duplicates).</small>
|
|
494
|
+
</div>
|
|
495
|
+
<div class="form-row">
|
|
496
|
+
<label for="cfg-sleep-episodic-batch">Episodic Batch Limit</label>
|
|
497
|
+
<input id="cfg-sleep-episodic-batch" type="number" min="1" max="100" placeholder="100"
|
|
498
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
499
|
+
<small>Number of episodic log entries to consolidate per sleep cycle.</small>
|
|
500
|
+
</div>
|
|
501
|
+
<div class="form-row">
|
|
502
|
+
<label for="cfg-sleep-dedup-scan">Duplicate Scan Limit</label>
|
|
503
|
+
<input id="cfg-sleep-dedup-scan" type="number" min="1" max="500" placeholder="200"
|
|
504
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
505
|
+
<small>Number of memories to scan for near-duplicates per sleep cycle.</small>
|
|
506
|
+
</div>
|
|
507
|
+
<div class="form-row">
|
|
508
|
+
<label for="cfg-sleep-link-candidates">Link Candidates Per Memory</label>
|
|
509
|
+
<input id="cfg-sleep-link-candidates" type="number" min="1" max="50" placeholder="5"
|
|
510
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
511
|
+
<small>Number of similar memories to consider for link creation per source memory.</small>
|
|
512
|
+
</div>
|
|
513
|
+
<div class="form-row">
|
|
514
|
+
<label for="cfg-sleep-link-batch">Link Batch Size</label>
|
|
515
|
+
<input id="cfg-sleep-link-batch" type="number" min="1" max="100" placeholder="20"
|
|
516
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
517
|
+
<small>Number of candidate pairs to send to LLM for classification in each batch.</small>
|
|
518
|
+
</div>
|
|
519
|
+
<div class="form-row">
|
|
520
|
+
<label for="cfg-sleep-link-scan">Link Scan Limit</label>
|
|
521
|
+
<input id="cfg-sleep-link-scan" type="number" min="1" max="500" placeholder="50"
|
|
522
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
523
|
+
<small>Total number of memories to scan for potential links per sleep cycle.</small>
|
|
524
|
+
</div>
|
|
525
|
+
<div class="form-row">
|
|
526
|
+
<label for="cfg-sleep-protected-tiers">Protected Tiers (Low-Value Cleanup)</label>
|
|
527
|
+
<input id="cfg-sleep-protected-tiers" type="text"
|
|
528
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" placeholder="permanent,stable" />
|
|
529
|
+
<small>Comma-separated list of memory tiers exempt from low-value archival. Default: permanent,
|
|
530
|
+
stable.</small>
|
|
327
531
|
</div>
|
|
328
532
|
</div>
|
|
329
533
|
</div>
|
|
330
534
|
|
|
331
|
-
<!--
|
|
535
|
+
<!-- Technical -->
|
|
332
536
|
<div class="config-card ambient amb-surface amb-chamfer amb-elevation-2">
|
|
333
537
|
<h3>🛠️ Technical</h3>
|
|
538
|
+
<p class="hint">Internal settings for deduplication and event processing.</p>
|
|
334
539
|
<div class="form-row">
|
|
335
540
|
<label for="cfg-dedup-cache">Event Cache Size</label>
|
|
336
|
-
<input id="cfg-dedup-cache" type="number" min="100" max="10000"
|
|
337
|
-
|
|
541
|
+
<input id="cfg-dedup-cache" type="number" min="100" max="10000" placeholder="1000"
|
|
542
|
+
class="ambient amb-surface-concave amb-fillet amb-elevation-0" />
|
|
543
|
+
<small>Number of recent event IDs kept in memory to prevent double-processing. Increase for high-throughput
|
|
544
|
+
agents.</small>
|
|
338
545
|
</div>
|
|
339
546
|
</div>
|
|
340
547
|
</div>
|
|
@@ -347,4 +554,5 @@
|
|
|
347
554
|
|
|
348
555
|
<script src="/app.js"></script>
|
|
349
556
|
</body>
|
|
350
|
-
|
|
557
|
+
|
|
558
|
+
</html>
|