@nexagent-cli/shared 0.2.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/LICENSE +21 -0
- package/README.md +5 -0
- package/dist/constants/index.d.ts +91 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +101 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/types/agent.d.ts +47 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +5 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/config.d.ts +60 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +5 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/events.d.ts +64 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +6 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/llm.d.ts +70 -0
- package/dist/types/llm.d.ts.map +1 -0
- package/dist/types/llm.js +5 -0
- package/dist/types/llm.js.map +1 -0
- package/dist/types/memory.d.ts +40 -0
- package/dist/types/memory.d.ts.map +1 -0
- package/dist/types/memory.js +5 -0
- package/dist/types/memory.js.map +1 -0
- package/dist/types/session.d.ts +28 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/session.js +5 -0
- package/dist/types/session.js.map +1 -0
- package/dist/types/tool.d.ts +87 -0
- package/dist/types/tool.d.ts.map +1 -0
- package/dist/types/tool.js +5 -0
- package/dist/types/tool.js.map +1 -0
- package/dist/utils/id.d.ts +5 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/id.js +23 -0
- package/dist/utils/id.js.map +1 -0
- package/dist/utils/result.d.ts +16 -0
- package/dist/utils/result.d.ts.map +1 -0
- package/dist/utils/result.js +24 -0
- package/dist/utils/result.js.map +1 -0
- package/package.json +32 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 NexAgent Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
export declare const NEXAGENT_VERSION: "0.2.0";
|
|
2
|
+
export declare const MIN_NODE_VERSION = 22;
|
|
3
|
+
export declare const DATA_DIR_ENV = "NEXAGENT_DATA_DIR";
|
|
4
|
+
export declare const CONFIG_FILE_NAME = "config.json";
|
|
5
|
+
export declare const AGENT_DIR_NAME = "agents";
|
|
6
|
+
export declare const DB_FILE_NAME = "nexagent.db";
|
|
7
|
+
export declare const LOG_FILE_NAME = "nexagent.log";
|
|
8
|
+
/** Default token budget allocation */
|
|
9
|
+
export declare const TOKEN_BUDGET: {
|
|
10
|
+
readonly MEMORY_PERCENT: 0.35;
|
|
11
|
+
readonly TOOL_RESULTS_PERCENT: 0.25;
|
|
12
|
+
readonly RESPONSE_RESERVE_PERCENT: 0.2;
|
|
13
|
+
};
|
|
14
|
+
/** Safety Gate check order */
|
|
15
|
+
export declare const SAFETY_CHECKS: readonly ["tool_exists", "tool_enabled", "schema_valid", "workspace_scope", "blocklist", "risk_level", "loop_guard", "rate_limit"];
|
|
16
|
+
export type SafetyCheck = typeof SAFETY_CHECKS[number];
|
|
17
|
+
/** Tool risk escalation thresholds */
|
|
18
|
+
export declare const RISK_CONFIRM_THRESHOLD: Record<string, boolean>;
|
|
19
|
+
/** Global blocklist — hardcoded, cannot be overridden */
|
|
20
|
+
export declare const GLOBAL_SHELL_BLOCKLIST: readonly ["rm -rf /", "rm -rf ~", "mkfs", "dd if=/dev/zero", ":(){ :|:& };:", "format c:", "del /f /s /q c:\\"];
|
|
21
|
+
/** Platform targets for the Go binary build */
|
|
22
|
+
export declare const BUILD_TARGETS: readonly [{
|
|
23
|
+
readonly os: "linux";
|
|
24
|
+
readonly arch: "amd64";
|
|
25
|
+
readonly ext: "";
|
|
26
|
+
}, {
|
|
27
|
+
readonly os: "linux";
|
|
28
|
+
readonly arch: "arm64";
|
|
29
|
+
readonly ext: "";
|
|
30
|
+
}, {
|
|
31
|
+
readonly os: "darwin";
|
|
32
|
+
readonly arch: "amd64";
|
|
33
|
+
readonly ext: "";
|
|
34
|
+
}, {
|
|
35
|
+
readonly os: "darwin";
|
|
36
|
+
readonly arch: "arm64";
|
|
37
|
+
readonly ext: "";
|
|
38
|
+
}, {
|
|
39
|
+
readonly os: "windows";
|
|
40
|
+
readonly arch: "amd64";
|
|
41
|
+
readonly ext: ".exe";
|
|
42
|
+
}];
|
|
43
|
+
/** Ink TUI theme tokens */
|
|
44
|
+
export declare const THEME: {
|
|
45
|
+
readonly dark: {
|
|
46
|
+
readonly primary: "#7C6EE6";
|
|
47
|
+
readonly secondary: "#4DBDFF";
|
|
48
|
+
readonly accent: "#FF7EFF";
|
|
49
|
+
readonly success: "#4DFFB4";
|
|
50
|
+
readonly warning: "#FFD066";
|
|
51
|
+
readonly error: "#FF6B6B";
|
|
52
|
+
readonly muted: "#6B7280";
|
|
53
|
+
readonly bg: "#0A0A0F";
|
|
54
|
+
readonly border: "#1E1E2E";
|
|
55
|
+
readonly text: "#E2E8F0";
|
|
56
|
+
};
|
|
57
|
+
readonly light: {
|
|
58
|
+
readonly primary: "#5046CC";
|
|
59
|
+
readonly secondary: "#0080CC";
|
|
60
|
+
readonly accent: "#CC00CC";
|
|
61
|
+
readonly success: "#00AA77";
|
|
62
|
+
readonly warning: "#BB8800";
|
|
63
|
+
readonly error: "#CC3333";
|
|
64
|
+
readonly muted: "#6B7280";
|
|
65
|
+
readonly bg: "#FAFAFA";
|
|
66
|
+
readonly border: "#E2E8F0";
|
|
67
|
+
readonly text: "#1A1A2E";
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
/** TUI Symbols */
|
|
71
|
+
export declare const SYM: {
|
|
72
|
+
readonly AGENT: "◆";
|
|
73
|
+
readonly USER: "▸";
|
|
74
|
+
readonly TOOL: "⚙";
|
|
75
|
+
readonly MEMORY: "◉";
|
|
76
|
+
readonly SUCCESS: "✓";
|
|
77
|
+
readonly ERROR: "✗";
|
|
78
|
+
readonly WARNING: "⚠";
|
|
79
|
+
readonly ARROW: "→";
|
|
80
|
+
readonly DOTS: "…";
|
|
81
|
+
readonly SPIN: readonly ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
|
|
82
|
+
readonly BLOCK: "█";
|
|
83
|
+
readonly PARTIAL: "▓";
|
|
84
|
+
readonly LINE: "─";
|
|
85
|
+
readonly CORNER_TL: "╭";
|
|
86
|
+
readonly CORNER_TR: "╮";
|
|
87
|
+
readonly CORNER_BL: "╰";
|
|
88
|
+
readonly CORNER_BR: "╯";
|
|
89
|
+
readonly VERT: "│";
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,EAAG,OAAgB,CAAC;AACjD,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,YAAY,sBAAsB,CAAC;AAChD,eAAO,MAAM,gBAAgB,gBAAgB,CAAC;AAC9C,eAAO,MAAM,cAAc,WAAW,CAAC;AACvC,eAAO,MAAM,YAAY,gBAAgB,CAAC;AAC1C,eAAO,MAAM,aAAa,iBAAiB,CAAC;AAE5C,sCAAsC;AACtC,eAAO,MAAM,YAAY;;;;CAIf,CAAC;AAEX,8BAA8B;AAC9B,eAAO,MAAM,aAAa,oIAShB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AAEvD,sCAAsC;AACtC,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAK1D,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,sBAAsB,iHAQzB,CAAC;AAEX,+CAA+C;AAC/C,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;EAMhB,CAAC;AAEX,2BAA2B;AAC3B,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;CAyBR,CAAC;AAEX,kBAAkB;AAClB,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;;;;CAmBN,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// Constants
|
|
3
|
+
// ============================================================
|
|
4
|
+
export const NEXAGENT_VERSION = '0.2.0';
|
|
5
|
+
export const MIN_NODE_VERSION = 22;
|
|
6
|
+
export const DATA_DIR_ENV = 'NEXAGENT_DATA_DIR';
|
|
7
|
+
export const CONFIG_FILE_NAME = 'config.json';
|
|
8
|
+
export const AGENT_DIR_NAME = 'agents';
|
|
9
|
+
export const DB_FILE_NAME = 'nexagent.db';
|
|
10
|
+
export const LOG_FILE_NAME = 'nexagent.log';
|
|
11
|
+
/** Default token budget allocation */
|
|
12
|
+
export const TOKEN_BUDGET = {
|
|
13
|
+
MEMORY_PERCENT: 0.35, // 35% of context window for memory blocks
|
|
14
|
+
TOOL_RESULTS_PERCENT: 0.25,
|
|
15
|
+
RESPONSE_RESERVE_PERCENT: 0.20,
|
|
16
|
+
};
|
|
17
|
+
/** Safety Gate check order */
|
|
18
|
+
export const SAFETY_CHECKS = [
|
|
19
|
+
'tool_exists',
|
|
20
|
+
'tool_enabled',
|
|
21
|
+
'schema_valid',
|
|
22
|
+
'workspace_scope',
|
|
23
|
+
'blocklist',
|
|
24
|
+
'risk_level',
|
|
25
|
+
'loop_guard',
|
|
26
|
+
'rate_limit',
|
|
27
|
+
];
|
|
28
|
+
/** Tool risk escalation thresholds */
|
|
29
|
+
export const RISK_CONFIRM_THRESHOLD = {
|
|
30
|
+
low: false,
|
|
31
|
+
medium: false,
|
|
32
|
+
high: true,
|
|
33
|
+
critical: true,
|
|
34
|
+
};
|
|
35
|
+
/** Global blocklist — hardcoded, cannot be overridden */
|
|
36
|
+
export const GLOBAL_SHELL_BLOCKLIST = [
|
|
37
|
+
'rm -rf /',
|
|
38
|
+
'rm -rf ~',
|
|
39
|
+
'mkfs',
|
|
40
|
+
'dd if=/dev/zero',
|
|
41
|
+
':(){ :|:& };:', // fork bomb
|
|
42
|
+
'format c:',
|
|
43
|
+
'del /f /s /q c:\\', // Windows destructive
|
|
44
|
+
];
|
|
45
|
+
/** Platform targets for the Go binary build */
|
|
46
|
+
export const BUILD_TARGETS = [
|
|
47
|
+
{ os: 'linux', arch: 'amd64', ext: '' },
|
|
48
|
+
{ os: 'linux', arch: 'arm64', ext: '' },
|
|
49
|
+
{ os: 'darwin', arch: 'amd64', ext: '' },
|
|
50
|
+
{ os: 'darwin', arch: 'arm64', ext: '' },
|
|
51
|
+
{ os: 'windows', arch: 'amd64', ext: '.exe' },
|
|
52
|
+
];
|
|
53
|
+
/** Ink TUI theme tokens */
|
|
54
|
+
export const THEME = {
|
|
55
|
+
dark: {
|
|
56
|
+
primary: '#7C6EE6',
|
|
57
|
+
secondary: '#4DBDFF',
|
|
58
|
+
accent: '#FF7EFF',
|
|
59
|
+
success: '#4DFFB4',
|
|
60
|
+
warning: '#FFD066',
|
|
61
|
+
error: '#FF6B6B',
|
|
62
|
+
muted: '#6B7280',
|
|
63
|
+
bg: '#0A0A0F',
|
|
64
|
+
border: '#1E1E2E',
|
|
65
|
+
text: '#E2E8F0',
|
|
66
|
+
},
|
|
67
|
+
light: {
|
|
68
|
+
primary: '#5046CC',
|
|
69
|
+
secondary: '#0080CC',
|
|
70
|
+
accent: '#CC00CC',
|
|
71
|
+
success: '#00AA77',
|
|
72
|
+
warning: '#BB8800',
|
|
73
|
+
error: '#CC3333',
|
|
74
|
+
muted: '#6B7280',
|
|
75
|
+
bg: '#FAFAFA',
|
|
76
|
+
border: '#E2E8F0',
|
|
77
|
+
text: '#1A1A2E',
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
/** TUI Symbols */
|
|
81
|
+
export const SYM = {
|
|
82
|
+
AGENT: '◆',
|
|
83
|
+
USER: '▸',
|
|
84
|
+
TOOL: '⚙',
|
|
85
|
+
MEMORY: '◉',
|
|
86
|
+
SUCCESS: '✓',
|
|
87
|
+
ERROR: '✗',
|
|
88
|
+
WARNING: '⚠',
|
|
89
|
+
ARROW: '→',
|
|
90
|
+
DOTS: '…',
|
|
91
|
+
SPIN: ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'],
|
|
92
|
+
BLOCK: '█',
|
|
93
|
+
PARTIAL: '▓',
|
|
94
|
+
LINE: '─',
|
|
95
|
+
CORNER_TL: '╭',
|
|
96
|
+
CORNER_TR: '╮',
|
|
97
|
+
CORNER_BL: '╰',
|
|
98
|
+
CORNER_BR: '╯',
|
|
99
|
+
VERT: '│',
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './types/agent.js';
|
|
2
|
+
export * from './types/tool.js';
|
|
3
|
+
export * from './types/memory.js';
|
|
4
|
+
export * from './types/llm.js';
|
|
5
|
+
export * from './types/session.js';
|
|
6
|
+
export * from './types/config.js';
|
|
7
|
+
export * from './types/events.js';
|
|
8
|
+
export * from './constants/index.js';
|
|
9
|
+
export * from './utils/result.js';
|
|
10
|
+
export * from './utils/id.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// @nexagent-cli/shared — root barrel export
|
|
3
|
+
// All cross-package types, constants, and utilities live here.
|
|
4
|
+
// ============================================================
|
|
5
|
+
export * from './types/agent.js';
|
|
6
|
+
export * from './types/tool.js';
|
|
7
|
+
export * from './types/memory.js';
|
|
8
|
+
export * from './types/llm.js';
|
|
9
|
+
export * from './types/session.js';
|
|
10
|
+
export * from './types/config.js';
|
|
11
|
+
export * from './types/events.js';
|
|
12
|
+
export * from './constants/index.js';
|
|
13
|
+
export * from './utils/result.js';
|
|
14
|
+
export * from './utils/id.js';
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,4CAA4C;AAC5C,+DAA+D;AAC/D,+DAA+D;AAE/D,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export type AgentStatus = 'idle' | 'thinking' | 'tool_call' | 'tool_result' | 'streaming' | 'waiting_confirmation' | 'error' | 'done';
|
|
2
|
+
export interface AgentConfig {
|
|
3
|
+
name: string;
|
|
4
|
+
model: string;
|
|
5
|
+
provider: LLMProviderName;
|
|
6
|
+
systemPromptExtra?: string;
|
|
7
|
+
maxTurns: number;
|
|
8
|
+
maxTokensPerTurn: number;
|
|
9
|
+
temperature: number;
|
|
10
|
+
workspaceDir: string;
|
|
11
|
+
memoryEnabled: boolean;
|
|
12
|
+
subagentsEnabled: boolean;
|
|
13
|
+
safetyLevel: SafetyLevel;
|
|
14
|
+
allowedTools: string[];
|
|
15
|
+
blockedTools: string[];
|
|
16
|
+
}
|
|
17
|
+
export type LLMProviderName = 'openai' | 'anthropic' | 'google' | 'ollama' | 'openai-compatible';
|
|
18
|
+
export type SafetyLevel = 'strict' | 'standard' | 'permissive';
|
|
19
|
+
export interface AgentTurn {
|
|
20
|
+
id: string;
|
|
21
|
+
sessionId: string;
|
|
22
|
+
role: 'user' | 'assistant' | 'tool';
|
|
23
|
+
content: string;
|
|
24
|
+
toolCalls?: ToolCallRecord[];
|
|
25
|
+
toolResults?: ToolResultRecord[];
|
|
26
|
+
model?: string;
|
|
27
|
+
tokensIn?: number;
|
|
28
|
+
tokensOut?: number;
|
|
29
|
+
costUsd?: number;
|
|
30
|
+
createdAt: number;
|
|
31
|
+
}
|
|
32
|
+
export interface ToolCallRecord {
|
|
33
|
+
id: string;
|
|
34
|
+
toolName: string;
|
|
35
|
+
args: Record<string, unknown>;
|
|
36
|
+
startedAt: number;
|
|
37
|
+
}
|
|
38
|
+
export interface ToolResultRecord {
|
|
39
|
+
toolCallId: string;
|
|
40
|
+
toolName: string;
|
|
41
|
+
output: unknown;
|
|
42
|
+
error?: string;
|
|
43
|
+
durationMs: number;
|
|
44
|
+
riskLevel: RiskLevel;
|
|
45
|
+
}
|
|
46
|
+
export type RiskLevel = 'low' | 'medium' | 'high' | 'critical';
|
|
47
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,UAAU,GACV,WAAW,GACX,aAAa,GACb,WAAW,GACX,sBAAsB,GACtB,OAAO,GACP,MAAM,CAAC;AAEX,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,MAAM,eAAe,GACvB,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,mBAAmB,CAAC;AAExB,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,GAAG,YAAY,CAAC;AAE/D,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,mBAAmB;AACnB,+DAA+D"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { LLMProviderName, SafetyLevel } from './agent.js';
|
|
2
|
+
export interface NexAgentConfig {
|
|
3
|
+
version: 1;
|
|
4
|
+
defaultAgent: string;
|
|
5
|
+
providers: ProvidersConfig;
|
|
6
|
+
defaults: AgentDefaults;
|
|
7
|
+
ui: UIConfig;
|
|
8
|
+
telemetry: TelemetryConfig;
|
|
9
|
+
}
|
|
10
|
+
export interface ProvidersConfig {
|
|
11
|
+
openai?: {
|
|
12
|
+
apiKey: string;
|
|
13
|
+
baseUrl?: string;
|
|
14
|
+
defaultModel: string;
|
|
15
|
+
};
|
|
16
|
+
anthropic?: {
|
|
17
|
+
apiKey: string;
|
|
18
|
+
defaultModel: string;
|
|
19
|
+
};
|
|
20
|
+
google?: {
|
|
21
|
+
apiKey: string;
|
|
22
|
+
defaultModel: string;
|
|
23
|
+
};
|
|
24
|
+
ollama?: {
|
|
25
|
+
baseUrl: string;
|
|
26
|
+
defaultModel: string;
|
|
27
|
+
};
|
|
28
|
+
'openai-compatible'?: {
|
|
29
|
+
apiKey: string;
|
|
30
|
+
baseUrl: string;
|
|
31
|
+
defaultModel: string;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface AgentDefaults {
|
|
35
|
+
model: string;
|
|
36
|
+
provider: LLMProviderName;
|
|
37
|
+
maxTurns: number;
|
|
38
|
+
temperature: number;
|
|
39
|
+
safetyLevel: SafetyLevel;
|
|
40
|
+
memoryEnabled: boolean;
|
|
41
|
+
subagentsEnabled: boolean;
|
|
42
|
+
}
|
|
43
|
+
export interface UIConfig {
|
|
44
|
+
theme: 'dark' | 'light' | 'system';
|
|
45
|
+
compactMode: boolean;
|
|
46
|
+
showTokenCounts: boolean;
|
|
47
|
+
showCostEstimates: boolean;
|
|
48
|
+
animationsEnabled: boolean;
|
|
49
|
+
confirmHighRisk: boolean;
|
|
50
|
+
confirmCritical: boolean;
|
|
51
|
+
}
|
|
52
|
+
export interface TelemetryConfig {
|
|
53
|
+
enabled: boolean;
|
|
54
|
+
anonymousUsage: boolean;
|
|
55
|
+
}
|
|
56
|
+
/** Partial config for user overrides — all fields optional */
|
|
57
|
+
export type UserConfig = Partial<Omit<NexAgentConfig, 'version'>>;
|
|
58
|
+
/** Resolved config after merging defaults + user config */
|
|
59
|
+
export type ResolvedConfig = NexAgentConfig;
|
|
60
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,CAAC,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,eAAe,CAAC;IAC3B,QAAQ,EAAE,aAAa,CAAC;IACxB,EAAE,EAAE,QAAQ,CAAC;IACb,SAAS,EAAE,eAAe,CAAC;CAC5B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,mBAAmB,CAAC,EAAE;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,8DAA8D;AAC9D,MAAM,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC;AAElE,2DAA2D;AAC3D,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,sBAAsB;AACtB,+DAA+D"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { AgentStatus, ToolCallRecord, ToolResultRecord } from './agent.js';
|
|
2
|
+
/** All agent events that the TUI subscribes to */
|
|
3
|
+
export type AgentEventMap = {
|
|
4
|
+
'status:change': {
|
|
5
|
+
status: AgentStatus;
|
|
6
|
+
message?: string;
|
|
7
|
+
};
|
|
8
|
+
'stream:text': {
|
|
9
|
+
text: string;
|
|
10
|
+
};
|
|
11
|
+
'stream:done': {
|
|
12
|
+
fullText: string;
|
|
13
|
+
};
|
|
14
|
+
'tool:start': ToolCallRecord;
|
|
15
|
+
'tool:result': ToolResultRecord;
|
|
16
|
+
'tool:blocked': {
|
|
17
|
+
toolName: string;
|
|
18
|
+
reason: string;
|
|
19
|
+
};
|
|
20
|
+
'memory:read': {
|
|
21
|
+
blockIds: string[];
|
|
22
|
+
tokenCount: number;
|
|
23
|
+
};
|
|
24
|
+
'memory:write': {
|
|
25
|
+
blockId: string;
|
|
26
|
+
blockType: string;
|
|
27
|
+
};
|
|
28
|
+
'subagent:spawn': {
|
|
29
|
+
subagentType: string;
|
|
30
|
+
reason: string;
|
|
31
|
+
};
|
|
32
|
+
'subagent:done': {
|
|
33
|
+
subagentType: string;
|
|
34
|
+
proposalCount: number;
|
|
35
|
+
};
|
|
36
|
+
'session:start': {
|
|
37
|
+
sessionId: string;
|
|
38
|
+
};
|
|
39
|
+
'session:end': {
|
|
40
|
+
sessionId: string;
|
|
41
|
+
turnCount: number;
|
|
42
|
+
costUsd: number;
|
|
43
|
+
};
|
|
44
|
+
'error': {
|
|
45
|
+
message: string;
|
|
46
|
+
code?: string;
|
|
47
|
+
recoverable: boolean;
|
|
48
|
+
};
|
|
49
|
+
'confirmation:request': {
|
|
50
|
+
prompt: string;
|
|
51
|
+
toolName: string;
|
|
52
|
+
riskLevel: string;
|
|
53
|
+
};
|
|
54
|
+
'confirmation:response': {
|
|
55
|
+
approved: boolean;
|
|
56
|
+
};
|
|
57
|
+
'undo:available': {
|
|
58
|
+
undoId: string;
|
|
59
|
+
description: string;
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
export type AgentEventName = keyof AgentEventMap;
|
|
63
|
+
export type AgentEvent<K extends AgentEventName> = AgentEventMap[K];
|
|
64
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEhF,kDAAkD;AAClD,MAAM,MAAM,aAAa,GAAG;IAC1B,eAAe,EAAE;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,aAAa,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,aAAa,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,YAAY,EAAE,cAAc,CAAC;IAC7B,aAAa,EAAE,gBAAgB,CAAC;IAChC,cAAc,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,aAAa,EAAE;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,cAAc,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,gBAAgB,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,eAAe,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,eAAe,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,aAAa,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IAClE,sBAAsB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAChF,uBAAuB,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/C,gBAAgB,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC;AACjD,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,cAAc,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// Event bus types — used for agent ↔ TUI communication
|
|
3
|
+
// All events flow through a typed EventEmitter
|
|
4
|
+
// ============================================================
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=events.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,uDAAuD;AACvD,+CAA+C;AAC/C,+DAA+D"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export interface LLMMessage {
|
|
2
|
+
role: 'system' | 'user' | 'assistant' | 'tool';
|
|
3
|
+
content: string;
|
|
4
|
+
toolCallId?: string;
|
|
5
|
+
name?: string;
|
|
6
|
+
/** For assistant messages that made tool calls — needed for multi-turn */
|
|
7
|
+
toolCalls?: LLMToolCall[];
|
|
8
|
+
}
|
|
9
|
+
export interface LLMToolDefinition {
|
|
10
|
+
type: 'function';
|
|
11
|
+
function: {
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
parameters: Record<string, unknown>;
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
export interface LLMRequestOptions {
|
|
18
|
+
model: string;
|
|
19
|
+
messages: LLMMessage[];
|
|
20
|
+
tools?: LLMToolDefinition[];
|
|
21
|
+
toolChoice?: 'auto' | 'none' | 'required';
|
|
22
|
+
temperature?: number;
|
|
23
|
+
maxTokens?: number;
|
|
24
|
+
stream?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface LLMToolCall {
|
|
27
|
+
id: string;
|
|
28
|
+
type: 'function';
|
|
29
|
+
function: {
|
|
30
|
+
name: string;
|
|
31
|
+
arguments: string;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface LLMResponse {
|
|
35
|
+
id: string;
|
|
36
|
+
model: string;
|
|
37
|
+
content: string;
|
|
38
|
+
toolCalls?: LLMToolCall[];
|
|
39
|
+
finishReason: 'stop' | 'tool_calls' | 'length' | 'error';
|
|
40
|
+
usage: {
|
|
41
|
+
promptTokens: number;
|
|
42
|
+
completionTokens: number;
|
|
43
|
+
totalTokens: number;
|
|
44
|
+
costUsd: number;
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export interface LLMStreamChunk {
|
|
48
|
+
type: 'text' | 'tool_call_start' | 'tool_call_delta' | 'tool_call_end' | 'done';
|
|
49
|
+
text?: string;
|
|
50
|
+
toolCallId?: string;
|
|
51
|
+
toolName?: string;
|
|
52
|
+
argsDelta?: string;
|
|
53
|
+
finishReason?: string;
|
|
54
|
+
}
|
|
55
|
+
export interface LLMCapabilities {
|
|
56
|
+
supportsFunctionCalling: boolean;
|
|
57
|
+
supportsStreaming: boolean;
|
|
58
|
+
supportsVision: boolean;
|
|
59
|
+
contextWindow: number;
|
|
60
|
+
maxOutputTokens: number;
|
|
61
|
+
}
|
|
62
|
+
export interface LLMProvider {
|
|
63
|
+
name: string;
|
|
64
|
+
complete(options: LLMRequestOptions): Promise<LLMResponse>;
|
|
65
|
+
stream(options: LLMRequestOptions): AsyncGenerator<LLMStreamChunk>;
|
|
66
|
+
countTokens(text: string, model: string): number;
|
|
67
|
+
getCapabilities(model: string): LLMCapabilities;
|
|
68
|
+
listModels(): Promise<string[]>;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=llm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../src/types/llm.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC;IACzD,KAAK,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,eAAe,GAAG,MAAM,CAAC;IAChF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,uBAAuB,EAAE,OAAO,CAAC;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IACnE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACjD,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC;IAChD,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm.js","sourceRoot":"","sources":["../../src/types/llm.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,mBAAmB;AACnB,+DAA+D"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export type MemoryBlockType = 'persona' | 'user_profile' | 'task_context' | 'learned_facts' | 'skill_preferences' | 'conversation_summary' | 'custom';
|
|
2
|
+
export interface MemoryBlock {
|
|
3
|
+
id: string;
|
|
4
|
+
blockType: MemoryBlockType;
|
|
5
|
+
content: string;
|
|
6
|
+
version: number;
|
|
7
|
+
tokenEstimate: number;
|
|
8
|
+
updatedAt: number;
|
|
9
|
+
pinned: boolean;
|
|
10
|
+
archived: boolean;
|
|
11
|
+
tags: string[];
|
|
12
|
+
}
|
|
13
|
+
export interface VectorRecord {
|
|
14
|
+
id: string;
|
|
15
|
+
blockId: string;
|
|
16
|
+
chunkIndex: number;
|
|
17
|
+
chunkText: string;
|
|
18
|
+
embedding: number[];
|
|
19
|
+
model: string;
|
|
20
|
+
createdAt: number;
|
|
21
|
+
}
|
|
22
|
+
export interface MemoryReadOptions {
|
|
23
|
+
semanticQuery?: string;
|
|
24
|
+
includeArchived?: boolean;
|
|
25
|
+
limit?: number;
|
|
26
|
+
tokenBudget?: number;
|
|
27
|
+
pinFirst?: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface MemoryWriteProposal {
|
|
30
|
+
id: string;
|
|
31
|
+
sessionId: string;
|
|
32
|
+
blockId?: string;
|
|
33
|
+
blockType: MemoryBlockType;
|
|
34
|
+
proposedContent: string;
|
|
35
|
+
rationale: string;
|
|
36
|
+
proposedBy: 'skill_scanner' | 'prompt_improver' | 'context_refiner' | 'user';
|
|
37
|
+
status: 'pending' | 'approved' | 'rejected';
|
|
38
|
+
createdAt: number;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/types/memory.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,cAAc,GACd,cAAc,GACd,eAAe,GACf,mBAAmB,GACnB,sBAAsB,GACtB,QAAQ,CAAC;AAEb,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,eAAe,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,eAAe,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,eAAe,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,MAAM,CAAC;IAC7E,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/types/memory.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,sBAAsB;AACtB,+DAA+D"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type SessionStatus = 'active' | 'completed' | 'error' | 'interrupted';
|
|
2
|
+
export interface Session {
|
|
3
|
+
id: string;
|
|
4
|
+
agentName: string;
|
|
5
|
+
model: string;
|
|
6
|
+
cwd: string;
|
|
7
|
+
startedAt: number;
|
|
8
|
+
endedAt?: number;
|
|
9
|
+
turnCount: number;
|
|
10
|
+
status: SessionStatus;
|
|
11
|
+
totalCostUsd: number;
|
|
12
|
+
totalTokensIn: number;
|
|
13
|
+
totalTokensOut: number;
|
|
14
|
+
}
|
|
15
|
+
export interface UndoEntry {
|
|
16
|
+
id: string;
|
|
17
|
+
sessionId: string;
|
|
18
|
+
toolName: string;
|
|
19
|
+
operation: string;
|
|
20
|
+
filePath?: string;
|
|
21
|
+
originalContent?: string;
|
|
22
|
+
createdAt: number;
|
|
23
|
+
}
|
|
24
|
+
export interface SessionSummary extends Session {
|
|
25
|
+
firstUserMessage?: string;
|
|
26
|
+
lastAssistantMessage?: string;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,aAAa,CAAC;AAE7E,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,gBAAgB;AAChB,+DAA+D"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type { RiskLevel } from './agent.js';
|
|
2
|
+
/** JSON Schema subset for tool parameter definitions */
|
|
3
|
+
export interface JSONSchemaObject {
|
|
4
|
+
type: 'object';
|
|
5
|
+
properties: Record<string, JSONSchemaProperty>;
|
|
6
|
+
required?: string[];
|
|
7
|
+
additionalProperties?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export type JSONSchemaProperty = {
|
|
10
|
+
type: 'string';
|
|
11
|
+
description?: string;
|
|
12
|
+
enum?: string[];
|
|
13
|
+
} | {
|
|
14
|
+
type: 'number';
|
|
15
|
+
description?: string;
|
|
16
|
+
minimum?: number;
|
|
17
|
+
maximum?: number;
|
|
18
|
+
} | {
|
|
19
|
+
type: 'boolean';
|
|
20
|
+
description?: string;
|
|
21
|
+
} | {
|
|
22
|
+
type: 'array';
|
|
23
|
+
items: JSONSchemaProperty;
|
|
24
|
+
description?: string;
|
|
25
|
+
} | {
|
|
26
|
+
type: 'object';
|
|
27
|
+
properties?: Record<string, JSONSchemaProperty>;
|
|
28
|
+
description?: string;
|
|
29
|
+
};
|
|
30
|
+
/** Permissions a tool may require */
|
|
31
|
+
export type Permission = 'fs:read' | 'fs:write' | 'fs:delete' | 'shell:exec' | 'network:fetch' | 'memory:read' | 'memory:write' | 'process:spawn';
|
|
32
|
+
/** Execution context passed to every tool */
|
|
33
|
+
export interface ToolContext {
|
|
34
|
+
sessionId: string;
|
|
35
|
+
workspaceDir: string;
|
|
36
|
+
agentName: string;
|
|
37
|
+
dryRun: boolean;
|
|
38
|
+
confirmFn: (prompt: string) => Promise<boolean>;
|
|
39
|
+
emit: (event: string, data: unknown) => void;
|
|
40
|
+
/** Duck-typed MemoryManager.read() for tools that need memory access */
|
|
41
|
+
memory?: {
|
|
42
|
+
read: (opts: any) => Promise<any[]>;
|
|
43
|
+
};
|
|
44
|
+
/** better-sqlite3 Database for direct SQL access (e.g. undo persistence) */
|
|
45
|
+
db?: any;
|
|
46
|
+
}
|
|
47
|
+
/** What every tool must return */
|
|
48
|
+
export interface ToolResult {
|
|
49
|
+
success: boolean;
|
|
50
|
+
output: string;
|
|
51
|
+
data?: unknown;
|
|
52
|
+
executionId: string;
|
|
53
|
+
durationMs: number;
|
|
54
|
+
bytesRead?: number;
|
|
55
|
+
bytesWritten?: number;
|
|
56
|
+
}
|
|
57
|
+
/** The canonical Tool interface */
|
|
58
|
+
export interface Tool {
|
|
59
|
+
name: string;
|
|
60
|
+
version: string;
|
|
61
|
+
description: string;
|
|
62
|
+
parameters: JSONSchemaObject;
|
|
63
|
+
permissions: readonly Permission[];
|
|
64
|
+
riskLevel: RiskLevel;
|
|
65
|
+
enabled: boolean;
|
|
66
|
+
/** Primary execution path */
|
|
67
|
+
execute(args: unknown, context: ToolContext): Promise<ToolResult>;
|
|
68
|
+
/** Returns a description of what WOULD happen — no side effects */
|
|
69
|
+
dryRun?(args: unknown, context: ToolContext): Promise<string>;
|
|
70
|
+
/** Reverses a previous execution by executionId */
|
|
71
|
+
undo?(executionId: string, context: ToolContext): Promise<void>;
|
|
72
|
+
}
|
|
73
|
+
/** Registry entry with metadata */
|
|
74
|
+
export interface ToolRegistryEntry {
|
|
75
|
+
tool: Tool;
|
|
76
|
+
registeredAt: number;
|
|
77
|
+
callCount: number;
|
|
78
|
+
lastCalledAt?: number;
|
|
79
|
+
}
|
|
80
|
+
/** Safety Gate verdict */
|
|
81
|
+
export interface SafetyVerdict {
|
|
82
|
+
allowed: boolean;
|
|
83
|
+
reason?: string;
|
|
84
|
+
checkFailed?: string;
|
|
85
|
+
suggestedAlternative?: string;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/types/tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/types/tool.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,8CAA8C;AAC9C,+DAA+D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAKA,yBAAyB;AACzB,wBAAgB,UAAU,IAAI,MAAM,CAYnC;AAED,2CAA2C;AAC3C,wBAAgB,OAAO,IAAI,MAAM,CAEhC"}
|
package/dist/utils/id.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// ID generation — crypto-random, no external deps
|
|
3
|
+
// ============================================================
|
|
4
|
+
import { randomBytes } from 'node:crypto';
|
|
5
|
+
/** Generate a UUID v4 */
|
|
6
|
+
export function generateId() {
|
|
7
|
+
const bytes = randomBytes(16);
|
|
8
|
+
bytes[6] = (bytes[6] & 0x0f) | 0x40; // version 4
|
|
9
|
+
bytes[8] = (bytes[8] & 0x3f) | 0x80; // variant
|
|
10
|
+
const hex = bytes.toString('hex');
|
|
11
|
+
return [
|
|
12
|
+
hex.slice(0, 8),
|
|
13
|
+
hex.slice(8, 12),
|
|
14
|
+
hex.slice(12, 16),
|
|
15
|
+
hex.slice(16, 20),
|
|
16
|
+
hex.slice(20),
|
|
17
|
+
].join('-');
|
|
18
|
+
}
|
|
19
|
+
/** Short 8-char ID for display purposes */
|
|
20
|
+
export function shortId() {
|
|
21
|
+
return randomBytes(4).toString('hex');
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/utils/id.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,kDAAkD;AAClD,+DAA+D;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,yBAAyB;AACzB,MAAM,UAAU,UAAU;IACxB,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;IAC9B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,YAAY;IAClD,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,UAAU;IAChD,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO;QACL,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACf,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QAChB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC;QACjB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;KACd,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,OAAO;IACrB,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type Ok<T> = {
|
|
2
|
+
ok: true;
|
|
3
|
+
value: T;
|
|
4
|
+
};
|
|
5
|
+
export type Err<E> = {
|
|
6
|
+
ok: false;
|
|
7
|
+
error: E;
|
|
8
|
+
};
|
|
9
|
+
export type Result<T, E = Error> = Ok<T> | Err<E>;
|
|
10
|
+
export declare function ok<T>(value: T): Ok<T>;
|
|
11
|
+
export declare function err<E>(error: E): Err<E>;
|
|
12
|
+
export declare function isOk<T, E>(r: Result<T, E>): r is Ok<T>;
|
|
13
|
+
export declare function isErr<T, E>(r: Result<T, E>): r is Err<E>;
|
|
14
|
+
export declare function unwrap<T, E>(r: Result<T, E>): T;
|
|
15
|
+
export declare function unwrapOr<T, E>(r: Result<T, E>, fallback: T): T;
|
|
16
|
+
//# sourceMappingURL=result.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/utils/result.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,EAAE,CAAC,CAAC,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAE,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAC5C,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAC7C,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAElD,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAErC;AAED,wBAAgB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAEvC;AAED,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAEtD;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAExD;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAG/C;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAE9D"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// ============================================================
|
|
2
|
+
// Result<T, E> — typed error handling without exceptions
|
|
3
|
+
// ============================================================
|
|
4
|
+
export function ok(value) {
|
|
5
|
+
return { ok: true, value };
|
|
6
|
+
}
|
|
7
|
+
export function err(error) {
|
|
8
|
+
return { ok: false, error };
|
|
9
|
+
}
|
|
10
|
+
export function isOk(r) {
|
|
11
|
+
return r.ok;
|
|
12
|
+
}
|
|
13
|
+
export function isErr(r) {
|
|
14
|
+
return !r.ok;
|
|
15
|
+
}
|
|
16
|
+
export function unwrap(r) {
|
|
17
|
+
if (!r.ok)
|
|
18
|
+
throw r.error;
|
|
19
|
+
return r.value;
|
|
20
|
+
}
|
|
21
|
+
export function unwrapOr(r, fallback) {
|
|
22
|
+
return r.ok ? r.value : fallback;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=result.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/utils/result.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,yDAAyD;AACzD,+DAA+D;AAM/D,MAAM,UAAU,EAAE,CAAI,KAAQ;IAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,GAAG,CAAI,KAAQ;IAC7B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,IAAI,CAAO,CAAe;IACxC,OAAO,CAAC,CAAC,EAAE,CAAC;AACd,CAAC;AAED,MAAM,UAAU,KAAK,CAAO,CAAe;IACzC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;AACf,CAAC;AAED,MAAM,UAAU,MAAM,CAAO,CAAe;IAC1C,IAAI,CAAC,CAAC,CAAC,EAAE;QAAE,MAAM,CAAC,CAAC,KAAK,CAAC;IACzB,OAAO,CAAC,CAAC,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,QAAQ,CAAO,CAAe,EAAE,QAAW;IACzD,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC;AACnC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nexagent-cli/shared",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Shared types, constants, and utilities for NexAgent",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist/**/*",
|
|
10
|
+
"README.md",
|
|
11
|
+
"LICENSE"
|
|
12
|
+
],
|
|
13
|
+
"publishConfig": {
|
|
14
|
+
"access": "public"
|
|
15
|
+
},
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"import": "./dist/index.js",
|
|
19
|
+
"types": "./dist/index.d.ts"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"scripts": {
|
|
23
|
+
"build": "tsc -p tsconfig.json",
|
|
24
|
+
"dev": "tsc -p tsconfig.json --watch",
|
|
25
|
+
"typecheck": "tsc --noEmit",
|
|
26
|
+
"clean": "rm -rf dist/",
|
|
27
|
+
"prepublishOnly": "npm run build"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"typescript": "^5.5.0"
|
|
31
|
+
}
|
|
32
|
+
}
|