ricord 1.0.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.
Files changed (134) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +213 -0
  3. package/commands/ricord-flush.md +29 -0
  4. package/commands/ricord-init.md +129 -0
  5. package/commands/ricord-lint.md +64 -0
  6. package/commands/ricord-query.md +71 -0
  7. package/dist/cli/auth.d.ts +16 -0
  8. package/dist/cli/auth.js +42 -0
  9. package/dist/cli/auth.js.map +1 -0
  10. package/dist/cli/bundle.d.ts +25 -0
  11. package/dist/cli/bundle.js +179 -0
  12. package/dist/cli/bundle.js.map +1 -0
  13. package/dist/cli/cache.d.ts +18 -0
  14. package/dist/cli/cache.js +39 -0
  15. package/dist/cli/cache.js.map +1 -0
  16. package/dist/cli/cli.d.ts +21 -0
  17. package/dist/cli/cli.js +355 -0
  18. package/dist/cli/cli.js.map +1 -0
  19. package/dist/cli/client.d.ts +12 -0
  20. package/dist/cli/client.js +35 -0
  21. package/dist/cli/client.js.map +1 -0
  22. package/dist/cli/commands/build.d.ts +44 -0
  23. package/dist/cli/commands/build.js +437 -0
  24. package/dist/cli/commands/build.js.map +1 -0
  25. package/dist/cli/commands/curate.d.ts +32 -0
  26. package/dist/cli/commands/curate.js +154 -0
  27. package/dist/cli/commands/curate.js.map +1 -0
  28. package/dist/cli/commands/doctor.d.ts +16 -0
  29. package/dist/cli/commands/doctor.js +92 -0
  30. package/dist/cli/commands/doctor.js.map +1 -0
  31. package/dist/cli/commands/ingest.d.ts +25 -0
  32. package/dist/cli/commands/ingest.js +121 -0
  33. package/dist/cli/commands/ingest.js.map +1 -0
  34. package/dist/cli/commands/install.d.ts +16 -0
  35. package/dist/cli/commands/install.js +82 -0
  36. package/dist/cli/commands/install.js.map +1 -0
  37. package/dist/cli/commands/pull.d.ts +24 -0
  38. package/dist/cli/commands/pull.js +104 -0
  39. package/dist/cli/commands/pull.js.map +1 -0
  40. package/dist/cli/commands/push.d.ts +28 -0
  41. package/dist/cli/commands/push.js +164 -0
  42. package/dist/cli/commands/push.js.map +1 -0
  43. package/dist/cli/commands/rollup.d.ts +21 -0
  44. package/dist/cli/commands/rollup.js +118 -0
  45. package/dist/cli/commands/rollup.js.map +1 -0
  46. package/dist/cli/commands/setup.d.ts +7 -0
  47. package/dist/cli/commands/setup.js +43 -0
  48. package/dist/cli/commands/setup.js.map +1 -0
  49. package/dist/cli/commands/sync.d.ts +15 -0
  50. package/dist/cli/commands/sync.js +63 -0
  51. package/dist/cli/commands/sync.js.map +1 -0
  52. package/dist/cli/commands/watch.d.ts +17 -0
  53. package/dist/cli/commands/watch.js +87 -0
  54. package/dist/cli/commands/watch.js.map +1 -0
  55. package/dist/cli/config.d.ts +29 -0
  56. package/dist/cli/config.js +52 -0
  57. package/dist/cli/config.js.map +1 -0
  58. package/dist/cli/extract.d.ts +101 -0
  59. package/dist/cli/extract.js +216 -0
  60. package/dist/cli/extract.js.map +1 -0
  61. package/dist/cli/ingest.d.ts +48 -0
  62. package/dist/cli/ingest.js +74 -0
  63. package/dist/cli/ingest.js.map +1 -0
  64. package/dist/cli/ledger.d.ts +44 -0
  65. package/dist/cli/ledger.js +67 -0
  66. package/dist/cli/ledger.js.map +1 -0
  67. package/dist/cli/llm.d.ts +21 -0
  68. package/dist/cli/llm.js +138 -0
  69. package/dist/cli/llm.js.map +1 -0
  70. package/dist/cli/parse.d.ts +13 -0
  71. package/dist/cli/parse.js +188 -0
  72. package/dist/cli/parse.js.map +1 -0
  73. package/dist/cli/run-explore.d.ts +56 -0
  74. package/dist/cli/run-explore.js +229 -0
  75. package/dist/cli/run-explore.js.map +1 -0
  76. package/dist/cli/summarize.d.ts +15 -0
  77. package/dist/cli/summarize.js +49 -0
  78. package/dist/cli/summarize.js.map +1 -0
  79. package/dist/cli/uninstall.d.ts +6 -0
  80. package/dist/cli/uninstall.js +277 -0
  81. package/dist/cli/uninstall.js.map +1 -0
  82. package/dist/cli/walk.d.ts +13 -0
  83. package/dist/cli/walk.js +62 -0
  84. package/dist/cli/walk.js.map +1 -0
  85. package/dist/cli/walker.d.ts +14 -0
  86. package/dist/cli/walker.js +120 -0
  87. package/dist/cli/walker.js.map +1 -0
  88. package/dist/hooks/pre-compact.d.ts +15 -0
  89. package/dist/hooks/pre-compact.js +127 -0
  90. package/dist/hooks/pre-compact.js.map +1 -0
  91. package/dist/hooks/pre-tool-use.d.ts +15 -0
  92. package/dist/hooks/pre-tool-use.js +25 -0
  93. package/dist/hooks/pre-tool-use.js.map +1 -0
  94. package/dist/hooks/session-end.d.ts +21 -0
  95. package/dist/hooks/session-end.js +186 -0
  96. package/dist/hooks/session-end.js.map +1 -0
  97. package/dist/hooks/session-start.d.ts +15 -0
  98. package/dist/hooks/session-start.js +233 -0
  99. package/dist/hooks/session-start.js.map +1 -0
  100. package/dist/hooks/turn-end-post.d.ts +17 -0
  101. package/dist/hooks/turn-end-post.js +66 -0
  102. package/dist/hooks/turn-end-post.js.map +1 -0
  103. package/dist/hooks/turn-end.d.ts +29 -0
  104. package/dist/hooks/turn-end.js +295 -0
  105. package/dist/hooks/turn-end.js.map +1 -0
  106. package/dist/index.d.ts +24 -0
  107. package/dist/index.js +1547 -0
  108. package/dist/index.js.map +1 -0
  109. package/dist/init.d.ts +45 -0
  110. package/dist/init.js +839 -0
  111. package/dist/init.js.map +1 -0
  112. package/dist/lib/active-project.d.ts +14 -0
  113. package/dist/lib/active-project.js +65 -0
  114. package/dist/lib/active-project.js.map +1 -0
  115. package/dist/lib/buffer.d.ts +34 -0
  116. package/dist/lib/buffer.js +79 -0
  117. package/dist/lib/buffer.js.map +1 -0
  118. package/dist/scripts/compile.d.ts +25 -0
  119. package/dist/scripts/compile.js +185 -0
  120. package/dist/scripts/compile.js.map +1 -0
  121. package/dist/scripts/config.d.ts +30 -0
  122. package/dist/scripts/config.js +68 -0
  123. package/dist/scripts/config.js.map +1 -0
  124. package/dist/scripts/flush.d.ts +23 -0
  125. package/dist/scripts/flush.js +230 -0
  126. package/dist/scripts/flush.js.map +1 -0
  127. package/dist/scripts/lint.d.ts +21 -0
  128. package/dist/scripts/lint.js +242 -0
  129. package/dist/scripts/lint.js.map +1 -0
  130. package/dist/scripts/utils.d.ts +43 -0
  131. package/dist/scripts/utils.js +165 -0
  132. package/dist/scripts/utils.js.map +1 -0
  133. package/package.json +74 -0
  134. package/scripts/postinstall.mjs +56 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Per-session active project pin.
