shieldcortex 3.4.24 → 3.4.26
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/dashboard/.next/standalone/dashboard/.next/BUILD_ID +1 -1
- package/dashboard/.next/standalone/dashboard/.next/build-manifest.json +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.html +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/app/page_client-reference-manifest.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/chunks/ssr/dashboard_3051539d._.js +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/pages/404.html +1 -1
- package/dashboard/.next/standalone/dashboard/.next/server/pages/500.html +2 -2
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/c95cfef94573d615.js +9 -0
- package/dist/api/visualization-server.js +24 -1
- package/dist/defence/iron-dome/index.d.ts +4 -0
- package/dist/defence/iron-dome/index.js +21 -0
- package/package.json +1 -1
- package/dashboard/.next/standalone/dashboard/.next/static/chunks/7eae8665a0fe51b7.js +0 -9
- /package/dashboard/.next/standalone/dashboard/.next/static/{tgpyN2TlgxxQBaXJDJfBL → Z6RWGYPe0sDAmBNZV4HnL}/_buildManifest.js +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{tgpyN2TlgxxQBaXJDJfBL → Z6RWGYPe0sDAmBNZV4HnL}/_clientMiddlewareManifest.json +0 -0
- /package/dashboard/.next/standalone/dashboard/.next/static/{tgpyN2TlgxxQBaXJDJfBL → Z6RWGYPe0sDAmBNZV4HnL}/_ssgManifest.js +0 -0
|
@@ -25,7 +25,7 @@ import { queryAgentOperations } from '../defence/audit/queries.js';
|
|
|
25
25
|
import { logAudit } from '../defence/audit/index.js';
|
|
26
26
|
import { getCloudConfig, getTrustedSkills, addTrustedSkill, removeTrustedSkill, getDeviceId, getDeviceName, getDefenceMode } from '../cloud/config.js';
|
|
27
27
|
import { scanSkill, scanSkillContent, discoverSkillFiles } from '../defence/skill-scanner/index.js';
|
|
28
|
-
import { getIronDomeStatus, activateIronDome, deactivateIronDome, scanForInjection } from '../defence/iron-dome/index.js';
|
|
28
|
+
import { getIronDomeStatus, activateIronDome, deactivateIronDome, scanForInjection, updateIronDomeConfig } from '../defence/iron-dome/index.js';
|
|
29
29
|
import { requireFeature, FeatureGatedError } from '../license/gate.js';
|
|
30
30
|
import { registerAdminRoutes } from './routes/admin.js';
|
|
31
31
|
import { registerGraphRoutes } from './routes/graph.js';
|
|
@@ -453,6 +453,29 @@ export function startVisualizationServer(dbPath) {
|
|
|
453
453
|
res.status(500).json({ error: error.message });
|
|
454
454
|
}
|
|
455
455
|
});
|
|
456
|
+
app.post('/api/iron-dome/config', (req, res) => {
|
|
457
|
+
try {
|
|
458
|
+
const { killPhrase, trustedChannels } = req.body ?? {};
|
|
459
|
+
if (killPhrase !== undefined) {
|
|
460
|
+
if (typeof killPhrase !== 'string' || killPhrase.trim().length < 3 || killPhrase.trim().length > 80) {
|
|
461
|
+
return res.status(400).json({ error: 'killPhrase must be a string between 3 and 80 characters' });
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
if (trustedChannels !== undefined) {
|
|
465
|
+
if (!Array.isArray(trustedChannels) || trustedChannels.some((value) => typeof value !== 'string')) {
|
|
466
|
+
return res.status(400).json({ error: 'trustedChannels must be an array of strings' });
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
const config = updateIronDomeConfig({
|
|
470
|
+
...(killPhrase !== undefined ? { killPhrase } : {}),
|
|
471
|
+
...(trustedChannels !== undefined ? { trustedChannels } : {}),
|
|
472
|
+
});
|
|
473
|
+
res.json({ success: true, config });
|
|
474
|
+
}
|
|
475
|
+
catch (error) {
|
|
476
|
+
res.status(500).json({ error: error.message });
|
|
477
|
+
}
|
|
478
|
+
});
|
|
456
479
|
// Emergency Stop — activates kill switch, blocks ALL agent operations
|
|
457
480
|
app.post('/api/iron-dome/emergency-stop', (_req, res) => {
|
|
458
481
|
try {
|
|
@@ -32,6 +32,10 @@ export declare function activateIronDome(profile?: IronDomeProfile): IronDomeCon
|
|
|
32
32
|
* Deactivate Iron Dome.
|
|
33
33
|
*/
|
|
34
34
|
export declare function deactivateIronDome(): void;
|
|
35
|
+
/**
|
|
36
|
+
* Update editable Iron Dome configuration fields without resetting the full profile.
|
|
37
|
+
*/
|
|
38
|
+
export declare function updateIronDomeConfig(overrides: Partial<Pick<IronDomeConfig, 'killPhrase' | 'trustedChannels'>>): IronDomeConfig;
|
|
35
39
|
/**
|
|
36
40
|
* Check input for the kill phrase and trigger emergency stop if detected.
|
|
37
41
|
* Activates full kill switch lockdown — blocks ALL agent operations
|
|
@@ -147,6 +147,27 @@ export function deactivateIronDome() {
|
|
|
147
147
|
reason: 'Iron Dome deactivated',
|
|
148
148
|
});
|
|
149
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Update editable Iron Dome configuration fields without resetting the full profile.
|
|
152
|
+
*/
|
|
153
|
+
export function updateIronDomeConfig(overrides) {
|
|
154
|
+
const current = loadConfig();
|
|
155
|
+
const next = {
|
|
156
|
+
...current,
|
|
157
|
+
...(typeof overrides.killPhrase === 'string' ? { killPhrase: overrides.killPhrase.trim() || current.killPhrase } : {}),
|
|
158
|
+
...(Array.isArray(overrides.trustedChannels) ? { trustedChannels: overrides.trustedChannels } : {}),
|
|
159
|
+
};
|
|
160
|
+
saveConfig(next);
|
|
161
|
+
logIronDomeAudit({
|
|
162
|
+
action: 'config_update',
|
|
163
|
+
allowed: true,
|
|
164
|
+
reason: `Updated Iron Dome config fields: ${[
|
|
165
|
+
typeof overrides.killPhrase === 'string' ? 'killPhrase' : null,
|
|
166
|
+
Array.isArray(overrides.trustedChannels) ? 'trustedChannels' : null,
|
|
167
|
+
].filter(Boolean).join(', ') || 'none'}`,
|
|
168
|
+
});
|
|
169
|
+
return getIronDomeStatus().config;
|
|
170
|
+
}
|
|
150
171
|
/**
|
|
151
172
|
* Check input for the kill phrase and trigger emergency stop if detected.
|
|
152
173
|
* Activates full kill switch lockdown — blocks ALL agent operations
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shieldcortex",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.26",
|
|
4
4
|
"description": "Trustworthy memory and security for AI agents. Recall debugging, review queue, OpenClaw session capture, and memory poisoning defence for Claude Code, Codex, OpenClaw, LangChain, and MCP agents.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|