@the-magic-tower/fixhive-opencode-plugin 0.1.26 → 0.1.27

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.
@@ -0,0 +1,11 @@
1
+ /**
2
+ * FixHive OpenCode Plugin
3
+ * Community-based error knowledge sharing plugin for OpenCode
4
+ */
5
+ import type { Plugin } from '@opencode-ai/plugin';
6
+ /**
7
+ * FixHive Plugin Factory
8
+ */
9
+ export declare const FixHivePlugin: Plugin;
10
+ export default FixHivePlugin;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAuBlD;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,MAwJ3B,CAAC;AAoJF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * FixHive Custom Tools
3
+ * OpenCode plugin tools for error knowledge management
4
+ */
5
+ import { tool } from '@opencode-ai/plugin';
6
+ import type { LocalStore } from '../storage/local-store.js';
7
+ import type { CloudClient } from '../cloud/client.js';
8
+ import type { PrivacyFilter } from '../core/privacy-filter.js';
9
+ import type { FixHiveContext } from '../types/index.js';
10
+ /**
11
+ * Create FixHive tools for OpenCode plugin
12
+ * @returns Record of tool definitions
13
+ */
14
+ export declare function createTools(localStore: LocalStore, cloudClient: CloudClient, privacyFilter: PrivacyFilter, context: FixHiveContext): Record<string, ReturnType<typeof tool>>;
15
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/plugin/tools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,mBAAmB,CAAC;AAE/F;;;GAGG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,cAAc,GACtB,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAoOzC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * FixHive Local Store
3
+ * SQLite-based local storage for error records and caching
4
+ */
5
+ import Database from 'better-sqlite3';
6
+ import type { LocalErrorRecord, ErrorStatus, LocalStats, CloudKnowledgeEntry } from '../types/index.js';
7
+ /**
8
+ * LocalStore interface - defines all public methods
9
+ */
10
+ export interface LocalStore {
11
+ createErrorRecord(data: Omit<LocalErrorRecord, 'id' | 'errorHash' | 'status' | 'createdAt'>): LocalErrorRecord;
12
+ getErrorById(id: string): LocalErrorRecord | null;
13
+ getSessionErrors(sessionId: string, options?: {
14
+ status?: ErrorStatus;
15
+ limit?: number;
16
+ }): LocalErrorRecord[];
17
+ getUnresolvedErrors(sessionId: string): LocalErrorRecord[];
18
+ getRecentErrors(limit?: number): LocalErrorRecord[];
19
+ markResolved(id: string, data: {
20
+ resolution: string;
21
+ resolutionCode?: string;
22
+ }): LocalErrorRecord | null;
23
+ markUploaded(id: string, cloudKnowledgeId: string): void;
24
+ findSimilarErrors(errorHash: string): LocalErrorRecord[];
25
+ getCachedResults(errorHash: string): CloudKnowledgeEntry[] | null;
26
+ cacheResults(errorHash: string, results: CloudKnowledgeEntry[], expirationMs?: number): void;
27
+ clearExpiredCache(): number;
28
+ getStats(): LocalStats;
29
+ getPreference(key: string): string | null;
30
+ setPreference(key: string, value: string): void;
31
+ close(): void;
32
+ getDatabase(): Database.Database;
33
+ }
34
+ /**
35
+ * Create a LocalStore instance
36
+ * Factory function pattern to avoid ES6 class issues with Bun
37
+ */
38
+ export declare function createLocalStore(projectDirectory: string): LocalStore;
39
+ /**
40
+ * Legacy class wrapper for backwards compatibility
41
+ * @deprecated Use createLocalStore() instead
42
+ */
43
+ export declare const LocalStore: {
44
+ create: typeof createLocalStore;
45
+ };
46
+ //# sourceMappingURL=local-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-store.d.ts","sourceRoot":"","sources":["../../src/storage/local-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,OAAO,KAAK,EACV,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAc3B;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC,GAAG,gBAAgB,CAAC;IAC/G,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAAC;IAClD,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,gBAAgB,EAAE,CAAC;IAC5G,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAC3D,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAC;IACpD,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,gBAAgB,GAAG,IAAI,CAAC;IACzG,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAC;IACzD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,EAAE,GAAG,IAAI,CAAC;IAClE,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7F,iBAAiB,IAAI,MAAM,CAAC;IAC5B,QAAQ,IAAI,UAAU,CAAC;IACvB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1C,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,KAAK,IAAI,IAAI,CAAC;IACd,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAAC;CAClC;AA2BD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,UAAU,CA+RrE;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU;;CAEtB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * FixHive Database Migrations
3
+ * SQLite schema setup and migrations
4
+ */
5
+ import type Database from 'better-sqlite3';
6
+ /**
7
+ * Run all migrations on the database
8
+ */
9
+ export declare function runMigrations(db: Database.Database): void;
10
+ //# sourceMappingURL=migrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/storage/migrations.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAsBzD"}
@@ -0,0 +1,218 @@
1
+ /**
2
+ * FixHive Type Definitions
3
+ * Community-based error knowledge sharing for OpenCode
4
+ */
5
+ export type ErrorType = 'runtime' | 'build' | 'lint' | 'test' | 'network' | 'permission' | 'dependency' | 'syntax' | 'type_error' | 'unknown';
6
+ export type ErrorStatus = 'unresolved' | 'resolved' | 'uploaded';
7
+ export type Language = 'typescript' | 'javascript' | 'python' | 'rust' | 'go' | 'java' | 'ruby' | 'php' | 'csharp' | 'cpp' | 'other';
8
+ export type Severity = 'critical' | 'error' | 'warning';
9
+ export interface LocalErrorRecord {
10
+ id: string;
11
+ errorHash: string;
12
+ errorType: ErrorType;
13
+ errorMessage: string;
14
+ errorStack?: string;
15
+ language?: Language;
16
+ framework?: string;
17
+ toolName: string;
18
+ toolInput: Record<string, unknown>;
19
+ sessionId: string;
20
+ status: ErrorStatus;
21
+ resolution?: string;
22
+ resolutionCode?: string;
23
+ createdAt: string;
24
+ resolvedAt?: string;
25
+ uploadedAt?: string;
26
+ cloudKnowledgeId?: string;
27
+ }
28
+ export interface QueryCacheEntry {
29
+ id: string;
30
+ errorHash: string;
31
+ results: CloudKnowledgeEntry[];
32
+ createdAt: string;
33
+ expiresAt: string;
34
+ }
35
+ export interface LocalStats {
36
+ totalErrors: number;
37
+ resolvedErrors: number;
38
+ uploadedErrors: number;
39
+ }
40
+ export interface CloudKnowledgeEntry {
41
+ id: string;
42
+ errorHash: string;
43
+ errorType: ErrorType;
44
+ errorMessage: string;
45
+ errorStack?: string;
46
+ language: Language;
47
+ framework?: string;
48
+ dependencies?: Record<string, string>;
49
+ embedding?: number[];
50
+ resolutionDescription: string;
51
+ resolutionCode?: string;
52
+ resolutionSteps?: string[];
53
+ contributorId: string;
54
+ upvotes: number;
55
+ downvotes: number;
56
+ usageCount: number;
57
+ createdAt: string;
58
+ updatedAt: string;
59
+ isVerified: boolean;
60
+ similarity?: number;
61
+ }
62
+ export interface DuplicateCheckResult {
63
+ isDuplicate: boolean;
64
+ existingId?: string;
65
+ similarityScore: number;
66
+ }
67
+ export interface ContributorStats {
68
+ contributionCount: number;
69
+ helpedCount: number;
70
+ totalUpvotes: number;
71
+ }
72
+ export interface DetectedSignal {
73
+ type: 'exit_code' | 'stderr' | 'pattern' | 'stack_trace';
74
+ weight: number;
75
+ value: string | number;
76
+ description: string;
77
+ }
78
+ export interface ErrorDetectionResult {
79
+ detected: boolean;
80
+ confidence: number;
81
+ errorType: ErrorType;
82
+ severity: Severity;
83
+ signals: DetectedSignal[];
84
+ errorMessage: string;
85
+ errorStack?: string;
86
+ rawOutput: string;
87
+ }
88
+ export interface StackFrame {
89
+ function: string;
90
+ file: string;
91
+ line: number;
92
+ column?: number;
93
+ isProjectCode: boolean;
94
+ }
95
+ export interface StackTraceInfo {
96
+ hasStackTrace: boolean;
97
+ language: string | null;
98
+ frames: string[];
99
+ }
100
+ export interface FixHiveContext {
101
+ sessionId: string;
102
+ projectDirectory: string;
103
+ language?: Language;
104
+ framework?: string;
105
+ }
106
+ export interface ToolOutput {
107
+ tool: string;
108
+ output: string;
109
+ exitCode?: number;
110
+ stderr?: string;
111
+ metadata?: Record<string, unknown>;
112
+ }
113
+ export interface PrivacyFilterRule {
114
+ name: string;
115
+ category: 'secret' | 'identity' | 'infrastructure' | 'path' | 'environment';
116
+ pattern: RegExp;
117
+ replacement: string | ((match: string, ...groups: string[]) => string);
118
+ priority: number;
119
+ }
120
+ export interface SanitizedContent {
121
+ original: string;
122
+ sanitized: string;
123
+ redactedCount: number;
124
+ appliedFilters: string[];
125
+ }
126
+ export interface FilterContext {
127
+ projectRoot: string;
128
+ homeDir: string;
129
+ commonPaths: Map<string, string>;
130
+ }
131
+ export interface SearchRequest {
132
+ errorMessage: string;
133
+ errorStack?: string;
134
+ language?: Language;
135
+ framework?: string;
136
+ limit?: number;
137
+ threshold?: number;
138
+ }
139
+ export interface SearchResponse {
140
+ results: CloudKnowledgeEntry[];
141
+ queryTime: number;
142
+ cached: boolean;
143
+ }
144
+ export interface UploadRequest {
145
+ errorRecord: LocalErrorRecord;
146
+ resolution: string;
147
+ resolutionCode?: string;
148
+ resolutionSteps?: string[];
149
+ }
150
+ export interface UploadResponse {
151
+ success: boolean;
152
+ knowledgeId?: string;
153
+ isDuplicate: boolean;
154
+ existingId?: string;
155
+ message: string;
156
+ }
157
+ export interface QueryKnowledgeArgs {
158
+ errorMessage: string;
159
+ language?: string;
160
+ framework?: string;
161
+ limit?: number;
162
+ }
163
+ export interface SubmitResolutionArgs {
164
+ errorId: string;
165
+ resolution: string;
166
+ resolutionCode?: string;
167
+ }
168
+ export interface ListErrorsArgs {
169
+ status?: ErrorStatus;
170
+ limit?: number;
171
+ }
172
+ export interface MarkResolvedArgs {
173
+ errorId: string;
174
+ resolution: string;
175
+ resolutionCode?: string;
176
+ upload?: boolean;
177
+ }
178
+ export interface VoteArgs {
179
+ knowledgeId: string;
180
+ helpful: boolean;
181
+ }
182
+ export interface FixHiveConfig {
183
+ supabaseUrl: string;
184
+ supabaseAnonKey: string;
185
+ openaiApiKey?: string;
186
+ contributorId: string;
187
+ cacheExpirationMs: number;
188
+ embeddingModel: string;
189
+ embeddingDimensions: number;
190
+ similarityThreshold: number;
191
+ maxSearchResults: number;
192
+ }
193
+ export interface PartialConfig {
194
+ supabaseUrl?: string;
195
+ supabaseAnonKey?: string;
196
+ openaiApiKey?: string;
197
+ contributorId?: string;
198
+ cacheExpirationMs?: number;
199
+ }
200
+ export type FixHiveEvent = {
201
+ type: 'error:detected';
202
+ payload: LocalErrorRecord;
203
+ } | {
204
+ type: 'error:resolved';
205
+ payload: {
206
+ errorId: string;
207
+ resolution: string;
208
+ };
209
+ } | {
210
+ type: 'solution:uploaded';
211
+ payload: {
212
+ knowledgeId: string;
213
+ };
214
+ } | {
215
+ type: 'solution:found';
216
+ payload: CloudKnowledgeEntry[];
217
+ };
218
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@the-magic-tower/fixhive-opencode-plugin",
3
- "version": "0.1.26",
3
+ "version": "0.1.27",
4
4
  "description": "Community-based error knowledge sharing for OpenCode",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -15,9 +15,8 @@
