@edge-protocol/sdk 0.9.1 → 0.9.2

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.
@@ -1,81 +1,13 @@
1
1
  import { EdgePassObject, TransactionRequest, PolicyValidation, SimulationResult, BudgetStatus } from '../utils/types';
2
2
  export declare class PolicyEngine {
3
- /**
4
- * Validates a transaction request against an EdgePass policy.
5
- *
6
- * Rules (in order):
7
- * 1. Pass must be active
8
- * 2. Pass must not be expired
9
- * 3. Merchant must be in approved list
10
- * 4. Amount must not exceed remaining budget
11
- * 5. Amount must not exceed maxPerTransaction (if set)
12
- * 6. If amount > escalateThreshold → escalate
13
- * 7. If amount ≤ autoThreshold → auto-approve
14
- */
15
3
  static validate(pass: EdgePassObject, request: TransactionRequest): PolicyValidation;
16
- /**
17
- * Simulate a sequence of transactions against an EdgePass.
18
- * Zero network calls. Returns predicted outcomes for all decisions
19
- * including projected budget state after each step.
20
- *
21
- * @example
22
- * const plan = sdk.simulate(pass, claudeDecisions);
23
- * console.log(plan.approved.length); // decisions that will execute
24
- * console.log(plan.blocked.length); // decisions that will be rejected
25
- * console.log(plan.utilizationPct); // projected budget usage
26
- *
27
- * // Show plan to user, then execute approved decisions
28
- * for (const decision of plan.approved) {
29
- * await sdk.execute(pass, decision.request, signer);
30
- * }
31
- */
32
4
  static simulate(pass: EdgePassObject, requests: TransactionRequest[]): SimulationResult;
33
- /**
34
- * Returns true if the pass is active and not expired.
35
- */
36
5
  static isValid(pass: EdgePassObject): boolean;
37
- /**
38
- * Returns the remaining budget in MIST.
39
- */
40
6
  static remainingBudget(pass: EdgePassObject): bigint;
41
- /**
42
- * Returns budget utilization as a percentage (0-100).
43
- *
44
- * @example
45
- * const pct = sdk.utilizationPct(pass);
46
- * if (pct > 80) warnUser('Running low on budget');
47
- */
48
7
  static utilizationPct(pass: EdgePassObject): number;
49
- /**
50
- * Returns true if budget utilization exceeds the given threshold.
51
- * Default threshold is 80%.
52
- *
53
- * @example
54
- * if (sdk.isNearLimit(pass)) notifyUser('Budget nearly exhausted');
55
- * if (sdk.isNearLimit(pass, 0.5)) notifyUser('Halfway through budget');
56
- */
57
8
  static isNearLimit(pass: EdgePassObject, threshold?: number): boolean;
58
- /**
59
- * Returns a complete budget status snapshot.
60
- *
61
- * @example
62
- * const status = sdk.budgetStatus(pass);
63
- * if (status.isExhausted) stopAgent();
64
- * if (status.isNearLimit) notifyUser(`${status.utilizationPct}% spent`);
65
- */
66
9
  static budgetStatus(pass: EdgePassObject, nearLimitThreshold?: number): BudgetStatus;
67
- /**
68
- * Returns the time remaining on the pass in milliseconds.
69
- * Returns 0 if expired.
70
- */
71
10
  static timeRemaining(pass: EdgePassObject): number;
72
- /**
73
- * Returns true if the pass will expire within the given window.
74
- * Default window is 1 hour.
75
- *
76
- * @example
77
- * if (sdk.isExpiringSoon(pass)) notifyUser('Pass expires in less than 1 hour');
78
- */
79
11
  static isExpiringSoon(pass: EdgePassObject, withinMs?: number): boolean;
80
12
  }
81
13
  //# sourceMappingURL=PolicyEngine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PolicyEngine.d.ts","sourceRoot":"","sources":["../../src/core/PolicyEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAEhB,gBAAgB,EAChB,YAAY,EACb,MAAM,gBAAgB,CAAC;AAExB,qBAAa,YAAY;IAEvB;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,QAAQ,CACb,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,kBAAkB,GAC1B,gBAAgB;IAqCnB;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,QAAQ,CACb,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,kBAAkB,EAAE,GAC7B,gBAAgB;IA8DnB;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO;IAI7C;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAIpD;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAKnD;;;;;;;OAOG;IACH,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,SAAM,GAAG,OAAO;IAIlE;;;;;;;OAOG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,kBAAkB,SAAM,GAAG,YAAY;IAajF;;;OAGG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAIlD;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,SAAiB,GAAG,OAAO;CAIhF"}
