@id-wispera/core 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/README.md +268 -0
- package/dist/audit.d.ts +68 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +252 -0
- package/dist/audit.js.map +1 -0
- package/dist/auth/index.d.ts +8 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +8 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/keychainProvider.d.ts +40 -0
- package/dist/auth/keychainProvider.d.ts.map +1 -0
- package/dist/auth/keychainProvider.js +98 -0
- package/dist/auth/keychainProvider.js.map +1 -0
- package/dist/auth/passphraseProvider.d.ts +80 -0
- package/dist/auth/passphraseProvider.d.ts.map +1 -0
- package/dist/auth/passphraseProvider.js +188 -0
- package/dist/auth/passphraseProvider.js.map +1 -0
- package/dist/auth/sessionTokenManager.d.ts +106 -0
- package/dist/auth/sessionTokenManager.d.ts.map +1 -0
- package/dist/auth/sessionTokenManager.js +263 -0
- package/dist/auth/sessionTokenManager.js.map +1 -0
- package/dist/delegation.d.ts +81 -0
- package/dist/delegation.d.ts.map +1 -0
- package/dist/delegation.js +299 -0
- package/dist/delegation.js.map +1 -0
- package/dist/detection.d.ts +35 -0
- package/dist/detection.d.ts.map +1 -0
- package/dist/detection.js +474 -0
- package/dist/detection.js.map +1 -0
- package/dist/exec/execManager.d.ts +60 -0
- package/dist/exec/execManager.d.ts.map +1 -0
- package/dist/exec/execManager.js +226 -0
- package/dist/exec/execManager.js.map +1 -0
- package/dist/exec/index.d.ts +6 -0
- package/dist/exec/index.d.ts.map +1 -0
- package/dist/exec/index.js +5 -0
- package/dist/exec/index.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +98 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/base.d.ts +64 -0
- package/dist/integrations/base.d.ts.map +1 -0
- package/dist/integrations/base.js +173 -0
- package/dist/integrations/base.js.map +1 -0
- package/dist/integrations/envMapping.d.ts +47 -0
- package/dist/integrations/envMapping.d.ts.map +1 -0
- package/dist/integrations/envMapping.js +174 -0
- package/dist/integrations/envMapping.js.map +1 -0
- package/dist/integrations/google-a2a.d.ts +48 -0
- package/dist/integrations/google-a2a.d.ts.map +1 -0
- package/dist/integrations/google-a2a.js +108 -0
- package/dist/integrations/google-a2a.js.map +1 -0
- package/dist/integrations/index.d.ts +14 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +14 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/integrations/langchain.d.ts +38 -0
- package/dist/integrations/langchain.d.ts.map +1 -0
- package/dist/integrations/langchain.js +45 -0
- package/dist/integrations/langchain.js.map +1 -0
- package/dist/integrations/openai-agents.d.ts +76 -0
- package/dist/integrations/openai-agents.d.ts.map +1 -0
- package/dist/integrations/openai-agents.js +95 -0
- package/dist/integrations/openai-agents.js.map +1 -0
- package/dist/integrations/slack.d.ts +59 -0
- package/dist/integrations/slack.d.ts.map +1 -0
- package/dist/integrations/slack.js +113 -0
- package/dist/integrations/slack.js.map +1 -0
- package/dist/integrations/types.d.ts +107 -0
- package/dist/integrations/types.d.ts.map +1 -0
- package/dist/integrations/types.js +6 -0
- package/dist/integrations/types.js.map +1 -0
- package/dist/locations.d.ts +157 -0
- package/dist/locations.d.ts.map +1 -0
- package/dist/locations.js +733 -0
- package/dist/locations.js.map +1 -0
- package/dist/passport.d.ts +70 -0
- package/dist/passport.d.ts.map +1 -0
- package/dist/passport.js +429 -0
- package/dist/passport.js.map +1 -0
- package/dist/policy.d.ts +80 -0
- package/dist/policy.d.ts.map +1 -0
- package/dist/policy.js +392 -0
- package/dist/policy.js.map +1 -0
- package/dist/providers/openclaw.d.ts +80 -0
- package/dist/providers/openclaw.d.ts.map +1 -0
- package/dist/providers/openclaw.js +712 -0
- package/dist/providers/openclaw.js.map +1 -0
- package/dist/provisioning/adminPassport.d.ts +51 -0
- package/dist/provisioning/adminPassport.d.ts.map +1 -0
- package/dist/provisioning/adminPassport.js +101 -0
- package/dist/provisioning/adminPassport.js.map +1 -0
- package/dist/provisioning/index.d.ts +81 -0
- package/dist/provisioning/index.d.ts.map +1 -0
- package/dist/provisioning/index.js +141 -0
- package/dist/provisioning/index.js.map +1 -0
- package/dist/provisioning/provider.d.ts +59 -0
- package/dist/provisioning/provider.d.ts.map +1 -0
- package/dist/provisioning/provider.js +52 -0
- package/dist/provisioning/provider.js.map +1 -0
- package/dist/provisioning/providers/anthropic.d.ts +32 -0
- package/dist/provisioning/providers/anthropic.d.ts.map +1 -0
- package/dist/provisioning/providers/anthropic.js +116 -0
- package/dist/provisioning/providers/anthropic.js.map +1 -0
- package/dist/provisioning/providers/aws.d.ts +29 -0
- package/dist/provisioning/providers/aws.d.ts.map +1 -0
- package/dist/provisioning/providers/aws.js +455 -0
- package/dist/provisioning/providers/aws.js.map +1 -0
- package/dist/provisioning/providers/azure-entra.d.ts +32 -0
- package/dist/provisioning/providers/azure-entra.d.ts.map +1 -0
- package/dist/provisioning/providers/azure-entra.js +312 -0
- package/dist/provisioning/providers/azure-entra.js.map +1 -0
- package/dist/provisioning/providers/github.d.ts +24 -0
- package/dist/provisioning/providers/github.d.ts.map +1 -0
- package/dist/provisioning/providers/github.js +219 -0
- package/dist/provisioning/providers/github.js.map +1 -0
- package/dist/provisioning/providers/google-cloud.d.ts +34 -0
- package/dist/provisioning/providers/google-cloud.d.ts.map +1 -0
- package/dist/provisioning/providers/google-cloud.js +366 -0
- package/dist/provisioning/providers/google-cloud.js.map +1 -0
- package/dist/provisioning/providers/openai.d.ts +29 -0
- package/dist/provisioning/providers/openai.d.ts.map +1 -0
- package/dist/provisioning/providers/openai.js +263 -0
- package/dist/provisioning/providers/openai.js.map +1 -0
- package/dist/provisioning/providers/sendgrid.d.ts +27 -0
- package/dist/provisioning/providers/sendgrid.d.ts.map +1 -0
- package/dist/provisioning/providers/sendgrid.js +186 -0
- package/dist/provisioning/providers/sendgrid.js.map +1 -0
- package/dist/provisioning/providers/twilio.d.ts +27 -0
- package/dist/provisioning/providers/twilio.d.ts.map +1 -0
- package/dist/provisioning/providers/twilio.js +194 -0
- package/dist/provisioning/providers/twilio.js.map +1 -0
- package/dist/provisioning/types.d.ts +274 -0
- package/dist/provisioning/types.d.ts.map +1 -0
- package/dist/provisioning/types.js +6 -0
- package/dist/provisioning/types.js.map +1 -0
- package/dist/sharing.d.ts +60 -0
- package/dist/sharing.d.ts.map +1 -0
- package/dist/sharing.js +305 -0
- package/dist/sharing.js.map +1 -0
- package/dist/types.d.ts +396 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +88 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +45 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +110 -0
- package/dist/utils.js.map +1 -0
- package/dist/vault.d.ts +151 -0
- package/dist/vault.d.ts.map +1 -0
- package/dist/vault.js +499 -0
- package/dist/vault.js.map +1 -0
- package/package.json +117 -0
package/dist/policy.js
ADDED
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ID Wispera Policy Engine
|
|
3
|
+
* Cedar-inspired declarative policy evaluation
|
|
4
|
+
*/
|
|
5
|
+
import { PolicyError, } from './types.js';
|
|
6
|
+
// ============================================================================
|
|
7
|
+
// Built-in Policy Rules
|
|
8
|
+
// ============================================================================
|
|
9
|
+
/**
|
|
10
|
+
* Default policy rules for credential governance
|
|
11
|
+
*/
|
|
12
|
+
export const DEFAULT_POLICY_RULES = [
|
|
13
|
+
{
|
|
14
|
+
id: 'require-human-owner',
|
|
15
|
+
name: 'Require Human Owner',
|
|
16
|
+
description: 'All passports must have a human owner for accountability',
|
|
17
|
+
condition: {
|
|
18
|
+
requireHumanOwner: true,
|
|
19
|
+
},
|
|
20
|
+
effect: 'deny',
|
|
21
|
+
priority: 100,
|
|
22
|
+
enabled: true,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
id: 'max-validity-90-days',
|
|
26
|
+
name: 'Maximum Validity Period',
|
|
27
|
+
description: 'Credentials should not be valid for more than 90 days',
|
|
28
|
+
condition: {
|
|
29
|
+
maxValidityDays: 90,
|
|
30
|
+
},
|
|
31
|
+
effect: 'deny',
|
|
32
|
+
priority: 90,
|
|
33
|
+
enabled: true,
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
id: 'max-delegation-depth-3',
|
|
37
|
+
name: 'Maximum Delegation Depth',
|
|
38
|
+
description: 'Credentials should not be delegated more than 3 levels deep',
|
|
39
|
+
condition: {
|
|
40
|
+
maxDelegationDepth: 3,
|
|
41
|
+
},
|
|
42
|
+
effect: 'deny',
|
|
43
|
+
priority: 80,
|
|
44
|
+
enabled: true,
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: 'privilege-visa-requires-approval',
|
|
48
|
+
name: 'Privileged Access Requires Approval',
|
|
49
|
+
description: 'Credentials with privilege visa type require approval',
|
|
50
|
+
condition: {
|
|
51
|
+
visaTypes: ['privilege'],
|
|
52
|
+
},
|
|
53
|
+
effect: 'require-approval',
|
|
54
|
+
priority: 70,
|
|
55
|
+
enabled: true,
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
// ============================================================================
|
|
59
|
+
// Policy Evaluation
|
|
60
|
+
// ============================================================================
|
|
61
|
+
/**
|
|
62
|
+
* Check if a condition matches a passport
|
|
63
|
+
*/
|
|
64
|
+
function conditionMatches(passport, condition) {
|
|
65
|
+
// Visa types filter
|
|
66
|
+
if (condition.visaTypes && condition.visaTypes.length > 0) {
|
|
67
|
+
if (!condition.visaTypes.includes(passport.visaType)) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Platforms filter
|
|
72
|
+
if (condition.platforms && condition.platforms.length > 0) {
|
|
73
|
+
if (!passport.platforms.some((p) => condition.platforms.includes(p))) {
|
|
74
|
+
return false;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Scopes filter
|
|
78
|
+
if (condition.scopes && condition.scopes.length > 0) {
|
|
79
|
+
if (!passport.scope.some((s) => condition.scopes.includes(s))) {
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// Credential types filter
|
|
84
|
+
if (condition.credentialTypes && condition.credentialTypes.length > 0) {
|
|
85
|
+
if (!condition.credentialTypes.includes(passport.credentialType)) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
// Tags filter
|
|
90
|
+
if (condition.tags && condition.tags.length > 0) {
|
|
91
|
+
if (!passport.tags.some((t) => condition.tags.includes(t))) {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// Violation-based conditions: match only when violated
|
|
96
|
+
let hasViolationCondition = false;
|
|
97
|
+
let hasViolation = false;
|
|
98
|
+
// Human owner check
|
|
99
|
+
if (condition.requireHumanOwner) {
|
|
100
|
+
hasViolationCondition = true;
|
|
101
|
+
if (!passport.humanOwner || passport.humanOwner.trim() === '') {
|
|
102
|
+
hasViolation = true;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// Delegation depth check
|
|
106
|
+
if (condition.maxDelegationDepth !== undefined) {
|
|
107
|
+
hasViolationCondition = true;
|
|
108
|
+
const depth = passport.delegationChain?.length ?? 0;
|
|
109
|
+
if (depth > condition.maxDelegationDepth) {
|
|
110
|
+
hasViolation = true;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Validity period check
|
|
114
|
+
if (condition.maxValidityDays !== undefined && passport.validUntil) {
|
|
115
|
+
hasViolationCondition = true;
|
|
116
|
+
const validFrom = new Date(passport.validFrom);
|
|
117
|
+
const validUntil = new Date(passport.validUntil);
|
|
118
|
+
const days = (validUntil.getTime() - validFrom.getTime()) / (1000 * 60 * 60 * 24);
|
|
119
|
+
if (days > condition.maxValidityDays) {
|
|
120
|
+
hasViolation = true;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// Custom condition
|
|
124
|
+
if (condition.custom) {
|
|
125
|
+
return condition.custom(passport);
|
|
126
|
+
}
|
|
127
|
+
// If rule has violation conditions, only match when a violation was found
|
|
128
|
+
if (hasViolationCondition) {
|
|
129
|
+
return hasViolation;
|
|
130
|
+
}
|
|
131
|
+
return true;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Evaluate a policy rule against a passport
|
|
135
|
+
*/
|
|
136
|
+
function evaluateRule(passport, rule) {
|
|
137
|
+
if (rule.enabled === false) {
|
|
138
|
+
return false; // Rule is disabled
|
|
139
|
+
}
|
|
140
|
+
return conditionMatches(passport, rule.condition);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Evaluate policies for a passport and action
|
|
144
|
+
* Returns the policy decision
|
|
145
|
+
*/
|
|
146
|
+
export function evaluatePolicy(passport, action, rules = DEFAULT_POLICY_RULES) {
|
|
147
|
+
// Sort rules by priority (higher first)
|
|
148
|
+
const sortedRules = [...rules].sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
|
|
149
|
+
const matchedRules = [];
|
|
150
|
+
let finalEffect = 'allow';
|
|
151
|
+
const reasons = [];
|
|
152
|
+
for (const rule of sortedRules) {
|
|
153
|
+
if (evaluateRule(passport, rule)) {
|
|
154
|
+
matchedRules.push(rule);
|
|
155
|
+
// First matching deny or require-approval takes precedence
|
|
156
|
+
if (rule.effect === 'deny' && finalEffect !== 'deny') {
|
|
157
|
+
finalEffect = 'deny';
|
|
158
|
+
reasons.push(`${rule.name}: ${rule.description}`);
|
|
159
|
+
}
|
|
160
|
+
else if (rule.effect === 'require-approval' && finalEffect === 'allow') {
|
|
161
|
+
finalEffect = 'require-approval';
|
|
162
|
+
reasons.push(`${rule.name}: ${rule.description}`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
return {
|
|
167
|
+
allowed: finalEffect === 'allow',
|
|
168
|
+
effect: finalEffect,
|
|
169
|
+
matchedRules,
|
|
170
|
+
reason: reasons.length > 0
|
|
171
|
+
? reasons.join('; ')
|
|
172
|
+
: `Action "${action}" is allowed by default policy`,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Validate a passport against all policy rules
|
|
177
|
+
* Returns list of violations
|
|
178
|
+
*/
|
|
179
|
+
export function validatePassport(passport, rules = DEFAULT_POLICY_RULES) {
|
|
180
|
+
const violations = [];
|
|
181
|
+
for (const rule of rules) {
|
|
182
|
+
if (rule.enabled === false)
|
|
183
|
+
continue;
|
|
184
|
+
// Check specific conditions that indicate violations
|
|
185
|
+
const condition = rule.condition;
|
|
186
|
+
// Human owner check
|
|
187
|
+
if (condition.requireHumanOwner) {
|
|
188
|
+
if (!passport.humanOwner || passport.humanOwner.trim() === '') {
|
|
189
|
+
violations.push({
|
|
190
|
+
rule,
|
|
191
|
+
violation: 'Passport is missing a human owner',
|
|
192
|
+
severity: rule.effect === 'deny' ? 'error' : 'warning',
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
// Delegation depth check
|
|
197
|
+
if (condition.maxDelegationDepth !== undefined) {
|
|
198
|
+
const depth = passport.delegationChain?.length ?? 0;
|
|
199
|
+
if (depth > condition.maxDelegationDepth) {
|
|
200
|
+
violations.push({
|
|
201
|
+
rule,
|
|
202
|
+
violation: `Delegation depth (${depth}) exceeds maximum (${condition.maxDelegationDepth})`,
|
|
203
|
+
severity: rule.effect === 'deny' ? 'error' : 'warning',
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
// Validity period check
|
|
208
|
+
if (condition.maxValidityDays !== undefined && passport.validUntil) {
|
|
209
|
+
const validFrom = new Date(passport.validFrom);
|
|
210
|
+
const validUntil = new Date(passport.validUntil);
|
|
211
|
+
const days = (validUntil.getTime() - validFrom.getTime()) / (1000 * 60 * 60 * 24);
|
|
212
|
+
if (days > condition.maxValidityDays) {
|
|
213
|
+
violations.push({
|
|
214
|
+
rule,
|
|
215
|
+
violation: `Validity period (${Math.round(days)} days) exceeds maximum (${condition.maxValidityDays} days)`,
|
|
216
|
+
severity: rule.effect === 'deny' ? 'error' : 'warning',
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
// Visa type restrictions
|
|
221
|
+
if (condition.visaTypes && condition.visaTypes.includes(passport.visaType)) {
|
|
222
|
+
if (rule.effect === 'require-approval') {
|
|
223
|
+
violations.push({
|
|
224
|
+
rule,
|
|
225
|
+
violation: `Visa type "${passport.visaType}" requires approval`,
|
|
226
|
+
severity: 'warning',
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return violations;
|
|
232
|
+
}
|
|
233
|
+
// ============================================================================
|
|
234
|
+
// Policy Management
|
|
235
|
+
// ============================================================================
|
|
236
|
+
/**
|
|
237
|
+
* Create a custom policy rule
|
|
238
|
+
*/
|
|
239
|
+
export function createPolicyRule(input) {
|
|
240
|
+
return {
|
|
241
|
+
id: input.id ?? `rule-${Date.now()}`,
|
|
242
|
+
name: input.name,
|
|
243
|
+
description: input.description,
|
|
244
|
+
condition: input.condition,
|
|
245
|
+
effect: input.effect,
|
|
246
|
+
priority: input.priority ?? 50,
|
|
247
|
+
enabled: input.enabled ?? true,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Merge policy rules, with later rules overriding earlier ones by ID
|
|
252
|
+
*/
|
|
253
|
+
export function mergePolicyRules(...ruleSets) {
|
|
254
|
+
const rulesById = new Map();
|
|
255
|
+
for (const ruleSet of ruleSets) {
|
|
256
|
+
for (const rule of ruleSet) {
|
|
257
|
+
rulesById.set(rule.id, rule);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
return Array.from(rulesById.values());
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Filter rules by enabled status
|
|
264
|
+
*/
|
|
265
|
+
export function getEnabledRules(rules) {
|
|
266
|
+
return rules.filter((r) => r.enabled !== false);
|
|
267
|
+
}
|
|
268
|
+
// ============================================================================
|
|
269
|
+
// Policy Predicates (for advanced use)
|
|
270
|
+
// ============================================================================
|
|
271
|
+
/**
|
|
272
|
+
* Check if passport has valid human owner
|
|
273
|
+
*/
|
|
274
|
+
export function hasValidHumanOwner(passport) {
|
|
275
|
+
return !!passport.humanOwner && passport.humanOwner.trim() !== '';
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Check if passport is within validity period
|
|
279
|
+
*/
|
|
280
|
+
export function isWithinValidityPeriod(passport) {
|
|
281
|
+
const now = new Date();
|
|
282
|
+
const validFrom = new Date(passport.validFrom);
|
|
283
|
+
const validUntil = passport.validUntil ? new Date(passport.validUntil) : null;
|
|
284
|
+
if (now < validFrom)
|
|
285
|
+
return false;
|
|
286
|
+
if (validUntil && now > validUntil)
|
|
287
|
+
return false;
|
|
288
|
+
return true;
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Check if passport has excessive delegation
|
|
292
|
+
*/
|
|
293
|
+
export function hasExcessiveDelegation(passport, maxDepth = 3) {
|
|
294
|
+
return (passport.delegationChain?.length ?? 0) > maxDepth;
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* Check if passport scope is too broad
|
|
298
|
+
*/
|
|
299
|
+
export function hasBroadScope(passport, maxScopes = 10) {
|
|
300
|
+
return passport.scope.length > maxScopes;
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Check if passport has privileged access
|
|
304
|
+
*/
|
|
305
|
+
export function hasPrivilegedAccess(passport) {
|
|
306
|
+
return passport.visaType === 'privilege';
|
|
307
|
+
}
|
|
308
|
+
// ============================================================================
|
|
309
|
+
// Policy DSL Helpers
|
|
310
|
+
// ============================================================================
|
|
311
|
+
/**
|
|
312
|
+
* Builder for creating policy rules fluently
|
|
313
|
+
*/
|
|
314
|
+
export class PolicyBuilder {
|
|
315
|
+
rule = {
|
|
316
|
+
condition: {},
|
|
317
|
+
effect: 'allow',
|
|
318
|
+
enabled: true,
|
|
319
|
+
};
|
|
320
|
+
constructor(id) {
|
|
321
|
+
this.rule.id = id;
|
|
322
|
+
}
|
|
323
|
+
name(name) {
|
|
324
|
+
this.rule.name = name;
|
|
325
|
+
return this;
|
|
326
|
+
}
|
|
327
|
+
description(description) {
|
|
328
|
+
this.rule.description = description;
|
|
329
|
+
return this;
|
|
330
|
+
}
|
|
331
|
+
forVisaTypes(...types) {
|
|
332
|
+
this.rule.condition.visaTypes = types;
|
|
333
|
+
return this;
|
|
334
|
+
}
|
|
335
|
+
forPlatforms(...platforms) {
|
|
336
|
+
this.rule.condition.platforms = platforms;
|
|
337
|
+
return this;
|
|
338
|
+
}
|
|
339
|
+
forCredentialTypes(...types) {
|
|
340
|
+
this.rule.condition.credentialTypes = types;
|
|
341
|
+
return this;
|
|
342
|
+
}
|
|
343
|
+
requireHumanOwner() {
|
|
344
|
+
this.rule.condition.requireHumanOwner = true;
|
|
345
|
+
return this;
|
|
346
|
+
}
|
|
347
|
+
maxDelegationDepth(depth) {
|
|
348
|
+
this.rule.condition.maxDelegationDepth = depth;
|
|
349
|
+
return this;
|
|
350
|
+
}
|
|
351
|
+
maxValidityDays(days) {
|
|
352
|
+
this.rule.condition.maxValidityDays = days;
|
|
353
|
+
return this;
|
|
354
|
+
}
|
|
355
|
+
withCustomCondition(fn) {
|
|
356
|
+
this.rule.condition.custom = fn;
|
|
357
|
+
return this;
|
|
358
|
+
}
|
|
359
|
+
deny() {
|
|
360
|
+
this.rule.effect = 'deny';
|
|
361
|
+
return this;
|
|
362
|
+
}
|
|
363
|
+
requireApproval() {
|
|
364
|
+
this.rule.effect = 'require-approval';
|
|
365
|
+
return this;
|
|
366
|
+
}
|
|
367
|
+
allow() {
|
|
368
|
+
this.rule.effect = 'allow';
|
|
369
|
+
return this;
|
|
370
|
+
}
|
|
371
|
+
priority(priority) {
|
|
372
|
+
this.rule.priority = priority;
|
|
373
|
+
return this;
|
|
374
|
+
}
|
|
375
|
+
disabled() {
|
|
376
|
+
this.rule.enabled = false;
|
|
377
|
+
return this;
|
|
378
|
+
}
|
|
379
|
+
build() {
|
|
380
|
+
if (!this.rule.id || !this.rule.name || !this.rule.description) {
|
|
381
|
+
throw new PolicyError('Policy rule requires id, name, and description', 'INVALID_RULE');
|
|
382
|
+
}
|
|
383
|
+
return this.rule;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Start building a policy rule
|
|
388
|
+
*/
|
|
389
|
+
export function policy(id) {
|
|
390
|
+
return new PolicyBuilder(id);
|
|
391
|
+
}
|
|
392
|
+
//# sourceMappingURL=policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.js","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ID Wispera OpenClaw Provider
|
|
3
|
+
* Specialized scanner for OpenClaw credential locations
|
|
4
|
+
*/
|
|
5
|
+
import { DiscoveredCredential, LocationScanResult } from '../locations.js';
|
|
6
|
+
import { CreatePassportInput } from '../types.js';
|
|
7
|
+
export declare const OPENCLAW_BASE_PATH: string;
|
|
8
|
+
export declare const OPENCLAW_PATHS: {
|
|
9
|
+
/** Base OpenClaw directory */
|
|
10
|
+
base: string;
|
|
11
|
+
/** WhatsApp credentials directory */
|
|
12
|
+
whatsapp: string;
|
|
13
|
+
/** Main credentials directory */
|
|
14
|
+
credentials: string;
|
|
15
|
+
/** Agents directory */
|
|
16
|
+
agents: string;
|
|
17
|
+
/** Main config file */
|
|
18
|
+
config: string;
|
|
19
|
+
/** OAuth tokens */
|
|
20
|
+
oauth: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Check if OpenClaw is installed
|
|
24
|
+
*/
|
|
25
|
+
export declare function isOpenClawInstalled(): Promise<boolean>;
|
|
26
|
+
/**
|
|
27
|
+
* Check file permissions and return warning if insecure
|
|
28
|
+
*/
|
|
29
|
+
export declare function checkFilePermissions(filePath: string): Promise<string | undefined>;
|
|
30
|
+
/**
|
|
31
|
+
* Check directory permissions
|
|
32
|
+
*/
|
|
33
|
+
export declare function checkDirectoryPermissions(dirPath: string): Promise<string | undefined>;
|
|
34
|
+
/**
|
|
35
|
+
* Scan result with OpenClaw-specific metadata
|
|
36
|
+
*/
|
|
37
|
+
export interface OpenClawScanResult {
|
|
38
|
+
/** Whether OpenClaw is installed */
|
|
39
|
+
installed: boolean;
|
|
40
|
+
/** Path to OpenClaw installation */
|
|
41
|
+
installPath: string;
|
|
42
|
+
/** All discovered credentials */
|
|
43
|
+
credentials: DiscoveredCredential[];
|
|
44
|
+
/** Scan results by location */
|
|
45
|
+
locationResults: LocationScanResult[];
|
|
46
|
+
/** Summary statistics */
|
|
47
|
+
summary: {
|
|
48
|
+
total: number;
|
|
49
|
+
governed: number;
|
|
50
|
+
criticalCount: number;
|
|
51
|
+
highCount: number;
|
|
52
|
+
mediumCount: number;
|
|
53
|
+
lowCount: number;
|
|
54
|
+
};
|
|
55
|
+
/** Permission warnings for OpenClaw directory */
|
|
56
|
+
permissionWarnings: string[];
|
|
57
|
+
/** Unreadable paths */
|
|
58
|
+
unreadablePaths: {
|
|
59
|
+
path: string;
|
|
60
|
+
error: string;
|
|
61
|
+
}[];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Scan all OpenClaw credential locations
|
|
65
|
+
*/
|
|
66
|
+
export declare function scanOpenClaw(): Promise<OpenClawScanResult>;
|
|
67
|
+
/**
|
|
68
|
+
* Convert discovered credential to passport input
|
|
69
|
+
*/
|
|
70
|
+
export declare function toPassportInput(cred: DiscoveredCredential, humanOwner: string, agentId?: string): CreatePassportInput;
|
|
71
|
+
/**
|
|
72
|
+
* Format credential for table display
|
|
73
|
+
*/
|
|
74
|
+
export declare function formatCredentialRow(cred: DiscoveredCredential): {
|
|
75
|
+
credential: string;
|
|
76
|
+
type: string;
|
|
77
|
+
visaType: string;
|
|
78
|
+
riskLevel: string;
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=openclaw.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openclaw.d.ts","sourceRoot":"","sources":["../../src/providers/openclaw.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAInB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAsC,mBAAmB,EAAiB,MAAM,aAAa,CAAC;AAMrG,eAAO,MAAM,kBAAkB,QAA+B,CAAC;AAE/D,eAAO,MAAM,cAAc;IACzB,8BAA8B;;IAE9B,qCAAqC;;IAErC,iCAAiC;;IAEjC,uBAAuB;;IAEvB,uBAAuB;;IAEvB,mBAAmB;;CAEpB,CAAC;AAMF;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,CAQ5D;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAqBxF;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiB5F;AAMD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oCAAoC;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,+BAA+B;IAC/B,eAAe,EAAE,kBAAkB,EAAE,CAAC;IACtC,yBAAyB;IACzB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,iDAAiD;IACjD,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,uBAAuB;IACvB,eAAe,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACpD;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAgEhE;AA+iBD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,oBAAoB,EAC1B,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,mBAAmB,CAmCrB;AAMD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB,CAOA"}
|