opencode-mem 2.3.7 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -19
- package/dist/config.d.ts +4 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +33 -39
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +40 -82
- package/dist/services/ai/validators/user-profile-validator.d.ts +0 -1
- package/dist/services/ai/validators/user-profile-validator.d.ts.map +1 -1
- package/dist/services/ai/validators/user-profile-validator.js +0 -17
- package/dist/services/api-handlers.d.ts +32 -3
- package/dist/services/api-handlers.d.ts.map +1 -1
- package/dist/services/api-handlers.js +89 -13
- package/dist/services/auto-capture.d.ts.map +1 -1
- package/dist/services/auto-capture.js +34 -34
- package/dist/services/language-detector.d.ts +3 -0
- package/dist/services/language-detector.d.ts.map +1 -0
- package/dist/services/language-detector.js +16 -0
- package/dist/services/secret-resolver.d.ts +2 -0
- package/dist/services/secret-resolver.d.ts.map +1 -0
- package/dist/services/secret-resolver.js +55 -0
- package/dist/services/user-memory-learning.d.ts.map +1 -1
- package/dist/services/user-memory-learning.js +27 -33
- package/dist/services/user-profile/types.d.ts +0 -5
- package/dist/services/user-profile/types.d.ts.map +1 -1
- package/dist/services/user-profile/user-profile-manager.d.ts.map +1 -1
- package/dist/services/user-profile/user-profile-manager.js +0 -7
- package/dist/services/user-prompt/user-prompt-manager.d.ts +2 -0
- package/dist/services/user-prompt/user-prompt-manager.d.ts.map +1 -1
- package/dist/services/user-prompt/user-prompt-manager.js +21 -0
- package/dist/web/app.js +191 -112
- package/dist/web/styles.css +202 -122
- package/package.json +3 -1
package/dist/web/styles.css
CHANGED
|
@@ -314,6 +314,55 @@ button:disabled {
|
|
|
314
314
|
height: 16px;
|
|
315
315
|
}
|
|
316
316
|
|
|
317
|
+
.combined-card {
|
|
318
|
+
border: 1px solid #333;
|
|
319
|
+
margin-bottom: 20px;
|
|
320
|
+
background: #0a0a0a;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
.combined-card.selected {
|
|
324
|
+
border-color: #00ff00;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
.combined-prompt-section {
|
|
328
|
+
padding: 15px;
|
|
329
|
+
background: rgba(0, 204, 255, 0.05);
|
|
330
|
+
border-bottom: 1px dashed #333;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
.combined-header {
|
|
334
|
+
display: flex;
|
|
335
|
+
justify-content: space-between;
|
|
336
|
+
margin-bottom: 10px;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
.combined-divider {
|
|
340
|
+
display: flex;
|
|
341
|
+
justify-content: center;
|
|
342
|
+
align-items: center;
|
|
343
|
+
height: 20px;
|
|
344
|
+
background: #111;
|
|
345
|
+
border-top: 1px solid #222;
|
|
346
|
+
border-bottom: 1px solid #222;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
.divider-icon {
|
|
350
|
+
width: 14px;
|
|
351
|
+
height: 14px;
|
|
352
|
+
color: #666;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
.combined-memory-section {
|
|
356
|
+
padding: 15px;
|
|
357
|
+
background: rgba(0, 255, 0, 0.02);
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
.badge-memory {
|
|
361
|
+
color: #00ff00;
|
|
362
|
+
border-color: #00ff00;
|
|
363
|
+
font-weight: bold;
|
|
364
|
+
}
|
|
365
|
+
|
|
317
366
|
.memories-section {
|
|
318
367
|
border: 1px solid #333;
|
|
319
368
|
padding: 20px;
|
|
@@ -1189,194 +1238,225 @@ textarea:focus-visible {
|
|
|
1189
1238
|
.profile-header {
|
|
1190
1239
|
display: flex;
|
|
1191
1240
|
justify-content: space-between;
|
|
1192
|
-
align-items:
|
|
1193
|
-
padding:
|
|
1241
|
+
align-items: center;
|
|
1242
|
+
padding: 15px;
|
|
1194
1243
|
margin-bottom: 20px;
|
|
1195
|
-
border: 1px solid #
|
|
1196
|
-
background:
|
|
1244
|
+
border: 1px solid #333;
|
|
1245
|
+
background: #111;
|
|
1246
|
+
border-left: 3px solid #00ccff;
|
|
1197
1247
|
}
|
|
1198
1248
|
|
|
1199
1249
|
.profile-info h3 {
|
|
1200
1250
|
color: #00ccff;
|
|
1201
|
-
font-size:
|
|
1202
|
-
margin
|
|
1251
|
+
font-size: 16px;
|
|
1252
|
+
margin: 0 0 10px 0;
|
|
1253
|
+
letter-spacing: 0.5px;
|
|
1203
1254
|
}
|
|
1204
1255
|
|
|
1205
|
-
.profile-
|
|
1206
|
-
|
|
1256
|
+
.profile-stats {
|
|
1257
|
+
display: flex;
|
|
1258
|
+
gap: 15px;
|
|
1259
|
+
}
|
|
1260
|
+
|
|
1261
|
+
.stat-pill {
|
|
1262
|
+
display: flex;
|
|
1263
|
+
flex-direction: column;
|
|
1264
|
+
}
|
|
1265
|
+
|
|
1266
|
+
.stat-pill .label {
|
|
1267
|
+
font-size: 9px;
|
|
1268
|
+
color: #666;
|
|
1269
|
+
text-transform: uppercase;
|
|
1270
|
+
}
|
|
1271
|
+
|
|
1272
|
+
.stat-pill .value {
|
|
1207
1273
|
font-size: 12px;
|
|
1274
|
+
color: #ccc;
|
|
1275
|
+
font-family: monospace;
|
|
1208
1276
|
}
|
|
1209
1277
|
|
|
1210
|
-
.
|
|
1211
|
-
|
|
1278
|
+
.dashboard-grid {
|
|
1279
|
+
display: grid;
|
|
1280
|
+
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
|
1281
|
+
gap: 20px;
|
|
1212
1282
|
}
|
|
1213
1283
|
|
|
1214
|
-
.
|
|
1215
|
-
|
|
1216
|
-
|
|
1284
|
+
.dashboard-section {
|
|
1285
|
+
background: #111;
|
|
1286
|
+
border: 1px solid #333;
|
|
1287
|
+
padding: 15px;
|
|
1288
|
+
display: flex;
|
|
1289
|
+
flex-direction: column;
|
|
1290
|
+
}
|
|
1291
|
+
|
|
1292
|
+
.dashboard-section.full-width {
|
|
1293
|
+
grid-column: 1 / -1;
|
|
1294
|
+
}
|
|
1295
|
+
|
|
1296
|
+
.dashboard-section h4 {
|
|
1297
|
+
color: #888;
|
|
1298
|
+
font-size: 11px;
|
|
1217
1299
|
margin-bottom: 15px;
|
|
1218
1300
|
padding-bottom: 8px;
|
|
1219
|
-
border-bottom: 1px solid #
|
|
1301
|
+
border-bottom: 1px solid #222;
|
|
1220
1302
|
display: flex;
|
|
1221
1303
|
align-items: center;
|
|
1222
|
-
gap:
|
|
1304
|
+
gap: 6px;
|
|
1305
|
+
letter-spacing: 1px;
|
|
1223
1306
|
}
|
|
1224
1307
|
|
|
1225
|
-
.
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
padding:
|
|
1229
|
-
|
|
1308
|
+
.dashboard-section h4 .count {
|
|
1309
|
+
background: #222;
|
|
1310
|
+
color: #ccc;
|
|
1311
|
+
padding: 1px 6px;
|
|
1312
|
+
border-radius: 10px;
|
|
1313
|
+
font-size: 9px;
|
|
1314
|
+
margin-left: auto;
|
|
1315
|
+
}
|
|
1316
|
+
|
|
1317
|
+
.cards-grid {
|
|
1318
|
+
display: grid;
|
|
1319
|
+
grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
|
|
1320
|
+
gap: 10px;
|
|
1230
1321
|
}
|
|
1231
1322
|
|
|
1232
|
-
.
|
|
1233
|
-
|
|
1234
|
-
|
|
1323
|
+
.compact-card {
|
|
1324
|
+
background: #0a0a0a;
|
|
1325
|
+
border: 1px solid #2a2a2a;
|
|
1326
|
+
padding: 10px;
|
|
1327
|
+
transition: all 0.2s ease;
|
|
1235
1328
|
display: flex;
|
|
1236
1329
|
flex-direction: column;
|
|
1237
|
-
|
|
1238
|
-
margin-bottom: 20px;
|
|
1330
|
+
justify-content: space-between;
|
|
1239
1331
|
}
|
|
1240
1332
|
|
|
1241
|
-
.
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
border: 1px solid #333;
|
|
1245
|
-
padding: 15px;
|
|
1246
|
-
background: #0a0a0a;
|
|
1247
|
-
transition: border-color 0.2s;
|
|
1333
|
+
.compact-card:hover {
|
|
1334
|
+
border-color: #444;
|
|
1335
|
+
transform: translateY(-1px);
|
|
1248
1336
|
}
|
|
1249
1337
|
|
|
1250
|
-
.preference-
|
|
1251
|
-
|
|
1252
|
-
.workflow-item:hover {
|
|
1253
|
-
border-color: #00ccff;
|
|
1338
|
+
.preference-card {
|
|
1339
|
+
border-top: 2px solid #00ccff;
|
|
1254
1340
|
}
|
|
1255
1341
|
|
|
1256
|
-
.
|
|
1257
|
-
|
|
1258
|
-
|
|
1342
|
+
.pattern-card {
|
|
1343
|
+
border-top: 2px solid #ffaa00;
|
|
1344
|
+
}
|
|
1345
|
+
|
|
1346
|
+
.card-top {
|
|
1259
1347
|
display: flex;
|
|
1260
1348
|
justify-content: space-between;
|
|
1261
|
-
align-items:
|
|
1262
|
-
margin-bottom:
|
|
1349
|
+
align-items: flex-start;
|
|
1350
|
+
margin-bottom: 8px;
|
|
1263
1351
|
}
|
|
1264
1352
|
|
|
1265
|
-
.
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
color: #
|
|
1269
|
-
|
|
1270
|
-
|
|
1353
|
+
.category-tag {
|
|
1354
|
+
font-size: 9px;
|
|
1355
|
+
text-transform: uppercase;
|
|
1356
|
+
color: #666;
|
|
1357
|
+
background: #161616;
|
|
1358
|
+
padding: 2px 6px;
|
|
1359
|
+
border-radius: 2px;
|
|
1360
|
+
border: 1px solid #222;
|
|
1271
1361
|
}
|
|
1272
1362
|
|
|
1273
|
-
.confidence-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
color: #0a0a0a;
|
|
1277
|
-
padding: 4px 10px;
|
|
1278
|
-
border-radius: 3px;
|
|
1279
|
-
font-size: 11px;
|
|
1363
|
+
.confidence-ring {
|
|
1364
|
+
font-size: 9px;
|
|
1365
|
+
color: #00ccff;
|
|
1280
1366
|
font-weight: bold;
|
|
1281
1367
|
}
|
|
1282
1368
|
|
|
1283
|
-
.
|
|
1284
|
-
|
|
1285
|
-
height: 6px;
|
|
1286
|
-
background: #222;
|
|
1287
|
-
border-radius: 3px;
|
|
1288
|
-
overflow: hidden;
|
|
1289
|
-
margin-bottom: 10px;
|
|
1369
|
+
.card-body {
|
|
1370
|
+
margin-bottom: 8px;
|
|
1290
1371
|
}
|
|
1291
1372
|
|
|
1292
|
-
.
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1373
|
+
.card-text {
|
|
1374
|
+
font-size: 12px;
|
|
1375
|
+
color: #d0d0d0;
|
|
1376
|
+
line-height: 1.4;
|
|
1296
1377
|
}
|
|
1297
1378
|
|
|
1298
|
-
.
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1379
|
+
.card-footer {
|
|
1380
|
+
border-top: 1px solid #1a1a1a;
|
|
1381
|
+
padding-top: 6px;
|
|
1382
|
+
margin-top: auto;
|
|
1302
1383
|
}
|
|
1303
1384
|
|
|
1304
|
-
.
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1385
|
+
.evidence-toggle {
|
|
1386
|
+
font-size: 10px;
|
|
1387
|
+
color: #555;
|
|
1388
|
+
cursor: help;
|
|
1389
|
+
display: flex;
|
|
1390
|
+
align-items: center;
|
|
1391
|
+
gap: 4px;
|
|
1309
1392
|
}
|
|
1310
1393
|
|
|
1311
|
-
.
|
|
1312
|
-
|
|
1313
|
-
color: #666;
|
|
1314
|
-
font-size: 11px;
|
|
1394
|
+
.evidence-toggle:hover {
|
|
1395
|
+
color: #888;
|
|
1315
1396
|
}
|
|
1316
1397
|
|
|
1317
|
-
.
|
|
1398
|
+
.workflows-grid {
|
|
1318
1399
|
display: flex;
|
|
1319
1400
|
flex-direction: column;
|
|
1320
|
-
gap: 8px;
|
|
1321
|
-
margin-top: 10px;
|
|
1322
|
-
}
|
|
1323
|
-
|
|
1324
|
-
.workflow-step {
|
|
1325
|
-
display: flex;
|
|
1326
|
-
align-items: center;
|
|
1327
1401
|
gap: 10px;
|
|
1328
|
-
padding: 8px;
|
|
1329
|
-
background: #111;
|
|
1330
|
-
border-left: 2px solid #00ccff;
|
|
1331
1402
|
}
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
border-radius: 50%;
|
|
1338
|
-
display: flex;
|
|
1339
|
-
align-items: center;
|
|
1340
|
-
justify-content: center;
|
|
1341
|
-
font-size: 11px;
|
|
1342
|
-
font-weight: bold;
|
|
1343
|
-
flex-shrink: 0;
|
|
1403
|
+
|
|
1404
|
+
.workflow-row {
|
|
1405
|
+
background: #0a0a0a;
|
|
1406
|
+
border: 1px solid #2a2a2a;
|
|
1407
|
+
padding: 12px;
|
|
1344
1408
|
}
|
|
1345
1409
|
|
|
1346
|
-
.
|
|
1347
|
-
color: #ccc;
|
|
1410
|
+
.workflow-title {
|
|
1348
1411
|
font-size: 12px;
|
|
1412
|
+
color: #ffcc00;
|
|
1413
|
+
font-weight: bold;
|
|
1414
|
+
margin-bottom: 10px;
|
|
1349
1415
|
}
|
|
1350
1416
|
|
|
1351
|
-
.
|
|
1352
|
-
display:
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
background: #0a0a0a;
|
|
1357
|
-
border: 1px solid #333;
|
|
1417
|
+
.workflow-steps-horizontal {
|
|
1418
|
+
display: flex;
|
|
1419
|
+
flex-wrap: wrap;
|
|
1420
|
+
align-items: center;
|
|
1421
|
+
gap: 8px;
|
|
1358
1422
|
}
|
|
1359
1423
|
|
|
1360
|
-
.
|
|
1424
|
+
.step-node {
|
|
1361
1425
|
display: flex;
|
|
1362
|
-
justify-content: space-between;
|
|
1363
1426
|
align-items: center;
|
|
1364
|
-
padding: 10px;
|
|
1365
|
-
border-left: 3px solid #00ccff;
|
|
1366
1427
|
background: #111;
|
|
1428
|
+
border: 1px solid #333;
|
|
1429
|
+
border-radius: 4px;
|
|
1430
|
+
padding: 4px 8px;
|
|
1431
|
+
gap: 6px;
|
|
1367
1432
|
}
|
|
1368
1433
|
|
|
1369
|
-
.
|
|
1434
|
+
.step-idx {
|
|
1435
|
+
font-size: 9px;
|
|
1436
|
+
background: #222;
|
|
1370
1437
|
color: #888;
|
|
1371
|
-
|
|
1372
|
-
|
|
1438
|
+
width: 16px;
|
|
1439
|
+
height: 16px;
|
|
1440
|
+
display: flex;
|
|
1441
|
+
align-items: center;
|
|
1442
|
+
justify-content: center;
|
|
1443
|
+
border-radius: 50%;
|
|
1373
1444
|
}
|
|
1374
1445
|
|
|
1375
|
-
.
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1446
|
+
.step-content {
|
|
1447
|
+
font-size: 11px;
|
|
1448
|
+
color: #bbb;
|
|
1449
|
+
}
|
|
1450
|
+
|
|
1451
|
+
.step-arrow {
|
|
1452
|
+
width: 12px;
|
|
1453
|
+
height: 12px;
|
|
1454
|
+
color: #444;
|
|
1455
|
+
}
|
|
1456
|
+
|
|
1457
|
+
.icon-xs {
|
|
1458
|
+
width: 10px;
|
|
1459
|
+
height: 10px;
|
|
1380
1460
|
}
|
|
1381
1461
|
|
|
1382
1462
|
.changelog-list {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-mem",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "OpenCode plugin that gives coding agents persistent memory using local vector database",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/plugin.js",
|
|
@@ -34,6 +34,8 @@
|
|
|
34
34
|
"dependencies": {
|
|
35
35
|
"@opencode-ai/plugin": "^1.0.162",
|
|
36
36
|
"@xenova/transformers": "^2.17.2",
|
|
37
|
+
"franc-min": "^6.2.0",
|
|
38
|
+
"iso-639-3": "^3.0.1",
|
|
37
39
|
"sqlite-vec": "^0.1.7-alpha.2"
|
|
38
40
|
},
|
|
39
41
|
"devDependencies": {
|