fastgrc-openclaw 1.0.2 → 1.0.4
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 +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +10 -1
- package/dist/index.mjs +10 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
package/dist/index.d.ts
CHANGED
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.\n\n Get a free API key at: https://app.fastgrc.ai/connect\n\n Then set it in openclaw.config.ts:\n FastGRCPlugin({ apiKey: "fgrc_k1_your_key_here" })\n\n To rotate your key: replace the value in openclaw.config.ts and restart OpenClaw.\n Manage keys at: https://app.fastgrc.ai/dashboard/settings'
|
|
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.\n\n Get a free API key at: https://app.fastgrc.ai/connect\n\n Then set it in openclaw.config.ts:\n FastGRCPlugin({ apiKey: "fgrc_k1_your_key_here" })\n\n To rotate your key: replace the value in openclaw.config.ts and restart OpenClaw.\n Manage keys at: https://app.fastgrc.ai/dashboard/settings'
|
|
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.
|
|
3
|
+
"version": "1.0.4",
|
|
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",
|