@elizaos/plugin-shell 2.0.0-alpha.1 → 2.0.0-alpha.10

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.
Files changed (49) hide show
  1. package/dist/actions/clearHistory.d.ts.map +1 -1
  2. package/dist/actions/index.d.ts +0 -1
  3. package/dist/actions/index.d.ts.map +1 -1
  4. package/dist/approvals/allowlist.d.ts +76 -0
  5. package/dist/approvals/allowlist.d.ts.map +1 -0
  6. package/dist/approvals/analysis.d.ts +76 -0
  7. package/dist/approvals/analysis.d.ts.map +1 -0
  8. package/dist/approvals/index.d.ts +12 -0
  9. package/dist/approvals/index.d.ts.map +1 -0
  10. package/dist/approvals/service.d.ts +121 -0
  11. package/dist/approvals/service.d.ts.map +1 -0
  12. package/dist/approvals/types.d.ts +219 -0
  13. package/dist/approvals/types.d.ts.map +1 -0
  14. package/dist/generated/specs/spec-helpers.d.ts.map +1 -1
  15. package/dist/generated/specs/specs.d.ts +0 -10
  16. package/dist/generated/specs/specs.d.ts.map +1 -1
  17. package/dist/index.browser.d.ts.map +1 -1
  18. package/dist/index.d.ts +6 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +4785 -408
  21. package/dist/index.js.map +29 -13
  22. package/dist/providers/shellHistoryProvider.d.ts.map +1 -1
  23. package/dist/providers/terminalUsage.d.ts +3 -0
  24. package/dist/providers/terminalUsage.d.ts.map +1 -0
  25. package/dist/services/index.d.ts +1 -0
  26. package/dist/services/index.d.ts.map +1 -1
  27. package/dist/services/processRegistry.d.ts +25 -0
  28. package/dist/services/processRegistry.d.ts.map +1 -0
  29. package/dist/services/shellService.d.ts +73 -6
  30. package/dist/services/shellService.d.ts.map +1 -1
  31. package/dist/types/index.d.ts +114 -0
  32. package/dist/types/index.d.ts.map +1 -1
  33. package/dist/utils/config.d.ts.map +1 -1
  34. package/dist/utils/index.d.ts +4 -0
  35. package/dist/utils/index.d.ts.map +1 -1
  36. package/dist/utils/pathUtils.d.ts.map +1 -1
  37. package/dist/utils/processQueue.d.ts +136 -0
  38. package/dist/utils/processQueue.d.ts.map +1 -0
  39. package/dist/utils/ptyKeys.d.ts +23 -0
  40. package/dist/utils/ptyKeys.d.ts.map +1 -0
  41. package/dist/utils/shellArgv.d.ts +37 -0
  42. package/dist/utils/shellArgv.d.ts.map +1 -0
  43. package/dist/utils/shellUtils.d.ts +103 -0
  44. package/dist/utils/shellUtils.d.ts.map +1 -0
  45. package/dist/vitest.config.d.ts +3 -0
  46. package/dist/vitest.config.d.ts.map +1 -0
  47. package/package.json +124 -91
  48. package/dist/actions/executeCommand.d.ts +0 -6
  49. package/dist/actions/executeCommand.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"clearHistory.d.ts","sourceRoot":"","sources":["../../actions/clearHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,MAAM,EASZ,MAAM,eAAe,CAAC;AAMvB,eAAO,MAAM,YAAY,EAAE,MAgE1B,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"clearHistory.d.ts","sourceRoot":"","sources":["../../actions/clearHistory.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,MAAM,EASX,MAAM,eAAe,CAAC;AAMvB,eAAO,MAAM,YAAY,EAAE,MAsG1B,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,3 +1,2 @@
1
1
  export { clearHistory } from "./clearHistory";
2
- export { executeCommand } from "./executeCommand";
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -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"}
@@ -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,EACX,iBAAiB,EACjB,kBAAkB,EAElB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,OAAO,EACP,YAAY,EACZ,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,CAsB3D;AAED;;;GAGG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,CAiCnD;AAyBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,GACxC,qBAAqB,CAuBvB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE;IAChD,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;CACf,GAAG,qBAAqB,CA+DxB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC7B,OAAO,EAAE,kBAAkB,EAAE,EAC7B,UAAU,EAAE,iBAAiB,GAAG,IAAI,GAClC,kBAAkB,GAAG,IAAI,CAqB3B;AAqFD;;;GAGG;AACH,wBAAgB,kBAAkB,CACjC,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,GACnB,OAAO,CA+BT;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAChC,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,GACb,OAAO,CA8CT;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,YAAY,CAO1E;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, ExecAllowlistAnalysis, ExecAllowlistEntry, 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;AAKH,OAAO,KAAK,EACX,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EAEnB,MAAM,SAAS,CAAC;AAgJjB;;GAEG;AACH,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,MAAM,EACf,GAAG,CAAC,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GACrB,iBAAiB,GAAG,IAAI,CAU1B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACrC,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,CAAC,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GACrB,iBAAiB,GAAG,IAAI,CAU1B;AAsQD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC3C,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;CACzB,GAAG,mBAAmB,CAqDtB;AA4KD;;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;IACtC,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;CAC3C,GAAG,OAAO,CAyCV;AAwED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC7C,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;CAC1B,GAAG,uBAAuB,CAuC1B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC9C,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;CACzB,GAAG,qBAAqB,CAwFxB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC5C,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;CAC5B,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 { addAllowlistEntry, ensureApprovals, getApprovalFilePath, getApprovalSocketPath, loadApprovals, matchAllowlist, maxAsk, minSecurity, normalizeApprovals, readApprovalsSnapshot, recordAllowlistUse, resolveApprovals, resolveApprovalsFromFile, saveApprovals, } from "./allowlist";
8
+ export { analyzeShellCommand, evaluateExecAllowlist, evaluateShellAllowlist, isSafeBinUsage, normalizeSafeBins, requiresExecApproval, resolveCommandFromArgv, resolveCommandResolution, resolveSafeBins, } from "./analysis";
9
+ export { type CommandCheckResult, ExecApprovalService } from "./service";
10
+ export type { CommandResolution, ExecAllowlistAnalysis, ExecAllowlistEntry, ExecAllowlistEvaluation, ExecApprovalDecision, ExecApprovalRequest, ExecApprovalResult, ExecApprovalsAgent, ExecApprovalsDefaults, ExecApprovalsFile, ExecApprovalsResolved, ExecApprovalsSnapshot, ExecAsk, ExecCommandAnalysis, ExecCommandSegment, ExecHost, ExecSecurity, } from "./types";
11
+ export { DEFAULT_SAFE_BINS, EXEC_APPROVAL_DEFAULTS } from "./types";
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,OAAO,EACN,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,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,eAAe,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,KAAK,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEzE,YAAY,EACX,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,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,SAAS,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,EAAE,aAAa,EAAQ,IAAI,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAgC,OAAO,EAAE,MAAM,eAAe,CAAC;AAyBtE,OAAO,KAAK,EACX,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EAErB,mBAAmB,EAEnB,MAAM,SAAS,CAAC;AAGjB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,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;CACvC;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,OAAO;IAC/C,MAAM,CAAC,WAAW,SAAmB;IACrC,qBAAqB,SACuD;IAE5E,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;IAO3B;;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;QAC1B,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;KACjB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA6I/B;;OAEG;IACG,eAAe,CACpB,OAAO,EAAE,mBAAmB,GAC1B,OAAO,CAAC,kBAAkB,CAAC;IAoE9B;;OAEG;IACG,oBAAoB,CACzB,OAAO,EAAE,mBAAmB,EAC5B,SAAS,CAAC,EAAE;QACX,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;KAChC,GACC,OAAO,CAAC,IAAI,CAAC;IA2EhB;;;OAGG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAczE;;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;CA2CvE;AAgBD,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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"spec-helpers.d.ts","sourceRoot":"","sources":["../../../generated/specs/spec-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,KAAK,SAAS,EAOd,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,SAAS,CAAC;AAgBjB;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAEjE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAMzD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAErE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAM7D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAM/D;AAGD,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"spec-helpers.d.ts","sourceRoot":"","sources":["../../../generated/specs/spec-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACN,KAAK,SAAS,EAOd,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,MAAM,SAAS,CAAC;AAsBjB;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAEjE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAMzD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAErE;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAM7D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAM/D;AAGD,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC"}
@@ -29,11 +29,6 @@ export declare const coreActionsSpec: {
29
29
  readonly description: "Clears the recorded history of shell commands for the current conversation";
30
30
  readonly similes: readonly ["RESET_SHELL", "CLEAR_TERMINAL", "CLEAR_HISTORY", "RESET_HISTORY"];
31
31
  readonly parameters: readonly [];
32
- }, {
33
- readonly name: "EXECUTE_COMMAND";
34
- readonly description: "Execute shell commands including brew install, npm install, apt-get, system commands, file operations, directory navigation, and scripts.";
35
- readonly similes: readonly ["RUN_COMMAND", "SHELL_COMMAND", "TERMINAL_COMMAND", "EXEC", "RUN", "EXECUTE", "CREATE_FILE", "WRITE_FILE", "MAKE_FILE", "INSTALL", "BREW_INSTALL", "NPM_INSTALL", "APT_INSTALL"];
36
- readonly parameters: readonly [];
37
32
  }];
38
33
  };
