causantic 0.3.6 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +28 -18
  2. package/dist/cli/commands/init.d.ts.map +1 -1
  3. package/dist/cli/commands/init.js +22 -0
  4. package/dist/cli/commands/init.js.map +1 -1
  5. package/dist/cli/skill-templates.d.ts.map +1 -1
  6. package/dist/cli/skill-templates.js +282 -64
  7. package/dist/cli/skill-templates.js.map +1 -1
  8. package/dist/cli/utils.d.ts +0 -2
  9. package/dist/cli/utils.d.ts.map +1 -1
  10. package/dist/cli/utils.js +1 -1
  11. package/dist/cli/utils.js.map +1 -1
  12. package/dist/hooks/hook-utils.d.ts +18 -0
  13. package/dist/hooks/hook-utils.d.ts.map +1 -1
  14. package/dist/hooks/hook-utils.js +41 -0
  15. package/dist/hooks/hook-utils.js.map +1 -1
  16. package/dist/hooks/pre-compact.d.ts +7 -42
  17. package/dist/hooks/pre-compact.d.ts.map +1 -1
  18. package/dist/hooks/pre-compact.js +3 -47
  19. package/dist/hooks/pre-compact.js.map +1 -1
  20. package/dist/hooks/session-end.d.ts +7 -42
  21. package/dist/hooks/session-end.d.ts.map +1 -1
  22. package/dist/hooks/session-end.js +3 -47
  23. package/dist/hooks/session-end.js.map +1 -1
  24. package/dist/hooks/session-start.d.ts +4 -0
  25. package/dist/hooks/session-start.d.ts.map +1 -1
  26. package/dist/hooks/session-start.js +44 -14
  27. package/dist/hooks/session-start.js.map +1 -1
  28. package/dist/mcp/tools.d.ts +8 -0
  29. package/dist/mcp/tools.d.ts.map +1 -1
  30. package/dist/mcp/tools.js +247 -4
  31. package/dist/mcp/tools.js.map +1 -1
  32. package/dist/parser/chunker.d.ts +0 -4
  33. package/dist/parser/chunker.d.ts.map +1 -1
  34. package/dist/parser/chunker.js +0 -4
  35. package/dist/parser/chunker.js.map +1 -1
  36. package/dist/retrieval/chain-assembler.d.ts +8 -0
  37. package/dist/retrieval/chain-assembler.d.ts.map +1 -1
  38. package/dist/retrieval/chain-assembler.js +36 -2
  39. package/dist/retrieval/chain-assembler.js.map +1 -1
  40. package/dist/retrieval/context-assembler.d.ts +8 -0
  41. package/dist/retrieval/context-assembler.d.ts.map +1 -1
  42. package/dist/retrieval/context-assembler.js +1 -0
  43. package/dist/retrieval/context-assembler.js.map +1 -1
  44. package/dist/retrieval/search-assembler.d.ts +17 -0
  45. package/dist/retrieval/search-assembler.d.ts.map +1 -1
  46. package/dist/retrieval/search-assembler.js +26 -0
  47. package/dist/retrieval/search-assembler.js.map +1 -1
  48. package/dist/storage/chunk-store.d.ts +14 -0
  49. package/dist/storage/chunk-store.d.ts.map +1 -1
  50. package/dist/storage/chunk-store.js +23 -0
  51. package/dist/storage/chunk-store.js.map +1 -1
  52. package/dist/storage/vector-store.d.ts.map +1 -1
  53. package/dist/storage/vector-store.js +1 -0
  54. package/dist/storage/vector-store.js.map +1 -1
  55. package/package.json +1 -1
  56. package/dist/eval/benchmark-runner.d.ts +0 -15
  57. package/dist/eval/benchmark-runner.d.ts.map +0 -1
  58. package/dist/eval/benchmark-runner.js +0 -93
  59. package/dist/eval/benchmark-runner.js.map +0 -1
  60. package/dist/report/reporter.d.ts +0 -18
  61. package/dist/report/reporter.d.ts.map +0 -1
  62. package/dist/report/reporter.js +0 -119
  63. package/dist/report/reporter.js.map +0 -1
