@agenshield/broker 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +141 -0
- package/audit/logger.d.ts +69 -0
- package/audit/logger.d.ts.map +1 -0
- package/client/broker-client.d.ts +91 -0
- package/client/broker-client.d.ts.map +1 -0
- package/client/index.d.ts +8 -0
- package/client/index.d.ts.map +1 -0
- package/client/index.js +222 -0
- package/client/shield-client.d.ts +8 -0
- package/client/shield-client.d.ts.map +1 -0
- package/client/shield-client.js +410 -0
- package/handlers/exec.d.ts +13 -0
- package/handlers/exec.d.ts.map +1 -0
- package/handlers/file.d.ts +20 -0
- package/handlers/file.d.ts.map +1 -0
- package/handlers/http.d.ts +9 -0
- package/handlers/http.d.ts.map +1 -0
- package/handlers/index.d.ts +12 -0
- package/handlers/index.d.ts.map +1 -0
- package/handlers/open-url.d.ts +9 -0
- package/handlers/open-url.d.ts.map +1 -0
- package/handlers/ping.d.ts +9 -0
- package/handlers/ping.d.ts.map +1 -0
- package/handlers/secret-inject.d.ts +9 -0
- package/handlers/secret-inject.d.ts.map +1 -0
- package/handlers/skill-install.d.ts +17 -0
- package/handlers/skill-install.d.ts.map +1 -0
- package/handlers/types.d.ts +28 -0
- package/handlers/types.d.ts.map +1 -0
- package/http-fallback.d.ts +54 -0
- package/http-fallback.d.ts.map +1 -0
- package/index.d.ts +18 -0
- package/index.d.ts.map +1 -0
- package/index.js +2636 -0
- package/main.d.ts +8 -0
- package/main.d.ts.map +1 -0
- package/main.js +2136 -0
- package/package.json +34 -0
- package/policies/builtin.d.ts +15 -0
- package/policies/builtin.d.ts.map +1 -0
- package/policies/command-allowlist.d.ts +62 -0
- package/policies/command-allowlist.d.ts.map +1 -0
- package/policies/enforcer.d.ts +98 -0
- package/policies/enforcer.d.ts.map +1 -0
- package/policies/index.d.ts +8 -0
- package/policies/index.d.ts.map +1 -0
- package/seatbelt/generator.d.ts +39 -0
- package/seatbelt/generator.d.ts.map +1 -0
- package/seatbelt/templates.d.ts +36 -0
- package/seatbelt/templates.d.ts.map +1 -0
- package/secrets/vault.d.ts +67 -0
- package/secrets/vault.d.ts.map +1 -0
- package/server.d.ts +54 -0
- package/server.d.ts.map +1 -0
- package/types.d.ts +285 -0
- package/types.d.ts.map +1 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Operation handlers
|
|
3
|
+
*/
|
|
4
|
+
export { handleHttpRequest } from './http.js';
|
|
5
|
+
export { handleFileRead, handleFileWrite, handleFileList } from './file.js';
|
|
6
|
+
export { handleExec } from './exec.js';
|
|
7
|
+
export { handleOpenUrl } from './open-url.js';
|
|
8
|
+
export { handleSecretInject } from './secret-inject.js';
|
|
9
|
+
export { handlePing } from './ping.js';
|
|
10
|
+
export { handleSkillInstall, handleSkillUninstall } from './skill-install.js';
|
|
11
|
+
export type { HandlerDependencies } from './types.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Open URL Handler
|
|
3
|
+
*
|
|
4
|
+
* Opens URLs in the default browser.
|
|
5
|
+
*/
|
|
6
|
+
import type { HandlerContext, HandlerResult, OpenUrlResult } from '../types.js';
|
|
7
|
+
import type { HandlerDependencies } from './types.js';
|
|
8
|
+
export declare function handleOpenUrl(params: Record<string, unknown>, context: HandlerContext, deps: HandlerDependencies): Promise<HandlerResult<OpenUrlResult>>;
|
|
9
|
+
//# sourceMappingURL=open-url.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-url.d.ts","sourceRoot":"","sources":["../../src/handlers/open-url.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAiB,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAItD,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CA8DvC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ping Handler
|
|
3
|
+
*
|
|
4
|
+
* Health check endpoint.
|
|
5
|
+
*/
|
|
6
|
+
import type { HandlerContext, HandlerResult, PingResult } from '../types.js';
|
|
7
|
+
import type { HandlerDependencies } from './types.js';
|
|
8
|
+
export declare function handlePing(params: Record<string, unknown>, context: HandlerContext, deps: HandlerDependencies): Promise<HandlerResult<PingResult>>;
|
|
9
|
+
//# sourceMappingURL=ping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ping.d.ts","sourceRoot":"","sources":["../../src/handlers/ping.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAc,UAAU,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAItD,wBAAsB,UAAU,CAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAepC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secret Inject Handler
|
|
3
|
+
*
|
|
4
|
+
* Retrieves secrets from the vault for injection.
|
|
5
|
+
*/
|
|
6
|
+
import type { HandlerContext, HandlerResult, SecretInjectResult } from '../types.js';
|
|
7
|
+
import type { HandlerDependencies } from './types.js';
|
|
8
|
+
export declare function handleSecretInject(params: Record<string, unknown>, context: HandlerContext, deps: HandlerDependencies): Promise<HandlerResult<SecretInjectResult>>;
|
|
9
|
+
//# sourceMappingURL=secret-inject.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-inject.d.ts","sourceRoot":"","sources":["../../src/handlers/secret-inject.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAEb,kBAAkB,EACnB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CA+C5C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill Installation Handler
|
|
3
|
+
*
|
|
4
|
+
* Handles skill installation and uninstallation operations.
|
|
5
|
+
* These operations are socket-only due to privileged file operations.
|
|
6
|
+
*/
|
|
7
|
+
import type { HandlerContext, HandlerResult, SkillInstallResult, SkillUninstallResult } from '../types.js';
|
|
8
|
+
import type { HandlerDependencies } from './types.js';
|
|
9
|
+
/**
|
|
10
|
+
* Handle skill installation
|
|
11
|
+
*/
|
|
12
|
+
export declare function handleSkillInstall(params: Record<string, unknown>, context: HandlerContext, deps: HandlerDependencies): Promise<HandlerResult<SkillInstallResult>>;
|
|
13
|
+
/**
|
|
14
|
+
* Handle skill uninstallation
|
|
15
|
+
*/
|
|
16
|
+
export declare function handleSkillUninstall(params: Record<string, unknown>, context: HandlerContext, deps: HandlerDependencies): Promise<HandlerResult<SkillUninstallResult>>;
|
|
17
|
+
//# sourceMappingURL=skill-install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-install.d.ts","sourceRoot":"","sources":["../../src/handlers/skill-install.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAEb,kBAAkB,EAElB,oBAAoB,EACrB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AA4CtD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAwH5C;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAkE9C"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handler types
|
|
3
|
+
*/
|
|
4
|
+
import type { PolicyEnforcer } from '../policies/enforcer.js';
|
|
5
|
+
import type { AuditLogger } from '../audit/logger.js';
|
|
6
|
+
import type { SecretVault } from '../secrets/vault.js';
|
|
7
|
+
import type { CommandAllowlist } from '../policies/command-allowlist.js';
|
|
8
|
+
/**
|
|
9
|
+
* Exec monitoring event emitted after each exec operation
|
|
10
|
+
*/
|
|
11
|
+
export interface ExecMonitorEvent {
|
|
12
|
+
command: string;
|
|
13
|
+
args: string[];
|
|
14
|
+
cwd?: string;
|
|
15
|
+
exitCode: number;
|
|
16
|
+
allowed: boolean;
|
|
17
|
+
duration: number;
|
|
18
|
+
timestamp: string;
|
|
19
|
+
}
|
|
20
|
+
export interface HandlerDependencies {
|
|
21
|
+
policyEnforcer: PolicyEnforcer;
|
|
22
|
+
auditLogger: AuditLogger;
|
|
23
|
+
secretVault: SecretVault;
|
|
24
|
+
commandAllowlist: CommandAllowlist;
|
|
25
|
+
onExecMonitor?: (event: ExecMonitorEvent) => void;
|
|
26
|
+
onExecDenied?: (command: string, reason: string) => void;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/handlers/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEzE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1D"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Fallback Server
|
|
3
|
+
*
|
|
4
|
+
* Restricted HTTP server for operations that can't use Unix sockets.
|
|
5
|
+
* Only allows a subset of operations for security.
|
|
6
|
+
*/
|
|
7
|
+
import type { BrokerConfig } from './types.js';
|
|
8
|
+
import type { PolicyEnforcer } from './policies/enforcer.js';
|
|
9
|
+
import type { AuditLogger } from './audit/logger.js';
|
|
10
|
+
export interface HttpFallbackServerOptions {
|
|
11
|
+
config: BrokerConfig;
|
|
12
|
+
policyEnforcer: PolicyEnforcer;
|
|
13
|
+
auditLogger: AuditLogger;
|
|
14
|
+
}
|
|
15
|
+
export declare class HttpFallbackServer {
|
|
16
|
+
private server;
|
|
17
|
+
private config;
|
|
18
|
+
private policyEnforcer;
|
|
19
|
+
private auditLogger;
|
|
20
|
+
constructor(options: HttpFallbackServerOptions);
|
|
21
|
+
/**
|
|
22
|
+
* Start the HTTP fallback server
|
|
23
|
+
*/
|
|
24
|
+
start(): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Stop the HTTP fallback server
|
|
27
|
+
*/
|
|
28
|
+
stop(): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Handle an HTTP request
|
|
31
|
+
*/
|
|
32
|
+
private handleRequest;
|
|
33
|
+
/**
|
|
34
|
+
* Check if address is localhost
|
|
35
|
+
*/
|
|
36
|
+
private isLocalhost;
|
|
37
|
+
/**
|
|
38
|
+
* Process a JSON-RPC request
|
|
39
|
+
*/
|
|
40
|
+
private processRequest;
|
|
41
|
+
/**
|
|
42
|
+
* Get the handler for an operation type
|
|
43
|
+
*/
|
|
44
|
+
private getHandler;
|
|
45
|
+
/**
|
|
46
|
+
* Extract target from request for audit logging
|
|
47
|
+
*/
|
|
48
|
+
private extractTarget;
|
|
49
|
+
/**
|
|
50
|
+
* Create an error response
|
|
51
|
+
*/
|
|
52
|
+
private errorResponse;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=http-fallback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-fallback.d.ts","sourceRoot":"","sources":["../src/http-fallback.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAmBrD,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAc;gBAErB,OAAO,EAAE,yBAAyB;IAM9C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAY3B;;OAEG;YACW,aAAa;IA6C3B;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;OAEG;YACW,cAAc;IAyH5B;;OAEG;IACH,OAAO,CAAC,UAAU;IAoBlB;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACH,OAAO,CAAC,aAAa;CAWtB"}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @agenshield/broker
|
|
3
|
+
*
|
|
4
|
+
* Standalone broker daemon with Unix socket server for AgenShield.
|
|
5
|
+
* Provides policy enforcement, operation proxying, and audit logging.
|
|
6
|
+
*/
|
|
7
|
+
export { UnixSocketServer } from './server.js';
|
|
8
|
+
export { HttpFallbackServer } from './http-fallback.js';
|
|
9
|
+
export { PolicyEnforcer } from './policies/enforcer.js';
|
|
10
|
+
export { BuiltinPolicies, getDefaultPolicies } from './policies/builtin.js';
|
|
11
|
+
export * from './handlers/index.js';
|
|
12
|
+
export { SeatbeltGenerator } from './seatbelt/generator.js';
|
|
13
|
+
export { SeatbeltTemplates } from './seatbelt/templates.js';
|
|
14
|
+
export { SecretVault } from './secrets/vault.js';
|
|
15
|
+
export { AuditLogger } from './audit/logger.js';
|
|
16
|
+
export { BrokerClient } from './client/index.js';
|
|
17
|
+
export type { BrokerConfig, HandlerContext, HandlerResult, AuditEntry, VaultEntry, SkillInstallParams, SkillInstallResult, SkillInstallFile, SkillUninstallParams, SkillUninstallResult, } from './types.js';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG5E,cAAc,qBAAqB,CAAC;AAGpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,YAAY,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACb,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,YAAY,CAAC"}
|