claude-mem-opencode 0.0.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 (59) hide show
  1. package/README.md +391 -0
  2. package/dist/bundle/claude-mem-opencode.js +542 -0
  3. package/dist/bundle/index.d.ts +13 -0
  4. package/dist/bundle/index.d.ts.map +1 -0
  5. package/dist/bundle/index.js.map +1 -0
  6. package/dist/bundle/package.json +10 -0
  7. package/dist/bundle/skill/SKILL.md +118 -0
  8. package/dist/bundle/skill/operations/search.md +178 -0
  9. package/dist/bundle/skill/operations/timeline.md +269 -0
  10. package/dist/bundle/skill/operations/workflow.md +375 -0
  11. package/dist/cli.d.ts +6 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +164 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/integration/context-injector.d.ts +19 -0
  16. package/dist/integration/context-injector.d.ts.map +1 -0
  17. package/dist/integration/context-injector.js +47 -0
  18. package/dist/integration/context-injector.js.map +1 -0
  19. package/dist/integration/event-listeners.d.ts +41 -0
  20. package/dist/integration/event-listeners.d.ts.map +1 -0
  21. package/dist/integration/event-listeners.js +156 -0
  22. package/dist/integration/event-listeners.js.map +1 -0
  23. package/dist/integration/index.d.ts +66 -0
  24. package/dist/integration/index.d.ts.map +1 -0
  25. package/dist/integration/index.js +127 -0
  26. package/dist/integration/index.js.map +1 -0
  27. package/dist/integration/session-mapper.d.ts +39 -0
  28. package/dist/integration/session-mapper.d.ts.map +1 -0
  29. package/dist/integration/session-mapper.js +63 -0
  30. package/dist/integration/session-mapper.js.map +1 -0
  31. package/dist/integration/test.d.ts +6 -0
  32. package/dist/integration/test.d.ts.map +1 -0
  33. package/dist/integration/test.js +73 -0
  34. package/dist/integration/test.js.map +1 -0
  35. package/dist/integration/utils/logger.d.ts +15 -0
  36. package/dist/integration/utils/logger.d.ts.map +1 -0
  37. package/dist/integration/utils/logger.js +26 -0
  38. package/dist/integration/utils/logger.js.map +1 -0
  39. package/dist/integration/utils/privacy.d.ts +32 -0
  40. package/dist/integration/utils/privacy.d.ts.map +1 -0
  41. package/dist/integration/utils/privacy.js +62 -0
  42. package/dist/integration/utils/privacy.js.map +1 -0
  43. package/dist/integration/utils/project-name.d.ts +16 -0
  44. package/dist/integration/utils/project-name.d.ts.map +1 -0
  45. package/dist/integration/utils/project-name.js +28 -0
  46. package/dist/integration/utils/project-name.js.map +1 -0
  47. package/dist/integration/version-checker.d.ts +52 -0
  48. package/dist/integration/version-checker.d.ts.map +1 -0
  49. package/dist/integration/version-checker.js +121 -0
  50. package/dist/integration/version-checker.js.map +1 -0
  51. package/dist/integration/worker-client.d.ts +94 -0
  52. package/dist/integration/worker-client.d.ts.map +1 -0
  53. package/dist/integration/worker-client.js +188 -0
  54. package/dist/integration/worker-client.js.map +1 -0
  55. package/dist/test.d.ts +6 -0
  56. package/dist/test.d.ts.map +1 -0
  57. package/dist/test.js +73 -0
  58. package/dist/test.js.map +1 -0
  59. package/package.json +69 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy.d.ts","sourceRoot":"","sources":["../../../src/integration/utils/privacy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmC;IACrE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAyD;IAE3F;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAQnC;;OAEG;IACH,aAAa,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;IAoB5B;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKrC;;OAEG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;CASrE"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Strip privacy tags from text and JSON