@@ -133,28 +133,38 @@ Pass these to the \`predict\` MCP tool:
133
133
  dirName: 'causantic-explain',
134
134
  content: `---
135
135
  name: causantic-explain
136
- description: "Answer 'why' questions about code and architecture by reconstructing the decision narrative from memory. Use when asked why something works a certain way or what led to a decision."
137
- argument-hint: [question]
136
+ description: "Answer 'why' questions and explore codebase areas using memory. Handles both focused decision questions and comprehensive area briefings."
137
+ argument-hint: [question or area]
138
138
  ---
139
139
 
140
- # Explain Why
140
+ # Explain & Explore
141
141
 
142
- Answer "why" questions about code and architecture by reconstructing the decision narrative from memory.
142
+ Answer "why" questions about code and architecture, or build comprehensive context about a codebase area — both by reconstructing narratives from memory.
143
143
 
144
144
  ## Usage
145
145
 
146
146
  \`\`\`
147
147
  /causantic-explain why does the chunker split on tool boundaries?
148
148
  /causantic-explain what led to the RRF fusion approach?
149
- /causantic-explain why is the schema at v7?
149
+ /causantic-explain the authentication module
150
+ /causantic-explain src/storage/chunk-store.ts
150
151
  \`\`\`
151
152
 
153
+ ## Intent Detection
154
+
155
+ | User asks | Mode | Output format |
156
+ |-----------|------|---------------|
157
+ | "Why does X..." / "What led to..." | Focused decision | Decision narrative |
158
+ | "Tell me about X" / area name / file path | Area briefing | Comprehensive briefing |
159
+
152
160
  ## Workflow
153
161
 
154
- 1. **Reconstruct the narrative**: Use \`recall\` with the topic to walk the causal chain — problem that prompted the decision, alternatives considered, what was chosen and why
155
- 2. **Gather supporting context**: Use \`search\` with the topic for additional context, related discussions, and alternatives that were considered
162
+ 1. **Reconstruct the narrative**: Use \`recall\` with the topic to walk causal chains — problem, alternatives, what was chosen and why
163
+ 2. **Gather broad context**: Use \`search\` with the topic for semantically related past context, evolution, and related discussions
156
164
 
157
- ## Output Format
165
+ ## Output Format: Focused Decision
166
+
167
+ Use when the query is a specific "why" or "what led to" question:
158
168
 
159
169
  - **Decision**: What was decided
160
170
  - **Context**: The problem or need that prompted it
@@ -162,61 +172,32 @@ Answer "why" questions about code and architecture by reconstructing the decisio
162
172
  - **Rationale**: Why this approach was chosen
163
173
  - **Trade-offs**: Known downsides or limitations accepted
164
174
 
175
+ ## Output Format: Area Briefing
176
+
177
+ Use when the query names an area, module, file, or broad topic:
178
+
179
+ - **Purpose**: What this area does (from memory's perspective)
180
+ - **Key Decisions**: Decisions that shaped this area, with rationale
181
+ - **Evolution**: Major changes over time
182
+ - **Constraints & Tech Debt**: Known limitations or workarounds
183
+ - **Recent Activity**: What was recently changed or discussed
184
+
165
185
  ## When to Use
166
186
 
167
187
  - User asks "why does X work this way?"
168
188
  - User asks "what led to this decision?"
189
+ - User asks "tell me about X" or names a codebase area
169
190
  - Before changing existing architecture — understand the reasoning first
170
191
  - When code seems surprising or non-obvious
192
+ - When starting work in an unfamiliar area
171
193
 
172
194
  ## Guidelines
173
195
 
174
- - This skill answers focused "why" questions — for a broad area briefing, use \`/causantic-context\` instead
175
196
  - Present the narrative as a story: what was the problem, what was tried, what stuck
176
197
  - If memory shows the decision evolved over time, show the progression
177
- - If memory has no context, say sodo not fabricate rationale
178
- `,
179
- },
180
- {
181
- dirName: 'causantic-context',
182
- content: `---
183
- name: causantic-context
184
- description: "Deep dive into a codebase area by combining decision history, evolution, and recent activity from memory. Use when you need comprehensive background on a module, feature, or design."
185
- argument-hint: [area or topic]
186
- ---
187
-
188
- # Deep Context
189
-
190
- Build comprehensive context about a codebase area by combining decision history, evolution, and recent activity from memory.
191
-
192
- ## Usage
193
-
194
- \`\`\`
195
- /causantic-context the authentication module
196
- /causantic-context src/storage/chunk-store.ts
197
- /causantic-context how we handle encryption
198
- \`\`\`
199
-
200
- ## Workflow
201
-
202
- 1. **Get decision history**: Use \`recall\` with the topic for episodic narrative and rationale
203
- 2. **Get broad context**: Use \`search\` with the topic for semantically related past context
204
- 3. **Present as a structured briefing**
205
-
206
- ## Output Format
207
-
208
- - **Purpose**: What this area does (from memory's perspective)
209
- - **Key Decisions**: Decisions that shaped this area, with rationale
210
- - **Evolution**: Major changes over time
211
- - **Constraints & Tech Debt**: Known limitations or workarounds
212
- - **Recent Activity**: What was recently changed or discussed
213
-
214
- ## Guidelines
215
-
216
- - For a specific "why" question, use \`/causantic-explain\` instead — this skill is for comprehensive area briefings covering purpose, evolution, constraints, and recent activity
217
- - Focus on the "why" — the user can read the code for the "what"
198
+ - For area briefings, focus on the "why"the user can read the code for the "what"
218
199
  - If memory has conflicting information across time, present the most recent and note the evolution
219
- - If memory has little context for the area, say so honestly
200
+ - If memory has no context, say so — do not fabricate rationale
220
201
  `,
221
202
  },
