@elasto/nyx-cli 0.1.0
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/README.md +136 -0
- package/bin/nyx.js +3 -0
- package/dist/agent/index.d.ts +29 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +362 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/prompt.d.ts +16 -0
- package/dist/agent/prompt.d.ts.map +1 -0
- package/dist/agent/prompt.js +487 -0
- package/dist/agent/prompt.js.map +1 -0
- package/dist/agent/templates/index.d.ts +2 -0
- package/dist/agent/templates/index.d.ts.map +1 -0
- package/dist/agent/templates/index.js +44 -0
- package/dist/agent/templates/index.js.map +1 -0
- package/dist/auth/index.d.ts +23 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +161 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/commands/login.d.ts +3 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +32 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +3 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +13 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/logs.d.ts +3 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +29 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/root.d.ts +3 -0
- package/dist/commands/root.d.ts.map +1 -0
- package/dist/commands/root.js +27 -0
- package/dist/commands/root.js.map +1 -0
- package/dist/commands/run.d.ts +3 -0
- package/dist/commands/run.d.ts.map +1 -0
- package/dist/commands/run.js +74 -0
- package/dist/commands/run.js.map +1 -0
- package/dist/commands/session.d.ts +3 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +61 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/config/index.d.ts +22 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +110 -0
- package/dist/config/index.js.map +1 -0
- package/dist/db/index.d.ts +5 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +72 -0
- package/dist/db/index.js.map +1 -0
- package/dist/events/index.d.ts +3 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +45 -0
- package/dist/events/index.js.map +1 -0
- package/dist/filetracker/index.d.ts +8 -0
- package/dist/filetracker/index.d.ts.map +1 -0
- package/dist/filetracker/index.js +21 -0
- package/dist/filetracker/index.js.map +1 -0
- package/dist/hooks/index.d.ts +13 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +42 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +140 -0
- package/dist/index.js.map +1 -0
- package/dist/logging/index.d.ts +16 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +76 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/lsp/index.d.ts +10 -0
- package/dist/lsp/index.d.ts.map +1 -0
- package/dist/lsp/index.js +130 -0
- package/dist/lsp/index.js.map +1 -0
- package/dist/mcp/index.d.ts +11 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +102 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/permissions/index.d.ts +13 -0
- package/dist/permissions/index.d.ts.map +1 -0
- package/dist/permissions/index.js +96 -0
- package/dist/permissions/index.js.map +1 -0
- package/dist/session/index.d.ts +25 -0
- package/dist/session/index.d.ts.map +1 -0
- package/dist/session/index.js +100 -0
- package/dist/session/index.js.map +1 -0
- package/dist/shell/index.d.ts +8 -0
- package/dist/shell/index.d.ts.map +1 -0
- package/dist/shell/index.js +29 -0
- package/dist/shell/index.js.map +1 -0
- package/dist/skills/index.d.ts +9 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +53 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/tools/bash.d.ts +35 -0
- package/dist/tools/bash.d.ts.map +1 -0
- package/dist/tools/bash.js +44 -0
- package/dist/tools/bash.js.map +1 -0
- package/dist/tools/diagnostics.d.ts +19 -0
- package/dist/tools/diagnostics.d.ts.map +1 -0
- package/dist/tools/diagnostics.js +45 -0
- package/dist/tools/diagnostics.js.map +1 -0
- package/dist/tools/edit.d.ts +31 -0
- package/dist/tools/edit.d.ts.map +1 -0
- package/dist/tools/edit.js +72 -0
- package/dist/tools/edit.js.map +1 -0
- package/dist/tools/glob.d.ts +23 -0
- package/dist/tools/glob.d.ts.map +1 -0
- package/dist/tools/glob.js +40 -0
- package/dist/tools/glob.js.map +1 -0
- package/dist/tools/grep.d.ts +31 -0
- package/dist/tools/grep.d.ts.map +1 -0
- package/dist/tools/grep.js +72 -0
- package/dist/tools/grep.js.map +1 -0
- package/dist/tools/index.d.ts +9 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +78 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/job_output.d.ts +49 -0
- package/dist/tools/job_output.d.ts.map +1 -0
- package/dist/tools/job_output.js +57 -0
- package/dist/tools/job_output.js.map +1 -0
- package/dist/tools/ls.d.ts +19 -0
- package/dist/tools/ls.d.ts.map +1 -0
- package/dist/tools/ls.js +55 -0
- package/dist/tools/ls.js.map +1 -0
- package/dist/tools/todos.d.ts +41 -0
- package/dist/tools/todos.d.ts.map +1 -0
- package/dist/tools/todos.js +54 -0
- package/dist/tools/todos.js.map +1 -0
- package/dist/tools/view.d.ts +27 -0
- package/dist/tools/view.d.ts.map +1 -0
- package/dist/tools/view.js +59 -0
- package/dist/tools/view.js.map +1 -0
- package/dist/tools/web_fetch.d.ts +24 -0
- package/dist/tools/web_fetch.d.ts.map +1 -0
- package/dist/tools/web_fetch.js +43 -0
- package/dist/tools/web_fetch.js.map +1 -0
- package/dist/tools/web_search.d.ts +23 -0
- package/dist/tools/web_search.d.ts.map +1 -0
- package/dist/tools/web_search.js +41 -0
- package/dist/tools/web_search.js.map +1 -0
- package/dist/tools/write.d.ts +23 -0
- package/dist/tools/write.d.ts.map +1 -0
- package/dist/tools/write.js +39 -0
- package/dist/tools/write.js.map +1 -0
- package/dist/types/index.d.ts +136 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/ui/index.d.ts +3 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +318 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/util/diff.d.ts +17 -0
- package/dist/util/diff.d.ts.map +1 -0
- package/dist/util/diff.js +74 -0
- package/dist/util/diff.js.map +1 -0
- package/dist/util/index.d.ts +6 -0
- package/dist/util/index.d.ts.map +1 -0
- package/dist/util/index.js +33 -0
- package/dist/util/index.js.map +1 -0
- package/dist/workspace/index.d.ts +6 -0
- package/dist/workspace/index.d.ts.map +1 -0
- package/dist/workspace/index.js +133 -0
- package/dist/workspace/index.js.map +1 -0
- package/package.json +47 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AAMrC,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAQ1D;AAwCD,wBAAgB,KAAK,IAAI,QAAQ,CAAC,QAAQ,CAGzC;AAED,wBAAgB,KAAK,SAKpB"}
|
package/dist/db/index.js
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.connect = connect;
|
|
7
|
+
exports.getDb = getDb;
|
|
8
|
+
exports.close = close;
|
|
9
|
+
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
10
|
+
const fs_1 = require("fs");
|
|
11
|
+
const path_1 = require("path");
|
|
12
|
+
let db = null;
|
|
13
|
+
function connect(dataDir) {
|
|
14
|
+
if (db)
|
|
15
|
+
return db;
|
|
16
|
+
(0, fs_1.mkdirSync)(dataDir, { recursive: true });
|
|
17
|
+
db = new better_sqlite3_1.default((0, path_1.join)(dataDir, 'nyx.db'));
|
|
18
|
+
db.pragma('journal_mode = WAL');
|
|
19
|
+
db.pragma('foreign_keys = ON');
|
|
20
|
+
migrate();
|
|
21
|
+
return db;
|
|
22
|
+
}
|
|
23
|
+
function migrate() {
|
|
24
|
+
if (!db)
|
|
25
|
+
return;
|
|
26
|
+
db.exec(`
|
|
27
|
+
CREATE TABLE IF NOT EXISTS sessions (
|
|
28
|
+
id TEXT PRIMARY KEY,
|
|
29
|
+
title TEXT NOT NULL DEFAULT 'Untitled Session',
|
|
30
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
31
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
32
|
+
prompt_tokens INTEGER NOT NULL DEFAULT 0,
|
|
33
|
+
completion_tokens INTEGER NOT NULL DEFAULT 0,
|
|
34
|
+
cost REAL NOT NULL DEFAULT 0.0,
|
|
35
|
+
summary_message_id TEXT,
|
|
36
|
+
todos TEXT DEFAULT '[]'
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
CREATE TABLE IF NOT EXISTS messages (
|
|
40
|
+
id TEXT PRIMARY KEY,
|
|
41
|
+
session_id TEXT NOT NULL REFERENCES sessions(id) ON DELETE CASCADE,
|
|
42
|
+
role TEXT NOT NULL,
|
|
43
|
+
content TEXT NOT NULL DEFAULT '',
|
|
44
|
+
model TEXT,
|
|
45
|
+
provider TEXT,
|
|
46
|
+
tool_calls TEXT DEFAULT '[]',
|
|
47
|
+
tool_call_id TEXT,
|
|
48
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
CREATE TABLE IF NOT EXISTS projects (
|
|
52
|
+
path TEXT PRIMARY KEY,
|
|
53
|
+
name TEXT NOT NULL,
|
|
54
|
+
last_opened TEXT NOT NULL DEFAULT (datetime('now'))
|
|
55
|
+
);
|
|
56
|
+
|
|
57
|
+
CREATE INDEX IF NOT EXISTS idx_messages_session ON messages(session_id);
|
|
58
|
+
CREATE INDEX IF NOT EXISTS idx_sessions_updated ON sessions(updated_at DESC);
|
|
59
|
+
`);
|
|
60
|
+
}
|
|
61
|
+
function getDb() {
|
|
62
|
+
if (!db)
|
|
63
|
+
throw new Error('Database not connected. Call connect() first.');
|
|
64
|
+
return db;
|
|
65
|
+
}
|
|
66
|
+
function close() {
|
|
67
|
+
if (db) {
|
|
68
|
+
db.close();
|
|
69
|
+
db = null;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":";;;;;AAMA,0BAQC;AAwCD,sBAGC;AAED,sBAKC;AAhED,oEAAqC;AACrC,2BAA8B;AAC9B,+BAA2B;AAE3B,IAAI,EAAE,GAA6B,IAAI,CAAA;AAEvC,SAAgB,OAAO,CAAC,OAAe;IACrC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAA;IACjB,IAAA,cAAS,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACvC,EAAE,GAAG,IAAI,wBAAQ,CAAC,IAAA,WAAI,EAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;IAC1C,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAC/B,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;IAC9B,OAAO,EAAE,CAAA;IACT,OAAO,EAAE,CAAA;AACX,CAAC;AAED,SAAS,OAAO;IACd,IAAI,CAAC,EAAE;QAAE,OAAM;IACf,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCP,CAAC,CAAA;AACJ,CAAC;AAED,SAAgB,KAAK;IACnB,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IACzE,OAAO,EAAE,CAAA;AACX,CAAC;AAED,SAAgB,KAAK;IACnB,IAAI,EAAE,EAAE,CAAC;QACP,EAAE,CAAC,KAAK,EAAE,CAAA;QACV,EAAE,GAAG,IAAI,CAAA;IACX,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AA6BA,wBAAgB,IAAI,SAKnB;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,QAWxE"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.init = init;
|
|
4
|
+
exports.track = track;
|
|
5
|
+
const crypto_1 = require("crypto");
|
|
6
|
+
const fs_1 = require("fs");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
const index_js_1 = require("../config/index.js");
|
|
9
|
+
const index_js_2 = require("../logging/index.js");
|
|
10
|
+
let deviceId = '';
|
|
11
|
+
let enabled = true;
|
|
12
|
+
function getDeviceId() {
|
|
13
|
+
if (deviceId)
|
|
14
|
+
return deviceId;
|
|
15
|
+
const idPath = (0, path_1.join)(index_js_1.GLOBAL_DATA_DIR, 'device_id');
|
|
16
|
+
if ((0, fs_1.existsSync)(idPath)) {
|
|
17
|
+
deviceId = (0, fs_1.readFileSync)(idPath, 'utf-8').trim();
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
(0, fs_1.mkdirSync)(index_js_1.GLOBAL_DATA_DIR, { recursive: true });
|
|
21
|
+
deviceId = (0, crypto_1.randomUUID)();
|
|
22
|
+
(0, fs_1.writeFileSync)(idPath, deviceId);
|
|
23
|
+
}
|
|
24
|
+
return deviceId;
|
|
25
|
+
}
|
|
26
|
+
function init() {
|
|
27
|
+
deviceId = getDeviceId();
|
|
28
|
+
if (process.env.NYX_DISABLE_METRICS === '1' || process.env.DO_NOT_TRACK === '1') {
|
|
29
|
+
enabled = false;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function track(event, properties = {}) {
|
|
33
|
+
if (!enabled)
|
|
34
|
+
return;
|
|
35
|
+
const ev = {
|
|
36
|
+
event,
|
|
37
|
+
properties,
|
|
38
|
+
timestamp: new Date().toISOString(),
|
|
39
|
+
deviceId: getDeviceId(),
|
|
40
|
+
};
|
|
41
|
+
index_js_2.logger.debug('Telemetry:', event, properties);
|
|
42
|
+
// In production, send to PostHog or similar
|
|
43
|
+
// For now, just log
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":";;AA6BA,oBAKC;AAED,sBAWC;AA/CD,mCAAmC;AACnC,2BAAuE;AACvE,+BAA2B;AAC3B,iDAAoD;AACpD,kDAA4C;AAS5C,IAAI,QAAQ,GAAW,EAAE,CAAA;AACzB,IAAI,OAAO,GAAG,IAAI,CAAA;AAElB,SAAS,WAAW;IAClB,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAA;IAC7B,MAAM,MAAM,GAAG,IAAA,WAAI,EAAC,0BAAe,EAAE,WAAW,CAAC,CAAA;IACjD,IAAI,IAAA,eAAU,EAAC,MAAM,CAAC,EAAE,CAAC;QACvB,QAAQ,GAAG,IAAA,iBAAY,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAA;IACjD,CAAC;SAAM,CAAC;QACN,IAAA,cAAS,EAAC,0BAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/C,QAAQ,GAAG,IAAA,mBAAU,GAAE,CAAA;QACvB,IAAA,kBAAa,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAgB,IAAI;IAClB,QAAQ,GAAG,WAAW,EAAE,CAAA;IACxB,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,GAAG,EAAE,CAAC;QAChF,OAAO,GAAG,KAAK,CAAA;IACjB,CAAC;AACH,CAAC;AAED,SAAgB,KAAK,CAAC,KAAa,EAAE,aAAkC,EAAE;IACvE,IAAI,CAAC,OAAO;QAAE,OAAM;IACpB,MAAM,EAAE,GAAmB;QACzB,KAAK;QACL,UAAU;QACV,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,QAAQ,EAAE,WAAW,EAAE;KACxB,CAAA;IACD,iBAAM,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,EAAE,UAAU,CAAC,CAAA;IAC7C,4CAA4C;IAC5C,oBAAoB;AACtB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/filetracker/index.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAA4B;IAE3C,KAAK,CAAC,QAAQ,EAAE,MAAM;IAKtB,eAAe,IAAI,MAAM,EAAE;IAI3B,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIvC,KAAK;CAGN"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FileTracker = void 0;
|
|
4
|
+
class FileTracker {
|
|
5
|
+
touched = new Map();
|
|
6
|
+
track(filePath) {
|
|
7
|
+
const existing = this.touched.get(filePath) || 0;
|
|
8
|
+
this.touched.set(filePath, existing + 1);
|
|
9
|
+
}
|
|
10
|
+
getTouchedFiles() {
|
|
11
|
+
return Array.from(this.touched.keys());
|
|
12
|
+
}
|
|
13
|
+
getTouchCount(filePath) {
|
|
14
|
+
return this.touched.get(filePath) || 0;
|
|
15
|
+
}
|
|
16
|
+
clear() {
|
|
17
|
+
this.touched.clear();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.FileTracker = FileTracker;
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/filetracker/index.ts"],"names":[],"mappings":";;;AAAA,MAAa,WAAW;IACd,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAA;IAE3C,KAAK,CAAC,QAAgB;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAChD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAA;IAC1C,CAAC;IAED,eAAe;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IACxC,CAAC;IAED,aAAa,CAAC,QAAgB;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IACtB,CAAC;CACF;AAnBD,kCAmBC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { HookConfig } from '../types/index.js';
|
|
2
|
+
export interface HookEvent {
|
|
3
|
+
event: 'PreToolUse' | 'PostToolUse' | 'PrePrompt' | 'PostPrompt';
|
|
4
|
+
tool?: string;
|
|
5
|
+
args?: Record<string, any>;
|
|
6
|
+
prompt?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class HookEngine {
|
|
9
|
+
private hooks;
|
|
10
|
+
constructor(hooks?: HookConfig[]);
|
|
11
|
+
run(event: HookEvent): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAGnD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,YAAY,GAAG,aAAa,GAAG,WAAW,GAAG,YAAY,CAAA;IAChE,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAAc;gBAEf,KAAK,GAAE,UAAU,EAAO;IAI9B,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CA4B3C"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HookEngine = void 0;
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
5
|
+
const os_1 = require("os");
|
|
6
|
+
const index_js_1 = require("../logging/index.js");
|
|
7
|
+
class HookEngine {
|
|
8
|
+
hooks;
|
|
9
|
+
constructor(hooks = []) {
|
|
10
|
+
this.hooks = hooks;
|
|
11
|
+
}
|
|
12
|
+
async run(event) {
|
|
13
|
+
const matchingHooks = this.hooks.filter((h) => h.event === event.event);
|
|
14
|
+
if (matchingHooks.length === 0)
|
|
15
|
+
return;
|
|
16
|
+
const shell = (0, os_1.platform)() === 'win32' ? 'cmd.exe' : '/bin/bash';
|
|
17
|
+
const shellFlag = (0, os_1.platform)() === 'win32' ? '/c' : '-c';
|
|
18
|
+
for (const hook of matchingHooks) {
|
|
19
|
+
try {
|
|
20
|
+
index_js_1.logger.debug(`Running hook: ${hook.event} -> ${hook.command}`);
|
|
21
|
+
(0, child_process_1.execSync)(`${shellFlag} "${hook.command}"`, {
|
|
22
|
+
timeout: hook.timeout || 10000,
|
|
23
|
+
encoding: 'utf-8',
|
|
24
|
+
shell,
|
|
25
|
+
windowsHide: true,
|
|
26
|
+
env: {
|
|
27
|
+
...process.env,
|
|
28
|
+
NYX_EVENT: event.event,
|
|
29
|
+
NYX_TOOL: event.tool || '',
|
|
30
|
+
NYX_ARGS: JSON.stringify(event.args || {}),
|
|
31
|
+
NYX_PROMPT: event.prompt || '',
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
index_js_1.logger.warn(`Hook failed: ${hook.command}`, err.message);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.HookEngine = HookEngine;
|
|
42
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":";;;AAAA,iDAAwC;AACxC,2BAA6B;AAE7B,kDAA4C;AAS5C,MAAa,UAAU;IACb,KAAK,CAAc;IAE3B,YAAY,QAAsB,EAAE;QAClC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAgB;QACxB,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAAC,CAAA;QACvE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAM;QAEtC,MAAM,KAAK,GAAG,IAAA,aAAQ,GAAE,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAA;QAC9D,MAAM,SAAS,GAAG,IAAA,aAAQ,GAAE,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;QAEtD,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,iBAAM,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;gBAC9D,IAAA,wBAAQ,EAAC,GAAG,SAAS,KAAK,IAAI,CAAC,OAAO,GAAG,EAAE;oBACzC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK;oBAC9B,QAAQ,EAAE,OAAO;oBACjB,KAAK;oBACL,WAAW,EAAE,IAAI;oBACjB,GAAG,EAAE;wBACH,GAAG,OAAO,CAAC,GAAG;wBACd,SAAS,EAAE,KAAK,CAAC,KAAK;wBACtB,QAAQ,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;wBAC1B,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;wBAC1C,UAAU,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;qBAC/B;iBACF,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAClB,iBAAM,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAnCD,gCAmCC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const dotenv_1 = require("dotenv");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
// Load .env from the CLI's own directory, not the current working directory
|
|
9
|
+
(0, dotenv_1.config)({ path: (0, path_1.resolve)(__dirname, '../.env') });
|
|
10
|
+
const root_js_1 = require("./commands/root.js");
|
|
11
|
+
const index_js_1 = require("./config/index.js");
|
|
12
|
+
const index_js_2 = require("./logging/index.js");
|
|
13
|
+
const index_js_3 = require("./db/index.js");
|
|
14
|
+
const index_js_4 = require("./events/index.js");
|
|
15
|
+
const index_js_5 = require("./auth/index.js");
|
|
16
|
+
const index_js_6 = require("./session/index.js");
|
|
17
|
+
const index_js_7 = require("./ui/index.js");
|
|
18
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
19
|
+
const LOGO = chalk_1.default.cyan(`
|
|
20
|
+
███╗ ██╗██╗ ██╗██╗ ██╗
|
|
21
|
+
████╗ ██║╚██╗ ██╔╝╚██╗██╔╝
|
|
22
|
+
██╔██╗ ██║ ╚████╔╝ ╚███╔╝
|
|
23
|
+
██║╚██╗██║ ╚██╔╝ ██╔██╗
|
|
24
|
+
██║ ╚████║ ██║ ██╔╝ ██╗
|
|
25
|
+
╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═╝
|
|
26
|
+
`);
|
|
27
|
+
async function showWelcome(config, resumeSession) {
|
|
28
|
+
console.log(LOGO);
|
|
29
|
+
console.log(chalk_1.default.bold(' Nyx - Terminal AI Coding Assistant\n'));
|
|
30
|
+
// by Elasto Web Services
|
|
31
|
+
console.log(chalk_1.default.dim('by Elasto Web Services\n\n'));
|
|
32
|
+
console.log(chalk_1.default.dim(' Commands:'));
|
|
33
|
+
console.log(chalk_1.default.dim(' /run <prompt> ') + 'Run a prompt');
|
|
34
|
+
console.log(chalk_1.default.dim(' /login ') + 'Log in via browser');
|
|
35
|
+
console.log(chalk_1.default.dim(' /login --signup') + 'Create account');
|
|
36
|
+
console.log(chalk_1.default.dim(' /logout ') + 'Log out');
|
|
37
|
+
console.log(chalk_1.default.dim(' /session ') + 'Manage sessions');
|
|
38
|
+
console.log(chalk_1.default.dim(' /logs ') + 'View logs');
|
|
39
|
+
console.log(chalk_1.default.dim(' /help ') + 'Show help\n');
|
|
40
|
+
if (resumeSession) {
|
|
41
|
+
const sessions = new index_js_6.SessionService();
|
|
42
|
+
const sess = sessions.get(resumeSession);
|
|
43
|
+
if (sess) {
|
|
44
|
+
console.log(chalk_1.default.dim(` Resuming session: ${sess.title} (${sess.id.substring(0, 8)})`));
|
|
45
|
+
const count = sessions.getMessages(resumeSession).length;
|
|
46
|
+
console.log(chalk_1.default.dim(` ${count} previous messages loaded\n`));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const auth = new index_js_5.Auth(config.webUrl, config.apiUrl);
|
|
50
|
+
if (auth.isLoggedIn()) {
|
|
51
|
+
const token = auth.getToken();
|
|
52
|
+
const user = token?.user;
|
|
53
|
+
console.log(chalk_1.default.green(` \u2713 Logged in as ${user?.email || '(unknown)'}`));
|
|
54
|
+
if (user?.name)
|
|
55
|
+
console.log(chalk_1.default.dim(` Name: ${user.name}`));
|
|
56
|
+
// Fetch fresh usage from API
|
|
57
|
+
try {
|
|
58
|
+
const res = await fetch(`${auth.getApiUrl()}/api/auth/me`, { headers: auth.getHeaders() });
|
|
59
|
+
if (res.ok) {
|
|
60
|
+
const data = await res.json();
|
|
61
|
+
const profile = data.user || data;
|
|
62
|
+
const used = profile.tokensUsed ?? 0;
|
|
63
|
+
const limit = profile.tokenLimit ?? 0;
|
|
64
|
+
const pct = limit > 0 ? ` (${Math.round(used / limit * 100)}%)` : '';
|
|
65
|
+
console.log(chalk_1.default.dim(` Plan: ${profile.plan || 'free'} Tokens: ${used.toLocaleString()} / ${limit.toLocaleString()}${pct}`));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch { }
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
console.log(chalk_1.default.yellow(' \u26A0 Not logged in'));
|
|
72
|
+
console.log(chalk_1.default.dim(' Run') + ' nyx login ' + chalk_1.default.dim('to authenticate via browser'));
|
|
73
|
+
console.log();
|
|
74
|
+
const answer = await askYesNo(' Login now?');
|
|
75
|
+
if (answer) {
|
|
76
|
+
try {
|
|
77
|
+
await auth.login();
|
|
78
|
+
console.log(chalk_1.default.green(' \u2713 Logged in successfully!\n'));
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
console.log(chalk_1.default.yellow(' ' + err.message));
|
|
82
|
+
console.log(chalk_1.default.dim(' Continuing without login...\n'));
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
async function askYesNo(prompt) {
|
|
88
|
+
return new Promise((resolve) => {
|
|
89
|
+
process.stdout.write(prompt + ' (y/N): ');
|
|
90
|
+
const onData = (data) => {
|
|
91
|
+
process.stdin.removeListener('data', onData);
|
|
92
|
+
const answer = data.toString().trim().toLowerCase();
|
|
93
|
+
process.stdout.write('\n');
|
|
94
|
+
resolve(answer === 'y' || answer === 'yes');
|
|
95
|
+
};
|
|
96
|
+
process.stdin.resume();
|
|
97
|
+
process.stdin.on('data', onData);
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
async function main() {
|
|
101
|
+
const config = new index_js_1.Config();
|
|
102
|
+
index_js_2.logger.init(config.dataDirectory, config.isDebug());
|
|
103
|
+
(0, index_js_3.connect)(config.dataDirectory);
|
|
104
|
+
(0, index_js_4.init)();
|
|
105
|
+
const args = process.argv.slice(2);
|
|
106
|
+
const commandNames = new Set(root_js_1.rootCmd.commands.map((c) => c.name()));
|
|
107
|
+
const firstArg = args.find((a) => !a.startsWith('-'));
|
|
108
|
+
const hasExplicitCommand = firstArg ? commandNames.has(firstArg) : false;
|
|
109
|
+
if (firstArg && !commandNames.has(firstArg) && !args.includes('--help') && !args.includes('-h')) {
|
|
110
|
+
console.error(`Unknown command: ${firstArg}`);
|
|
111
|
+
console.error(`Run 'nyx --help' for available commands`);
|
|
112
|
+
process.exit(1);
|
|
113
|
+
}
|
|
114
|
+
if (hasExplicitCommand) {
|
|
115
|
+
await root_js_1.rootCmd.parseAsync(process.argv);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (args.includes('--version') || args.includes('-v') || args.includes('--help') || args.includes('-h')) {
|
|
119
|
+
await root_js_1.rootCmd.parseAsync(process.argv);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
// Handle --continue and --sid flags for session resumption
|
|
123
|
+
let resumeSession;
|
|
124
|
+
if (args.includes('--continue') || args.includes('-C')) {
|
|
125
|
+
const sessions = new index_js_6.SessionService();
|
|
126
|
+
const recent = sessions.list(1);
|
|
127
|
+
if (recent.length > 0)
|
|
128
|
+
resumeSession = recent[0].id;
|
|
129
|
+
}
|
|
130
|
+
const sidIndex = args.indexOf('--sid');
|
|
131
|
+
if (sidIndex >= 0 && sidIndex + 1 < args.length)
|
|
132
|
+
resumeSession = args[sidIndex + 1];
|
|
133
|
+
await showWelcome(config, resumeSession);
|
|
134
|
+
await (0, index_js_7.startInteractiveTUI)(config, resumeSession);
|
|
135
|
+
}
|
|
136
|
+
main().catch((err) => {
|
|
137
|
+
index_js_2.logger.error('Fatal error:', err);
|
|
138
|
+
process.exit(1);
|
|
139
|
+
});
|
|
140
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
declare class Logger {
|
|
2
|
+
private logPath;
|
|
3
|
+
private minLevel;
|
|
4
|
+
private debugMode;
|
|
5
|
+
init(dataDir: string, debug?: boolean): void;
|
|
6
|
+
private log;
|
|
7
|
+
debug(msg: string, ...args: any[]): void;
|
|
8
|
+
info(msg: string, ...args: any[]): void;
|
|
9
|
+
warn(msg: string, ...args: any[]): void;
|
|
10
|
+
error(msg: string, ...args: any[]): void;
|
|
11
|
+
tail(lines?: number): string[];
|
|
12
|
+
follow(callback: (line: string) => void): () => void;
|
|
13
|
+
}
|
|
14
|
+
export declare const logger: Logger;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"AAMA,cAAM,MAAM;IACV,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,SAAS,CAAQ;IAEzB,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO;IAQrC,OAAO,CAAC,GAAG;IAYX,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IACjC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAChC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;IAEjC,IAAI,CAAC,KAAK,GAAE,MAAY,GAAG,MAAM,EAAE;IAQnC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;CAmBrD;AAED,eAAO,MAAM,MAAM,QAAe,CAAA"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logger = void 0;
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const LOG_LEVELS = { debug: 0, info: 1, warn: 2, error: 3 };
|
|
7
|
+
class Logger {
|
|
8
|
+
logPath = '';
|
|
9
|
+
minLevel = 'warn';
|
|
10
|
+
debugMode = false;
|
|
11
|
+
init(dataDir, debug) {
|
|
12
|
+
const logsDir = (0, path_1.join)(dataDir, 'logs');
|
|
13
|
+
(0, fs_1.mkdirSync)(logsDir, { recursive: true });
|
|
14
|
+
this.logPath = (0, path_1.join)(logsDir, 'nyx.log');
|
|
15
|
+
this.debugMode = debug || false;
|
|
16
|
+
this.minLevel = debug ? 'debug' : 'warn';
|
|
17
|
+
}
|
|
18
|
+
log(level, msg, ...args) {
|
|
19
|
+
if (LOG_LEVELS[level] < LOG_LEVELS[this.minLevel])
|
|
20
|
+
return;
|
|
21
|
+
const ts = new Date().toISOString();
|
|
22
|
+
const extra = args.length > 0 ? ' ' + args.map(a => {
|
|
23
|
+
try {
|
|
24
|
+
return JSON.stringify(a);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return String(a);
|
|
28
|
+
}
|
|
29
|
+
}).join(' ') : '';
|
|
30
|
+
const line = `[${ts}] ${level.toUpperCase()}: ${msg}${extra}\n`;
|
|
31
|
+
if (this.logPath) {
|
|
32
|
+
try {
|
|
33
|
+
(0, fs_1.appendFileSync)(this.logPath, line);
|
|
34
|
+
}
|
|
35
|
+
catch { }
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
debug(msg, ...args) { this.log('debug', msg, ...args); }
|
|
39
|
+
info(msg, ...args) { this.log('info', msg, ...args); }
|
|
40
|
+
warn(msg, ...args) { this.log('warn', msg, ...args); }
|
|
41
|
+
error(msg, ...args) { this.log('error', msg, ...args); }
|
|
42
|
+
tail(lines = 100) {
|
|
43
|
+
if (!(0, fs_1.existsSync)(this.logPath))
|
|
44
|
+
return [];
|
|
45
|
+
try {
|
|
46
|
+
const content = require('fs').readFileSync(this.logPath, 'utf-8');
|
|
47
|
+
return content.split('\n').filter(Boolean).slice(-lines);
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
follow(callback) {
|
|
54
|
+
if (!(0, fs_1.existsSync)(this.logPath))
|
|
55
|
+
return () => { };
|
|
56
|
+
const fs = require('fs');
|
|
57
|
+
let pos = fs.statSync(this.logPath).size;
|
|
58
|
+
const interval = setInterval(() => {
|
|
59
|
+
try {
|
|
60
|
+
const stats = fs.statSync(this.logPath);
|
|
61
|
+
if (stats.size > pos) {
|
|
62
|
+
const fd = fs.openSync(this.logPath, 'r');
|
|
63
|
+
const buf = Buffer.alloc(stats.size - pos);
|
|
64
|
+
fs.readSync(fd, buf, 0, buf.length, pos);
|
|
65
|
+
fs.closeSync(fd);
|
|
66
|
+
pos = stats.size;
|
|
67
|
+
buf.toString().split('\n').filter(Boolean).forEach(callback);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
catch { }
|
|
71
|
+
}, 500);
|
|
72
|
+
return () => clearInterval(interval);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.logger = new Logger();
|
|
76
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { LSPConfig } from '../types/index.js';
|
|
2
|
+
export declare class LSPManager {
|
|
3
|
+
private clients;
|
|
4
|
+
start(language: string, config: LSPConfig): Promise<void>;
|
|
5
|
+
getDiagnostics(language: string, filePath: string, content: string): Promise<any[]>;
|
|
6
|
+
private sendRequest;
|
|
7
|
+
private sendNotification;
|
|
8
|
+
stopAll(): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lsp/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AASlD,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAA+B;IAExC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAwCzD,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YA2D3E,WAAW;YAQX,gBAAgB;IAQ9B,OAAO;CAaR"}
|