15
15
  "dist"
16
16
  ],
17
17
  "scripts": {
18
- "build": "tsup",
19
- "build:legacy": "bun build src/index.ts --outdir dist --format esm --target node --external @supabase/supabase-js --external better-sqlite3 --external openai --external uuid --external @opencode-ai/plugin --external zod && tsc --emitDeclarationOnly --declaration --outDir dist",
20
- "dev": "tsup --watch",
18
+ "build": "bun build src/index.ts --outdir dist --target bun --format esm --external better-sqlite3 && tsc --emitDeclarationOnly --declaration --outDir dist",
19
+ "dev": "bun build src/index.ts --outdir dist --target bun --format esm --external better-sqlite3 --watch",
21
20
  "typecheck": "tsc --noEmit",
22
21
  "lint": "eslint src --ext .ts",
23
22
  "test": "vitest",
@@ -40,20 +39,16 @@
40
39
  "type": "git",
41
40
  "url": "https://github.com/TheMagicTower/FixHive.git"
42
41
  },
43
- "peerDependencies": {
44
- "@opencode-ai/plugin": "^1.1.1",
45
- "zod": ">=3.22.0"
46
- },
47
42
  "dependencies": {
43
+ "@opencode-ai/plugin": "^1.1.1",
48
44
  "@supabase/supabase-js": "2.43.2",
49
45
  "better-sqlite3": "^12.5.0",
50
46
  "openai": "^6.16.0",
51
- "uuid": "^13.0.0"
47
+ "uuid": "^13.0.0",
48
+ "zod": "^4.1.8"
52
49
  },
53
50
  "devDependencies": {
54
- "@opencode-ai/plugin": "^1.1.1",
55
51
  "@types/better-sqlite3": "^7.6.11",
56
- "zod": "^4.1.8",
57
52
  "@types/node": "^25.0.3",
58
53
  "@types/uuid": "^10.0.0",
59
54
  "@typescript-eslint/eslint-plugin": "^8.0.0",