@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
package/package.json ADDED
@@ -0,0 +1,34 @@
1
+ {
2
+ "name": "@agenshield/broker",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "description": "AgenShield broker daemon with Unix socket and HTTP fallback",
6
+ "main": "./index.js",
7
+ "types": "./index.d.ts",
8
+ "bin": {
9
+ "agenshield-broker": "./main.js",
10
+ "shield-client": "./client/shield-client.js"
11
+ },
12
+ "exports": {
13
+ "./package.json": "./package.json",
14
+ ".": {
15
+ "types": "./index.d.ts",
16
+ "import": "./index.js",
17
+ "default": "./index.js"
18
+ },
19
+ "./client": {
20
+ "types": "./client/index.d.ts",
21
+ "import": "./client/index.js",
22
+ "default": "./client/index.js"
23
+ }
24
+ },
25
+ "license": "MIT",
26
+ "dependencies": {
27
+ "@agenshield/ipc": "0.1.0"
28
+ },
29
+ "devDependencies": {
30
+ "@types/node": "^24.0.0",
31
+ "tsx": "^4.21.0",
32
+ "typescript": "^5.9.3"
33
+ }
34
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Built-in Security Policies
3
+ *
4
+ * Default policies that ship with AgenShield.
5
+ */
6
+ import type { PolicyConfig, PolicyRule } from './enforcer.js';
7
+ /**
8
+ * Built-in policy rules
9
+ */
10
+ export declare const BuiltinPolicies: PolicyRule[];
11
+ /**
12
+ * Get default policy configuration
13
+ */
14
+ export declare function getDefaultPolicies(): PolicyConfig;
15
+ //# sourceMappingURL=builtin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin.d.ts","sourceRoot":"","sources":["../../src/policies/builtin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,UAAU,EAyLvC,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAgCjD"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Command Allowlist Manager
3
+ *
4
+ * Manages both static (builtin) and dynamic (admin-configured) allowed commands.
5
+ * Dynamic commands are persisted to /opt/agenshield/config/allowed-commands.json.
6
+ */
7
+ /**
8
+ * Dynamic allowed command entry
9
+ */
10
+ export interface AllowedCommand {
11
+ name: string;
12
+ paths: string[];
13
+ addedAt: string;
14
+ addedBy: string;
15
+ category?: string;
16
+ }
17
+ export declare class CommandAllowlist {
18
+ private configPath;
19
+ private dynamicCommands;
20
+ constructor(configPath: string);
21
+ /**
22
+ * Load dynamic commands from disk
23
+ */
24
+ load(): void;
25
+ /**
26
+ * Persist dynamic commands to disk
27
+ */
28
+ save(): void;
29
+ /**
30
+ * Add a dynamic command
31
+ */
32
+ add(cmd: AllowedCommand): void;
33
+ /**
34
+ * Remove a dynamic command
35
+ */
36
+ remove(name: string): boolean;
37
+ /**
38
+ * Get a dynamic command by name
39
+ */
40
+ get(name: string): AllowedCommand | undefined;
41
+ /**
42
+ * List all commands (builtin + dynamic)
43
+ */
44
+ list(): Array<AllowedCommand & {
45
+ builtin: boolean;
46
+ }>;
47
+ /**
48
+ * List only dynamic commands
49
+ */
50
+ listDynamic(): AllowedCommand[];
51
+ /**
52
+ * Check if a command name conflicts with a builtin
53
+ */
54
+ isBuiltin(name: string): boolean;
55
+ /**
56
+ * Resolve a command name to an absolute path.
57
+ * Checks builtin commands first, then dynamic commands.
58
+ * Returns null if the command is not allowed.
59
+ */
60
+ resolve(command: string): string | null;
61
+ }
62
+ //# sourceMappingURL=command-allowlist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-allowlist.d.ts","sourceRoot":"","sources":["../../src/policies/command-allowlist.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAiDD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAA0C;gBAErD,UAAU,EAAE,MAAM;IAK9B;;OAEG;IACH,IAAI,IAAI,IAAI;IAkBZ;;OAEG;IACH,IAAI,IAAI,IAAI;IAcZ;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IAK9B;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQ7B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI7C;;OAEG;IACH,IAAI,IAAI,KAAK,CAAC,cAAc,GAAG;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAsBpD;;OAEG;IACH,WAAW,IAAI,cAAc,EAAE;IAI/B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIhC;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;CAmCxC"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Policy Enforcer
3
+ *
4
+ * Evaluates operations against configured policies.
5
+ */
6
+ import type { HandlerContext } from '../types.js';
7
+ /**
8
+ * Policy rule definition
9
+ */
10
+ export interface PolicyRule {
11
+ id: string;
12
+ name: string;
13
+ action: 'allow' | 'deny' | 'approval';
14
+ target: 'skill' | 'command' | 'url';
15
+ operations: string[];
16
+ patterns: string[];
17
+ enabled: boolean;
18
+ priority: number;
19
+ }
20
+ /**
21
+ * Policy check result
22
+ */
23
+ export interface PolicyCheckResult {
24
+ allowed: boolean;
25
+ policyId?: string;
26
+ reason?: string;
27
+ }
28
+ /**
29
+ * Policy configuration
30
+ */
31
+ export interface PolicyConfig {
32
+ version: string;
33
+ defaultAction: 'allow' | 'deny';
34
+ rules: PolicyRule[];
35
+ fsConstraints?: {
36
+ allowedPaths: string[];
37
+ deniedPatterns: string[];
38
+ };
39
+ networkConstraints?: {
40
+ allowedHosts: string[];
41
+ deniedHosts: string[];
42
+ allowedPorts: number[];
43
+ };
44
+ }
45
+ export interface PolicyEnforcerOptions {
46
+ policiesPath: string;
47
+ defaultPolicies: PolicyConfig;
48
+ failOpen: boolean;
49
+ }
50
+ export declare class PolicyEnforcer {
51
+ private policies;
52
+ private policiesPath;
53
+ private failOpen;
54
+ private lastLoad;
55
+ private reloadInterval;
56
+ constructor(options: PolicyEnforcerOptions);
57
+ /**
58
+ * Load policies from disk
59
+ */
60
+ private loadPolicies;
61
+ /**
62
+ * Maybe reload policies if stale
63
+ */
64
+ private maybeReload;
65
+ /**
66
+ * Check if an operation is allowed
67
+ */
68
+ check(operation: string, params: Record<string, unknown>, context: HandlerContext): Promise<PolicyCheckResult>;
69
+ /**
70
+ * Extract target from operation params
71
+ */
72
+ private extractTarget;
73
+ /**
74
+ * Check if target matches any patterns
75
+ */
76
+ private matchesPatterns;
77
+ /**
78
+ * Match a single pattern (supports glob-like matching)
79
+ */
80
+ private matchPattern;
81
+ /**
82
+ * Check operation-specific constraints
83
+ */
84
+ private checkConstraints;
85
+ /**
86
+ * Get all configured policies
87
+ */
88
+ getPolicies(): PolicyConfig;
89
+ /**
90
+ * Add a policy rule at runtime
91
+ */
92
+ addRule(rule: PolicyRule): void;
93
+ /**
94
+ * Remove a policy rule
95
+ */
96
+ removeRule(id: string): boolean;
97
+ }
98
+ //# sourceMappingURL=enforcer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enforcer.d.ts","sourceRoot":"","sources":["../../src/policies/enforcer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;IACtC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC;IACpC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE;QACd,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,cAAc,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;IACF,kBAAkB,CAAC,EAAE;QACnB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,WAAW,EAAE,MAAM,EAAE,CAAC;QACtB,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,YAAY,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,cAAc,CAAiB;gBAE3B,OAAO,EAAE,qBAAqB;IAQ1C;;OAEG;IACH,OAAO,CAAC,YAAY;IA4CpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAMnB;;OAEG;IACG,KAAK,CACT,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,iBAAiB,CAAC;IAuD7B;;OAEG;IACH,OAAO,CAAC,aAAa;IAmBrB;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAapB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8GxB;;OAEG;IACH,WAAW,IAAI,YAAY;IAK3B;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAK/B;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAQhC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Policy exports
3
+ */
4
+ export { PolicyEnforcer } from './enforcer.js';
5
+ export { BuiltinPolicies, getDefaultPolicies } from './builtin.js';
6
+ export { CommandAllowlist } from './command-allowlist.js';
7
+ export type { AllowedCommand } from './command-allowlist.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/policies/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Seatbelt Profile Generator
3
+ *
4
+ * Generates macOS Seatbelt (sandbox-exec) profiles.
5
+ */
6
+ export interface SeatbeltOptions {
7
+ workspacePath: string;
8
+ socketPath: string;
9
+ allowedBinPaths: string[];
10
+ allowedReadPaths: string[];
11
+ additionalRules?: string[];
12
+ }
13
+ export interface OperationSeatbeltOptions {
14
+ operation: string;
15
+ targetPath?: string;
16
+ targetHost?: string;
17
+ targetPort?: number;
18
+ }
19
+ export declare class SeatbeltGenerator {
20
+ private templates;
21
+ constructor();
22
+ /**
23
+ * Generate the main agent seatbelt profile
24
+ */
25
+ generateAgentProfile(options: SeatbeltOptions): string;
26
+ /**
27
+ * Generate a per-operation seatbelt profile
28
+ */
29
+ generateOperationProfile(options: OperationSeatbeltOptions): string;
30
+ /**
31
+ * Install seatbelt profiles to disk
32
+ */
33
+ installProfiles(outputDir: string, options: SeatbeltOptions): Promise<void>;
34
+ /**
35
+ * Verify a seatbelt profile is valid
36
+ */
37
+ verifyProfile(profilePath: string): Promise<boolean>;
38
+ }
39
+ //# sourceMappingURL=generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../src/seatbelt/generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAAoB;;IAMrC;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM;IA+FtD;;OAEG;IACH,wBAAwB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM;IAqBnE;;OAEG;IACG,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,IAAI,CAAC;IA4BhB;;OAEG;IACG,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAuB3D"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Seatbelt Profile Templates
3
+ *
4
+ * Base templates for different operation types.
5
+ */
6
+ export declare class SeatbeltTemplates {
7
+ /**
8
+ * Base profile with minimal permissions
9
+ */
10
+ baseProfile(): string;
11
+ /**
12
+ * Profile for file read operations
13
+ */
14
+ fileReadProfile(targetPath: string): string;
15
+ /**
16
+ * Profile for file write operations
17
+ */
18
+ fileWriteProfile(targetPath: string): string;
19
+ /**
20
+ * Profile for HTTP request operations
21
+ */
22
+ httpRequestProfile(host?: string, port?: number): string;
23
+ /**
24
+ * Profile for command execution
25
+ */
26
+ execProfile(binaryPath?: string): string;
27
+ /**
28
+ * Profile for broker daemon (has network)
29
+ */
30
+ brokerProfile(socketPath: string): string;
31
+ /**
32
+ * Deny-all profile for testing
33
+ */
34
+ denyAllProfile(): string;
35
+ }
36
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/seatbelt/templates.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,qBAAa,iBAAiB;IAC5B;;OAEG;IACH,WAAW,IAAI,MAAM;IAkBrB;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAyB3C;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAyB5C;;OAEG;IACH,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAsCxD;;OAEG;IACH,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAkCxC;;OAEG;IACH,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAuCzC;;OAEG;IACH,cAAc,IAAI,MAAM;CAMzB"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Secret Vault
3
+ *
4
+ * Encrypted secrets storage and retrieval.
5
+ */
6
+ export interface VaultOptions {
7
+ vaultPath: string;
8
+ keyPath?: string;
9
+ }
10
+ export interface VaultSecret {
11
+ name: string;
12
+ value: string;
13
+ createdAt: Date;
14
+ lastAccessedAt?: Date;
15
+ accessCount: number;
16
+ }
17
+ export declare class SecretVault {
18
+ private vaultPath;
19
+ private key;
20
+ private data;
21
+ constructor(options: VaultOptions);
22
+ /**
23
+ * Initialize the vault
24
+ */
25
+ initialize(): Promise<void>;
26
+ /**
27
+ * Load or create the encryption key
28
+ */
29
+ private loadOrCreateKey;
30
+ /**
31
+ * Load vault data from disk
32
+ */
33
+ private load;
34
+ /**
35
+ * Save vault data to disk
36
+ */
37
+ private save;
38
+ /**
39
+ * Encrypt a value
40
+ */
41
+ private encrypt;
42
+ /**
43
+ * Decrypt a value
44
+ */
45
+ private decrypt;
46
+ /**
47
+ * Get a secret by name
48
+ */
49
+ get(name: string): Promise<VaultSecret | null>;
50
+ /**
51
+ * Set a secret
52
+ */
53
+ set(name: string, value: string): Promise<void>;
54
+ /**
55
+ * Delete a secret
56
+ */
57
+ delete(name: string): Promise<boolean>;
58
+ /**
59
+ * List all secret names
60
+ */
61
+ list(): Promise<string[]>;
62
+ /**
63
+ * Check if a secret exists
64
+ */
65
+ has(name: string): Promise<boolean>;
66
+ }
67
+ //# sourceMappingURL=vault.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../../src/secrets/vault.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAeD,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,GAAG,CAAuB;IAClC,OAAO,CAAC,IAAI,CAA0B;gBAE1B,OAAO,EAAE,YAAY;IAIjC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAQjC;;OAEG;YACW,eAAe;IAc7B;;OAEG;YACW,IAAI;IAalB;;OAEG;YACW,IAAI;IAUlB;;OAEG;IACH,OAAO,CAAC,OAAO;IAoBf;;OAEG;IACH,OAAO,CAAC,OAAO;IAmBf;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA8BpD;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBrD;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAc5C;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ/B;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAO1C"}
package/server.d.ts ADDED
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Unix Socket Server
3
+ *
4
+ * Primary IPC server for the broker daemon.
5
+ * Handles JSON-RPC 2.0 requests over newline-delimited JSON.
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
+ import type { SecretVault } from './secrets/vault.js';
11
+ export interface UnixSocketServerOptions {
12
+ config: BrokerConfig;
13
+ policyEnforcer: PolicyEnforcer;
14
+ auditLogger: AuditLogger;
15
+ secretVault: SecretVault;
16
+ }
17
+ export declare class UnixSocketServer {
18
+ private server;
19
+ private config;
20
+ private policyEnforcer;
21
+ private auditLogger;
22
+ private secretVault;
23
+ private connections;
24
+ constructor(options: UnixSocketServerOptions);
25
+ /**
26
+ * Start the Unix socket server
27
+ */
28
+ start(): Promise<void>;
29
+ /**
30
+ * Stop the Unix socket server
31
+ */
32
+ stop(): Promise<void>;
33
+ /**
34
+ * Handle a new client connection
35
+ */
36
+ private handleConnection;
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=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,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;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAA2B;IACzC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAA8B;gBAErC,OAAO,EAAE,uBAAuB;IAO5C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4B5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;OAEG;YACW,cAAc;IAoG5B;;OAEG;IACH,OAAO,CAAC,UAAU;IAyBlB;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;IACH,OAAO,CAAC,aAAa;CAWtB"}