222
203
  {
@@ -418,6 +399,110 @@ Returns a list of projects with:
418
399
  - Before using project-filtered queries with \`/causantic-recall\`, \`/causantic-search\`, or \`/causantic-predict\`
419
400
  - To see what projects have been ingested into memory
420
401
  - To check the coverage and recency of memory for a specific project
402
+ `,
403
+ },
404
+ {
405
+ dirName: 'causantic-status',
406
+ content: `---
407
+ name: causantic-status
408
+ description: "Check Causantic system health: hook status, memory statistics, and version info. Use to diagnose setup issues or get an overview of the memory system."
409
+ ---
410
+
411
+ # System Status
412
+
413
+ Check Causantic system health by combining hook status and memory statistics.
414
+
415
+ ## Usage
416
+
417
+ \`\`\`
418
+ /causantic-status
419
+ \`\`\`
420
+
421
+ ## Workflow
422
+
423
+ 1. Call the \`hook-status\` MCP tool from \`causantic\` to check when hooks last ran and whether they succeeded
424
+ 2. Call the \`stats\` MCP tool from \`causantic\` to get version, chunk/edge/cluster counts, and per-project breakdowns
425
+ 3. Present a combined health report
426
+
427
+ ## Output Format
428
+
429
+ - **Version**: Causantic version
430
+ - **Hook Status**: For each hook (session-start, session-end, pre-compact, claudemd-generator) — last run time, success/failure, duration
431
+ - **Memory Statistics**: Chunk, edge, and cluster counts
432
+ - **Projects**: Per-project chunk counts and date ranges
433
+
434
+ ## When to Use
435
+
436
+ - After running \`causantic init\` to verify hooks are firing
437
+ - When memory seems stale or missing — check if hooks are running
438
+ - To get an overview of how much memory is stored
439
+ - To diagnose issues with the memory system
440
+
441
+ ## Guidelines
442
+
443
+ - If hooks show errors, suggest common fixes (re-run init, check permissions)
444
+ - If memory stats are empty, suggest running batch-ingest
445
+ - Present the report concisely — this is a diagnostic tool
446
+ `,
447
+ },
448
+ {
449
+ dirName: 'causantic-summary',
450
+ content: `---
451
+ name: causantic-summary
452
+ description: "Summarize recent work across sessions for a project. Use to review accomplishments, track in-progress work, and identify patterns over a time period."
453
+ argument-hint: [time range]
454
+ ---
455
+
456
+ # Work Summary
457
+
458
+ Summarize recent work across sessions by combining session browsing with context reconstruction.
459
+
460
+ ## Usage
461
+
462
+ \`\`\`
463
+ /causantic-summary
464
+ /causantic-summary today
465
+ /causantic-summary this week
466
+ /causantic-summary past 3 days
467
+ \`\`\`
468
+
469
+ ## Workflow
470
+
471
+ 1. **Identify the project**: Derive from the current working directory (use \`list-projects\` if ambiguous)
472
+ 2. **Determine time range**: Map the user's intent to a \`days_back\` value
473
+ 3. **Browse sessions**: Use \`list-sessions\` with the project and time range to see all sessions
474
+ 4. **Reconstruct context**: Use \`reconstruct\` with the project and time range to get the raw session content
475
+ 5. **Synthesize**: Analyze the reconstructed context and produce a structured summary
476
+
477
+ ## Interpreting User Intent
478
+
479
+ | User says | days_back |
480
+ |-----------|-----------|
481
+ | (nothing) / "recently" | 3 |
482
+ | "today" | 1 |
483
+ | "yesterday" | 2 |
484
+ | "this week" | 7 |
485
+ | "past N days" | N |
486
+ | "this month" | 30 |
487
+ | "this sprint" | 14 |
488
+
489
+ ## Output Format
490
+
491
+ - **Period**: Date range and number of sessions
492
+ - **Accomplishments**: Completed work, merged PRs, resolved issues
493
+ - **In Progress**: Work that was started but not finished
494
+ - **Patterns**: Recurring themes, frequently touched areas, common decisions
495
+ - **Blockers / Open Issues**: Problems that came up and may still need attention
496
+ - **Next Steps**: Explicit TODOs or natural continuations
497
+
498
+ ## Guidelines
499
+
500
+ - Synthesize across sessions — don't just list each session separately
501
+ - Focus on outcomes and decisions, not individual tool calls or file edits
502
+ - Group related work across sessions (e.g., "Authentication refactor" spanning 3 sessions)
503
+ - Highlight work that was started but not completed — this is the most actionable info
504
+ - If the time range has many sessions, prioritize breadth over depth
505
+ - If no sessions found for the time range, suggest widening the range
421
506
  `,
422
507
  },
