fastgrc-openclaw 1.0.2 → 1.0.3

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/dist/index.d.mts CHANGED
@@ -53,6 +53,7 @@ interface EvaluateResponse {
53
53
  decision: 'allow' | 'block' | 'verify' | 'uncertain' | 'require_approval';
54
54
  confidence: number;
55
55
  reasoning: string;
56
+ reasonTags?: string[];
56
57
  policyContext?: {
57
58
  policyId?: string;
58
59
  matchedRule?: string;
package/dist/index.d.ts CHANGED
@@ -53,6 +53,7 @@ interface EvaluateResponse {
53
53
  decision: 'allow' | 'block' | 'verify' | 'uncertain' | 'require_approval';
54
54
  confidence: number;
55
55
  reasoning: string;
56
+ reasonTags?: string[];
56
57
  policyContext?: {
57
58
  policyId?: string;
58
59
  matchedRule?: string;
package/dist/index.js CHANGED
@@ -106,6 +106,11 @@ function FastGRCPlugin(options) {
106
106
  timeoutMs = DEFAULT_TIMEOUT_MS,
107
107
  baseUrl = DEFAULT_BASE_URL
108
108
  } = options;
109
+ if (!apiKey) {
110
+ console.warn(
111
+ '[fastgrc] FastGRCPlugin: apiKey is not set \u2014 all tool calls will proceed unchecked.\nHardcode the key in openclaw.config.ts: FastGRCPlugin({ apiKey: "fgrc_k1_..." })\nNote: process.env.FASTGRC_API_KEY is only available when OpenClaw inherits your shell environment.'
112
+ );
113
+ }
109
114
  const dashboardUrl = `${baseUrl.replace(/\/$/, "")}/dashboard/agent-policies`;
110
115
  return {
111
116
  name: "fastgrc",
@@ -123,7 +128,7 @@ function FastGRCPlugin(options) {
123
128
  timeoutMs
124
129
  });
125
130
  if (!result) return { block: false };
126
- const { decision, reasoning, policyContext } = result;
131
+ const { decision, reasoning, policyContext, reasonTags } = result;
127
132
  const matchedRule = policyContext?.matchedRule ?? "policy rule";
128
133
  if (decision === "block") {
129
134
  return { block: true, reason: `[${matchedRule}] ${reasoning}` };
@@ -134,6 +139,10 @@ function FastGRCPlugin(options) {
134
139
  reason: `${reasoning} \u2014 review at ${dashboardUrl}`
135
140
  };
136
141
  }
142
+ if (Array.isArray(reasonTags) && reasonTags.includes("override_block_active")) {
143
+ const msg = policyContext?.matchedRule ? `[FastGRC] Observability mode \u2014 would have blocked: [${policyContext.matchedRule}] ${reasoning}` : `[FastGRC] Observability mode \u2014 would have blocked: ${reasoning}`;
144
+ console.warn(msg);
145
+ }
137
146
  return { block: false };
138
147
  }
139
148
  }
package/dist/index.mjs CHANGED
@@ -79,6 +79,11 @@ function FastGRCPlugin(options) {
79
79
  timeoutMs = DEFAULT_TIMEOUT_MS,
80
80
  baseUrl = DEFAULT_BASE_URL
81
81
  } = options;
82
+ if (!apiKey) {
83
+ console.warn(
84
+ '[fastgrc] FastGRCPlugin: apiKey is not set \u2014 all tool calls will proceed unchecked.\nHardcode the key in openclaw.config.ts: FastGRCPlugin({ apiKey: "fgrc_k1_..." })\nNote: process.env.FASTGRC_API_KEY is only available when OpenClaw inherits your shell environment.'
85
+ );
86
+ }
82
87
  const dashboardUrl = `${baseUrl.replace(/\/$/, "")}/dashboard/agent-policies`;
83
88
  return {
84
89
  name: "fastgrc",
@@ -96,7 +101,7 @@ function FastGRCPlugin(options) {
96
101
  timeoutMs
97
102
  });
98
103
  if (!result) return { block: false };
99
- const { decision, reasoning, policyContext } = result;
104
+ const { decision, reasoning, policyContext, reasonTags } = result;
100
105
  const matchedRule = policyContext?.matchedRule ?? "policy rule";
101
106
  if (decision === "block") {
102
107
  return { block: true, reason: `[${matchedRule}] ${reasoning}` };
@@ -107,6 +112,10 @@ function FastGRCPlugin(options) {
107
112
  reason: `${reasoning} \u2014 review at ${dashboardUrl}`
108
113
  };
109
114
  }
115
+ if (Array.isArray(reasonTags) && reasonTags.includes("override_block_active")) {
116
+ const msg = policyContext?.matchedRule ? `[FastGRC] Observability mode \u2014 would have blocked: [${policyContext.matchedRule}] ${reasoning}` : `[FastGRC] Observability mode \u2014 would have blocked: ${reasoning}`;
117
+ console.warn(msg);
118
+ }
110
119
  return { block: false };
111
120
  }
112
121
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fastgrc-openclaw",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "FastGRC agent compliance plugin for OpenClaw — evaluates every tool call against your policy before it executes",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",