@axonflow/openclaw 1.2.3 → 1.3.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/CHANGELOG.md +38 -0
- package/README.md +21 -9
- package/dist/axonflow-client.d.ts +87 -0
- package/dist/axonflow-client.d.ts.map +1 -1
- package/dist/axonflow-client.js +147 -0
- package/dist/axonflow-client.js.map +1 -1
- package/dist/governance.d.ts +15 -1
- package/dist/governance.d.ts.map +1 -1
- package/dist/governance.js +49 -3
- package/dist/governance.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.3.0] - 2026-04-18
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
- **`client.explainDecision(decisionId)`** — programmatic access to the full
|
|
8
|
+
decision explanation (matched policies, risk level, reason, override
|
|
9
|
+
availability, rolling-24h session hit count). Shape is frozen.
|
|
10
|
+
Returns null on 404 / network failure so callers can fall back to a
|
|
11
|
+
terse block message without crashing.
|
|
12
|
+
- **`client.createOverride({ policyId, policyType, overrideReason, toolSignature?, ttlSeconds? })`** —
|
|
13
|
+
creates a session-scoped override with a mandatory free-text justification.
|
|
14
|
+
Client-side validates the reason is non-empty; server enforces TTL clamping
|
|
15
|
+
(default 60m, hard cap 24h), critical-risk rejection, and the
|
|
16
|
+
`allow_override=false` contract.
|
|
17
|
+
- **`client.revokeOverride(overrideId)`** and **`client.listOverrides()`** —
|
|
18
|
+
round out the override CRUD surface for the upcoming CLI.
|
|
19
|
+
- **New types exported:** `DecisionExplanation`, `ExplainPolicy`, `ExplainRule`,
|
|
20
|
+
`CreateOverrideOptions`, `CreateOverrideResult`.
|
|
21
|
+
- **Richer `MCPCheckInputResponse` / `MCPCheckOutputResponse`** — surface
|
|
22
|
+
optional `decision_id`, `policy_matches`, `risk_level`, `override_available`,
|
|
23
|
+
`override_existing_id` fields when the platform is v7.1.0+. Older platforms
|
|
24
|
+
return undefined for these fields; callers should treat absence as "context
|
|
25
|
+
not available" rather than an error.
|
|
26
|
+
|
|
27
|
+
### Compatibility
|
|
28
|
+
|
|
29
|
+
Companion to platform v7.1.0 and all 4 SDKs at v5.4.0 / v6.4.0 (parity on
|
|
30
|
+
`decisions.explain` naming). Back-compatible with pre-v7.1.0 platforms —
|
|
31
|
+
new methods silently return empty/null where endpoints don't exist.
|
|
32
|
+
|
|
33
|
+
## [1.2.4] - 2026-04-14
|
|
34
|
+
|
|
35
|
+
### Documentation
|
|
36
|
+
|
|
37
|
+
- **README now reflects the verified-working install on OpenClaw 2026.4.14+.** v1.2.3 verified end-to-end that `openclaw plugins install @axonflow/openclaw` (and the `clawhub:@axonflow/openclaw` form) both work cleanly, but the README shipped with v1.2.3 still led with a "try this, might fail" framing and buried the primary command under a known-issue warning. Since README is the ClawHub listing page content, users saw instructions that contradicted actual behavior. v1.2.4 is a docs-only release that corrects the framing: primary command is shown unconditionally for 2026.4.14+, the older-CLI `npm pack` workaround is preserved inside a collapsed `<details>` block with affected-version context and an upgrade pointer.
|
|
38
|
+
|
|
39
|
+
No code changes.
|
|
40
|
+
|
|
3
41
|
## [1.2.3] - 2026-04-14
|
|
4
42
|
|
|
5
43
|
### Fixed
|
package/README.md
CHANGED
|
@@ -60,19 +60,31 @@ See [Getting Started](https://docs.getaxonflow.com/docs/getting-started/) for fu
|
|
|
60
60
|
|
|
61
61
|
Available on [ClawHub](https://clawhub.ai/plugins/%40axonflow%2Fopenclaw) and [npm](https://www.npmjs.com/package/@axonflow/openclaw).
|
|
62
62
|
|
|
63
|
+
**Recommended:**
|
|
64
|
+
|
|
63
65
|
```bash
|
|
64
66
|
openclaw plugins install @axonflow/openclaw
|
|
65
67
|
```
|
|
66
68
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
>
|
|
69
|
+
The `clawhub:@axonflow/openclaw` form also works if you prefer to be explicit about the source:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
openclaw plugins install clawhub:@axonflow/openclaw
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Requires OpenClaw **2026.4.14 or later**. If you are not on the latest, upgrade with `npm install -g openclaw@latest`.
|
|
76
|
+
|
|
77
|
+
<details>
|
|
78
|
+
<summary>On an older OpenClaw CLI? The old workaround is still needed.</summary>
|
|
79
|
+
|
|
80
|
+
OpenClaw versions before 2026.4.14 had a bug ([openclaw/openclaw#66618](https://github.com/openclaw/openclaw/issues/66618)) that made scoped packages fail with `ENOENT .../openclaw-clawhub-package-XXXXXX/@axonflow/openclaw.zip` — both forms of the install command hit it. The fix shipped in 2026.4.14. If you cannot upgrade, install from npm directly:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# Captures the exact tgz filename so a stale tgz in CWD doesn't get picked up
|
|
84
|
+
TGZ=$(npm pack @axonflow/openclaw 2>/dev/null | tail -1)
|
|
85
|
+
openclaw plugins install "./$TGZ"
|
|
86
|
+
```
|
|
87
|
+
</details>
|
|
76
88
|
|
|
77
89
|
For the full integration walkthrough (architecture, hook coverage, policy examples, troubleshooting), see the [OpenClaw Integration Guide](https://docs.getaxonflow.com/docs/integration/openclaw/).
|
|
78
90
|
|
|
@@ -26,12 +26,65 @@ export interface MCPCheckInputResponse {
|
|
|
26
26
|
allowed: boolean;
|
|
27
27
|
block_reason?: string;
|
|
28
28
|
policies_evaluated: number;
|
|
29
|
+
decision_id?: string;
|
|
30
|
+
policy_matches?: ExplainPolicy[];
|
|
31
|
+
risk_level?: string;
|
|
32
|
+
override_available?: boolean;
|
|
33
|
+
override_existing_id?: string;
|
|
29
34
|
}
|
|
30
35
|
export interface MCPCheckOutputResponse {
|
|
31
36
|
allowed: boolean;
|
|
32
37
|
block_reason?: string;
|
|
33
38
|
redacted_data?: unknown;
|
|
34
39
|
policies_evaluated: number;
|
|
40
|
+
decision_id?: string;
|
|
41
|
+
policy_matches?: ExplainPolicy[];
|
|
42
|
+
}
|
|
43
|
+
export interface ExplainPolicy {
|
|
44
|
+
policy_id: string;
|
|
45
|
+
policy_name?: string;
|
|
46
|
+
action?: string;
|
|
47
|
+
risk_level?: string;
|
|
48
|
+
allow_override?: boolean;
|
|
49
|
+
policy_description?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface ExplainRule {
|
|
52
|
+
policy_id: string;
|
|
53
|
+
rule_id?: string;
|
|
54
|
+
rule_text?: string;
|
|
55
|
+
matched_on?: string;
|
|
56
|
+
}
|
|
57
|
+
export interface DecisionExplanation {
|
|
58
|
+
decision_id: string;
|
|
59
|
+
timestamp: string;
|
|
60
|
+
policy_matches: ExplainPolicy[];
|
|
61
|
+
matched_rules?: ExplainRule[];
|
|
62
|
+
decision: string;
|
|
63
|
+
reason: string;
|
|
64
|
+
risk_level?: string;
|
|
65
|
+
override_available: boolean;
|
|
66
|
+
override_existing_id?: string;
|
|
67
|
+
historical_hit_count_session: number;
|
|
68
|
+
policy_source_link?: string;
|
|
69
|
+
tool_signature?: string;
|
|
70
|
+
}
|
|
71
|
+
export interface CreateOverrideOptions {
|
|
72
|
+
policyId: string;
|
|
73
|
+
policyType: "static" | "dynamic";
|
|
74
|
+
overrideReason: string;
|
|
75
|
+
toolSignature?: string;
|
|
76
|
+
ttlSeconds?: number;
|
|
77
|
+
}
|
|
78
|
+
export interface CreateOverrideResult {
|
|
79
|
+
id: string;
|
|
80
|
+
policy_id: string;
|
|
81
|
+
policy_type: string;
|
|
82
|
+
expires_at: string;
|
|
83
|
+
ttl_seconds: number;
|
|
84
|
+
requested_ttl?: number;
|
|
85
|
+
clamped?: boolean;
|
|
86
|
+
clamped_reason?: string;
|
|
87
|
+
created_at: string;
|
|
35
88
|
}
|
|
36
89
|
export declare class AxonFlowClient {
|
|
37
90
|
private readonly endpoint;
|
|
@@ -77,5 +130,39 @@ export declare class AxonFlowClient {
|
|
|
77
130
|
error?: string;
|
|
78
131
|
}>;
|
|
79
132
|
healthCheck(): Promise<boolean>;
|
|
133
|
+
/**
|
|
134
|
+
* Fetch the full explanation for a previously-made policy decision.
|
|
135
|
+
*
|
|
136
|
+
* Returns matched policies, risk level, override availability, rolling-24h
|
|
137
|
+
* session hit count, and policy source link. Shape is frozen per ADR-043.
|
|
138
|
+
*
|
|
139
|
+
* Used by the CLI `explain` command and by the plugin's own block-reason
|
|
140
|
+
* enrichment path. Errors are returned as null rather than thrown — the
|
|
141
|
+
* caller formats a user-friendly message.
|
|
142
|
+
*/
|
|
143
|
+
explainDecision(decisionId: string): Promise<DecisionExplanation | null>;
|
|
144
|
+
/**
|
|
145
|
+
* Create a session-scoped override for a policy the caller was blocked by.
|
|
146
|
+
*
|
|
147
|
+
* ADR-042 rules enforced server-side:
|
|
148
|
+
* - TTL clamped to [1min, 24h], default 60m.
|
|
149
|
+
* - Critical-risk policies rejected (403).
|
|
150
|
+
* - allow_override=false policies rejected (403).
|
|
151
|
+
* - Justification (overrideReason) is mandatory.
|
|
152
|
+
*
|
|
153
|
+
* Plugin does minimal client-side validation and lets the platform
|
|
154
|
+
* enforce invariants.
|
|
155
|
+
*/
|
|
156
|
+
createOverride(opts: CreateOverrideOptions): Promise<CreateOverrideResult>;
|
|
157
|
+
/** Revoke a previously-created override. */
|
|
158
|
+
revokeOverride(overrideId: string): Promise<void>;
|
|
159
|
+
/** List active overrides for the caller's tenant. */
|
|
160
|
+
listOverrides(options?: {
|
|
161
|
+
policyId?: string;
|
|
162
|
+
includeRevoked?: boolean;
|
|
163
|
+
}): Promise<{
|
|
164
|
+
overrides: Array<Record<string, unknown>>;
|
|
165
|
+
count: number;
|
|
166
|
+
}>;
|
|
80
167
|
}
|
|
81
168
|
//# sourceMappingURL=axonflow-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axonflow-client.d.ts","sourceRoot":"","sources":["../src/axonflow-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD;;;;;;;;;;GAUG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAG7C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,OAAO,EAAE,MAAM;CAalB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"axonflow-client.d.ts","sourceRoot":"","sources":["../src/axonflow-client.ts"],"names":[],"mappings":"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"}
|
package/dist/axonflow-client.js
CHANGED
|
@@ -32,6 +32,48 @@ export class AxonFlowHttpError extends Error {
|
|
|
32
32
|
Object.setPrototypeOf(this, AxonFlowHttpError.prototype);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Extract the Plugin Batch 1 (ADR-042 + ADR-043) richer governance context
|
|
37
|
+
* from a policy-check response. All fields are optional — older platforms
|
|
38
|
+
* (pre-v7.1.0) return undefined for every field, and callers treat absence
|
|
39
|
+
* as "context not available" rather than an error.
|
|
40
|
+
*
|
|
41
|
+
* Reviewer-caught regression: without this, the extended MCPCheckInputResponse
|
|
42
|
+
* / MCPCheckOutputResponse fields were declared but never populated, so
|
|
43
|
+
* governance.ts couldn't surface the richer reasoning even when the platform
|
|
44
|
+
* returned it.
|
|
45
|
+
*/
|
|
46
|
+
function extractRicherContext(data) {
|
|
47
|
+
const ctx = {};
|
|
48
|
+
if (typeof data["decision_id"] === "string" && data["decision_id"]) {
|
|
49
|
+
ctx.decision_id = data["decision_id"];
|
|
50
|
+
}
|
|
51
|
+
if (typeof data["risk_level"] === "string" && data["risk_level"]) {
|
|
52
|
+
ctx.risk_level = data["risk_level"];
|
|
53
|
+
}
|
|
54
|
+
if (typeof data["override_available"] === "boolean") {
|
|
55
|
+
ctx.override_available = data["override_available"];
|
|
56
|
+
}
|
|
57
|
+
if (typeof data["override_existing_id"] === "string" && data["override_existing_id"]) {
|
|
58
|
+
ctx.override_existing_id = data["override_existing_id"];
|
|
59
|
+
}
|
|
60
|
+
const rawMatches = data["policy_matches"];
|
|
61
|
+
if (Array.isArray(rawMatches)) {
|
|
62
|
+
ctx.policy_matches = rawMatches
|
|
63
|
+
.filter((m) => typeof m === "object" && m !== null)
|
|
64
|
+
.map((m) => ({
|
|
65
|
+
policy_id: typeof m["policy_id"] === "string" ? m["policy_id"] : "",
|
|
66
|
+
policy_name: typeof m["policy_name"] === "string" ? m["policy_name"] : undefined,
|
|
67
|
+
action: typeof m["action"] === "string" ? m["action"] : undefined,
|
|
68
|
+
risk_level: typeof m["risk_level"] === "string" ? m["risk_level"] : undefined,
|
|
69
|
+
allow_override: typeof m["allow_override"] === "boolean" ? m["allow_override"] : undefined,
|
|
70
|
+
policy_description: typeof m["policy_description"] === "string"
|
|
71
|
+
? m["policy_description"]
|
|
72
|
+
: undefined,
|
|
73
|
+
}));
|
|
74
|
+
}
|
|
75
|
+
return ctx;
|
|
76
|
+
}
|
|
35
77
|
/**
|
|
36
78
|
* Extract policies_evaluated count from API response.
|
|
37
79
|
* The platform returns this as a top-level number on 403 responses,
|
|
@@ -110,6 +152,7 @@ export class AxonFlowClient {
|
|
|
110
152
|
? data["error"]
|
|
111
153
|
: "Blocked by policy",
|
|
112
154
|
policies_evaluated: extractPoliciesEvaluated(data),
|
|
155
|
+
...extractRicherContext(data),
|
|
113
156
|
};
|
|
114
157
|
}
|
|
115
158
|
if (!response.ok) {
|
|
@@ -121,6 +164,7 @@ export class AxonFlowClient {
|
|
|
121
164
|
? data["block_reason"]
|
|
122
165
|
: undefined,
|
|
123
166
|
policies_evaluated: extractPoliciesEvaluated(data),
|
|
167
|
+
...extractRicherContext(data),
|
|
124
168
|
};
|
|
125
169
|
}
|
|
126
170
|
async mcpCheckOutput(connectorType, message) {
|
|
@@ -143,6 +187,7 @@ export class AxonFlowClient {
|
|
|
143
187
|
? data["error"]
|
|
144
188
|
: "Blocked by policy",
|
|
145
189
|
policies_evaluated: extractPoliciesEvaluated(data),
|
|
190
|
+
...extractRicherContext(data),
|
|
146
191
|
};
|
|
147
192
|
}
|
|
148
193
|
if (!response.ok) {
|
|
@@ -155,6 +200,7 @@ export class AxonFlowClient {
|
|
|
155
200
|
: undefined,
|
|
156
201
|
redacted_data: data["redacted_data"] ?? undefined,
|
|
157
202
|
policies_evaluated: extractPoliciesEvaluated(data),
|
|
203
|
+
...extractRicherContext(data),
|
|
158
204
|
};
|
|
159
205
|
}
|
|
160
206
|
/**
|
|
@@ -250,5 +296,106 @@ export class AxonFlowClient {
|
|
|
250
296
|
return false;
|
|
251
297
|
}
|
|
252
298
|
}
|
|
299
|
+
// ============================================================================
|
|
300
|
+
// Plugin Batch 1: ADR-042 session overrides + ADR-043 explain
|
|
301
|
+
// ============================================================================
|
|
302
|
+
/**
|
|
303
|
+
* Fetch the full explanation for a previously-made policy decision.
|
|
304
|
+
*
|
|
305
|
+
* Returns matched policies, risk level, override availability, rolling-24h
|
|
306
|
+
* session hit count, and policy source link. Shape is frozen per ADR-043.
|
|
307
|
+
*
|
|
308
|
+
* Used by the CLI `explain` command and by the plugin's own block-reason
|
|
309
|
+
* enrichment path. Errors are returned as null rather than thrown — the
|
|
310
|
+
* caller formats a user-friendly message.
|
|
311
|
+
*/
|
|
312
|
+
async explainDecision(decisionId) {
|
|
313
|
+
if (!decisionId)
|
|
314
|
+
return null;
|
|
315
|
+
const encoded = encodeURIComponent(decisionId);
|
|
316
|
+
const url = `${this.endpoint}/api/v1/decisions/${encoded}/explain`;
|
|
317
|
+
try {
|
|
318
|
+
const response = await this.fetchWithTimeout(url, {
|
|
319
|
+
method: "GET",
|
|
320
|
+
headers: this.baseHeaders(),
|
|
321
|
+
});
|
|
322
|
+
if (!response.ok) {
|
|
323
|
+
return null;
|
|
324
|
+
}
|
|
325
|
+
return (await response.json());
|
|
326
|
+
}
|
|
327
|
+
catch {
|
|
328
|
+
return null;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Create a session-scoped override for a policy the caller was blocked by.
|
|
333
|
+
*
|
|
334
|
+
* ADR-042 rules enforced server-side:
|
|
335
|
+
* - TTL clamped to [1min, 24h], default 60m.
|
|
336
|
+
* - Critical-risk policies rejected (403).
|
|
337
|
+
* - allow_override=false policies rejected (403).
|
|
338
|
+
* - Justification (overrideReason) is mandatory.
|
|
339
|
+
*
|
|
340
|
+
* Plugin does minimal client-side validation and lets the platform
|
|
341
|
+
* enforce invariants.
|
|
342
|
+
*/
|
|
343
|
+
async createOverride(opts) {
|
|
344
|
+
if (!opts.overrideReason || !opts.overrideReason.trim()) {
|
|
345
|
+
throw new Error("overrideReason is required (ADR-042: mandatory justification)");
|
|
346
|
+
}
|
|
347
|
+
const url = `${this.endpoint}/api/v1/overrides`;
|
|
348
|
+
const body = {
|
|
349
|
+
policy_id: opts.policyId,
|
|
350
|
+
policy_type: opts.policyType,
|
|
351
|
+
override_reason: opts.overrideReason,
|
|
352
|
+
};
|
|
353
|
+
if (opts.toolSignature)
|
|
354
|
+
body.tool_signature = opts.toolSignature;
|
|
355
|
+
if (opts.ttlSeconds !== undefined)
|
|
356
|
+
body.ttl_seconds = opts.ttlSeconds;
|
|
357
|
+
const response = await this.fetchWithTimeout(url, {
|
|
358
|
+
method: "POST",
|
|
359
|
+
headers: this.baseHeaders(),
|
|
360
|
+
body: JSON.stringify(body),
|
|
361
|
+
});
|
|
362
|
+
if (!response.ok) {
|
|
363
|
+
const text = await response.text();
|
|
364
|
+
throw new AxonFlowHttpError(response.status, response.statusText, { error: text }, "create override");
|
|
365
|
+
}
|
|
366
|
+
return (await response.json());
|
|
367
|
+
}
|
|
368
|
+
/** Revoke a previously-created override. */
|
|
369
|
+
async revokeOverride(overrideId) {
|
|
370
|
+
if (!overrideId)
|
|
371
|
+
throw new Error("overrideId is required");
|
|
372
|
+
const url = `${this.endpoint}/api/v1/overrides/${encodeURIComponent(overrideId)}`;
|
|
373
|
+
const response = await this.fetchWithTimeout(url, {
|
|
374
|
+
method: "DELETE",
|
|
375
|
+
headers: this.baseHeaders(),
|
|
376
|
+
});
|
|
377
|
+
if (!response.ok) {
|
|
378
|
+
const text = await response.text();
|
|
379
|
+
throw new AxonFlowHttpError(response.status, response.statusText, { error: text }, "revoke override");
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
/** List active overrides for the caller's tenant. */
|
|
383
|
+
async listOverrides(options) {
|
|
384
|
+
const params = new URLSearchParams();
|
|
385
|
+
if (options?.policyId)
|
|
386
|
+
params.set("policy_id", options.policyId);
|
|
387
|
+
if (options?.includeRevoked)
|
|
388
|
+
params.set("include_revoked", "true");
|
|
389
|
+
const qs = params.toString();
|
|
390
|
+
const url = `${this.endpoint}/api/v1/overrides${qs ? "?" + qs : ""}`;
|
|
391
|
+
const response = await this.fetchWithTimeout(url, {
|
|
392
|
+
method: "GET",
|
|
393
|
+
headers: this.baseHeaders(),
|
|
394
|
+
});
|
|
395
|
+
if (!response.ok) {
|
|
396
|
+
return { overrides: [], count: 0 };
|
|
397
|
+
}
|
|
398
|
+
return (await response.json());
|
|
399
|
+
}
|
|
253
400
|
}
|
|
254
401
|
//# sourceMappingURL=axonflow-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axonflow-client.js","sourceRoot":"","sources":["../src/axonflow-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"axonflow-client.js","sourceRoot":"","sources":["../src/axonflow-client.ts"],"names":[],"mappings":"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"}
|
package/dist/governance.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Evaluates tool arguments against AxonFlow policies before execution.
|
|
5
5
|
* Can block the call, require human approval, or allow through.
|
|
6
6
|
*/
|
|
7
|
-
import type { AxonFlowClient } from "./axonflow-client.js";
|
|
7
|
+
import type { AxonFlowClient, MCPCheckInputResponse } from "./axonflow-client.js";
|
|
8
8
|
import type { AxonFlowPluginConfig } from "./config.js";
|
|
9
9
|
/** Result type matching OpenClaw's PluginHookBeforeToolCallResult. */
|
|
10
10
|
export interface BeforeToolCallResult {
|
|
@@ -21,6 +21,20 @@ export interface BeforeToolCallResult {
|
|
|
21
21
|
}
|
|
22
22
|
/** Derive connector_type from tool name for AxonFlow policy evaluation. */
|
|
23
23
|
export declare function deriveConnectorType(toolName: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Format the Plugin Batch 1 richer-context fields (decision_id, risk_level,
|
|
26
|
+
* override availability, top matched policy) into a suffix users see in the
|
|
27
|
+
* OpenClaw block message / approval dialog.
|
|
28
|
+
*
|
|
29
|
+
* Every field is optional (older AxonFlow platforms return undefined for all
|
|
30
|
+
* of them). When no richer context is present, returns an empty string so
|
|
31
|
+
* the caller can safely concatenate.
|
|
32
|
+
*
|
|
33
|
+
* Split out of the block/approval return sites so the same formatting is used
|
|
34
|
+
* in both — so users see the same decision identifier + unblock path
|
|
35
|
+
* regardless of whether they hit a deny or a highRiskTools approval gate.
|
|
36
|
+
*/
|
|
37
|
+
export declare function formatRicherContext(check: MCPCheckInputResponse): string;
|
|
24
38
|
/**
|
|
25
39
|
* Classify an error thrown by the AxonFlow client as an auth/config error
|
|
26
40
|
* vs a transient network / server-side error.
|
package/dist/governance.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../src/governance.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../src/governance.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAUxD,sEAAsE;AACtE,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;QAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;KACpC,CAAC;CACH;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAgBxE;AAoCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAazD;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,oBAAoB,IAEd,OAAO;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,KAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAoF9C"}
|
package/dist/governance.js
CHANGED
|
@@ -10,6 +10,40 @@ import { recordToolCallEvaluated, recordToolCallBlocked, recordToolCallApprovalR
|
|
|
10
10
|
export function deriveConnectorType(toolName) {
|
|
11
11
|
return `openclaw.${toolName}`;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Format the Plugin Batch 1 richer-context fields (decision_id, risk_level,
|
|
15
|
+
* override availability, top matched policy) into a suffix users see in the
|
|
16
|
+
* OpenClaw block message / approval dialog.
|
|
17
|
+
*
|
|
18
|
+
* Every field is optional (older AxonFlow platforms return undefined for all
|
|
19
|
+
* of them). When no richer context is present, returns an empty string so
|
|
20
|
+
* the caller can safely concatenate.
|
|
21
|
+
*
|
|
22
|
+
* Split out of the block/approval return sites so the same formatting is used
|
|
23
|
+
* in both — so users see the same decision identifier + unblock path
|
|
24
|
+
* regardless of whether they hit a deny or a highRiskTools approval gate.
|
|
25
|
+
*/
|
|
26
|
+
export function formatRicherContext(check) {
|
|
27
|
+
const parts = [];
|
|
28
|
+
if (check.decision_id)
|
|
29
|
+
parts.push(`decision: ${check.decision_id}`);
|
|
30
|
+
if (check.risk_level)
|
|
31
|
+
parts.push(`risk: ${check.risk_level}`);
|
|
32
|
+
if (check.policy_matches && check.policy_matches.length > 0) {
|
|
33
|
+
const first = check.policy_matches[0];
|
|
34
|
+
if (first?.policy_name)
|
|
35
|
+
parts.push(`policy: ${first.policy_name}`);
|
|
36
|
+
}
|
|
37
|
+
if (check.override_available === true) {
|
|
38
|
+
if (check.override_existing_id) {
|
|
39
|
+
parts.push(`active override: ${check.override_existing_id}`);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
parts.push("override available via explain_decision MCP tool");
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return parts.length > 0 ? ` [${parts.join(", ")}]` : "";
|
|
46
|
+
}
|
|
13
47
|
/**
|
|
14
48
|
* Regex used by the auth-error classifier for message-based matching.
|
|
15
49
|
*
|
|
@@ -118,20 +152,32 @@ export function createBeforeToolCallHandler(client, config) {
|
|
|
118
152
|
}
|
|
119
153
|
if (!check.allowed) {
|
|
120
154
|
recordToolCallBlocked();
|
|
155
|
+
const baseReason = check.block_reason ?? "Blocked by AxonFlow policy";
|
|
121
156
|
return {
|
|
122
157
|
block: true,
|
|
123
|
-
blockReason:
|
|
158
|
+
blockReason: baseReason + formatRicherContext(check),
|
|
124
159
|
};
|
|
125
160
|
}
|
|
126
161
|
// High-risk tools get approval even when policy allows
|
|
127
162
|
if (config.highRiskTools &&
|
|
128
163
|
config.highRiskTools.includes(event.toolName)) {
|
|
129
164
|
recordToolCallApprovalRequired();
|
|
165
|
+
// Map platform risk_level (low|medium|high|critical) to OpenClaw's
|
|
166
|
+
// approval severity (info|warning|critical). When the platform doesn't
|
|
167
|
+
// surface risk_level, fall back to warning to preserve v1.2.x behavior.
|
|
168
|
+
let severity = "warning";
|
|
169
|
+
if (check.risk_level === "critical" || check.risk_level === "high") {
|
|
170
|
+
severity = "critical";
|
|
171
|
+
}
|
|
172
|
+
else if (check.risk_level === "low") {
|
|
173
|
+
severity = "info";
|
|
174
|
+
}
|
|
130
175
|
return {
|
|
131
176
|
requireApproval: {
|
|
132
177
|
title: `AxonFlow: ${event.toolName} requires approval`,
|
|
133
|
-
description: `Tool call governed by AxonFlow. ${check.policies_evaluated} policies evaluated
|
|
134
|
-
|
|
178
|
+
description: `Tool call governed by AxonFlow. ${check.policies_evaluated} policies evaluated.` +
|
|
179
|
+
formatRicherContext(check),
|
|
180
|
+
severity,
|
|
135
181
|
timeoutMs: 60_000,
|
|
136
182
|
timeoutBehavior: "deny",
|
|
137
183
|
},
|
package/dist/governance.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"governance.js","sourceRoot":"","sources":["../src/governance.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"governance.js","sourceRoot":"","sources":["../src/governance.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
* for async hook support.
|
|
32
32
|
*/
|
|
33
33
|
/** Plugin version — update before each release. */
|
|
34
|
-
export declare const VERSION = "1.
|
|
34
|
+
export declare const VERSION = "1.3.0";
|
|
35
35
|
export { AxonFlowClient } from "./axonflow-client.js";
|
|
36
36
|
export type { AxonFlowPluginConfig } from "./config.js";
|
|
37
37
|
export { resolveConfig, shouldGovernTool } from "./config.js";
|
package/dist/index.js
CHANGED
|
@@ -39,7 +39,7 @@ import { createLlmInputHandler, createLlmOutputHandler } from "./llm-audit.js";
|
|
|
39
39
|
import { sendTelemetryPing } from "./telemetry.js";
|
|
40
40
|
import { resetMetrics } from "./metrics.js";
|
|
41
41
|
/** Plugin version — update before each release. */
|
|
42
|
-
export const VERSION = "1.
|
|
42
|
+
export const VERSION = "1.3.0";
|
|
43
43
|
// Re-export for external consumers
|
|
44
44
|
export { AxonFlowClient } from "./axonflow-client.js";
|
|
45
45
|
export { resolveConfig, shouldGovernTool } from "./config.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axonflow/openclaw",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Policy enforcement, approval gates, and audit trails for OpenClaw — govern tool inputs before execution, scan outbound messages for PII/secrets, and record agent activity for review and compliance",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|