3
+ * Consistent with claude-mem's tag-stripping logic
4
+ */
5
+ export class PrivacyTagStripper {
6
+ PRIVATE_TAG_REGEX = /<private>[\s\S]*?<\/private>/gi;
7
+ CONTEXT_TAG_REGEX = /<claude-mem-context>[\s\S]*?<\/claude-mem-context>/gi;
8
+ /**
9
+ * Strip privacy tags from text
10
+ */
11
+ stripFromText(text) {
12
+ if (!text)
13
+ return text;
14
+ return text
15
+ .replace(this.PRIVATE_TAG_REGEX, '[private content removed]')
16
+ .replace(this.CONTEXT_TAG_REGEX, '[system context removed]');
17
+ }
18
+ /**
19
+ * Strip privacy tags from JSON (recursive)
20
+ */
21
+ stripFromJson(obj) {
22
+ if (typeof obj === 'string') {
23
+ return this.stripFromText(obj);
24
+ }
25
+ if (Array.isArray(obj)) {
26
+ return obj.map(item => this.stripFromJson(item));
27
+ }
28
+ if (obj !== null && typeof obj === 'object') {
29
+ const result = {};
30
+ for (const [key, value] of Object.entries(obj)) {
31
+ result[key] = this.stripFromJson(value);
32
+ }
33
+ return result;
34
+ }
35
+ return obj;
36
+ }
37
+ /**
38
+ * Check if text contains only private content
39
+ */
40
+ isFullyPrivate(text) {
41
+ const stripped = this.stripFromText(text);
42
+ return stripped.trim().length === 0;
43
+ }
44
+ /**
45
+ * Check if text contains privacy tags
46
+ */
47
+ hasPrivacyTags(text) {
48
+ return this.PRIVATE_TAG_REGEX.test(text) || this.CONTEXT_TAG_REGEX.test(text);
49
+ }
50
+ /**
51
+ * Count privacy tags in text
52
+ */
53
+ countPrivacyTags(text) {
54
+ const privateMatches = text.match(this.PRIVATE_TAG_REGEX);
55
+ const contextMatches = text.match(this.CONTEXT_TAG_REGEX);
56
+ return {
57
+ private: privateMatches ? privateMatches.length : 0,
58
+ context: contextMatches ? contextMatches.length : 0
59
+ };
60
+ }
61
+ }
62
+ //# sourceMappingURL=privacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"privacy.js","sourceRoot":"","sources":["../../../src/integration/utils/privacy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,OAAO,kBAAkB;IACZ,iBAAiB,GAAG,gCAAgC,CAAA;IACpD,iBAAiB,GAAG,sDAAsD,CAAA;IAE3F;;OAEG;IACH,aAAa,CAAC,IAAY;QACxB,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAEtB,OAAO,IAAI;aACR,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;aAC5D,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,0BAA0B,CAAC,CAAA;IAChE,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,GAAQ;QACpB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;QAChC,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAA;QAClD,CAAC;QAED,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAwB,EAAE,CAAA;YACtC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;YACzC,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,IAAY;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;QACzC,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAA;IACrC,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC/E,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,IAAY;QAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QACzD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAEzD,OAAO;YACL,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACnD,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACpD,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Extract project name from directory path
3
+ * Consistent with claude-mem's project name logic
4
+ */
5
+ export declare class ProjectNameExtractor {
6
+ /**
7
+ * Extract project name from directory
8
+ * Uses same logic as claude-mem's getProjectName()
9
+ */
10
+ extract(directory: string): string;
11
+ /**
12
+ * Extract project name for current directory
13
+ */
14
+ getCurrentProject(): string;
15
+ }
16
+ //# sourceMappingURL=project-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-name.d.ts","sourceRoot":"","sources":["../../../src/integration/utils/project-name.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,qBAAa,oBAAoB;IAC/B;;;OAGG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAalC;;OAEG;IACH,iBAAiB,IAAI,MAAM;CAG5B"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Extract project name from directory path
3
+ * Consistent with claude-mem's project name logic
4
+ */
5
+ import path from 'path';
6
+ export class ProjectNameExtractor {
7
+ /**
8
+ * Extract project name from directory
9
+ * Uses same logic as claude-mem's getProjectName()
10
+ */
11
+ extract(directory) {
12
+ // Get base directory name
13
+ const baseName = path.basename(directory);
14
+ // If it's a hidden directory, use parent
15
+ if (baseName.startsWith('.')) {
16
+ const parent = path.dirname(directory);
17
+ return path.basename(parent);
18
+ }
19
+ return baseName;
20
+ }
21
+ /**
22
+ * Extract project name for current directory
23
+ */
24
+ getCurrentProject() {
25
+ return this.extract(process.cwd());
26
+ }
27
+ }
28
+ //# sourceMappingURL=project-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-name.js","sourceRoot":"","sources":["../../../src/integration/utils/project-name.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,OAAO,oBAAoB;IAC/B;;;OAGG;IACH,OAAO,CAAC,SAAiB;QACvB,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAEzC,yCAAyC;QACzC,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;YACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC9B,CAAC;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED;;OAEG;IACH,iBAAiB;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IACpC,CAAC;CACF"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Runtime claude-mem version compatibility checker
3
+ */
4
+ export interface WorkerHealthResponse {
5
+ status: 'ok' | 'error';
6
+ version: string;
7
+ apiVersion: string;
8
+ }
9
+ export interface CompatibilityResult {
10
+ isCompatible: boolean;
11
+ isTested: boolean;
12
+ workerVersion: string;
13
+ apiVersion: string;
14
+ recommendation: string;
15
+ testedVersions: string[];
16
+ }
17
+ export interface CompatibilityMatrix {
18
+ version: string;
19
+ status: 'compatible' | 'incompatible' | 'unknown';
20
+ date: string;
21
+ notes?: string;
22
+ }
23
+ export declare class VersionChecker {
24
+ private workerUrl;
25
+ private readonly COMPATIBILITY_FILE;
26
+ constructor(workerUrl?: string);
27
+ /**
28
+ * Check worker health and version
29
+ */
30
+ checkWorkerHealth(): Promise<WorkerHealthResponse>;
31
+ /**
32
+ * Parse COMPATIBILITY.md to get tested versions
33
+ */
34
+ getTestedVersions(): Promise<CompatibilityMatrix[]>;
35
+ /**
36
+ * Check if a specific version has been tested
37
+ */
38
+ isVersionTested(version: string, testedVersions: CompatibilityMatrix[]): boolean;
39
+ /**
40
+ * Check API version compatibility
41
+ */
42
+ isApiVersionCompatible(apiVersion: string): boolean;
43
+ /**
44
+ * Full compatibility check
45
+ */
46
+ checkCompatibility(): Promise<CompatibilityResult>;
47
+ /**
48
+ * Log compatibility warning if needed
49
+ */
50
+ logCompatibilityWarning(): Promise<void>;
51
+ }
52
+ //# sourceMappingURL=version-checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-checker.d.ts","sourceRoot":"","sources":["../../src/integration/version-checker.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAA;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,OAAO,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,EAAE,MAAM,EAAE,CAAA;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,YAAY,GAAG,cAAc,GAAG,SAAS,CAAA;IACjD,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;gBAE5C,SAAS,GAAE,MAAiC;IAIxD;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAUxD;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IA8BzD;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,GAAG,OAAO;IAIhF;;OAEG;IACH,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAKnD;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAmCxD;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC;CAiB/C"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Runtime claude-mem version compatibility checker
3
+ */
4
+ export class VersionChecker {
5
+ workerUrl;
6
+ COMPATIBILITY_FILE = 'COMPATIBILITY.md';
7
+ constructor(workerUrl = 'http://localhost:37777') {
8
+ this.workerUrl = workerUrl;
9
+ }
10
+ /**
11
+ * Check worker health and version
12
+ */
13
+ async checkWorkerHealth() {
14
+ const response = await fetch(`${this.workerUrl}/api/health`);
15
+ if (!response.ok) {
16
+ throw new Error(`Worker health check failed: ${response.status}`);
17
+ }
18
+ return await response.json();
19
+ }
20
+ /**
21
+ * Parse COMPATIBILITY.md to get tested versions
22
+ */
23
+ async getTestedVersions() {
24
+ try {
25
+ const fs = await import('fs/promises');
26
+ const path = await import('path');
27
+ const compatPath = path.join(process.cwd(), this.COMPATIBILITY_FILE);
28
+ const content = await fs.readFile(compatPath, 'utf-8');
29
+ const lines = content.split('\n');
30
+ const versions = [];
31
+ const sectionRegex = /- claude-mem v(\d+\.\d+\.\d+):\s*(✅|❌|⚠️)\s*(Compatible|Incompatible|Unknown)\s*\((\d{4}-\d{2}-\d{2})\)/;
32
+ for (const line of lines) {
33
+ const match = line.match(sectionRegex);
34
+ if (match) {
35
+ versions.push({
36
+ version: match[1],
37
+ status: match[2] === '✅' ? 'compatible' : match[2] === '❌' ? 'incompatible' : 'unknown',
38
+ date: match[4]
39
+ });
40
+ }
41
+ }
42
+ return versions;
43
+ }
44
+ catch (error) {
45
+ console.warn('[VERSION_CHECKER] Could not read COMPATIBILITY.md');
46
+ return [];
47
+ }
48
+ }
49
+ /**
50
+ * Check if a specific version has been tested
51
+ */
52
+ isVersionTested(version, testedVersions) {
53
+ return testedVersions.some(v => v.version === version && v.status === 'compatible');
54
+ }
55
+ /**
56
+ * Check API version compatibility
57
+ */
58
+ isApiVersionCompatible(apiVersion) {
59
+ const supportedVersions = ['1.0', '2.0'];
60
+ return supportedVersions.includes(apiVersion);
61
+ }
62
+ /**
63
+ * Full compatibility check
64
+ */
65
+ async checkCompatibility() {
66
+ const health = await this.checkWorkerHealth();
67
+ const testedVersions = await this.getTestedVersions();
68
+ const isTested = this.isVersionTested(health.version, testedVersions);
69
+ const isCompatible = this.isApiVersionCompatible(health.apiVersion);
70
+ const testedVersionList = testedVersions
71
+ .filter(v => v.status === 'compatible')
72
+ .map(v => v.version)
73
+ .sort((a, b) => b.localeCompare(a, undefined, { numeric: true }));
74
+ let recommendation;
75
+ if (!isCompatible) {
76
+ recommendation = `❌ Incompatible API version: ${health.apiVersion}. ` +
77
+ `Supported: 1.0, 2.0. ` +
78
+ `Please update claude-mem or opencode-mem.`;
79
+ }
80
+ else if (!isTested) {
81
+ recommendation = `⚠️ This claude-mem version (${health.version}) has not been tested ` +
82
+ `with this version of opencode-mem. ` +
83
+ `Tested versions: ${testedVersionList.slice(0, 5).join(', ')}. ` +
84
+ `Proceed with caution.`;
85
+ }
86
+ else {
87
+ recommendation = `✅ claude-mem v${health.version} is fully compatible and tested.`;
88
+ }
89
+ return {
90
+ isCompatible,
91
+ isTested,
92
+ workerVersion: health.version,
93
+ apiVersion: health.apiVersion,
94
+ recommendation,
95
+ testedVersions: testedVersionList
96
+ };
97
+ }
98
+ /**
99
+ * Log compatibility warning if needed
100
+ */
101
+ async logCompatibilityWarning() {
102
+ try {
103
+ const result = await this.checkCompatibility();
104
+ if (!result.isCompatible) {
105
+ console.error(result.recommendation);
106
+ throw new Error('Incompatible claude-mem version');
107
+ }
108
+ else if (!result.isTested) {
109
+ console.warn(result.recommendation);
110
+ }
111
+ else {
112
+ console.log(result.recommendation);
113
+ }
114
+ }
115
+ catch (error) {
116
+ console.error('[VERSION_CHECKER] Compatibility check failed:', error);
117
+ throw error;
118
+ }
119
+ }
120
+ }
121
+ //# sourceMappingURL=version-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-checker.js","sourceRoot":"","sources":["../../src/integration/version-checker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * HTTP client for claude-mem worker API
3
+ * Handles all communication with worker service on localhost:37777
4
+ */
5
+ export interface InitSessionRequest {
6
+ contentSessionId: string;
7
+ project: string;
8
+ prompt: string;
9
+ }
10
+ export interface InitSessionResponse {
11
+ sessionDbId: number;
12
+ promptNumber: number;
13
+ skipped: boolean;
14
+ reason?: string;
15
+ }
16
+ export interface ObservationRequest {
17
+ sessionDbId: number;
18
+ promptNumber: number;
19
+ toolName: string;
20
+ toolInput: any;
21
+ toolOutput: string;
22
+ cwd: string;
23
+ timestamp: number;
24
+ }
25
+ export declare class WorkerClient {
26
+ private baseUrl;
27
+ private timeout;
28
+ constructor(portOrUrl?: number | string);
29
+ /**
30
+ * Get worker port
31
+ */
32
+ getPort(): number;
33
+ /**
34
+ * Get worker URL
35
+ */
36
+ getWorkerUrl(): string;
37
+ /**
38
+ * Check if worker is running (returns full health data)
39
+ */
40
+ checkHealth(): Promise<any>;
41
+ /**
42
+ * Check if worker is running (boolean)
43
+ */
44
+ healthCheck(): Promise<boolean>;
45
+ /**
46
+ * Wait for worker to be ready
47
+ */
48
+ waitForReady(timeoutMs?: number): Promise<boolean>;
49
+ /**
50
+ * Check if worker is ready to accept requests
51
+ */
52
+ readinessCheck(): Promise<boolean>;
53
+ /**
54
+ * Initialize a new claude-mem session
55
+ */
56
+ initSession(request: InitSessionRequest): Promise<InitSessionResponse>;
57
+ /**
58
+ * Add an observation (tool usage) to a session
59
+ */
60
+ addObservation(request: ObservationRequest): Promise<void>;
61
+ /**
62
+ * Complete a session (triggers summarization)
63
+ */
64
+ completeSession(sessionDbId: number): Promise<void>;
65
+ /**
66
+ * Get memory context for a project
67
+ */
68
+ getProjectContext(project: string): Promise<string>;
69
+ /**
70
+ * Search memory (basic search, returns observation IDs)
71
+ */
72
+ search(query: string, options?: {
73
+ limit?: number;
74
+ type?: string;
75
+ project?: string;
76
+ }): Promise<any>;
77
+ /**
78
+ * Search memories (alias for search with object parameter)
79
+ */
80
+ searchMemories(params: {
81
+ query: string;
82
+ type?: string;
83
+ limit?: number;
84
+ }): Promise<any>;
85
+ /**
86
+ * Get full observations by IDs
87
+ */
88
+ getObservations(ids: number[]): Promise<any>;
89
+ /**
90
+ * Get timeline context around an observation
91
+ */
92
+ getTimeline(sessionDbId: number, observationId: number, window?: number): Promise<any>;
93
+ }
94
+ //# sourceMappingURL=worker-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-client.d.ts","sourceRoot":"","sources":["../../src/integration/worker-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,GAAG,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,OAAO,CAAgB;gBAEnB,SAAS,GAAE,MAAM,GAAG,MAAc;IAQ9C;;OAEG;IACH,OAAO,IAAI,MAAM;IAKjB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC;IAajC;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC;;OAEG;IACG,YAAY,CAAC,SAAS,GAAE,MAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAU/D;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IASxC;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAe5E;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAahE;;OAEG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAczD;;OAEG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAazD;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACpC,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,GAAG,OAAO,CAAC,GAAG,CAAC;IAoBhB;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE;QAC3B,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;KACf,GAAG,OAAO,CAAC,GAAG,CAAC;IAOhB;;OAEG;IACG,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAelD;;OAEG;IACG,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,OAAO,CAAC,GAAG,CAAC;CAchG"}
@@ -0,0 +1,188 @@
1
+ /**
2
+ * HTTP client for claude-mem worker API
3
+ * Handles all communication with worker service on localhost:37777
4
+ */
5
+ export class WorkerClient {
6
+ baseUrl;
7
+ timeout = 30000;
8
+ constructor(portOrUrl = 37777) {
9
+ if (typeof portOrUrl === 'string') {
10
+ this.baseUrl = portOrUrl;
11
+ }
12
+ else {
13
+ this.baseUrl = `http://127.0.0.1:${portOrUrl}`;
14
+ }
15
+ }
16
+ /**
17
+ * Get worker port
18
+ */
19
+ getPort() {
20
+ const match = this.baseUrl.match(/:(\d+)$/);
21
+ return match ? parseInt(match[1]) : 37777;
22
+ }
23
+ /**
24
+ * Get worker URL
25
+ */
26
+ getWorkerUrl() {
27
+ return this.baseUrl;
28
+ }
29
+ /**
30
+ * Check if worker is running (returns full health data)
31
+ */
32
+ async checkHealth() {
33
+ try {
34
+ const response = await fetch(`${this.baseUrl}/api/health`, {
35
+ signal: AbortSignal.timeout(5000)
36
+ });
37
+ const data = await response.json();
38
+ return data;
39
+ }
40
+ catch (error) {
41
+ console.log('[WORKER_CLIENT] Health check failed:', error);
42
+ return { status: 'error', version: 'unknown' };
43
+ }
44
+ }
45
+ /**
46
+ * Check if worker is running (boolean)
47
+ */
48
+ async healthCheck() {
49
+ const result = await this.checkHealth();
50
+ return result.status === 'ok' || result.status === undefined;
51
+ }
52
+ /**
53
+ * Wait for worker to be ready
54
+ */
55
+ async waitForReady(timeoutMs = 30000) {
56
+ const start = Date.now();
57
+ while (Date.now() - start < timeoutMs) {
58
+ const ready = await this.readinessCheck();
59
+ if (ready)
60
+ return true;
61
+ await new Promise(resolve => setTimeout(resolve, 500));
62
+ }
63
+ return false;
64
+ }
65
+ /**
66
+ * Check if worker is ready to accept requests
67
+ */
68
+ async readinessCheck() {
69
+ try {
70
+ const response = await fetch(`${this.baseUrl}/api/readiness`);
71
+ return response.ok;
72
+ }
73
+ catch {
74
+ return false;
75
+ }
76
+ }
77
+ /**
78
+ * Initialize a new claude-mem session
79
+ */
80
+ async initSession(request) {
81
+ const response = await fetch(`${this.baseUrl}/api/sessions/init`, {
82
+ method: 'POST',
83
+ headers: { 'Content-Type': 'application/json' },
84
+ body: JSON.stringify(request),
85
+ signal: AbortSignal.timeout(this.timeout)
86
+ });
87
+ if (!response.ok) {
88
+ throw new Error(`Session init failed: ${response.status} ${response.statusText}`);
89
+ }
90
+ return response.json();
91
+ }
92
+ /**
93
+ * Add an observation (tool usage) to a session
94
+ */
95
+ async addObservation(request) {
96
+ const response = await fetch(`${this.baseUrl}/api/sessions/observations`, {
97
+ method: 'POST',
98
+ headers: { 'Content-Type': 'application/json' },
99
+ body: JSON.stringify(request),
100
+ signal: AbortSignal.timeout(this.timeout)
101
+ });
102
+ if (!response.ok) {
103
+ throw new Error(`Observation add failed: ${response.status} ${response.statusText}`);
104
+ }
105
+ }
106
+ /**
107
+ * Complete a session (triggers summarization)
108
+ */
109
+ async completeSession(sessionDbId) {
110
+ const response = await fetch(`${this.baseUrl}/sessions/${sessionDbId}/complete`, {
111
+ method: 'POST',
112
+ signal: AbortSignal.timeout(this.timeout)
113
+ });
114
+ if (!response.ok) {
115
+ throw new Error(`Session complete failed: ${response.status} ${response.statusText}`);
116
+ }
117
+ }
118
+ /**
119
+ * Get memory context for a project
120
+ */
121
+ async getProjectContext(project) {
122
+ const url = `${this.baseUrl}/api/context/inject?project=${encodeURIComponent(project)}`;
123
+ const response = await fetch(url, {
124
+ signal: AbortSignal.timeout(this.timeout)
125
+ });
126
+ if (!response.ok) {
127
+ throw new Error(`Context fetch failed: ${response.status} ${response.statusText}`);
128
+ }
129
+ return response.text();
130
+ }
131
+ /**
132
+ * Search memory (basic search, returns observation IDs)
133
+ */
134
+ async search(query, options) {
135
+ const params = new URLSearchParams({
136
+ q: query,
137
+ limit: String(options?.limit ?? 10)
138
+ });
139
+ if (options?.type)
140
+ params.append('type', options.type);
141
+ if (options?.project)
142
+ params.append('project', options.project);
143
+ const response = await fetch(`${this.baseUrl}/api/search?${params}`, {
144
+ signal: AbortSignal.timeout(this.timeout)
145
+ });
146
+ if (!response.ok) {
147
+ throw new Error(`Search failed: ${response.status} ${response.statusText}`);
148
+ }
149
+ return response.json();
150
+ }
151
+ /**
152
+ * Search memories (alias for search with object parameter)
153
+ */
154
+ async searchMemories(params) {
155
+ return this.search(params.query, {
156
+ type: params.type,
157
+ limit: params.limit
158
+ });
159
+ }
160
+ /**
161
+ * Get full observations by IDs
162
+ */
163
+ async getObservations(ids) {
164
+ const response = await fetch(`${this.baseUrl}/api/observations/batch`, {
165
+ method: 'POST',
166
+ headers: { 'Content-Type': 'application/json' },
167
+ body: JSON.stringify({ ids }),
168
+ signal: AbortSignal.timeout(this.timeout)
169
+ });
170
+ if (!response.ok) {
171
+ throw new Error(`Get observations failed: ${response.status} ${response.statusText}`);
172
+ }
173
+ return response.json();
174
+ }
175
+ /**
176
+ * Get timeline context around an observation
177
+ */
178
+ async getTimeline(sessionDbId, observationId, window = 5) {
179
+ const response = await fetch(`${this.baseUrl}/api/timeline?session=${sessionDbId}&observation=${observationId}&window=${window}`, {
180
+ signal: AbortSignal.timeout(this.timeout)
181
+ });
182
+ if (!response.ok) {
183
+ throw new Error(`Timeline fetch failed: ${response.status} ${response.statusText}`);
184
+ }
185
+ return response.json();
186
+ }
187
+ }
188
+ //# sourceMappingURL=worker-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-client.js","sourceRoot":"","sources":["../../src/integration/worker-client.ts"],"names":[],"mappings":"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"}
package/dist/test.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env bun
2
+ /**
3
+ * Test script for claude-mem OpenCode integration
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";AAEA;;GAEG"}