@fingerskier/augment 0.3.1 → 0.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 +37 -20
- package/dist/cli.d.ts +9 -6
- package/dist/cli.js +9 -43
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.js +2 -1
- package/dist/config.js.map +1 -1
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +7 -0
- package/dist/constants.js.map +1 -1
- package/dist/daemon/client.d.ts +10 -2
- package/dist/daemon/client.js +30 -4
- package/dist/daemon/client.js.map +1 -1
- package/dist/daemon/http.js +163 -28
- package/dist/daemon/http.js.map +1 -1
- package/dist/db.d.ts +1 -0
- package/dist/db.js +35 -4
- package/dist/db.js.map +1 -1
- package/dist/decoction.d.ts +51 -0
- package/dist/decoction.js +184 -0
- package/dist/decoction.js.map +1 -0
- package/dist/install.d.ts +2 -0
- package/dist/install.js +68 -5
- package/dist/install.js.map +1 -1
- package/dist/mcp/apps.js +0 -16
- package/dist/mcp/apps.js.map +1 -1
- package/dist/mcp/insights.d.ts +4 -6
- package/dist/mcp/insights.js +4 -11
- package/dist/mcp/insights.js.map +1 -1
- package/dist/mcp/server.js +124 -21
- package/dist/mcp/server.js.map +1 -1
- package/dist/memory/files.js +32 -2
- package/dist/memory/files.js.map +1 -1
- package/dist/memory/git.d.ts +5 -1
- package/dist/memory/git.js +7 -3
- package/dist/memory/git.js.map +1 -1
- package/dist/memory/project.d.ts +3 -0
- package/dist/memory/project.js +20 -0
- package/dist/memory/project.js.map +1 -1
- package/dist/pi/extension.d.ts +10 -2
- package/dist/pi/extension.js +82 -46
- package/dist/pi/extension.js.map +1 -1
- package/dist/proposals.d.ts +42 -0
- package/dist/proposals.js +180 -0
- package/dist/proposals.js.map +1 -0
- package/dist/recall-log.d.ts +21 -0
- package/dist/recall-log.js +24 -0
- package/dist/recall-log.js.map +1 -0
- package/dist/recall.d.ts +1 -1
- package/dist/service.d.ts +197 -2
- package/dist/service.js +770 -42
- package/dist/service.js.map +1 -1
- package/dist/types.d.ts +26 -2
- package/docs/FEATURES.md +247 -33
- package/docs/verify-memory-flow.md +132 -131
- package/integrations/claude/skills/augment-context/SKILL.md +74 -0
- package/integrations/claude/skills/augment-decoction/SKILL.md +36 -0
- package/integrations/claude/skills/augment-dream/SKILL.md +34 -0
- package/integrations/claude/skills/augment-dream/agents/openai.yaml +4 -0
- package/integrations/claude/skills/augment-sleep/SKILL.md +26 -0
- package/integrations/codex/SKILL.md +33 -0
- package/integrations/pi/skills/augment-decoction/SKILL.md +37 -0
- package/integrations/pi/skills/augment-dream/SKILL.md +36 -0
- package/package.json +16 -15
- package/dist/tally.d.ts +0 -46
- package/dist/tally.js +0 -94
- package/dist/tally.js.map +0 -1
package/dist/pi/extension.js
CHANGED
|
@@ -5,7 +5,6 @@ import { connectOrStartDaemon } from "../daemon/client.js";
|
|
|
5
5
|
import { computeInsights, renderGraphText, renderInsightsText, toGraphPayload } from "../mcp/insights.js";
|
|
6
6
|
import { inferProjectName } from "../memory/project.js";
|
|
7
7
|
import { recall as defaultRecall } from "../recall.js";
|
|
8
|
-
import { TALLY_VERDICTS } from "../tally.js";
|
|
9
8
|
const TOOL_RESULT_MAX_CHARS = 50_000;
|
|
10
9
|
const DEFAULT_CONTEXT_LIMIT = 5;
|
|
11
10
|
const DEFAULT_CONTEXT_MAX_CHARS = 12_000;
|
|
@@ -171,24 +170,6 @@ function splitArgs(input) {
|
|
|
171
170
|
}
|
|
172
171
|
return args;
|
|
173
172
|
}
|
|
174
|
-
function parseTallyCommand(args) {
|
|
175
|
-
const parts = splitArgs(args);
|
|
176
|
-
const result = {};
|
|
177
|
-
for (let index = 0; index < parts.length; index += 1) {
|
|
178
|
-
const part = parts[index];
|
|
179
|
-
if (part === "--surface") {
|
|
180
|
-
result.surface = parts[++index];
|
|
181
|
-
}
|
|
182
|
-
else if (part === "--note") {
|
|
183
|
-
result.note = parts.slice(index + 1).join(" ");
|
|
184
|
-
break;
|
|
185
|
-
}
|
|
186
|
-
else if (!result.verdict) {
|
|
187
|
-
result.verdict = part;
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
return result;
|
|
191
|
-
}
|
|
192
173
|
async function openDashboard(pi, url) {
|
|
193
174
|
const platform = process.platform;
|
|
194
175
|
if (platform === "win32") {
|
|
@@ -251,14 +232,25 @@ export function createAugmentPiExtension(inputDeps = {}) {
|
|
|
251
232
|
}), async (params) => toolResult("link", await (await deps.connect()).link(params)), "Link related Augment memories");
|
|
252
233
|
registerAugmentTool(pi, "augment_list_links", "Augment List Links", "List inbound and outbound links involving an Augment memory.", Type.Object({ memory_id: Type.Integer({ minimum: 1, description: "Local numeric memory id." }) }), async (params) => toolResult("list_links", await (await deps.connect()).listLinks(Number(params.memory_id))), "List graph links for an Augment memory");
|
|
253
234
|
registerAugmentTool(pi, "augment_unlink", "Augment Unlink Memories", "Remove an Augment memory link by local link id.", Type.Object({ id: Type.Integer({ minimum: 1, description: "Local numeric link id." }) }), async (params) => toolResult("unlink", await (await deps.connect()).unlink(Number(params.id))));
|
|
254
|
-
registerAugmentTool(pi, "
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
235
|
+
registerAugmentTool(pi, "augment_decoction_glean", "Augment Decoction Glean", "Discover cross-project generic-memory candidates or write an agent-authored generic SPEC/ARCH. Discovery is " +
|
|
236
|
+
"read-only; write stores an ordinary .generic memory and returns unpersisted cleanup suggestions.", Type.Object({
|
|
237
|
+
action: stringEnum(["discover", "write"]),
|
|
238
|
+
min_cosine: Type.Optional(Type.Number({ minimum: 0, maximum: 1 })),
|
|
239
|
+
limit: Type.Optional(Type.Integer({ minimum: 1, maximum: 50 })),
|
|
240
|
+
kind: Type.Optional(stringEnum(["SPEC", "ARCH"])),
|
|
241
|
+
name: Type.Optional(Type.String()),
|
|
242
|
+
content: Type.Optional(Type.String()),
|
|
243
|
+
tags: Type.Optional(Type.Array(Type.String())),
|
|
244
|
+
derived_from: Type.Optional(Type.Array(Type.String())),
|
|
245
|
+
suggested_removals: Type.Optional(Type.Array(Type.Object({ path: Type.String(), reason: Type.String() }))),
|
|
246
|
+
expected_content_hash: Type.Optional(Type.String()),
|
|
247
|
+
expected_frontmatter_hash: Type.Optional(Type.String()),
|
|
248
|
+
}), async (params) => toolResult("decoction_glean", await (await deps.connect()).decoctionGlean(params)), "Discover or write reusable cross-project Augment knowledge");
|
|
249
|
+
registerAugmentTool(pi, "augment_decoction_cleanup", "Augment Decoction Cleanup", "Hard-delete explicitly approved originals after retargeting their typed inbound links to one generic memory. " +
|
|
250
|
+
"Cleanup has no journal or rollback.", Type.Object({
|
|
251
|
+
generic_path: Type.String(),
|
|
252
|
+
source_paths: Type.Array(Type.String(), { minItems: 1 }),
|
|
253
|
+
}), async (params) => toolResult("decoction_cleanup", await (await deps.connect()).decoctionCleanup(params)), "Remove only the exact decoction sources explicitly approved by the user");
|
|
262
254
|
registerAugmentTool(pi, "augment_sleep_candidates", "Augment Sleep Candidates", "READ-ONLY preview of Augment memory consolidation candidates. Mutates nothing.", Type.Object({
|
|
263
255
|
project_name: Type.Optional(Type.String()),
|
|
264
256
|
min_cosine: Type.Optional(Type.Number({ minimum: 0, maximum: 1 })),
|
|
@@ -268,7 +260,48 @@ export function createAugmentPiExtension(inputDeps = {}) {
|
|
|
268
260
|
const projectName = await resolveProjectName(deps, ctx.cwd, asString(params.project_name));
|
|
269
261
|
return toolResult("sleep_candidates", await (await deps.connect()).sleepCandidates({ ...params, project_name: projectName }));
|
|
270
262
|
}, "Preview Augment sleep-consolidation candidates without mutating memory");
|
|
271
|
-
registerAugmentTool(pi, "
|
|
263
|
+
registerAugmentTool(pi, "augment_sleep_propose", "Augment Sleep Propose", "Draft a sleep consolidation: fold >=2 settled WORK memories into one new SPEC or ARCH. Writes ONLY " +
|
|
264
|
+
"a proposal file outside the corpus, for user review — the corpus itself is untouched until the user " +
|
|
265
|
+
"approves and augment_sleep_apply runs. Call augment_sleep_candidates first to find groups worth consolidating.", Type.Object({
|
|
266
|
+
project_name: Type.Optional(Type.String()),
|
|
267
|
+
kind: stringEnum(["SPEC", "ARCH"]),
|
|
268
|
+
name: Type.String(),
|
|
269
|
+
content: Type.String(),
|
|
270
|
+
derived_from: Type.Array(Type.String(), { minItems: 2 }),
|
|
271
|
+
rationale: Type.Optional(Type.String()),
|
|
272
|
+
}), async (params, ctx) => {
|
|
273
|
+
const projectName = await resolveProjectName(deps, ctx.cwd, asString(params.project_name));
|
|
274
|
+
return toolResult("sleep_propose", await (await deps.connect()).sleepPropose({ ...params, project_name: projectName }));
|
|
275
|
+
}, "Draft a user-approved sleep consolidation without writing to the corpus");
|
|
276
|
+
registerAugmentTool(pi, "augment_sleep_proposals", "Augment Sleep Proposals", "List sleep proposals (drafted by augment_sleep_propose), optionally filtered by status.", Type.Object({ status: Type.Optional(stringEnum(["proposed", "applied", "rejected"])) }), async (params) => toolResult("sleep_proposals", await (await deps.connect()).sleepProposals(asString(params.status))), "List Augment sleep proposals by status");
|
|
277
|
+
registerAugmentTool(pi, "augment_sleep_apply", "Augment Sleep Apply", "Apply a sleep proposal by filename. Requires explicit user approval of the named proposal and is " +
|
|
278
|
+
"the only corpus write in the sleep flow: it upserts the consolidated SPEC/ARCH, archives its WORK " +
|
|
279
|
+
"sources in place, and marks the proposal applied.", Type.Object({ filename: Type.String() }), async (params) => toolResult("sleep_apply", await (await deps.connect()).sleepApply({ filename: String(params.filename) })), "Apply an explicitly approved sleep proposal — the only corpus write in the sleep flow");
|
|
280
|
+
registerAugmentTool(pi, "augment_sleep_reject", "Augment Sleep Reject", "Reject a pending sleep proposal by filename. Mutates only the proposal file (outside the corpus); " +
|
|
281
|
+
"the corpus itself is untouched.", Type.Object({ filename: Type.String() }), async (params) => toolResult("sleep_reject", await (await deps.connect()).sleepReject({ filename: String(params.filename) })), "Reject a pending sleep proposal without touching the corpus");
|
|
282
|
+
registerAugmentTool(pi, "augment_dream_propose", "Augment Dream Propose", "Draft one speculative dream-memory or dream-link proposal for explicit user review. Memory inspirations " +
|
|
283
|
+
"and link targets may be current, generic, or foreign; a link source must belong to the current project. " +
|
|
284
|
+
"Writes only a proposal outside the corpus.", Type.Object({
|
|
285
|
+
project_name: Type.Optional(Type.String()),
|
|
286
|
+
kind: Type.Optional(stringEnum(MEMORY_KINDS)),
|
|
287
|
+
name: Type.Optional(Type.String()),
|
|
288
|
+
content: Type.Optional(Type.String()),
|
|
289
|
+
derived_from: Type.Optional(Type.Array(Type.String(), { minItems: 1 })),
|
|
290
|
+
link: Type.Optional(Type.Object({
|
|
291
|
+
from: Type.String(),
|
|
292
|
+
to: Type.String(),
|
|
293
|
+
type: stringEnum(LINK_TYPES),
|
|
294
|
+
})),
|
|
295
|
+
rationale: Type.Optional(Type.String()),
|
|
296
|
+
}), async (params, ctx) => {
|
|
297
|
+
const projectName = await resolveProjectName(deps, ctx.cwd, asString(params.project_name));
|
|
298
|
+
return toolResult("dream_propose", await (await deps.connect()).dreamPropose({ ...params, project_name: projectName }));
|
|
299
|
+
}, "Draft a speculative memory or link for explicit user approval");
|
|
300
|
+
registerAugmentTool(pi, "augment_dream_proposals", "Augment Dream Proposals", "List speculative dream-memory and dream-link proposals, optionally filtered by status.", Type.Object({ status: Type.Optional(stringEnum(["proposed", "applied", "rejected"])) }), async (params) => toolResult("dream_proposals", await (await deps.connect()).dreamProposals(asString(params.status))), "List Augment dream proposals by status");
|
|
301
|
+
registerAugmentTool(pi, "augment_dream_apply", "Augment Dream Apply", "Apply one explicitly user-approved dream proposal. Revalidates the editable proposal against the live " +
|
|
302
|
+
"corpus, then creates the speculative memory or link and marks the proposal applied.", Type.Object({ filename: Type.String() }), async (params) => toolResult("dream_apply", await (await deps.connect()).dreamApply({ filename: String(params.filename) })), "Apply an explicitly approved speculative dream");
|
|
303
|
+
registerAugmentTool(pi, "augment_dream_reject", "Augment Dream Reject", "Reject a pending dream proposal without touching the memory corpus.", Type.Object({ filename: Type.String() }), async (params) => toolResult("dream_reject", await (await deps.connect()).dreamReject({ filename: String(params.filename) })), "Reject a pending dream proposal");
|
|
304
|
+
registerAugmentTool(pi, "augment_memory_insights", "Augment Memory Insights", "Aggregate a project's memory graph into counts by kind/link/tag, activity, hubs, and orphans.", Type.Object({ project_name: Type.Optional(Type.String()) }), async (params, ctx) => {
|
|
272
305
|
const client = await deps.connect();
|
|
273
306
|
const projectName = await resolveProjectName(deps, ctx.cwd, asString(params.project_name));
|
|
274
307
|
const project = await findProject(client, projectName);
|
|
@@ -276,14 +309,7 @@ export function createAugmentPiExtension(inputDeps = {}) {
|
|
|
276
309
|
return missingProject(projectName);
|
|
277
310
|
}
|
|
278
311
|
const graph = (await client.projectGraph(project.id));
|
|
279
|
-
|
|
280
|
-
try {
|
|
281
|
-
tally = (await client.tallySummary());
|
|
282
|
-
}
|
|
283
|
-
catch {
|
|
284
|
-
// Insights still work without tally data.
|
|
285
|
-
}
|
|
286
|
-
const insights = computeInsights(graph, tally, new Date());
|
|
312
|
+
const insights = computeInsights(graph, new Date());
|
|
287
313
|
return toolResult("memory_insights", renderInsightsText(insights), { insights });
|
|
288
314
|
}, "Show Augment memory health, stats, and graph insights");
|
|
289
315
|
registerAugmentTool(pi, "augment_memory_graph", "Augment Memory Graph", "Return a text summary of a project's Augment memory graph plus compact graph payload in details.", Type.Object({ project_name: Type.Optional(Type.String()) }), async (params, ctx) => {
|
|
@@ -410,20 +436,30 @@ export function createAugmentPiExtension(inputDeps = {}) {
|
|
|
410
436
|
pi.sendMessage({ customType: "augment-dashboard", content: `Augment dashboard: ${url}`, display: true });
|
|
411
437
|
},
|
|
412
438
|
});
|
|
413
|
-
pi.registerCommand("augment-
|
|
414
|
-
description: "
|
|
415
|
-
handler: async (args) => {
|
|
416
|
-
const
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
439
|
+
pi.registerCommand("augment-sleep", {
|
|
440
|
+
description: "Ask the agent to draft a user-approved Augment sleep consolidation",
|
|
441
|
+
handler: async (args, ctx) => {
|
|
442
|
+
const projectName = await deps.inferProject(ctx.cwd);
|
|
443
|
+
pi.sendUserMessage(`[augment] Run a sleep consolidation pass for project_name="${projectName}". ${args.trim() ? `User argument: ${args.trim()}.` : ""}\n\n` +
|
|
444
|
+
"You draft; the user approves; augment_sleep_apply is the only corpus write. Never skip the approval step.\n" +
|
|
445
|
+
"1. Call augment_sleep_candidates. If there are no clusters, report that and stop.\n" +
|
|
446
|
+
"2. For the chosen cluster, augment_read_memory every member, then draft ONE consolidated record — SPEC if a stable contract emerged, ARCH if a decision stuck — stating every fact worth keeping from the sources.\n" +
|
|
447
|
+
"3. Call augment_sleep_propose with the draft (kind, name, content, derived_from = the cluster's relative paths) and tell the user where the proposal file lives.\n" +
|
|
448
|
+
"4. Show the user the draft and ask for explicit approval. On an explicit yes, call augment_sleep_apply with the proposal filename; on no, call augment_sleep_reject.\n" +
|
|
449
|
+
"5. Report what was consolidated, what was archived, and the git commit. One project per pass; never invent facts not present in the sources.");
|
|
420
450
|
},
|
|
421
451
|
});
|
|
422
|
-
pi.registerCommand("augment-
|
|
423
|
-
description: "Ask the agent to
|
|
452
|
+
pi.registerCommand("augment-dream", {
|
|
453
|
+
description: "Ask the agent to draft speculative Augment memories or links for approval",
|
|
424
454
|
handler: async (args, ctx) => {
|
|
425
455
|
const projectName = await deps.inferProject(ctx.cwd);
|
|
426
|
-
pi.sendUserMessage(`[augment]
|
|
456
|
+
pi.sendUserMessage(`[augment] Run a supervised dream pass for project_name="${projectName}". ${args.trim() ? `User argument: ${args.trim()}.` : ""}\n\n` +
|
|
457
|
+
"Dreams are explicitly speculative. Never present one as an established fact, and never apply one without explicit approval.\n" +
|
|
458
|
+
"1. Call augment_search once per exploratory query, with project_name set above. Use its normal global ranking as-is: the current project is prioritized, while generic and foreign memories remain eligible; do not reserve a quota or add a fallback for generics.\n" +
|
|
459
|
+
"2. Call augment_read_memory with each useful result's numeric id, while preserving its relative_path for derived_from or link endpoints. Imagine 1-5 candidates: either a new memory in the current project, or a link whose source is in the current project and whose target may be current, generic, or foreign. Generic-only and foreign-only inspiration are allowed.\n" +
|
|
460
|
+
"3. Call augment_dream_propose for each worthwhile candidate with a rationale that clearly marks the inference as speculation.\n" +
|
|
461
|
+
"4. Present each proposal to the user. Only after explicit approval call augment_dream_apply; on rejection call augment_dream_reject.\n" +
|
|
462
|
+
"5. Report what was proposed or applied and the dream commit. Do not mutate memory during discovery or proposal drafting.");
|
|
427
463
|
},
|
|
428
464
|
});
|
|
429
465
|
};
|
package/dist/pi/extension.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/pi/extension.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extension.js","sourceRoot":"","sources":["../../src/pi/extension.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { LinkType, MemoryKind } from "./constants.js";
|
|
2
|
+
/**
|
|
3
|
+
* The proposal store: on-disk review artifacts for the sleep/dream flow.
|
|
4
|
+
* Proposals live OUTSIDE the memory corpus, under `<stateDir>/sleeps/` and
|
|
5
|
+
* `<stateDir>/dreams/`, as user-editable markdown (frontmatter + body). An
|
|
6
|
+
* agent drafts a proposal; the user may hand-edit the file on disk; approval
|
|
7
|
+
* flips `status`; apply re-reads the file fresh. Every reader here therefore
|
|
8
|
+
* re-reads from disk rather than trusting any cached/in-memory value.
|
|
9
|
+
*/
|
|
10
|
+
export type ProposalType = "sleep" | "dream-memory" | "dream-link";
|
|
11
|
+
export type ProposalStatus = "proposed" | "applied" | "rejected";
|
|
12
|
+
export interface ProposalFrontmatter {
|
|
13
|
+
type: ProposalType;
|
|
14
|
+
project: string;
|
|
15
|
+
status: ProposalStatus;
|
|
16
|
+
/** sleep + dream-memory: target record identity */
|
|
17
|
+
kind?: MemoryKind;
|
|
18
|
+
name?: string;
|
|
19
|
+
/** sleep: >=2 WORK sources; dream-memory: >=1 inspiration source */
|
|
20
|
+
derived_from: string[];
|
|
21
|
+
/** dream-link only */
|
|
22
|
+
link?: {
|
|
23
|
+
from: string;
|
|
24
|
+
to: string;
|
|
25
|
+
type: LinkType;
|
|
26
|
+
};
|
|
27
|
+
rationale?: string;
|
|
28
|
+
created_at: string;
|
|
29
|
+
updated_at: string;
|
|
30
|
+
}
|
|
31
|
+
export interface Proposal {
|
|
32
|
+
frontmatter: ProposalFrontmatter;
|
|
33
|
+
body: string;
|
|
34
|
+
filename: string;
|
|
35
|
+
}
|
|
36
|
+
/** sleep -> `<stateDir>/sleeps`; dream-memory | dream-link -> `<stateDir>/dreams`. */
|
|
37
|
+
export declare function proposalsDir(stateDir: string, type: ProposalType): string;
|
|
38
|
+
export declare function writeProposal(stateDir: string, fm: Omit<ProposalFrontmatter, "status" | "created_at" | "updated_at">, body: string): Promise<Proposal>;
|
|
39
|
+
export declare function readProposal(stateDir: string, type: ProposalType, filename: string): Promise<Proposal>;
|
|
40
|
+
export declare function listProposals(stateDir: string, type: ProposalType, status?: ProposalStatus): Promise<Proposal[]>;
|
|
41
|
+
export declare function setProposalStatus(stateDir: string, type: ProposalType, filename: string, status: ProposalStatus): Promise<Proposal>;
|
|
42
|
+
export declare function renderProposalsText(proposals: Proposal[], type: ProposalType): string;
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { mkdir, readdir, readFile, writeFile } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import matter from "gray-matter";
|
|
4
|
+
import { normalizeKind, normalizeLinkType } from "./memory/files.js";
|
|
5
|
+
import { safeSegment } from "./memory/project.js";
|
|
6
|
+
/** sleep -> `<stateDir>/sleeps`; dream-memory | dream-link -> `<stateDir>/dreams`. */
|
|
7
|
+
export function proposalsDir(stateDir, type) {
|
|
8
|
+
return path.join(stateDir, type === "sleep" ? "sleeps" : "dreams");
|
|
9
|
+
}
|
|
10
|
+
export async function writeProposal(stateDir, fm, body) {
|
|
11
|
+
const dir = proposalsDir(stateDir, fm.type);
|
|
12
|
+
await mkdir(dir, { recursive: true });
|
|
13
|
+
const now = new Date().toISOString();
|
|
14
|
+
// Conditionally spread optional keys so an unset field is omitted from the
|
|
15
|
+
// object entirely (and thus from the written YAML) instead of being
|
|
16
|
+
// written as an explicit `null` -- mirrors normalizeFrontmatter's
|
|
17
|
+
// consolidated_into/derived_from handling in memory/files.ts.
|
|
18
|
+
const frontmatter = {
|
|
19
|
+
type: fm.type,
|
|
20
|
+
project: fm.project,
|
|
21
|
+
status: "proposed",
|
|
22
|
+
...(fm.kind !== undefined ? { kind: fm.kind } : {}),
|
|
23
|
+
...(fm.name !== undefined ? { name: fm.name } : {}),
|
|
24
|
+
derived_from: fm.derived_from,
|
|
25
|
+
...(fm.link !== undefined ? { link: fm.link } : {}),
|
|
26
|
+
...(fm.rationale !== undefined ? { rationale: fm.rationale } : {}),
|
|
27
|
+
created_at: now,
|
|
28
|
+
updated_at: now,
|
|
29
|
+
};
|
|
30
|
+
const stamp = timestampSegment(new Date());
|
|
31
|
+
const base = `${stamp}-${safeSegment(fm.name ?? "link")}`;
|
|
32
|
+
const trimmedBody = body.trim();
|
|
33
|
+
const filename = await writeUniqueProposal(dir, base, matter.stringify(`${trimmedBody}\n`, frontmatter));
|
|
34
|
+
return { frontmatter, body: trimmedBody, filename };
|
|
35
|
+
}
|
|
36
|
+
export async function readProposal(stateDir, type, filename) {
|
|
37
|
+
assertSafeFilename(filename);
|
|
38
|
+
const dir = proposalsDir(stateDir, type);
|
|
39
|
+
const raw = await readFile(path.join(dir, filename), "utf8");
|
|
40
|
+
const parsed = matter(raw);
|
|
41
|
+
return {
|
|
42
|
+
frontmatter: normalizeProposalFrontmatter(parsed.data),
|
|
43
|
+
body: parsed.content.trim(),
|
|
44
|
+
filename,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export async function listProposals(stateDir, type, status) {
|
|
48
|
+
const dir = proposalsDir(stateDir, type);
|
|
49
|
+
let entries;
|
|
50
|
+
try {
|
|
51
|
+
entries = await readdir(dir);
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
if (error.code === "ENOENT") {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
throw error;
|
|
58
|
+
}
|
|
59
|
+
const filenames = entries.filter((entry) => entry.endsWith(".md")).sort();
|
|
60
|
+
const proposals = [];
|
|
61
|
+
for (const filename of filenames) {
|
|
62
|
+
try {
|
|
63
|
+
const proposal = await readProposal(stateDir, type, filename);
|
|
64
|
+
if (!status || proposal.frontmatter.status === status) {
|
|
65
|
+
proposals.push(proposal);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
console.warn(`Skipping unparseable proposal ${path.join(dir, filename)}: ${error.message}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return proposals;
|
|
73
|
+
}
|
|
74
|
+
export async function setProposalStatus(stateDir, type, filename, status) {
|
|
75
|
+
const existing = await readProposal(stateDir, type, filename);
|
|
76
|
+
const frontmatter = {
|
|
77
|
+
...existing.frontmatter,
|
|
78
|
+
status,
|
|
79
|
+
updated_at: new Date().toISOString(),
|
|
80
|
+
};
|
|
81
|
+
const dir = proposalsDir(stateDir, type);
|
|
82
|
+
await writeFile(path.join(dir, filename), matter.stringify(`${existing.body}\n`, frontmatter), "utf8");
|
|
83
|
+
return { frontmatter, body: existing.body, filename };
|
|
84
|
+
}
|
|
85
|
+
export function renderProposalsText(proposals, type) {
|
|
86
|
+
if (proposals.length === 0) {
|
|
87
|
+
return `No ${type} proposals.\n`;
|
|
88
|
+
}
|
|
89
|
+
let out = `${type} proposals (${proposals.length}):\n`;
|
|
90
|
+
proposals.forEach((proposal, index) => {
|
|
91
|
+
const fm = proposal.frontmatter;
|
|
92
|
+
const subject = fm.link
|
|
93
|
+
? `link ${fm.link.from} -> ${fm.link.to} (${fm.link.type})`
|
|
94
|
+
: `${fm.kind ?? "?"} ${fm.name ?? "?"}`;
|
|
95
|
+
out += `\n[${index + 1}] ${proposal.filename} status:${fm.status} project:${fm.project}\n`;
|
|
96
|
+
out += ` ${subject}\n`;
|
|
97
|
+
out += ` derived_from: ${fm.derived_from.length > 0 ? fm.derived_from.join(", ") : "(none)"}\n`;
|
|
98
|
+
if (fm.rationale) {
|
|
99
|
+
out += ` rationale: ${fm.rationale}\n`;
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
return out;
|
|
103
|
+
}
|
|
104
|
+
// yyyymmdd-hhmmss in UTC, so lexical filename sort matches chronological order
|
|
105
|
+
// regardless of the host machine's local timezone.
|
|
106
|
+
function timestampSegment(date) {
|
|
107
|
+
const pad = (value) => String(value).padStart(2, "0");
|
|
108
|
+
const y = date.getUTCFullYear();
|
|
109
|
+
const mo = pad(date.getUTCMonth() + 1);
|
|
110
|
+
const d = pad(date.getUTCDate());
|
|
111
|
+
const h = pad(date.getUTCHours());
|
|
112
|
+
const mi = pad(date.getUTCMinutes());
|
|
113
|
+
const s = pad(date.getUTCSeconds());
|
|
114
|
+
return `${y}${mo}${d}-${h}${mi}${s}`;
|
|
115
|
+
}
|
|
116
|
+
async function writeUniqueProposal(dir, base, contents) {
|
|
117
|
+
let candidate = `${base}.md`;
|
|
118
|
+
let attempt = 2;
|
|
119
|
+
while (true) {
|
|
120
|
+
try {
|
|
121
|
+
// `wx` makes path reservation and creation one atomic filesystem
|
|
122
|
+
// operation. A separate exists-check lets concurrent writers both pick
|
|
123
|
+
// the same candidate and then overwrite one another.
|
|
124
|
+
await writeFile(path.join(dir, candidate), contents, { encoding: "utf8", flag: "wx" });
|
|
125
|
+
return candidate;
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
if (error.code !== "EEXIST") {
|
|
129
|
+
throw error;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
candidate = `${base}-${attempt}.md`;
|
|
133
|
+
attempt += 1;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Security: filenames come from callers (including MCP tool args in later
|
|
137
|
+
// tasks) and are joined directly onto proposalsDir(). Reject anything that
|
|
138
|
+
// could escape that directory -- a path separator (either slash, since this
|
|
139
|
+
// repo runs on Windows too) or a bare "." / ".." segment.
|
|
140
|
+
function assertSafeFilename(filename) {
|
|
141
|
+
if (!filename || /[\\/]/.test(filename) || filename === "." || filename === "..") {
|
|
142
|
+
throw new Error(`Invalid proposal filename: ${filename}`);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
// Defensive re-parse of raw YAML frontmatter data. Proposals are
|
|
146
|
+
// user-editable on disk, and gray-matter's underlying YAML parser will turn
|
|
147
|
+
// an unquoted ISO-looking date into a native Date object rather than a
|
|
148
|
+
// string -- coerce dates back to strings the same way
|
|
149
|
+
// memory/files.ts#normalizeFrontmatter does. kind/link.type are revalidated
|
|
150
|
+
// through the existing normalizeKind/normalizeLinkType so a hand-edited typo
|
|
151
|
+
// fails loudly instead of silently corrupting the frontmatter.
|
|
152
|
+
function normalizeProposalFrontmatter(data) {
|
|
153
|
+
const frontmatter = {
|
|
154
|
+
type: data.type,
|
|
155
|
+
project: String(data.project ?? ""),
|
|
156
|
+
status: data.status,
|
|
157
|
+
derived_from: Array.isArray(data.derived_from) ? data.derived_from.map(String) : [],
|
|
158
|
+
created_at: String(data.created_at ?? ""),
|
|
159
|
+
updated_at: String(data.updated_at ?? ""),
|
|
160
|
+
};
|
|
161
|
+
if (data.kind !== undefined) {
|
|
162
|
+
frontmatter.kind = normalizeKind(String(data.kind));
|
|
163
|
+
}
|
|
164
|
+
if (data.name !== undefined) {
|
|
165
|
+
frontmatter.name = String(data.name);
|
|
166
|
+
}
|
|
167
|
+
if (data.link && typeof data.link === "object") {
|
|
168
|
+
const link = data.link;
|
|
169
|
+
frontmatter.link = {
|
|
170
|
+
from: String(link.from ?? ""),
|
|
171
|
+
to: String(link.to ?? ""),
|
|
172
|
+
type: normalizeLinkType(String(link.type)),
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
if (data.rationale !== undefined) {
|
|
176
|
+
frontmatter.rationale = String(data.rationale);
|
|
177
|
+
}
|
|
178
|
+
return frontmatter;
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=proposals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposals.js","sourceRoot":"","sources":["../src/proposals.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Passive per-search recall log. Successor to the Phase-2 dogfood tally
|
|
3
|
+
* (removed per GH issue #3): the human-rating surface is gone, but the
|
|
4
|
+
* per-search event log stays — it is the instrument that caught the
|
|
5
|
+
* 2026-07-10 memoryRoot split-brain. Best-effort by design: a failed append
|
|
6
|
+
* must never fail the search that triggered it.
|
|
7
|
+
*/
|
|
8
|
+
export declare const RECALL_LOG_MAX_BYTES = 5000000;
|
|
9
|
+
/** One automatically-logged injection event (what search actually returned). */
|
|
10
|
+
export interface RecallEvent {
|
|
11
|
+
ts: string;
|
|
12
|
+
surface: string;
|
|
13
|
+
project?: string;
|
|
14
|
+
query: string;
|
|
15
|
+
abstained: boolean;
|
|
16
|
+
result_count: number;
|
|
17
|
+
top_score?: number;
|
|
18
|
+
paths: string[];
|
|
19
|
+
}
|
|
20
|
+
export declare function eventsPath(stateDir: string): string;
|
|
21
|
+
export declare function appendRecallEvent(stateDir: string, event: RecallEvent): Promise<void>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { appendFile, mkdir, rename, stat } from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
/**
|
|
4
|
+
* Passive per-search recall log. Successor to the Phase-2 dogfood tally
|
|
5
|
+
* (removed per GH issue #3): the human-rating surface is gone, but the
|
|
6
|
+
* per-search event log stays — it is the instrument that caught the
|
|
7
|
+
* 2026-07-10 memoryRoot split-brain. Best-effort by design: a failed append
|
|
8
|
+
* must never fail the search that triggered it.
|
|
9
|
+
*/
|
|
10
|
+
export const RECALL_LOG_MAX_BYTES = 5_000_000;
|
|
11
|
+
export function eventsPath(stateDir) {
|
|
12
|
+
return path.join(stateDir, "recall", "events.jsonl");
|
|
13
|
+
}
|
|
14
|
+
export async function appendRecallEvent(stateDir, event) {
|
|
15
|
+
const file = eventsPath(stateDir);
|
|
16
|
+
await mkdir(path.dirname(file), { recursive: true });
|
|
17
|
+
// Single-slot rotation: the log is diagnostic, not a record of account.
|
|
18
|
+
const size = await stat(file).then((s) => s.size).catch(() => 0);
|
|
19
|
+
if (size > RECALL_LOG_MAX_BYTES) {
|
|
20
|
+
await rename(file, `${file}.1`).catch(() => { });
|
|
21
|
+
}
|
|
22
|
+
await appendFile(file, `${JSON.stringify(event)}\n`, "utf8");
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=recall-log.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recall-log.js","sourceRoot":"","sources":["../src/recall-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC;AAc9C,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,QAAgB,EAAE,KAAkB;IAC1E,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,wEAAwE;IACxE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACjE,IAAI,IAAI,GAAG,oBAAoB,EAAE,CAAC;QAChC,MAAM,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,UAAU,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/D,CAAC"}
|
package/dist/recall.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export interface RecallOptions {
|
|
|
11
11
|
maxChars?: number;
|
|
12
12
|
/** Minimum relevance score (0..1); 0 disables the floor. */
|
|
13
13
|
minScore?: number;
|
|
14
|
-
/** Injection surface tag
|
|
14
|
+
/** Injection surface tag recorded in the per-search recall log (see src/recall-log.ts). */
|
|
15
15
|
surface?: string;
|
|
16
16
|
}
|
|
17
17
|
/** The slice of the daemon client `recall` depends on — kept narrow so tests can inject a fake. */
|