@quantiya/codevibe-claude-plugin 1.0.10 → 1.0.12
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/plugin.json +1 -1
- package/README.md +75 -245
- package/dist/server.js +16 -1162
- package/node_modules/@quantiya/codevibe-core/README.md +15 -6
- package/node_modules/@quantiya/codevibe-core/bin/codevibe.js +1 -1
- package/node_modules/@quantiya/codevibe-core/dist/index.js +216 -67
- package/node_modules/@quantiya/codevibe-core/package.json +12 -9
- package/node_modules/node-abi/abi_registry.json +7 -0
- package/node_modules/node-abi/package.json +1 -1
- package/package.json +11 -21
- package/dist/appsync-client.d.ts +0 -67
- package/dist/appsync-client.d.ts.map +0 -1
- package/dist/appsync-client.js +0 -858
- package/dist/appsync-client.js.map +0 -1
- package/dist/auth-cli.d.ts +0 -18
- package/dist/auth-cli.d.ts.map +0 -1
- package/dist/auth-cli.js +0 -472
- package/dist/auth-cli.js.map +0 -1
- package/dist/command-executor.d.ts +0 -20
- package/dist/command-executor.d.ts.map +0 -1
- package/dist/command-executor.js +0 -127
- package/dist/command-executor.js.map +0 -1
- package/dist/config.d.ts +0 -25
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -106
- package/dist/config.js.map +0 -1
- package/dist/crypto-service.d.ts +0 -115
- package/dist/crypto-service.d.ts.map +0 -1
- package/dist/crypto-service.js +0 -278
- package/dist/crypto-service.js.map +0 -1
- package/dist/http-api.d.ts +0 -35
- package/dist/http-api.d.ts.map +0 -1
- package/dist/http-api.js +0 -334
- package/dist/http-api.js.map +0 -1
- package/dist/key-manager.d.ts +0 -87
- package/dist/key-manager.d.ts.map +0 -1
- package/dist/key-manager.js +0 -287
- package/dist/key-manager.js.map +0 -1
- package/dist/logger.d.ts +0 -2
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -18
- package/dist/logger.js.map +0 -1
- package/dist/prompt-responder.d.ts +0 -22
- package/dist/prompt-responder.d.ts.map +0 -1
- package/dist/prompt-responder.js +0 -132
- package/dist/prompt-responder.js.map +0 -1
- package/dist/server.d.ts +0 -9
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/token-storage.d.ts +0 -39
- package/dist/token-storage.d.ts.map +0 -1
- package/dist/token-storage.js +0 -169
- package/dist/token-storage.js.map +0 -1
- package/dist/types.d.ts +0 -110
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -17
- package/dist/types.js.map +0 -1
- package/node_modules/@quantiya/codevibe-core/dist/appsync/appsync-client.js +0 -576
- package/node_modules/@quantiya/codevibe-core/dist/appsync/index.js +0 -10
- package/node_modules/@quantiya/codevibe-core/dist/appsync/queries.js +0 -189
- package/node_modules/@quantiya/codevibe-core/dist/auth/auth-cli.js +0 -217
- package/node_modules/@quantiya/codevibe-core/dist/auth/auth-service.js +0 -464
- package/node_modules/@quantiya/codevibe-core/dist/auth/fetch-helpers.js +0 -165
- package/node_modules/@quantiya/codevibe-core/dist/auth/index.js +0 -9
- package/node_modules/@quantiya/codevibe-core/dist/config/config.js +0 -123
- package/node_modules/@quantiya/codevibe-core/dist/config/index.js +0 -8
- package/node_modules/@quantiya/codevibe-core/dist/crypto/crypto-service.js +0 -284
- package/node_modules/@quantiya/codevibe-core/dist/crypto/index.js +0 -9
- package/node_modules/@quantiya/codevibe-core/dist/keychain/index.js +0 -8
- package/node_modules/@quantiya/codevibe-core/dist/keychain/keychain-manager.js +0 -375
- package/node_modules/@quantiya/codevibe-core/dist/logger/index.js +0 -8
- package/node_modules/@quantiya/codevibe-core/dist/logger/logger.js +0 -142
- package/node_modules/@quantiya/codevibe-core/dist/prompt-parser.js +0 -236
- package/node_modules/@quantiya/codevibe-core/dist/session/index.js +0 -7
- package/node_modules/@quantiya/codevibe-core/dist/session/session-resume.js +0 -151
- package/node_modules/@quantiya/codevibe-core/dist/types/auth.js +0 -3
- package/node_modules/@quantiya/codevibe-core/dist/types/encryption.js +0 -3
- package/node_modules/@quantiya/codevibe-core/dist/types/events.js +0 -28
- package/node_modules/@quantiya/codevibe-core/dist/types/index.js +0 -22
- package/node_modules/@quantiya/codevibe-core/dist/types/session.js +0 -22
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-service.js","sourceRoot":"","sources":["../src/crypto-service.ts"],"names":[],"mappings":"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"}
|
package/dist/http-api.d.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { EventPayload } from './types';
|
|
2
|
-
export declare class HttpApi {
|
|
3
|
-
private app;
|
|
4
|
-
private server;
|
|
5
|
-
private eventHandler?;
|
|
6
|
-
private assignedPort;
|
|
7
|
-
private sessionId?;
|
|
8
|
-
constructor();
|
|
9
|
-
/**
|
|
10
|
-
* Set the session ID for this server instance (used for port file naming)
|
|
11
|
-
*/
|
|
12
|
-
setSessionId(sessionId: string): void;
|
|
13
|
-
/**
|
|
14
|
-
* Get the assigned port after server starts
|
|
15
|
-
*/
|
|
16
|
-
getPort(): number;
|
|
17
|
-
private setupMiddleware;
|
|
18
|
-
private setupRoutes;
|
|
19
|
-
private handleHealth;
|
|
20
|
-
private handleEvent;
|
|
21
|
-
private handleTestExecute;
|
|
22
|
-
private transformHookToEvent;
|
|
23
|
-
onEvent(handler: (payload: EventPayload) => Promise<void>): void;
|
|
24
|
-
start(sessionId?: string): Promise<number>;
|
|
25
|
-
/**
|
|
26
|
-
* Write port to a session-specific file for hooks to discover
|
|
27
|
-
*/
|
|
28
|
-
private writePortFile;
|
|
29
|
-
/**
|
|
30
|
-
* Remove the port file on shutdown
|
|
31
|
-
*/
|
|
32
|
-
private removePortFile;
|
|
33
|
-
stop(): Promise<void>;
|
|
34
|
-
}
|
|
35
|
-
//# sourceMappingURL=http-api.d.ts.map
|
package/dist/http-api.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http-api.d.ts","sourceRoot":"","sources":["../src/http-api.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAqE,MAAM,SAAS,CAAC;AAE1G,qBAAa,OAAO;IAClB,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,YAAY,CAAC,CAA2C;IAChE,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,SAAS,CAAC,CAAS;;IAQ3B;;OAEG;IACI,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI5C;;OAEG;IACI,OAAO,IAAI,MAAM;IAIxB,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,YAAY;YAaN,WAAW;YAuDX,iBAAiB;IA+B/B,OAAO,CAAC,oBAAoB;IAkErB,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAM1D,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqCvD;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,cAAc;IAeT,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAoBnC"}
|
package/dist/http-api.js
DELETED
|
@@ -1,334 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.HttpApi = void 0;
|
|
40
|
-
const express_1 = __importDefault(require("express"));
|
|
41
|
-
const fs = __importStar(require("fs"));
|
|
42
|
-
const path = __importStar(require("path"));
|
|
43
|
-
const os = __importStar(require("os"));
|
|
44
|
-
const codevibe_core_1 = require("@quantiya/codevibe-core");
|
|
45
|
-
const logger_1 = require("./logger");
|
|
46
|
-
const types_1 = require("./types");
|
|
47
|
-
class HttpApi {
|
|
48
|
-
constructor() {
|
|
49
|
-
this.assignedPort = 0;
|
|
50
|
-
this.app = (0, express_1.default)();
|
|
51
|
-
this.setupMiddleware();
|
|
52
|
-
this.setupRoutes();
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Set the session ID for this server instance (used for port file naming)
|
|
56
|
-
*/
|
|
57
|
-
setSessionId(sessionId) {
|
|
58
|
-
this.sessionId = sessionId;
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Get the assigned port after server starts
|
|
62
|
-
*/
|
|
63
|
-
getPort() {
|
|
64
|
-
return this.assignedPort;
|
|
65
|
-
}
|
|
66
|
-
setupMiddleware() {
|
|
67
|
-
// Parse JSON bodies
|
|
68
|
-
this.app.use(express_1.default.json({ limit: '1mb' }));
|
|
69
|
-
// Request logging
|
|
70
|
-
this.app.use((req, res, next) => {
|
|
71
|
-
logger_1.logger.debug(`${req.method} ${req.path}`, {
|
|
72
|
-
body: req.body,
|
|
73
|
-
query: req.query,
|
|
74
|
-
});
|
|
75
|
-
next();
|
|
76
|
-
});
|
|
77
|
-
// Error handling middleware
|
|
78
|
-
this.app.use((err, req, res, next) => {
|
|
79
|
-
logger_1.logger.error('Express error:', err);
|
|
80
|
-
const response = {
|
|
81
|
-
success: false,
|
|
82
|
-
error: err.message || 'Internal server error',
|
|
83
|
-
};
|
|
84
|
-
res.status(500).json(response);
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
setupRoutes() {
|
|
88
|
-
// Health check endpoint
|
|
89
|
-
this.app.get('/health', this.handleHealth.bind(this));
|
|
90
|
-
// Event endpoint for hooks
|
|
91
|
-
this.app.post('/event', this.handleEvent.bind(this));
|
|
92
|
-
// Development testing endpoint
|
|
93
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
94
|
-
this.app.post('/test/execute', this.handleTestExecute.bind(this));
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
handleHealth(req, res) {
|
|
98
|
-
const response = {
|
|
99
|
-
success: true,
|
|
100
|
-
data: {
|
|
101
|
-
status: 'healthy',
|
|
102
|
-
uptime: process.uptime(),
|
|
103
|
-
version: '0.1.0',
|
|
104
|
-
timestamp: new Date().toISOString(),
|
|
105
|
-
},
|
|
106
|
-
};
|
|
107
|
-
res.json(response);
|
|
108
|
-
}
|
|
109
|
-
async handleEvent(req, res) {
|
|
110
|
-
try {
|
|
111
|
-
const hookInput = req.body;
|
|
112
|
-
// Validate required fields
|
|
113
|
-
if (!hookInput.session_id) {
|
|
114
|
-
const response = {
|
|
115
|
-
success: false,
|
|
116
|
-
error: 'Missing required field: session_id',
|
|
117
|
-
};
|
|
118
|
-
res.status(400).json(response);
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
if (!hookInput.hook_event_name) {
|
|
122
|
-
const response = {
|
|
123
|
-
success: false,
|
|
124
|
-
error: 'Missing required field: hook_event_name',
|
|
125
|
-
};
|
|
126
|
-
res.status(400).json(response);
|
|
127
|
-
return;
|
|
128
|
-
}
|
|
129
|
-
// Transform hook input to event payload
|
|
130
|
-
const eventPayload = this.transformHookToEvent(hookInput);
|
|
131
|
-
logger_1.logger.info('Received event from hook', {
|
|
132
|
-
sessionId: hookInput.session_id,
|
|
133
|
-
hookEvent: hookInput.hook_event_name,
|
|
134
|
-
type: eventPayload.type,
|
|
135
|
-
});
|
|
136
|
-
// Call event handler if registered
|
|
137
|
-
if (this.eventHandler) {
|
|
138
|
-
await this.eventHandler(eventPayload);
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
logger_1.logger.warn('No event handler registered');
|
|
142
|
-
}
|
|
143
|
-
const response = {
|
|
144
|
-
success: true,
|
|
145
|
-
message: 'Event processed successfully',
|
|
146
|
-
};
|
|
147
|
-
res.json(response);
|
|
148
|
-
}
|
|
149
|
-
catch (error) {
|
|
150
|
-
logger_1.logger.error('Error handling event:', error);
|
|
151
|
-
const response = {
|
|
152
|
-
success: false,
|
|
153
|
-
error: error instanceof Error ? error.message : 'Unknown error',
|
|
154
|
-
};
|
|
155
|
-
res.status(500).json(response);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
async handleTestExecute(req, res) {
|
|
159
|
-
try {
|
|
160
|
-
const { sessionId, prompt } = req.body;
|
|
161
|
-
if (!sessionId || !prompt) {
|
|
162
|
-
const response = {
|
|
163
|
-
success: false,
|
|
164
|
-
error: 'Missing required fields: sessionId, prompt',
|
|
165
|
-
};
|
|
166
|
-
res.status(400).json(response);
|
|
167
|
-
return;
|
|
168
|
-
}
|
|
169
|
-
logger_1.logger.info('Test execute request', { sessionId, prompt });
|
|
170
|
-
const response = {
|
|
171
|
-
success: true,
|
|
172
|
-
message: 'Test execution endpoint - not implemented yet',
|
|
173
|
-
data: { sessionId, prompt },
|
|
174
|
-
};
|
|
175
|
-
res.json(response);
|
|
176
|
-
}
|
|
177
|
-
catch (error) {
|
|
178
|
-
logger_1.logger.error('Error in test execute:', error);
|
|
179
|
-
const response = {
|
|
180
|
-
success: false,
|
|
181
|
-
error: error instanceof Error ? error.message : 'Unknown error',
|
|
182
|
-
};
|
|
183
|
-
res.status(500).json(response);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
transformHookToEvent(hookInput) {
|
|
187
|
-
let type;
|
|
188
|
-
let content;
|
|
189
|
-
const metadata = {
|
|
190
|
-
cwd: hookInput.cwd,
|
|
191
|
-
hook_event_name: hookInput.hook_event_name,
|
|
192
|
-
...(hookInput.metadata || {}), // Merge any metadata from hook
|
|
193
|
-
};
|
|
194
|
-
// Check if hook explicitly provides type and content (from Stop hook transcript parsing)
|
|
195
|
-
if (hookInput.type && hookInput.content !== undefined) {
|
|
196
|
-
type = hookInput.type;
|
|
197
|
-
content = hookInput.content;
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
// Determine event type and content based on hook event name
|
|
201
|
-
switch (hookInput.hook_event_name) {
|
|
202
|
-
case 'SessionStart':
|
|
203
|
-
type = types_1.EventType.NOTIFICATION;
|
|
204
|
-
content = 'Session started';
|
|
205
|
-
metadata.source = hookInput.source;
|
|
206
|
-
break;
|
|
207
|
-
case 'SessionEnd':
|
|
208
|
-
type = types_1.EventType.NOTIFICATION;
|
|
209
|
-
content = `Session ended: ${hookInput.reason || 'unknown'}`;
|
|
210
|
-
metadata.reason = hookInput.reason;
|
|
211
|
-
break;
|
|
212
|
-
case 'UserPromptSubmit':
|
|
213
|
-
type = types_1.EventType.USER_PROMPT;
|
|
214
|
-
content = hookInput.prompt || '';
|
|
215
|
-
break;
|
|
216
|
-
case 'PostToolUse':
|
|
217
|
-
type = types_1.EventType.TOOL_USE;
|
|
218
|
-
content = JSON.stringify({
|
|
219
|
-
tool_name: hookInput.tool_name,
|
|
220
|
-
tool_input: hookInput.tool_input,
|
|
221
|
-
tool_response: hookInput.tool_response,
|
|
222
|
-
});
|
|
223
|
-
metadata.tool_name = hookInput.tool_name;
|
|
224
|
-
break;
|
|
225
|
-
case 'Notification':
|
|
226
|
-
type = types_1.EventType.NOTIFICATION;
|
|
227
|
-
content = hookInput.message || '';
|
|
228
|
-
metadata.notification_type = hookInput.notification_type;
|
|
229
|
-
break;
|
|
230
|
-
default:
|
|
231
|
-
type = types_1.EventType.NOTIFICATION;
|
|
232
|
-
content = `Hook event: ${hookInput.hook_event_name}`;
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
return {
|
|
236
|
-
session_id: hookInput.session_id,
|
|
237
|
-
hook_event_name: hookInput.hook_event_name,
|
|
238
|
-
type,
|
|
239
|
-
source: types_1.EventSource.DESKTOP, // Events from hooks are always from desktop
|
|
240
|
-
content,
|
|
241
|
-
metadata,
|
|
242
|
-
};
|
|
243
|
-
}
|
|
244
|
-
// Register event handler
|
|
245
|
-
onEvent(handler) {
|
|
246
|
-
this.eventHandler = handler;
|
|
247
|
-
}
|
|
248
|
-
// Start the HTTP server with dynamic port allocation
|
|
249
|
-
async start(sessionId) {
|
|
250
|
-
// Use provided sessionId or the one set earlier
|
|
251
|
-
const sid = sessionId || this.sessionId;
|
|
252
|
-
if (sid) {
|
|
253
|
-
this.sessionId = sid;
|
|
254
|
-
}
|
|
255
|
-
return new Promise((resolve, reject) => {
|
|
256
|
-
try {
|
|
257
|
-
const config = (0, codevibe_core_1.getConfig)();
|
|
258
|
-
// Use port 0 for dynamic allocation, or configured port as fallback
|
|
259
|
-
const requestedPort = config.server.dynamicPort ? 0 : config.server.port;
|
|
260
|
-
this.server = this.app.listen(requestedPort, config.server.host, () => {
|
|
261
|
-
const address = this.server.address();
|
|
262
|
-
this.assignedPort = address.port;
|
|
263
|
-
logger_1.logger.info(`HTTP API listening on http://${config.server.host}:${this.assignedPort}`);
|
|
264
|
-
// Write port to session-specific file for hooks to discover
|
|
265
|
-
if (this.sessionId) {
|
|
266
|
-
this.writePortFile(this.sessionId, this.assignedPort);
|
|
267
|
-
}
|
|
268
|
-
resolve(this.assignedPort);
|
|
269
|
-
});
|
|
270
|
-
this.server.on('error', (error) => {
|
|
271
|
-
logger_1.logger.error('HTTP server error:', error);
|
|
272
|
-
reject(error);
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
catch (error) {
|
|
276
|
-
reject(error);
|
|
277
|
-
}
|
|
278
|
-
});
|
|
279
|
-
}
|
|
280
|
-
/**
|
|
281
|
-
* Write port to a session-specific file for hooks to discover
|
|
282
|
-
*/
|
|
283
|
-
writePortFile(sessionId, port) {
|
|
284
|
-
const portFilePath = path.join(os.tmpdir(), `codevibe-claude-${sessionId}.port`);
|
|
285
|
-
try {
|
|
286
|
-
fs.writeFileSync(portFilePath, port.toString());
|
|
287
|
-
logger_1.logger.info(`Port file written: ${portFilePath} -> ${port}`);
|
|
288
|
-
}
|
|
289
|
-
catch (error) {
|
|
290
|
-
logger_1.logger.error(`Failed to write port file: ${portFilePath}`, error);
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* Remove the port file on shutdown
|
|
295
|
-
*/
|
|
296
|
-
removePortFile() {
|
|
297
|
-
if (this.sessionId) {
|
|
298
|
-
const portFilePath = path.join(os.tmpdir(), `codevibe-claude-${this.sessionId}.port`);
|
|
299
|
-
try {
|
|
300
|
-
if (fs.existsSync(portFilePath)) {
|
|
301
|
-
fs.unlinkSync(portFilePath);
|
|
302
|
-
logger_1.logger.info(`Port file removed: ${portFilePath}`);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
catch (error) {
|
|
306
|
-
logger_1.logger.warn(`Failed to remove port file: ${portFilePath}`, error);
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
}
|
|
310
|
-
// Stop the HTTP server
|
|
311
|
-
async stop() {
|
|
312
|
-
return new Promise((resolve, reject) => {
|
|
313
|
-
// Remove port file first
|
|
314
|
-
this.removePortFile();
|
|
315
|
-
if (this.server) {
|
|
316
|
-
this.server.close((err) => {
|
|
317
|
-
if (err) {
|
|
318
|
-
logger_1.logger.error('Error stopping HTTP server:', err);
|
|
319
|
-
reject(err);
|
|
320
|
-
}
|
|
321
|
-
else {
|
|
322
|
-
logger_1.logger.info('HTTP API stopped');
|
|
323
|
-
resolve();
|
|
324
|
-
}
|
|
325
|
-
});
|
|
326
|
-
}
|
|
327
|
-
else {
|
|
328
|
-
resolve();
|
|
329
|
-
}
|
|
330
|
-
});
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
exports.HttpApi = HttpApi;
|
|
334
|
-
//# sourceMappingURL=http-api.js.map
|
package/dist/http-api.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http-api.js","sourceRoot":"","sources":["../src/http-api.ts"],"names":[],"mappings":"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"}
|
package/dist/key-manager.d.ts
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { EncryptedSessionKey } from './types';
|
|
2
|
-
export declare class KeyManagerError extends Error {
|
|
3
|
-
constructor(message: string);
|
|
4
|
-
}
|
|
5
|
-
/**
|
|
6
|
-
* Manages device and session encryption keys
|
|
7
|
-
*/
|
|
8
|
-
export declare class KeyManager {
|
|
9
|
-
private static instance;
|
|
10
|
-
private deviceKey;
|
|
11
|
-
private sessionKeyCache;
|
|
12
|
-
private isRegistered;
|
|
13
|
-
private constructor();
|
|
14
|
-
static getInstance(): KeyManager;
|
|
15
|
-
/**
|
|
16
|
-
* Get or generate the device ID
|
|
17
|
-
*/
|
|
18
|
-
getDeviceId(): string;
|
|
19
|
-
/**
|
|
20
|
-
* Get the current device's key pair, generating if needed
|
|
21
|
-
*/
|
|
22
|
-
getOrCreateDeviceKeyPair(): {
|
|
23
|
-
privateKey: string;
|
|
24
|
-
publicKey: string;
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* Get the device's public key (base64)
|
|
28
|
-
*/
|
|
29
|
-
getDevicePublicKey(): string;
|
|
30
|
-
/**
|
|
31
|
-
* Check if we have a device key
|
|
32
|
-
*/
|
|
33
|
-
hasDeviceKey(): boolean;
|
|
34
|
-
/**
|
|
35
|
-
* Check if device key is registered with backend
|
|
36
|
-
*/
|
|
37
|
-
getIsRegistered(): boolean;
|
|
38
|
-
/**
|
|
39
|
-
* Set registration status
|
|
40
|
-
*/
|
|
41
|
-
setIsRegistered(registered: boolean): void;
|
|
42
|
-
/**
|
|
43
|
-
* Get session key for a session, decrypting from encryptedKeys if needed
|
|
44
|
-
*/
|
|
45
|
-
getSessionKey(sessionId: string, encryptedKeys?: EncryptedSessionKey[]): string | null;
|
|
46
|
-
/**
|
|
47
|
-
* Generate and encrypt a new session key for all devices
|
|
48
|
-
*/
|
|
49
|
-
createSessionKey(devicePublicKeys: Array<{
|
|
50
|
-
deviceId: string;
|
|
51
|
-
publicKey: string;
|
|
52
|
-
}>): {
|
|
53
|
-
sessionKey: string;
|
|
54
|
-
encryptedKeys: EncryptedSessionKey[];
|
|
55
|
-
};
|
|
56
|
-
/**
|
|
57
|
-
* Cache a session key (after successfully decrypting or creating)
|
|
58
|
-
*/
|
|
59
|
-
cacheSessionKey(sessionId: string, sessionKey: string): void;
|
|
60
|
-
/**
|
|
61
|
-
* Clear cached session key (on session end)
|
|
62
|
-
*/
|
|
63
|
-
clearSessionKey(sessionId: string): void;
|
|
64
|
-
/**
|
|
65
|
-
* Clear all cached session keys (on sign out)
|
|
66
|
-
*/
|
|
67
|
-
clearAllSessionKeys(): void;
|
|
68
|
-
private ensureConfigDir;
|
|
69
|
-
private getKeyFilePath;
|
|
70
|
-
private loadDeviceKey;
|
|
71
|
-
private saveDeviceKey;
|
|
72
|
-
private generateAndStoreDeviceKey;
|
|
73
|
-
/**
|
|
74
|
-
* Get device name for registration
|
|
75
|
-
*/
|
|
76
|
-
getDeviceName(): string;
|
|
77
|
-
/**
|
|
78
|
-
* Get platform for registration
|
|
79
|
-
*/
|
|
80
|
-
getDevicePlatform(): string;
|
|
81
|
-
/**
|
|
82
|
-
* Clear all encryption data (on sign out)
|
|
83
|
-
*/
|
|
84
|
-
clearAllData(): void;
|
|
85
|
-
}
|
|
86
|
-
export declare const keyManager: KeyManager;
|
|
87
|
-
//# sourceMappingURL=key-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"key-manager.d.ts","sourceRoot":"","sources":["../src/key-manager.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,mBAAmB,EAAa,MAAM,SAAS,CAAC;AAIzD,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAiBD;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAa;IACpC,OAAO,CAAC,SAAS,CAAgC;IACjD,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,YAAY,CAAkB;IAEtC,OAAO;IAKP,MAAM,CAAC,WAAW,IAAI,UAAU;IAShC;;OAEG;IACH,WAAW,IAAI,MAAM;IAUrB;;OAEG;IACH,wBAAwB,IAAI;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAWrE;;OAEG;IACH,kBAAkB,IAAI,MAAM;IAK5B;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAM1C;;OAEG;IACH,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,mBAAmB,EAAE,GACpC,MAAM,GAAG,IAAI;IAmChB;;OAEG;IACH,gBAAgB,CACd,gBAAgB,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,GAC/D;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,mBAAmB,EAAE,CAAA;KAAE;IAqB/D;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAI5D;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIxC;;OAEG;IACH,mBAAmB,IAAI,IAAI;IAM3B,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,aAAa;IAmBrB,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,yBAAyB;IAiBjC;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,iBAAiB,IAAI,MAAM;IAY3B;;OAEG;IACH,YAAY,IAAI,IAAI;CAUrB;AAGD,eAAO,MAAM,UAAU,YAA2B,CAAC"}
|