squish-memory 0.8.2 → 0.9.2
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/.claude-plugin/marketplace.json +2 -2
- package/.claude-plugin/plugin.json +2 -2
- package/.env.mcp +30 -0
- package/.mcp.json +2 -5
- package/CHANGELOG.md +111 -0
- package/QUICK-START.md +65 -0
- package/README.md +188 -530
- package/commands/managed-sync.ts +69 -0
- package/commands/mcp-server.ts +519 -0
- package/config/mcp-cli-fallback-policy.json +22 -0
- package/config/mcp-migration-map.json +22 -0
- package/config/mcp-mode-semantics.json +21 -0
- package/config/mcp-remote-auth.json +36 -0
- package/config/mcp-universal.schema.json +48 -0
- package/config/mcp.json +38 -0
- package/config/remote-memory-policy.json +32 -0
- package/dist/algorithms/merge/detection/hash-filters.js +2 -2
- package/dist/algorithms/merge/detection/hash-filters.js.map +1 -1
- package/dist/algorithms/merge/detection/two-stage-detector.d.ts +5 -2
- package/dist/algorithms/merge/detection/two-stage-detector.d.ts.map +1 -1
- package/dist/algorithms/merge/detection/two-stage-detector.js +139 -22
- package/dist/algorithms/merge/detection/two-stage-detector.js.map +1 -1
- package/dist/api/web/index.d.ts +3 -0
- package/dist/api/web/index.d.ts.map +1 -0
- package/dist/api/web/index.js +4 -0
- package/dist/api/web/index.js.map +1 -0
- package/dist/api/web/web-server.d.ts +3 -0
- package/dist/api/web/web-server.d.ts.map +1 -0
- package/dist/api/web/web-server.js +6 -0
- package/dist/api/web/web-server.js.map +1 -0
- package/dist/api/web/web.d.ts.map +1 -1
- package/dist/api/web/web.js +227 -78
- package/dist/api/web/web.js.map +1 -1
- package/dist/commands/managed-sync.d.ts +10 -0
- package/dist/commands/managed-sync.d.ts.map +1 -0
- package/dist/commands/managed-sync.js +64 -0
- package/dist/commands/managed-sync.js.map +1 -0
- package/dist/commands/mcp-server.d.ts +3 -0
- package/dist/commands/mcp-server.d.ts.map +1 -0
- package/dist/commands/mcp-server.js +389 -0
- package/dist/commands/mcp-server.js.map +1 -0
- package/dist/config.d.ts +24 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +32 -1
- package/dist/config.js.map +1 -1
- package/dist/core/associations.d.ts +1 -1
- package/dist/core/associations.d.ts.map +1 -1
- package/dist/core/consolidation.d.ts +31 -0
- package/dist/core/consolidation.d.ts.map +1 -1
- package/dist/core/consolidation.js +237 -29
- package/dist/core/consolidation.js.map +1 -1
- package/dist/core/embeddings/google-multimodal.d.ts +14 -0
- package/dist/core/embeddings/google-multimodal.d.ts.map +1 -0
- package/dist/core/embeddings/google-multimodal.js +142 -0
- package/dist/core/embeddings/google-multimodal.js.map +1 -0
- package/dist/core/embeddings.d.ts +3 -2
- package/dist/core/embeddings.d.ts.map +1 -1
- package/dist/core/embeddings.js +61 -39
- package/dist/core/embeddings.js.map +1 -1
- package/dist/core/mcp/client.d.ts +17 -0
- package/dist/core/mcp/client.d.ts.map +1 -0
- package/dist/core/mcp/client.js +101 -0
- package/dist/core/mcp/client.js.map +1 -0
- package/dist/core/mcp/index.d.ts +6 -0
- package/dist/core/mcp/index.d.ts.map +1 -0
- package/dist/core/mcp/index.js +6 -0
- package/dist/core/mcp/index.js.map +1 -0
- package/dist/core/mcp/server.d.ts +18 -0
- package/dist/core/mcp/server.d.ts.map +1 -0
- package/dist/core/mcp/server.js +131 -0
- package/dist/core/mcp/server.js.map +1 -0
- package/dist/core/mcp/standalone-server.d.ts +13 -0
- package/dist/core/mcp/standalone-server.d.ts.map +1 -0
- package/dist/core/mcp/standalone-server.js +46 -0
- package/dist/core/mcp/standalone-server.js.map +1 -0
- package/dist/core/mcp/tools.d.ts +9 -0
- package/dist/core/mcp/tools.d.ts.map +1 -0
- package/dist/core/mcp/tools.js +262 -0
- package/dist/core/mcp/tools.js.map +1 -0
- package/dist/core/mcp/types.d.ts +315 -0
- package/dist/core/mcp/types.d.ts.map +1 -0
- package/dist/core/mcp/types.js +48 -0
- package/dist/core/mcp/types.js.map +1 -0
- package/dist/core/memory/categorizer.d.ts +27 -0
- package/dist/core/memory/categorizer.d.ts.map +1 -0
- package/dist/core/memory/categorizer.js +304 -0
- package/dist/core/memory/categorizer.js.map +1 -0
- package/dist/core/memory/conflict-detector.d.ts +7 -0
- package/dist/core/memory/conflict-detector.d.ts.map +1 -0
- package/dist/core/memory/conflict-detector.js +43 -0
- package/dist/core/memory/conflict-detector.js.map +1 -0
- package/dist/core/memory/context-collector.d.ts +10 -0
- package/dist/core/memory/context-collector.d.ts.map +1 -0
- package/dist/core/memory/context-collector.js +55 -0
- package/dist/core/memory/context-collector.js.map +1 -0
- package/dist/core/memory/contradiction-resolver.d.ts +40 -0
- package/dist/core/memory/contradiction-resolver.d.ts.map +1 -0
- package/dist/core/memory/contradiction-resolver.js +368 -0
- package/dist/core/memory/contradiction-resolver.js.map +1 -0
- package/dist/core/memory/edit-workflow.d.ts +19 -0
- package/dist/core/memory/edit-workflow.d.ts.map +1 -0
- package/dist/core/memory/edit-workflow.js +120 -0
- package/dist/core/memory/edit-workflow.js.map +1 -0
- package/dist/core/memory/feedback-tracker.d.ts +12 -0
- package/dist/core/memory/feedback-tracker.d.ts.map +1 -0
- package/dist/core/memory/feedback-tracker.js +151 -0
- package/dist/core/memory/feedback-tracker.js.map +1 -0
- package/dist/core/memory/hybrid-retrieval.d.ts +11 -12
- package/dist/core/memory/hybrid-retrieval.d.ts.map +1 -1
- package/dist/core/memory/hybrid-retrieval.js +56 -28
- package/dist/core/memory/hybrid-retrieval.js.map +1 -1
- package/dist/core/memory/hybrid-scorer.d.ts +5 -16
- package/dist/core/memory/hybrid-scorer.d.ts.map +1 -1
- package/dist/core/memory/hybrid-scorer.js +161 -125
- package/dist/core/memory/hybrid-scorer.js.map +1 -1
- package/dist/core/memory/hybrid-search.js +64 -22
- package/dist/core/memory/hybrid-search.js.map +1 -1
- package/dist/core/memory/memories.d.ts +4 -0
- package/dist/core/memory/memories.d.ts.map +1 -1
- package/dist/core/memory/memories.js +138 -60
- package/dist/core/memory/memories.js.map +1 -1
- package/dist/core/memory/progressive-disclosure.d.ts +43 -0
- package/dist/core/memory/progressive-disclosure.d.ts.map +1 -0
- package/dist/core/memory/progressive-disclosure.js +280 -0
- package/dist/core/memory/progressive-disclosure.js.map +1 -0
- package/dist/core/memory/query-rewriter.d.ts +13 -0
- package/dist/core/memory/query-rewriter.d.ts.map +1 -0
- package/dist/core/memory/query-rewriter.js +118 -0
- package/dist/core/memory/query-rewriter.js.map +1 -0
- package/dist/core/memory/response-analyzer.d.ts +9 -0
- package/dist/core/memory/response-analyzer.d.ts.map +1 -0
- package/dist/core/memory/response-analyzer.js +61 -0
- package/dist/core/memory/response-analyzer.js.map +1 -0
- package/dist/core/memory/stats.d.ts +17 -0
- package/dist/core/memory/stats.d.ts.map +1 -0
- package/dist/core/memory/stats.js +87 -0
- package/dist/core/memory/stats.js.map +1 -0
- package/dist/core/memory/telemetry.d.ts +69 -0
- package/dist/core/memory/telemetry.d.ts.map +1 -0
- package/dist/core/memory/telemetry.js +313 -0
- package/dist/core/memory/telemetry.js.map +1 -0
- package/dist/core/memory/temporal-facts.d.ts +41 -0
- package/dist/core/memory/temporal-facts.d.ts.map +1 -0
- package/dist/core/memory/temporal-facts.js +262 -0
- package/dist/core/memory/temporal-facts.js.map +1 -0
- package/dist/core/memory/trigger-detector.d.ts +14 -0
- package/dist/core/memory/trigger-detector.d.ts.map +1 -0
- package/dist/core/memory/trigger-detector.js +42 -0
- package/dist/core/memory/trigger-detector.js.map +1 -0
- package/dist/core/memory/write-gate.d.ts +54 -0
- package/dist/core/memory/write-gate.d.ts.map +1 -0
- package/dist/core/memory/write-gate.js +210 -0
- package/dist/core/memory/write-gate.js.map +1 -0
- package/dist/core/observations.d.ts.map +1 -1
- package/dist/core/observations.js +1 -0
- package/dist/core/observations.js.map +1 -1
- package/dist/core/projects.d.ts +2 -0
- package/dist/core/projects.d.ts.map +1 -1
- package/dist/core/projects.js +33 -0
- package/dist/core/projects.js.map +1 -1
- package/dist/core/scheduler/cron-scheduler.d.ts +32 -0
- package/dist/core/scheduler/cron-scheduler.d.ts.map +1 -0
- package/dist/core/scheduler/cron-scheduler.js +238 -0
- package/dist/core/scheduler/cron-scheduler.js.map +1 -0
- package/dist/core/scheduler/heartbeat.d.ts +11 -0
- package/dist/core/scheduler/heartbeat.d.ts.map +1 -0
- package/dist/core/scheduler/heartbeat.js +73 -0
- package/dist/core/scheduler/heartbeat.js.map +1 -0
- package/dist/core/scheduler/index.d.ts +8 -0
- package/dist/core/scheduler/index.d.ts.map +1 -0
- package/dist/core/scheduler/index.js +8 -0
- package/dist/core/scheduler/index.js.map +1 -0
- package/dist/core/scheduler/job-runner.d.ts +11 -0
- package/dist/core/scheduler/job-runner.d.ts.map +1 -0
- package/dist/core/scheduler/job-runner.js +161 -0
- package/dist/core/scheduler/job-runner.js.map +1 -0
- package/dist/core/session/auto-load.d.ts +6 -0
- package/dist/core/session/auto-load.d.ts.map +1 -0
- package/dist/core/session/auto-load.js +119 -0
- package/dist/core/session/auto-load.js.map +1 -0
- package/dist/core/session/index.d.ts +7 -0
- package/dist/core/session/index.d.ts.map +1 -0
- package/dist/core/session/index.js +7 -0
- package/dist/core/session/index.js.map +1 -0
- package/dist/core/session/types.d.ts +26 -0
- package/dist/core/session/types.d.ts.map +1 -0
- package/dist/core/session/types.js +10 -0
- package/dist/core/session/types.js.map +1 -0
- package/dist/core/snapshots/comparison.d.ts.map +1 -1
- package/dist/core/snapshots/comparison.js +8 -2
- package/dist/core/snapshots/comparison.js.map +1 -1
- package/dist/core/utils/content-extraction.d.ts.map +1 -1
- package/dist/core/utils/content-extraction.js +11 -1
- package/dist/core/utils/content-extraction.js.map +1 -1
- package/dist/core/utils/memory-operations.d.ts.map +1 -1
- package/dist/core/utils/memory-operations.js +3 -1
- package/dist/core/utils/memory-operations.js.map +1 -1
- package/dist/core/utils/summarization-helpers.d.ts.map +1 -1
- package/dist/core/utils/summarization-helpers.js +4 -1
- package/dist/core/utils/summarization-helpers.js.map +1 -1
- package/dist/core/utils.d.ts.map +1 -1
- package/dist/core/utils.js +26 -3
- package/dist/core/utils.js.map +1 -1
- package/dist/core/worker.d.ts +20 -0
- package/dist/core/worker.d.ts.map +1 -1
- package/dist/core/worker.js +86 -0
- package/dist/core/worker.js.map +1 -1
- package/dist/db/adapter.d.ts +1 -5
- package/dist/db/adapter.d.ts.map +1 -1
- package/dist/db/adapter.js +137 -12
- package/dist/db/adapter.js.map +1 -1
- package/dist/db/bootstrap.d.ts.map +1 -1
- package/dist/db/bootstrap.js +178 -3
- package/dist/db/bootstrap.js.map +1 -1
- package/dist/db/index.d.ts +1 -5
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +7 -4
- package/dist/db/index.js.map +1 -1
- package/dist/drizzle/schema-sqlite.d.ts +1953 -612
- package/dist/drizzle/schema-sqlite.d.ts.map +1 -1
- package/dist/drizzle/schema-sqlite.js +134 -0
- package/dist/drizzle/schema-sqlite.js.map +1 -1
- package/dist/drizzle/schema.d.ts +684 -3
- package/dist/drizzle/schema.d.ts.map +1 -1
- package/dist/drizzle/schema.js +81 -1
- package/dist/drizzle/schema.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +152 -13
- package/dist/index.js.map +1 -1
- package/package.json +126 -103
- package/scripts/build-release.sh +33 -0
- package/scripts/db/check-db.mjs +88 -0
- package/scripts/db/fix-all-columns.mjs +52 -0
- package/scripts/db/fix-schema-all.mjs +55 -0
- package/scripts/db/fix-schema-full.mjs +46 -0
- package/scripts/db/fix-schema.mjs +38 -0
- package/scripts/db/init-db.mjs +13 -0
- package/scripts/db/recreate-db.mjs +14 -0
- package/scripts/generate-mcp.mjs +264 -0
- package/scripts/github-release.sh +61 -0
- package/scripts/init-dirs.mjs +13 -0
- package/scripts/init-dirs.ts +15 -0
- package/scripts/install-mcp.mjs +116 -0
- package/scripts/install-web.sh +120 -0
- package/scripts/install.mjs +340 -0
- package/scripts/openclaw-bootstrap.mjs +127 -0
- package/scripts/package-release.sh +71 -0
- package/scripts/remote-preflight.mjs +62 -0
- package/scripts/squish-fallback.mjs +132 -0
- package/scripts/test/test-all-systems.mjs +139 -0
- package/scripts/test/test-memory-system.mjs +139 -0
- package/scripts/test/test-v0.5.0.mjs +210 -0
- package/scripts/verify-mcp.mjs +214 -0
- package/skills/memory-guide/SKILL.md +181 -123
- package/skills/squish-cli/SKILL.md +200 -0
- package/skills/squish-mcp/SKILL.md +311 -0
- package/skills/squish-memory/SKILL.md +100 -62
- package/skills/squish-memory/claude-desktop.json +12 -0
- package/skills/squish-memory/install.mjs +335 -0
- package/skills/squish-memory/install.sh +94 -62
- package/skills/squish-memory/openclaw.json +13 -0
- package/skills/squish-memory/opencode.json +14 -0
- package/skills/squish-memory/skill.json +32 -0
- package/dist/adapters/claude-code/capture.d.ts +0 -11
- package/dist/adapters/claude-code/capture.d.ts.map +0 -1
- package/dist/adapters/claude-code/capture.js +0 -100
- package/dist/adapters/claude-code/capture.js.map +0 -1
- package/dist/adapters/claude-code/index.d.ts +0 -5
- package/dist/adapters/claude-code/index.d.ts.map +0 -1
- package/dist/adapters/claude-code/index.js +0 -6
- package/dist/adapters/claude-code/index.js.map +0 -1
- package/dist/adapters/claude-code/injection.d.ts +0 -34
- package/dist/adapters/claude-code/injection.d.ts.map +0 -1
- package/dist/adapters/claude-code/injection.js +0 -127
- package/dist/adapters/claude-code/injection.js.map +0 -1
- package/dist/adapters/claude-code/plugin-wrapper.d.ts +0 -21
- package/dist/adapters/claude-code/plugin-wrapper.d.ts.map +0 -1
- package/dist/adapters/claude-code/plugin-wrapper.js +0 -239
- package/dist/adapters/claude-code/plugin-wrapper.js.map +0 -1
- package/dist/adapters/claude-code/types.d.ts +0 -46
- package/dist/adapters/claude-code/types.d.ts.map +0 -1
- package/dist/adapters/claude-code/types.js +0 -6
- package/dist/adapters/claude-code/types.js.map +0 -1
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Auto-Capture System
|
|
3
|
-
* Captures tool usage and user prompts as observations
|
|
4
|
-
*/
|
|
5
|
-
import { createObservation, getObservationById, getRecentObservations } from '../../core/observations.js';
|
|
6
|
-
import { shouldStore, stripPrivateTags } from '../../core/privacy.js';
|
|
7
|
-
import { summarizeSession } from '../../core/summarization.js';
|
|
8
|
-
import { trackCoactivation } from '../../core/associations.js';
|
|
9
|
-
import { config } from '../../config.js';
|
|
10
|
-
import { logger } from '../../core/logger.js';
|
|
11
|
-
function truncate(text, maxLength) {
|
|
12
|
-
return text.length > maxLength ? text.substring(0, maxLength) + '...' : text;
|
|
13
|
-
}
|
|
14
|
-
function createObservationResult(id, type, action, target, summary, projectPath, details) {
|
|
15
|
-
return { id, type, action, target, summary, timestamp: new Date(), projectPath, details };
|
|
16
|
-
}
|
|
17
|
-
async function captureObservation(projectPath, type, action, target, summary, details, context) {
|
|
18
|
-
if (!(await shouldStore(summary, projectPath))) {
|
|
19
|
-
logger.info(`${type} blocked by privacy filter`);
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
22
|
-
const observation = await createObservation({
|
|
23
|
-
type: type === 'user_prompt' ? 'insight' : type,
|
|
24
|
-
action,
|
|
25
|
-
target,
|
|
26
|
-
summary,
|
|
27
|
-
details: { ...details, timestamp: new Date().toISOString() },
|
|
28
|
-
session: context.sessionId,
|
|
29
|
-
project: projectPath
|
|
30
|
-
});
|
|
31
|
-
logger.debug(`Captured ${type}: ${observation.id}`);
|
|
32
|
-
return createObservationResult(observation.id, type, action, target, summary, projectPath, details);
|
|
33
|
-
}
|
|
34
|
-
export async function captureUserPrompt(projectPath, prompt, context) {
|
|
35
|
-
const cleanPrompt = stripPrivateTags(prompt);
|
|
36
|
-
const summary = truncate(cleanPrompt, 500);
|
|
37
|
-
return captureObservation(projectPath, 'user_prompt', 'user_submitted_prompt', projectPath, summary, { fullPrompt: cleanPrompt, length: cleanPrompt.length, tags: ['auto-captured', 'user-prompt'] }, context);
|
|
38
|
-
}
|
|
39
|
-
export async function captureToolUse(projectPath, toolName, toolArgs, toolResult, context) {
|
|
40
|
-
const argsSummary = toolArgs ? truncate(JSON.stringify(toolArgs), 200) : 'none';
|
|
41
|
-
let resultSummary;
|
|
42
|
-
if (typeof toolResult === 'string') {
|
|
43
|
-
resultSummary = truncate(toolResult, 200);
|
|
44
|
-
}
|
|
45
|
-
else if (toolResult) {
|
|
46
|
-
resultSummary = truncate(JSON.stringify(toolResult), 200);
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
resultSummary = 'no result';
|
|
50
|
-
}
|
|
51
|
-
const summary = `Tool ${toolName} executed with args: ${argsSummary}`;
|
|
52
|
-
const observation = await captureObservation(projectPath, 'tool_use', toolName, projectPath, summary, { toolName, arguments: toolArgs, result: toolResult, tags: ['auto-captured', 'tool-use', toolName] }, context);
|
|
53
|
-
if (observation) {
|
|
54
|
-
try {
|
|
55
|
-
const recentObservations = await getRecentObservations(projectPath, 5);
|
|
56
|
-
if (recentObservations.length > 1) {
|
|
57
|
-
const observationIds = recentObservations.map(o => o.id);
|
|
58
|
-
await trackCoactivation(observationIds);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
catch (error) {
|
|
62
|
-
logger.error('Failed to track co-activation', error);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return observation;
|
|
66
|
-
}
|
|
67
|
-
export async function queueForSummarization(observationId, projectPath = '') {
|
|
68
|
-
try {
|
|
69
|
-
if (!config.summarizationEnabled) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
const observation = await getObservationById(observationId);
|
|
73
|
-
if (!observation || !observation.conversationId) {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
try {
|
|
77
|
-
const recentObservations = await getRecentObservations(projectPath, 100);
|
|
78
|
-
const messageCount = recentObservations.length;
|
|
79
|
-
if (messageCount > 0 && messageCount % config.incrementalThreshold === 0) {
|
|
80
|
-
await summarizeSession(observation.conversationId, 'incremental');
|
|
81
|
-
logger.info(`Session summarized (incremental) after ${messageCount} observations`);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
catch (error) {
|
|
85
|
-
logger.error('Failed to queue summarization', error);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
catch (error) {
|
|
89
|
-
logger.error('Error in queueForSummarization', error);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
export async function captureFileChange(projectPath, filePath, changeType, context) {
|
|
93
|
-
const summary = `File ${changeType}: ${filePath}`;
|
|
94
|
-
return captureObservation(projectPath, 'file_change', changeType, filePath, summary, { filePath, changeType, tags: ['auto-captured', 'file-change', changeType] }, context);
|
|
95
|
-
}
|
|
96
|
-
export async function captureError(projectPath, error, errorContext, pluginContext) {
|
|
97
|
-
const summary = `Error in ${errorContext}: ${error.message}`;
|
|
98
|
-
return captureObservation(projectPath, 'error', 'error_occurred', errorContext, summary, { errorMessage: error.message, errorStack: error.stack, context: errorContext, tags: ['auto-captured', 'error'] }, pluginContext);
|
|
99
|
-
}
|
|
100
|
-
//# sourceMappingURL=capture.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../../adapters/claude-code/capture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../adapters/claude-code/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../adapters/claude-code/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Auto-Context Injection System
|
|
3
|
-
* Injects relevant context into sessions
|
|
4
|
-
*/
|
|
5
|
-
import type { PluginContext } from './types.js';
|
|
6
|
-
export interface InjectionBudget {
|
|
7
|
-
maxItems: number;
|
|
8
|
-
maxTokens: number;
|
|
9
|
-
relevanceThreshold: number;
|
|
10
|
-
maxAge: number;
|
|
11
|
-
}
|
|
12
|
-
interface ContextItem {
|
|
13
|
-
id: string;
|
|
14
|
-
content: string;
|
|
15
|
-
score: number;
|
|
16
|
-
}
|
|
17
|
-
export interface SelectedContext {
|
|
18
|
-
memories: ContextItem[];
|
|
19
|
-
conversations: ContextItem[];
|
|
20
|
-
totalItems: number;
|
|
21
|
-
estimatedTokens: number;
|
|
22
|
-
injectionText: string;
|
|
23
|
-
}
|
|
24
|
-
export declare function injectContextIntoSession(context: PluginContext, projectPath: string): Promise<void>;
|
|
25
|
-
export declare function selectContextToInject(projectPath: string, budget: InjectionBudget): Promise<SelectedContext>;
|
|
26
|
-
export declare function applyAgeDecay(score: number, createdAt: Date, halfLife?: number): number;
|
|
27
|
-
export declare function rankByRelevance<T extends {
|
|
28
|
-
score: number;
|
|
29
|
-
createdAt?: Date;
|
|
30
|
-
}>(items: T[]): Array<T & {
|
|
31
|
-
rankedScore: number;
|
|
32
|
-
}>;
|
|
33
|
-
export {};
|
|
34
|
-
//# sourceMappingURL=injection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"injection.d.ts","sourceRoot":"","sources":["../../../adapters/claude-code/injection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAOhD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,EAAE,WAAW,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB;AA4BD,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,eAAe,CAAC,CA+D1B;AAED,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,IAAI,EACf,QAAQ,SAA2B,GAClC,MAAM,CAGR;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,IAAI,CAAA;CAAE,EAC3E,KAAK,EAAE,CAAC,EAAE,GACT,KAAK,CAAC,CAAC,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAOpC"}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Auto-Context Injection System
|
|
3
|
-
* Injects relevant context into sessions
|
|
4
|
-
*/
|
|
5
|
-
import { searchMemories } from '../../core/memory/memories.js';
|
|
6
|
-
import { searchConversations } from '../../core/search/conversations.js';
|
|
7
|
-
import { logger } from '../../core/logger.js';
|
|
8
|
-
import { formatCoreMemoryForInjection } from '../../core/core-memory.js';
|
|
9
|
-
import { ensureProject } from '../../core/projects.js';
|
|
10
|
-
function estimateTokens(text) {
|
|
11
|
-
return Math.ceil(text.split(/\s+/).length * 1.3);
|
|
12
|
-
}
|
|
13
|
-
function truncateContent(content, maxLength = 100) {
|
|
14
|
-
return content.substring(0, maxLength).replace(/\n/g, ' ') + '...';
|
|
15
|
-
}
|
|
16
|
-
function formatInjectionText(memories, conversations) {
|
|
17
|
-
if (memories.length === 0 && conversations.length === 0)
|
|
18
|
-
return '';
|
|
19
|
-
const parts = [];
|
|
20
|
-
if (memories.length > 0) {
|
|
21
|
-
parts.push('## Recent Memory Context');
|
|
22
|
-
parts.push(...memories.map(m => `- ${truncateContent(m.content)}`));
|
|
23
|
-
}
|
|
24
|
-
if (conversations.length > 0) {
|
|
25
|
-
parts.push('\n## Recent Conversation Context');
|
|
26
|
-
parts.push(...conversations.map(c => `- ${truncateContent(c.content)}`));
|
|
27
|
-
}
|
|
28
|
-
return `\n<squish-context>\n${parts.join('\n')}\n</squish-context>\n`;
|
|
29
|
-
}
|
|
30
|
-
export async function injectContextIntoSession(context, projectPath) {
|
|
31
|
-
const budget = {
|
|
32
|
-
maxItems: context.config?.maxContextItems || 15,
|
|
33
|
-
maxTokens: context.config?.maxContextTokens || 3000,
|
|
34
|
-
relevanceThreshold: 0.5,
|
|
35
|
-
maxAge: 30 * 24 * 60 * 60 * 1000
|
|
36
|
-
};
|
|
37
|
-
// Inject core memory (always-in-context) first
|
|
38
|
-
try {
|
|
39
|
-
const project = await ensureProject(projectPath);
|
|
40
|
-
if (project?.id) {
|
|
41
|
-
const coreMemoryText = await formatCoreMemoryForInjection(project.id);
|
|
42
|
-
if (coreMemoryText) {
|
|
43
|
-
// Core memory is automatically available - Claude sees it
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
catch (error) {
|
|
48
|
-
logger.error('Failed to inject core memory:', error);
|
|
49
|
-
}
|
|
50
|
-
const selectedContext = await selectContextToInject(projectPath, budget);
|
|
51
|
-
if (selectedContext.totalItems > 0) {
|
|
52
|
-
logger.info(`Injected ${selectedContext.totalItems} items (${selectedContext.estimatedTokens} tokens)`);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
logger.info('No relevant context to inject');
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
export async function selectContextToInject(projectPath, budget) {
|
|
59
|
-
const memories = [];
|
|
60
|
-
const conversations = [];
|
|
61
|
-
let totalTokens = 0;
|
|
62
|
-
let totalItems = 0;
|
|
63
|
-
const memoriesResult = await searchMemories({
|
|
64
|
-
query: projectPath,
|
|
65
|
-
limit: Math.min(budget.maxItems, 10),
|
|
66
|
-
project: projectPath
|
|
67
|
-
}).catch(() => []);
|
|
68
|
-
for (const memory of memoriesResult || []) {
|
|
69
|
-
if (totalItems >= budget.maxItems || totalTokens >= budget.maxTokens)
|
|
70
|
-
break;
|
|
71
|
-
const m = memory;
|
|
72
|
-
const content = m?.content || '';
|
|
73
|
-
const tokens = estimateTokens(content);
|
|
74
|
-
if (totalTokens + tokens <= budget.maxTokens) {
|
|
75
|
-
memories.push({
|
|
76
|
-
id: m?.id || '',
|
|
77
|
-
content,
|
|
78
|
-
score: m?.relevanceScore || 0.5
|
|
79
|
-
});
|
|
80
|
-
totalTokens += tokens;
|
|
81
|
-
totalItems++;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
const remainingItems = budget.maxItems - totalItems;
|
|
85
|
-
if (remainingItems > 0) {
|
|
86
|
-
const conversationsResult = await searchConversations({
|
|
87
|
-
query: projectPath,
|
|
88
|
-
limit: Math.min(remainingItems, 5)
|
|
89
|
-
}).catch(() => []);
|
|
90
|
-
for (const conversation of conversationsResult || []) {
|
|
91
|
-
if (totalItems >= budget.maxItems || totalTokens >= budget.maxTokens)
|
|
92
|
-
break;
|
|
93
|
-
const c = conversation;
|
|
94
|
-
const content = typeof c === 'string' ? c : '';
|
|
95
|
-
const tokens = estimateTokens(content);
|
|
96
|
-
if (totalTokens + tokens <= budget.maxTokens) {
|
|
97
|
-
conversations.push({
|
|
98
|
-
id: c?.id || '',
|
|
99
|
-
content,
|
|
100
|
-
score: 0.5
|
|
101
|
-
});
|
|
102
|
-
totalTokens += tokens;
|
|
103
|
-
totalItems++;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
return {
|
|
108
|
-
memories,
|
|
109
|
-
conversations,
|
|
110
|
-
totalItems,
|
|
111
|
-
estimatedTokens: totalTokens,
|
|
112
|
-
injectionText: formatInjectionText(memories, conversations)
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
export function applyAgeDecay(score, createdAt, halfLife = 30 * 24 * 60 * 60 * 1000) {
|
|
116
|
-
const ageMs = Date.now() - createdAt.getTime();
|
|
117
|
-
return score * Math.pow(0.5, ageMs / halfLife);
|
|
118
|
-
}
|
|
119
|
-
export function rankByRelevance(items) {
|
|
120
|
-
return items
|
|
121
|
-
.map(item => ({
|
|
122
|
-
...item,
|
|
123
|
-
rankedScore: item.createdAt ? applyAgeDecay(item.score, item.createdAt) : item.score
|
|
124
|
-
}))
|
|
125
|
-
.sort((a, b) => b.rankedScore - a.rankedScore);
|
|
126
|
-
}
|
|
127
|
-
//# sourceMappingURL=injection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"injection.js","sourceRoot":"","sources":["../../../adapters/claude-code/injection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAuBvD,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,eAAe,CAAC,OAAe,EAAE,SAAS,GAAG,GAAG;IACvD,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AACrE,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAuB,EAAE,aAA4B;IAChF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEnE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED,OAAO,uBAAuB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,OAAsB,EACtB,WAAmB;IAEnB,MAAM,MAAM,GAAoB;QAC9B,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,eAAe,IAAI,EAAE;QAC/C,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,gBAAgB,IAAI,IAAI;QACnD,kBAAkB,EAAE,GAAG;QACvB,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;KACjC,CAAC;IAEF,+CAA+C;IAC/C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,OAAO,EAAE,EAAE,EAAE,CAAC;YAChB,MAAM,cAAc,GAAG,MAAM,4BAA4B,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtE,IAAI,cAAc,EAAE,CAAC;gBACnB,0DAA0D;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,qBAAqB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAEzE,IAAI,eAAe,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,YAAY,eAAe,CAAC,UAAU,WAAW,eAAe,CAAC,eAAe,UAAU,CAAC,CAAC;IAC1G,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAAmB,EACnB,MAAuB;IAEvB,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,aAAa,GAAkB,EAAE,CAAC;IACxC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,MAAM,cAAc,GAAG,MAAM,cAAc,CAAC;QAC1C,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QACpC,OAAO,EAAE,WAAW;KACrB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAEnB,KAAK,MAAM,MAAM,IAAI,cAAc,IAAI,EAAE,EAAE,CAAC;QAC1C,IAAI,UAAU,IAAI,MAAM,CAAC,QAAQ,IAAI,WAAW,IAAI,MAAM,CAAC,SAAS;YAAE,MAAM;QAE5E,MAAM,CAAC,GAAG,MAAa,CAAC;QACxB,MAAM,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAEvC,IAAI,WAAW,GAAG,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YAC7C,QAAQ,CAAC,IAAI,CAAC;gBACZ,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE;gBACf,OAAO;gBACP,KAAK,EAAE,CAAC,EAAE,cAAc,IAAI,GAAG;aAChC,CAAC,CAAC;YACH,WAAW,IAAI,MAAM,CAAC;YACtB,UAAU,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC;IACpD,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,mBAAmB,GAAG,MAAM,mBAAmB,CAAC;YACpD,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;SACnC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAEnB,KAAK,MAAM,YAAY,IAAI,mBAAmB,IAAI,EAAE,EAAE,CAAC;YACrD,IAAI,UAAU,IAAI,MAAM,CAAC,QAAQ,IAAI,WAAW,IAAI,MAAM,CAAC,SAAS;gBAAE,MAAM;YAE5E,MAAM,CAAC,GAAG,YAAmB,CAAC;YAC9B,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YAEvC,IAAI,WAAW,GAAG,MAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC7C,aAAa,CAAC,IAAI,CAAC;oBACjB,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE;oBACf,OAAO;oBACP,KAAK,EAAE,GAAG;iBACX,CAAC,CAAC;gBACH,WAAW,IAAI,MAAM,CAAC;gBACtB,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ;QACR,aAAa;QACb,UAAU;QACV,eAAe,EAAE,WAAW;QAC5B,aAAa,EAAE,mBAAmB,CAAC,QAAQ,EAAE,aAAa,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,KAAa,EACb,SAAe,EACf,QAAQ,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;IAC/C,OAAO,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,QAAQ,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAU;IAEV,OAAO,KAAK;SACT,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,GAAG,IAAI;QACP,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK;KACrF,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Squish Plugin Wrapper - Hook handlers for Claude Code integration
|
|
3
|
-
*/
|
|
4
|
-
import 'dotenv/config';
|
|
5
|
-
import type { PluginContext } from './types.js';
|
|
6
|
-
export declare function onInstall(_context: PluginContext): Promise<void>;
|
|
7
|
-
export declare function onSessionStart(context: PluginContext): Promise<string>;
|
|
8
|
-
export declare function onUserPromptSubmit(context: PluginContext): Promise<string>;
|
|
9
|
-
export declare function onPostToolUse(context: PluginContext): Promise<void>;
|
|
10
|
-
export declare function onSessionStop(context: PluginContext): Promise<void>;
|
|
11
|
-
export declare function onUpdate(context: PluginContext): Promise<string>;
|
|
12
|
-
declare const _default: {
|
|
13
|
-
onInstall: typeof onInstall;
|
|
14
|
-
onUpdate: typeof onUpdate;
|
|
15
|
-
onSessionStart: typeof onSessionStart;
|
|
16
|
-
onUserPromptSubmit: typeof onUserPromptSubmit;
|
|
17
|
-
onPostToolUse: typeof onPostToolUse;
|
|
18
|
-
onSessionStop: typeof onSessionStop;
|
|
19
|
-
};
|
|
20
|
-
export default _default;
|
|
21
|
-
//# sourceMappingURL=plugin-wrapper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-wrapper.d.ts","sourceRoot":"","sources":["../../../adapters/claude-code/plugin-wrapper.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA+GhD,wBAAsB,SAAS,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CActE;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAuD5E;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CA8ChF;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAczE;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA2BzE;AAID,wBAAsB,QAAQ,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAMtE;;;;;;;;;AAED,wBAOE"}
|
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Squish Plugin Wrapper - Hook handlers for Claude Code integration
|
|
3
|
-
*/
|
|
4
|
-
import 'dotenv/config';
|
|
5
|
-
import { captureUserPrompt, captureToolUse, queueForSummarization } from './capture.js';
|
|
6
|
-
import { injectContextIntoSession } from './injection.js';
|
|
7
|
-
import { generateAndInjectFolderContext } from '../../core/search/folder-context.js';
|
|
8
|
-
import { getDb } from '../../db/index.js';
|
|
9
|
-
import { startWorker, forceLifecycleMaintenance } from '../../core/worker.js';
|
|
10
|
-
import { getPinnedMemories } from '../../core/governance.js';
|
|
11
|
-
import { summarizeSession } from '../../core/summarization.js';
|
|
12
|
-
import { config } from '../../config.js';
|
|
13
|
-
import { logger } from '../../core/logger.js';
|
|
14
|
-
import { initializeCoreMemory, formatCoreMemoryForInjection } from '../../core/core-memory.js';
|
|
15
|
-
import { initializeContextSession } from '../../core/context-paging.js';
|
|
16
|
-
import { ensureProject } from '../../core/projects.js';
|
|
17
|
-
import { hybridSearch } from '../../core/memory/hybrid-retrieval.js';
|
|
18
|
-
function getProjectPath(context) {
|
|
19
|
-
return context.workingDirectory || process.cwd();
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Helper to log errors without breaking execution
|
|
23
|
-
*/
|
|
24
|
-
function logError(message, error) {
|
|
25
|
-
logger.error(message, error);
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Hybrid search configuration for smart context retrieval
|
|
29
|
-
*/
|
|
30
|
-
const SMART_SEARCH_CONFIG = {
|
|
31
|
-
candidateLimit: 50,
|
|
32
|
-
resultLimit: 3,
|
|
33
|
-
hybridOptions: {
|
|
34
|
-
weights: {
|
|
35
|
-
semantic: 0.35,
|
|
36
|
-
recency: 0.25,
|
|
37
|
-
coactivation: 0.20,
|
|
38
|
-
importance: 0.20,
|
|
39
|
-
},
|
|
40
|
-
decayDays: 7,
|
|
41
|
-
},
|
|
42
|
-
};
|
|
43
|
-
function isAutoCapture(context) {
|
|
44
|
-
return context.config?.autoCapture !== false;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Detect if user message looks like it's asking a question or seeking information
|
|
48
|
-
*/
|
|
49
|
-
function shouldSmartSearch(userMessage) {
|
|
50
|
-
if (!userMessage || userMessage.length < 3)
|
|
51
|
-
return false;
|
|
52
|
-
// Question detection: explicit question mark or question keywords
|
|
53
|
-
const isExplicitQuestion = userMessage.includes('?');
|
|
54
|
-
const questionKeywords = [
|
|
55
|
-
'what ', 'where ', 'when ', 'how ', 'why ',
|
|
56
|
-
'remember', 'recall', 'tell me', 'explain', 'show me',
|
|
57
|
-
'find ', 'search ', 'look for', 'do you know'
|
|
58
|
-
];
|
|
59
|
-
const isQuestionLike = questionKeywords.some(kw => userMessage.toLowerCase().includes(kw));
|
|
60
|
-
// Context clue detection: user is trying to solve a problem or understand code
|
|
61
|
-
const contextKeywords = [
|
|
62
|
-
'debug', 'error', 'issue', 'problem', 'fix ',
|
|
63
|
-
'broken', 'not working', 'why is', 'what went',
|
|
64
|
-
'help', 'stuck', 'confused', 'doesn\'t work'
|
|
65
|
-
];
|
|
66
|
-
const hasContextClue = contextKeywords.some(kw => userMessage.toLowerCase().includes(kw));
|
|
67
|
-
return isExplicitQuestion || isQuestionLike || hasContextClue;
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Format memory search results for injection
|
|
71
|
-
*/
|
|
72
|
-
function formatMemoriesForInjection(memories) {
|
|
73
|
-
if (memories.length === 0)
|
|
74
|
-
return '';
|
|
75
|
-
const MAX_CONTENT_LENGTH = 150;
|
|
76
|
-
const parts = ['## Relevant Memory\n'];
|
|
77
|
-
memories.slice(0, 3).forEach((memory, index) => {
|
|
78
|
-
const content = memory.content || '';
|
|
79
|
-
const type = memory.type || 'memory';
|
|
80
|
-
const truncated = content.length > MAX_CONTENT_LENGTH
|
|
81
|
-
? content.substring(0, MAX_CONTENT_LENGTH) + '...'
|
|
82
|
-
: content;
|
|
83
|
-
parts.push(`${index + 1}. [${type}] ${truncated.replace(/\n/g, ' ')}`);
|
|
84
|
-
});
|
|
85
|
-
return parts.join('\n');
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Wrap async function with timeout
|
|
89
|
-
*/
|
|
90
|
-
async function withTimeout(promise, timeoutMs, defaultValue) {
|
|
91
|
-
return Promise.race([
|
|
92
|
-
promise,
|
|
93
|
-
new Promise((resolve) => setTimeout(() => resolve(defaultValue), timeoutMs))
|
|
94
|
-
]);
|
|
95
|
-
}
|
|
96
|
-
export async function onInstall(_context) {
|
|
97
|
-
logger.info('Installation hook triggered');
|
|
98
|
-
await getDb();
|
|
99
|
-
try {
|
|
100
|
-
if (config.lifecycleEnabled || config.summarizationEnabled) {
|
|
101
|
-
await startWorker();
|
|
102
|
-
logger.info('Background worker initialized');
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
catch (error) {
|
|
106
|
-
logger.error('Failed to start background worker', error);
|
|
107
|
-
}
|
|
108
|
-
logger.info('Squish v0.6.0 ready');
|
|
109
|
-
}
|
|
110
|
-
export async function onSessionStart(context) {
|
|
111
|
-
const projectPath = getProjectPath(context);
|
|
112
|
-
logger.info(`Session started in ${projectPath}`);
|
|
113
|
-
let coreMemoryText = '';
|
|
114
|
-
// Initialize core memory and context session for this project
|
|
115
|
-
try {
|
|
116
|
-
const project = await ensureProject(projectPath);
|
|
117
|
-
if (project?.id) {
|
|
118
|
-
// Initialize core memory (creates sections if they don't exist)
|
|
119
|
-
await initializeCoreMemory(project.id);
|
|
120
|
-
// NEW: Retrieve and format core memory for injection
|
|
121
|
-
coreMemoryText = await withTimeout(formatCoreMemoryForInjection(project.id), 2000, 'Core memory loading timed out');
|
|
122
|
-
// Initialize context session tracking
|
|
123
|
-
if (context.sessionId) {
|
|
124
|
-
await initializeContextSession(context.sessionId, project.id);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
catch (error) {
|
|
129
|
-
logger.error('Failed to retrieve core memory:', error);
|
|
130
|
-
return 'Core memory unavailable (database initialization in progress)';
|
|
131
|
-
}
|
|
132
|
-
if (context.config?.autoInject !== false) {
|
|
133
|
-
await injectContextIntoSession(context, projectPath).catch(err => logError('Context injection error', err));
|
|
134
|
-
}
|
|
135
|
-
if (context.config?.generateFolderContext !== false) {
|
|
136
|
-
await generateAndInjectFolderContext(projectPath).catch(err => logError('Folder context error', err));
|
|
137
|
-
}
|
|
138
|
-
if (config.governanceEnabled && context.config?.autoInject !== false) {
|
|
139
|
-
try {
|
|
140
|
-
const pinnedMemories = await getPinnedMemories();
|
|
141
|
-
if (pinnedMemories.length > 0) {
|
|
142
|
-
logger.info(`Injecting ${pinnedMemories.length} pinned memories`);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
catch (error) {
|
|
146
|
-
logError('Failed to load pinned memories', error);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
// Return formatted core memory for hook injection
|
|
150
|
-
return coreMemoryText || 'Core memory initialized (empty)';
|
|
151
|
-
}
|
|
152
|
-
export async function onUserPromptSubmit(context) {
|
|
153
|
-
const projectPath = getProjectPath(context);
|
|
154
|
-
// Keep existing auto-capture (background operation) - records user prompts for later analysis
|
|
155
|
-
if (isAutoCapture(context) && context.userMessage) {
|
|
156
|
-
captureUserPrompt(projectPath, context.userMessage, context).catch(err => logger.info('Prompt capture error', err));
|
|
157
|
-
}
|
|
158
|
-
// Smart heuristic search: Look for relevant memories only when user is asking questions or seeking help
|
|
159
|
-
// This balances automation with user control - Claude still has final say via explicit /squish:search
|
|
160
|
-
if (!context.userMessage || !shouldSmartSearch(context.userMessage)) {
|
|
161
|
-
return '';
|
|
162
|
-
}
|
|
163
|
-
try {
|
|
164
|
-
const project = await ensureProject(projectPath);
|
|
165
|
-
if (!project?.id) {
|
|
166
|
-
return '';
|
|
167
|
-
}
|
|
168
|
-
// Smart search with HYBRID scoring: semantic + recency + coactivation + importance
|
|
169
|
-
// Fetches 50 candidates, re-ranks using multi-factor scoring, returns top 3
|
|
170
|
-
const relevantMemories = await withTimeout(hybridSearch({
|
|
171
|
-
query: context.userMessage,
|
|
172
|
-
project: projectPath,
|
|
173
|
-
...SMART_SEARCH_CONFIG,
|
|
174
|
-
}), 2000, []);
|
|
175
|
-
if (relevantMemories.length === 0) {
|
|
176
|
-
return '';
|
|
177
|
-
}
|
|
178
|
-
const formattedMemories = formatMemoriesForInjection(relevantMemories);
|
|
179
|
-
logger.info(`Smart search: Injecting ${relevantMemories.length} relevant memories`);
|
|
180
|
-
return formattedMemories;
|
|
181
|
-
}
|
|
182
|
-
catch (error) {
|
|
183
|
-
logger.error('Smart search failed:', error);
|
|
184
|
-
return '';
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
export async function onPostToolUse(context) {
|
|
188
|
-
if (!isAutoCapture(context) || !context.toolName)
|
|
189
|
-
return;
|
|
190
|
-
const projectPath = getProjectPath(context);
|
|
191
|
-
captureToolUse(projectPath, context.toolName, context.toolArguments, context.toolResult, context)
|
|
192
|
-
.then(observation => {
|
|
193
|
-
if (observation?.id) {
|
|
194
|
-
queueForSummarization(observation.id, projectPath).catch(err => logger.info('Summarization queue error', err));
|
|
195
|
-
}
|
|
196
|
-
})
|
|
197
|
-
.catch(err => logger.error('Tool capture error', err));
|
|
198
|
-
}
|
|
199
|
-
export async function onSessionStop(context) {
|
|
200
|
-
const projectPath = getProjectPath(context);
|
|
201
|
-
logger.info(`Session ended in ${projectPath}`);
|
|
202
|
-
if (context.config?.generateFolderContext !== false) {
|
|
203
|
-
await generateAndInjectFolderContext(projectPath).catch(err => logger.error('Final folder context error', err));
|
|
204
|
-
}
|
|
205
|
-
if (config.summarizationEnabled && context.sessionId) {
|
|
206
|
-
try {
|
|
207
|
-
await summarizeSession(context.sessionId, 'final');
|
|
208
|
-
logger.info('Session summarized (final)');
|
|
209
|
-
}
|
|
210
|
-
catch (error) {
|
|
211
|
-
logger.error('Failed to create final summary', error);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
if (config.lifecycleEnabled) {
|
|
215
|
-
try {
|
|
216
|
-
await forceLifecycleMaintenance(projectPath);
|
|
217
|
-
logger.info('Lifecycle maintenance completed on session end');
|
|
218
|
-
}
|
|
219
|
-
catch (error) {
|
|
220
|
-
logger.error('Failed to run lifecycle maintenance', error);
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
const SQUISH_VERSION = '0.6.0';
|
|
225
|
-
export async function onUpdate(context) {
|
|
226
|
-
logger.info('Squish plugin update triggered');
|
|
227
|
-
// The postinstall script should handle rebuilding
|
|
228
|
-
// Just provide user feedback
|
|
229
|
-
return `Squish v${SQUISH_VERSION} updated successfully. The MCP server will reconnect automatically.`;
|
|
230
|
-
}
|
|
231
|
-
export default {
|
|
232
|
-
onInstall,
|
|
233
|
-
onUpdate,
|
|
234
|
-
onSessionStart,
|
|
235
|
-
onUserPromptSubmit,
|
|
236
|
-
onPostToolUse,
|
|
237
|
-
onSessionStop
|
|
238
|
-
};
|
|
239
|
-
//# sourceMappingURL=plugin-wrapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-wrapper.js","sourceRoot":"","sources":["../../../adapters/claude-code/plugin-wrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Plugin Context Types
|
|
3
|
-
* Defines the interface between Claude Code and Squish plugin
|
|
4
|
-
*/
|
|
5
|
-
export interface PluginConfig {
|
|
6
|
-
autoCapture?: boolean;
|
|
7
|
-
autoInject?: boolean;
|
|
8
|
-
generateFolderContext?: boolean;
|
|
9
|
-
privacyMode?: 'strict' | 'moderate' | 'off';
|
|
10
|
-
maxContextItems?: number;
|
|
11
|
-
maxContextTokens?: number;
|
|
12
|
-
}
|
|
13
|
-
export interface PluginContext {
|
|
14
|
-
workingDirectory?: string;
|
|
15
|
-
sessionId?: string;
|
|
16
|
-
conversationId?: string;
|
|
17
|
-
userMessage?: string;
|
|
18
|
-
userRole?: 'user' | 'assistant';
|
|
19
|
-
toolName?: string;
|
|
20
|
-
toolArguments?: Record<string, any>;
|
|
21
|
-
toolResult?: string | Record<string, any>;
|
|
22
|
-
config?: PluginConfig;
|
|
23
|
-
pluginVersion?: string;
|
|
24
|
-
pluginPath?: string;
|
|
25
|
-
}
|
|
26
|
-
export interface SessionContext {
|
|
27
|
-
id: string;
|
|
28
|
-
workingDirectory: string;
|
|
29
|
-
startTime: Date;
|
|
30
|
-
conversationId: string;
|
|
31
|
-
projectPath: string;
|
|
32
|
-
gitRemote?: string;
|
|
33
|
-
gitBranch?: string;
|
|
34
|
-
}
|
|
35
|
-
export interface CapturedObservation {
|
|
36
|
-
id: string;
|
|
37
|
-
type: 'tool_use' | 'user_prompt' | 'file_change' | 'error' | 'pattern' | 'insight';
|
|
38
|
-
action: string;
|
|
39
|
-
target: string;
|
|
40
|
-
summary: string;
|
|
41
|
-
details?: Record<string, any>;
|
|
42
|
-
timestamp: Date;
|
|
43
|
-
projectPath: string;
|
|
44
|
-
sessionId?: string;
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../adapters/claude-code/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,WAAW,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,KAAK,CAAC;IAC5C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAE5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAGhC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAG1C,MAAM,CAAC,EAAE,YAAY,CAAC;IAGtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,IAAI,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,aAAa,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IACnF,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,SAAS,EAAE,IAAI,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../adapters/claude-code/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|