agent-recall-core 3.4.30 → 3.4.35
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 +121 -441
- package/dist/digest/store.d.ts.map +1 -1
- package/dist/digest/store.js +4 -3
- package/dist/digest/store.js.map +1 -1
- package/dist/display/board-render.d.ts +61 -0
- package/dist/display/board-render.d.ts.map +1 -0
- package/dist/display/board-render.js +223 -0
- package/dist/display/board-render.js.map +1 -0
- package/dist/helpers/alignment-patterns.d.ts +10 -0
- package/dist/helpers/alignment-patterns.d.ts.map +1 -1
- package/dist/helpers/alignment-patterns.js +5 -1
- package/dist/helpers/alignment-patterns.js.map +1 -1
- package/dist/helpers/blind-spots.d.ts +86 -0
- package/dist/helpers/blind-spots.d.ts.map +1 -0
- package/dist/helpers/blind-spots.js +205 -0
- package/dist/helpers/blind-spots.js.map +1 -0
- package/dist/helpers/conflict-scan.d.ts +10 -0
- package/dist/helpers/conflict-scan.d.ts.map +1 -1
- package/dist/helpers/conflict-scan.js +3 -3
- package/dist/helpers/conflict-scan.js.map +1 -1
- package/dist/helpers/semantic-match.d.ts +82 -0
- package/dist/helpers/semantic-match.d.ts.map +1 -0
- package/dist/helpers/semantic-match.js +229 -0
- package/dist/helpers/semantic-match.js.map +1 -0
- package/dist/index.d.ts +52 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +48 -9
- package/dist/index.js.map +1 -1
- package/dist/palace/awareness.d.ts +30 -0
- package/dist/palace/awareness.d.ts.map +1 -1
- package/dist/palace/awareness.js +65 -2
- package/dist/palace/awareness.js.map +1 -1
- package/dist/palace/consolidate.d.ts.map +1 -1
- package/dist/palace/consolidate.js +17 -0
- package/dist/palace/consolidate.js.map +1 -1
- package/dist/palace/decay-pass.d.ts +46 -0
- package/dist/palace/decay-pass.d.ts.map +1 -0
- package/dist/palace/decay-pass.js +87 -0
- package/dist/palace/decay-pass.js.map +1 -0
- package/dist/palace/insights-index.d.ts.map +1 -1
- package/dist/palace/insights-index.js +4 -2
- package/dist/palace/insights-index.js.map +1 -1
- package/dist/palace/skills.d.ts +41 -2
- package/dist/palace/skills.d.ts.map +1 -1
- package/dist/palace/skills.js +106 -4
- package/dist/palace/skills.js.map +1 -1
- package/dist/prompts/consolidation-prompt.d.ts +25 -0
- package/dist/prompts/consolidation-prompt.d.ts.map +1 -0
- package/dist/prompts/consolidation-prompt.js +91 -0
- package/dist/prompts/consolidation-prompt.js.map +1 -0
- package/dist/storage/archive-prune.d.ts +56 -0
- package/dist/storage/archive-prune.d.ts.map +1 -0
- package/dist/storage/archive-prune.js +118 -0
- package/dist/storage/archive-prune.js.map +1 -0
- package/dist/storage/archive-write.d.ts +38 -0
- package/dist/storage/archive-write.d.ts.map +1 -0
- package/dist/storage/archive-write.js +98 -0
- package/dist/storage/archive-write.js.map +1 -0
- package/dist/storage/blind-spots-store.d.ts +30 -0
- package/dist/storage/blind-spots-store.d.ts.map +1 -0
- package/dist/storage/blind-spots-store.js +91 -0
- package/dist/storage/blind-spots-store.js.map +1 -0
- package/dist/storage/capture-router.d.ts +60 -0
- package/dist/storage/capture-router.d.ts.map +1 -0
- package/dist/storage/capture-router.js +133 -0
- package/dist/storage/capture-router.js.map +1 -0
- package/dist/storage/classification.d.ts +32 -0
- package/dist/storage/classification.d.ts.map +1 -0
- package/dist/storage/classification.js +74 -0
- package/dist/storage/classification.js.map +1 -0
- package/dist/storage/consolidation-queue.d.ts +39 -0
- package/dist/storage/consolidation-queue.d.ts.map +1 -0
- package/dist/storage/consolidation-queue.js +120 -0
- package/dist/storage/consolidation-queue.js.map +1 -0
- package/dist/storage/content-guard.d.ts +74 -0
- package/dist/storage/content-guard.d.ts.map +1 -0
- package/dist/storage/content-guard.js +179 -0
- package/dist/storage/content-guard.js.map +1 -0
- package/dist/storage/corrections.d.ts +246 -21
- package/dist/storage/corrections.d.ts.map +1 -1
- package/dist/storage/corrections.js +605 -56
- package/dist/storage/corrections.js.map +1 -1
- package/dist/storage/durable-intent.d.ts +49 -0
- package/dist/storage/durable-intent.d.ts.map +1 -0
- package/dist/storage/durable-intent.js +124 -0
- package/dist/storage/durable-intent.js.map +1 -0
- package/dist/storage/filelock.d.ts +6 -0
- package/dist/storage/filelock.d.ts.map +1 -1
- package/dist/storage/filelock.js +6 -1
- package/dist/storage/filelock.js.map +1 -1
- package/dist/storage/memory-protocol.d.ts +19 -0
- package/dist/storage/memory-protocol.d.ts.map +1 -0
- package/dist/storage/memory-protocol.js +101 -0
- package/dist/storage/memory-protocol.js.map +1 -0
- package/dist/storage/paths.d.ts +23 -0
- package/dist/storage/paths.d.ts.map +1 -1
- package/dist/storage/paths.js +39 -0
- package/dist/storage/paths.js.map +1 -1
- package/dist/storage/retention.d.ts +23 -0
- package/dist/storage/retention.d.ts.map +1 -0
- package/dist/storage/retention.js +48 -0
- package/dist/storage/retention.js.map +1 -0
- package/dist/storage/session.d.ts +2 -2
- package/dist/storage/session.d.ts.map +1 -1
- package/dist/storage/session.js +11 -1
- package/dist/storage/session.js.map +1 -1
- package/dist/supabase/config.d.ts +8 -0
- package/dist/supabase/config.d.ts.map +1 -1
- package/dist/supabase/config.js +5 -0
- package/dist/supabase/config.js.map +1 -1
- package/dist/supabase/recall-backend.d.ts +1 -0
- package/dist/supabase/recall-backend.d.ts.map +1 -1
- package/dist/supabase/recall-backend.js +13 -13
- package/dist/supabase/recall-backend.js.map +1 -1
- package/dist/supabase/sync.d.ts.map +1 -1
- package/dist/supabase/sync.js +30 -3
- package/dist/supabase/sync.js.map +1 -1
- package/dist/tools-logic/bootstrap.d.ts +15 -0
- package/dist/tools-logic/bootstrap.d.ts.map +1 -1
- package/dist/tools-logic/bootstrap.js +238 -47
- package/dist/tools-logic/bootstrap.js.map +1 -1
- package/dist/tools-logic/brief.d.ts +84 -0
- package/dist/tools-logic/brief.d.ts.map +1 -0
- package/dist/tools-logic/brief.js +193 -0
- package/dist/tools-logic/brief.js.map +1 -0
- package/dist/tools-logic/check-action.d.ts +9 -0
- package/dist/tools-logic/check-action.d.ts.map +1 -1
- package/dist/tools-logic/check-action.js +31 -2
- package/dist/tools-logic/check-action.js.map +1 -1
- package/dist/tools-logic/check.d.ts +7 -0
- package/dist/tools-logic/check.d.ts.map +1 -1
- package/dist/tools-logic/check.js +24 -2
- package/dist/tools-logic/check.js.map +1 -1
- package/dist/tools-logic/confidence.d.ts +50 -0
- package/dist/tools-logic/confidence.d.ts.map +1 -0
- package/dist/tools-logic/confidence.js +70 -0
- package/dist/tools-logic/confidence.js.map +1 -0
- package/dist/tools-logic/drill-down.d.ts +37 -0
- package/dist/tools-logic/drill-down.d.ts.map +1 -0
- package/dist/tools-logic/drill-down.js +63 -0
- package/dist/tools-logic/drill-down.js.map +1 -0
- package/dist/tools-logic/export-corrections.d.ts +63 -0
- package/dist/tools-logic/export-corrections.d.ts.map +1 -0
- package/dist/tools-logic/export-corrections.js +124 -0
- package/dist/tools-logic/export-corrections.js.map +1 -0
- package/dist/tools-logic/journal-capture.d.ts.map +1 -1
- package/dist/tools-logic/journal-capture.js +4 -1
- package/dist/tools-logic/journal-capture.js.map +1 -1
- package/dist/tools-logic/journal-write.d.ts.map +1 -1
- package/dist/tools-logic/journal-write.js +3 -2
- package/dist/tools-logic/journal-write.js.map +1 -1
- package/dist/tools-logic/memory-query.d.ts +10 -3
- package/dist/tools-logic/memory-query.d.ts.map +1 -1
- package/dist/tools-logic/memory-query.js +31 -7
- package/dist/tools-logic/memory-query.js.map +1 -1
- package/dist/tools-logic/mirror-builder.d.ts +115 -0
- package/dist/tools-logic/mirror-builder.d.ts.map +1 -0
- package/dist/tools-logic/mirror-builder.js +348 -0
- package/dist/tools-logic/mirror-builder.js.map +1 -0
- package/dist/tools-logic/palace-write.d.ts.map +1 -1
- package/dist/tools-logic/palace-write.js +3 -2
- package/dist/tools-logic/palace-write.js.map +1 -1
- package/dist/tools-logic/pipeline-close.d.ts.map +1 -1
- package/dist/tools-logic/pipeline-close.js +2 -1
- package/dist/tools-logic/pipeline-close.js.map +1 -1
- package/dist/tools-logic/pipeline-open.d.ts.map +1 -1
- package/dist/tools-logic/pipeline-open.js +2 -1
- package/dist/tools-logic/pipeline-open.js.map +1 -1
- package/dist/tools-logic/predict-correction.d.ts +47 -0
- package/dist/tools-logic/predict-correction.d.ts.map +1 -0
- package/dist/tools-logic/predict-correction.js +137 -0
- package/dist/tools-logic/predict-correction.js.map +1 -0
- package/dist/tools-logic/prior-builder.d.ts +27 -0
- package/dist/tools-logic/prior-builder.d.ts.map +1 -0
- package/dist/tools-logic/prior-builder.js +57 -0
- package/dist/tools-logic/prior-builder.js.map +1 -0
- package/dist/tools-logic/recognition-builder.d.ts +116 -0
- package/dist/tools-logic/recognition-builder.d.ts.map +1 -0
- package/dist/tools-logic/recognition-builder.js +289 -0
- package/dist/tools-logic/recognition-builder.js.map +1 -0
- package/dist/tools-logic/safety-consolidation.d.ts +104 -0
- package/dist/tools-logic/safety-consolidation.d.ts.map +1 -0
- package/dist/tools-logic/safety-consolidation.js +256 -0
- package/dist/tools-logic/safety-consolidation.js.map +1 -0
- package/dist/tools-logic/session-end-reflect.d.ts +18 -0
- package/dist/tools-logic/session-end-reflect.d.ts.map +1 -1
- package/dist/tools-logic/session-end-reflect.js +68 -29
- package/dist/tools-logic/session-end-reflect.js.map +1 -1
- package/dist/tools-logic/session-end.d.ts +9 -0
- package/dist/tools-logic/session-end.d.ts.map +1 -1
- package/dist/tools-logic/session-end.js +111 -13
- package/dist/tools-logic/session-end.js.map +1 -1
- package/dist/tools-logic/session-start-lite.d.ts +2 -0
- package/dist/tools-logic/session-start-lite.d.ts.map +1 -1
- package/dist/tools-logic/session-start-lite.js +10 -0
- package/dist/tools-logic/session-start-lite.js.map +1 -1
- package/dist/tools-logic/session-start.d.ts +46 -0
- package/dist/tools-logic/session-start.d.ts.map +1 -1
- package/dist/tools-logic/session-start.js +96 -3
- package/dist/tools-logic/session-start.js.map +1 -1
- package/dist/tools-logic/skill-propose.d.ts +27 -0
- package/dist/tools-logic/skill-propose.d.ts.map +1 -0
- package/dist/tools-logic/skill-propose.js +66 -0
- package/dist/tools-logic/skill-propose.js.map +1 -0
- package/dist/tools-logic/skill-recall.d.ts +5 -0
- package/dist/tools-logic/skill-recall.d.ts.map +1 -1
- package/dist/tools-logic/skill-recall.js +14 -1
- package/dist/tools-logic/skill-recall.js.map +1 -1
- package/dist/tools-logic/smart-recall.d.ts +17 -0
- package/dist/tools-logic/smart-recall.d.ts.map +1 -1
- package/dist/tools-logic/smart-recall.js +51 -16
- package/dist/tools-logic/smart-recall.js.map +1 -1
- package/dist/tools-logic/store-doctor.d.ts +71 -0
- package/dist/tools-logic/store-doctor.d.ts.map +1 -0
- package/dist/tools-logic/store-doctor.js +387 -0
- package/dist/tools-logic/store-doctor.js.map +1 -0
- package/dist/tools-logic/store-repair.d.ts +64 -0
- package/dist/tools-logic/store-repair.d.ts.map +1 -0
- package/dist/tools-logic/store-repair.js +243 -0
- package/dist/tools-logic/store-repair.js.map +1 -0
- package/dist/tools-logic/supersession.d.ts +34 -0
- package/dist/tools-logic/supersession.d.ts.map +1 -0
- package/dist/tools-logic/supersession.js +103 -0
- package/dist/tools-logic/supersession.js.map +1 -0
- package/dist/types.d.ts +7 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/vector/local-vector-backend.d.ts.map +1 -1
- package/dist/vector/local-vector-backend.js +14 -17
- package/dist/vector/local-vector-backend.js.map +1 -1
- package/package.json +9 -1
- package/dist/relevance/injector.d.ts +0 -51
- package/dist/relevance/injector.d.ts.map +0 -1
- package/dist/relevance/injector.js +0 -121
- package/dist/relevance/injector.js.map +0 -1
- package/dist/relevance/precision.d.ts +0 -109
- package/dist/relevance/precision.d.ts.map +0 -1
- package/dist/relevance/precision.js +0 -279
- package/dist/relevance/precision.js.map +0 -1
- package/dist/relevance/promoter.d.ts +0 -60
- package/dist/relevance/promoter.d.ts.map +0 -1
- package/dist/relevance/promoter.js +0 -336
- package/dist/relevance/promoter.js.map +0 -1
- package/dist/relevance/stager.d.ts +0 -61
- package/dist/relevance/stager.d.ts.map +0 -1
- package/dist/relevance/stager.js +0 -251
- package/dist/relevance/stager.js.map +0 -1
- package/dist/relevance/surfacer.d.ts +0 -34
- package/dist/relevance/surfacer.d.ts.map +0 -1
- package/dist/relevance/surfacer.js +0 -333
- package/dist/relevance/surfacer.js.map +0 -1
|
@@ -21,6 +21,7 @@ import { generateFrontmatter } from "./obsidian.js";
|
|
|
21
21
|
import { updatePalaceIndex } from "./index-manager.js";
|
|
22
22
|
import { appendToLog } from "./log.js";
|
|
23
23
|
import { markKeystones } from "./keystone.js";
|
|
24
|
+
import { runDecayPass } from "./decay-pass.js";
|
|
24
25
|
/**
|
|
25
26
|
* Returns true if the brief contains 3 or more phase markers,
|
|
26
27
|
* indicating a multi-phase technical session.
|
|
@@ -152,12 +153,28 @@ export function consolidateJournalToPalace(project, entryCount = 5) {
|
|
|
152
153
|
catch {
|
|
153
154
|
// Keystone marking is best-effort — never breaks consolidation
|
|
154
155
|
}
|
|
156
|
+
// Wave 3: run the FSRS/salience decay pass — flags stale skills/rooms as
|
|
157
|
+
// archived (non-destructive). Best-effort: never breaks consolidation.
|
|
158
|
+
let decay = null;
|
|
159
|
+
try {
|
|
160
|
+
decay = runDecayPass(project, { dryRun: false });
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
// Decay is best-effort — never breaks consolidation
|
|
164
|
+
}
|
|
155
165
|
// Log the operation
|
|
156
166
|
appendToLog(project, "consolidate", {
|
|
157
167
|
entries_processed: result.entriesProcessed,
|
|
158
168
|
rooms_updated: result.roomsUpdated,
|
|
159
169
|
memories_created: result.memoriesCreated,
|
|
160
170
|
keystones_marked: keystonesMarked,
|
|
171
|
+
decay: decay
|
|
172
|
+
? {
|
|
173
|
+
scanned: decay.scanned,
|
|
174
|
+
archived: decay.archived_candidates.length,
|
|
175
|
+
skipped: decay.skipped.length,
|
|
176
|
+
}
|
|
177
|
+
: null,
|
|
161
178
|
});
|
|
162
179
|
return result;
|
|
163
180
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consolidate.js","sourceRoot":"","sources":["../../src/palace/consolidate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAc,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACxF,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"consolidate.js","sourceRoot":"","sources":["../../src/palace/consolidate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decay pass — Wave 3 compression tier.
|
|
3
|
+
*
|
|
4
|
+
* Turns "what you use survives" from dormant FSRS code into a real in-repo
|
|
5
|
+
* pass that runs during consolidation. Two object types, ONE decay model each
|
|
6
|
+
* (never both):
|
|
7
|
+
*
|
|
8
|
+
* - Skills → FSRS retrievability (`score`). When status === 'archive_candidate'
|
|
9
|
+
* the skill is flagged `archived:true` (NON-destructive — never
|
|
10
|
+
* unlinked; readers filter it via listSkills).
|
|
11
|
+
* - Rooms → salience (`computeSalience`). When salience falls at/below the
|
|
12
|
+
* archive threshold the room is flagged `archived:true`. Rooms are
|
|
13
|
+
* NOT FSRS-decayed (one decay model per object type).
|
|
14
|
+
*
|
|
15
|
+
* Invariants:
|
|
16
|
+
* - Never deletes anything (compress.ts §6: archive, do not unlink).
|
|
17
|
+
* - Skips structurally protected rooms: `corrections`, `critical_path`,
|
|
18
|
+
* and any `keystone` room.
|
|
19
|
+
* - Best-effort & deterministic — never throws to the caller.
|
|
20
|
+
*/
|
|
21
|
+
export interface DecayCandidate {
|
|
22
|
+
/** Object slug (skill slug or room slug). */
|
|
23
|
+
slug: string;
|
|
24
|
+
/** "skill" or "room". */
|
|
25
|
+
kind: "skill" | "room";
|
|
26
|
+
/** Retrievability (skills) or salience (rooms) at decision time. */
|
|
27
|
+
r: number;
|
|
28
|
+
}
|
|
29
|
+
export interface DecayReport {
|
|
30
|
+
/** Total skills + rooms scanned. */
|
|
31
|
+
scanned: number;
|
|
32
|
+
/** Objects flagged archived this pass (or that WOULD be, when dryRun). */
|
|
33
|
+
archived_candidates: DecayCandidate[];
|
|
34
|
+
/** Room slugs skipped because they are protected/keystone. */
|
|
35
|
+
skipped: string[];
|
|
36
|
+
}
|
|
37
|
+
export interface DecayOptions {
|
|
38
|
+
/** When true, compute & report but DO NOT write any flag. Default false. */
|
|
39
|
+
dryRun?: boolean;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Run the decay pass for a project. Flags stale skills (FSRS) and rooms
|
|
43
|
+
* (salience) as `archived:true` without deleting. Never throws.
|
|
44
|
+
*/
|
|
45
|
+
export declare function runDecayPass(project: string, opts?: DecayOptions): DecayReport;
|
|
46
|
+
//# sourceMappingURL=decay-pass.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decay-pass.d.ts","sourceRoot":"","sources":["../../src/palace/decay-pass.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAeH,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,oEAAoE;IACpE,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,WAAW;IAC1B,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,mBAAmB,EAAE,cAAc,EAAE,CAAC;IACtC,8DAA8D;IAC9D,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,4EAA4E;IAC5E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,YAAiB,GAAG,WAAW,CAkDlF"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decay pass — Wave 3 compression tier.
|
|
3
|
+
*
|
|
4
|
+
* Turns "what you use survives" from dormant FSRS code into a real in-repo
|
|
5
|
+
* pass that runs during consolidation. Two object types, ONE decay model each
|
|
6
|
+
* (never both):
|
|
7
|
+
*
|
|
8
|
+
* - Skills → FSRS retrievability (`score`). When status === 'archive_candidate'
|
|
9
|
+
* the skill is flagged `archived:true` (NON-destructive — never
|
|
10
|
+
* unlinked; readers filter it via listSkills).
|
|
11
|
+
* - Rooms → salience (`computeSalience`). When salience falls at/below the
|
|
12
|
+
* archive threshold the room is flagged `archived:true`. Rooms are
|
|
13
|
+
* NOT FSRS-decayed (one decay model per object type).
|
|
14
|
+
*
|
|
15
|
+
* Invariants:
|
|
16
|
+
* - Never deletes anything (compress.ts §6: archive, do not unlink).
|
|
17
|
+
* - Skips structurally protected rooms: `corrections`, `critical_path`,
|
|
18
|
+
* and any `keystone` room.
|
|
19
|
+
* - Best-effort & deterministic — never throws to the caller.
|
|
20
|
+
*/
|
|
21
|
+
import { listSkills, setSkillArchived } from "./skills.js";
|
|
22
|
+
import { score, initFsrs } from "./fsrs.js";
|
|
23
|
+
import { listRooms, getRoomMeta, updateRoomMeta } from "./rooms.js";
|
|
24
|
+
import { computeSalience, ARCHIVE_THRESHOLD as SALIENCE_ARCHIVE_THRESHOLD } from "./salience.js";
|
|
25
|
+
import { getConnectionCount } from "./graph.js";
|
|
26
|
+
import { palaceDir } from "../storage/paths.js";
|
|
27
|
+
/** Rooms whose slug is structurally load-bearing — never archived by decay. */
|
|
28
|
+
const PROTECTED_ROOM_SLUGS = new Set(["corrections", "critical_path", "critical-path"]);
|
|
29
|
+
/**
|
|
30
|
+
* Run the decay pass for a project. Flags stale skills (FSRS) and rooms
|
|
31
|
+
* (salience) as `archived:true` without deleting. Never throws.
|
|
32
|
+
*/
|
|
33
|
+
export function runDecayPass(project, opts = {}) {
|
|
34
|
+
const dryRun = opts.dryRun === true;
|
|
35
|
+
const report = { scanned: 0, archived_candidates: [], skipped: [] };
|
|
36
|
+
// ── Skills: FSRS retrievability ─────────────────────────────────────────
|
|
37
|
+
try {
|
|
38
|
+
for (const skill of listSkills(project, { includeArchived: true })) {
|
|
39
|
+
report.scanned++;
|
|
40
|
+
// Already archived → leave as-is (idempotent, still counted as scanned).
|
|
41
|
+
if (skill.meta.archived === true)
|
|
42
|
+
continue;
|
|
43
|
+
const st = score(skill.meta.fsrs ?? initFsrs(skill.meta.created || new Date().toISOString()));
|
|
44
|
+
if (st.status === "archive_candidate") {
|
|
45
|
+
if (!dryRun)
|
|
46
|
+
setSkillArchived(project, skill, true);
|
|
47
|
+
report.archived_candidates.push({ slug: skill.meta.slug, kind: "skill", r: st.retrievability });
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
// best-effort
|
|
53
|
+
}
|
|
54
|
+
// ── Rooms: salience (NOT FSRS) ──────────────────────────────────────────
|
|
55
|
+
try {
|
|
56
|
+
const pd = palaceDir(project);
|
|
57
|
+
for (const room of listRooms(project)) {
|
|
58
|
+
report.scanned++;
|
|
59
|
+
const meta = getRoomMeta(project, room.slug) ?? room;
|
|
60
|
+
// Skip structurally protected and keystone rooms — never archive them.
|
|
61
|
+
if (PROTECTED_ROOM_SLUGS.has(meta.slug) || meta.keystone === true) {
|
|
62
|
+
report.skipped.push(meta.slug);
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
if (meta.archived === true)
|
|
66
|
+
continue; // idempotent
|
|
67
|
+
const connCount = getConnectionCount(pd, meta.slug);
|
|
68
|
+
const sal = computeSalience({
|
|
69
|
+
importance: meta.importance ?? "medium",
|
|
70
|
+
lastUpdated: meta.updated,
|
|
71
|
+
accessCount: meta.access_count,
|
|
72
|
+
connectionCount: connCount,
|
|
73
|
+
keystone: meta.keystone,
|
|
74
|
+
});
|
|
75
|
+
if (sal <= SALIENCE_ARCHIVE_THRESHOLD) {
|
|
76
|
+
if (!dryRun)
|
|
77
|
+
updateRoomMeta(project, meta.slug, { archived: true });
|
|
78
|
+
report.archived_candidates.push({ slug: meta.slug, kind: "room", r: sal });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
// best-effort
|
|
84
|
+
}
|
|
85
|
+
return report;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=decay-pass.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decay-pass.js","sourceRoot":"","sources":["../../src/palace/decay-pass.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insights-index.d.ts","sourceRoot":"","sources":["../../src/palace/insights-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"insights-index.d.ts","sourceRoot":"","sources":["../../src/palace/insights-index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAuBH;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAOzD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,CAOnE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EAAE,GACzB,cAAc,GAAG,IAAI,CAiBvB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,GAAG,WAAW,GAAG,OAAO,CAAC;IAC7C,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAMD,wBAAgB,iBAAiB,IAAI,aAAa,CAUjD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAQ7D;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,iBAAiB,GAAG,gBAAgB,CAAC,GAAG,cAAc,GAAG,IAAI,CAkEnI;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,MAAU,EACjB,cAAc,CAAC,EAAE,MAAM,GACtB,KAAK,CAAC,cAAc,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAwD/C"}
|
|
@@ -12,6 +12,7 @@ import * as path from "node:path";
|
|
|
12
12
|
import { getRoot } from "../types.js";
|
|
13
13
|
import { ensureDir } from "../storage/fs-utils.js";
|
|
14
14
|
import { syncToSupabase } from "../supabase/sync.js";
|
|
15
|
+
import { scrubForCloud } from "../storage/content-guard.js";
|
|
15
16
|
import { withLock } from "../storage/filelock.js";
|
|
16
17
|
// ── Stopwords for title normalization ────────────────────────────────────────
|
|
17
18
|
const STOPWORDS = new Set([
|
|
@@ -98,9 +99,10 @@ export function writeInsightsIndex(index) {
|
|
|
98
99
|
const p = indexPath();
|
|
99
100
|
ensureDir(path.dirname(p));
|
|
100
101
|
index.updated = new Date().toISOString();
|
|
101
|
-
|
|
102
|
+
const serialized = JSON.stringify(index, null, 2);
|
|
103
|
+
fs.writeFileSync(p, serialized, "utf-8");
|
|
102
104
|
// "global" is the Supabase row key for cross-project data; source_project uses "_global" sentinel — these are intentionally different namespaces
|
|
103
|
-
syncToSupabase(p,
|
|
105
|
+
syncToSupabase(p, scrubForCloud(serialized), "global", "awareness");
|
|
104
106
|
}
|
|
105
107
|
/**
|
|
106
108
|
* Add or update an insight in the index.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insights-index.js","sourceRoot":"","sources":["../../src/palace/insights-index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"insights-index.js","sourceRoot":"","sources":["../../src/palace/insights-index.ts"],"names":[],"mappings":"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"}
|
package/dist/palace/skills.d.ts
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* Frontmatter shape conforms to naming.ts canonical schema for
|
|
17
17
|
* indexability + grep-friendly retrieval.
|
|
18
18
|
*/
|
|
19
|
-
import { type FsrsState } from "./fsrs.js";
|
|
19
|
+
import { type FsrsState, type FsrsScore } from "./fsrs.js";
|
|
20
20
|
export interface SkillMeta {
|
|
21
21
|
/** Stable kebab-case slug, unique within project. */
|
|
22
22
|
slug: string;
|
|
@@ -34,6 +34,13 @@ export interface SkillMeta {
|
|
|
34
34
|
source?: "manual" | "promoted_from_correction" | "promoted_from_pipeline" | "auto_reflection";
|
|
35
35
|
/** Embedded FSRS state for reinforcement-on-use. */
|
|
36
36
|
fsrs?: FsrsState;
|
|
37
|
+
/**
|
|
38
|
+
* Wave 3: non-destructive archive flag. Set by the decay pass when a skill's
|
|
39
|
+
* FSRS retrievability falls into `archive_candidate`. NEVER unlinks the file —
|
|
40
|
+
* `listSkills` and recall consumers FILTER it out (the flag is live, not inert),
|
|
41
|
+
* but the lossless content is preserved on disk for audit / revival.
|
|
42
|
+
*/
|
|
43
|
+
archived?: boolean;
|
|
37
44
|
}
|
|
38
45
|
export interface SkillBody {
|
|
39
46
|
/** When to use this skill (the IF). */
|
|
@@ -56,16 +63,48 @@ export interface Skill {
|
|
|
56
63
|
}
|
|
57
64
|
export declare function skillsDir(project: string): string;
|
|
58
65
|
export declare function parseSkillFile(filePath: string): Skill;
|
|
59
|
-
|
|
66
|
+
/**
|
|
67
|
+
* List skills for a project.
|
|
68
|
+
*
|
|
69
|
+
* Wave 3: archived skills (FSRS `archive_candidate`, flagged by the decay pass)
|
|
70
|
+
* are FILTERED OUT by default — this is what makes the `archived` flag live
|
|
71
|
+
* rather than inert. Pass `{ includeArchived: true }` for the decay pass itself
|
|
72
|
+
* and audit tooling that must see every file on disk.
|
|
73
|
+
*/
|
|
74
|
+
export declare function listSkills(project: string, opts?: {
|
|
75
|
+
includeArchived?: boolean;
|
|
76
|
+
}): Skill[];
|
|
60
77
|
export declare function nextSkillOrder(project: string): number;
|
|
61
78
|
export declare function writeSkill(project: string, meta: SkillMeta, body: SkillBody, order?: number): string;
|
|
79
|
+
/**
|
|
80
|
+
* Wave 3: reinforce a skill's FSRS state on a recall hit (revives the dormant
|
|
81
|
+
* reinforcement loop). Grows stability + bumps confirmations, then atomically
|
|
82
|
+
* writes back via the existing render path (keeps the file's order prefix).
|
|
83
|
+
*
|
|
84
|
+
* - THROTTLED: skips the write if `last_confirmed` is within
|
|
85
|
+
* `REINFORCE_THROTTLE_HOURS` to bound write-amplification in git-mirrored
|
|
86
|
+
* memory (a hot skill recalled many times in one session writes once).
|
|
87
|
+
* - BEST-EFFORT: a recall hit must NEVER throw — all errors are swallowed.
|
|
88
|
+
*/
|
|
89
|
+
export declare function reinforceSkillFsrs(project: string, slug: string, now?: string): void;
|
|
90
|
+
/**
|
|
91
|
+
* Wave 3: set/clear a skill's `archived` flag, preserving its order prefix and
|
|
92
|
+
* all other content. NEVER unlinks the file (compress invariant). Atomic write
|
|
93
|
+
* via the existing render path. Best-effort — returns false on any failure.
|
|
94
|
+
*/
|
|
95
|
+
export declare function setSkillArchived(project: string, skill: Skill, archived: boolean): boolean;
|
|
62
96
|
/**
|
|
63
97
|
* Trigger-match: rank skills by overlap of intent keywords against the skill's
|
|
64
98
|
* declared `triggers` + topic + name. Returns top N. Pure scoring — no LLM call.
|
|
99
|
+
*
|
|
100
|
+
* Wave 3: each hit is annotated with `retrievability` + `status` from its FSRS
|
|
101
|
+
* state (`score`), so callers can surface decay health alongside relevance.
|
|
65
102
|
*/
|
|
66
103
|
export declare function recallSkillsByIntent(project: string, intent: string, limit?: number): Array<{
|
|
67
104
|
skill: Skill;
|
|
68
105
|
score: number;
|
|
69
106
|
matched_triggers: string[];
|
|
107
|
+
retrievability: number;
|
|
108
|
+
status: FsrsScore["status"];
|
|
70
109
|
}>;
|
|
71
110
|
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/palace/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,OAAO,
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/palace/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,OAAO,EAA8B,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAEvF,MAAM,WAAW,SAAS;IACxB,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,QAAQ,GAAG,0BAA0B,GAAG,wBAAwB,GAAG,iBAAiB,CAAC;IAC9F,oDAAoD;IACpD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,6DAA6D;IAC7D,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gCAAgC;IAChC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,6CAA6C;IAC7C,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD;AAmDD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,CA6BtD;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,KAAK,EAAE,CAgBzF;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQtD;AA4BD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAwBpG;AAkBD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,GAAG,GAAE,MAAiC,GACrC,IAAI,CA2BN;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAQ1F;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,KAAK,SAAI,GACR,KAAK,CAAC;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;CAAE,CAAC,CAwCzH"}
|
package/dist/palace/skills.js
CHANGED
|
@@ -21,7 +21,7 @@ import * as path from "node:path";
|
|
|
21
21
|
import { palaceDir, sanitizeSlug } from "../storage/paths.js";
|
|
22
22
|
import { ensureDir } from "../storage/fs-utils.js";
|
|
23
23
|
import { generateFrontmatter } from "./obsidian.js";
|
|
24
|
-
import { initFsrs } from "./fsrs.js";
|
|
24
|
+
import { initFsrs, reinforce, score } from "./fsrs.js";
|
|
25
25
|
const ORDER_PAD = 4;
|
|
26
26
|
export function skillsDir(project) {
|
|
27
27
|
return path.join(palaceDir(project), "skills");
|
|
@@ -57,6 +57,9 @@ function parseFrontmatter(raw) {
|
|
|
57
57
|
else if (raw === "null" || raw === "") {
|
|
58
58
|
meta[key] = null;
|
|
59
59
|
}
|
|
60
|
+
else if (raw === "true" || raw === "false") {
|
|
61
|
+
meta[key] = raw === "true";
|
|
62
|
+
}
|
|
60
63
|
else if (/^-?\d+(\.\d+)?$/.test(raw)) {
|
|
61
64
|
meta[key] = Number(raw);
|
|
62
65
|
}
|
|
@@ -95,6 +98,7 @@ export function parseSkillFile(filePath) {
|
|
|
95
98
|
updated: String(m.updated ?? ""),
|
|
96
99
|
source: m.source ?? "manual",
|
|
97
100
|
fsrs: m.fsrs && typeof m.fsrs === "object" ? m.fsrs : undefined,
|
|
101
|
+
archived: m.archived === true ? true : undefined,
|
|
98
102
|
};
|
|
99
103
|
return {
|
|
100
104
|
meta,
|
|
@@ -109,15 +113,27 @@ export function parseSkillFile(filePath) {
|
|
|
109
113
|
file_path: filePath,
|
|
110
114
|
};
|
|
111
115
|
}
|
|
112
|
-
|
|
116
|
+
/**
|
|
117
|
+
* List skills for a project.
|
|
118
|
+
*
|
|
119
|
+
* Wave 3: archived skills (FSRS `archive_candidate`, flagged by the decay pass)
|
|
120
|
+
* are FILTERED OUT by default — this is what makes the `archived` flag live
|
|
121
|
+
* rather than inert. Pass `{ includeArchived: true }` for the decay pass itself
|
|
122
|
+
* and audit tooling that must see every file on disk.
|
|
123
|
+
*/
|
|
124
|
+
export function listSkills(project, opts) {
|
|
113
125
|
const dir = skillsDir(project);
|
|
114
126
|
if (!fs.existsSync(dir))
|
|
115
127
|
return [];
|
|
128
|
+
const includeArchived = opts?.includeArchived === true;
|
|
116
129
|
const files = fs.readdirSync(dir).filter((f) => f.endsWith(".md") && /^\d+-/.test(f));
|
|
117
130
|
const skills = [];
|
|
118
131
|
for (const f of files) {
|
|
119
132
|
try {
|
|
120
|
-
|
|
133
|
+
const skill = parseSkillFile(path.join(dir, f));
|
|
134
|
+
if (!includeArchived && skill.meta.archived === true)
|
|
135
|
+
continue;
|
|
136
|
+
skills.push(skill);
|
|
121
137
|
}
|
|
122
138
|
catch {
|
|
123
139
|
// skip unreadable
|
|
@@ -146,6 +162,7 @@ function renderSkill(meta, body) {
|
|
|
146
162
|
updated: meta.updated,
|
|
147
163
|
source: meta.source ?? "manual",
|
|
148
164
|
fsrs: meta.fsrs ?? null,
|
|
165
|
+
...(meta.archived === true ? { archived: true } : {}),
|
|
149
166
|
});
|
|
150
167
|
const renderList = (xs) => xs.length ? xs.map((x) => `- ${x}`).join("\n") : "- _(none)_";
|
|
151
168
|
return (fm +
|
|
@@ -164,6 +181,7 @@ export function writeSkill(project, meta, body, order) {
|
|
|
164
181
|
...meta,
|
|
165
182
|
slug: sanitizeSlug(meta.slug || meta.name),
|
|
166
183
|
fsrs: meta.fsrs ?? initFsrs(meta.created || new Date().toISOString()),
|
|
184
|
+
archived: meta.archived === true ? true : undefined,
|
|
167
185
|
};
|
|
168
186
|
const ord = order ?? nextSkillOrder(project);
|
|
169
187
|
const filename = `${zeroPad(ord)}-${finalMeta.slug}.md`;
|
|
@@ -184,9 +202,82 @@ export function writeSkill(project, meta, body, order) {
|
|
|
184
202
|
fs.renameSync(tmp, filePath);
|
|
185
203
|
return filePath;
|
|
186
204
|
}
|
|
205
|
+
/** Parse the numeric order prefix (NN-) from a skill file path. Returns undefined if absent. */
|
|
206
|
+
function orderFromPath(filePath) {
|
|
207
|
+
const m = path.basename(filePath).match(/^(\d+)-/);
|
|
208
|
+
return m ? parseInt(m[1], 10) : undefined;
|
|
209
|
+
}
|
|
210
|
+
/** Default throttle window (hours) for reinforce-on-recall write-amplification guard. */
|
|
211
|
+
const REINFORCE_THROTTLE_HOURS = 6;
|
|
212
|
+
function hoursSince(iso, now) {
|
|
213
|
+
if (!iso)
|
|
214
|
+
return Infinity;
|
|
215
|
+
const t = new Date(iso).getTime();
|
|
216
|
+
if (Number.isNaN(t))
|
|
217
|
+
return Infinity;
|
|
218
|
+
return (now - t) / 3_600_000;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Wave 3: reinforce a skill's FSRS state on a recall hit (revives the dormant
|
|
222
|
+
* reinforcement loop). Grows stability + bumps confirmations, then atomically
|
|
223
|
+
* writes back via the existing render path (keeps the file's order prefix).
|
|
224
|
+
*
|
|
225
|
+
* - THROTTLED: skips the write if `last_confirmed` is within
|
|
226
|
+
* `REINFORCE_THROTTLE_HOURS` to bound write-amplification in git-mirrored
|
|
227
|
+
* memory (a hot skill recalled many times in one session writes once).
|
|
228
|
+
* - BEST-EFFORT: a recall hit must NEVER throw — all errors are swallowed.
|
|
229
|
+
*/
|
|
230
|
+
export function reinforceSkillFsrs(project, slug, now = new Date().toISOString()) {
|
|
231
|
+
try {
|
|
232
|
+
const safe = sanitizeSlug(slug);
|
|
233
|
+
const dir = skillsDir(project);
|
|
234
|
+
if (!fs.existsSync(dir))
|
|
235
|
+
return;
|
|
236
|
+
const file = fs
|
|
237
|
+
.readdirSync(dir)
|
|
238
|
+
.find((f) => f.endsWith(".md") && /^\d+-/.test(f) && f.replace(/^\d+-/, "").replace(/\.md$/, "") === safe);
|
|
239
|
+
if (!file)
|
|
240
|
+
return;
|
|
241
|
+
const filePath = path.join(dir, file);
|
|
242
|
+
const skill = parseSkillFile(filePath);
|
|
243
|
+
const nowMs = new Date(now).getTime();
|
|
244
|
+
const nowMsSafe = Number.isNaN(nowMs) ? Date.now() : nowMs;
|
|
245
|
+
const current = skill.meta.fsrs ?? initFsrs(skill.meta.created || now);
|
|
246
|
+
// Throttle: a same-window second recall must not re-write the file.
|
|
247
|
+
if (hoursSince(current.last_confirmed, nowMsSafe) < REINFORCE_THROTTLE_HOURS)
|
|
248
|
+
return;
|
|
249
|
+
const updated = {
|
|
250
|
+
...skill.meta,
|
|
251
|
+
fsrs: reinforce(current, now),
|
|
252
|
+
updated: now,
|
|
253
|
+
};
|
|
254
|
+
writeSkill(project, updated, skill.body, orderFromPath(filePath));
|
|
255
|
+
}
|
|
256
|
+
catch {
|
|
257
|
+
// Recall must never throw — reinforcement is best-effort.
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Wave 3: set/clear a skill's `archived` flag, preserving its order prefix and
|
|
262
|
+
* all other content. NEVER unlinks the file (compress invariant). Atomic write
|
|
263
|
+
* via the existing render path. Best-effort — returns false on any failure.
|
|
264
|
+
*/
|
|
265
|
+
export function setSkillArchived(project, skill, archived) {
|
|
266
|
+
try {
|
|
267
|
+
const updated = { ...skill.meta, archived: archived ? true : undefined, updated: new Date().toISOString() };
|
|
268
|
+
writeSkill(project, updated, skill.body, orderFromPath(skill.file_path));
|
|
269
|
+
return true;
|
|
270
|
+
}
|
|
271
|
+
catch {
|
|
272
|
+
return false;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
187
275
|
/**
|
|
188
276
|
* Trigger-match: rank skills by overlap of intent keywords against the skill's
|
|
189
277
|
* declared `triggers` + topic + name. Returns top N. Pure scoring — no LLM call.
|
|
278
|
+
*
|
|
279
|
+
* Wave 3: each hit is annotated with `retrievability` + `status` from its FSRS
|
|
280
|
+
* state (`score`), so callers can surface decay health alongside relevance.
|
|
190
281
|
*/
|
|
191
282
|
export function recallSkillsByIntent(project, intent, limit = 5) {
|
|
192
283
|
const skills = listSkills(project);
|
|
@@ -215,11 +306,22 @@ export function recallSkillsByIntent(project, intent, limit = 5) {
|
|
|
215
306
|
if (intent.toLowerCase().includes(t.toLowerCase()))
|
|
216
307
|
score += 1;
|
|
217
308
|
}
|
|
218
|
-
|
|
309
|
+
const fsrsScore = score_(s.meta);
|
|
310
|
+
return {
|
|
311
|
+
skill: s,
|
|
312
|
+
score,
|
|
313
|
+
matched_triggers: matched,
|
|
314
|
+
retrievability: fsrsScore.retrievability,
|
|
315
|
+
status: fsrsScore.status,
|
|
316
|
+
};
|
|
219
317
|
})
|
|
220
318
|
.filter((x) => x.score > 0)
|
|
221
319
|
.sort((a, b) => b.score - a.score)
|
|
222
320
|
.slice(0, limit);
|
|
223
321
|
return ranked;
|
|
224
322
|
}
|
|
323
|
+
/** Compute FSRS score for a skill, backfilling missing state via initFsrs lazily. */
|
|
324
|
+
function score_(meta) {
|
|
325
|
+
return score(meta.fsrs ?? initFsrs(meta.created || new Date().toISOString()));
|
|
326
|
+
}
|
|
225
327
|
//# sourceMappingURL=skills.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/palace/skills.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../src/palace/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* consolidation-prompt.ts — the versioned, in-repo consolidation prompt
|
|
3
|
+
* (Wave 5, the compression remainder).
|
|
4
|
+
*
|
|
5
|
+
* This is the single source for the "reflect on recent work → surface
|
|
6
|
+
* crystallization candidates" prompt that the dreaming loop runs. It ports ONLY
|
|
7
|
+
* Phase B (candidate-finding) of the external ~/.aam T1 Step 4.5 prompt; Phase C
|
|
8
|
+
* (synthesis) deliberately stays the LLM's job (Decision #3 — core never
|
|
9
|
+
* synthesizes). `session-end-reflect.ts:buildPrompt()` imports `buildConsolidationPrompt`
|
|
10
|
+
* so there is exactly one prompt generator.
|
|
11
|
+
*
|
|
12
|
+
* The template is VERSIONED so a change to the consolidation contract is
|
|
13
|
+
* observable (and the `ar consolidate` CLI / dreaming repoint can pin a version).
|
|
14
|
+
*/
|
|
15
|
+
import type { ReflectInputBundle } from "../tools-logic/session-end-reflect.js";
|
|
16
|
+
/** Bump when the consolidation contract changes. */
|
|
17
|
+
export declare const CONSOLIDATION_PROMPT_VERSION = "v1";
|
|
18
|
+
export declare const CONSOLIDATION_PROMPT_TEMPLATE = "# AgentRecall consolidation prompt v1\n\nYou are the agent reviewing your own recent work. From the inputs below, produce:\n\n1. **Three high-level questions** this period raised (Park 2023 style).\n2. **Procedural skills** that crystallized \u2014 anything repeated >=2x is a candidate (call skill_write).\n3. **Cross-session patterns** not yet in awareness \u2014 distilled insights worth promoting.\n4. **Noise to archive** \u2014 corrections with low precision that should be retired.\n\nPHASE B (candidate-finding) is done for you: crystallization candidates below are\nclusters of related insights. PHASE C (synthesis) is YOURS \u2014 the system does NOT\nsynthesize a principle for you; decide whether/how to crystallize each cluster.\n\nBe terse. One bullet per finding. Cite journal dates / phase orders / correction ids as evidence.\n";
|
|
19
|
+
/**
|
|
20
|
+
* Build the consolidation prompt for a project from a reflect bundle. Mirrors
|
|
21
|
+
* the structured sections the reflect tool previously inlined — now shared so
|
|
22
|
+
* `ar consolidate` and `session_end_reflect` render identically.
|
|
23
|
+
*/
|
|
24
|
+
export declare function buildConsolidationPrompt(slug: string, bundle: ReflectInputBundle, lookbackDays?: number): string;
|
|
25
|
+
//# sourceMappingURL=consolidation-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consolidation-prompt.d.ts","sourceRoot":"","sources":["../../src/prompts/consolidation-prompt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAEhF,oDAAoD;AACpD,eAAO,MAAM,4BAA4B,OAAO,CAAC;AAEjD,eAAO,MAAM,6BAA6B,i1BAczC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,kBAAkB,EAC1B,YAAY,CAAC,EAAE,MAAM,GACpB,MAAM,CAgER"}
|