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.
- package/README.md +28 -18
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +22 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/skill-templates.d.ts.map +1 -1
- package/dist/cli/skill-templates.js +282 -64
- package/dist/cli/skill-templates.js.map +1 -1
- package/dist/cli/utils.d.ts +0 -2
- package/dist/cli/utils.d.ts.map +1 -1
- package/dist/cli/utils.js +1 -1
- package/dist/cli/utils.js.map +1 -1
- package/dist/hooks/hook-utils.d.ts +18 -0
- package/dist/hooks/hook-utils.d.ts.map +1 -1
- package/dist/hooks/hook-utils.js +41 -0
- package/dist/hooks/hook-utils.js.map +1 -1
- package/dist/hooks/pre-compact.d.ts +7 -42
- package/dist/hooks/pre-compact.d.ts.map +1 -1
- package/dist/hooks/pre-compact.js +3 -47
- package/dist/hooks/pre-compact.js.map +1 -1
- package/dist/hooks/session-end.d.ts +7 -42
- package/dist/hooks/session-end.d.ts.map +1 -1
- package/dist/hooks/session-end.js +3 -47
- package/dist/hooks/session-end.js.map +1 -1
- package/dist/hooks/session-start.d.ts +4 -0
- package/dist/hooks/session-start.d.ts.map +1 -1
- package/dist/hooks/session-start.js +44 -14
- package/dist/hooks/session-start.js.map +1 -1
- package/dist/mcp/tools.d.ts +8 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +247 -4
- package/dist/mcp/tools.js.map +1 -1
- package/dist/parser/chunker.d.ts +0 -4
- package/dist/parser/chunker.d.ts.map +1 -1
- package/dist/parser/chunker.js +0 -4
- package/dist/parser/chunker.js.map +1 -1
- package/dist/retrieval/chain-assembler.d.ts +8 -0
- package/dist/retrieval/chain-assembler.d.ts.map +1 -1
- package/dist/retrieval/chain-assembler.js +36 -2
- package/dist/retrieval/chain-assembler.js.map +1 -1
- package/dist/retrieval/context-assembler.d.ts +8 -0
- package/dist/retrieval/context-assembler.d.ts.map +1 -1
- package/dist/retrieval/context-assembler.js +1 -0
- package/dist/retrieval/context-assembler.js.map +1 -1
- package/dist/retrieval/search-assembler.d.ts +17 -0
- package/dist/retrieval/search-assembler.d.ts.map +1 -1
- package/dist/retrieval/search-assembler.js +26 -0
- package/dist/retrieval/search-assembler.js.map +1 -1
- package/dist/storage/chunk-store.d.ts +14 -0
- package/dist/storage/chunk-store.d.ts.map +1 -1
- package/dist/storage/chunk-store.js +23 -0
- package/dist/storage/chunk-store.js.map +1 -1
- package/dist/storage/vector-store.d.ts.map +1 -1
- package/dist/storage/vector-store.js +1 -0
- package/dist/storage/vector-store.js.map +1 -1
- package/package.json +1 -1
- package/dist/eval/benchmark-runner.d.ts +0 -15
- package/dist/eval/benchmark-runner.d.ts.map +0 -1
- package/dist/eval/benchmark-runner.js +0 -93
- package/dist/eval/benchmark-runner.js.map +0 -1
- package/dist/report/reporter.d.ts +0 -18
- package/dist/report/reporter.d.ts.map +0 -1
- package/dist/report/reporter.js +0 -119
- 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
|
|
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
|
|
140
|
+
# Explain & Explore
|
|
141
141
|
|
|
142
|
-
Answer "why" questions about code and architecture by reconstructing
|
|
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
|
|
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
|
|
155
|
-
2. **Gather
|
|
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
|
-
-
|
|
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
|
|
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. **
|
|
446
|
-
2. **
|
|
447
|
-
3. **
|
|
448
|
-
4. **
|
|
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
|
-
|
|
454
|
-
- **[Project
|
|
455
|
-
-
|
|
456
|
-
-
|
|
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
|
-
-
|
|
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
|
|
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
|
|
1
|
+
{"version":3,"file":"skill-templates.js","sourceRoot":"","sources":["../../src/cli/skill-templates.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/utils.d.ts
CHANGED
package/dist/cli/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
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
|
-
|
|
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.
|
package/dist/cli/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,yCAAyC;AACzC,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/cli/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,yCAAyC;AACzC,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAE/C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,MAAc;IACjD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAE/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,gDAAgD;QAChD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAC1E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/B,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAEvB,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;gBAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC1B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBAC7B,OAAO,CAAC,KAAK,CAAC,UAAW,CAAC,KAAK,CAAC,CAAC;oBACjC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAC7C,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACtB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU;oBAC3B,EAAE,CAAC,KAAK,EAAE,CAAC;oBACX,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACpB,CAAC;qBAAM,IAAI,CAAC,KAAK,QAAQ,EAAE,CAAC;oBAC1B,SAAS;oBACT,OAAO,CAAC,KAAK,CAAC,UAAW,CAAC,KAAK,CAAC,CAAC;oBACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;qBAAM,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;oBACxC,YAAY;oBACZ,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACnC,CAAC;qBAAM,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;oBACjC,sBAAsB;oBACtB,QAAQ,IAAI,CAAC,CAAC;gBAChB,CAAC;YACH,CAAC,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,mDAAmD;YACnD,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC7B,EAAE,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAE/C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE;YAC9B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAe,EAAE,UAAU,GAAG,KAAK;IACnE,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC5C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,GAAG,OAAO,IAAI,IAAI,GAAG,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAE/C,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;QACtB,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,KAAK,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAgB;IACvD,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACjB,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -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":"AAAA;;;;;;;;GAQG;AAIH,0BAA0B;AAC1B,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,6BAA6B;AAC7B,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,oBAAoB;AACpB,MAAM,WAAW,YAAY;IAC3B,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC;CACrC;AAED,yBAAyB;AACzB,MAAM,WAAW,UAAU;IACzB,qFAAqF;IACrF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAChD;AAQD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAEhE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,GAAG,IAAI,CAgBpE;AAsBD;;GAEG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,CAAC,CAAC,CA8CZ;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAM3D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,OAAO,EAChB,KAAK,CAAC,EAAE,KAAK,GACZ,WAAW,CAQb;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,QAAQ,CAAC,EAAE,CAAC,CAAC;IACb,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GACL,OAAO,CAAC;IAAE,MAAM,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC,CAgF9C;AAED,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,CAAC,CAgD1B;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CA6BtD"}
|
|
1
|
+
{"version":3,"file":"hook-utils.d.ts","sourceRoot":"","sources":["../../src/hooks/hook-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/hook-utils.js
CHANGED
|
@@ -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":"AAAA;;;;;;;;GAQG;AAgDH,uBAAuB;AACvB,IAAI,UAAU,GAAe;IAC3B,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,MAAM;IAC5D,QAAQ,EAAG,OAAO,CAAC,GAAG,CAAC,wBAAmD,IAAI,MAAM;CACrF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAA2B;IACxD,UAAU,GAAG,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,EAAE,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,OAAO,CAAC,KAAsC;IAC5D,IAAI,CAAC,UAAU,CAAC,aAAa;QAAE,OAAO;IAEtC,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,IAAI,MAAM,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAE/C,IAAI,UAAU,GAAG,WAAW;QAAE,OAAO;IAErC,MAAM,QAAQ,GAAiB;QAC7B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,GAAG,KAAK;KACT,CAAC;IAEF,wDAAwD;IACxD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CACvB,OAAe,EACf,cAAsB,EACtB,UAAkB,EAClB,aAAqB;IAErB,MAAM,KAAK,GAAG,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAChE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,QAAgB,EAChB,EAAoB,EACpB,UAAwB,EAAE;IAE1B,MAAM,EACJ,UAAU,GAAG,CAAC,EACd,cAAc,GAAG,IAAI,EACrB,UAAU,GAAG,KAAK,EAClB,aAAa,GAAG,CAAC,EACjB,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,GACrB,GAAG,OAAO,CAAC;IAEZ,IAAI,SAAS,GAAiB,IAAI,CAAC;IAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,gBAAgB,CAAC,OAAO,GAAG,CAAC,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;gBAEvF,OAAO,CAAC;oBACN,KAAK,EAAE,MAAM;oBACb,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,eAAe;oBACtB,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE;iBACxC,CAAC,CAAC;gBAEH,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YAED,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAEtE,OAAO,CAAC;gBACN,KAAK,EAAE,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;gBAChD,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa;gBACjE,KAAK,EAAE,SAAS,CAAC,OAAO;gBACxB,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;aACjC,CAAC,CAAC;YAEH,sCAAsC;YACtC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxB,MAAM,SAAS,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB;IAC5C,OAAO;QACL,QAAQ;QACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,UAAU,EAAE,CAAC;KACd,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAoB,EACpB,OAAgB,EAChB,KAAa;IAEb,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC;IACzD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAC1B,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;IAChC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,EAAoB,EACpB,UAOI,EAAE;IAEN,oEAAoE;IACpE,oEAAoE;IACpE,IAAI,YAAY,GAA8B,GAAG,EAAE,GAAE,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC7C,YAAY,GAAG,GAAG,CAAC,gBAAgB,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;IACzD,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAExC,OAAO,CAAC;QACN,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,cAAc;KACtB,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,IAAI,MAAS,CAAC;QAEd,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;QACtB,CAAC;QAED,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAE/B,OAAO,CAAC;YACN,KAAK,EAAE,MAAM;YACb,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,gBAAgB;YACvB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC,CAAC;QAEH,YAAY,CAAC,QAAQ,EAAE;YACrB,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACjC,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;YACnC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAErC,OAAO,CAAC;YACN,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,aAAa;YACpB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,KAAK,EAAE,GAAG,CAAC,OAAO;SACnB,CAAC,CAAC;QAEH,YAAY,CAAC,QAAQ,EAAE;YACrB,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACjC,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,CAAC;YACnC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;YAChC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,KAAK,EAAE,GAAG,CAAC,OAAO;SACnB,CAAC,CAAC;QAEH,kDAAkD;QAClD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,OAAO,CAAC;gBACN,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,gBAAgB;aACxB,CAAC,CAAC;YACH,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;QAC/C,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAYD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAgB,EAChB,WAAmB;IAEnB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAC;IACtE,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;IAC1E,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,4BAA4B,CAAC,CAAC;IAEnE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE;QACpD,YAAY,EAAE,IAAI;QAClB,iBAAiB,EAAE,IAAI;KACxB,CAAC,CAAC;IAEH,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO;YACL,SAAS,EAAE,YAAY,CAAC,SAAS;YACjC,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,CAAC;YACZ,gBAAgB,EAAE,CAAC;YACnB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YAClC,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,YAAY,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC;YAClD,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YAC9D,MAAM,YAAY,GAAG,MAAM,cAAc,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;YACzE,gBAAgB,GAAG,YAAY,CAAC,QAAQ,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC;gBACN,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,2BAA2B;gBAClC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO;QACL,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,gBAAgB;QAChB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;QAClC,OAAO,EAAE,KAAK;KACf,CAAC;AACJ,CAAC;AAiBD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAgB,EAChB,WAAmB,EACnB,UAAgC,EAAE;IAElC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/C,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAE9D,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,UAAU,GAAG,CAAC,EAAE,mBAAmB,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEnF,MAAM,cAAc,GAAwB;QAC1C,SAAS,EAAE,SAAS;QACpB,UAAU,EAAE,CAAC;QACb,SAAS,EAAE,CAAC;QACZ,gBAAgB,EAAE,CAAC;QACnB,UAAU,EAAE,CAAC;QACb,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,IAAI;KACf,CAAC;IAEF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAE3D,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,WAAW,CAC3C,QAAQ,EACR,KAAK,IAAI,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,WAAW,CAAC,EACvD;QACE,KAAK,EAAE,WAAW;YAChB,CAAC,CAAC;gBACE,UAAU;gBACV,OAAO,EAAE,gBAAgB;aAC1B;YACH,CAAC,CAAC,SAAS;QACb,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;QAC1D,OAAO;QACP,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CACF,CAAC;IAEF,uDAAuD;IACvD,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACxC,gBAAgB,CAAC,QAAQ,EAAE;YACzB,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE;SAChE,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,GAAG,MAAM;QACT,OAAO;QACP,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU;KACpD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAY;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAE5C,8BAA8B;IAC9B,IACE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;QAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC7B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC3B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8BAA8B;IAC9B,IACE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QACxB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,EAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;IAChB,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC5E,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|