423
508
  {
@@ -430,7 +515,7 @@ argument-hint: [pattern or topic]
430
515
 
431
516
  # Cross-Project Reference
432
517
 
433
- Search memory across all projects to find relevant patterns, solutions, or approaches.
518
+ Search memory across all projects to find relevant patterns, solutions, or approaches. Explicitly queries each project to ensure comprehensive coverage.
434
519
 
435
520
  ## Usage
436
521
 
@@ -442,24 +527,38 @@ Search memory across all projects to find relevant patterns, solutions, or appro
442
527
 
443
528
  ## Workflow
444
529
 
445
- 1. **Search all projects**: Use \`search\` WITHOUT a project filter for broad semantic discovery
446
- 2. **Walk causal chains**: Use \`recall\` WITHOUT a project filter for narrative context
447
- 3. **Surface related patterns**: Use \`predict\` without a project filter
448
- 4. **Group by project**: Organize results by which project they came from
449
- 5. **Highlight transferable insights**: Focus on what can be reused or adapted
530
+ 1. **Discover projects**: Call \`list-projects\` to get all available projects
531
+ 2. **Search each project**: For each relevant project (up to 5), call \`search\` with the query and that project's slug as the \`project\` filter
532
+ 3. **Deepen promising hits**: For projects with strong search results, call \`recall\` with the query and project filter to reconstruct the narrative
533
+ 4. **Compare across projects**: Analyze findings across projects, highlighting shared patterns, differences, and transferable solutions
450
534
 
451
535
  ## Output Format
452
536
 
453
- Group findings by project:
454
- - **[Project A]**: relevant findings
455
- - **[Project B]**: relevant findings
456
- - **Transferable Patterns**: what can be reused or adapted
537
+ For each project with relevant findings:
538
+ - **[Project Name]** (N chunks matched)
539
+ - Key findings and context
540
+ - Relevant decisions or patterns
541
+
542
+ Then synthesize:
543
+ - **Shared Patterns**: approaches used across multiple projects
544
+ - **Transferable Solutions**: what can be reused or adapted
545
+ - **Project-Specific Details**: approaches that are context-dependent
546
+
547
+ ## When to Use
548
+
549
+ - Looking for how something was solved in other projects
550
+ - Checking if a pattern or approach has been used before
551
+ - Cross-project knowledge transfer
552
+ - Finding reusable code or design patterns
457
553
 
458
554
  ## Guidelines
459
555
 
556
+ - Always start with \`list-projects\` — don't assume which projects exist
557
+ - Use project-filtered searches for precision (avoid noise from unfiltered broad search)
558
+ - Limit to 5 most relevant projects to keep response focused
460
559
  - Always attribute findings to their source project
461
560
  - Highlight patterns that transfer well vs project-specific details
462
- - This is inherently a broad search expect some noise
561
+ - If no projects have relevant context, say so clearly
463
562
  `,
464
563
  },
