@agenshield/ipc 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/catalog.d.ts +24 -0
- package/catalog.d.ts.map +1 -0
- package/constants.d.ts +59 -0
- package/constants.d.ts.map +1 -0
- package/index.d.ts +19 -0
- package/index.d.ts.map +1 -0
- package/index.js +1377 -0
- package/package.json +20 -0
- package/schemas/agenco.schema.d.ts +189 -0
- package/schemas/agenco.schema.d.ts.map +1 -0
- package/schemas/auth.schema.d.ts +112 -0
- package/schemas/auth.schema.d.ts.map +1 -0
- package/schemas/config.schema.d.ts +218 -0
- package/schemas/config.schema.d.ts.map +1 -0
- package/schemas/index.d.ts +11 -0
- package/schemas/index.d.ts.map +1 -0
- package/schemas/ops.schema.d.ts +128 -0
- package/schemas/ops.schema.d.ts.map +1 -0
- package/schemas/policy.schema.d.ts +148 -0
- package/schemas/policy.schema.d.ts.map +1 -0
- package/schemas/state.schema.d.ts +128 -0
- package/schemas/state.schema.d.ts.map +1 -0
- package/schemas/vault.schema.d.ts +38 -0
- package/schemas/vault.schema.d.ts.map +1 -0
- package/types/agenco.d.ts +211 -0
- package/types/agenco.d.ts.map +1 -0
- package/types/api.d.ts +59 -0
- package/types/api.d.ts.map +1 -0
- package/types/auth.d.ts +121 -0
- package/types/auth.d.ts.map +1 -0
- package/types/backup.d.ts +79 -0
- package/types/backup.d.ts.map +1 -0
- package/types/catalog.d.ts +13 -0
- package/types/catalog.d.ts.map +1 -0
- package/types/config.d.ts +208 -0
- package/types/config.d.ts.map +1 -0
- package/types/daemon.d.ts +22 -0
- package/types/daemon.d.ts.map +1 -0
- package/types/discovery.d.ts +121 -0
- package/types/discovery.d.ts.map +1 -0
- package/types/events.d.ts +83 -0
- package/types/events.d.ts.map +1 -0
- package/types/index.d.ts +18 -0
- package/types/index.d.ts.map +1 -0
- package/types/marketplace.d.ts +101 -0
- package/types/marketplace.d.ts.map +1 -0
- package/types/ops.d.ts +141 -0
- package/types/ops.d.ts.map +1 -0
- package/types/policy.d.ts +100 -0
- package/types/policy.d.ts.map +1 -0
- package/types/state.d.ts +105 -0
- package/types/state.d.ts.map +1 -0
- package/types/vault.d.ts +62 -0
- package/types/vault.d.ts.map +1 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SSE Event types for real-time communication
|
|
3
|
+
*/
|
|
4
|
+
export type EventType = 'security:status' | 'security:warning' | 'security:critical' | 'process:started' | 'process:stopped' | 'api:request' | 'broker:request' | 'broker:response' | 'config:changed' | 'heartbeat';
|
|
5
|
+
/**
|
|
6
|
+
* Base event structure
|
|
7
|
+
*/
|
|
8
|
+
export interface DaemonEvent<T = unknown> {
|
|
9
|
+
type: EventType;
|
|
10
|
+
timestamp: string;
|
|
11
|
+
data: T;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Security status event data
|
|
15
|
+
*/
|
|
16
|
+
export interface SecurityStatusEventData {
|
|
17
|
+
runningAsRoot: boolean;
|
|
18
|
+
currentUser: string;
|
|
19
|
+
sandboxUserExists: boolean;
|
|
20
|
+
isIsolated: boolean;
|
|
21
|
+
guardedShellInstalled: boolean;
|
|
22
|
+
exposedSecrets: string[];
|
|
23
|
+
warnings: string[];
|
|
24
|
+
critical: string[];
|
|
25
|
+
recommendations: string[];
|
|
26
|
+
level: 'secure' | 'partial' | 'unprotected' | 'critical';
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Security warning event data
|
|
30
|
+
*/
|
|
31
|
+
export interface SecurityWarningEventData {
|
|
32
|
+
message: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Security critical event data
|
|
36
|
+
*/
|
|
37
|
+
export interface SecurityCriticalEventData {
|
|
38
|
+
message: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* API request event data
|
|
42
|
+
*/
|
|
43
|
+
export interface ApiRequestEventData {
|
|
44
|
+
method: string;
|
|
45
|
+
path: string;
|
|
46
|
+
statusCode: number;
|
|
47
|
+
duration: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Broker request event data
|
|
51
|
+
*/
|
|
52
|
+
export interface BrokerRequestEventData {
|
|
53
|
+
operation: string;
|
|
54
|
+
args: unknown;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Broker response event data
|
|
58
|
+
*/
|
|
59
|
+
export interface BrokerResponseEventData {
|
|
60
|
+
operation: string;
|
|
61
|
+
success: boolean;
|
|
62
|
+
duration: number;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Heartbeat event data
|
|
66
|
+
*/
|
|
67
|
+
export interface HeartbeatEventData {
|
|
68
|
+
connected?: boolean;
|
|
69
|
+
ping?: boolean;
|
|
70
|
+
message?: string;
|
|
71
|
+
filter?: string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Typed event definitions
|
|
75
|
+
*/
|
|
76
|
+
export type SecurityStatusEvent = DaemonEvent<SecurityStatusEventData>;
|
|
77
|
+
export type SecurityWarningEvent = DaemonEvent<SecurityWarningEventData>;
|
|
78
|
+
export type SecurityCriticalEvent = DaemonEvent<SecurityCriticalEventData>;
|
|
79
|
+
export type ApiRequestEvent = DaemonEvent<ApiRequestEventData>;
|
|
80
|
+
export type BrokerRequestEvent = DaemonEvent<BrokerRequestEventData>;
|
|
81
|
+
export type BrokerResponseEvent = DaemonEvent<BrokerResponseEventData>;
|
|
82
|
+
export type HeartbeatEvent = DaemonEvent<HeartbeatEventData>;
|
|
83
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/types/events.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,SAAS,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,aAAa,GACb,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,CAAC,CAAC;CACT;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAC;IACpB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC;CAC1D;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,uBAAuB,CAAC,CAAC;AACvE,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,wBAAwB,CAAC,CAAC;AACzE,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAC,yBAAyB,CAAC,CAAC;AAC3E,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,mBAAmB,CAAC,CAAC;AAC/D,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,sBAAsB,CAAC,CAAC;AACrE,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,uBAAuB,CAAC,CAAC;AACvE,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAC"}
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-export all types
|
|
3
|
+
*/
|
|
4
|
+
export * from './config';
|
|
5
|
+
export * from './daemon';
|
|
6
|
+
export * from './api';
|
|
7
|
+
export * from './events';
|
|
8
|
+
export * from './backup';
|
|
9
|
+
export * from './ops';
|
|
10
|
+
export * from './policy';
|
|
11
|
+
export * from './agenco';
|
|
12
|
+
export * from './state';
|
|
13
|
+
export * from './vault';
|
|
14
|
+
export * from './auth';
|
|
15
|
+
export * from './discovery';
|
|
16
|
+
export * from './catalog';
|
|
17
|
+
export * from './marketplace';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Marketplace types for skill browsing and installation
|
|
3
|
+
*/
|
|
4
|
+
export interface MarketplaceSkill {
|
|
5
|
+
name: string;
|
|
6
|
+
slug: string;
|
|
7
|
+
description: string;
|
|
8
|
+
author: string;
|
|
9
|
+
version: string;
|
|
10
|
+
installs: number;
|
|
11
|
+
tags: string[];
|
|
12
|
+
readme?: string;
|
|
13
|
+
files?: MarketplaceSkillFile[];
|
|
14
|
+
installed?: boolean;
|
|
15
|
+
/** Pre-computed analysis returned from GET /marketplace/skills/:slug */
|
|
16
|
+
analysis?: AnalyzeSkillResponse['analysis'];
|
|
17
|
+
}
|
|
18
|
+
export interface MarketplaceSkillFile {
|
|
19
|
+
name: string;
|
|
20
|
+
type: string;
|
|
21
|
+
content: string;
|
|
22
|
+
purpose?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface AnalyzeSkillRequest {
|
|
25
|
+
skillName: string;
|
|
26
|
+
publisher: string;
|
|
27
|
+
files: MarketplaceSkillFile[];
|
|
28
|
+
}
|
|
29
|
+
export type SkillSource = 'clawhub';
|
|
30
|
+
export interface AnalyzeSkillFromSourceRequest {
|
|
31
|
+
slug: string;
|
|
32
|
+
source: SkillSource;
|
|
33
|
+
skillName?: string;
|
|
34
|
+
publisher?: string;
|
|
35
|
+
}
|
|
36
|
+
export type AnalyzeSkillRequestUnion = AnalyzeSkillRequest | AnalyzeSkillFromSourceRequest;
|
|
37
|
+
export type SkillSecuritySeverity = 'safe' | 'low' | 'medium' | 'high' | 'critical';
|
|
38
|
+
export interface EnvVariableDetail {
|
|
39
|
+
name: string;
|
|
40
|
+
required: boolean;
|
|
41
|
+
purpose: string;
|
|
42
|
+
sensitive: boolean;
|
|
43
|
+
}
|
|
44
|
+
export interface RuntimeRequirement {
|
|
45
|
+
runtime: string;
|
|
46
|
+
minVersion?: string;
|
|
47
|
+
reason: string;
|
|
48
|
+
}
|
|
49
|
+
export interface InstallationStep {
|
|
50
|
+
command: string;
|
|
51
|
+
packageManager: string;
|
|
52
|
+
required: boolean;
|
|
53
|
+
description: string;
|
|
54
|
+
}
|
|
55
|
+
export interface RunCommand {
|
|
56
|
+
command: string;
|
|
57
|
+
description: string;
|
|
58
|
+
entrypoint: boolean;
|
|
59
|
+
}
|
|
60
|
+
export interface SecurityFinding {
|
|
61
|
+
severity: SkillSecuritySeverity;
|
|
62
|
+
category: string;
|
|
63
|
+
cwe?: string;
|
|
64
|
+
owaspCategory?: string;
|
|
65
|
+
description: string;
|
|
66
|
+
evidence?: string;
|
|
67
|
+
}
|
|
68
|
+
export type MCPRiskType = 'tool-poisoning' | 'memory-poisoning' | 'prompt-injection' | 'soul-override' | 'permission-escalation' | 'data-exfiltration' | 'hidden-instructions';
|
|
69
|
+
export interface MCPSpecificRisk {
|
|
70
|
+
riskType: MCPRiskType;
|
|
71
|
+
description: string;
|
|
72
|
+
severity: SkillSecuritySeverity;
|
|
73
|
+
}
|
|
74
|
+
export interface AnalyzeSkillResponse {
|
|
75
|
+
analysis: {
|
|
76
|
+
status: 'complete' | 'error';
|
|
77
|
+
vulnerability: {
|
|
78
|
+
level: SkillSecuritySeverity;
|
|
79
|
+
details: string[];
|
|
80
|
+
suggestions?: string[];
|
|
81
|
+
};
|
|
82
|
+
commands: Array<{
|
|
83
|
+
name: string;
|
|
84
|
+
source: string;
|
|
85
|
+
available: boolean;
|
|
86
|
+
resolvedPath?: string;
|
|
87
|
+
required: boolean;
|
|
88
|
+
}>;
|
|
89
|
+
envVariables?: EnvVariableDetail[];
|
|
90
|
+
runtimeRequirements?: RuntimeRequirement[];
|
|
91
|
+
installationSteps?: InstallationStep[];
|
|
92
|
+
runCommands?: RunCommand[];
|
|
93
|
+
securityFindings?: SecurityFinding[];
|
|
94
|
+
mcpSpecificRisks?: MCPSpecificRisk[];
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
export interface InstallSkillRequest {
|
|
98
|
+
slug: string;
|
|
99
|
+
type?: string;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=marketplace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../src/types/marketplace.ts"],"names":[],"mappings":"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"}
|
package/types/ops.d.ts
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Broker operation types
|
|
3
|
+
*
|
|
4
|
+
* JSON-RPC 2.0 based protocol for broker communication.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Operation types supported by the broker
|
|
8
|
+
*/
|
|
9
|
+
export type OperationType = 'http_request' | 'file_read' | 'file_write' | 'file_list' | 'exec' | 'command_execute' | 'open_url' | 'secret_inject' | 'ping' | 'policy_check';
|
|
10
|
+
/**
|
|
11
|
+
* JSON-RPC 2.0 request
|
|
12
|
+
*/
|
|
13
|
+
export interface BrokerRequest {
|
|
14
|
+
jsonrpc: '2.0';
|
|
15
|
+
id: string | number;
|
|
16
|
+
method: OperationType;
|
|
17
|
+
params: OperationParams;
|
|
18
|
+
/** Track request origin */
|
|
19
|
+
channel?: 'socket' | 'http';
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* JSON-RPC 2.0 response
|
|
23
|
+
*/
|
|
24
|
+
export interface BrokerResponse<T = unknown> {
|
|
25
|
+
jsonrpc: '2.0';
|
|
26
|
+
id: string | number;
|
|
27
|
+
result?: T;
|
|
28
|
+
error?: BrokerError;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* JSON-RPC 2.0 error
|
|
32
|
+
*/
|
|
33
|
+
export interface BrokerError {
|
|
34
|
+
code: number;
|
|
35
|
+
message: string;
|
|
36
|
+
data?: unknown;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Union type for all operation parameters
|
|
40
|
+
*/
|
|
41
|
+
export type OperationParams = HttpRequestParams | FileReadParams | FileWriteParams | FileListParams | ExecParams | OpenUrlParams | SecretInjectParams | PingParams | PolicyCheckParams;
|
|
42
|
+
/**
|
|
43
|
+
* Union type for all operation results
|
|
44
|
+
*/
|
|
45
|
+
export type OperationResult = HttpRequestResult | FileReadResult | FileWriteResult | FileListResult | ExecResult | OpenUrlResult | SecretInjectResult | PingResult | PolicyCheckResult;
|
|
46
|
+
export interface HttpRequestParams {
|
|
47
|
+
url: string;
|
|
48
|
+
method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'HEAD' | 'OPTIONS';
|
|
49
|
+
headers?: Record<string, string>;
|
|
50
|
+
body?: string;
|
|
51
|
+
timeout?: number;
|
|
52
|
+
followRedirects?: boolean;
|
|
53
|
+
}
|
|
54
|
+
export interface HttpRequestResult {
|
|
55
|
+
status: number;
|
|
56
|
+
statusText: string;
|
|
57
|
+
headers: Record<string, string>;
|
|
58
|
+
body: string;
|
|
59
|
+
}
|
|
60
|
+
export interface FileReadParams {
|
|
61
|
+
path: string;
|
|
62
|
+
encoding?: BufferEncoding;
|
|
63
|
+
}
|
|
64
|
+
export interface FileReadResult {
|
|
65
|
+
content: string;
|
|
66
|
+
size: number;
|
|
67
|
+
mtime: string;
|
|
68
|
+
}
|
|
69
|
+
export interface FileWriteParams {
|
|
70
|
+
path: string;
|
|
71
|
+
content: string;
|
|
72
|
+
encoding?: BufferEncoding;
|
|
73
|
+
mode?: number;
|
|
74
|
+
}
|
|
75
|
+
export interface FileWriteResult {
|
|
76
|
+
bytesWritten: number;
|
|
77
|
+
path: string;
|
|
78
|
+
}
|
|
79
|
+
export interface FileListParams {
|
|
80
|
+
path: string;
|
|
81
|
+
recursive?: boolean;
|
|
82
|
+
pattern?: string;
|
|
83
|
+
}
|
|
84
|
+
export interface FileListResult {
|
|
85
|
+
entries: FileEntry[];
|
|
86
|
+
}
|
|
87
|
+
export interface FileEntry {
|
|
88
|
+
name: string;
|
|
89
|
+
path: string;
|
|
90
|
+
type: 'file' | 'directory' | 'symlink';
|
|
91
|
+
size: number;
|
|
92
|
+
mtime: string;
|
|
93
|
+
}
|
|
94
|
+
export interface ExecParams {
|
|
95
|
+
command: string;
|
|
96
|
+
args?: string[];
|
|
97
|
+
cwd?: string;
|
|
98
|
+
env?: Record<string, string>;
|
|
99
|
+
timeout?: number;
|
|
100
|
+
shell?: boolean;
|
|
101
|
+
}
|
|
102
|
+
export interface ExecResult {
|
|
103
|
+
exitCode: number;
|
|
104
|
+
stdout: string;
|
|
105
|
+
stderr: string;
|
|
106
|
+
signal?: string;
|
|
107
|
+
}
|
|
108
|
+
export interface OpenUrlParams {
|
|
109
|
+
url: string;
|
|
110
|
+
browser?: string;
|
|
111
|
+
}
|
|
112
|
+
export interface OpenUrlResult {
|
|
113
|
+
opened: boolean;
|
|
114
|
+
}
|
|
115
|
+
export interface SecretInjectParams {
|
|
116
|
+
name: string;
|
|
117
|
+
targetEnv?: string;
|
|
118
|
+
}
|
|
119
|
+
export interface SecretInjectResult {
|
|
120
|
+
value: string;
|
|
121
|
+
injected: boolean;
|
|
122
|
+
}
|
|
123
|
+
export interface PingParams {
|
|
124
|
+
echo?: string;
|
|
125
|
+
}
|
|
126
|
+
export interface PingResult {
|
|
127
|
+
pong: true;
|
|
128
|
+
echo?: string;
|
|
129
|
+
timestamp: string;
|
|
130
|
+
version: string;
|
|
131
|
+
}
|
|
132
|
+
export interface PolicyCheckParams {
|
|
133
|
+
operation: OperationType;
|
|
134
|
+
target: string;
|
|
135
|
+
}
|
|
136
|
+
export interface PolicyCheckResult {
|
|
137
|
+
allowed: boolean;
|
|
138
|
+
policyId?: string;
|
|
139
|
+
reason?: string;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=ops.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../../src/types/ops.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Policy types for AgenShield
|
|
3
|
+
*/
|
|
4
|
+
import type { OperationType } from './ops';
|
|
5
|
+
/**
|
|
6
|
+
* Policy rule definition
|
|
7
|
+
*/
|
|
8
|
+
export interface PolicyRule {
|
|
9
|
+
/** Unique identifier */
|
|
10
|
+
id: string;
|
|
11
|
+
/** Human-readable name */
|
|
12
|
+
name: string;
|
|
13
|
+
/** Policy action: allow, deny, or approval (future) */
|
|
14
|
+
action: 'allow' | 'deny' | 'approval';
|
|
15
|
+
/** What this rule targets */
|
|
16
|
+
target: 'skill' | 'command' | 'url' | 'filesystem';
|
|
17
|
+
/** Operations this rule applies to */
|
|
18
|
+
operations: OperationType[];
|
|
19
|
+
/** Patterns to match (glob or regex) */
|
|
20
|
+
patterns: string[];
|
|
21
|
+
/** Whether rule is enabled */
|
|
22
|
+
enabled: boolean;
|
|
23
|
+
/** Priority (higher = evaluated first) */
|
|
24
|
+
priority?: number;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* File system constraints
|
|
28
|
+
*/
|
|
29
|
+
export interface FsConstraints {
|
|
30
|
+
/** Paths that are allowed for file operations */
|
|
31
|
+
allowedPaths: string[];
|
|
32
|
+
/** Patterns that are denied (e.g., .env, secrets.json) */
|
|
33
|
+
deniedPatterns: string[];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Network constraints
|
|
37
|
+
*/
|
|
38
|
+
export interface NetworkConstraints {
|
|
39
|
+
/** Hosts that are allowed */
|
|
40
|
+
allowedHosts: string[];
|
|
41
|
+
/** Hosts that are denied */
|
|
42
|
+
deniedHosts: string[];
|
|
43
|
+
/** Ports that are allowed */
|
|
44
|
+
allowedPorts: number[];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Environment variable injection rule
|
|
48
|
+
*/
|
|
49
|
+
export interface EnvInjectionRule {
|
|
50
|
+
/** Name of the secret in vault */
|
|
51
|
+
secretName: string;
|
|
52
|
+
/** Target environment variable name */
|
|
53
|
+
targetEnv: string;
|
|
54
|
+
/** Operations that can access this secret */
|
|
55
|
+
operations: OperationType[];
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Complete policy configuration
|
|
59
|
+
*/
|
|
60
|
+
export interface PolicyConfiguration {
|
|
61
|
+
/** Schema version */
|
|
62
|
+
version: string;
|
|
63
|
+
/** Policy rules */
|
|
64
|
+
rules: PolicyRule[];
|
|
65
|
+
/** Default action when no rules match */
|
|
66
|
+
defaultAction: 'allow' | 'deny';
|
|
67
|
+
/** File system constraints */
|
|
68
|
+
fsConstraints?: FsConstraints;
|
|
69
|
+
/** Network constraints */
|
|
70
|
+
networkConstraints?: NetworkConstraints;
|
|
71
|
+
/** Environment injection rules */
|
|
72
|
+
envInjection?: EnvInjectionRule[];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Policy evaluation result
|
|
76
|
+
*/
|
|
77
|
+
export interface PolicyEvaluationResult {
|
|
78
|
+
/** Whether the operation is allowed */
|
|
79
|
+
allowed: boolean;
|
|
80
|
+
/** ID of the matching policy rule */
|
|
81
|
+
policyId?: string;
|
|
82
|
+
/** Reason for the decision */
|
|
83
|
+
reason?: string;
|
|
84
|
+
/** Evaluation duration in ms */
|
|
85
|
+
durationMs?: number;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Channel restrictions for operations
|
|
89
|
+
*/
|
|
90
|
+
export interface ChannelRestriction {
|
|
91
|
+
/** Operation type */
|
|
92
|
+
operation: OperationType;
|
|
93
|
+
/** Allowed channels */
|
|
94
|
+
allowedChannels: ('socket' | 'http')[];
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Default channel restrictions
|
|
98
|
+
*/
|
|
99
|
+
export declare const DEFAULT_CHANNEL_RESTRICTIONS: ChannelRestriction[];
|
|
100
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/types/policy.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;IACtC,6BAA6B;IAC7B,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,YAAY,CAAC;IACnD,sCAAsC;IACtC,UAAU,EAAE,aAAa,EAAE,CAAC;IAC5B,wCAAwC;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8BAA8B;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iDAAiD;IACjD,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,0DAA0D;IAC1D,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,6BAA6B;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,4BAA4B;IAC5B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,6BAA6B;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,yCAAyC;IACzC,aAAa,EAAE,OAAO,GAAG,MAAM,CAAC;IAChC,8BAA8B;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,0BAA0B;IAC1B,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,kCAAkC;IAClC,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,uCAAuC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,qBAAqB;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,uBAAuB;IACvB,eAAe,EAAE,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC;CACxC;AAED;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,kBAAkB,EAU5D,CAAC"}
|
package/types/state.d.ts
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System state types
|
|
3
|
+
*
|
|
4
|
+
* Types for tracking AgenShield system state in state.json
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Daemon state information
|
|
8
|
+
*/
|
|
9
|
+
export interface DaemonState {
|
|
10
|
+
/** Whether daemon is running */
|
|
11
|
+
running: boolean;
|
|
12
|
+
/** Process ID if running */
|
|
13
|
+
pid?: number;
|
|
14
|
+
/** When daemon was started */
|
|
15
|
+
startedAt?: string;
|
|
16
|
+
/** Port daemon is listening on */
|
|
17
|
+
port: number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* User state information
|
|
21
|
+
*/
|
|
22
|
+
export interface UserState {
|
|
23
|
+
/** Username */
|
|
24
|
+
username: string;
|
|
25
|
+
/** User ID */
|
|
26
|
+
uid: number;
|
|
27
|
+
/** User type */
|
|
28
|
+
type: 'agent' | 'broker';
|
|
29
|
+
/** When user was created */
|
|
30
|
+
createdAt: string;
|
|
31
|
+
/** Home directory */
|
|
32
|
+
homeDir: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Group state information
|
|
36
|
+
*/
|
|
37
|
+
export interface GroupState {
|
|
38
|
+
/** Group name */
|
|
39
|
+
name: string;
|
|
40
|
+
/** Group ID */
|
|
41
|
+
gid: number;
|
|
42
|
+
/** Group type */
|
|
43
|
+
type: 'socket' | 'workspace';
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* AgenCo state information
|
|
47
|
+
*/
|
|
48
|
+
export interface AgenCoState {
|
|
49
|
+
/** Whether user is authenticated */
|
|
50
|
+
authenticated: boolean;
|
|
51
|
+
/** Last authentication time */
|
|
52
|
+
lastAuthAt?: string;
|
|
53
|
+
/** List of connected integration IDs */
|
|
54
|
+
connectedIntegrations: string[];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Installation state information
|
|
58
|
+
*/
|
|
59
|
+
export interface InstallationState {
|
|
60
|
+
/** Installation preset used */
|
|
61
|
+
preset: string;
|
|
62
|
+
/** Base name for users/groups */
|
|
63
|
+
baseName: string;
|
|
64
|
+
/** Optional prefix */
|
|
65
|
+
prefix?: string;
|
|
66
|
+
/** Installed wrapper paths */
|
|
67
|
+
wrappers: string[];
|
|
68
|
+
/** Whether seatbelt is installed */
|
|
69
|
+
seatbeltInstalled: boolean;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Passcode protection state information
|
|
73
|
+
*/
|
|
74
|
+
export interface PasscodeProtectionState {
|
|
75
|
+
/** Whether passcode protection is enabled */
|
|
76
|
+
enabled: boolean;
|
|
77
|
+
/** Whether anonymous read-only access is allowed when protection is enabled (default: true) */
|
|
78
|
+
allowAnonymousReadOnly?: boolean;
|
|
79
|
+
/** Number of failed authentication attempts */
|
|
80
|
+
failedAttempts?: number;
|
|
81
|
+
/** ISO timestamp until which authentication is locked out */
|
|
82
|
+
lockedUntil?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Complete system state
|
|
86
|
+
*/
|
|
87
|
+
export interface SystemState {
|
|
88
|
+
/** State schema version */
|
|
89
|
+
version: string;
|
|
90
|
+
/** When AgenShield was installed */
|
|
91
|
+
installedAt: string;
|
|
92
|
+
/** Daemon state */
|
|
93
|
+
daemon: DaemonState;
|
|
94
|
+
/** Created users */
|
|
95
|
+
users: UserState[];
|
|
96
|
+
/** Created groups */
|
|
97
|
+
groups: GroupState[];
|
|
98
|
+
/** AgenCo state */
|
|
99
|
+
agenco: AgenCoState;
|
|
100
|
+
/** Installation state */
|
|
101
|
+
installation: InstallationState;
|
|
102
|
+
/** Passcode protection state */
|
|
103
|
+
passcodeProtection?: PasscodeProtectionState;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/types/state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,eAAe;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB;IAChB,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB;IACjB,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,oCAAoC;IACpC,aAAa,EAAE,OAAO,CAAC;IACvB,+BAA+B;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,oCAAoC;IACpC,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,6CAA6C;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,+FAA+F;IAC/F,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,MAAM,EAAE,WAAW,CAAC;IACpB,oBAAoB;IACpB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,qBAAqB;IACrB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,mBAAmB;IACnB,MAAM,EAAE,WAAW,CAAC;IACpB,yBAAyB;IACzB,YAAY,EAAE,iBAAiB,CAAC;IAChC,gCAAgC;IAChC,kBAAkB,CAAC,EAAE,uBAAuB,CAAC;CAC9C"}
|
package/types/vault.d.ts
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vault types
|
|
3
|
+
*
|
|
4
|
+
* Types for encrypted vault storage (vault.enc)
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* AgenCo OAuth secrets
|
|
8
|
+
*/
|
|
9
|
+
export interface AgenCoSecrets {
|
|
10
|
+
/** OAuth access token */
|
|
11
|
+
accessToken: string;
|
|
12
|
+
/** OAuth refresh token */
|
|
13
|
+
refreshToken: string;
|
|
14
|
+
/** Token expiration timestamp (ms) */
|
|
15
|
+
expiresAt: number;
|
|
16
|
+
/** OAuth client ID (from DCR) */
|
|
17
|
+
clientId: string;
|
|
18
|
+
/** OAuth client secret (from DCR) */
|
|
19
|
+
clientSecret: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Passcode data for authentication
|
|
23
|
+
*/
|
|
24
|
+
export interface PasscodeData {
|
|
25
|
+
/** bcrypt hash of the passcode */
|
|
26
|
+
hash: string;
|
|
27
|
+
/** ISO timestamp when passcode was initially set */
|
|
28
|
+
setAt: string;
|
|
29
|
+
/** ISO timestamp when passcode was last changed */
|
|
30
|
+
changedAt?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A secret stored in the vault with policy links
|
|
34
|
+
*/
|
|
35
|
+
export interface VaultSecret {
|
|
36
|
+
/** Unique identifier */
|
|
37
|
+
id: string;
|
|
38
|
+
/** Human-readable name (e.g. DATABASE_URL) */
|
|
39
|
+
name: string;
|
|
40
|
+
/** Secret value (plaintext — vault is AES-256-GCM encrypted) */
|
|
41
|
+
value: string;
|
|
42
|
+
/** Policy IDs this secret is linked to (many-to-many) */
|
|
43
|
+
policyIds: string[];
|
|
44
|
+
/** ISO timestamp when created */
|
|
45
|
+
createdAt: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Vault contents structure
|
|
49
|
+
*/
|
|
50
|
+
export interface VaultContents {
|
|
51
|
+
/** AgenCo OAuth tokens and secrets */
|
|
52
|
+
agenco?: AgenCoSecrets;
|
|
53
|
+
/** Environment variables for sandboxed processes */
|
|
54
|
+
envSecrets: Record<string, string>;
|
|
55
|
+
/** Sensitive patterns for policy matching */
|
|
56
|
+
sensitivePatterns: string[];
|
|
57
|
+
/** Passcode for authentication */
|
|
58
|
+
passcode?: PasscodeData;
|
|
59
|
+
/** Named secrets with policy links */
|
|
60
|
+
secrets?: VaultSecret[];
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=vault.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../../src/types/vault.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,0BAA0B;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,6CAA6C;IAC7C,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,kCAAkC;IAClC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,sCAAsC;IACtC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;CACzB"}
|