squish-memory 0.8.2 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (266) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/.env.mcp +30 -0
  4. package/.mcp.json +2 -5
  5. package/CHANGELOG.md +111 -0
  6. package/QUICK-START.md +65 -0
  7. package/README.md +188 -530
  8. package/commands/managed-sync.ts +69 -0
  9. package/commands/mcp-server.ts +519 -0
  10. package/config/mcp-cli-fallback-policy.json +22 -0
  11. package/config/mcp-migration-map.json +22 -0
  12. package/config/mcp-mode-semantics.json +21 -0
  13. package/config/mcp-remote-auth.json +36 -0
  14. package/config/mcp-universal.schema.json +48 -0
  15. package/config/mcp.json +38 -0
  16. package/config/remote-memory-policy.json +32 -0
  17. package/dist/algorithms/merge/detection/hash-filters.js +2 -2
  18. package/dist/algorithms/merge/detection/hash-filters.js.map +1 -1
  19. package/dist/algorithms/merge/detection/two-stage-detector.d.ts +5 -2
  20. package/dist/algorithms/merge/detection/two-stage-detector.d.ts.map +1 -1
  21. package/dist/algorithms/merge/detection/two-stage-detector.js +139 -22
  22. package/dist/algorithms/merge/detection/two-stage-detector.js.map +1 -1
  23. package/dist/commands/managed-sync.d.ts +10 -0
  24. package/dist/commands/managed-sync.d.ts.map +1 -0
  25. package/dist/commands/managed-sync.js +64 -0
  26. package/dist/commands/managed-sync.js.map +1 -0
  27. package/dist/commands/mcp-server.d.ts +3 -0
  28. package/dist/commands/mcp-server.d.ts.map +1 -0
  29. package/dist/commands/mcp-server.js +389 -0
  30. package/dist/commands/mcp-server.js.map +1 -0
  31. package/dist/config.d.ts +24 -1
  32. package/dist/config.d.ts.map +1 -1
  33. package/dist/config.js +32 -1
  34. package/dist/config.js.map +1 -1
  35. package/dist/core/associations.d.ts +1 -1
  36. package/dist/core/associations.d.ts.map +1 -1
  37. package/dist/core/consolidation.d.ts +31 -0
  38. package/dist/core/consolidation.d.ts.map +1 -1
  39. package/dist/core/consolidation.js +237 -29
  40. package/dist/core/consolidation.js.map +1 -1
  41. package/dist/core/embeddings/google-multimodal.d.ts +14 -0
  42. package/dist/core/embeddings/google-multimodal.d.ts.map +1 -0
  43. package/dist/core/embeddings/google-multimodal.js +142 -0
  44. package/dist/core/embeddings/google-multimodal.js.map +1 -0
  45. package/dist/core/embeddings.d.ts +3 -2
  46. package/dist/core/embeddings.d.ts.map +1 -1
  47. package/dist/core/embeddings.js +61 -39
  48. package/dist/core/embeddings.js.map +1 -1
  49. package/dist/core/mcp/client.d.ts +17 -0
  50. package/dist/core/mcp/client.d.ts.map +1 -0
  51. package/dist/core/mcp/client.js +101 -0
  52. package/dist/core/mcp/client.js.map +1 -0
  53. package/dist/core/mcp/index.d.ts +6 -0
  54. package/dist/core/mcp/index.d.ts.map +1 -0
  55. package/dist/core/mcp/index.js +6 -0
  56. package/dist/core/mcp/index.js.map +1 -0
  57. package/dist/core/mcp/server.d.ts +18 -0
  58. package/dist/core/mcp/server.d.ts.map +1 -0
  59. package/dist/core/mcp/server.js +131 -0
  60. package/dist/core/mcp/server.js.map +1 -0
  61. package/dist/core/mcp/standalone-server.d.ts +13 -0
  62. package/dist/core/mcp/standalone-server.d.ts.map +1 -0
  63. package/dist/core/mcp/standalone-server.js +46 -0
  64. package/dist/core/mcp/standalone-server.js.map +1 -0
  65. package/dist/core/mcp/tools.d.ts +9 -0
  66. package/dist/core/mcp/tools.d.ts.map +1 -0
  67. package/dist/core/mcp/tools.js +262 -0
  68. package/dist/core/mcp/tools.js.map +1 -0
  69. package/dist/core/mcp/types.d.ts +315 -0
  70. package/dist/core/mcp/types.d.ts.map +1 -0
  71. package/dist/core/mcp/types.js +48 -0
  72. package/dist/core/mcp/types.js.map +1 -0
  73. package/dist/core/memory/categorizer.d.ts +27 -0
  74. package/dist/core/memory/categorizer.d.ts.map +1 -0
  75. package/dist/core/memory/categorizer.js +304 -0
  76. package/dist/core/memory/categorizer.js.map +1 -0
  77. package/dist/core/memory/conflict-detector.d.ts +7 -0
  78. package/dist/core/memory/conflict-detector.d.ts.map +1 -0
  79. package/dist/core/memory/conflict-detector.js +43 -0
  80. package/dist/core/memory/conflict-detector.js.map +1 -0
  81. package/dist/core/memory/context-collector.d.ts +10 -0
  82. package/dist/core/memory/context-collector.d.ts.map +1 -0
  83. package/dist/core/memory/context-collector.js +55 -0
  84. package/dist/core/memory/context-collector.js.map +1 -0
  85. package/dist/core/memory/contradiction-resolver.d.ts +40 -0
  86. package/dist/core/memory/contradiction-resolver.d.ts.map +1 -0
  87. package/dist/core/memory/contradiction-resolver.js +368 -0
  88. package/dist/core/memory/contradiction-resolver.js.map +1 -0
  89. package/dist/core/memory/edit-workflow.d.ts +19 -0
  90. package/dist/core/memory/edit-workflow.d.ts.map +1 -0
  91. package/dist/core/memory/edit-workflow.js +120 -0
  92. package/dist/core/memory/edit-workflow.js.map +1 -0
  93. package/dist/core/memory/feedback-tracker.d.ts +12 -0
  94. package/dist/core/memory/feedback-tracker.d.ts.map +1 -0
  95. package/dist/core/memory/feedback-tracker.js +151 -0
  96. package/dist/core/memory/feedback-tracker.js.map +1 -0
  97. package/dist/core/memory/hybrid-retrieval.d.ts +11 -12
  98. package/dist/core/memory/hybrid-retrieval.d.ts.map +1 -1
  99. package/dist/core/memory/hybrid-retrieval.js +56 -28
  100. package/dist/core/memory/hybrid-retrieval.js.map +1 -1
  101. package/dist/core/memory/hybrid-scorer.d.ts +5 -16
  102. package/dist/core/memory/hybrid-scorer.d.ts.map +1 -1
  103. package/dist/core/memory/hybrid-scorer.js +161 -125
  104. package/dist/core/memory/hybrid-scorer.js.map +1 -1
  105. package/dist/core/memory/hybrid-search.js +53 -19
  106. package/dist/core/memory/hybrid-search.js.map +1 -1
  107. package/dist/core/memory/memories.d.ts +4 -0
  108. package/dist/core/memory/memories.d.ts.map +1 -1
  109. package/dist/core/memory/memories.js +133 -60
  110. package/dist/core/memory/memories.js.map +1 -1
  111. package/dist/core/memory/progressive-disclosure.d.ts +43 -0
  112. package/dist/core/memory/progressive-disclosure.d.ts.map +1 -0
  113. package/dist/core/memory/progressive-disclosure.js +280 -0
  114. package/dist/core/memory/progressive-disclosure.js.map +1 -0
  115. package/dist/core/memory/query-rewriter.d.ts +13 -0
  116. package/dist/core/memory/query-rewriter.d.ts.map +1 -0
  117. package/dist/core/memory/query-rewriter.js +118 -0
  118. package/dist/core/memory/query-rewriter.js.map +1 -0
  119. package/dist/core/memory/response-analyzer.d.ts +9 -0
  120. package/dist/core/memory/response-analyzer.d.ts.map +1 -0
  121. package/dist/core/memory/response-analyzer.js +61 -0
  122. package/dist/core/memory/response-analyzer.js.map +1 -0
  123. package/dist/core/memory/stats.d.ts +17 -0
  124. package/dist/core/memory/stats.d.ts.map +1 -0
  125. package/dist/core/memory/stats.js +87 -0
  126. package/dist/core/memory/stats.js.map +1 -0
  127. package/dist/core/memory/telemetry.d.ts +69 -0
  128. package/dist/core/memory/telemetry.d.ts.map +1 -0
  129. package/dist/core/memory/telemetry.js +313 -0
  130. package/dist/core/memory/telemetry.js.map +1 -0
  131. package/dist/core/memory/temporal-facts.d.ts +41 -0
  132. package/dist/core/memory/temporal-facts.d.ts.map +1 -0
  133. package/dist/core/memory/temporal-facts.js +262 -0
  134. package/dist/core/memory/temporal-facts.js.map +1 -0
  135. package/dist/core/memory/trigger-detector.d.ts +14 -0
  136. package/dist/core/memory/trigger-detector.d.ts.map +1 -0
  137. package/dist/core/memory/trigger-detector.js +42 -0
  138. package/dist/core/memory/trigger-detector.js.map +1 -0
  139. package/dist/core/memory/write-gate.d.ts +54 -0
  140. package/dist/core/memory/write-gate.d.ts.map +1 -0
  141. package/dist/core/memory/write-gate.js +210 -0
  142. package/dist/core/memory/write-gate.js.map +1 -0
  143. package/dist/core/projects.d.ts +2 -0
  144. package/dist/core/projects.d.ts.map +1 -1
  145. package/dist/core/projects.js +33 -0
  146. package/dist/core/projects.js.map +1 -1
  147. package/dist/core/scheduler/cron-scheduler.d.ts +32 -0
  148. package/dist/core/scheduler/cron-scheduler.d.ts.map +1 -0
  149. package/dist/core/scheduler/cron-scheduler.js +238 -0
  150. package/dist/core/scheduler/cron-scheduler.js.map +1 -0
  151. package/dist/core/scheduler/heartbeat.d.ts +11 -0
  152. package/dist/core/scheduler/heartbeat.d.ts.map +1 -0
  153. package/dist/core/scheduler/heartbeat.js +73 -0
  154. package/dist/core/scheduler/heartbeat.js.map +1 -0
  155. package/dist/core/scheduler/index.d.ts +8 -0
  156. package/dist/core/scheduler/index.d.ts.map +1 -0
  157. package/dist/core/scheduler/index.js +8 -0
  158. package/dist/core/scheduler/index.js.map +1 -0
  159. package/dist/core/scheduler/job-runner.d.ts +11 -0
  160. package/dist/core/scheduler/job-runner.d.ts.map +1 -0
  161. package/dist/core/scheduler/job-runner.js +161 -0
  162. package/dist/core/scheduler/job-runner.js.map +1 -0
  163. package/dist/core/session/auto-load.d.ts +6 -0
  164. package/dist/core/session/auto-load.d.ts.map +1 -0
  165. package/dist/core/session/auto-load.js +119 -0
  166. package/dist/core/session/auto-load.js.map +1 -0
  167. package/dist/core/session/index.d.ts +7 -0
  168. package/dist/core/session/index.d.ts.map +1 -0
  169. package/dist/core/session/index.js +7 -0
  170. package/dist/core/session/index.js.map +1 -0
  171. package/dist/core/session/types.d.ts +26 -0
  172. package/dist/core/session/types.d.ts.map +1 -0
  173. package/dist/core/session/types.js +10 -0
  174. package/dist/core/session/types.js.map +1 -0
  175. package/dist/core/snapshots/comparison.d.ts.map +1 -1
  176. package/dist/core/snapshots/comparison.js +8 -2
  177. package/dist/core/snapshots/comparison.js.map +1 -1
  178. package/dist/core/utils/content-extraction.d.ts.map +1 -1
  179. package/dist/core/utils/content-extraction.js +11 -1
  180. package/dist/core/utils/content-extraction.js.map +1 -1
  181. package/dist/core/utils/summarization-helpers.d.ts.map +1 -1
  182. package/dist/core/utils/summarization-helpers.js +4 -1
  183. package/dist/core/utils/summarization-helpers.js.map +1 -1
  184. package/dist/core/utils.d.ts.map +1 -1
  185. package/dist/core/utils.js +26 -3
  186. package/dist/core/utils.js.map +1 -1
  187. package/dist/core/worker.d.ts +20 -0
  188. package/dist/core/worker.d.ts.map +1 -1
  189. package/dist/core/worker.js +86 -0
  190. package/dist/core/worker.js.map +1 -1
  191. package/dist/db/adapter.d.ts +1 -5
  192. package/dist/db/adapter.d.ts.map +1 -1
  193. package/dist/db/adapter.js +125 -12
  194. package/dist/db/adapter.js.map +1 -1
  195. package/dist/db/bootstrap.d.ts.map +1 -1
  196. package/dist/db/bootstrap.js +178 -3
  197. package/dist/db/bootstrap.js.map +1 -1
  198. package/dist/db/index.d.ts +1 -5
  199. package/dist/db/index.d.ts.map +1 -1
  200. package/dist/db/index.js +7 -4
  201. package/dist/db/index.js.map +1 -1
  202. package/dist/drizzle/schema-sqlite.d.ts +1953 -612
  203. package/dist/drizzle/schema-sqlite.d.ts.map +1 -1
  204. package/dist/drizzle/schema-sqlite.js +134 -0
  205. package/dist/drizzle/schema-sqlite.js.map +1 -1
  206. package/dist/drizzle/schema.d.ts +684 -3
  207. package/dist/drizzle/schema.d.ts.map +1 -1
  208. package/dist/drizzle/schema.js +81 -1
  209. package/dist/drizzle/schema.js.map +1 -1
  210. package/dist/index.d.ts +3 -3
  211. package/dist/index.js +152 -13
  212. package/dist/index.js.map +1 -1
  213. package/package.json +125 -103
  214. package/scripts/build-release.sh +33 -0
  215. package/scripts/db/check-db.mjs +88 -0
  216. package/scripts/db/fix-all-columns.mjs +52 -0
  217. package/scripts/db/fix-schema-all.mjs +55 -0
  218. package/scripts/db/fix-schema-full.mjs +46 -0
  219. package/scripts/db/fix-schema.mjs +38 -0
  220. package/scripts/db/init-db.mjs +13 -0
  221. package/scripts/db/recreate-db.mjs +14 -0
  222. package/scripts/generate-mcp.mjs +264 -0
  223. package/scripts/github-release.sh +61 -0
  224. package/scripts/init-dirs.mjs +13 -0
  225. package/scripts/init-dirs.ts +15 -0
  226. package/scripts/install-mcp.mjs +116 -0
  227. package/scripts/install-web.sh +120 -0
  228. package/scripts/install.mjs +340 -0
  229. package/scripts/openclaw-bootstrap.mjs +127 -0
  230. package/scripts/package-release.sh +71 -0
  231. package/scripts/remote-preflight.mjs +62 -0
  232. package/scripts/squish-fallback.mjs +132 -0
  233. package/scripts/test/test-all-systems.mjs +139 -0
  234. package/scripts/test/test-memory-system.mjs +139 -0
  235. package/scripts/test/test-v0.5.0.mjs +210 -0
  236. package/scripts/verify-mcp.mjs +214 -0
  237. package/skills/memory-guide/SKILL.md +181 -123
  238. package/skills/squish-cli/SKILL.md +200 -0
  239. package/skills/squish-mcp/SKILL.md +311 -0
  240. package/skills/squish-memory/SKILL.md +100 -62
  241. package/skills/squish-memory/claude-desktop.json +12 -0
  242. package/skills/squish-memory/install.mjs +335 -0
  243. package/skills/squish-memory/install.sh +94 -62
  244. package/skills/squish-memory/openclaw.json +13 -0
  245. package/skills/squish-memory/opencode.json +14 -0
  246. package/skills/squish-memory/skill.json +32 -0
  247. package/dist/adapters/claude-code/capture.d.ts +0 -11
  248. package/dist/adapters/claude-code/capture.d.ts.map +0 -1
  249. package/dist/adapters/claude-code/capture.js +0 -100
  250. package/dist/adapters/claude-code/capture.js.map +0 -1
  251. package/dist/adapters/claude-code/index.d.ts +0 -5
  252. package/dist/adapters/claude-code/index.d.ts.map +0 -1
  253. package/dist/adapters/claude-code/index.js +0 -6
  254. package/dist/adapters/claude-code/index.js.map +0 -1
  255. package/dist/adapters/claude-code/injection.d.ts +0 -34
  256. package/dist/adapters/claude-code/injection.d.ts.map +0 -1
  257. package/dist/adapters/claude-code/injection.js +0 -127
  258. package/dist/adapters/claude-code/injection.js.map +0 -1
  259. package/dist/adapters/claude-code/plugin-wrapper.d.ts +0 -21
  260. package/dist/adapters/claude-code/plugin-wrapper.d.ts.map +0 -1
  261. package/dist/adapters/claude-code/plugin-wrapper.js +0 -239
  262. package/dist/adapters/claude-code/plugin-wrapper.js.map +0 -1
  263. package/dist/adapters/claude-code/types.d.ts +0 -46
  264. package/dist/adapters/claude-code/types.d.ts.map +0 -1
  265. package/dist/adapters/claude-code/types.js +0 -6
  266. 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,5 +0,0 @@
1
- export * from './capture.js';
2
- export * from './injection.js';
3
- export * from './plugin-wrapper.js';
4
- export * from './types.js';
5
- //# sourceMappingURL=index.d.ts.map
@@ -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,6 +0,0 @@
1
- // Plugin feature - Claude Code plugin integration
2
- export * from './capture.js';
3
- export * from './injection.js';
4
- export * from './plugin-wrapper.js';
5
- export * from './types.js';
6
- //# sourceMappingURL=index.js.map
@@ -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":"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"}
@@ -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,6 +0,0 @@
1
- /**
2
- * Plugin Context Types
3
- * Defines the interface between Claude Code and Squish plugin
4
- */
5
- export {};
6
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../adapters/claude-code/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}