465
564
  {
@@ -1124,6 +1223,95 @@ Write the plan to \`CLEANUP_PLAN.md\` in project root with:
1124
1223
  - Consider breaking the plan into separate PRs for review
1125
1224
  - Dead code removal is often safest to do first as a separate PR
1126
1225
  - Documentation updates can be done in parallel with code changes
1226
+ `,
1227
+ },
1228
+ {
1229
+ dirName: 'causantic-forget',
1230
+ content: `---
1231
+ name: causantic-forget
1232
+ description: "Delete old or unwanted memory by project, time range, session, or topic. Always previews before deleting. Use when asked to forget, clean up, or remove specific memory."
1233
+ argument-hint: [query or filters]
1234
+ ---
1235
+
1236
+ # Forget Memory
1237
+
1238
+ Use the \`forget\` MCP tool from \`causantic\` to delete chunks from memory. Supports deletion by time range, session, or semantic topic query. Always defaults to dry-run preview.
1239
+
1240
+ ## Usage
1241
+
1242
+ \\\`\\\`\\\`
1243
+ /causantic-forget authentication flow
1244
+ /causantic-forget everything before January
1245
+ /causantic-forget session abc12345
1246
+ /causantic-forget old deployment scripts
1247
+ \\\`\\\`\\\`
1248
+
1249
+ ## Workflow
1250
+
1251
+ 1. **Identify the project**: Derive from the current working directory, or ask the user. Use \`list-projects\` if ambiguous.
1252
+ 2. **Determine deletion mode** based on user intent (see table below)
1253
+ 3. **Always preview first**: Call \`forget\` with \`dry_run: true\` (the default)
1254
+ 4. **Show the user what would be deleted** and ask for confirmation
1255
+ 5. **Only after explicit confirmation**: Call \`forget\` with \`dry_run: false\`
1256
+
1257
+ ## Interpreting User Intent
1258
+
1259
+ | User says | Parameters |
1260
+ |-----------|-----------|
1261
+ | "forget about authentication" | \`query: "authentication", project: "..."\` |
1262
+ | "forget everything before January" | \`before: "2025-01-01T00:00:00Z", project: "..."\` |
1263
+ | "forget session abc123" | \`session_id: "abc123", project: "..."\` |
1264
+ | "forget old auth stuff from December" | \`query: "authentication", after: "2024-12-01T00:00:00Z", before: "2025-01-01T00:00:00Z", project: "..."\` |
1265
+ | "forget everything about X but be selective" | \`query: "X", threshold: 0.8, project: "..."\` |
1266
+
1267
+ ## Parameters
1268
+
1269
+ Pass these to the \`forget\` MCP tool:
1270
+
1271
+ - **project** (required): Project slug. Use \`/causantic-list-projects\` to discover names.
1272
+ - **query**: Semantic query for topic-based deletion. Finds similar chunks by embedding similarity.
1273
+ - **threshold**: Similarity threshold (0–1, default 0.6). Higher = more selective. Values >1 treated as percentages (e.g., 60 → 0.6).
1274
+ - **before**: Delete chunks before this ISO 8601 date.
1275
+ - **after**: Delete chunks on or after this ISO 8601 date.
1276
+ - **session_id**: Delete chunks from a specific session.
1277
+ - **dry_run**: Preview without deleting (default: true). Set to false only after user confirmation.
1278
+
1279
+ When \`query\` is combined with time/session filters, they intersect (AND logic).
1280
+
1281
+ ## Threshold Tuning
1282
+
1283
+ - Default 0.6 is conservative — includes moderately related chunks
1284
+ - Use 0.7–0.8 for more selective deletion
1285
+ - Use 0.5 for broader cleanup
1286
+ - The dry-run preview shows score distribution (min/max/median) to help tune
1287
+ - When >20 chunks match, the preview suggests higher thresholds
1288
+
1289
+ ## When to Use
1290
+
1291
+ - User asks to forget, remove, or clean up specific memory
1292
+ - User wants to delete memory about a topic ("forget everything about auth")
1293
+ - User wants to delete old memory by time range
1294
+ - User wants to delete a specific session's memory
1295
+ - Memory contains incorrect or outdated information the user wants removed
1296
+
1297
+ ## Guidelines
1298
+
1299
+ - **Always preview first** — never skip the dry-run step
1300
+ - **Always confirm** — show the user what will be deleted and wait for explicit approval
1301
+ - Semantic deletion uses vector-only search (no keyword/RRF) for precision
1302
+ - Time and session filters can be combined with semantic query for targeted deletion
1303
+ - After deletion, vectors, edges, clusters, and FTS entries are all cleaned up
1304
+ - Deletion is irreversible — emphasise this to the user before confirming
1305
+
1306
+ ## Recovery
1307
+
1308
+ If chunks are accidentally deleted, they can be recovered by re-ingesting the original session transcripts:
1309
+
1310
+ \\\`\\\`\\\`
1311
+ npx causantic batch-ingest
1312
+ \\\`\\\`\\\`
1313
+
1314
+ This re-reads session files from \`~/.claude/projects/\` and re-creates chunks, embeddings, and edges. Only missing chunks are created (existing ones are skipped via checkpoints).
1127
1315
  `,
1128
1316
  },