39
34
  export declare const allActionsSpec: {
@@ -43,11 +38,6 @@ export declare const allActionsSpec: {
43
38
  readonly description: "Clears the recorded history of shell commands for the current conversation";
44
39
  readonly similes: readonly ["RESET_SHELL", "CLEAR_TERMINAL", "CLEAR_HISTORY", "RESET_HISTORY"];
45
40
  readonly parameters: readonly [];
46
- }, {
47
- readonly name: "EXECUTE_COMMAND";
48
- readonly description: "Execute shell commands including brew install, npm install, apt-get, system commands, file operations, directory navigation, and scripts.";
49
- readonly similes: readonly ["RUN_COMMAND", "SHELL_COMMAND", "TERMINAL_COMMAND", "EXEC", "RUN", "EXECUTE", "CREATE_FILE", "WRITE_FILE", "MAKE_FILE", "INSTALL", "BREW_INSTALL", "NPM_INSTALL", "APT_INSTALL"];
50
- readonly parameters: readonly [];
51
41
  }];
52
42
  };
53
43
  export declare const coreProvidersSpec: {
@@ -1 +1 @@
1
- {"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../../generated/specs/specs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CAC/B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;CA+BlB,CAAC;AACX,eAAO,MAAM,cAAc;;;;;;;;;;;;;CA+BjB,CAAC;AACX,eAAO,MAAM,iBAAiB;;;;;;;CAUpB,CAAC;AACX,eAAO,MAAM,gBAAgB;;;;;;;CAUnB,CAAC;AACX,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AACX,eAAO,MAAM,iBAAiB;;;CAGpB,CAAC;AAEX,eAAO,MAAM,cAAc,EAAE,SAAS,SAAS,EAA4B,CAAC;AAC5E,eAAO,MAAM,aAAa,EAAE,SAAS,SAAS,EAA2B,CAAC;AAC1E,eAAO,MAAM,gBAAgB,EAAE,SAAS,WAAW,EAAgC,CAAC;AACpF,eAAO,MAAM,eAAe,EAAE,SAAS,WAAW,EAA+B,CAAC;AAClF,eAAO,MAAM,iBAAiB,EAAE,SAAS,YAAY,EAAkC,CAAC;AACxF,eAAO,MAAM,gBAAgB,EAAE,SAAS,YAAY,EAAiC,CAAC"}
1
+ {"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../../generated/specs/specs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,SAAS,CAAC,SAAS,OAAO,EAAE,CAAC,EAAE,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;CAgBlB,CAAC;AACX,eAAO,MAAM,cAAc;;;;;;;;CAgBjB,CAAC;AACX,eAAO,MAAM,iBAAiB;;;;;;;CAUpB,CAAC;AACX,eAAO,MAAM,gBAAgB;;;;;;;CAUnB,CAAC;AACX,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AACX,eAAO,MAAM,iBAAiB;;;CAGpB,CAAC;AAEX,eAAO,MAAM,cAAc,EAAE,SAAS,SAAS,EAA4B,CAAC;AAC5E,eAAO,MAAM,aAAa,EAAE,SAAS,SAAS,EAA2B,CAAC;AAC1E,eAAO,MAAM,gBAAgB,EAAE,SAAS,WAAW,EACvB,CAAC;AAC7B,eAAO,MAAM,eAAe,EAAE,SAAS,WAAW,EACvB,CAAC;AAC5B,eAAO,MAAM,iBAAiB,EAAE,SAAS,YAAY,EACvB,CAAC;AAC/B,eAAO,MAAM,gBAAgB,EAAE,SAAS,YAAY,EACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../index.browser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,MAAM,EAAE,MAAM,eAAe,CAAC;AAK3D,eAAO,MAAM,WAAW,EAAE,MAMzB,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../index.browser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,MAAM,EAAE,MAAM,eAAe,CAAC;AAK3D,eAAO,MAAM,WAAW,EAAE,MAQzB,CAAC;AAEF,eAAe,WAAW,CAAC"}
package/dist/index.d.ts CHANGED
@@ -2,9 +2,13 @@ import type { Plugin } from "@elizaos/core";
2
2
  export declare const shellPlugin: Plugin;
3
3
  export default shellPlugin;
4
4
  export { clearHistory } from "./actions/clearHistory";
5
- export { executeCommand } from "./actions/executeCommand";
5
+ export { addAllowlistEntry, analyzeShellCommand, type CommandCheckResult, type CommandResolution, DEFAULT_SAFE_BINS, EXEC_APPROVAL_DEFAULTS, type ExecAllowlistAnalysis, type ExecAllowlistEntry, type ExecAllowlistEvaluation, type ExecApprovalDecision, type ExecApprovalRequest, type ExecApprovalResult, ExecApprovalService, type ExecApprovalsAgent, type ExecApprovalsDefaults, type ExecApprovalsFile, type ExecApprovalsResolved, type ExecApprovalsSnapshot, type ExecAsk, type ExecCommandAnalysis, type ExecCommandSegment, type ExecHost, type ExecSecurity, ensureApprovals, evaluateExecAllowlist, evaluateShellAllowlist, getApprovalFilePath, getApprovalSocketPath, isSafeBinUsage, loadApprovals, matchAllowlist, maxAsk, minSecurity, normalizeApprovals, normalizeSafeBins, readApprovalsSnapshot, recordAllowlistUse, requiresExecApproval, resolveApprovals, resolveApprovalsFromFile, resolveCommandFromArgv, resolveCommandResolution, resolveSafeBins, saveApprovals, } from "./approvals";
6
+ export { terminalUsageProvider } from "./providers/terminalUsage";
6
7
  export { shellHistoryProvider } from "./providers/shellHistoryProvider";
8
+ export { addSession, appendOutput, clearFinished, createSessionSlug, deleteSession, drainSession, getFinishedSession, getSession, listFinishedSessions, listRunningSessions, markBackgrounded, markExited, resetProcessRegistryForTests, setJobTtlMs, tail, trimWithCap, } from "./services/processRegistry";
7
9
  export { ShellService } from "./services/shellService";
8
- export type { CommandHistoryEntry, CommandResult, FileOperation, FileOperationType, ShellConfig, } from "./types";
10
+ export type { CommandHistoryEntry, CommandResult, ExecResult, ExecuteOptions, FileOperation, FileOperationType, FinishedSession, ProcessAction, ProcessActionParams, ProcessSession, ProcessStatus, PtyExitEvent, PtyHandle, PtyListener, PtySpawn, SessionStdin, ShellConfig, } from "./types";
9
11
  export { DEFAULT_FORBIDDEN_COMMANDS, extractBaseCommand, isForbiddenCommand, isSafeCommand, loadShellConfig, validatePath, } from "./utils";
12
+ export { BRACKETED_PASTE_END, BRACKETED_PASTE_START, buildCursorPositionResponse, encodeKeySequence, encodePaste, type KeyEncodingRequest, type KeyEncodingResult, stripDsrRequests, } from "./utils/ptyKeys";
13
+ 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
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAK5C,eAAO,MAAM,WAAW,EAAE,MAMzB,CAAC;AAEF,eAAe,WAAW,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,WAAW,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,YAAY,GACb,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAO5C,eAAO,MAAM,WAAW,EAAE,MAOzB,CAAC;AAEF,eAAe,WAAW,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EACN,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,mBAAmB,EACnB,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,EACjB,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,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,GACb,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EACN,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,GACX,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGvD,YAAY,EACX,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,GACX,MAAM,SAAS,CAAC;AAGjB,OAAO,EACN,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,eAAe,EACf,YAAY,GACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EACN,mBAAmB,EACnB,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,WAAW,EACX,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,gBAAgB,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACN,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,GACd,MAAM,oBAAoB,CAAC"}