@nex-ai/nex 0.1.28 → 0.1.30
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 +25 -8
- package/dist/agent/message-router.d.ts +26 -0
- package/dist/agent/message-router.js +114 -0
- package/dist/agent/message-router.js.map +1 -0
- package/dist/agent/orchestrate.d.ts +26 -0
- package/dist/agent/orchestrate.js +87 -0
- package/dist/agent/orchestrate.js.map +1 -0
- package/dist/agent/providers/types.d.ts +5 -0
- package/dist/agent/providers/types.js +2 -0
- package/dist/agent/providers/types.js.map +1 -0
- package/dist/agent/queues.d.ts +1 -0
- package/dist/agent/queues.js +3 -0
- package/dist/agent/queues.js.map +1 -1
- package/dist/agent/templates.js +10 -3
- package/dist/agent/templates.js.map +1 -1
- package/dist/agent/tick-manager.d.ts +20 -0
- package/dist/agent/tick-manager.js +50 -0
- package/dist/agent/tick-manager.js.map +1 -0
- package/dist/commands/dispatch.d.ts +5 -0
- package/dist/commands/dispatch.js +120 -0
- package/dist/commands/dispatch.js.map +1 -1
- package/dist/commands/init.d.ts +1 -1
- package/dist/commands/init.js +11 -19
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/setup.js +9 -11
- package/dist/commands/setup.js.map +1 -1
- package/dist/index.js +90 -22
- package/dist/index.js.map +1 -1
- package/dist/lib/claude-code-installer.d.ts +8 -0
- package/dist/lib/claude-code-installer.js +76 -0
- package/dist/lib/claude-code-installer.js.map +1 -0
- package/dist/lib/errors.js +1 -1
- package/dist/lib/errors.js.map +1 -1
- package/dist/lib/installers.d.ts +4 -0
- package/dist/lib/installers.js +8 -4
- package/dist/lib/installers.js.map +1 -1
- package/dist/lib/nex-mcp-config.d.ts +11 -4
- package/dist/lib/nex-mcp-config.js +15 -8
- package/dist/lib/nex-mcp-config.js.map +1 -1
- package/dist/plugin/auto-capture.js +1 -0
- package/dist/plugin/auto-capture.js.map +1 -1
- package/dist/plugin/auto-register.d.ts +1 -1
- package/dist/plugin/auto-register.js +13 -8
- package/dist/plugin/auto-register.js.map +1 -1
- package/dist/plugin/config.d.ts +7 -16
- package/dist/plugin/config.js +16 -36
- package/dist/plugin/config.js.map +1 -1
- package/dist/plugin/nex-client.js +1 -1
- package/dist/plugin/nex-client.js.map +1 -1
- package/dist/plugin/shared.d.ts +1 -0
- package/dist/plugin/shared.js +134 -4
- package/dist/plugin/shared.js.map +1 -1
- package/dist/tui/app.js +10 -105
- package/dist/tui/app.js.map +1 -1
- package/dist/tui/components/agent-roster.d.ts +7 -0
- package/dist/tui/components/agent-roster.js +66 -0
- package/dist/tui/components/agent-roster.js.map +1 -0
- package/dist/tui/register-views.js +7 -1
- package/dist/tui/register-views.js.map +1 -1
- package/dist/tui/services/agent-service.d.ts +2 -0
- package/dist/tui/services/agent-service.js +5 -0
- package/dist/tui/services/agent-service.js.map +1 -1
- package/dist/tui/slash-commands.d.ts +2 -0
- package/dist/tui/slash-commands.js +151 -8
- package/dist/tui/slash-commands.js.map +1 -1
- package/dist/tui/views/stream.d.ts +19 -0
- package/dist/tui/views/stream.js +343 -0
- package/dist/tui/views/stream.js.map +1 -0
- package/package.json +2 -1
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Usage: node dist/auto-register.js <email> [name] [company]
|
|
6
6
|
*
|
|
7
|
-
* On success: prints API key and saves to ~/.nex
|
|
7
|
+
* On success: prints API key and saves to ~/.nex/config.json.
|
|
8
8
|
* If already registered (API key exists): prints status and exits.
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
10
|
+
import { loadConfig, ConfigError, persistRegistration, loadBaseUrl, MCP_CONFIG_PATH } from "./config.js";
|
|
11
11
|
import { NexClient } from "./nex-client.js";
|
|
12
12
|
async function main() {
|
|
13
13
|
const email = process.argv[2];
|
|
@@ -17,15 +17,20 @@ async function main() {
|
|
|
17
17
|
console.error("Usage: auto-register.js <email> [name] [company]");
|
|
18
18
|
process.exit(1);
|
|
19
19
|
}
|
|
20
|
-
// Check if already registered
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
// Check if already registered (checks ~/.nex/config.json then legacy ~/.nex-mcp.json)
|
|
21
|
+
try {
|
|
22
|
+
const existing = loadConfig();
|
|
23
23
|
console.log("Already registered.");
|
|
24
|
-
console.log(` API key: ${existing.
|
|
24
|
+
console.log(` API key: ${existing.apiKey.slice(0, 12)}...`);
|
|
25
25
|
console.log(` Config: ${MCP_CONFIG_PATH}`);
|
|
26
|
-
console.log("\nTo re-register, delete ~/.nex
|
|
26
|
+
console.log("\nTo re-register, delete ~/.nex/config.json first.");
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
if (!(err instanceof ConfigError))
|
|
31
|
+
throw err;
|
|
32
|
+
// No API key found — proceed with registration
|
|
33
|
+
}
|
|
29
34
|
const baseUrl = loadBaseUrl();
|
|
30
35
|
console.log(`Registering ${email} at ${baseUrl} ...`);
|
|
31
36
|
try {
|
|
@@ -35,7 +40,7 @@ async function main() {
|
|
|
35
40
|
console.error("Response:", JSON.stringify(result, null, 2));
|
|
36
41
|
process.exit(1);
|
|
37
42
|
}
|
|
38
|
-
// Persist to
|
|
43
|
+
// Persist to ~/.nex/config.json
|
|
39
44
|
persistRegistration(result);
|
|
40
45
|
console.log("Registration successful!");
|
|
41
46
|
console.log(` API key: ${result.api_key.slice(0, 12)}...`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-register.js","sourceRoot":"","sources":["../../src/plugin/auto-register.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"auto-register.js","sourceRoot":"","sources":["../../src/plugin/auto-register.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACzG,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,KAAK,UAAU,IAAI;IACjB,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEhC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,sFAAsF;IACtF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,cAAc,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,aAAa,eAAe,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,CAAC,GAAG,YAAY,WAAW,CAAC;YAAE,MAAM,GAAG,CAAC;QAC7C,+CAA+C;IACjD,CAAC;IAED,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,OAAO,OAAO,MAAM,CAAC,CAAC;IAEtD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEvE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YACjE,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,gCAAgC;QAChC,mBAAmB,CAAC,MAAiC,CAAC,CAAC;QAEvD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,cAAc,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,cAAc;YAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QAChF,OAAO,CAAC,GAAG,CAAC,eAAe,eAAe,EAAE,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
|
package/dist/plugin/config.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Plugin configuration — reads from environment variables,
|
|
3
|
-
* with fallback to ~/.nex
|
|
3
|
+
* with fallback to ~/.nex/config.json.
|
|
4
4
|
*/
|
|
5
5
|
export interface NexConfig {
|
|
6
6
|
apiKey: string;
|
|
@@ -17,24 +17,15 @@ export interface ScanConfig {
|
|
|
17
17
|
export declare class ConfigError extends Error {
|
|
18
18
|
constructor(message: string);
|
|
19
19
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
interface McpConfig {
|
|
24
|
-
api_key?: string;
|
|
25
|
-
base_url?: string;
|
|
26
|
-
workspace_id?: string;
|
|
27
|
-
workspace_slug?: string;
|
|
28
|
-
}
|
|
29
|
-
/** Read ~/.nex-mcp.json (shared with MCP server registration). */
|
|
30
|
-
export declare function loadMcpConfig(): McpConfig;
|
|
31
|
-
/** Write registration data to ~/.nex-mcp.json. */
|
|
20
|
+
declare const CONFIG_PATH: string;
|
|
21
|
+
export { CONFIG_PATH as MCP_CONFIG_PATH };
|
|
22
|
+
/** Write registration data to ~/.nex/config.json. */
|
|
32
23
|
export declare function persistRegistration(data: Record<string, unknown>): void;
|
|
33
24
|
/**
|
|
34
|
-
* Load config from environment variables, with fallback to ~/.nex
|
|
25
|
+
* Load config from environment variables, with fallback to ~/.nex/config.json.
|
|
35
26
|
*
|
|
36
|
-
* Priority: NEX_API_KEY env > ~/.nex
|
|
37
|
-
* If
|
|
27
|
+
* Priority: NEX_API_KEY env > ~/.nex/config.json
|
|
28
|
+
* If none is set, throws ConfigError with registration instructions.
|
|
38
29
|
*/
|
|
39
30
|
export declare function loadConfig(): NexConfig;
|
|
40
31
|
/**
|
package/dist/plugin/config.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Plugin configuration — reads from environment variables,
|
|
3
|
-
* with fallback to ~/.nex
|
|
3
|
+
* with fallback to ~/.nex/config.json.
|
|
4
4
|
*/
|
|
5
5
|
import { readFileSync, writeFileSync, mkdirSync } from "node:fs";
|
|
6
6
|
import { join, dirname } from "node:path";
|
|
@@ -11,34 +11,21 @@ export class ConfigError extends Error {
|
|
|
11
11
|
this.name = "ConfigError";
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
-
export { MCP_CONFIG_PATH };
|
|
19
|
-
/** Read ~/.nex-mcp.json (shared with MCP server registration). */
|
|
20
|
-
export function loadMcpConfig() {
|
|
14
|
+
const CONFIG_PATH = join(homedir(), ".nex", "config.json");
|
|
15
|
+
export { CONFIG_PATH as MCP_CONFIG_PATH };
|
|
16
|
+
/** Read ~/.nex/config.json. */
|
|
17
|
+
function loadFileConfig() {
|
|
21
18
|
try {
|
|
22
|
-
const raw = readFileSync(
|
|
19
|
+
const raw = readFileSync(CONFIG_PATH, "utf-8");
|
|
23
20
|
return JSON.parse(raw);
|
|
24
21
|
}
|
|
25
22
|
catch {
|
|
26
23
|
return {};
|
|
27
24
|
}
|
|
28
25
|
}
|
|
29
|
-
/**
|
|
30
|
-
function loadCliConfig() {
|
|
31
|
-
try {
|
|
32
|
-
const raw = readFileSync(CLI_CONFIG_PATH, "utf-8");
|
|
33
|
-
return JSON.parse(raw);
|
|
34
|
-
}
|
|
35
|
-
catch {
|
|
36
|
-
return {};
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/** Write registration data to ~/.nex-mcp.json. */
|
|
26
|
+
/** Write registration data to ~/.nex/config.json. */
|
|
40
27
|
export function persistRegistration(data) {
|
|
41
|
-
const existing =
|
|
28
|
+
const existing = loadFileConfig();
|
|
42
29
|
if (typeof data.api_key === "string")
|
|
43
30
|
existing.api_key = data.api_key;
|
|
44
31
|
if (typeof data.workspace_id === "string" || typeof data.workspace_id === "number") {
|
|
@@ -46,31 +33,24 @@ export function persistRegistration(data) {
|
|
|
46
33
|
}
|
|
47
34
|
if (typeof data.workspace_slug === "string")
|
|
48
35
|
existing.workspace_slug = data.workspace_slug;
|
|
49
|
-
mkdirSync(dirname(
|
|
50
|
-
writeFileSync(
|
|
36
|
+
mkdirSync(dirname(CONFIG_PATH), { recursive: true });
|
|
37
|
+
writeFileSync(CONFIG_PATH, JSON.stringify(existing, null, 2) + "\n", "utf-8");
|
|
51
38
|
}
|
|
52
39
|
/**
|
|
53
|
-
* Load config from environment variables, with fallback to ~/.nex
|
|
40
|
+
* Load config from environment variables, with fallback to ~/.nex/config.json.
|
|
54
41
|
*
|
|
55
|
-
* Priority: NEX_API_KEY env > ~/.nex
|
|
56
|
-
* If
|
|
42
|
+
* Priority: NEX_API_KEY env > ~/.nex/config.json
|
|
43
|
+
* If none is set, throws ConfigError with registration instructions.
|
|
57
44
|
*/
|
|
58
45
|
export function loadConfig() {
|
|
59
46
|
let apiKey = process.env.NEX_API_KEY;
|
|
60
47
|
if (!apiKey) {
|
|
61
|
-
|
|
62
|
-
const mcpConfig = loadMcpConfig();
|
|
63
|
-
apiKey = mcpConfig.api_key;
|
|
64
|
-
}
|
|
65
|
-
if (!apiKey) {
|
|
66
|
-
const cliConfig = loadCliConfig();
|
|
67
|
-
apiKey = cliConfig.api_key;
|
|
48
|
+
apiKey = loadFileConfig().api_key;
|
|
68
49
|
}
|
|
69
50
|
if (!apiKey) {
|
|
70
51
|
throw new ConfigError("No API key found. Set NEX_API_KEY or run /register to create an account.");
|
|
71
52
|
}
|
|
72
|
-
|
|
73
|
-
let baseUrl = process.env.NEX_API_BASE_URL ?? loadCliConfig().dev_url ?? "https://app.nex.ai";
|
|
53
|
+
let baseUrl = process.env.NEX_API_BASE_URL ?? loadFileConfig().dev_url ?? "https://app.nex.ai";
|
|
74
54
|
baseUrl = baseUrl.replace(/\/+$/, "");
|
|
75
55
|
return { apiKey, baseUrl };
|
|
76
56
|
}
|
|
@@ -79,7 +59,7 @@ export function loadConfig() {
|
|
|
79
59
|
* Used for registration (which doesn't need auth).
|
|
80
60
|
*/
|
|
81
61
|
export function loadBaseUrl() {
|
|
82
|
-
let baseUrl = process.env.NEX_API_BASE_URL ??
|
|
62
|
+
let baseUrl = process.env.NEX_API_BASE_URL ?? loadFileConfig().dev_url ?? "https://app.nex.ai";
|
|
83
63
|
return baseUrl.replace(/\/+$/, "");
|
|
84
64
|
}
|
|
85
65
|
function parseTomlValue(raw) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/plugin/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAgBlC,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/plugin/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
// --- Error types ---
|
|
6
6
|
export class NexAuthError extends Error {
|
|
7
|
-
constructor(message = "
|
|
7
|
+
constructor(message = "API key expired or invalid. Run 'nex register --email <email>' to get a new key.") {
|
|
8
8
|
super(message);
|
|
9
9
|
this.name = "NexAuthError";
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nex-client.js","sourceRoot":"","sources":["../../src/plugin/nex-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,sBAAsB;AAEtB,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"nex-client.js","sourceRoot":"","sources":["../../src/plugin/nex-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,sBAAsB;AAEtB,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YAAY,OAAO,GAAG,kFAAkF;QACtG,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACnC,YAAY,CAAS;IAE5B,YAAY,YAAY,GAAG,MAAM;QAC/B,KAAK,CAAC,8BAA8B,YAAY,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;IAChC,MAAM,CAAS;IAEtB,YAAY,MAAc,EAAE,IAAa;QACvC,KAAK,CAAC,iBAAiB,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AA4BD,iBAAiB;AAEjB,MAAM,OAAO,SAAS;IACZ,MAAM,CAAS;IACf,OAAO,CAAS;IAExB,YAAY,MAAc,EAAE,OAAe;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,MAAc,EACd,IAAY,EACZ,IAAc,EACd,SAAS,GAAG,MAAM;QAElB,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,kBAAkB,IAAI,EAAE,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAE9D,IAAI,CAAC;YACH,MAAM,OAAO,GAA2B;gBACtC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;aACvC,CAAC;YACF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;YAC/C,CAAC;YAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,MAAM;gBACN,OAAO;gBACP,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC3D,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC7C,MAAM,IAAI,YAAY,EAAE,CAAC;YAC3B,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAClD,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;gBACjE,MAAM,IAAI,iBAAiB,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,IAAI,SAA6B,CAAC;gBAClC,IAAI,CAAC;oBACH,SAAS,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC/B,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;gBACD,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAClD,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBAAE,OAAO,EAAO,CAAC;YAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;QAC/B,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,QAAQ,CACnB,OAAe,EACf,KAAa,EACb,IAAa,EACb,WAAoB;QAEpB,MAAM,GAAG,GAAG,GAAG,OAAO,yBAAyB,CAAC;QAChD,MAAM,IAAI,GAA2B,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;QACtE,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAC3B,IAAI,WAAW;YAAE,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAEjD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;QAE3D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,IAAI,SAA6B,CAAC;gBAClC,IAAI,CAAC;oBAAC,SAAS,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC5D,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAClD,CAAC;YAED,OAAO,MAAM,GAAG,CAAC,IAAI,EAAsB,CAAC;QAC9C,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,wDAAwD;IACxD,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,OAAgB,EAAE,SAAkB;QAChE,MAAM,IAAI,GAA2B,EAAE,OAAO,EAAE,CAAC;QACjD,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACpC,OAAO,IAAI,CAAC,OAAO,CAAiB,MAAM,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,IAAI,MAAM,CAAC,CAAC;IAC7F,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,GAAG,CAAC,KAAa,EAAE,SAAkB,EAAE,SAAkB;QAC7D,MAAM,IAAI,GAA4B,EAAE,KAAK,EAAE,CAAC;QAChD,IAAI,SAAS;YAAE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAc,MAAM,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/E,CAAC;CACF"}
|
package/dist/plugin/shared.d.ts
CHANGED
package/dist/plugin/shared.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* without duplicating filter/client/format code.
|
|
7
7
|
*/
|
|
8
8
|
import { loadConfig, loadScanConfig, ConfigError, isHookEnabled } from "./config.js";
|
|
9
|
-
import { NexClient } from "./nex-client.js";
|
|
9
|
+
import { NexClient, NexAuthError } from "./nex-client.js";
|
|
10
10
|
import { formatNexContext } from "./context-format.js";
|
|
11
11
|
import { captureFilter } from "./capture-filter.js";
|
|
12
12
|
import { SessionStore } from "./session-store.js";
|
|
@@ -17,6 +17,7 @@ import { ingestContextFiles } from "./context-files.js";
|
|
|
17
17
|
import { readManifest, writeManifest, isChanged, markIngested } from "./file-manifest.js";
|
|
18
18
|
import { readdirSync, statSync, readFileSync } from "node:fs";
|
|
19
19
|
import { join, extname } from "node:path";
|
|
20
|
+
import { homedir } from "node:os";
|
|
20
21
|
const sessions = new SessionStore();
|
|
21
22
|
// ── Recall ──────────────────────────────────────────────────────────────
|
|
22
23
|
/**
|
|
@@ -37,8 +38,19 @@ export async function doRecall(prompt, sessionKey) {
|
|
|
37
38
|
return null;
|
|
38
39
|
const cfg = loadConfig();
|
|
39
40
|
const client = new NexClient(cfg.apiKey, cfg.baseUrl);
|
|
40
|
-
|
|
41
|
-
|
|
41
|
+
let result;
|
|
42
|
+
try {
|
|
43
|
+
const nexSessionId = sessionKey ? sessions.get(sessionKey) : undefined;
|
|
44
|
+
result = await client.ask(trimmed, nexSessionId, 30_000);
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
if (err instanceof NexAuthError) {
|
|
48
|
+
return {
|
|
49
|
+
context: "[Nex] API key expired or invalid. Run: nex register --email <email>",
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
throw err;
|
|
53
|
+
}
|
|
42
54
|
if (!result.answer)
|
|
43
55
|
return null;
|
|
44
56
|
if (result.session_id && sessionKey) {
|
|
@@ -81,6 +93,10 @@ export async function doCapture(input) {
|
|
|
81
93
|
await client.ingest(filterResult.text, "claude-code-conversation", INGEST_TIMEOUT_MS);
|
|
82
94
|
}
|
|
83
95
|
catch (err) {
|
|
96
|
+
if (err instanceof NexAuthError) {
|
|
97
|
+
process.stderr.write(`[nex-capture] API key expired or invalid. Run 'nex register --email <email>' to get a new key.\n`);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
84
100
|
process.stderr.write(`[nex-capture] Ingest failed: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
85
101
|
}
|
|
86
102
|
}
|
|
@@ -94,6 +110,15 @@ export async function doCapture(input) {
|
|
|
94
110
|
catch (err) {
|
|
95
111
|
process.stderr.write(`[nex-capture] Plan file scan error: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
96
112
|
}
|
|
113
|
+
// Transcript ingestion — ingest the full session conversation
|
|
114
|
+
if (input.sessionId) {
|
|
115
|
+
try {
|
|
116
|
+
await ingestTranscript(client, input.sessionId);
|
|
117
|
+
}
|
|
118
|
+
catch {
|
|
119
|
+
// non-fatal
|
|
120
|
+
}
|
|
121
|
+
}
|
|
97
122
|
}
|
|
98
123
|
async function ingestPlanFiles(client, rateLimiter, plansDir) {
|
|
99
124
|
const scanConfig = loadScanConfig();
|
|
@@ -138,6 +163,70 @@ async function ingestPlanFiles(client, rateLimiter, plansDir) {
|
|
|
138
163
|
if (ingested > 0)
|
|
139
164
|
writeManifest(manifest);
|
|
140
165
|
}
|
|
166
|
+
/**
|
|
167
|
+
* Read a Claude Code session transcript and ingest the full conversation.
|
|
168
|
+
*
|
|
169
|
+
* Extracts user and assistant messages from the JSONL transcript file,
|
|
170
|
+
* builds a condensed conversation text, and sends it to Nex in one shot.
|
|
171
|
+
* This captures the full context instead of just the last assistant message.
|
|
172
|
+
*/
|
|
173
|
+
const MAX_TRANSCRIPT_LENGTH = 100_000;
|
|
174
|
+
async function ingestTranscript(client, sessionId) {
|
|
175
|
+
const cwd = process.cwd();
|
|
176
|
+
// Claude Code stores transcripts at ~/.claude/projects/<project-hash>/<session-id>.jsonl
|
|
177
|
+
// Project hash is the CWD path with / replaced by -
|
|
178
|
+
const projectHash = "-" + cwd.replace(/\//g, "-");
|
|
179
|
+
const transcriptPath = join(homedir(), ".claude", "projects", projectHash, `${sessionId}.jsonl`);
|
|
180
|
+
let raw;
|
|
181
|
+
try {
|
|
182
|
+
raw = readFileSync(transcriptPath, "utf-8");
|
|
183
|
+
}
|
|
184
|
+
catch {
|
|
185
|
+
return; // transcript doesn't exist yet or path is wrong
|
|
186
|
+
}
|
|
187
|
+
// Extract user/assistant messages
|
|
188
|
+
const lines = [];
|
|
189
|
+
for (const line of raw.split("\n")) {
|
|
190
|
+
if (!line.trim())
|
|
191
|
+
continue;
|
|
192
|
+
try {
|
|
193
|
+
const entry = JSON.parse(line);
|
|
194
|
+
const role = entry.message?.role;
|
|
195
|
+
if (role !== "user" && role !== "assistant")
|
|
196
|
+
continue;
|
|
197
|
+
let text = "";
|
|
198
|
+
const content = entry.message?.content;
|
|
199
|
+
if (typeof content === "string") {
|
|
200
|
+
text = content;
|
|
201
|
+
}
|
|
202
|
+
else if (Array.isArray(content)) {
|
|
203
|
+
text = content
|
|
204
|
+
.filter((c) => c.type === "text")
|
|
205
|
+
.map((c) => c.text)
|
|
206
|
+
.join("\n");
|
|
207
|
+
}
|
|
208
|
+
if (!text.trim())
|
|
209
|
+
continue;
|
|
210
|
+
// Strip nex-context blocks to avoid feedback loops
|
|
211
|
+
text = text.replace(/<nex-context>[\s\S]*?<\/nex-context>/g, "").trim();
|
|
212
|
+
if (!text)
|
|
213
|
+
continue;
|
|
214
|
+
lines.push(`[${role}]: ${text}`);
|
|
215
|
+
}
|
|
216
|
+
catch {
|
|
217
|
+
continue;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
if (lines.length < 2)
|
|
221
|
+
return; // need at least one exchange
|
|
222
|
+
let transcript = lines.join("\n\n");
|
|
223
|
+
if (transcript.length > MAX_TRANSCRIPT_LENGTH) {
|
|
224
|
+
// Keep the most recent messages (end of conversation is most valuable)
|
|
225
|
+
transcript = transcript.slice(-MAX_TRANSCRIPT_LENGTH);
|
|
226
|
+
transcript = "[...earlier messages truncated]\n\n" + transcript;
|
|
227
|
+
}
|
|
228
|
+
await client.ingest(transcript, `claude-code-transcript:${sessionId}`, 30_000);
|
|
229
|
+
}
|
|
141
230
|
// ── Session Start ───────────────────────────────────────────────────────
|
|
142
231
|
const SESSION_START_QUERY = "Summarize the key active context, recent interactions, and important updates for this user.";
|
|
143
232
|
/**
|
|
@@ -183,6 +272,8 @@ export async function doSessionStart(source, sessionKey) {
|
|
|
183
272
|
const scanResult = await scanAndIngest(client, rateLimiter, cwd, scanConfig);
|
|
184
273
|
if (scanResult.ingested > 0) {
|
|
185
274
|
contextParts.push(`[File scan: ${scanResult.ingested} file${scanResult.ingested === 1 ? "" : "s"} ingested, ${scanResult.scanned} scanned]`);
|
|
275
|
+
// Trigger compounding intelligence after ingestion (non-blocking, best-effort)
|
|
276
|
+
triggerCompounding(cfg).catch(() => { });
|
|
186
277
|
}
|
|
187
278
|
}
|
|
188
279
|
}
|
|
@@ -190,7 +281,19 @@ export async function doSessionStart(source, sessionKey) {
|
|
|
190
281
|
// non-fatal
|
|
191
282
|
}
|
|
192
283
|
}
|
|
193
|
-
|
|
284
|
+
let result;
|
|
285
|
+
try {
|
|
286
|
+
result = await client.ask(SESSION_START_QUERY, undefined, 30_000);
|
|
287
|
+
}
|
|
288
|
+
catch (err) {
|
|
289
|
+
if (err instanceof NexAuthError) {
|
|
290
|
+
return {
|
|
291
|
+
context: "",
|
|
292
|
+
registrationPrompt: buildAuthExpiredPrompt(),
|
|
293
|
+
};
|
|
294
|
+
}
|
|
295
|
+
throw err;
|
|
296
|
+
}
|
|
194
297
|
if (!result.answer && contextParts.length === 0)
|
|
195
298
|
return null;
|
|
196
299
|
if (result.session_id && sessionKey) {
|
|
@@ -220,6 +323,18 @@ function buildRegistrationPrompt() {
|
|
|
220
323
|
"Keep it brief — just ask for the email and register. No restart needed after registration.",
|
|
221
324
|
].join("\n");
|
|
222
325
|
}
|
|
326
|
+
function buildAuthExpiredPrompt() {
|
|
327
|
+
return [
|
|
328
|
+
"[Nex Memory Plugin] API key expired or invalid. Re-registration is required to restore persistent memory.",
|
|
329
|
+
"",
|
|
330
|
+
"IMPORTANT: Before proceeding with the user's request, you must renew the Nex API key:",
|
|
331
|
+
"1. Ask the user for their email address",
|
|
332
|
+
"2. Run: nex register --email <email>",
|
|
333
|
+
"3. Then run: nex setup",
|
|
334
|
+
"",
|
|
335
|
+
"Keep it brief — just ask for the email and register. No restart needed after registration.",
|
|
336
|
+
].join("\n");
|
|
337
|
+
}
|
|
223
338
|
// ── Helpers ─────────────────────────────────────────────────────────────
|
|
224
339
|
/** Read stdin as a string (shared across all hook scripts). */
|
|
225
340
|
export async function readStdin() {
|
|
@@ -229,6 +344,21 @@ export async function readStdin() {
|
|
|
229
344
|
}
|
|
230
345
|
return Buffer.concat(chunks).toString("utf-8");
|
|
231
346
|
}
|
|
347
|
+
/**
|
|
348
|
+
* Trigger compounding intelligence jobs after content ingestion.
|
|
349
|
+
* Runs consolidation, pattern detection, and playbook synthesis.
|
|
350
|
+
* Best-effort — errors are silently ignored.
|
|
351
|
+
*/
|
|
352
|
+
async function triggerCompounding(cfg) {
|
|
353
|
+
const jobs = ["consolidation", "pattern_detection", "playbook_synthesis"];
|
|
354
|
+
const url = `${cfg.baseUrl}/api/developers/v1/compounding/trigger`;
|
|
355
|
+
await Promise.allSettled(jobs.map((job) => fetch(url, {
|
|
356
|
+
method: "POST",
|
|
357
|
+
headers: { Authorization: `Bearer ${cfg.apiKey}`, "Content-Type": "application/json" },
|
|
358
|
+
body: JSON.stringify({ job_type: job, dry_run: false }),
|
|
359
|
+
signal: AbortSignal.timeout(30_000),
|
|
360
|
+
})));
|
|
361
|
+
}
|
|
232
362
|
/** Wrap output in Claude Code hookSpecificOutput format. */
|
|
233
363
|
export function claudeCodeOutput(hookEventName, additionalContext) {
|
|
234
364
|
return JSON.stringify({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/plugin/shared.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/plugin/shared.ts"],"names":[],"mappings":"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"}
|