fullcourtdefense-cli 1.21.23 → 1.21.25
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.
|
@@ -253,11 +253,21 @@ function scanProjectRootAgentFiles(root, clientLabel, out, seen, excludedRoots =
|
|
|
253
253
|
sizeBytes: parsed.sizeBytes,
|
|
254
254
|
lineCount: parsed.lineCount,
|
|
255
255
|
content: parsed.content,
|
|
256
|
-
riskTags: parsed.content
|
|
256
|
+
riskTags: hasFcdRuntimeHook(parsed.content) ? [] : ['no_runtime_hook'],
|
|
257
257
|
});
|
|
258
258
|
}
|
|
259
259
|
}
|
|
260
260
|
}
|
|
261
|
+
/**
|
|
262
|
+
* Whether a hooks config already routes through the FCD runtime hook.
|
|
263
|
+
* MUST be case-insensitive: MSI installs write CamelCase paths
|
|
264
|
+
* ("C:\Program Files (x86)\FullCourtDefense\…") while npm installs are
|
|
265
|
+
* lowercase — a case-sensitive check flagged every MSI machine as unhooked
|
|
266
|
+
* (first seen on the first customer install). Mirrors onboard's checkCursorHooks.
|
|
267
|
+
*/
|
|
268
|
+
function hasFcdRuntimeHook(content) {
|
|
269
|
+
return /fullcourtdefense|fcd-managed|botguard/i.test(content);
|
|
270
|
+
}
|
|
261
271
|
function scanAgentFilesWithMetadata(options = {}) {
|
|
262
272
|
const home = os.homedir();
|
|
263
273
|
const cwd = options.cwd || process.cwd();
|
|
@@ -303,7 +313,7 @@ function scanAgentFilesWithMetadata(options = {}) {
|
|
|
303
313
|
sizeBytes: parsed.sizeBytes,
|
|
304
314
|
lineCount: parsed.lineCount,
|
|
305
315
|
content: parsed.content,
|
|
306
|
-
riskTags: parsed.content
|
|
316
|
+
riskTags: hasFcdRuntimeHook(parsed.content) ? [] : ['no_runtime_hook'],
|
|
307
317
|
});
|
|
308
318
|
}
|
|
309
319
|
}
|
package/dist/commands/onboard.js
CHANGED
|
@@ -180,8 +180,13 @@ function checkMcpGateways() {
|
|
|
180
180
|
function checkTerminalGuards() {
|
|
181
181
|
const checks = [];
|
|
182
182
|
if (process.platform === 'win32') {
|
|
183
|
-
|
|
184
|
-
|
|
183
|
+
// Warnings, not failures: managed/bank machines commonly block PowerShell
|
|
184
|
+
// profile and AutoRun registry writes (EDR persistence rules, redirected
|
|
185
|
+
// Documents folders). Hooks + MCP gateways + daemon still protect the
|
|
186
|
+
// machine; failing onboarding here makes the MSI roll back a protected
|
|
187
|
+
// install (seen on the first customer deployment).
|
|
188
|
+
checks.push({ label: 'PowerShell shell guard', ok: (0, shellGuard_1.isShellGuardInstalled)(), optional: true, detail: (0, shellGuard_1.isShellGuardInstalled)() ? undefined : 'run install-shell-guard' });
|
|
189
|
+
checks.push({ label: 'cmd.exe shell guard', ok: (0, cmdGuard_1.isCmdGuardInstalled)(), optional: true, detail: (0, cmdGuard_1.isCmdGuardInstalled)() ? undefined : 'run install-cmd-guard' });
|
|
185
190
|
const audit = (0, windowsAudit_1.getWindowsAuditStatus)();
|
|
186
191
|
const auditOk = audit.scriptBlockLogging && audit.transcription;
|
|
187
192
|
checks.push({
|
|
@@ -415,8 +420,16 @@ async function onboardCommand(args, config) {
|
|
|
415
420
|
checkMcpGateways(),
|
|
416
421
|
...checkTerminalGuards(),
|
|
417
422
|
{
|
|
423
|
+
// Warning, not a failure: on hardened/managed machines (bank laptops,
|
|
424
|
+
// EDR blocking HKCU Run-key writes, standard users denied schtasks)
|
|
425
|
+
// autostart registration can be denied even though hooks, enrollment,
|
|
426
|
+
// and the in-session daemon are all healthy. Failing onboarding here
|
|
427
|
+
// makes the MSI roll back a genuinely protected install — instead we
|
|
428
|
+
// finish, and the fleet console nudges "run daemon --install" until
|
|
429
|
+
// the daemon reports (real gap seen on the first customer install).
|
|
418
430
|
label: 'Resident daemon autostart',
|
|
419
431
|
ok: (0, daemon_1.isDaemonAutostartInstalled)(),
|
|
432
|
+
optional: true,
|
|
420
433
|
detail: (0, daemon_1.isDaemonAutostartInstalled)() ? undefined : 'run fullcourtdefense daemon --install true from an elevated terminal',
|
|
421
434
|
},
|
|
422
435
|
{
|
package/dist/version.json
CHANGED