3
+ *
4
+ * The MCP tool `ricord_set_project` writes here; the Stop / SessionEnd hooks
5
+ * read here before falling back to git/cwd detection. Lets the model in the
6
+ * conversation override the default project tag (e.g. when working in a
7
+ * monorepo subdir, or when topic changes mid-session).
8
+ *
9
+ * State is per-session so closing/reopening Claude Code resets to git default
10
+ * unless the model re-pins. Files are tiny (<200 bytes) and cheap to read.
11
+ */
12
+ export declare function setActiveProject(sessionId: string, project_id: string, reason?: string): void;
13
+ export declare function getActiveProject(sessionId: string): string | null;
14
+ export declare function clearActiveProject(sessionId: string): void;
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Per-session active project pin.
3
+ *
4
+ * The MCP tool `ricord_set_project` writes here; the Stop / SessionEnd hooks
5
+ * read here before falling back to git/cwd detection. Lets the model in the
6
+ * conversation override the default project tag (e.g. when working in a
7
+ * monorepo subdir, or when topic changes mid-session).
8
+ *
9
+ * State is per-session so closing/reopening Claude Code resets to git default
10
+ * unless the model re-pins. Files are tiny (<200 bytes) and cheap to read.
11
+ */
12
+ import { readFileSync, writeFileSync, existsSync, mkdirSync, readdirSync, statSync, unlinkSync } from "node:fs";
13
+ import { join } from "node:path";
14
+ import { homedir } from "node:os";
15
+ const DIR = join(homedir(), ".ricord", "active-project");
16
+ const STALE_MS = 7 * 24 * 60 * 60 * 1000; // GC files older than 7d
17
+ function ensureDir() {
18
+ if (!existsSync(DIR))
19
+ mkdirSync(DIR, { recursive: true });
20
+ }
21
+ function safeId(sessionId) {
22
+ return sessionId.replace(/[^a-zA-Z0-9_-]/g, "_").replace(/^[-_.]+/, "_") || "default";
23
+ }
24
+ function pathFor(sessionId) {
25
+ return join(DIR, `${safeId(sessionId)}.json`);
26
+ }
27
+ export function setActiveProject(sessionId, project_id, reason) {
28
+ ensureDir();
29
+ const pin = { project_id, set_at: Date.now(), reason };
30
+ writeFileSync(pathFor(sessionId), JSON.stringify(pin), { encoding: "utf8", mode: 0o600 });
31
+ gcStale();
32
+ }
33
+ export function getActiveProject(sessionId) {
34
+ try {
35
+ const raw = readFileSync(pathFor(sessionId), "utf8");
36
+ const pin = JSON.parse(raw);
37
+ if (typeof pin.project_id !== "string")
38
+ return null;
39
+ return pin.project_id;
40
+ }
41
+ catch {
42
+ return null;
43
+ }
44
+ }
45
+ export function clearActiveProject(sessionId) {
46
+ try {
47
+ unlinkSync(pathFor(sessionId));
48
+ }
49
+ catch { /* ignore */ }
50
+ }
51
+ function gcStale() {
52
+ try {
53
+ const cutoff = Date.now() - STALE_MS;
54
+ for (const f of readdirSync(DIR)) {
55
+ const p = join(DIR, f);
56
+ try {
57
+ if (statSync(p).mtimeMs < cutoff)
58
+ unlinkSync(p);
59
+ }
60
+ catch { }
61
+ }
62
+ }
63
+ catch { }
64
+ }
65
+ //# sourceMappingURL=active-project.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"active-project.js","sourceRoot":"","sources":["../../src/lib/active-project.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAChH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;AACzD,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,yBAAyB;AAQnE,SAAS,SAAS;IAChB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,MAAM,CAAC,SAAiB;IAC/B,OAAO,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,SAAS,CAAC;AACxF,CAAC;AAED,SAAS,OAAO,CAAC,SAAiB;IAChC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,UAAkB,EAAE,MAAe;IACrF,SAAS,EAAE,CAAC;IACZ,MAAM,GAAG,GAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC;IAC5D,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1F,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAQ,CAAC;QACnC,IAAI,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACpD,OAAO,GAAG,CAAC,UAAU,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,IAAI,CAAC;QAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,OAAO;IACd,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;QACrC,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC;gBAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,MAAM;oBAAE,UAAU,CAAC,CAAC,CAAC,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACnE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Local turn buffer — accumulates turns between flushes so we batch-insert
3
+ * every BATCH_SIZE turns instead of one POST per turn.
4
+ *
5
+ * Files written under ~/.ricord/buffer/:
6
+ * <sessionId>.jsonl — one JSON line per buffered turn
7
+ * .current — session ID of the most-recently active session
8
+ * (read by ricord_remember to know which buffer to flush)
9
+ */
10
+ export declare const BUFFER_DIR: string;
11
+ /** How many turns to accumulate before auto-flushing. */
12
+ export declare const BATCH_SIZE = 5;
13
+ export interface BufferedTurn {
14
+ userContent: string;
15
+ assistantContent: string;
16
+ customId: string;
17
+ ts: number;
18
+ }
19
+ export declare function getBufferPath(sessionId: string): string;
20
+ /** Record which session is currently active (for ricord_remember to find). */
21
+ export declare function setCurrentSession(sessionId: string): void;
22
+ export declare function getCurrentSession(): string | null;
23
+ /**
24
+ * Append one turn to the session buffer.
25
+ * Returns the new buffer length so the caller can decide whether to flush.
26
+ */
27
+ export declare function appendTurn(sessionId: string, turn: BufferedTurn): number;
28
+ export declare function readBufferedTurns(sessionId: string): BufferedTurn[];
29
+ export declare function clearBuffer(sessionId: string): void;
30
+ /** Convert buffered turns to a flat messages[] array for /v1/ingest/extracted. */
31
+ export declare function turnsToMessages(turns: BufferedTurn[]): Array<{
32
+ role: "user" | "assistant";
33
+ content: string;
34
+ }>;
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Local turn buffer — accumulates turns between flushes so we batch-insert
3
+ * every BATCH_SIZE turns instead of one POST per turn.
4
+ *
5
+ * Files written under ~/.ricord/buffer/:
6
+ * <sessionId>.jsonl — one JSON line per buffered turn
7
+ * .current — session ID of the most-recently active session
8
+ * (read by ricord_remember to know which buffer to flush)
9
+ */
10
+ import { readFileSync, writeFileSync, appendFileSync, existsSync, mkdirSync, unlinkSync, } from "node:fs";
11
+ import { join } from "node:path";
12
+ import { homedir } from "node:os";
13
+ export const BUFFER_DIR = join(homedir(), ".ricord", "buffer");
14
+ const CURRENT_SESSION_FILE = join(BUFFER_DIR, ".current");
15
+ /** How many turns to accumulate before auto-flushing. */
16
+ export const BATCH_SIZE = 5;
17
+ function ensureDir() {
18
+ if (!existsSync(BUFFER_DIR))
19
+ mkdirSync(BUFFER_DIR, { recursive: true, mode: 0o700 });
20
+ }
21
+ export function getBufferPath(sessionId) {
22
+ // SEC-11: Strip non-safe chars AND strip leading special chars to prevent
23
+ // filenames that look like flags (e.g., "--foo") in shell contexts.
24
+ const safe = sessionId
25
+ .replace(/[^a-zA-Z0-9_-]/g, "_")
26
+ .replace(/^[-_.]+/, "_");
27
+ return join(BUFFER_DIR, `${safe || "default"}.jsonl`);
28
+ }
29
+ /** Record which session is currently active (for ricord_remember to find). */
30
+ export function setCurrentSession(sessionId) {
31
+ ensureDir();
32
+ writeFileSync(CURRENT_SESSION_FILE, sessionId, { encoding: "utf8", mode: 0o600 });
33
+ }
34
+ export function getCurrentSession() {
35
+ try {
36
+ return readFileSync(CURRENT_SESSION_FILE, "utf8").trim() || null;
37
+ }
38
+ catch {
39
+ return null;
40
+ }
41
+ }
42
+ /**
43
+ * Append one turn to the session buffer.
44
+ * Returns the new buffer length so the caller can decide whether to flush.
45
+ */
46
+ export function appendTurn(sessionId, turn) {
47
+ ensureDir();
48
+ appendFileSync(getBufferPath(sessionId), JSON.stringify(turn) + "\n", { encoding: "utf8", mode: 0o600 });
49
+ setCurrentSession(sessionId);
50
+ return readBufferedTurns(sessionId).length;
51
+ }
52
+ export function readBufferedTurns(sessionId) {
53
+ const path = getBufferPath(sessionId);
54
+ if (!existsSync(path))
55
+ return [];
56
+ return readFileSync(path, "utf8")
57
+ .split("\n")
58
+ .filter(l => l.trim())
59
+ .map(l => { try {
60
+ return JSON.parse(l);
61
+ }
62
+ catch {
63
+ return null;
64
+ } })
65
+ .filter((t) => t !== null);
66
+ }
67
+ export function clearBuffer(sessionId) {
68
+ const path = getBufferPath(sessionId);
69
+ if (existsSync(path))
70
+ unlinkSync(path);
71
+ }
72
+ /** Convert buffered turns to a flat messages[] array for /v1/ingest/extracted. */
73
+ export function turnsToMessages(turns) {
74
+ return turns.flatMap(t => [
75
+ { role: "user", content: t.userContent },
76
+ { role: "assistant", content: t.assistantContent },
77
+ ]);
78
+ }
79
+ //# sourceMappingURL=buffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffer.js","sourceRoot":"","sources":["../../src/lib/buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EACV,SAAS,EACT,UAAU,GACX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC/D,MAAM,oBAAoB,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAE1D,yDAAyD;AACzD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC;AAS5B,SAAS,SAAS;IAChB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,0EAA0E;IAC1E,oEAAoE;IACpE,MAAM,IAAI,GAAG,SAAS;SACnB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;SAC/B,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC3B,OAAO,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,IAAI,SAAS,QAAQ,CAAC,CAAC;AACxD,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,SAAS,EAAE,CAAC;IACZ,aAAa,CAAC,oBAAoB,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC;QAAC,OAAO,YAAY,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;AAClG,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,SAAiB,EAAE,IAAkB;IAC9D,SAAS,EAAE,CAAC;IACZ,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAC7B,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;SAC9B,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACrB,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC;QAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAiB,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC;SAClF,MAAM,CAAC,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,eAAe,CAAC,KAAqB;IACnD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,CAAC,CAAC,WAAW,EAAE;QACjD,EAAE,IAAI,EAAE,WAAoB,EAAE,OAAO,EAAE,CAAC,CAAC,gBAAgB,EAAE;KAC5D,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,25 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Compile daily logs into structured KB articles via Ricord API.
4
+ *
5
+ * This is the "LLM compiler" step — reads daily logs (source), extracts
6
+ * episodes and facts from Ricord, and triggers KB page generation/refresh.
7
+ *
8
+ * Unlike claude-memory-compiler which uses the Agent SDK to write local
9
+ * markdown files, this script leverages Ricord's server-side KB layer
10
+ * (ricord_kb_refresh) to synthesize knowledge. The daily logs serve as
11
+ * a local audit trail + source reference.
12
+ *
13
+ * The pipeline:
14
+ * 1. Find daily logs that have changed since last compilation
15
+ * 2. For each, read the log and extract any un-saved knowledge
16
+ * 3. Trigger KB page refresh for affected entities/topics
17
+ * 4. Update local state.json with hashes + timestamps
18
+ *
19
+ * Usage:
20
+ * node dist/scripts/compile.js # compile new/changed logs only
21
+ * node dist/scripts/compile.js --all # force recompile everything
22
+ * node dist/scripts/compile.js --dry-run # show what would be compiled
23
+ * node dist/scripts/compile.js --file daily/2026-04-01.md
24
+ */
25
+ export {};
@@ -0,0 +1,185 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Compile daily logs into structured KB articles via Ricord API.
4
+ *
5
+ * This is the "LLM compiler" step — reads daily logs (source), extracts
6
+ * episodes and facts from Ricord, and triggers KB page generation/refresh.
7
+ *
8
+ * Unlike claude-memory-compiler which uses the Agent SDK to write local
9
+ * markdown files, this script leverages Ricord's server-side KB layer
10
+ * (ricord_kb_refresh) to synthesize knowledge. The daily logs serve as
11
+ * a local audit trail + source reference.
12
+ *
13
+ * The pipeline:
14
+ * 1. Find daily logs that have changed since last compilation
15
+ * 2. For each, read the log and extract any un-saved knowledge
16
+ * 3. Trigger KB page refresh for affected entities/topics
17
+ * 4. Update local state.json with hashes + timestamps
18
+ *
19
+ * Usage:
20
+ * node dist/scripts/compile.js # compile new/changed logs only
21
+ * node dist/scripts/compile.js --all # force recompile everything
22
+ * node dist/scripts/compile.js --dry-run # show what would be compiled
23
+ * node dist/scripts/compile.js --file daily/2026-04-01.md
24
+ */
25
+ import { readFileSync, existsSync } from "node:fs";
26
+ import { join, resolve } from "node:path";
27
+ if (process.env.CLAUDE_INVOKED_BY === "ricord_compile") {
28
+ // BUG-05: Guard was missing process.exit — would fall through and run anyway.
29
+ process.exit(0);
30
+ }
31
+ process.env.CLAUDE_INVOKED_BY = "ricord_compile";
32
+ import { loadCredentials, api, DAILY_DIR, nowISO, } from "./config.js";
33
+ import { loadState, saveState, fileHash, listDailyLogs, appendToDailyLog, logToFile, scrubCredentials, detectProject, } from "./utils.js";
34
+ async function compileDailyLog(logPath, apiKey, apiBase, project) {
35
+ const logContent = readFileSync(logPath, "utf8");
36
+ const scrubbedContent = scrubCredentials(logContent);
37
+ const fileName = logPath.split("/").pop() ?? "daily-log";
38
+ const dateMatch = fileName.match(/(\d{4}-\d{2}-\d{2})/);
39
+ const dateStr = dateMatch ? dateMatch[1] : new Date().toISOString().slice(0, 10);
40
+ let itemsSaved = 0;
41
+ // Step 1: Embed-only ingest of the daily log as a single conversation row.
42
+ // The 2026-04-30 client-extraction migration retired server-side triage
43
+ // for hooks/scripts. /v1/ingest/extracted with empty anchors gives:
44
+ // - 1 row in `memories` (full daily log, embedded)
45
+ // - 1 row in `episodes` (the day's narrative, embedded)
46
+ // For graph extraction (anchors / connections / tasks), the host LLM
47
+ // can run ricord_extract action="fetch_prompt" then submit. This script
48
+ // does NOT do that — keeps the cost predictable (zero server LLM).
49
+ try {
50
+ const tags = ["compiled", "auto", "daily-log", `date:${dateStr}`];
51
+ const body = {
52
+ session_id: `daily-log:${dateStr}`,
53
+ messages: [{ role: "user", content: scrubbedContent.slice(0, 180_000) }],
54
+ extracted: { anchors: [] },
55
+ extraction_meta: {
56
+ model: "embed-only",
57
+ client: "ricord-mcp/compile",
58
+ schema_version: 1,
59
+ },
60
+ tags,
61
+ };
62
+ if (project)
63
+ body.project_id = project;
64
+ await api("POST", "/v1/ingest/extracted", body, apiKey, apiBase);
65
+ itemsSaved = 1;
66
+ }
67
+ catch (e) {
68
+ logToFile(`WARN ingest failed for ${logPath}: ${e.message}`);
69
+ }
70
+ // Step 2: Refresh stale KB pages — these are user-explicit maintenance ops
71
+ // that DO use server-side LLM, but only on demand. Unchanged by the
72
+ // migration (the migration targets BACKGROUND auto-extraction).
73
+ let pagesRefreshed = 0;
74
+ try {
75
+ const kbBody = {};
76
+ if (project)
77
+ kbBody.project_id = project;
78
+ // Trigger lint to find stale pages
79
+ try {
80
+ const lintResult = await api("POST", "/v1/kb/lint", kbBody, apiKey, apiBase);
81
+ const stalePages = (lintResult.issues || [])
82
+ .filter(i => i.type === "stale" && i.page_id)
83
+ .map(i => i.page_id);
84
+ for (const pageId of stalePages) {
85
+ try {
86
+ await api("POST", `/v1/kb/pages/${encodeURIComponent(pageId)}/refresh`, {}, apiKey, apiBase);
87
+ pagesRefreshed++;
88
+ }
89
+ catch { }
90
+ }
91
+ }
92
+ catch { }
93
+ }
94
+ catch (e) {
95
+ logToFile(`WARN KB lint failed: ${e.message}`);
96
+ }
97
+ return { itemsSaved, pagesRefreshed };
98
+ }
99
+ async function main() {
100
+ const args = process.argv.slice(2);
101
+ const forceAll = args.includes("--all");
102
+ const dryRun = args.includes("--dry-run");
103
+ const fileArg = args.find((_, i) => args[i - 1] === "--file");
104
+ const creds = loadCredentials();
105
+ if (!creds) {
106
+ console.error("No Ricord credentials found. Run: ricord login");
107
+ process.exit(1);
108
+ }
109
+ const apiBase = creds.api_base || "https://api.ricord.ai";
110
+ const project = detectProject();
111
+ const state = loadState();
112
+ // Determine which files to compile
113
+ let toCompile;
114
+ if (fileArg) {
115
+ const target = resolve(fileArg);
116
+ if (!existsSync(target)) {
117
+ // Try relative to daily dir
118
+ const alt = join(DAILY_DIR, fileArg.replace("daily/", ""));
119
+ if (!existsSync(alt)) {
120
+ console.error(`File not found: ${fileArg}`);
121
+ process.exit(1);
122
+ }
123
+ toCompile = [alt];
124
+ }
125
+ else {
126
+ toCompile = [target];
127
+ }
128
+ }
129
+ else {
130
+ const allLogs = listDailyLogs().map(f => join(DAILY_DIR, f));
131
+ if (forceAll) {
132
+ toCompile = allLogs;
133
+ }
134
+ else {
135
+ toCompile = allLogs.filter(logPath => {
136
+ const name = logPath.split("/").pop();
137
+ const prev = state.ingested[name];
138
+ return !prev || prev.hash !== fileHash(logPath);
139
+ });
140
+ }
141
+ }
142
+ if (toCompile.length === 0) {
143
+ console.log("Nothing to compile — all daily logs are up to date.");
144
+ return;
145
+ }
146
+ console.log(`${dryRun ? "[DRY RUN] " : ""}Files to compile (${toCompile.length}):`);
147
+ for (const f of toCompile) {
148
+ console.log(` - ${f.split("/").pop()}`);
149
+ }
150
+ if (dryRun)
151
+ return;
152
+ // Compile each file sequentially
153
+ let totalItems = 0;
154
+ let totalPages = 0;
155
+ for (let i = 0; i < toCompile.length; i++) {
156
+ const logPath = toCompile[i];
157
+ const logName = logPath.split("/").pop();
158
+ console.log(`\n[${i + 1}/${toCompile.length}] Compiling ${logName}...`);
159
+ try {
160
+ const { itemsSaved, pagesRefreshed } = await compileDailyLog(logPath, creds.api_key, apiBase, project);
161
+ totalItems += itemsSaved;
162
+ totalPages += pagesRefreshed;
163
+ // Update state
164
+ state.ingested[logName] = {
165
+ hash: fileHash(logPath),
166
+ compiled_at: nowISO(),
167
+ };
168
+ saveState(state);
169
+ console.log(` Done: ${itemsSaved} items saved, ${pagesRefreshed} KB pages refreshed`);
170
+ // Log the compilation
171
+ appendToDailyLog(`Compiled ${logName}: ${itemsSaved} new items, ${pagesRefreshed} KB pages refreshed`, "Compilation");
172
+ }
173
+ catch (e) {
174
+ console.error(` Error: ${e.message}`);
175
+ logToFile(`ERROR compiling ${logName}: ${e.message}`);
176
+ }
177
+ }
178
+ console.log(`\nCompilation complete. ${totalItems} items saved, ${totalPages} KB pages refreshed.`);
179
+ }
180
+ main().catch(e => {
181
+ console.error(`Fatal: ${e.message}`);
182
+ logToFile(`FATAL compile: ${e.message}`);
183
+ process.exit(1);
184
+ });
185
+ //# sourceMappingURL=compile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/scripts/compile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Shared config for Ricord scripts (flush, compile, lint).
3
+ *
4
+ * All paths are relative to the project root. Scripts are spawned
5
+ * by hooks as background processes and use these constants to find
6
+ * daily logs, state files, and the knowledge directory.
7
+ */
8
+ export declare const ROOT_DIR: string;
9
+ export declare const DAILY_DIR: string;
10
+ export declare const KNOWLEDGE_DIR: string;
11
+ export declare const CONCEPTS_DIR: string;
12
+ export declare const CONNECTIONS_DIR: string;
13
+ export declare const QA_DIR: string;
14
+ export declare const SCRIPTS_DIR: string;
15
+ export declare const STATE_FILE: string;
16
+ export declare const FLUSH_STATE_FILE: string;
17
+ export declare const FLUSH_LOG_FILE: string;
18
+ export declare const COMPILE_LOG_FILE: string;
19
+ export declare const REPORTS_DIR: string;
20
+ export declare const CREDENTIALS_FILE: string;
21
+ export interface Credentials {
22
+ api_key: string;
23
+ api_base?: string;
24
+ }
25
+ export declare function loadCredentials(): Credentials | null;
26
+ export declare function api(method: string, path: string, body?: Record<string, unknown>, apiKey?: string, apiBase?: string): Promise<unknown>;
27
+ export declare function nowISO(): string;
28
+ export declare function todayISO(): string;
29
+ export declare function todayDate(): string;
30
+ export declare const COMPILE_AFTER_HOUR = 18;
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Shared config for Ricord scripts (flush, compile, lint).
3
+ *
4
+ * All paths are relative to the project root. Scripts are spawned
5
+ * by hooks as background processes and use these constants to find
6
+ * daily logs, state files, and the knowledge directory.
7
+ */
8
+ import { join } from "node:path";
9
+ import { homedir } from "node:os";
10
+ import { readFileSync, existsSync } from "node:fs";
11
+ // ── Paths ────────────────────────────────────────────────────────────
12
+ export const ROOT_DIR = join(import.meta.dirname, "..", "..");
13
+ export const DAILY_DIR = join(ROOT_DIR, "daily");
14
+ export const KNOWLEDGE_DIR = join(ROOT_DIR, "knowledge");
15
+ export const CONCEPTS_DIR = join(KNOWLEDGE_DIR, "concepts");
16
+ export const CONNECTIONS_DIR = join(KNOWLEDGE_DIR, "connections");
17
+ export const QA_DIR = join(KNOWLEDGE_DIR, "qa");
18
+ export const SCRIPTS_DIR = join(ROOT_DIR, "dist", "scripts");
19
+ export const STATE_FILE = join(SCRIPTS_DIR, "state.json");
20
+ export const FLUSH_STATE_FILE = join(SCRIPTS_DIR, "last-flush.json");
21
+ export const FLUSH_LOG_FILE = join(SCRIPTS_DIR, "flush.log");
22
+ export const COMPILE_LOG_FILE = join(SCRIPTS_DIR, "compile.log");
23
+ export const REPORTS_DIR = join(ROOT_DIR, "reports");
24
+ // ── Credentials ──────────────────────────────────────────────────────
25
+ export const CREDENTIALS_FILE = join(homedir(), ".ricord", "credentials.json");
26
+ export function loadCredentials() {
27
+ try {
28
+ if (existsSync(CREDENTIALS_FILE)) {
29
+ return JSON.parse(readFileSync(CREDENTIALS_FILE, "utf8"));
30
+ }
31
+ }
32
+ catch { }
33
+ return null;
34
+ }
35
+ // ── API helper ───────────────────────────────────────────────────────
36
+ export async function api(method, path, body, apiKey, apiBase) {
37
+ const creds = apiKey && apiBase ? { api_key: apiKey, api_base: apiBase } : loadCredentials();
38
+ if (!creds)
39
+ throw new Error("No Ricord credentials found");
40
+ const base = creds.api_base || apiBase || "https://api.ricord.ai";
41
+ const res = await fetch(`${base}${path}`, {
42
+ method,
43
+ headers: {
44
+ Authorization: `Bearer ${creds.api_key}`,
45
+ "Content-Type": "application/json",
46
+ "User-Agent": "ricord-mcp-scripts/1.0",
47
+ },
48
+ ...(body ? { body: JSON.stringify(body) } : {}),
49
+ });
50
+ if (!res.ok) {
51
+ const text = await res.text();
52
+ throw new Error(`Ricord API ${res.status}: ${text}`);
53
+ }
54
+ return res.json();
55
+ }
56
+ // ── Timestamps ───────────────────────────────────────────────────────
57
+ export function nowISO() {
58
+ return new Date().toISOString();
59
+ }
60
+ export function todayISO() {
61
+ return new Date().toISOString().slice(0, 10);
62
+ }
63
+ export function todayDate() {
64
+ return new Date().toLocaleDateString("en-CA"); // YYYY-MM-DD
65
+ }
66
+ // ── Auto-compilation trigger hour (local time) ──────────────────────
67
+ export const COMPILE_AFTER_HOUR = 18; // 6 PM
68
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/scripts/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Memory flush — saves the residual session conversation to Ricord.
4
+ *
5
+ * Spawned by session-end.ts or pre-compact.ts as a background process.
6
+ * Reads the conversation context from a temp .md file (markdown turns),
7
+ * parses it into a messages[] array, and POSTs to /v1/ingest/extracted
8
+ * with empty anchors (embed-only mode):
9
+ * - 1 row written to `memories` (full session, embedded)
10
+ * - N rows written to `episodes` (per-turn embedding)
11
+ * - Zero server-side LLM calls (post 2026-04-30 client-extraction migration)
12
+ * Also appends a human-readable summary to today's daily log.
13
+ *
14
+ * For full graph extraction (anchors / connections / tasks), the host LLM
15
+ * runs ricord_extract action="fetch_prompt" + "submit". This script does
16
+ * NOT do that — keeps the cost predictable (zero server LLM).
17
+ *
18
+ * After flushing, if it's past 6 PM local time, auto-triggers compilation.
19
+ *
20
+ * Usage:
21
+ * node dist/scripts/flush.js <context_file.md> <session_id>
22
+ */
23
+ export {};