@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.
Files changed (57) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +141 -0
  3. package/audit/logger.d.ts +69 -0
  4. package/audit/logger.d.ts.map +1 -0
  5. package/client/broker-client.d.ts +91 -0
  6. package/client/broker-client.d.ts.map +1 -0
  7. package/client/index.d.ts +8 -0
  8. package/client/index.d.ts.map +1 -0
  9. package/client/index.js +222 -0
  10. package/client/shield-client.d.ts +8 -0
  11. package/client/shield-client.d.ts.map +1 -0
  12. package/client/shield-client.js +410 -0
  13. package/handlers/exec.d.ts +13 -0
  14. package/handlers/exec.d.ts.map +1 -0
  15. package/handlers/file.d.ts +20 -0
  16. package/handlers/file.d.ts.map +1 -0
  17. package/handlers/http.d.ts +9 -0
  18. package/handlers/http.d.ts.map +1 -0
  19. package/handlers/index.d.ts +12 -0
  20. package/handlers/index.d.ts.map +1 -0
  21. package/handlers/open-url.d.ts +9 -0
  22. package/handlers/open-url.d.ts.map +1 -0
  23. package/handlers/ping.d.ts +9 -0
  24. package/handlers/ping.d.ts.map +1 -0
  25. package/handlers/secret-inject.d.ts +9 -0
  26. package/handlers/secret-inject.d.ts.map +1 -0
  27. package/handlers/skill-install.d.ts +17 -0
  28. package/handlers/skill-install.d.ts.map +1 -0
  29. package/handlers/types.d.ts +28 -0
  30. package/handlers/types.d.ts.map +1 -0
  31. package/http-fallback.d.ts +54 -0
  32. package/http-fallback.d.ts.map +1 -0
  33. package/index.d.ts +18 -0
  34. package/index.d.ts.map +1 -0
  35. package/index.js +2636 -0
  36. package/main.d.ts +8 -0
  37. package/main.d.ts.map +1 -0
  38. package/main.js +2136 -0
  39. package/package.json +34 -0
  40. package/policies/builtin.d.ts +15 -0
  41. package/policies/builtin.d.ts.map +1 -0
  42. package/policies/command-allowlist.d.ts +62 -0
  43. package/policies/command-allowlist.d.ts.map +1 -0
  44. package/policies/enforcer.d.ts +98 -0
  45. package/policies/enforcer.d.ts.map +1 -0
  46. package/policies/index.d.ts +8 -0
  47. package/policies/index.d.ts.map +1 -0
  48. package/seatbelt/generator.d.ts +39 -0
  49. package/seatbelt/generator.d.ts.map +1 -0
  50. package/seatbelt/templates.d.ts +36 -0
  51. package/seatbelt/templates.d.ts.map +1 -0
  52. package/secrets/vault.d.ts +67 -0
  53. package/secrets/vault.d.ts.map +1 -0
  54. package/server.d.ts +54 -0
  55. package/server.d.ts.map +1 -0
  56. package/types.d.ts +285 -0
  57. 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"}