1
+ {"version":3,"file":"PolicyEngine.d.ts","sourceRoot":"","sources":["../../src/core/PolicyEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAEhB,gBAAgB,EAChB,YAAY,EACb,MAAM,gBAAgB,CAAC;AAExB,qBAAa,YAAY;IAEvB,MAAM,CAAC,QAAQ,CACb,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,kBAAkB,GAC1B,gBAAgB;IA8BnB,MAAM,CAAC,QAAQ,CACb,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,kBAAkB,EAAE,GAC7B,gBAAgB;IA2DnB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO;IAI7C,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAIpD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAKnD,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,SAAM,GAAG,OAAO;IAIlE,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,kBAAkB,SAAM,GAAG,YAAY;IAajF,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAIlD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,SAAiB,GAAG,OAAO;CAIhF"}
@@ -2,68 +2,32 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PolicyEngine = void 0;
4
4
  class PolicyEngine {
5
- /**
6
- * Validates a transaction request against an EdgePass policy.
7
- *
8
- * Rules (in order):
9
- * 1. Pass must be active
10
- * 2. Pass must not be expired
11
- * 3. Merchant must be in approved list
12
- * 4. Amount must not exceed remaining budget
13
- * 5. Amount must not exceed maxPerTransaction (if set)
14
- * 6. If amount > escalateThreshold → escalate
15
- * 7. If amount ≤ autoThreshold → auto-approve
16
- */
17
5
  static validate(pass, request) {
18
- // Rule 1 — pass must be active
19
6
  if (!pass.active) {
20
7
  return { allowed: false, requiresEscalation: false, reason: 'EdgePass is inactive' };
21
8
  }
22
- // Rule 2 — pass must not be expired
23
9
  if (Date.now() > pass.expiresAt) {
24
10
  return { allowed: false, requiresEscalation: false, reason: 'EdgePass has expired' };
25
11
  }
26
- // Rule 3 — merchant must be approved
27
12
  if (!pass.config.approvedMerchants.includes(request.merchant)) {
28
13
  return { allowed: false, requiresEscalation: false, reason: `Merchant "${request.merchant}" is not approved` };
29
14
  }
30
- // Rule 4 — must not exceed remaining budget
31
15
  const remaining = pass.config.budget - pass.spent;
32
16
  if (request.amount > remaining) {
33
17
  return { allowed: false, requiresEscalation: false, reason: `Insufficient budget. Remaining: ${remaining} MIST` };
34
18
  }
35
- // Rule 5 — must not exceed per-transaction limit (if set)
36
19
  if (pass.config.maxPerTransaction !== undefined && request.amount > pass.config.maxPerTransaction) {
37
20
  return { allowed: false, requiresEscalation: false, reason: `Amount exceeds per-transaction limit of ${pass.config.maxPerTransaction} MIST` };
38
21
  }
39
- // Rule 6 — escalate if above escalation threshold
40
22
  if (request.amount > pass.config.escalateThreshold) {
41
23
  return { allowed: true, requiresEscalation: true, reason: `Amount exceeds escalation threshold of ${pass.config.escalateThreshold} MIST` };
42
24
  }
43
- // Rule 7 — auto-approve
44
25
  return { allowed: true, requiresEscalation: false, reason: 'Auto-approved' };
45
26
  }
46
- /**
47
- * Simulate a sequence of transactions against an EdgePass.
48
- * Zero network calls. Returns predicted outcomes for all decisions
49
- * including projected budget state after each step.
50
- *
51
- * @example
52
- * const plan = sdk.simulate(pass, claudeDecisions);
53
- * console.log(plan.approved.length); // decisions that will execute
54
- * console.log(plan.blocked.length); // decisions that will be rejected
55
- * console.log(plan.utilizationPct); // projected budget usage
56
- *
57
- * // Show plan to user, then execute approved decisions
58
- * for (const decision of plan.approved) {
59
- * await sdk.execute(pass, decision.request, signer);
60
- * }
61
- */
62
27
  static simulate(pass, requests) {
63
28
  const decisions = [];
64
29
  let projectedSpent = pass.spent;
65
30
  for (const request of requests) {
66
- // Create a projected pass with current projected spent for validation
67
31
  const projectedPass = {
68
32
  ...pass,
69
33
  spent: projectedSpent,
@@ -76,28 +40,26 @@ class PolicyEngine {
76
40
  }
77
41
  else if (validation.requiresEscalation) {
78
42
  outcome = 'escalated';
79
- // Escalated decisions don't spend budget until approved
80
43
  }
81
44
  else {
82
45
  outcome = 'approved';
83
46
  nextSpent = projectedSpent + request.amount;
84
47
  }
85
- const decision = {
48
+ decisions.push({
86
49
  request,
87
50
  outcome,
88
51
  reason: validation.reason,
89
52
  projectedSpent: nextSpent,
90
53
  projectedRemaining: pass.config.budget - nextSpent,
91
- };
92
- decisions.push(decision);
54
+ });
93
55
  projectedSpent = nextSpent;
94
56
  }
95
57
  const approved = decisions.filter(d => d.outcome === 'approved');
96
58
  const blocked = decisions.filter(d => d.outcome === 'blocked');
97
59
  const escalated = decisions.filter(d => d.outcome === 'escalated');
98
- const totalSpend = approved.reduce((sum, d) => sum + d.request.amount, 0n);
60
+ const totalSpend = approved.reduce((sum, d) => sum + d.request.amount, BigInt(0));
99
61
  const remainingBudget = pass.config.budget - pass.spent - totalSpend;
100
- const utilizationPct = Number((pass.spent + totalSpend) * 100n / pass.config.budget);
62
+ const utilizationPct = Number((pass.spent + totalSpend) * BigInt(100) / pass.config.budget);
101
63
  return {
102
64
  decisions,
103
65
  approved,
@@ -114,49 +76,20 @@ class PolicyEngine {
114
76
  },
115
77
  };
116
78
  }
117
- /**
118
- * Returns true if the pass is active and not expired.
119
- */
120
79
  static isValid(pass) {
121
80
  return pass.active && Date.now() <= pass.expiresAt;
122
81
  }
123
- /**
124
- * Returns the remaining budget in MIST.
125
- */
126
82
  static remainingBudget(pass) {
127
83
  return pass.config.budget - pass.spent;
128
84
  }
129
- /**
130
- * Returns budget utilization as a percentage (0-100).
131
- *
132
- * @example
133
- * const pct = sdk.utilizationPct(pass);
134
- * if (pct > 80) warnUser('Running low on budget');
135
- */
136
85
  static utilizationPct(pass) {
137
- if (pass.config.budget === 0n)
86
+ if (pass.config.budget === BigInt(0))
138
87
  return 0;
139
- return Number(pass.spent * 100n / pass.config.budget);
88
+ return Number(pass.spent * BigInt(100) / pass.config.budget);
140
89
  }
141
- /**
142
- * Returns true if budget utilization exceeds the given threshold.
143
- * Default threshold is 80%.
144
- *
145
- * @example
146
- * if (sdk.isNearLimit(pass)) notifyUser('Budget nearly exhausted');
147
- * if (sdk.isNearLimit(pass, 0.5)) notifyUser('Halfway through budget');
148
- */
149
90
  static isNearLimit(pass, threshold = 0.8) {
150
91
  return PolicyEngine.utilizationPct(pass) >= threshold * 100;
151
92
  }
152
- /**
153
- * Returns a complete budget status snapshot.
154
- *
155
- * @example
156
- * const status = sdk.budgetStatus(pass);
157
- * if (status.isExhausted) stopAgent();
158
- * if (status.isNearLimit) notifyUser(`${status.utilizationPct}% spent`);
159
- */
160
93
  static budgetStatus(pass, nearLimitThreshold = 0.8) {
161
94
  const remaining = pass.config.budget - pass.spent;
162
95
  const utilizationPct = PolicyEngine.utilizationPct(pass);
@@ -166,23 +99,12 @@ class PolicyEngine {
166
99
  remaining,
167
100
  utilizationPct,
168
101
  isNearLimit: utilizationPct >= nearLimitThreshold * 100,
169
- isExhausted: remaining === 0n,
102
+ isExhausted: remaining === BigInt(0),
170
103
  };
171
104
  }
172
- /**
173
- * Returns the time remaining on the pass in milliseconds.
174
- * Returns 0 if expired.
175
- */
176
105
  static timeRemaining(pass) {
177
106
  return Math.max(0, pass.expiresAt - Date.now());
178
107
  }
179
- /**
180
- * Returns true if the pass will expire within the given window.
181
- * Default window is 1 hour.
182
- *
183
- * @example
184
- * if (sdk.isExpiringSoon(pass)) notifyUser('Pass expires in less than 1 hour');
185
- */
186
108
  static isExpiringSoon(pass, withinMs = 60 * 60 * 1000) {
187
109
  const remaining = PolicyEngine.timeRemaining(pass);
188
110
  return remaining > 0 && remaining <= withinMs;
@@ -1 +1 @@
1
- {"version":3,"file":"PolicyEngine.js","sourceRoot":"","sources":["../../src/core/PolicyEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PolicyEngine.js","sourceRoot":"","sources":["../../src/core/PolicyEngine.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edge-protocol/sdk",
3
- "version": "0.9.1",
3
+ "version": "0.9.2",
4
4
  "description": "Programmable trust infrastructure for autonomous AI agents on Sui. Give agents your rules, not your keys.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",