@elizaos/plugin-shell 2.0.0-alpha.2 → 2.0.0-alpha.3
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/dist/actions/index.d.ts +1 -0
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/processAction.d.ts +7 -0
- package/dist/actions/processAction.d.ts.map +1 -0
- package/dist/approvals/allowlist.d.ts +76 -0
- package/dist/approvals/allowlist.d.ts.map +1 -0
- package/dist/approvals/analysis.d.ts +76 -0
- package/dist/approvals/analysis.d.ts.map +1 -0
- package/dist/approvals/index.d.ts +12 -0
- package/dist/approvals/index.d.ts.map +1 -0
- package/dist/approvals/service.d.ts +121 -0
- package/dist/approvals/service.d.ts.map +1 -0
- package/dist/approvals/types.d.ts +219 -0
- package/dist/approvals/types.d.ts.map +1 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5084 -417
- package/dist/index.js.map +24 -6
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/processRegistry.d.ts +25 -0
- package/dist/services/processRegistry.d.ts.map +1 -0
- package/dist/services/shellService.d.ts +73 -6
- package/dist/services/shellService.d.ts.map +1 -1
- package/dist/types/index.d.ts +114 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/processQueue.d.ts +136 -0
- package/dist/utils/processQueue.d.ts.map +1 -0
- package/dist/utils/ptyKeys.d.ts +23 -0
- package/dist/utils/ptyKeys.d.ts.map +1 -0
- package/dist/utils/shellArgv.d.ts +37 -0
- package/dist/utils/shellArgv.d.ts.map +1 -0
- package/dist/utils/shellUtils.d.ts +103 -0
- package/dist/utils/shellUtils.d.ts.map +1 -0
- package/package.json +43 -11
- package/LICENSE +0 -21
package/dist/actions/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Process Action - Manage running exec sessions
|
|
3
|
+
* Supports: list, poll, log, write, send-keys, submit, paste, kill, clear, remove
|
|
4
|
+
*/
|
|
5
|
+
import type { Action } from "@elizaos/core";
|
|
6
|
+
export declare const processAction: Action;
|
|
7
|
+
//# sourceMappingURL=processAction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processAction.d.ts","sourceRoot":"","sources":["../../actions/processAction.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAA8C,MAAM,eAAe,CAAC;AA0DxF,eAAO,MAAM,aAAa,EAAE,MAuJ3B,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Allowlist Management
|
|
3
|
+
*
|
|
4
|
+
* Functions for managing the exec approval allowlist.
|
|
5
|
+
* Handles loading, saving, and modifying allowlist entries.
|
|
6
|
+
*/
|
|
7
|
+
import type { CommandResolution, ExecAllowlistEntry, ExecApprovalsDefaults, ExecApprovalsFile, ExecApprovalsResolved, ExecApprovalsSnapshot, ExecAsk, ExecSecurity } from "./types";
|
|
8
|
+
/**
|
|
9
|
+
* Get the default approval file path
|
|
10
|
+
*/
|
|
11
|
+
export declare function getApprovalFilePath(): string;
|
|
12
|
+
/**
|
|
13
|
+
* Get the default socket path
|
|
14
|
+
*/
|
|
15
|
+
export declare function getApprovalSocketPath(): string;
|
|
16
|
+
/**
|
|
17
|
+
* Normalize approval configuration file
|
|
18
|
+
*/
|
|
19
|
+
export declare function normalizeApprovals(file: ExecApprovalsFile): ExecApprovalsFile;
|
|
20
|
+
/**
|
|
21
|
+
* Read approval configuration snapshot
|
|
22
|
+
*/
|
|
23
|
+
export declare function readApprovalsSnapshot(): ExecApprovalsSnapshot;
|
|
24
|
+
/**
|
|
25
|
+
* Load approval configuration
|
|
26
|
+
*/
|
|
27
|
+
export declare function loadApprovals(): ExecApprovalsFile;
|
|
28
|
+
/**
|
|
29
|
+
* Save approval configuration
|
|
30
|
+
* @throws Error if file cannot be written
|
|
31
|
+
*/
|
|
32
|
+
export declare function saveApprovals(file: ExecApprovalsFile): void;
|
|
33
|
+
/**
|
|
34
|
+
* Ensure approval configuration exists with socket/token
|
|
35
|
+
* @throws Error if configuration cannot be loaded or saved
|
|
36
|
+
*/
|
|
37
|
+
export declare function ensureApprovals(): ExecApprovalsFile;
|
|
38
|
+
/**
|
|
39
|
+
* Resolve approval configuration for an agent
|
|
40
|
+
* @throws Error if configuration cannot be loaded or saved
|
|
41
|
+
*/
|
|
42
|
+
export declare function resolveApprovals(agentId?: string, overrides?: Partial<ExecApprovalsDefaults>): ExecApprovalsResolved;
|
|
43
|
+
/**
|
|
44
|
+
* Resolve approval configuration from a loaded file
|
|
45
|
+
*/
|
|
46
|
+
export declare function resolveApprovalsFromFile(params: {
|
|
47
|
+
file: ExecApprovalsFile;
|
|
48
|
+
agentId?: string;
|
|
49
|
+
overrides?: Partial<ExecApprovalsDefaults>;
|
|
50
|
+
path?: string;
|
|
51
|
+
socketPath?: string;
|
|
52
|
+
token?: string;
|
|
53
|
+
}): ExecApprovalsResolved;
|
|
54
|
+
/**
|
|
55
|
+
* Match command against allowlist
|
|
56
|
+
*/
|
|
57
|
+
export declare function matchAllowlist(entries: ExecAllowlistEntry[], resolution: CommandResolution | null): ExecAllowlistEntry | null;
|
|
58
|
+
/**
|
|
59
|
+
* Record allowlist usage
|
|
60
|
+
* @returns true if successful, false if save failed
|
|
61
|
+
*/
|
|
62
|
+
export declare function recordAllowlistUse(approvals: ExecApprovalsFile, agentId: string | undefined, entry: ExecAllowlistEntry, command: string, resolvedPath?: string): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Add a new allowlist entry
|
|
65
|
+
* @returns true if entry was added, false if already exists or save failed
|
|
66
|
+
*/
|
|
67
|
+
export declare function addAllowlistEntry(approvals: ExecApprovalsFile, agentId: string | undefined, pattern: string): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Get minimum security level
|
|
70
|
+
*/
|
|
71
|
+
export declare function minSecurity(a: ExecSecurity, b: ExecSecurity): ExecSecurity;
|
|
72
|
+
/**
|
|
73
|
+
* Get maximum ask level
|
|
74
|
+
*/
|
|
75
|
+
export declare function maxAsk(a: ExecAsk, b: ExecAsk): ExecAsk;
|
|
76
|
+
//# sourceMappingURL=allowlist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allowlist.d.ts","sourceRoot":"","sources":["../../approvals/allowlist.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAElB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,OAAO,EACP,YAAY,EACb,MAAM,SAAS,CAAC;AAgCjB;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAmED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,iBAAiB,CAqC7E;AASD;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,qBAAqB,CA8C7D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,iBAAiB,CAyCjD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAoB3D;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,CA+BnD;AAyBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACzC,qBAAqB,CAuBvB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAC/C,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,qBAAqB,CA+DxB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,kBAAkB,EAAE,EAC7B,UAAU,EAAE,iBAAiB,GAAG,IAAI,GACnC,kBAAkB,GAAG,IAAI,CAqB3B;AAqFD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CA+BT;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,GACd,OAAO,CAqCT;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,YAAY,CAG1E;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAGtD"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Command Analysis
|
|
3
|
+
*
|
|
4
|
+
* Functions for analyzing shell commands for security evaluation.
|
|
5
|
+
* Parses commands, resolves executables, and evaluates against allowlists.
|
|
6
|
+
*/
|
|
7
|
+
import type { CommandResolution, ExecAllowlistEntry, ExecAllowlistAnalysis, ExecAllowlistEvaluation, ExecCommandAnalysis } from "./types";
|
|
8
|
+
/**
|
|
9
|
+
* Resolve command to executable info
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveCommandResolution(command: string, cwd?: string, env?: NodeJS.ProcessEnv): CommandResolution | null;
|
|
12
|
+
/**
|
|
13
|
+
* Resolve command from argv
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveCommandFromArgv(argv: string[], cwd?: string, env?: NodeJS.ProcessEnv): CommandResolution | null;
|
|
16
|
+
/**
|
|
17
|
+
* Analyze a shell command
|
|
18
|
+
*/
|
|
19
|
+
export declare function analyzeShellCommand(params: {
|
|
20
|
+
command: string;
|
|
21
|
+
cwd?: string;
|
|
22
|
+
env?: NodeJS.ProcessEnv;
|
|
23
|
+
platform?: string | null;
|
|
24
|
+
}): ExecCommandAnalysis;
|
|
25
|
+
/**
|
|
26
|
+
* Normalize safe bins set
|
|
27
|
+
*/
|
|
28
|
+
export declare function normalizeSafeBins(entries?: string[]): Set<string>;
|
|
29
|
+
/**
|
|
30
|
+
* Resolve safe bins with defaults
|
|
31
|
+
*/
|
|
32
|
+
export declare function resolveSafeBins(entries?: string[] | null): Set<string>;
|
|
33
|
+
/**
|
|
34
|
+
* Check if command is safe bin usage (no file args)
|
|
35
|
+
*/
|
|
36
|
+
export declare function isSafeBinUsage(params: {
|
|
37
|
+
argv: string[];
|
|
38
|
+
resolution: CommandResolution | null;
|
|
39
|
+
safeBins: Set<string>;
|
|
40
|
+
cwd?: string;
|
|
41
|
+
fileExists?: (filePath: string) => boolean;
|
|
42
|
+
}): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Evaluate command against allowlist
|
|
45
|
+
*/
|
|
46
|
+
export declare function evaluateExecAllowlist(params: {
|
|
47
|
+
analysis: ExecCommandAnalysis;
|
|
48
|
+
allowlist: ExecAllowlistEntry[];
|
|
49
|
+
safeBins: Set<string>;
|
|
50
|
+
cwd?: string;
|
|
51
|
+
skillBins?: Set<string>;
|
|
52
|
+
autoAllowSkills?: boolean;
|
|
53
|
+
}): ExecAllowlistEvaluation;
|
|
54
|
+
/**
|
|
55
|
+
* Evaluate shell command for allowlist (combined analysis + evaluation)
|
|
56
|
+
*/
|
|
57
|
+
export declare function evaluateShellAllowlist(params: {
|
|
58
|
+
command: string;
|
|
59
|
+
allowlist: ExecAllowlistEntry[];
|
|
60
|
+
safeBins: Set<string>;
|
|
61
|
+
cwd?: string;
|
|
62
|
+
env?: NodeJS.ProcessEnv;
|
|
63
|
+
skillBins?: Set<string>;
|
|
64
|
+
autoAllowSkills?: boolean;
|
|
65
|
+
platform?: string | null;
|
|
66
|
+
}): ExecAllowlistAnalysis;
|
|
67
|
+
/**
|
|
68
|
+
* Check if approval is required
|
|
69
|
+
*/
|
|
70
|
+
export declare function requiresExecApproval(params: {
|
|
71
|
+
ask: "off" | "on-miss" | "always";
|
|
72
|
+
security: "deny" | "allowlist" | "full";
|
|
73
|
+
analysisOk: boolean;
|
|
74
|
+
allowlistSatisfied: boolean;
|
|
75
|
+
}): boolean;
|
|
76
|
+
//# sourceMappingURL=analysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../approvals/analysis.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EAEpB,MAAM,SAAS,CAAC;AAiJjB;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GACtB,iBAAiB,GAAG,IAAI,CAU1B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,CAAC,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GACtB,iBAAiB,GAAG,IAAI,CAU1B;AA6PD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GAAG,mBAAmB,CA6CtB;AAwKD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAMjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAKtE;AA6BD;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACrC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5C,GAAG,OAAO,CAsCV;AAwED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GAAG,uBAAuB,CAoC1B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,GAAG,qBAAqB,CAwFxB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,GAAG,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IAClC,QAAQ,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IACxC,UAAU,EAAE,OAAO,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,GAAG,OAAO,CAOV"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exec Approvals Module
|
|
3
|
+
*
|
|
4
|
+
* Command execution approval system for plugin-shell.
|
|
5
|
+
* Provides allowlist management, command analysis, and approval workflows.
|
|
6
|
+
*/
|
|
7
|
+
export type { CommandResolution, ExecAllowlistAnalysis, ExecAllowlistEntry, ExecAllowlistEvaluation, ExecApprovalDecision, ExecApprovalRequest, ExecApprovalResult, ExecApprovalsAgent, ExecApprovalsDefaults, ExecApprovalsFile, ExecApprovalsResolved, ExecApprovalsSnapshot, ExecAsk, ExecCommandAnalysis, ExecCommandSegment, ExecHost, ExecSecurity, } from "./types";
|
|
8
|
+
export { DEFAULT_SAFE_BINS, EXEC_APPROVAL_DEFAULTS } from "./types";
|
|
9
|
+
export { addAllowlistEntry, ensureApprovals, getApprovalFilePath, getApprovalSocketPath, loadApprovals, matchAllowlist, maxAsk, minSecurity, normalizeApprovals, readApprovalsSnapshot, recordAllowlistUse, resolveApprovals, resolveApprovalsFromFile, saveApprovals, } from "./allowlist";
|
|
10
|
+
export { analyzeShellCommand, evaluateExecAllowlist, evaluateShellAllowlist, isSafeBinUsage, normalizeSafeBins, requiresExecApproval, resolveCommandFromArgv, resolveCommandResolution, resolveSafeBins, } from "./analysis";
|
|
11
|
+
export { ExecApprovalService, type CommandCheckResult } from "./service";
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../approvals/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,OAAO,EACP,mBAAmB,EACnB,kBAAkB,EAClB,QAAQ,EACR,YAAY,GACb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAGpE,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,MAAM,EACN,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,aAAa,GACd,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,GAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ExecApprovalService
|
|
3
|
+
*
|
|
4
|
+
* Service for managing command execution approvals in plugin-shell.
|
|
5
|
+
* Integrates with Eliza's ApprovalService for approval UI,
|
|
6
|
+
* and provides allowlist management and command analysis.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const approvalService = runtime.getService('exec_approval') as ExecApprovalService;
|
|
11
|
+
*
|
|
12
|
+
* // Check if command needs approval
|
|
13
|
+
* const check = await approvalService.checkCommand({
|
|
14
|
+
* command: 'rm -rf /tmp/cache',
|
|
15
|
+
* cwd: '/home/user',
|
|
16
|
+
* roomId: message.roomId,
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* if (check.requiresApproval) {
|
|
20
|
+
* const result = await approvalService.requestApproval(check.request);
|
|
21
|
+
* if (result.decision === 'deny') {
|
|
22
|
+
* return { error: 'Command denied' };
|
|
23
|
+
* }
|
|
24
|
+
* if (result.decision === 'allow-always') {
|
|
25
|
+
* await approvalService.addToAllowlist(command);
|
|
26
|
+
* }
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
import type { IAgentRuntime, UUID } from "@elizaos/core";
|
|
31
|
+
import { Service } from "@elizaos/core";
|
|
32
|
+
import type { ExecAllowlistEntry, ExecApprovalDecision, ExecApprovalRequest, ExecApprovalResult, ExecApprovalsResolved, ExecCommandAnalysis } from "./types";
|
|
33
|
+
/**
|
|
34
|
+
* Command check result
|
|
35
|
+
*/
|
|
36
|
+
export interface CommandCheckResult {
|
|
37
|
+
/** Whether the command can be executed */
|
|
38
|
+
allowed: boolean;
|
|
39
|
+
/** Whether approval is required */
|
|
40
|
+
requiresApproval: boolean;
|
|
41
|
+
/** Reason for denial (if not allowed and no approval needed) */
|
|
42
|
+
reason?: string;
|
|
43
|
+
/** Approval request (if approval required) */
|
|
44
|
+
request?: ExecApprovalRequest;
|
|
45
|
+
/** Command analysis result */
|
|
46
|
+
analysis: ExecCommandAnalysis;
|
|
47
|
+
/** Matching allowlist entries */
|
|
48
|
+
allowlistMatches: ExecAllowlistEntry[];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* ExecApprovalService provides command execution approval management.
|
|
52
|
+
*/
|
|
53
|
+
export declare class ExecApprovalService extends Service {
|
|
54
|
+
static serviceType: string;
|
|
55
|
+
capabilityDescription: string;
|
|
56
|
+
private approvalConfig;
|
|
57
|
+
private safeBins;
|
|
58
|
+
private skillBins;
|
|
59
|
+
constructor(runtime?: IAgentRuntime);
|
|
60
|
+
/**
|
|
61
|
+
* Start the ExecApprovalService
|
|
62
|
+
*/
|
|
63
|
+
static start(runtime: IAgentRuntime): Promise<Service>;
|
|
64
|
+
/**
|
|
65
|
+
* Stop the ExecApprovalService
|
|
66
|
+
*/
|
|
67
|
+
stop(): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Load/reload configuration
|
|
70
|
+
*/
|
|
71
|
+
loadConfig(agentId?: string): ExecApprovalsResolved;
|
|
72
|
+
/**
|
|
73
|
+
* Get current configuration
|
|
74
|
+
*/
|
|
75
|
+
getConfig(): ExecApprovalsResolved;
|
|
76
|
+
/**
|
|
77
|
+
* Set safe binaries that don't need approval
|
|
78
|
+
*/
|
|
79
|
+
setSafeBins(bins: string[]): void;
|
|
80
|
+
/**
|
|
81
|
+
* Set skill binaries that are auto-allowed
|
|
82
|
+
*/
|
|
83
|
+
setSkillBins(bins: string[]): void;
|
|
84
|
+
/**
|
|
85
|
+
* Check if a command is allowed to execute
|
|
86
|
+
*/
|
|
87
|
+
checkCommand(params: {
|
|
88
|
+
command: string;
|
|
89
|
+
cwd?: string;
|
|
90
|
+
roomId: UUID;
|
|
91
|
+
env?: NodeJS.ProcessEnv;
|
|
92
|
+
agentId?: string;
|
|
93
|
+
}): Promise<CommandCheckResult>;
|
|
94
|
+
/**
|
|
95
|
+
* Request approval for a command
|
|
96
|
+
*/
|
|
97
|
+
requestApproval(request: ExecApprovalRequest): Promise<ExecApprovalResult>;
|
|
98
|
+
/**
|
|
99
|
+
* Request approval asynchronously (fire and forget with callbacks)
|
|
100
|
+
*/
|
|
101
|
+
requestApprovalAsync(request: ExecApprovalRequest, callbacks?: {
|
|
102
|
+
onApproved?: (decision: ExecApprovalDecision) => Promise<void>;
|
|
103
|
+
onDenied?: () => Promise<void>;
|
|
104
|
+
onTimeout?: () => Promise<void>;
|
|
105
|
+
}): Promise<UUID>;
|
|
106
|
+
/**
|
|
107
|
+
* Add a pattern to the allowlist
|
|
108
|
+
* @returns true if pattern was added successfully
|
|
109
|
+
*/
|
|
110
|
+
addToAllowlist(pattern: string, agentId?: string): Promise<boolean>;
|
|
111
|
+
/**
|
|
112
|
+
* Cancel a pending approval
|
|
113
|
+
*/
|
|
114
|
+
cancelApproval(taskId: UUID): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* Get all pending exec approvals for a room
|
|
117
|
+
*/
|
|
118
|
+
getPendingApprovals(roomId: UUID): Promise<ExecApprovalRequest[]>;
|
|
119
|
+
}
|
|
120
|
+
export default ExecApprovalService;
|
|
121
|
+
//# sourceMappingURL=service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../approvals/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EACV,aAAa,EAEb,IAAI,EACL,MAAM,eAAe,CAAC;AACvB,OAAO,EAGL,OAAO,EACR,MAAM,eAAe,CAAC;AAwBvB,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAElB,qBAAqB,EAErB,mBAAmB,EAEpB,MAAM,SAAS,CAAC;AAGjB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0CAA0C;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B,8BAA8B;IAC9B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,iCAAiC;IACjC,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;CACxC;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,OAAO;IAC9C,MAAM,CAAC,WAAW,SAAmB;IACrC,qBAAqB,SACwD;IAE7E,OAAO,CAAC,cAAc,CAAsC;IAC5D,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,SAAS,CAAc;gBAEnB,OAAO,CAAC,EAAE,aAAa;IAMnC;;OAEG;WACU,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAyC5D;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3B;;OAEG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,qBAAqB;IAKnD;;OAEG;IACH,SAAS,IAAI,qBAAqB;IAOlC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAIjC;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAIlC;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE;QACzB,OAAO,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,IAAI,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6I/B;;OAEG;IACG,eAAe,CACnB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC;IAoE9B;;OAEG;IACG,oBAAoB,CACxB,OAAO,EAAE,mBAAmB,EAC5B,SAAS,CAAC,EAAE;QACV,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/D,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;KACjC,GACA,OAAO,CAAC,IAAI,CAAC;IA2EhB;;;OAGG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAUzE;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAUjD;;OAEG;IACG,mBAAmB,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;CAwCxE;AAmBD,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Exec Approval Types
|
|
3
|
+
*
|
|
4
|
+
* Types for command execution approval system in plugin-shell.
|
|
5
|
+
* Provides type definitions for approval configuration, allowlist entries,
|
|
6
|
+
* command analysis, and approval decisions.
|
|
7
|
+
*/
|
|
8
|
+
import type { UUID } from "@elizaos/core";
|
|
9
|
+
/**
|
|
10
|
+
* Security levels for command execution
|
|
11
|
+
*/
|
|
12
|
+
export type ExecSecurity = "deny" | "allowlist" | "full";
|
|
13
|
+
/**
|
|
14
|
+
* Ask modes for approval prompts
|
|
15
|
+
*/
|
|
16
|
+
export type ExecAsk = "off" | "on-miss" | "always";
|
|
17
|
+
/**
|
|
18
|
+
* Execution host types
|
|
19
|
+
*/
|
|
20
|
+
export type ExecHost = "sandbox" | "gateway" | "node";
|
|
21
|
+
/**
|
|
22
|
+
* Default configuration for exec approvals
|
|
23
|
+
*/
|
|
24
|
+
export interface ExecApprovalsDefaults {
|
|
25
|
+
/** Security level (deny, allowlist, full) */
|
|
26
|
+
security?: ExecSecurity;
|
|
27
|
+
/** Ask mode (off, on-miss, always) */
|
|
28
|
+
ask?: ExecAsk;
|
|
29
|
+
/** Fallback security when ask is declined */
|
|
30
|
+
askFallback?: ExecSecurity;
|
|
31
|
+
/** Auto-allow commands from skill definitions */
|
|
32
|
+
autoAllowSkills?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Allowlist entry for permitted commands
|
|
36
|
+
*/
|
|
37
|
+
export interface ExecAllowlistEntry {
|
|
38
|
+
/** Unique identifier */
|
|
39
|
+
id?: string;
|
|
40
|
+
/** Pattern to match (executable path or glob) */
|
|
41
|
+
pattern: string;
|
|
42
|
+
/** Last time this pattern was used */
|
|
43
|
+
lastUsedAt?: number;
|
|
44
|
+
/** Last command that matched this pattern */
|
|
45
|
+
lastUsedCommand?: string;
|
|
46
|
+
/** Last resolved executable path */
|
|
47
|
+
lastResolvedPath?: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Agent-specific approval configuration
|
|
51
|
+
*/
|
|
52
|
+
export interface ExecApprovalsAgent extends ExecApprovalsDefaults {
|
|
53
|
+
/** Allowlist entries for this agent */
|
|
54
|
+
allowlist?: ExecAllowlistEntry[];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Full approval configuration file structure
|
|
58
|
+
*/
|
|
59
|
+
export interface ExecApprovalsFile {
|
|
60
|
+
/** Version number (always 1) */
|
|
61
|
+
version: 1;
|
|
62
|
+
/** Socket configuration for external approval UI */
|
|
63
|
+
socket?: {
|
|
64
|
+
path?: string;
|
|
65
|
+
token?: string;
|
|
66
|
+
};
|
|
67
|
+
/** Default approval settings */
|
|
68
|
+
defaults?: ExecApprovalsDefaults;
|
|
69
|
+
/** Per-agent approval settings */
|
|
70
|
+
agents?: Record<string, ExecApprovalsAgent>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Snapshot of approval configuration file
|
|
74
|
+
*/
|
|
75
|
+
export interface ExecApprovalsSnapshot {
|
|
76
|
+
/** File path */
|
|
77
|
+
path: string;
|
|
78
|
+
/** Whether the file exists */
|
|
79
|
+
exists: boolean;
|
|
80
|
+
/** Raw file content */
|
|
81
|
+
raw: string | null;
|
|
82
|
+
/** Parsed and normalized configuration */
|
|
83
|
+
file: ExecApprovalsFile;
|
|
84
|
+
/** Content hash */
|
|
85
|
+
hash: string;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Resolved approval configuration for an agent
|
|
89
|
+
*/
|
|
90
|
+
export interface ExecApprovalsResolved {
|
|
91
|
+
/** File path */
|
|
92
|
+
path: string;
|
|
93
|
+
/** Socket path for external approval UI */
|
|
94
|
+
socketPath: string;
|
|
95
|
+
/** Authentication token */
|
|
96
|
+
token: string;
|
|
97
|
+
/** Resolved default settings */
|
|
98
|
+
defaults: Required<ExecApprovalsDefaults>;
|
|
99
|
+
/** Resolved agent-specific settings */
|
|
100
|
+
agent: Required<ExecApprovalsDefaults>;
|
|
101
|
+
/** Combined allowlist entries */
|
|
102
|
+
allowlist: ExecAllowlistEntry[];
|
|
103
|
+
/** Full configuration file */
|
|
104
|
+
file: ExecApprovalsFile;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Command resolution result
|
|
108
|
+
*/
|
|
109
|
+
export interface CommandResolution {
|
|
110
|
+
/** The raw executable from the command */
|
|
111
|
+
rawExecutable: string;
|
|
112
|
+
/** Fully resolved executable path */
|
|
113
|
+
resolvedPath?: string;
|
|
114
|
+
/** Executable name (basename) */
|
|
115
|
+
executableName: string;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Command segment from shell parsing
|
|
119
|
+
*/
|
|
120
|
+
export interface ExecCommandSegment {
|
|
121
|
+
/** Raw command text */
|
|
122
|
+
raw: string;
|
|
123
|
+
/** Parsed argument vector */
|
|
124
|
+
argv: string[];
|
|
125
|
+
/** Resolution of the executable */
|
|
126
|
+
resolution: CommandResolution | null;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Result of command analysis
|
|
130
|
+
*/
|
|
131
|
+
export interface ExecCommandAnalysis {
|
|
132
|
+
/** Whether analysis succeeded */
|
|
133
|
+
ok: boolean;
|
|
134
|
+
/** Reason for failure (if any) */
|
|
135
|
+
reason?: string;
|
|
136
|
+
/** Parsed command segments */
|
|
137
|
+
segments: ExecCommandSegment[];
|
|
138
|
+
/** Segments grouped by chain operators (&&, ||, ;) */
|
|
139
|
+
chains?: ExecCommandSegment[][];
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Result of allowlist evaluation
|
|
143
|
+
*/
|
|
144
|
+
export interface ExecAllowlistEvaluation {
|
|
145
|
+
/** Whether all commands are in the allowlist */
|
|
146
|
+
allowlistSatisfied: boolean;
|
|
147
|
+
/** Matching allowlist entries */
|
|
148
|
+
allowlistMatches: ExecAllowlistEntry[];
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Combined analysis and allowlist evaluation
|
|
152
|
+
*/
|
|
153
|
+
export interface ExecAllowlistAnalysis {
|
|
154
|
+
/** Whether analysis succeeded */
|
|
155
|
+
analysisOk: boolean;
|
|
156
|
+
/** Whether allowlist is satisfied */
|
|
157
|
+
allowlistSatisfied: boolean;
|
|
158
|
+
/** Matching allowlist entries */
|
|
159
|
+
allowlistMatches: ExecAllowlistEntry[];
|
|
160
|
+
/** Parsed command segments */
|
|
161
|
+
segments: ExecCommandSegment[];
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Possible approval decisions
|
|
165
|
+
*/
|
|
166
|
+
export type ExecApprovalDecision = "allow-once" | "allow-always" | "deny";
|
|
167
|
+
/**
|
|
168
|
+
* Request for exec approval
|
|
169
|
+
*/
|
|
170
|
+
export interface ExecApprovalRequest {
|
|
171
|
+
/** Unique request ID */
|
|
172
|
+
id: string;
|
|
173
|
+
/** The command to execute */
|
|
174
|
+
command: string;
|
|
175
|
+
/** Working directory */
|
|
176
|
+
cwd?: string;
|
|
177
|
+
/** Execution host */
|
|
178
|
+
host?: ExecHost;
|
|
179
|
+
/** Security level */
|
|
180
|
+
security?: ExecSecurity;
|
|
181
|
+
/** Ask mode */
|
|
182
|
+
ask?: ExecAsk;
|
|
183
|
+
/** Agent ID */
|
|
184
|
+
agentId?: string;
|
|
185
|
+
/** Resolved executable path */
|
|
186
|
+
resolvedPath?: string;
|
|
187
|
+
/** Session key for routing */
|
|
188
|
+
sessionKey?: string;
|
|
189
|
+
/** Room ID where approval is requested */
|
|
190
|
+
roomId: UUID;
|
|
191
|
+
/** Timeout in milliseconds */
|
|
192
|
+
timeoutMs?: number;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Result of exec approval
|
|
196
|
+
*/
|
|
197
|
+
export interface ExecApprovalResult {
|
|
198
|
+
/** The decision made */
|
|
199
|
+
decision: ExecApprovalDecision;
|
|
200
|
+
/** Whether approval timed out */
|
|
201
|
+
timedOut: boolean;
|
|
202
|
+
/** Who resolved the approval */
|
|
203
|
+
resolvedBy?: UUID;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Configuration for safe binary commands that don't need approval
|
|
207
|
+
*/
|
|
208
|
+
export declare const DEFAULT_SAFE_BINS: readonly ["jq", "grep", "cut", "sort", "uniq", "head", "tail", "tr", "wc"];
|
|
209
|
+
/**
|
|
210
|
+
* Default exec approval settings
|
|
211
|
+
*/
|
|
212
|
+
export declare const EXEC_APPROVAL_DEFAULTS: {
|
|
213
|
+
readonly security: ExecSecurity;
|
|
214
|
+
readonly ask: ExecAsk;
|
|
215
|
+
readonly askFallback: ExecSecurity;
|
|
216
|
+
readonly autoAllowSkills: false;
|
|
217
|
+
readonly timeoutMs: 120000;
|
|
218
|
+
};
|
|
219
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../approvals/types.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,8 +3,13 @@ export declare const shellPlugin: Plugin;
|
|
|
3
3
|
export default shellPlugin;
|
|
4
4
|
export { clearHistory } from "./actions/clearHistory";
|
|
5
5
|
export { executeCommand } from "./actions/executeCommand";
|
|
6
|
+
export { processAction } from "./actions/processAction";
|
|
7
|
+
export { addAllowlistEntry, analyzeShellCommand, DEFAULT_SAFE_BINS, ensureApprovals, evaluateExecAllowlist, evaluateShellAllowlist, EXEC_APPROVAL_DEFAULTS, ExecApprovalService, getApprovalFilePath, getApprovalSocketPath, isSafeBinUsage, loadApprovals, matchAllowlist, maxAsk, minSecurity, normalizeApprovals, normalizeSafeBins, readApprovalsSnapshot, recordAllowlistUse, requiresExecApproval, resolveApprovals, resolveApprovalsFromFile, resolveCommandFromArgv, resolveCommandResolution, resolveSafeBins, saveApprovals, type CommandCheckResult, type CommandResolution, type ExecAllowlistAnalysis, type ExecAllowlistEntry, type ExecAllowlistEvaluation, type ExecApprovalDecision, type ExecApprovalRequest, type ExecApprovalResult, type ExecApprovalsAgent, type ExecApprovalsDefaults, type ExecApprovalsFile, type ExecApprovalsResolved, type ExecApprovalsSnapshot, type ExecAsk, type ExecCommandAnalysis, type ExecCommandSegment, type ExecHost, type ExecSecurity, } from "./approvals";
|
|
6
8
|
export { shellHistoryProvider } from "./providers/shellHistoryProvider";
|
|
9
|
+
export { addSession, appendOutput, clearFinished, createSessionSlug, deleteSession, drainSession, getFinishedSession, getSession, listFinishedSessions, listRunningSessions, markBackgrounded, markExited, resetProcessRegistryForTests, setJobTtlMs, tail, trimWithCap, } from "./services/processRegistry";
|
|
7
10
|
export { ShellService } from "./services/shellService";
|
|
8
|
-
export type { CommandHistoryEntry, CommandResult, FileOperation, FileOperationType, ShellConfig, } from "./types";
|
|
11
|
+
export type { CommandHistoryEntry, CommandResult, ExecResult, ExecuteOptions, FileOperation, FileOperationType, FinishedSession, ProcessAction, ProcessActionParams, ProcessSession, ProcessStatus, PtyExitEvent, PtyHandle, PtyListener, PtySpawn, SessionStdin, ShellConfig, } from "./types";
|
|
9
12
|
export { DEFAULT_FORBIDDEN_COMMANDS, extractBaseCommand, isForbiddenCommand, isSafeCommand, loadShellConfig, validatePath, } from "./utils";
|
|
13
|
+
export { BRACKETED_PASTE_END, BRACKETED_PASTE_START, buildCursorPositionResponse, encodeKeySequence, encodePaste, type KeyEncodingRequest, type KeyEncodingResult, stripDsrRequests, } from "./utils/ptyKeys";
|
|
14
|
+
export { chunkString, clampNumber, coerceEnv, deriveSessionName, formatDuration, formatSpawnError, getShellConfig, killProcessTree, killSession, pad, readEnvInt, resolveWorkdir, type SpawnFallback, type SpawnWithFallbackResult, sanitizeBinaryOutput, sliceLogLines, sliceUtf16Safe, spawnWithFallback, truncateMiddle, } from "./utils/shellUtils";
|
|
10
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAM5C,eAAO,MAAM,WAAW,EAAE,MAOzB,CAAC;AAEF,eAAe,WAAW,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,aAAa,EACb,cAAc,EACd,MAAM,EACN,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,EACf,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,OAAO,EACZ,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EACL,UAAU,EACV,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,UAAU,EACV,oBAAoB,EACpB,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACV,4BAA4B,EAC5B,WAAW,EACX,IAAI,EACJ,WAAW,GACZ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGvD,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,UAAU,EACV,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,SAAS,EACT,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,WAAW,EACX,GAAG,EACH,UAAU,EACV,cAAc,EACd,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,cAAc,GACf,MAAM,oBAAoB,CAAC"}
|