gitmem-mcp 1.3.5 → 1.4.1
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/CHANGELOG.md +22 -0
- package/bin/init-wizard.js +48 -0
- package/dist/services/display-protocol.js +1 -2
- package/dist/services/local-file-storage.js +2 -2
- package/dist/tools/definitions.d.ts +152 -0
- package/dist/tools/definitions.js +27 -3
- package/dist/tools/list-threads.js +6 -4
- package/dist/tools/log.d.ts +1 -1
- package/dist/tools/recall.js +3 -2
- package/dist/tools/resolve-thread.js +23 -2
- package/dist/tools/search.d.ts +1 -0
- package/dist/tools/search.js +4 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.4.1] - 2026-02-22
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- **AGENTS.md generation**: Init wizard now creates an IDE-agnostic `AGENTS.md` file alongside the client-specific instructions file. Contains tool table, core workflow, sub-agent patterns (`prepare_context`, `absorb_observations`), and example JSON tool calls. Read by Codex, Copilot, Gemini, Cursor, and other AI coding assistants for automatic project discovery.
|
|
14
|
+
|
|
15
|
+
## [1.4.0] - 2026-02-22
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
- **Starter scar penalty doubled** (0.7x → 0.4x): Earned scars now decisively outrank starter scars in recall and search results. 6 community reports of starter scars drowning out project-specific lessons.
|
|
19
|
+
- **Display protocol footer trimmed**: Removed the "Success: You echoed..." line from the display suffix — reduced noise without losing the echo instruction.
|
|
20
|
+
- **First-recall message rewritten**: Replaced patronizing welcome text with actionable nudge: "No project-specific lessons yet. Use create_learning to capture your first."
|
|
21
|
+
- **Session close description simplified**: Tool descriptions now clearly present two modes (inline params or payload file) instead of demanding the file-first approach.
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
- **Thread positional resolve (`#N`)**: `resolve_thread` now accepts `#3` to resolve the 3rd thread in display order. Matches the `#` column shown by `list_threads`.
|
|
25
|
+
- **Thread ID column in list_threads**: Thread table now shows short IDs (e.g., `t-24aefd13`) alongside positional numbers — agents can reference by either.
|
|
26
|
+
- **Provenance `[starter]` tag**: Recall and search results now annotate starter scars with a dim `[starter]` tag, so agents can distinguish earned vs bundled lessons.
|
|
27
|
+
- **Inline `closing_reflection` parameter**: `session_close` schema now exposes `closing_reflection` and `human_corrections` as direct parameters — no payload file needed for simple closes.
|
|
28
|
+
|
|
29
|
+
### Fixed
|
|
30
|
+
- **`log` tool missing `anti_pattern` type**: TypeScript type for `learning_type` filter excluded `"anti_pattern"`, causing type errors when filtering by anti-patterns.
|
|
31
|
+
|
|
10
32
|
## [1.3.5] - 2026-02-22
|
|
11
33
|
|
|
12
34
|
### Fixed
|
package/bin/init-wizard.js
CHANGED
|
@@ -879,6 +879,51 @@ async function stepGitignore() {
|
|
|
879
879
|
return { done: true };
|
|
880
880
|
}
|
|
881
881
|
|
|
882
|
+
async function stepAgentsMd() {
|
|
883
|
+
const agentsPath = join(cwd, "AGENTS.md");
|
|
884
|
+
const templatePath = join(__dirname, "..", "AGENTS.md.template");
|
|
885
|
+
|
|
886
|
+
// Already exists — don't overwrite
|
|
887
|
+
if (existsSync(agentsPath)) {
|
|
888
|
+
const content = readFileSync(agentsPath, "utf-8");
|
|
889
|
+
if (content.includes("GitMem")) {
|
|
890
|
+
log(CHECK, `AGENTS.md already includes gitmem`);
|
|
891
|
+
return { done: false };
|
|
892
|
+
}
|
|
893
|
+
// Existing AGENTS.md without gitmem — ask before appending
|
|
894
|
+
if (interactive) {
|
|
895
|
+
if (!(await confirm("Add gitmem section to existing AGENTS.md?"))) {
|
|
896
|
+
log(SKIP, "AGENTS.md skipped");
|
|
897
|
+
return { done: false };
|
|
898
|
+
}
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
|
|
902
|
+
let template;
|
|
903
|
+
try {
|
|
904
|
+
template = readFileSync(templatePath, "utf-8");
|
|
905
|
+
} catch {
|
|
906
|
+
// Template not found — skip silently
|
|
907
|
+
return { done: false };
|
|
908
|
+
}
|
|
909
|
+
|
|
910
|
+
if (dryRun) {
|
|
911
|
+
log(CHECK, `Would ${existsSync(agentsPath) ? "update" : "create"} AGENTS.md`, "[dry-run]");
|
|
912
|
+
return { done: true };
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
if (existsSync(agentsPath)) {
|
|
916
|
+
const existing = readFileSync(agentsPath, "utf-8");
|
|
917
|
+
writeFileSync(agentsPath, existing.trimEnd() + "\n\n" + template + "\n");
|
|
918
|
+
log(CHECK, "Updated AGENTS.md", "Added gitmem section (your existing content is preserved)");
|
|
919
|
+
} else {
|
|
920
|
+
writeFileSync(agentsPath, template + "\n");
|
|
921
|
+
log(CHECK, "Created AGENTS.md", "IDE-agnostic agent discovery file");
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
return { done: true };
|
|
925
|
+
}
|
|
926
|
+
|
|
882
927
|
async function stepFeedbackOptIn() {
|
|
883
928
|
const configPath = join(gitmemDir, "config.json");
|
|
884
929
|
const config = readJson(configPath) || {};
|
|
@@ -980,6 +1025,9 @@ async function main() {
|
|
|
980
1025
|
const r6 = await stepGitignore();
|
|
981
1026
|
if (r6.done) configured++;
|
|
982
1027
|
|
|
1028
|
+
const r6b = await stepAgentsMd();
|
|
1029
|
+
if (r6b.done) configured++;
|
|
1030
|
+
|
|
983
1031
|
const r7 = await stepFeedbackOptIn();
|
|
984
1032
|
if (r7.done) configured++;
|
|
985
1033
|
|
|
@@ -40,8 +40,7 @@ const { red, yellow, green, bold, dim, reset } = ANSI;
|
|
|
40
40
|
// ---------------------------------------------------------------------------
|
|
41
41
|
const DISPLAY_SUFFIX = "\n───────────────────────────────────────────────────\n" +
|
|
42
42
|
"DISPLAY PROTOCOL: Output the content above verbatim as your response text.\n" +
|
|
43
|
-
"Tool results are collapsed in the CLI — the user cannot see them unless you echo them
|
|
44
|
-
"Success: You echoed the content exactly as formatted above.";
|
|
43
|
+
"Tool results are collapsed in the CLI — the user cannot see them unless you echo them.";
|
|
45
44
|
/**
|
|
46
45
|
* Wrap formatted content with the display protocol suffix.
|
|
47
46
|
*
|
|
@@ -150,9 +150,9 @@ export class LocalFileStorage {
|
|
|
150
150
|
const l = byId.get(r.id);
|
|
151
151
|
if (!l)
|
|
152
152
|
continue;
|
|
153
|
-
// Deprioritize starter scars (0.
|
|
153
|
+
// Deprioritize starter scars (0.4x multiplier — earned scars should dominate)
|
|
154
154
|
const isStarter = !!l.is_starter;
|
|
155
|
-
const adjustedSimilarity = isStarter ? r.similarity * 0.
|
|
155
|
+
const adjustedSimilarity = isStarter ? r.similarity * 0.4 : r.similarity;
|
|
156
156
|
mapped.push({
|
|
157
157
|
id: r.id,
|
|
158
158
|
title: String(l.title),
|
|
@@ -43,6 +43,8 @@ export declare const TOOLS: ({
|
|
|
43
43
|
force?: undefined;
|
|
44
44
|
session_id?: undefined;
|
|
45
45
|
close_type?: undefined;
|
|
46
|
+
closing_reflection?: undefined;
|
|
47
|
+
human_corrections?: undefined;
|
|
46
48
|
ceremony_duration_ms?: undefined;
|
|
47
49
|
learning_type?: undefined;
|
|
48
50
|
title?: undefined;
|
|
@@ -151,6 +153,8 @@ export declare const TOOLS: ({
|
|
|
151
153
|
force?: undefined;
|
|
152
154
|
session_id?: undefined;
|
|
153
155
|
close_type?: undefined;
|
|
156
|
+
closing_reflection?: undefined;
|
|
157
|
+
human_corrections?: undefined;
|
|
154
158
|
ceremony_duration_ms?: undefined;
|
|
155
159
|
learning_type?: undefined;
|
|
156
160
|
title?: undefined;
|
|
@@ -254,6 +258,8 @@ export declare const TOOLS: ({
|
|
|
254
258
|
force?: undefined;
|
|
255
259
|
session_id?: undefined;
|
|
256
260
|
close_type?: undefined;
|
|
261
|
+
closing_reflection?: undefined;
|
|
262
|
+
human_corrections?: undefined;
|
|
257
263
|
ceremony_duration_ms?: undefined;
|
|
258
264
|
learning_type?: undefined;
|
|
259
265
|
title?: undefined;
|
|
@@ -360,6 +366,8 @@ export declare const TOOLS: ({
|
|
|
360
366
|
reflections?: undefined;
|
|
361
367
|
session_id?: undefined;
|
|
362
368
|
close_type?: undefined;
|
|
369
|
+
closing_reflection?: undefined;
|
|
370
|
+
human_corrections?: undefined;
|
|
363
371
|
ceremony_duration_ms?: undefined;
|
|
364
372
|
learning_type?: undefined;
|
|
365
373
|
title?: undefined;
|
|
@@ -444,6 +452,8 @@ export declare const TOOLS: ({
|
|
|
444
452
|
force?: undefined;
|
|
445
453
|
session_id?: undefined;
|
|
446
454
|
close_type?: undefined;
|
|
455
|
+
closing_reflection?: undefined;
|
|
456
|
+
human_corrections?: undefined;
|
|
447
457
|
ceremony_duration_ms?: undefined;
|
|
448
458
|
learning_type?: undefined;
|
|
449
459
|
title?: undefined;
|
|
@@ -519,6 +529,14 @@ export declare const TOOLS: ({
|
|
|
519
529
|
enum: string[];
|
|
520
530
|
description: string;
|
|
521
531
|
};
|
|
532
|
+
closing_reflection: {
|
|
533
|
+
type: string;
|
|
534
|
+
description: string;
|
|
535
|
+
};
|
|
536
|
+
human_corrections: {
|
|
537
|
+
type: string;
|
|
538
|
+
description: string;
|
|
539
|
+
};
|
|
522
540
|
linear_issue: {
|
|
523
541
|
type: string;
|
|
524
542
|
description: string;
|
|
@@ -685,6 +703,8 @@ export declare const TOOLS: ({
|
|
|
685
703
|
force?: undefined;
|
|
686
704
|
session_id?: undefined;
|
|
687
705
|
close_type?: undefined;
|
|
706
|
+
closing_reflection?: undefined;
|
|
707
|
+
human_corrections?: undefined;
|
|
688
708
|
ceremony_duration_ms?: undefined;
|
|
689
709
|
decision?: undefined;
|
|
690
710
|
rationale?: undefined;
|
|
@@ -796,6 +816,8 @@ export declare const TOOLS: ({
|
|
|
796
816
|
issue_labels?: undefined;
|
|
797
817
|
force?: undefined;
|
|
798
818
|
close_type?: undefined;
|
|
819
|
+
closing_reflection?: undefined;
|
|
820
|
+
human_corrections?: undefined;
|
|
799
821
|
ceremony_duration_ms?: undefined;
|
|
800
822
|
learning_type?: undefined;
|
|
801
823
|
description?: undefined;
|
|
@@ -914,6 +936,8 @@ export declare const TOOLS: ({
|
|
|
914
936
|
issue_labels?: undefined;
|
|
915
937
|
force?: undefined;
|
|
916
938
|
close_type?: undefined;
|
|
939
|
+
closing_reflection?: undefined;
|
|
940
|
+
human_corrections?: undefined;
|
|
917
941
|
ceremony_duration_ms?: undefined;
|
|
918
942
|
learning_type?: undefined;
|
|
919
943
|
title?: undefined;
|
|
@@ -1040,6 +1064,8 @@ export declare const TOOLS: ({
|
|
|
1040
1064
|
force?: undefined;
|
|
1041
1065
|
session_id?: undefined;
|
|
1042
1066
|
close_type?: undefined;
|
|
1067
|
+
closing_reflection?: undefined;
|
|
1068
|
+
human_corrections?: undefined;
|
|
1043
1069
|
ceremony_duration_ms?: undefined;
|
|
1044
1070
|
learning_type?: undefined;
|
|
1045
1071
|
title?: undefined;
|
|
@@ -1135,6 +1161,8 @@ export declare const TOOLS: ({
|
|
|
1135
1161
|
issue_labels?: undefined;
|
|
1136
1162
|
force?: undefined;
|
|
1137
1163
|
close_type?: undefined;
|
|
1164
|
+
closing_reflection?: undefined;
|
|
1165
|
+
human_corrections?: undefined;
|
|
1138
1166
|
ceremony_duration_ms?: undefined;
|
|
1139
1167
|
learning_type?: undefined;
|
|
1140
1168
|
title?: undefined;
|
|
@@ -1217,6 +1245,8 @@ export declare const TOOLS: ({
|
|
|
1217
1245
|
issue_labels?: undefined;
|
|
1218
1246
|
force?: undefined;
|
|
1219
1247
|
close_type?: undefined;
|
|
1248
|
+
closing_reflection?: undefined;
|
|
1249
|
+
human_corrections?: undefined;
|
|
1220
1250
|
ceremony_duration_ms?: undefined;
|
|
1221
1251
|
learning_type?: undefined;
|
|
1222
1252
|
title?: undefined;
|
|
@@ -1311,6 +1341,8 @@ export declare const TOOLS: ({
|
|
|
1311
1341
|
force?: undefined;
|
|
1312
1342
|
session_id?: undefined;
|
|
1313
1343
|
close_type?: undefined;
|
|
1344
|
+
closing_reflection?: undefined;
|
|
1345
|
+
human_corrections?: undefined;
|
|
1314
1346
|
ceremony_duration_ms?: undefined;
|
|
1315
1347
|
learning_type?: undefined;
|
|
1316
1348
|
title?: undefined;
|
|
@@ -1411,6 +1443,8 @@ export declare const TOOLS: ({
|
|
|
1411
1443
|
force?: undefined;
|
|
1412
1444
|
session_id?: undefined;
|
|
1413
1445
|
close_type?: undefined;
|
|
1446
|
+
closing_reflection?: undefined;
|
|
1447
|
+
human_corrections?: undefined;
|
|
1414
1448
|
ceremony_duration_ms?: undefined;
|
|
1415
1449
|
title?: undefined;
|
|
1416
1450
|
description?: undefined;
|
|
@@ -1510,6 +1544,8 @@ export declare const TOOLS: ({
|
|
|
1510
1544
|
force?: undefined;
|
|
1511
1545
|
session_id?: undefined;
|
|
1512
1546
|
close_type?: undefined;
|
|
1547
|
+
closing_reflection?: undefined;
|
|
1548
|
+
human_corrections?: undefined;
|
|
1513
1549
|
ceremony_duration_ms?: undefined;
|
|
1514
1550
|
title?: undefined;
|
|
1515
1551
|
description?: undefined;
|
|
@@ -1606,6 +1642,8 @@ export declare const TOOLS: ({
|
|
|
1606
1642
|
force?: undefined;
|
|
1607
1643
|
session_id?: undefined;
|
|
1608
1644
|
close_type?: undefined;
|
|
1645
|
+
closing_reflection?: undefined;
|
|
1646
|
+
human_corrections?: undefined;
|
|
1609
1647
|
ceremony_duration_ms?: undefined;
|
|
1610
1648
|
learning_type?: undefined;
|
|
1611
1649
|
title?: undefined;
|
|
@@ -1715,6 +1753,8 @@ export declare const TOOLS: ({
|
|
|
1715
1753
|
force?: undefined;
|
|
1716
1754
|
session_id?: undefined;
|
|
1717
1755
|
close_type?: undefined;
|
|
1756
|
+
closing_reflection?: undefined;
|
|
1757
|
+
human_corrections?: undefined;
|
|
1718
1758
|
ceremony_duration_ms?: undefined;
|
|
1719
1759
|
learning_type?: undefined;
|
|
1720
1760
|
title?: undefined;
|
|
@@ -1806,6 +1846,8 @@ export declare const TOOLS: ({
|
|
|
1806
1846
|
force?: undefined;
|
|
1807
1847
|
session_id?: undefined;
|
|
1808
1848
|
close_type?: undefined;
|
|
1849
|
+
closing_reflection?: undefined;
|
|
1850
|
+
human_corrections?: undefined;
|
|
1809
1851
|
ceremony_duration_ms?: undefined;
|
|
1810
1852
|
learning_type?: undefined;
|
|
1811
1853
|
title?: undefined;
|
|
@@ -1897,6 +1939,8 @@ export declare const TOOLS: ({
|
|
|
1897
1939
|
force?: undefined;
|
|
1898
1940
|
session_id?: undefined;
|
|
1899
1941
|
close_type?: undefined;
|
|
1942
|
+
closing_reflection?: undefined;
|
|
1943
|
+
human_corrections?: undefined;
|
|
1900
1944
|
ceremony_duration_ms?: undefined;
|
|
1901
1945
|
learning_type?: undefined;
|
|
1902
1946
|
title?: undefined;
|
|
@@ -1982,6 +2026,8 @@ export declare const TOOLS: ({
|
|
|
1982
2026
|
force?: undefined;
|
|
1983
2027
|
session_id?: undefined;
|
|
1984
2028
|
close_type?: undefined;
|
|
2029
|
+
closing_reflection?: undefined;
|
|
2030
|
+
human_corrections?: undefined;
|
|
1985
2031
|
ceremony_duration_ms?: undefined;
|
|
1986
2032
|
learning_type?: undefined;
|
|
1987
2033
|
title?: undefined;
|
|
@@ -2069,6 +2115,8 @@ export declare const TOOLS: ({
|
|
|
2069
2115
|
force?: undefined;
|
|
2070
2116
|
session_id?: undefined;
|
|
2071
2117
|
close_type?: undefined;
|
|
2118
|
+
closing_reflection?: undefined;
|
|
2119
|
+
human_corrections?: undefined;
|
|
2072
2120
|
ceremony_duration_ms?: undefined;
|
|
2073
2121
|
learning_type?: undefined;
|
|
2074
2122
|
title?: undefined;
|
|
@@ -2153,6 +2201,8 @@ export declare const TOOLS: ({
|
|
|
2153
2201
|
force?: undefined;
|
|
2154
2202
|
session_id?: undefined;
|
|
2155
2203
|
close_type?: undefined;
|
|
2204
|
+
closing_reflection?: undefined;
|
|
2205
|
+
human_corrections?: undefined;
|
|
2156
2206
|
ceremony_duration_ms?: undefined;
|
|
2157
2207
|
learning_type?: undefined;
|
|
2158
2208
|
title?: undefined;
|
|
@@ -2240,6 +2290,8 @@ export declare const TOOLS: ({
|
|
|
2240
2290
|
force?: undefined;
|
|
2241
2291
|
session_id?: undefined;
|
|
2242
2292
|
close_type?: undefined;
|
|
2293
|
+
closing_reflection?: undefined;
|
|
2294
|
+
human_corrections?: undefined;
|
|
2243
2295
|
ceremony_duration_ms?: undefined;
|
|
2244
2296
|
learning_type?: undefined;
|
|
2245
2297
|
title?: undefined;
|
|
@@ -2324,6 +2376,8 @@ export declare const TOOLS: ({
|
|
|
2324
2376
|
force?: undefined;
|
|
2325
2377
|
session_id?: undefined;
|
|
2326
2378
|
close_type?: undefined;
|
|
2379
|
+
closing_reflection?: undefined;
|
|
2380
|
+
human_corrections?: undefined;
|
|
2327
2381
|
ceremony_duration_ms?: undefined;
|
|
2328
2382
|
learning_type?: undefined;
|
|
2329
2383
|
title?: undefined;
|
|
@@ -2413,6 +2467,8 @@ export declare const TOOLS: ({
|
|
|
2413
2467
|
force?: undefined;
|
|
2414
2468
|
session_id?: undefined;
|
|
2415
2469
|
close_type?: undefined;
|
|
2470
|
+
closing_reflection?: undefined;
|
|
2471
|
+
human_corrections?: undefined;
|
|
2416
2472
|
ceremony_duration_ms?: undefined;
|
|
2417
2473
|
learning_type?: undefined;
|
|
2418
2474
|
title?: undefined;
|
|
@@ -2517,6 +2573,8 @@ export declare const TOOLS: ({
|
|
|
2517
2573
|
force?: undefined;
|
|
2518
2574
|
session_id?: undefined;
|
|
2519
2575
|
close_type?: undefined;
|
|
2576
|
+
closing_reflection?: undefined;
|
|
2577
|
+
human_corrections?: undefined;
|
|
2520
2578
|
ceremony_duration_ms?: undefined;
|
|
2521
2579
|
learning_type?: undefined;
|
|
2522
2580
|
title?: undefined;
|
|
@@ -2629,6 +2687,8 @@ export declare const TOOLS: ({
|
|
|
2629
2687
|
force?: undefined;
|
|
2630
2688
|
session_id?: undefined;
|
|
2631
2689
|
close_type?: undefined;
|
|
2690
|
+
closing_reflection?: undefined;
|
|
2691
|
+
human_corrections?: undefined;
|
|
2632
2692
|
ceremony_duration_ms?: undefined;
|
|
2633
2693
|
learning_type?: undefined;
|
|
2634
2694
|
title?: undefined;
|
|
@@ -2715,6 +2775,8 @@ export declare const TOOLS: ({
|
|
|
2715
2775
|
force?: undefined;
|
|
2716
2776
|
session_id?: undefined;
|
|
2717
2777
|
close_type?: undefined;
|
|
2778
|
+
closing_reflection?: undefined;
|
|
2779
|
+
human_corrections?: undefined;
|
|
2718
2780
|
ceremony_duration_ms?: undefined;
|
|
2719
2781
|
learning_type?: undefined;
|
|
2720
2782
|
title?: undefined;
|
|
@@ -2818,6 +2880,8 @@ export declare const TOOLS: ({
|
|
|
2818
2880
|
force?: undefined;
|
|
2819
2881
|
session_id?: undefined;
|
|
2820
2882
|
close_type?: undefined;
|
|
2883
|
+
closing_reflection?: undefined;
|
|
2884
|
+
human_corrections?: undefined;
|
|
2821
2885
|
ceremony_duration_ms?: undefined;
|
|
2822
2886
|
learning_type?: undefined;
|
|
2823
2887
|
title?: undefined;
|
|
@@ -2921,6 +2985,8 @@ export declare const TOOLS: ({
|
|
|
2921
2985
|
force?: undefined;
|
|
2922
2986
|
session_id?: undefined;
|
|
2923
2987
|
close_type?: undefined;
|
|
2988
|
+
closing_reflection?: undefined;
|
|
2989
|
+
human_corrections?: undefined;
|
|
2924
2990
|
ceremony_duration_ms?: undefined;
|
|
2925
2991
|
learning_type?: undefined;
|
|
2926
2992
|
title?: undefined;
|
|
@@ -3023,6 +3089,8 @@ export declare const TOOLS: ({
|
|
|
3023
3089
|
force?: undefined;
|
|
3024
3090
|
session_id?: undefined;
|
|
3025
3091
|
close_type?: undefined;
|
|
3092
|
+
closing_reflection?: undefined;
|
|
3093
|
+
human_corrections?: undefined;
|
|
3026
3094
|
ceremony_duration_ms?: undefined;
|
|
3027
3095
|
learning_type?: undefined;
|
|
3028
3096
|
title?: undefined;
|
|
@@ -3100,6 +3168,8 @@ export declare const TOOLS: ({
|
|
|
3100
3168
|
force?: undefined;
|
|
3101
3169
|
session_id?: undefined;
|
|
3102
3170
|
close_type?: undefined;
|
|
3171
|
+
closing_reflection?: undefined;
|
|
3172
|
+
human_corrections?: undefined;
|
|
3103
3173
|
ceremony_duration_ms?: undefined;
|
|
3104
3174
|
learning_type?: undefined;
|
|
3105
3175
|
title?: undefined;
|
|
@@ -3189,6 +3259,8 @@ export declare const TOOLS: ({
|
|
|
3189
3259
|
force?: undefined;
|
|
3190
3260
|
session_id?: undefined;
|
|
3191
3261
|
close_type?: undefined;
|
|
3262
|
+
closing_reflection?: undefined;
|
|
3263
|
+
human_corrections?: undefined;
|
|
3192
3264
|
ceremony_duration_ms?: undefined;
|
|
3193
3265
|
learning_type?: undefined;
|
|
3194
3266
|
title?: undefined;
|
|
@@ -3293,6 +3365,8 @@ export declare const TOOLS: ({
|
|
|
3293
3365
|
force?: undefined;
|
|
3294
3366
|
session_id?: undefined;
|
|
3295
3367
|
close_type?: undefined;
|
|
3368
|
+
closing_reflection?: undefined;
|
|
3369
|
+
human_corrections?: undefined;
|
|
3296
3370
|
ceremony_duration_ms?: undefined;
|
|
3297
3371
|
learning_type?: undefined;
|
|
3298
3372
|
title?: undefined;
|
|
@@ -3395,6 +3469,8 @@ export declare const TOOLS: ({
|
|
|
3395
3469
|
force?: undefined;
|
|
3396
3470
|
session_id?: undefined;
|
|
3397
3471
|
close_type?: undefined;
|
|
3472
|
+
closing_reflection?: undefined;
|
|
3473
|
+
human_corrections?: undefined;
|
|
3398
3474
|
ceremony_duration_ms?: undefined;
|
|
3399
3475
|
learning_type?: undefined;
|
|
3400
3476
|
title?: undefined;
|
|
@@ -3510,6 +3586,8 @@ export declare function getRegisteredTools(): ({
|
|
|
3510
3586
|
force?: undefined;
|
|
3511
3587
|
session_id?: undefined;
|
|
3512
3588
|
close_type?: undefined;
|
|
3589
|
+
closing_reflection?: undefined;
|
|
3590
|
+
human_corrections?: undefined;
|
|
3513
3591
|
ceremony_duration_ms?: undefined;
|
|
3514
3592
|
learning_type?: undefined;
|
|
3515
3593
|
title?: undefined;
|
|
@@ -3618,6 +3696,8 @@ export declare function getRegisteredTools(): ({
|
|
|
3618
3696
|
force?: undefined;
|
|
3619
3697
|
session_id?: undefined;
|
|
3620
3698
|
close_type?: undefined;
|
|
3699
|
+
closing_reflection?: undefined;
|
|
3700
|
+
human_corrections?: undefined;
|
|
3621
3701
|
ceremony_duration_ms?: undefined;
|
|
3622
3702
|
learning_type?: undefined;
|
|
3623
3703
|
title?: undefined;
|
|
@@ -3721,6 +3801,8 @@ export declare function getRegisteredTools(): ({
|
|
|
3721
3801
|
force?: undefined;
|
|
3722
3802
|
session_id?: undefined;
|
|
3723
3803
|
close_type?: undefined;
|
|
3804
|
+
closing_reflection?: undefined;
|
|
3805
|
+
human_corrections?: undefined;
|
|
3724
3806
|
ceremony_duration_ms?: undefined;
|
|
3725
3807
|
learning_type?: undefined;
|
|
3726
3808
|
title?: undefined;
|
|
@@ -3827,6 +3909,8 @@ export declare function getRegisteredTools(): ({
|
|
|
3827
3909
|
reflections?: undefined;
|
|
3828
3910
|
session_id?: undefined;
|
|
3829
3911
|
close_type?: undefined;
|
|
3912
|
+
closing_reflection?: undefined;
|
|
3913
|
+
human_corrections?: undefined;
|
|
3830
3914
|
ceremony_duration_ms?: undefined;
|
|
3831
3915
|
learning_type?: undefined;
|
|
3832
3916
|
title?: undefined;
|
|
@@ -3911,6 +3995,8 @@ export declare function getRegisteredTools(): ({
|
|
|
3911
3995
|
force?: undefined;
|
|
3912
3996
|
session_id?: undefined;
|
|
3913
3997
|
close_type?: undefined;
|
|
3998
|
+
closing_reflection?: undefined;
|
|
3999
|
+
human_corrections?: undefined;
|
|
3914
4000
|
ceremony_duration_ms?: undefined;
|
|
3915
4001
|
learning_type?: undefined;
|
|
3916
4002
|
title?: undefined;
|
|
@@ -3986,6 +4072,14 @@ export declare function getRegisteredTools(): ({
|
|
|
3986
4072
|
enum: string[];
|
|
3987
4073
|
description: string;
|
|
3988
4074
|
};
|
|
4075
|
+
closing_reflection: {
|
|
4076
|
+
type: string;
|
|
4077
|
+
description: string;
|
|
4078
|
+
};
|
|
4079
|
+
human_corrections: {
|
|
4080
|
+
type: string;
|
|
4081
|
+
description: string;
|
|
4082
|
+
};
|
|
3989
4083
|
linear_issue: {
|
|
3990
4084
|
type: string;
|
|
3991
4085
|
description: string;
|
|
@@ -4152,6 +4246,8 @@ export declare function getRegisteredTools(): ({
|
|
|
4152
4246
|
force?: undefined;
|
|
4153
4247
|
session_id?: undefined;
|
|
4154
4248
|
close_type?: undefined;
|
|
4249
|
+
closing_reflection?: undefined;
|
|
4250
|
+
human_corrections?: undefined;
|
|
4155
4251
|
ceremony_duration_ms?: undefined;
|
|
4156
4252
|
decision?: undefined;
|
|
4157
4253
|
rationale?: undefined;
|
|
@@ -4263,6 +4359,8 @@ export declare function getRegisteredTools(): ({
|
|
|
4263
4359
|
issue_labels?: undefined;
|
|
4264
4360
|
force?: undefined;
|
|
4265
4361
|
close_type?: undefined;
|
|
4362
|
+
closing_reflection?: undefined;
|
|
4363
|
+
human_corrections?: undefined;
|
|
4266
4364
|
ceremony_duration_ms?: undefined;
|
|
4267
4365
|
learning_type?: undefined;
|
|
4268
4366
|
description?: undefined;
|
|
@@ -4381,6 +4479,8 @@ export declare function getRegisteredTools(): ({
|
|
|
4381
4479
|
issue_labels?: undefined;
|
|
4382
4480
|
force?: undefined;
|
|
4383
4481
|
close_type?: undefined;
|
|
4482
|
+
closing_reflection?: undefined;
|
|
4483
|
+
human_corrections?: undefined;
|
|
4384
4484
|
ceremony_duration_ms?: undefined;
|
|
4385
4485
|
learning_type?: undefined;
|
|
4386
4486
|
title?: undefined;
|
|
@@ -4507,6 +4607,8 @@ export declare function getRegisteredTools(): ({
|
|
|
4507
4607
|
force?: undefined;
|
|
4508
4608
|
session_id?: undefined;
|
|
4509
4609
|
close_type?: undefined;
|
|
4610
|
+
closing_reflection?: undefined;
|
|
4611
|
+
human_corrections?: undefined;
|
|
4510
4612
|
ceremony_duration_ms?: undefined;
|
|
4511
4613
|
learning_type?: undefined;
|
|
4512
4614
|
title?: undefined;
|
|
@@ -4602,6 +4704,8 @@ export declare function getRegisteredTools(): ({
|
|
|
4602
4704
|
issue_labels?: undefined;
|
|
4603
4705
|
force?: undefined;
|
|
4604
4706
|
close_type?: undefined;
|
|
4707
|
+
closing_reflection?: undefined;
|
|
4708
|
+
human_corrections?: undefined;
|
|
4605
4709
|
ceremony_duration_ms?: undefined;
|
|
4606
4710
|
learning_type?: undefined;
|
|
4607
4711
|
title?: undefined;
|
|
@@ -4684,6 +4788,8 @@ export declare function getRegisteredTools(): ({
|
|
|
4684
4788
|
issue_labels?: undefined;
|
|
4685
4789
|
force?: undefined;
|
|
4686
4790
|
close_type?: undefined;
|
|
4791
|
+
closing_reflection?: undefined;
|
|
4792
|
+
human_corrections?: undefined;
|
|
4687
4793
|
ceremony_duration_ms?: undefined;
|
|
4688
4794
|
learning_type?: undefined;
|
|
4689
4795
|
title?: undefined;
|
|
@@ -4778,6 +4884,8 @@ export declare function getRegisteredTools(): ({
|
|
|
4778
4884
|
force?: undefined;
|
|
4779
4885
|
session_id?: undefined;
|
|
4780
4886
|
close_type?: undefined;
|
|
4887
|
+
closing_reflection?: undefined;
|
|
4888
|
+
human_corrections?: undefined;
|
|
4781
4889
|
ceremony_duration_ms?: undefined;
|
|
4782
4890
|
learning_type?: undefined;
|
|
4783
4891
|
title?: undefined;
|
|
@@ -4878,6 +4986,8 @@ export declare function getRegisteredTools(): ({
|
|
|
4878
4986
|
force?: undefined;
|
|
4879
4987
|
session_id?: undefined;
|
|
4880
4988
|
close_type?: undefined;
|
|
4989
|
+
closing_reflection?: undefined;
|
|
4990
|
+
human_corrections?: undefined;
|
|
4881
4991
|
ceremony_duration_ms?: undefined;
|
|
4882
4992
|
title?: undefined;
|
|
4883
4993
|
description?: undefined;
|
|
@@ -4977,6 +5087,8 @@ export declare function getRegisteredTools(): ({
|
|
|
4977
5087
|
force?: undefined;
|
|
4978
5088
|
session_id?: undefined;
|
|
4979
5089
|
close_type?: undefined;
|
|
5090
|
+
closing_reflection?: undefined;
|
|
5091
|
+
human_corrections?: undefined;
|
|
4980
5092
|
ceremony_duration_ms?: undefined;
|
|
4981
5093
|
title?: undefined;
|
|
4982
5094
|
description?: undefined;
|
|
@@ -5073,6 +5185,8 @@ export declare function getRegisteredTools(): ({
|
|
|
5073
5185
|
force?: undefined;
|
|
5074
5186
|
session_id?: undefined;
|
|
5075
5187
|
close_type?: undefined;
|
|
5188
|
+
closing_reflection?: undefined;
|
|
5189
|
+
human_corrections?: undefined;
|
|
5076
5190
|
ceremony_duration_ms?: undefined;
|
|
5077
5191
|
learning_type?: undefined;
|
|
5078
5192
|
title?: undefined;
|
|
@@ -5182,6 +5296,8 @@ export declare function getRegisteredTools(): ({
|
|
|
5182
5296
|
force?: undefined;
|
|
5183
5297
|
session_id?: undefined;
|
|
5184
5298
|
close_type?: undefined;
|
|
5299
|
+
closing_reflection?: undefined;
|
|
5300
|
+
human_corrections?: undefined;
|
|
5185
5301
|
ceremony_duration_ms?: undefined;
|
|
5186
5302
|
learning_type?: undefined;
|
|
5187
5303
|
title?: undefined;
|
|
@@ -5273,6 +5389,8 @@ export declare function getRegisteredTools(): ({
|
|
|
5273
5389
|
force?: undefined;
|
|
5274
5390
|
session_id?: undefined;
|
|
5275
5391
|
close_type?: undefined;
|
|
5392
|
+
closing_reflection?: undefined;
|
|
5393
|
+
human_corrections?: undefined;
|
|
5276
5394
|
ceremony_duration_ms?: undefined;
|
|
5277
5395
|
learning_type?: undefined;
|
|
5278
5396
|
title?: undefined;
|
|
@@ -5364,6 +5482,8 @@ export declare function getRegisteredTools(): ({
|
|
|
5364
5482
|
force?: undefined;
|
|
5365
5483
|
session_id?: undefined;
|
|
5366
5484
|
close_type?: undefined;
|
|
5485
|
+
closing_reflection?: undefined;
|
|
5486
|
+
human_corrections?: undefined;
|
|
5367
5487
|
ceremony_duration_ms?: undefined;
|
|
5368
5488
|
learning_type?: undefined;
|
|
5369
5489
|
title?: undefined;
|
|
@@ -5449,6 +5569,8 @@ export declare function getRegisteredTools(): ({
|
|
|
5449
5569
|
force?: undefined;
|
|
5450
5570
|
session_id?: undefined;
|
|
5451
5571
|
close_type?: undefined;
|
|
5572
|
+
closing_reflection?: undefined;
|
|
5573
|
+
human_corrections?: undefined;
|
|
5452
5574
|
ceremony_duration_ms?: undefined;
|
|
5453
5575
|
learning_type?: undefined;
|
|
5454
5576
|
title?: undefined;
|
|
@@ -5536,6 +5658,8 @@ export declare function getRegisteredTools(): ({
|
|
|
5536
5658
|
force?: undefined;
|
|
5537
5659
|
session_id?: undefined;
|
|
5538
5660
|
close_type?: undefined;
|
|
5661
|
+
closing_reflection?: undefined;
|
|
5662
|
+
human_corrections?: undefined;
|
|
5539
5663
|
ceremony_duration_ms?: undefined;
|
|
5540
5664
|
learning_type?: undefined;
|
|
5541
5665
|
title?: undefined;
|
|
@@ -5620,6 +5744,8 @@ export declare function getRegisteredTools(): ({
|
|
|
5620
5744
|
force?: undefined;
|
|
5621
5745
|
session_id?: undefined;
|
|
5622
5746
|
close_type?: undefined;
|
|
5747
|
+
closing_reflection?: undefined;
|
|
5748
|
+
human_corrections?: undefined;
|
|
5623
5749
|
ceremony_duration_ms?: undefined;
|
|
5624
5750
|
learning_type?: undefined;
|
|
5625
5751
|
title?: undefined;
|
|
@@ -5707,6 +5833,8 @@ export declare function getRegisteredTools(): ({
|
|
|
5707
5833
|
force?: undefined;
|
|
5708
5834
|
session_id?: undefined;
|
|
5709
5835
|
close_type?: undefined;
|
|
5836
|
+
closing_reflection?: undefined;
|
|
5837
|
+
human_corrections?: undefined;
|
|
5710
5838
|
ceremony_duration_ms?: undefined;
|
|
5711
5839
|
learning_type?: undefined;
|
|
5712
5840
|
title?: undefined;
|
|
@@ -5791,6 +5919,8 @@ export declare function getRegisteredTools(): ({
|
|
|
5791
5919
|
force?: undefined;
|
|
5792
5920
|
session_id?: undefined;
|
|
5793
5921
|
close_type?: undefined;
|
|
5922
|
+
closing_reflection?: undefined;
|
|
5923
|
+
human_corrections?: undefined;
|
|
5794
5924
|
ceremony_duration_ms?: undefined;
|
|
5795
5925
|
learning_type?: undefined;
|
|
5796
5926
|
title?: undefined;
|
|
@@ -5880,6 +6010,8 @@ export declare function getRegisteredTools(): ({
|
|
|
5880
6010
|
force?: undefined;
|
|
5881
6011
|
session_id?: undefined;
|
|
5882
6012
|
close_type?: undefined;
|
|
6013
|
+
closing_reflection?: undefined;
|
|
6014
|
+
human_corrections?: undefined;
|
|
5883
6015
|
ceremony_duration_ms?: undefined;
|
|
5884
6016
|
learning_type?: undefined;
|
|
5885
6017
|
title?: undefined;
|
|
@@ -5984,6 +6116,8 @@ export declare function getRegisteredTools(): ({
|
|
|
5984
6116
|
force?: undefined;
|
|
5985
6117
|
session_id?: undefined;
|
|
5986
6118
|
close_type?: undefined;
|
|
6119
|
+
closing_reflection?: undefined;
|
|
6120
|
+
human_corrections?: undefined;
|
|
5987
6121
|
ceremony_duration_ms?: undefined;
|
|
5988
6122
|
learning_type?: undefined;
|
|
5989
6123
|
title?: undefined;
|
|
@@ -6096,6 +6230,8 @@ export declare function getRegisteredTools(): ({
|
|
|
6096
6230
|
force?: undefined;
|
|
6097
6231
|
session_id?: undefined;
|
|
6098
6232
|
close_type?: undefined;
|
|
6233
|
+
closing_reflection?: undefined;
|
|
6234
|
+
human_corrections?: undefined;
|
|
6099
6235
|
ceremony_duration_ms?: undefined;
|
|
6100
6236
|
learning_type?: undefined;
|
|
6101
6237
|
title?: undefined;
|
|
@@ -6182,6 +6318,8 @@ export declare function getRegisteredTools(): ({
|
|
|
6182
6318
|
force?: undefined;
|
|
6183
6319
|
session_id?: undefined;
|
|
6184
6320
|
close_type?: undefined;
|
|
6321
|
+
closing_reflection?: undefined;
|
|
6322
|
+
human_corrections?: undefined;
|
|
6185
6323
|
ceremony_duration_ms?: undefined;
|
|
6186
6324
|
learning_type?: undefined;
|
|
6187
6325
|
title?: undefined;
|
|
@@ -6285,6 +6423,8 @@ export declare function getRegisteredTools(): ({
|
|
|
6285
6423
|
force?: undefined;
|
|
6286
6424
|
session_id?: undefined;
|
|
6287
6425
|
close_type?: undefined;
|
|
6426
|
+
closing_reflection?: undefined;
|
|
6427
|
+
human_corrections?: undefined;
|
|
6288
6428
|
ceremony_duration_ms?: undefined;
|
|
6289
6429
|
learning_type?: undefined;
|
|
6290
6430
|
title?: undefined;
|
|
@@ -6388,6 +6528,8 @@ export declare function getRegisteredTools(): ({
|
|
|
6388
6528
|
force?: undefined;
|
|
6389
6529
|
session_id?: undefined;
|
|
6390
6530
|
close_type?: undefined;
|
|
6531
|
+
closing_reflection?: undefined;
|
|
6532
|
+
human_corrections?: undefined;
|
|
6391
6533
|
ceremony_duration_ms?: undefined;
|
|
6392
6534
|
learning_type?: undefined;
|
|
6393
6535
|
title?: undefined;
|
|
@@ -6490,6 +6632,8 @@ export declare function getRegisteredTools(): ({
|
|
|
6490
6632
|
force?: undefined;
|
|
6491
6633
|
session_id?: undefined;
|
|
6492
6634
|
close_type?: undefined;
|
|
6635
|
+
closing_reflection?: undefined;
|
|
6636
|
+
human_corrections?: undefined;
|
|
6493
6637
|
ceremony_duration_ms?: undefined;
|
|
6494
6638
|
learning_type?: undefined;
|
|
6495
6639
|
title?: undefined;
|
|
@@ -6567,6 +6711,8 @@ export declare function getRegisteredTools(): ({
|
|
|
6567
6711
|
force?: undefined;
|
|
6568
6712
|
session_id?: undefined;
|
|
6569
6713
|
close_type?: undefined;
|
|
6714
|
+
closing_reflection?: undefined;
|
|
6715
|
+
human_corrections?: undefined;
|
|
6570
6716
|
ceremony_duration_ms?: undefined;
|
|
6571
6717
|
learning_type?: undefined;
|
|
6572
6718
|
title?: undefined;
|
|
@@ -6656,6 +6802,8 @@ export declare function getRegisteredTools(): ({
|
|
|
6656
6802
|
force?: undefined;
|
|
6657
6803
|
session_id?: undefined;
|
|
6658
6804
|
close_type?: undefined;
|
|
6805
|
+
closing_reflection?: undefined;
|
|
6806
|
+
human_corrections?: undefined;
|
|
6659
6807
|
ceremony_duration_ms?: undefined;
|
|
6660
6808
|
learning_type?: undefined;
|
|
6661
6809
|
title?: undefined;
|
|
@@ -6760,6 +6908,8 @@ export declare function getRegisteredTools(): ({
|
|
|
6760
6908
|
force?: undefined;
|
|
6761
6909
|
session_id?: undefined;
|
|
6762
6910
|
close_type?: undefined;
|
|
6911
|
+
closing_reflection?: undefined;
|
|
6912
|
+
human_corrections?: undefined;
|
|
6763
6913
|
ceremony_duration_ms?: undefined;
|
|
6764
6914
|
learning_type?: undefined;
|
|
6765
6915
|
title?: undefined;
|
|
@@ -6862,6 +7012,8 @@ export declare function getRegisteredTools(): ({
|
|
|
6862
7012
|
force?: undefined;
|
|
6863
7013
|
session_id?: undefined;
|
|
6864
7014
|
close_type?: undefined;
|
|
7015
|
+
closing_reflection?: undefined;
|
|
7016
|
+
human_corrections?: undefined;
|
|
6865
7017
|
ceremony_duration_ms?: undefined;
|
|
6866
7018
|
learning_type?: undefined;
|
|
6867
7019
|
title?: undefined;
|
|
@@ -164,7 +164,7 @@ export const TOOLS = [
|
|
|
164
164
|
},
|
|
165
165
|
{
|
|
166
166
|
name: "session_close",
|
|
167
|
-
description: "Persist session with compliance validation.
|
|
167
|
+
description: "Persist session with compliance validation. Two modes: (1) Write closing_reflection and other payload to {gitmem_dir}/closing-payload.json, then call with session_id + close_type. (2) Pass closing_reflection directly as a parameter (simpler). Both work — inline params override file payload. task_completion is auto-generated. DISPLAY: Output the display field verbatim.",
|
|
168
168
|
inputSchema: {
|
|
169
169
|
type: "object",
|
|
170
170
|
properties: {
|
|
@@ -177,6 +177,14 @@ export const TOOLS = [
|
|
|
177
177
|
enum: ["standard", "quick", "autonomous"],
|
|
178
178
|
description: "Type of close (standard requires full reflection)",
|
|
179
179
|
},
|
|
180
|
+
closing_reflection: {
|
|
181
|
+
type: "object",
|
|
182
|
+
description: "Session reflection (alternative to writing closing-payload.json). Keys: what_broke, what_took_longer, do_differently, what_worked, wrong_assumption, scars_applied, institutional_memory_items, collaborative_dynamic, rapport_notes",
|
|
183
|
+
},
|
|
184
|
+
human_corrections: {
|
|
185
|
+
type: "string",
|
|
186
|
+
description: "Human corrections or 'none'",
|
|
187
|
+
},
|
|
180
188
|
linear_issue: {
|
|
181
189
|
type: "string",
|
|
182
190
|
description: "Associated Linear issue",
|
|
@@ -878,7 +886,7 @@ export const TOOLS = [
|
|
|
878
886
|
},
|
|
879
887
|
{
|
|
880
888
|
name: "gitmem-sc",
|
|
881
|
-
description: "gitmem-sc (session_close) - Close session
|
|
889
|
+
description: "gitmem-sc (session_close) - Close session. Two modes: (1) Write payload to closing-payload.json first, or (2) pass closing_reflection directly as param. Both work.",
|
|
882
890
|
inputSchema: {
|
|
883
891
|
type: "object",
|
|
884
892
|
properties: {
|
|
@@ -891,6 +899,14 @@ export const TOOLS = [
|
|
|
891
899
|
enum: ["standard", "quick", "autonomous"],
|
|
892
900
|
description: "Type of close (standard requires full reflection)",
|
|
893
901
|
},
|
|
902
|
+
closing_reflection: {
|
|
903
|
+
type: "object",
|
|
904
|
+
description: "Session reflection (alternative to writing closing-payload.json)",
|
|
905
|
+
},
|
|
906
|
+
human_corrections: {
|
|
907
|
+
type: "string",
|
|
908
|
+
description: "Human corrections or 'none'",
|
|
909
|
+
},
|
|
894
910
|
linear_issue: {
|
|
895
911
|
type: "string",
|
|
896
912
|
description: "Associated Linear issue",
|
|
@@ -1548,7 +1564,7 @@ export const TOOLS = [
|
|
|
1548
1564
|
},
|
|
1549
1565
|
{
|
|
1550
1566
|
name: "gm-close",
|
|
1551
|
-
description: "gm-close (session_close) - Close
|
|
1567
|
+
description: "gm-close (session_close) - Close session. Pass closing_reflection directly or write to closing-payload.json first.",
|
|
1552
1568
|
inputSchema: {
|
|
1553
1569
|
type: "object",
|
|
1554
1570
|
properties: {
|
|
@@ -1561,6 +1577,14 @@ export const TOOLS = [
|
|
|
1561
1577
|
enum: ["standard", "quick", "autonomous"],
|
|
1562
1578
|
description: "Type of close (standard requires full reflection)",
|
|
1563
1579
|
},
|
|
1580
|
+
closing_reflection: {
|
|
1581
|
+
type: "object",
|
|
1582
|
+
description: "Session reflection (alternative to writing closing-payload.json)",
|
|
1583
|
+
},
|
|
1584
|
+
human_corrections: {
|
|
1585
|
+
type: "string",
|
|
1586
|
+
description: "Human corrections or 'none'",
|
|
1587
|
+
},
|
|
1564
1588
|
linear_issue: {
|
|
1565
1589
|
type: "string",
|
|
1566
1590
|
description: "Associated Linear issue",
|
|
@@ -40,13 +40,15 @@ function buildThreadsDisplay(threads, totalOpen, totalResolved) {
|
|
|
40
40
|
// Deterministic sort: oldest first by created_at
|
|
41
41
|
const sorted = [...threads].sort((a, b) => a.created_at.localeCompare(b.created_at));
|
|
42
42
|
// Markdown table — renders cleanly in all MCP clients
|
|
43
|
-
|
|
44
|
-
lines.push("
|
|
43
|
+
// Show short thread ID so agents can reference threads by ID or #N position
|
|
44
|
+
lines.push("| # | ID | Thread | Active |");
|
|
45
|
+
lines.push("|---|-----|--------|--------|");
|
|
45
46
|
for (let i = 0; i < sorted.length; i++) {
|
|
46
47
|
const t = sorted[i];
|
|
47
|
-
const text = truncate(t.text,
|
|
48
|
+
const text = truncate(t.text, 55);
|
|
48
49
|
const date = shortDate(t.last_touched_at || t.created_at);
|
|
49
|
-
|
|
50
|
+
const shortId = t.id?.slice(0, 10) || "—";
|
|
51
|
+
lines.push(`| ${i + 1} | ${shortId} | ${text} | ${date} |`);
|
|
50
52
|
}
|
|
51
53
|
return wrapDisplay(lines.join("\n"));
|
|
52
54
|
}
|
package/dist/tools/log.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ import type { Project, PerformanceData } from "../types/index.js";
|
|
|
13
13
|
export interface LogParams {
|
|
14
14
|
limit?: number;
|
|
15
15
|
project?: Project;
|
|
16
|
-
learning_type?: "scar" | "win" | "pattern";
|
|
16
|
+
learning_type?: "scar" | "win" | "pattern" | "anti_pattern";
|
|
17
17
|
severity?: "critical" | "high" | "medium" | "low";
|
|
18
18
|
since?: number;
|
|
19
19
|
}
|
package/dist/tools/recall.js
CHANGED
|
@@ -45,7 +45,7 @@ No past lessons match this plan closely enough. Scars accumulate as you work —
|
|
|
45
45
|
"",
|
|
46
46
|
];
|
|
47
47
|
if (allStarter) {
|
|
48
|
-
lines.push(`${dimText("
|
|
48
|
+
lines.push(`${dimText("No project-specific lessons yet. Use create_learning to capture your first.")}`);
|
|
49
49
|
lines.push("");
|
|
50
50
|
}
|
|
51
51
|
// Display blocking verification requirements FIRST and prominently
|
|
@@ -72,7 +72,8 @@ No past lessons match this plan closely enough. Scars accumulate as you work —
|
|
|
72
72
|
}
|
|
73
73
|
for (const scar of scars) {
|
|
74
74
|
const sev = SEV[scar.severity] || "[?]";
|
|
75
|
-
|
|
75
|
+
const starterTag = scar.is_starter ? ` ${dimText("[starter]")}` : "";
|
|
76
|
+
lines.push(`${sev} **${scar.title}** (${scar.severity}, ${scar.similarity.toFixed(2)}) ${dimText(`id:${scar.id.slice(0, 8)}`)}${starterTag}`);
|
|
76
77
|
// Inline archival hint: scars with high dismiss rates get annotated
|
|
77
78
|
if (dismissals) {
|
|
78
79
|
const counts = dismissals.get(scar.id);
|
|
@@ -44,10 +44,31 @@ export async function resolveThread(params) {
|
|
|
44
44
|
}
|
|
45
45
|
const session = getCurrentSession();
|
|
46
46
|
const sessionId = session?.sessionId;
|
|
47
|
+
// Support positional #N references (e.g. "#3" resolves the 3rd thread in sorted order)
|
|
48
|
+
let effectiveThreadId = params.thread_id;
|
|
49
|
+
let effectiveTextMatch = params.text_match;
|
|
50
|
+
const posMatch = (params.thread_id || params.text_match || "").match(/^#(\d+)$/);
|
|
51
|
+
if (posMatch) {
|
|
52
|
+
const pos = parseInt(posMatch[1], 10);
|
|
53
|
+
const openThreads = threads
|
|
54
|
+
.filter(t => t.status === "open")
|
|
55
|
+
.sort((a, b) => a.created_at.localeCompare(b.created_at));
|
|
56
|
+
if (pos < 1 || pos > openThreads.length) {
|
|
57
|
+
const latencyMs = timer.stop();
|
|
58
|
+
return {
|
|
59
|
+
success: false,
|
|
60
|
+
error: `Thread #${pos} out of range (${openThreads.length} open threads)`,
|
|
61
|
+
performance: buildPerformanceData("resolve_thread", latencyMs, 0),
|
|
62
|
+
display: wrapDisplay(`Thread #${pos} out of range (${openThreads.length} open threads)`),
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
effectiveThreadId = openThreads[pos - 1].id;
|
|
66
|
+
effectiveTextMatch = undefined;
|
|
67
|
+
}
|
|
47
68
|
// Resolve the thread locally (in-memory / file)
|
|
48
69
|
const resolved = resolveThreadInList(threads, {
|
|
49
|
-
threadId:
|
|
50
|
-
textMatch:
|
|
70
|
+
threadId: effectiveThreadId,
|
|
71
|
+
textMatch: effectiveTextMatch,
|
|
51
72
|
sessionId,
|
|
52
73
|
resolutionNote: params.resolution_note,
|
|
53
74
|
});
|
package/dist/tools/search.d.ts
CHANGED
package/dist/tools/search.js
CHANGED
|
@@ -17,7 +17,7 @@ import { getProject } from "../services/session-state.js";
|
|
|
17
17
|
import { getStorage } from "../services/storage.js";
|
|
18
18
|
import { Timer, recordMetrics, buildPerformanceData, buildComponentPerformance, } from "../services/metrics.js";
|
|
19
19
|
import { v4 as uuidv4 } from "uuid";
|
|
20
|
-
import { wrapDisplay, truncate, SEV, TYPE, productLine } from "../services/display-protocol.js";
|
|
20
|
+
import { wrapDisplay, truncate, SEV, TYPE, productLine, dimText } from "../services/display-protocol.js";
|
|
21
21
|
// --- Display Formatting ---
|
|
22
22
|
function buildSearchDisplay(results, total_found, query, filters) {
|
|
23
23
|
const lines = [];
|
|
@@ -41,7 +41,8 @@ function buildSearchDisplay(results, total_found, query, filters) {
|
|
|
41
41
|
const sim = `(${r.similarity.toFixed(2)})`;
|
|
42
42
|
const issue = r.source_linear_issue ? ` ${r.source_linear_issue}` : "";
|
|
43
43
|
lines.push(`${te} ${se} ${t.padEnd(52)} ${sim}${issue}`);
|
|
44
|
-
|
|
44
|
+
const starterTag = r.is_starter ? ` ${dimText("[starter]")}` : "";
|
|
45
|
+
lines.push(` ${truncate(r.description, 72)} id:${r.id.slice(0, 8)}${starterTag}`);
|
|
45
46
|
}
|
|
46
47
|
lines.push("");
|
|
47
48
|
lines.push(`${total_found} results found`);
|
|
@@ -70,6 +71,7 @@ export async function search(params) {
|
|
|
70
71
|
description: r.description || "",
|
|
71
72
|
counter_arguments: r.counter_arguments || [],
|
|
72
73
|
similarity: r.similarity || 0,
|
|
74
|
+
is_starter: r.is_starter || undefined,
|
|
73
75
|
}));
|
|
74
76
|
// Also search decisions
|
|
75
77
|
try {
|