1129
1317
  ];
@@ -1147,20 +1335,24 @@ Long-term memory is available via the \`causantic\` MCP server.
1147
1335
  - \`/causantic-predict <context>\` — Surface relevant past context proactively for a given task
1148
1336
 
1149
1337
  **Understanding & analysis:**
1150
- - \`/causantic-explain [question]\` — Answer "why" questions about code and architecture decisions
1151
- - \`/causantic-context [area]\` — Deep dive into a codebase area's history, evolution, and constraints
1338
+ - \`/causantic-explain [question]\` — Answer "why" questions and explore codebase areas
1152
1339
  - \`/causantic-debug [error]\` — Search for prior encounters with an error (auto-extracts from conversation if no argument)
1153
1340
 
1154
1341
  **Session & project navigation:**
1155
1342
  - \`/causantic-resume\` — Resume interrupted work (start-of-session briefing)
1156
1343
  - \`/causantic-reconstruct [time range]\` — Reconstruct session context by time
1344
+ - \`/causantic-summary [time range]\` — Summarize recent work across sessions
1157
1345
  - \`/causantic-list-projects\` — Discover available projects
1346
+ - \`/causantic-status\` — Check system health and memory statistics
1158
1347
 
1159
1348
  **Cross-cutting analysis:**
1160
1349
  - \`/causantic-crossref [pattern]\` — Search across all projects for reusable patterns
1161
1350
  - \`/causantic-retro [scope]\` — Retrospective pattern analysis across sessions
1162
1351
  - \`/causantic-cleanup\` — Memory-informed codebase review and cleanup plan
1163
1352
 
1353
+ **Memory management:**
1354
+ - \`/causantic-forget [query or filters]\` — Delete memory by topic, time range, or session (always previews first)
1355
+
1164
1356
  ### Quick Decision Guide
1165
1357
 
1166
1358
  | User intent | Skill |
@@ -1169,6 +1361,7 @@ Long-term memory is available via the \`causantic\` MCP server.
1169
1361
  | "How did we solve X?" | \`recall\` |
1170
1362
  | "Why does X work this way?" | \`explain\` |
1171
1363
  | "What might be relevant?" | \`predict\` |
1364
+ | "Forget/delete memory about X" | \`forget\` |
1172
1365
 
1173
1366
  ### Proactive Memory Usage
1174
1367
 
@@ -1187,6 +1380,31 @@ Long-term memory is available via the \`causantic\` MCP server.
1187
1380
  - The user explicitly provides all needed context
1188
1381
  - First attempt at resolving a new error (try solving it first, check memory if stuck)
1189
1382
 
1383
+ ### CLI Commands
1384
+
1385
+ When the user asks to run Causantic operations from the command line:
1386
+
1387
+ \`\`\`
1388
+ npx causantic init — Setup wizard (MCP, hooks, skills, import)
1389
+ npx causantic serve — Start the MCP server
1390
+ npx causantic dashboard — Launch the web dashboard
1391
+ npx causantic batch-ingest [dir] — Ingest all sessions from a directory
1392
+ npx causantic ingest <path> — Ingest a single session or project
1393
+ npx causantic recall <query> — Query memory from the CLI
1394
+ npx causantic stats — Show memory statistics
1395
+ npx causantic health — Check system health
1396
+ npx causantic config [subcommand] — Manage configuration
1397
+ npx causantic maintenance [status|run|daemon] — Maintenance tasks
1398
+ npx causantic benchmark-collection [--quick|--standard|--full] — Run benchmarks
1399
+ npx causantic encryption [subcommand] — Manage database encryption
1400
+ npx causantic export — Export memory data
1401
+ npx causantic import <file> — Import memory data
1402
+ npx causantic hook <name> — Run a hook manually
1403
+ npx causantic uninstall — Remove Causantic and all its artifacts
1404
+ \`\`\`
1405
+
1406
+ Run \`npx causantic <command> --help\` for command-specific options.
1407
+
1190
1408
  ### Combining Memory with Other Tools
1191
1409
 
1192
1410
  Memory provides historical context, not current code state. After retrieving memory:
@@ -1 +1 @@
1
- {"version":3,"file":"skill-templates.js","sourceRoot":"","sources":["../../src/cli/skill-templates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,MAAM,CAAC,MAAM,gBAAgB,GAAoB;IAC/C;QACE,OAAO,EAAE,kBAAkB;QAC3B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCZ;KACE;IACD;QACE,OAAO,EAAE,kBAAkB;QAC3B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCZ;KACE;IACD;QACE,OAAO,EAAE,mBAAmB;QAC5B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCZ;KACE;IACD;QACE,OAAO,EAAE,mBAAmB;QAC5B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CZ;KACE;IACD;QACE,OAAO,EAAE,mBAAmB;QAC5B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCZ;KACE;IACD;QACE,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDZ;KACE;IACD;QACE,OAAO,EAAE,kBAAkB;QAC3B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDZ;KACE;IACD;QACE,OAAO,EAAE,uBAAuB;QAChC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2DZ;KACE;IACD;QACE,OAAO,EAAE,yBAAyB;QAClC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BZ;KACE;IACD;QACE,OAAO,EAAE,oBAAoB;QAC7B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCZ;KACE;IACD;QACE,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCZ;KACE;IACD;QACE,OAAO,EAAE,mBAAmB;QAC5B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAumBZ;KACE;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,eAAe,GAAG,iCAAiC,CAAC;IAC1D,MAAM,aAAa,GAAG,+BAA+B,CAAC;IAEtD,OAAO,GAAG,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2DzB,aAAa,EAAE,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"skill-templates.js","sourceRoot":"","sources":["../../src/cli/skill-templates.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,6 @@
1
1
  /**
2
2
  * Shared CLI utilities.
3
3
  */
4
- /** Magic bytes for encrypted archives */
5
- export declare const ENCRYPTED_MAGIC: Buffer<ArrayBuffer>;
6
4
  /**
7
5
  * Prompt for password with hidden input.
8
6
  * Falls back to visible input if raw mode is not available.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,yCAAyC;AACzC,eAAO,MAAM,eAAe,qBAAyB,CAAC;AAEtD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA8CpE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAcjE;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CASvF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAW3E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;;GAGG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA8CpE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAcjE;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CASvF;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAW3E"}
package/dist/cli/utils.js CHANGED
@@ -2,7 +2,7 @@
2
2
  * Shared CLI utilities.
3
3
  */
4
4
  /** Magic bytes for encrypted archives */
5
- export const ENCRYPTED_MAGIC = Buffer.from('CST\x00');
5
+ const ENCRYPTED_MAGIC = Buffer.from('CST\x00');
6
6
  /**
7
7
  * Prompt for password with hidden input.
8
8
  * Falls back to visible input if raw mode is not available.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"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"}
@@ -97,6 +97,24 @@ export interface IngestionResult {
97
97
  * Cluster assignment failures are logged but non-fatal.
98
98
  */
99
99
  export declare function ingestCurrentSession(hookName: string, sessionPath: string): Promise<IngestionResult>;
100
+ /** Result of an ingestion hook (session-end or pre-compact). */
101
+ export interface IngestionHookResult extends IngestionResult {
102
+ metrics?: HookMetrics;
103
+ degraded?: boolean;
104
+ }
105
+ /** Options for ingestion hooks (session-end or pre-compact). */
106
+ export interface IngestionHookOptions {
107
+ enableRetry?: boolean;
108
+ maxRetries?: number;
109
+ gracefulDegradation?: boolean;
110
+ project?: string;
111
+ sessionId?: string;
112
+ }
113
+ /**
114
+ * Shared handler for ingestion hooks (session-end and pre-compact).
115
+ * Wraps ingestCurrentSession with retry, fallback, and status recording.
116
+ */
117
+ export declare function handleIngestionHook(hookName: string, sessionPath: string, options?: IngestionHookOptions): Promise<IngestionHookResult>;
100
118
  /**
101
119
  * Check if an error is transient (worth retrying).
102
120
  */
@@ -1 +1 @@
1
- {"version":3,"file":"hook-utils.d.ts","sourceRoot":"","sources":["../../src/hooks/hook-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook-utils.d.ts","sourceRoot":"","sources":["../../src/hooks/hook-utils.ts"],"names":[],"mappings":"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"}
@@ -234,6 +234,47 @@ export async function ingestCurrentSession(hookName, sessionPath) {
234
234
  skipped: false,
235
235
  };
236
236
  }
237
+ /**
238
+ * Shared handler for ingestion hooks (session-end and pre-compact).
239
+ * Wraps ingestCurrentSession with retry, fallback, and status recording.
240
+ */
241
+ export async function handleIngestionHook(hookName, sessionPath, options = {}) {
242
+ const { basename } = await import('node:path');
243
+ const { recordHookStatus } = await import('./hook-status.js');
244
+ const { enableRetry = true, maxRetries = 3, gracefulDegradation = true } = options;
245
+ const fallbackResult = {
246
+ sessionId: 'unknown',
247
+ chunkCount: 0,
248
+ edgeCount: 0,
249
+ clustersAssigned: 0,
250
+ durationMs: 0,
251
+ skipped: false,
252
+ degraded: true,
253
+ };
254
+ const project = options.project ?? basename(process.cwd());
255
+ const { result, metrics } = await executeHook(hookName, async () => ingestCurrentSession(hookName, sessionPath), {
256
+ retry: enableRetry
257
+ ? {
258
+ maxRetries,
259
+ retryOn: isTransientError,
260
+ }
261
+ : undefined,
262
+ fallback: gracefulDegradation ? fallbackResult : undefined,
263
+ project,
264
+ sessionId: options.sessionId,
265
+ });
266
+ // Enrich status with ingestion details (chunks, edges)
267
+ if (!result.degraded && !result.skipped) {
268
+ recordHookStatus(hookName, {
269
+ details: { chunks: result.chunkCount, edges: result.edgeCount },
270
+ });
271
+ }
272
+ return {
273
+ ...result,
274
+ metrics,
275
+ durationMs: metrics.durationMs ?? result.durationMs,
276
+ };
277
+ }
237
278
  /**
238
279
  * Check if an error is transient (worth retrying).
239
280
  */
@@ -1 +1 @@
1
- {"version":3,"file":"hook-utils.js","sourceRoot":"","sources":["../../src/hooks/hook-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hook-utils.js","sourceRoot":"","sources":["../../src/hooks/hook-utils.ts"],"names":[],"mappings":"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"}