@decentrys/agent 0.1.0 → 0.1.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.
- package/README.md +240 -32
- package/dist/browser/decentrys-agent.js +2 -2
- package/dist/browser/decentrys-agent.mjs +2 -2
- package/dist/client.d.ts +8 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +8 -1
- package/dist/client.js.map +1 -1
- package/dist/model.d.ts +3 -2
- package/dist/model.d.ts.map +1 -1
- package/dist/model.js.map +1 -1
- package/package.json +2 -2
- package/src/client.ts +8 -1
- package/src/model.ts +3 -2
package/README.md
CHANGED
|
@@ -1,62 +1,270 @@
|
|
|
1
1
|
# @decentrys/agent
|
|
2
2
|
|
|
3
|
-
AgentGuard:
|
|
3
|
+
**AgentGuard: stops an autonomous agent doing something its operator never authorised.**
|
|
4
|
+
|
|
5
|
+
## Why this exists separately from @decentrys/protect
|
|
6
|
+
|
|
7
|
+
Protect informs a human, who then decides. An agent has no judgement and will do
|
|
8
|
+
exactly what it is told, at machine speed, repeatedly. A person seeing
|
|
9
|
+
"unlimited approval requested" may reconsider; an agent will not.
|
|
10
|
+
|
|
11
|
+
So where Protect warns and never blocks, AgentGuard exists to be able to
|
|
12
|
+
**stop** an action — under a policy its operator set in advance.
|
|
4
13
|
|
|
5
14
|
## Install
|
|
6
15
|
|
|
7
16
|
```bash
|
|
8
|
-
npm install @decentrys/agent
|
|
17
|
+
npm install @decentrys/agent
|
|
9
18
|
```
|
|
10
19
|
|
|
11
|
-
|
|
20
|
+
`@decentrys/protect` is a dependency and is installed with it; the risk model
|
|
21
|
+
is not reimplemented here. Node 18+. Types included.
|
|
12
22
|
|
|
13
|
-
|
|
14
|
-
do exactly what it is told, at machine speed, repeatedly. A person seeing
|
|
15
|
-
"unlimited approval requested" may reconsider; an agent will not.
|
|
23
|
+
## Getting an API key
|
|
16
24
|
|
|
17
|
-
|
|
18
|
-
|
|
25
|
+
Sign in at [decentrys.com/developers](https://decentrys.com/developers) and create a key.
|
|
26
|
+
|
|
27
|
+
| Prefix | Where it belongs | Why |
|
|
28
|
+
|---|---|---|
|
|
29
|
+
| `dk_pub_live_…` | **Publishable.** Ships inside a wallet, extension or mobile app. | Bounded to the origins you register and to read-only Protect endpoints. Anyone can extract it from your bundle; that's expected, and it's why it can't do anything dangerous. |
|
|
30
|
+
| `dk_live_…` | **Secret.** Server-side only. | Full scope access. If this ends up in a client bundle it is a leaked credential the moment it ships. |
|
|
31
|
+
|
|
32
|
+
**Secret key only.** An agent runtime is server-side.
|
|
33
|
+
|
|
34
|
+
## 1. The operator writes a policy, ahead of time
|
|
19
35
|
|
|
20
36
|
```ts
|
|
37
|
+
import { AgentGuard, sealPolicy } from '@decentrys/agent';
|
|
38
|
+
|
|
21
39
|
const policy = sealPolicy({
|
|
40
|
+
version: 'treasury-rebalancer-3', // recorded on every decision
|
|
41
|
+
agentId: 'rebalancer-1', // this policy is not another agent's
|
|
42
|
+
|
|
22
43
|
maxValuePerActionUsd: 5_000,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
44
|
+
spendWindows: [{ label: 'daily', windowMs: 86_400_000, maxValueUsd: 25_000 }],
|
|
45
|
+
rateWindows: [{ label: 'per-minute', windowMs: 60_000, maxActions: 10 }],
|
|
46
|
+
|
|
47
|
+
allowedActions: ['swap', 'transfer'], // may swap, may NOT approve
|
|
48
|
+
allowedChains: ['ethereum', 'base'],
|
|
49
|
+
blockedCounterparties: ['0xbad…'],
|
|
50
|
+
allowUnlimitedApprovals: false, // this is already the default
|
|
51
|
+
|
|
52
|
+
maxRiskLevel: 'CAUTION', // deny anything strictly above
|
|
53
|
+
humanApprovalAboveUsd: 10_000,
|
|
54
|
+
failMode: 'escalate',
|
|
26
55
|
});
|
|
27
56
|
|
|
28
|
-
const guard = new AgentGuard({ apiKey:
|
|
29
|
-
const decision = await guard.assessAgentTransaction(action);
|
|
57
|
+
const guard = new AgentGuard({ apiKey: process.env.DECENTRYS_API_KEY!, policy });
|
|
30
58
|
|
|
31
|
-
|
|
32
|
-
decision.evaluations // every rule considered, passes included
|
|
59
|
+
for (const warning of guard.policyWarnings) console.warn(warning);
|
|
33
60
|
```
|
|
34
61
|
|
|
35
|
-
|
|
62
|
+
Every field is optional, and an omitted field means *unconstrained on that
|
|
63
|
+
axis* — with one exception: `allowUnlimitedApprovals` defaults to refusing,
|
|
64
|
+
because an unlimited approval is the one action that turns a bounded mistake
|
|
65
|
+
into an unbounded one.
|
|
66
|
+
|
|
67
|
+
`sealPolicy` deep-freezes the object, clones your arrays away from you, and
|
|
68
|
+
brands the result with a module-private symbol. `AgentGuard` accepts nothing
|
|
69
|
+
else, so a policy the agent constructed does not typecheck and would not
|
|
70
|
+
survive sealing if it did.
|
|
71
|
+
|
|
72
|
+
Full field list: `version` · `agentId` · `risk` · `maxRiskLevel` ·
|
|
73
|
+
`maxValuePerActionUsd` · `spendWindows` · `rateWindows` ·
|
|
74
|
+
`allowedCounterparties` · `blockedCounterparties` · `allowedContracts` ·
|
|
75
|
+
`allowedTokens` · `allowedActions` · `deniedActions` · `allowedChains` ·
|
|
76
|
+
`allowUnlimitedApprovals` · `humanApprovalAboveUsd` ·
|
|
77
|
+
`humanApprovalAtRiskLevel` · `failMode`.
|
|
36
78
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
`narrowPolicy` only ever tightens.
|
|
79
|
+
Action types: `transfer` · `swap` · `approve` · `contract_call` · `bridge` ·
|
|
80
|
+
`stake` · `unstake` · `deploy` · `sign_message` · `unknown`.
|
|
40
81
|
|
|
41
|
-
##
|
|
82
|
+
## 2. The agent's execution loop asks before it signs
|
|
83
|
+
|
|
84
|
+
```ts
|
|
85
|
+
const decision = await guard.assessAgentTransaction({
|
|
86
|
+
agentId: 'rebalancer-1', // required — limits are held per agent, not per process
|
|
87
|
+
chain: 'ethereum',
|
|
88
|
+
type: 'swap', // an AgentActionType, not a free string
|
|
89
|
+
from: agentWallet,
|
|
90
|
+
to: routerAddress,
|
|
91
|
+
valueUsd: 2_500, // as YOU price it; AgentGuard never prices anything
|
|
92
|
+
idempotencyKey: taskId, // a retry is one action, not two
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
switch (decision.verdict) {
|
|
96
|
+
case 'allow': {
|
|
97
|
+
try {
|
|
98
|
+
const txHash = await signAndSend();
|
|
99
|
+
guard.confirm(decision.decisionId, { txHash }); // the hold becomes a commitment
|
|
100
|
+
} catch {
|
|
101
|
+
guard.release(decision.decisionId, { note: 'broadcast failed' }); // hand the budget back
|
|
102
|
+
}
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
case 'require_human_approval':
|
|
107
|
+
await notifyOperator(guard.explain(decision));
|
|
108
|
+
break;
|
|
109
|
+
|
|
110
|
+
case 'deny':
|
|
111
|
+
console.error(guard.explain(decision)?.text);
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
`confirm` and `release` take the **`decisionId`**, not the decision object, and
|
|
117
|
+
are synchronous — they return an `AgentOutcomeRecord | null`, `null` when this
|
|
118
|
+
guard holds no reservation for that id.
|
|
119
|
+
|
|
120
|
+
Three verdicts, not two. Protect's `warn` has no recipient here — there's no
|
|
121
|
+
human watching — so `sealPolicy` **throws** if a `risk` map contains `warn` or
|
|
122
|
+
`warn_strong`, rather than silently reinterpreting it.
|
|
123
|
+
|
|
124
|
+
## 3. The agent cannot widen its own limits
|
|
125
|
+
|
|
126
|
+
**There is no widening function in this package.** `narrowPolicy` only ever
|
|
127
|
+
tightens: minimum of caps, intersection of allowlists, union of blocklists,
|
|
128
|
+
windows accumulated, `allowUnlimitedApprovals` true only if both sides say so,
|
|
129
|
+
and the stricter `failMode`.
|
|
130
|
+
|
|
131
|
+
```ts
|
|
132
|
+
// A guard for a narrower sub-task, sharing this one's ledger and Protect client.
|
|
133
|
+
const subTask = guard.withPolicy({ maxValuePerActionUsd: 500, allowedActions: ['swap'] });
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
`withPolicy` takes a plain `AgentPolicy` restriction and narrows internally —
|
|
137
|
+
don't pre-apply `narrowPolicy` yourself. The shared ledger is the point: a
|
|
138
|
+
sub-task spending against a tighter per-task cap still spends against the
|
|
139
|
+
agent's daily one.
|
|
140
|
+
|
|
141
|
+
A per-call restriction works the same way and is equally one-directional:
|
|
142
|
+
|
|
143
|
+
```ts
|
|
144
|
+
await guard.assessAgentTransaction(action, { restrict: { maxValuePerActionUsd: 100 } });
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## 4. Every allow is explainable afterwards
|
|
148
|
+
|
|
149
|
+
```ts
|
|
150
|
+
decision.evaluations // EVERY rule considered, passes included
|
|
151
|
+
decision.reasons // the failing and escalating ones
|
|
152
|
+
decision.policyFingerprint // which rules were in force
|
|
153
|
+
decision.actionDigest // ties the record to what was proposed
|
|
154
|
+
decision.assessment // the Protect assessment used, when one was obtained
|
|
155
|
+
|
|
156
|
+
const explanation = guard.explain(decision); // AgentActionExplanation | null
|
|
157
|
+
explanation?.headline; // one sentence: what happened, and at the top level why
|
|
158
|
+
explanation?.because; // the rules that blocked or escalated, in their own words
|
|
159
|
+
explanation?.rulesApplied; // all of them
|
|
160
|
+
explanation?.unbounded; // axes this policy set no bound on at all
|
|
161
|
+
explanation?.toProceed; // what the OPERATOR would have to change
|
|
162
|
+
explanation?.text; // plain-text rendering, for a log line or a review queue
|
|
163
|
+
|
|
164
|
+
guard.auditLog({ verdict: 'deny' }); // in memory, bounded, dies with the process
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Evaluation never short-circuits, so a record can't say "exceeded its cap" while
|
|
168
|
+
omitting "and the counterparty was a confirmed drainer". `not_configured` is
|
|
169
|
+
distinguished from `not_applicable`, so you can see which axes your policy left
|
|
170
|
+
**unbounded** — the difference between "the rate ceiling was checked" and "there
|
|
171
|
+
is no rate ceiling".
|
|
172
|
+
|
|
173
|
+
`auditLog()` is a convenience, not an audit trail. For one that survives a
|
|
174
|
+
restart, pass `onDecision` — invoked synchronously for every decision, with its
|
|
175
|
+
exceptions swallowed so a logging sink can never change a verdict:
|
|
176
|
+
|
|
177
|
+
```ts
|
|
178
|
+
new AgentGuard({ apiKey, policy, onDecision: (d) => writeAuditRow(d) });
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
`evaluatePolicy` is pure and clock-injected, and a decision carries its policy
|
|
182
|
+
fingerprint and action digest, so a recorded decision replays to the same
|
|
183
|
+
answer. `guard.evaluate(action, { assessment })` runs the same rules with no
|
|
184
|
+
network call.
|
|
185
|
+
|
|
186
|
+
## failMode defaults to `escalate`
|
|
42
187
|
|
|
43
188
|
`open` signs unscreened during exactly the window an attacker would choose.
|
|
44
|
-
`closed` halts the agent entirely
|
|
45
|
-
|
|
46
|
-
attention instead of the treasury.
|
|
47
|
-
|
|
189
|
+
`closed` halts the agent entirely — for a liquidation agent that's its own loss,
|
|
190
|
+
and it pressures operators into choosing `open`. `escalate` spends a human's
|
|
191
|
+
attention instead of the treasury.
|
|
192
|
+
|
|
193
|
+
An outage removes one input but **never suspends your limits**: a local `deny`
|
|
194
|
+
still denies under `failMode: 'open'`.
|
|
195
|
+
|
|
196
|
+
The default risk mapping for an agent (`DEFAULT_AGENT_RISK_POLICY`, exported)
|
|
197
|
+
allows up to `CAUTION`, escalates `ELEVATED_RISK` through `CRITICAL_THREAT` to
|
|
198
|
+
a person, and denies `KNOWN_MALICIOUS` — the one level requiring
|
|
199
|
+
analyst-verified evidence, and one no value justifies signing to.
|
|
48
200
|
|
|
49
|
-
##
|
|
201
|
+
## Three behaviours worth knowing before you ship
|
|
50
202
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
203
|
+
**An unpriced action is denied** when any value rule exists — a per-action cap
|
|
204
|
+
or a spend window. Pass `valueUsd: 0` explicitly if an action genuinely moves
|
|
205
|
+
nothing. For an autonomous signer, "we couldn't price it" must not resolve to
|
|
206
|
+
"so we signed it".
|
|
207
|
+
|
|
208
|
+
**An empty allowlist denies everything**, rather than reading as unconfigured.
|
|
209
|
+
Otherwise `narrowPolicy` could *widen* a policy whenever two allowlists it
|
|
210
|
+
intersected had nothing in common.
|
|
211
|
+
|
|
212
|
+
**An approval with no stated `approvalAmount` is denied.** The size of an
|
|
213
|
+
allowance is the whole of what is being granted, and `unlimited`, `max`, or any
|
|
214
|
+
number at or above 2²⁵⁵ counts as unlimited.
|
|
215
|
+
|
|
216
|
+
## Known limit: the ledger is in-process
|
|
217
|
+
|
|
218
|
+
The bundled `SpendLedger` is **in-process and in-memory**. Two replicas each
|
|
219
|
+
enforcing $10,000/day enforce $20,000 between them, and a restart resets the
|
|
220
|
+
window to zero. Do not deploy a fleet behind it and describe the cap as
|
|
221
|
+
enforced.
|
|
222
|
+
|
|
223
|
+
Fixing it needs no rewrite. `evaluatePolicy` depends only on the two-method
|
|
224
|
+
`AgentUsage` interface, so a Redis- or Postgres-backed implementation replaces
|
|
225
|
+
the class entirely:
|
|
226
|
+
|
|
227
|
+
```ts
|
|
228
|
+
import { AgentGuard, type AgentUsage } from '@decentrys/agent';
|
|
229
|
+
|
|
230
|
+
const shared: AgentUsage = {
|
|
231
|
+
spentUsdSince: (agentId, sinceMs) => /* … */ 0,
|
|
232
|
+
actionsSince: (agentId, sinceMs) => /* … */ 0,
|
|
233
|
+
};
|
|
234
|
+
|
|
235
|
+
const guard = new AgentGuard({ apiKey, policy, ledger: shared });
|
|
236
|
+
guard.reservesBudget; // false — a read-only source cannot take holds
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Implement `ReservationLedger` (`reserve` / `confirm` / `release` on top of
|
|
240
|
+
`AgentUsage`) to keep holds, and `reservesBudget` reports `true`. With a
|
|
241
|
+
read-only source, cumulative caps count settled history only, so two concurrent
|
|
242
|
+
actions that each fit alone can both be admitted.
|
|
243
|
+
|
|
244
|
+
## Errors
|
|
245
|
+
|
|
246
|
+
Nothing on the call path throws — an exception thrown at an agent is a
|
|
247
|
+
condition it handles by retrying, or by taking the branch that skips the guard.
|
|
248
|
+
A `deny` it must read is harder to route around.
|
|
249
|
+
|
|
250
|
+
The constructor throws, on an unsealed policy or on neither an `apiKey` nor a
|
|
251
|
+
`protect` client being supplied. `sealPolicy` throws on a `warn` action, and
|
|
252
|
+
`narrowPolicy` throws when two policies are bound to different agents. All of
|
|
253
|
+
those are wiring errors a human makes at deploy time.
|
|
254
|
+
|
|
255
|
+
## The rest of the SDK
|
|
256
|
+
|
|
257
|
+
| Package | For |
|
|
258
|
+
|---|---|
|
|
259
|
+
| [`@decentrys/protect`](https://www.npmjs.com/package/@decentrys/protect) | Pre-sign risk assessment for wallets and dapps |
|
|
260
|
+
| [`@decentrys/ui-sdk`](https://www.npmjs.com/package/@decentrys/ui-sdk) | React components that render Protect results |
|
|
261
|
+
| [`@decentrys/sentinel-sdk`](https://www.npmjs.com/package/@decentrys/sentinel-sdk) | Monitoring deployed contracts and treasuries |
|
|
262
|
+
| [`@decentrys/risk-sdk`](https://www.npmjs.com/package/@decentrys/risk-sdk) | Screening for exchanges and custodians |
|
|
263
|
+
| [`@decentrys/dri-sdk`](https://www.npmjs.com/package/@decentrys/dri-sdk) | Fund tracing and recovery intelligence |
|
|
264
|
+
| [`@decentrys/agent`](https://www.npmjs.com/package/@decentrys/agent) | Policy enforcement for autonomous agents |
|
|
54
265
|
|
|
55
266
|
## Licence
|
|
56
267
|
|
|
57
268
|
MIT © Decentrys Labs
|
|
58
269
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
- [decentrys.com](https://decentrys.com) · [SDK overview](https://decentrys.com/sdk) · [Developer API](https://decentrys.com/developers)
|
|
62
|
-
- Source: [github.com/teamdecentrys-byte/Decentrys](https://github.com/teamdecentrys-byte/Decentrys)
|
|
270
|
+
[decentrys.com](https://decentrys.com) · [SDK overview](https://decentrys.com/sdk) · [Developer API](https://decentrys.com/developers) · [Source](https://github.com/teamdecentrys-byte/Decentrys)
|
|
@@ -639,7 +639,7 @@ var DecentrysAgent = (() => {
|
|
|
639
639
|
function cacheKey(kind, parts) {
|
|
640
640
|
return [kind, ...parts.map((p) => p === void 0 || p === null ? "" : String(p))].join("|");
|
|
641
641
|
}
|
|
642
|
-
var SDK_VERSION = "0.1.
|
|
642
|
+
var SDK_VERSION = "0.1.2";
|
|
643
643
|
var DEFAULT_BASE_URL = "https://api.decentrys.com";
|
|
644
644
|
var DEFAULT_TIMEOUT_MS = 4e3;
|
|
645
645
|
var DEFAULT_CACHE_TTL_MS = 12e4;
|
|
@@ -1803,7 +1803,7 @@ var DecentrysAgent = (() => {
|
|
|
1803
1803
|
}
|
|
1804
1804
|
|
|
1805
1805
|
// src/client.ts
|
|
1806
|
-
var AGENT_SDK_VERSION = "0.1.
|
|
1806
|
+
var AGENT_SDK_VERSION = "0.1.2";
|
|
1807
1807
|
var DEFAULT_AUDIT_LOG_ENTRIES = 1e3;
|
|
1808
1808
|
var AgentGuard = class _AgentGuard {
|
|
1809
1809
|
protect;
|
|
@@ -597,7 +597,7 @@ var TtlCache = class {
|
|
|
597
597
|
function cacheKey(kind, parts) {
|
|
598
598
|
return [kind, ...parts.map((p) => p === void 0 || p === null ? "" : String(p))].join("|");
|
|
599
599
|
}
|
|
600
|
-
var SDK_VERSION = "0.1.
|
|
600
|
+
var SDK_VERSION = "0.1.2";
|
|
601
601
|
var DEFAULT_BASE_URL = "https://api.decentrys.com";
|
|
602
602
|
var DEFAULT_TIMEOUT_MS = 4e3;
|
|
603
603
|
var DEFAULT_CACHE_TTL_MS = 12e4;
|
|
@@ -1761,7 +1761,7 @@ function symbolFor(outcome) {
|
|
|
1761
1761
|
}
|
|
1762
1762
|
|
|
1763
1763
|
// src/client.ts
|
|
1764
|
-
var AGENT_SDK_VERSION = "0.1.
|
|
1764
|
+
var AGENT_SDK_VERSION = "0.1.2";
|
|
1765
1765
|
var DEFAULT_AUDIT_LOG_ENTRIES = 1e3;
|
|
1766
1766
|
var AgentGuard = class _AgentGuard {
|
|
1767
1767
|
protect;
|
package/dist/client.d.ts
CHANGED
|
@@ -24,7 +24,14 @@ import type { AgentAction, AgentDecision, AgentOutcomeRecord, AgentPolicy } from
|
|
|
24
24
|
import { type SealedPolicy } from './policy';
|
|
25
25
|
import { type AgentUsage, type ReservationLedger } from './ledger';
|
|
26
26
|
import { type AgentActionExplanation } from './explain';
|
|
27
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Sent in the user-agent on every request.
|
|
29
|
+
*
|
|
30
|
+
* Kept in step with package.json by hand — it drifted once already, and a
|
|
31
|
+
* stale value here silently under-reports the real version in server-side
|
|
32
|
+
* telemetry rather than failing in any visible way.
|
|
33
|
+
*/
|
|
34
|
+
export declare const AGENT_SDK_VERSION = "0.1.2";
|
|
28
35
|
export interface AgentGuardConfig {
|
|
29
36
|
/**
|
|
30
37
|
* The operator's policy, already sealed.
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/client.js
CHANGED
|
@@ -27,7 +27,14 @@ const protect_1 = require("@decentrys/protect");
|
|
|
27
27
|
const policy_1 = require("./policy");
|
|
28
28
|
const ledger_1 = require("./ledger");
|
|
29
29
|
const explain_1 = require("./explain");
|
|
30
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Sent in the user-agent on every request.
|
|
32
|
+
*
|
|
33
|
+
* Kept in step with package.json by hand — it drifted once already, and a
|
|
34
|
+
* stale value here silently under-reports the real version in server-side
|
|
35
|
+
* telemetry rather than failing in any visible way.
|
|
36
|
+
*/
|
|
37
|
+
exports.AGENT_SDK_VERSION = '0.1.2';
|
|
31
38
|
const DEFAULT_AUDIT_LOG_ENTRIES = 1_000;
|
|
32
39
|
class AgentGuard {
|
|
33
40
|
protect;
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/model.d.ts
CHANGED
|
@@ -59,8 +59,9 @@ export interface AgentAction {
|
|
|
59
59
|
* **`undefined` is not zero.** An action with no value at all (a message
|
|
60
60
|
* signature, a zero-value call) should say `0`; leaving this out means "I do
|
|
61
61
|
* not know what this is worth", and a value cap cannot be enforced against
|
|
62
|
-
* an unknown
|
|
63
|
-
*
|
|
62
|
+
* an unknown, so `evaluatePolicy` denies the action whenever any value rule
|
|
63
|
+
* is configured. For an autonomous signer, "we could not price it" must not
|
|
64
|
+
* resolve to "so we signed it".
|
|
64
65
|
*
|
|
65
66
|
* AgentGuard never prices anything itself. Pricing belongs to whoever runs
|
|
66
67
|
* the agent, with the feed and the staleness rules they are willing to be
|
package/dist/model.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAExE,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AAMjD;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,8HAWrB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,MAAM,WAAW,WAAW;IAC1B,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,eAAe,CAAC;IACtB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":"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"}
|
package/dist/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;;;AAIU,QAAA,mBAAmB,GAAG,aAAa,CAAC;AAEjD,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E;;;;;;;GAOG;AACU,QAAA,kBAAkB,GAAG;IAChC,UAAU;IACV,MAAM;IACN,SAAS;IACT,eAAe;IACf,QAAQ;IACR,OAAO;IACP,SAAS;IACT,QAAQ;IACR,cAAc;IACd,SAAS;CACD,CAAC;
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../src/model.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;;;AAIU,QAAA,mBAAmB,GAAG,aAAa,CAAC;AAEjD,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E;AAE9E;;;;;;;GAOG;AACU,QAAA,kBAAkB,GAAG;IAChC,UAAU;IACV,MAAM;IACN,SAAS;IACT,eAAe;IACf,QAAQ;IACR,OAAO;IACP,SAAS;IACT,QAAQ;IACR,cAAc;IACd,SAAS;CACD,CAAC;AAsLX,gFAAgF;AACnE,QAAA,WAAW,GAAG;IACzB,eAAe;IACf,aAAa;IACb,OAAO;IACP,cAAc;IACd,UAAU;IACV,OAAO;IACP,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,YAAY;IACZ,YAAY;IACZ,yBAAyB;IACzB,0BAA0B;CAClB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decentrys/agent",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "AgentGuard: policy enforcement in front of an autonomous on-chain agent. An agent cannot widen the limits its operator set.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Decentrys Labs",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"README.md"
|
|
50
50
|
],
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@decentrys/protect": "0.1.
|
|
52
|
+
"@decentrys/protect": "0.1.2"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
55
55
|
"typescript": "^5.7.2",
|
package/src/client.ts
CHANGED
|
@@ -32,7 +32,14 @@ import {
|
|
|
32
32
|
} from './ledger';
|
|
33
33
|
import { type AgentActionExplanation, explainAgentAction } from './explain';
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
/**
|
|
36
|
+
* Sent in the user-agent on every request.
|
|
37
|
+
*
|
|
38
|
+
* Kept in step with package.json by hand — it drifted once already, and a
|
|
39
|
+
* stale value here silently under-reports the real version in server-side
|
|
40
|
+
* telemetry rather than failing in any visible way.
|
|
41
|
+
*/
|
|
42
|
+
export const AGENT_SDK_VERSION = '0.1.2';
|
|
36
43
|
|
|
37
44
|
const DEFAULT_AUDIT_LOG_ENTRIES = 1_000;
|
|
38
45
|
|
package/src/model.ts
CHANGED
|
@@ -78,8 +78,9 @@ export interface AgentAction {
|
|
|
78
78
|
* **`undefined` is not zero.** An action with no value at all (a message
|
|
79
79
|
* signature, a zero-value call) should say `0`; leaving this out means "I do
|
|
80
80
|
* not know what this is worth", and a value cap cannot be enforced against
|
|
81
|
-
* an unknown
|
|
82
|
-
*
|
|
81
|
+
* an unknown, so `evaluatePolicy` denies the action whenever any value rule
|
|
82
|
+
* is configured. For an autonomous signer, "we could not price it" must not
|
|
83
|
+
* resolve to "so we signed it".
|
|
83
84
|
*
|
|
84
85
|
* AgentGuard never prices anything itself. Pricing belongs to whoever runs
|
|
85
86
|
* the agent, with the feed and the staleness rules they are willing to be
|