@sonde/agent 0.2.5 → 0.2.6
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/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-test.log +14 -14
- package/CHANGELOG.md +10 -0
- package/dist/cli/packs.d.ts +6 -0
- package/dist/cli/packs.d.ts.map +1 -1
- package/dist/cli/packs.js +42 -8
- package/dist/cli/packs.js.map +1 -1
- package/dist/cli/packs.test.js +56 -1
- package/dist/cli/packs.test.js.map +1 -1
- package/dist/config.d.ts +13 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +55 -0
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +72 -5
- package/dist/index.js.map +1 -1
- package/dist/tui/installer/StepComplete.d.ts.map +1 -1
- package/dist/tui/installer/StepComplete.js +10 -1
- package/dist/tui/installer/StepComplete.js.map +1 -1
- package/dist/tui/manager/ManagerApp.d.ts +2 -1
- package/dist/tui/manager/ManagerApp.d.ts.map +1 -1
- package/dist/tui/manager/ManagerApp.js +3 -2
- package/dist/tui/manager/ManagerApp.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/packs.test.ts +65 -0
- package/src/cli/packs.ts +56 -10
- package/src/config.ts +57 -0
- package/src/index.ts +92 -5
- package/src/tui/installer/StepComplete.tsx +12 -1
- package/src/tui/manager/ManagerApp.tsx +4 -2
- package/tsconfig.tsbuildinfo +1 -1
package/.turbo/turbo-build.log
CHANGED
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
|
|
2
|
-
> @sonde/agent@0.2.
|
|
2
|
+
> @sonde/agent@0.2.5 test
|
|
3
3
|
> vitest run
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
RUN v2.1.9 /Users/joshowen/Library/CloudStorage/ProtonDrive-joshowen@protonmail.com-folder/AI/ClaudeCode/sonde/packages/agent
|
|
7
7
|
|
|
8
|
-
✓ src/cli/mcp-bridge.test.ts (5 tests)
|
|
9
|
-
✓ src/runtime/scrubber.test.ts (11 tests)
|
|
10
|
-
✓ src/
|
|
11
|
-
✓ src/runtime/
|
|
12
|
-
✓ src/
|
|
13
|
-
✓ src/
|
|
14
|
-
✓ src/runtime/attestation.test.ts (8 tests)
|
|
15
|
-
✓ src/cli/packs.test.ts (
|
|
16
|
-
✓ src/runtime/executor.test.ts (7 tests)
|
|
17
|
-
✓ src/runtime/connection.test.ts (11 tests)
|
|
8
|
+
✓ src/cli/mcp-bridge.test.ts (5 tests) 3ms
|
|
9
|
+
✓ src/runtime/scrubber.test.ts (11 tests) 5ms
|
|
10
|
+
✓ src/runtime/audit.test.ts (5 tests) 6ms
|
|
11
|
+
✓ src/runtime/privilege.test.ts (4 tests) 29ms
|
|
12
|
+
✓ src/system/scanner.test.ts (10 tests) 4ms
|
|
13
|
+
✓ src/cli/update.test.ts (9 tests) 5ms
|
|
14
|
+
✓ src/runtime/attestation.test.ts (8 tests) 4ms
|
|
15
|
+
✓ src/cli/packs.test.ts (17 tests) 6ms
|
|
16
|
+
✓ src/runtime/executor.test.ts (7 tests) 7ms
|
|
17
|
+
✓ src/runtime/connection.test.ts (11 tests) 23ms
|
|
18
18
|
|
|
19
19
|
Test Files 10 passed (10)
|
|
20
|
-
Tests
|
|
21
|
-
Start at
|
|
22
|
-
Duration 2.
|
|
20
|
+
Tests 87 passed (87)
|
|
21
|
+
Start at 10:01:38
|
|
22
|
+
Duration 2.99s (transform 2.29s, setup 0ms, collect 8.24s, tests 91ms, environment 1ms, prepare 4.29s)
|
|
23
23
|
|
package/CHANGELOG.md
CHANGED
package/dist/cli/packs.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import type { Pack } from '@sonde/packs';
|
|
2
2
|
import { type PermissionCheck, type ScanResult, type SystemChecker } from '../system/scanner.js';
|
|
3
|
+
/**
|
|
4
|
+
* Build a pack map filtered by a disabled list.
|
|
5
|
+
* Used by both the CLI commands and ProbeExecutor creation.
|
|
6
|
+
*/
|
|
7
|
+
export declare function buildEnabledPacks(registry: ReadonlyMap<string, Pack>, disabledPacks: string[]): Map<string, Pack>;
|
|
3
8
|
export interface PackState {
|
|
4
9
|
/** Packs currently loaded/active on this agent */
|
|
5
10
|
installed: Map<string, Pack>;
|
|
@@ -11,6 +16,7 @@ export interface PackCommandDeps {
|
|
|
11
16
|
checker: SystemChecker;
|
|
12
17
|
getUserGroups: () => string[];
|
|
13
18
|
log: (msg: string) => void;
|
|
19
|
+
persist: (disabledPacks: string[]) => void;
|
|
14
20
|
}
|
|
15
21
|
export declare function cmdPacksList(deps?: PackCommandDeps): void;
|
|
16
22
|
export declare function cmdPacksScan(deps?: PackCommandDeps): ScanResult[];
|
package/dist/cli/packs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packs.d.ts","sourceRoot":"","sources":["../../src/cli/packs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"packs.d.ts","sourceRoot":"","sources":["../../src/cli/packs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,aAAa,EAInB,MAAM,sBAAsB,CAAC;AAE9B;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EACnC,aAAa,EAAE,MAAM,EAAE,GACtB,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CASnB;AAED,MAAM,WAAW,SAAS;IACxB,kDAAkD;IAClD,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7B,4CAA4C;IAC5C,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,aAAa,CAAC;IACvB,aAAa,EAAE,MAAM,MAAM,EAAE,CAAC;IAC9B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3B,OAAO,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC5C;AAsCD,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,IAAI,CAsBzD;AAED,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,eAAe,GAAG,UAAU,EAAE,CAmCjE;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,eAAe,GACrB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,eAAe,CAAA;CAAE,CAgDrD;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAcT;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CA4C1D"}
|
package/dist/cli/packs.js
CHANGED
|
@@ -1,14 +1,39 @@
|
|
|
1
1
|
import { packRegistry } from '@sonde/packs';
|
|
2
|
+
import { loadConfig, saveConfig } from '../config.js';
|
|
2
3
|
import { checkPackPermissions, createSystemChecker, scanForSoftware, } from '../system/scanner.js';
|
|
4
|
+
/**
|
|
5
|
+
* Build a pack map filtered by a disabled list.
|
|
6
|
+
* Used by both the CLI commands and ProbeExecutor creation.
|
|
7
|
+
*/
|
|
8
|
+
export function buildEnabledPacks(registry, disabledPacks) {
|
|
9
|
+
const disabled = new Set(disabledPacks);
|
|
10
|
+
const result = new Map();
|
|
11
|
+
for (const [name, pack] of registry) {
|
|
12
|
+
if (!disabled.has(name)) {
|
|
13
|
+
result.set(name, pack);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return result;
|
|
17
|
+
}
|
|
3
18
|
function createDefaultDeps() {
|
|
19
|
+
const config = loadConfig();
|
|
20
|
+
const disabledPacks = config?.disabledPacks ?? [];
|
|
4
21
|
return {
|
|
5
22
|
state: {
|
|
6
|
-
installed:
|
|
23
|
+
installed: buildEnabledPacks(packRegistry, disabledPacks),
|
|
7
24
|
available: packRegistry,
|
|
8
25
|
},
|
|
9
26
|
checker: createSystemChecker(),
|
|
10
27
|
getUserGroups: getProcessUserGroups,
|
|
11
28
|
log: console.log,
|
|
29
|
+
persist: (disabled) => {
|
|
30
|
+
const current = loadConfig();
|
|
31
|
+
if (current) {
|
|
32
|
+
current.disabledPacks =
|
|
33
|
+
disabled.length > 0 ? disabled : undefined;
|
|
34
|
+
saveConfig(current);
|
|
35
|
+
}
|
|
36
|
+
},
|
|
12
37
|
};
|
|
13
38
|
}
|
|
14
39
|
function getProcessUserGroups() {
|
|
@@ -31,17 +56,19 @@ export function cmdPacksList(deps) {
|
|
|
31
56
|
log('No packs installed.');
|
|
32
57
|
return;
|
|
33
58
|
}
|
|
59
|
+
const bold = (s) => `\x1b[1m${s}\x1b[0m`;
|
|
34
60
|
log('Installed packs:');
|
|
35
61
|
log('');
|
|
36
62
|
for (const [name, pack] of state.installed) {
|
|
37
63
|
const probeCount = pack.manifest.probes.length;
|
|
38
|
-
log(` ${name} v${pack.manifest.version} (${probeCount} probes)`);
|
|
64
|
+
log(` ${bold(name)} v${pack.manifest.version} (${probeCount} probes)`);
|
|
39
65
|
log(` ${pack.manifest.description}`);
|
|
40
66
|
for (const probe of pack.manifest.probes) {
|
|
41
67
|
log(` - ${name}.${probe.name}: ${probe.description}`);
|
|
42
68
|
}
|
|
43
69
|
log('');
|
|
44
70
|
}
|
|
71
|
+
log(` Manage: sonde packs install ${bold('<name>')} | uninstall ${bold('<name>')}`);
|
|
45
72
|
}
|
|
46
73
|
export function cmdPacksScan(deps) {
|
|
47
74
|
const { state, checker, log } = deps ?? createDefaultDeps();
|
|
@@ -77,7 +104,7 @@ export function cmdPacksScan(deps) {
|
|
|
77
104
|
return results;
|
|
78
105
|
}
|
|
79
106
|
export function cmdPacksInstall(name, deps) {
|
|
80
|
-
const { state, checker, getUserGroups, log } = deps ?? createDefaultDeps();
|
|
107
|
+
const { state, checker, getUserGroups, log, persist } = deps ?? createDefaultDeps();
|
|
81
108
|
const pack = state.available.get(name);
|
|
82
109
|
if (!pack) {
|
|
83
110
|
log(`Error: Pack "${name}" not found.`);
|
|
@@ -110,28 +137,35 @@ export function cmdPacksInstall(name, deps) {
|
|
|
110
137
|
return { success: false, permissions };
|
|
111
138
|
}
|
|
112
139
|
state.installed.set(name, pack);
|
|
140
|
+
const disabled = [...state.available.keys()]
|
|
141
|
+
.filter((k) => !state.installed.has(k));
|
|
142
|
+
persist(disabled);
|
|
113
143
|
log(`Pack "${name}" installed successfully.`);
|
|
114
144
|
log(` ${pack.manifest.probes.length} probes now available.`);
|
|
115
145
|
return { success: true, permissions };
|
|
116
146
|
}
|
|
117
147
|
export function cmdPacksUninstall(name, deps) {
|
|
118
|
-
const { state, log } = deps ?? createDefaultDeps();
|
|
148
|
+
const { state, log, persist } = deps ?? createDefaultDeps();
|
|
119
149
|
if (!state.installed.has(name)) {
|
|
120
150
|
log(`Error: Pack "${name}" is not installed.`);
|
|
121
151
|
return false;
|
|
122
152
|
}
|
|
123
153
|
state.installed.delete(name);
|
|
154
|
+
const disabled = [...state.available.keys()]
|
|
155
|
+
.filter((k) => !state.installed.has(k));
|
|
156
|
+
persist(disabled);
|
|
124
157
|
log(`Pack "${name}" uninstalled.`);
|
|
125
158
|
return true;
|
|
126
159
|
}
|
|
127
160
|
export function handlePacksCommand(subArgs) {
|
|
128
161
|
const subcommand = subArgs[0];
|
|
162
|
+
const deps = createDefaultDeps();
|
|
129
163
|
switch (subcommand) {
|
|
130
164
|
case 'list':
|
|
131
|
-
cmdPacksList();
|
|
165
|
+
cmdPacksList(deps);
|
|
132
166
|
break;
|
|
133
167
|
case 'scan':
|
|
134
|
-
cmdPacksScan();
|
|
168
|
+
cmdPacksScan(deps);
|
|
135
169
|
break;
|
|
136
170
|
case 'install': {
|
|
137
171
|
const name = subArgs[1];
|
|
@@ -139,7 +173,7 @@ export function handlePacksCommand(subArgs) {
|
|
|
139
173
|
console.error('Usage: sonde packs install <name>');
|
|
140
174
|
process.exit(1);
|
|
141
175
|
}
|
|
142
|
-
const result = cmdPacksInstall(name);
|
|
176
|
+
const result = cmdPacksInstall(name, deps);
|
|
143
177
|
if (!result.success)
|
|
144
178
|
process.exit(1);
|
|
145
179
|
break;
|
|
@@ -150,7 +184,7 @@ export function handlePacksCommand(subArgs) {
|
|
|
150
184
|
console.error('Usage: sonde packs uninstall <name>');
|
|
151
185
|
process.exit(1);
|
|
152
186
|
}
|
|
153
|
-
if (!cmdPacksUninstall(name))
|
|
187
|
+
if (!cmdPacksUninstall(name, deps))
|
|
154
188
|
process.exit(1);
|
|
155
189
|
break;
|
|
156
190
|
}
|
package/dist/cli/packs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packs.js","sourceRoot":"","sources":["../../src/cli/packs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAIL,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,GAChB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"packs.js","sourceRoot":"","sources":["../../src/cli/packs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAIL,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAE9B;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAmC,EACnC,aAAuB;IAEvB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgB,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAiBD,SAAS,iBAAiB;IACxB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,aAAa,GAAG,MAAM,EAAE,aAAa,IAAI,EAAE,CAAC;IAClD,OAAO;QACL,KAAK,EAAE;YACL,SAAS,EAAE,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC;YACzD,SAAS,EAAE,YAAY;SACxB;QACD,OAAO,EAAE,mBAAmB,EAAE;QAC9B,aAAa,EAAE,oBAAoB;QACnC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;YACpB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;YAC7B,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,CAAC,aAAa;oBACnB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC7C,UAAU,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB;IAC3B,oDAAoD;IACpD,gEAAgE;IAChE,yCAAyC;IACzC,IAAI,CAAC;QACH,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;YAC5C,OAAO,OAAO,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAsB;IACjD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,iBAAiB,EAAE,CAAC;IAEnD,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAC3B,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;IAEjD,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACxB,GAAG,CAAC,EAAE,CAAC,CAAC;IACR,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/C,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,UAAU,UAAU,CAAC,CAAC;QACxE,GAAG,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QACxC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzC,GAAG,CAAC,SAAS,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,GAAG,CAAC,EAAE,CAAC,CAAC;IACV,CAAC;IACD,GAAG,CAAC,iCAAiC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAsB;IACjD,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,iBAAiB,EAAE,CAAC;IAE5D,MAAM,SAAS,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAEpD,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC9B,GAAG,CAAC,EAAE,CAAC,CAAC;IAER,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEvD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,aAAa,CAAC,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;YACzD,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,IAAI,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5F,IAAI,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnF,IAAI,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC5F,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,IAAI,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7D,CAAC;QACD,GAAG,CAAC,EAAE,CAAC,CAAC;IACV,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;YAC5B,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3B,CAAC;QACD,GAAG,CAAC,EAAE,CAAC,CAAC;IACV,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAY,EACZ,IAAsB;IAEtB,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,EAAE,GACnD,IAAI,IAAI,iBAAiB,EAAE,CAAC;IAE9B,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,GAAG,CAAC,gBAAgB,IAAI,cAAc,CAAC,CAAC;QACxC,GAAG,CAAC,oBAAoB,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,SAAS,IAAI,yBAAyB,CAAC,CAAC;QAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,oBAAoB;IACpB,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,WAAW,GAAG,oBAAoB,CACtC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CACnC,CAAC;IAEF,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QAC3B,GAAG,CAAC,SAAS,IAAI,oCAAoC,CAAC,CAAC;QACvD,IAAI,WAAW,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,qBAAqB,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjE,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC1B,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;gBAC9C,GAAG,CAAC,wBAAwB,KAAK,YAAY,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;QACD,IAAI,WAAW,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,GAAG,CAAC,uBAAuB,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACrE,GAAG,CAAC,4DAA4D,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,WAAW,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,GAAG,CAAC,oBAAoB,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SACzC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClB,GAAG,CAAC,SAAS,IAAI,2BAA2B,CAAC,CAAC;IAC9C,GAAG,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,wBAAwB,CAAC,CAAC;IAC9D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,IAAsB;IAEtB,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,IAAI,iBAAiB,EAAE,CAAC;IAE5D,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,GAAG,CAAC,gBAAgB,IAAI,qBAAqB,CAAC,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SACzC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClB,GAAG,CAAC,SAAS,IAAI,gBAAgB,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAiB;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;IAEjC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,MAAM;YACT,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM;QACR,KAAK,MAAM;YACT,YAAY,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM;QACR,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrC,MAAM;QACR,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM;QACR,CAAC;QACD;YACE,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAC3C,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,UAAU,EAAE,CAAC,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM;IACV,CAAC;AACH,CAAC"}
|
package/dist/cli/packs.test.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it, vi } from 'vitest';
|
|
2
|
-
import { cmdPacksInstall, cmdPacksList, cmdPacksScan, cmdPacksUninstall, } from './packs.js';
|
|
2
|
+
import { buildEnabledPacks, cmdPacksInstall, cmdPacksList, cmdPacksScan, cmdPacksUninstall, } from './packs.js';
|
|
3
3
|
function createMockPack(name, overrides) {
|
|
4
4
|
return {
|
|
5
5
|
manifest: {
|
|
@@ -39,6 +39,7 @@ function createDeps(overrides = {}) {
|
|
|
39
39
|
checker: createMockChecker(),
|
|
40
40
|
getUserGroups: () => [],
|
|
41
41
|
log: vi.fn(),
|
|
42
|
+
persist: vi.fn(),
|
|
42
43
|
...overrides,
|
|
43
44
|
};
|
|
44
45
|
}
|
|
@@ -167,5 +168,59 @@ describe('cmdPacksUninstall', () => {
|
|
|
167
168
|
const log = deps.log;
|
|
168
169
|
expect(log).toHaveBeenCalledWith('Error: Pack "docker" is not installed.');
|
|
169
170
|
});
|
|
171
|
+
it('persists disabled packs on uninstall', () => {
|
|
172
|
+
const deps = createDeps();
|
|
173
|
+
cmdPacksUninstall('system', deps);
|
|
174
|
+
const persist = deps.persist;
|
|
175
|
+
expect(persist).toHaveBeenCalledTimes(1);
|
|
176
|
+
const firstCall = persist.mock.calls[0];
|
|
177
|
+
const disabled = firstCall[0];
|
|
178
|
+
expect(disabled).toContain('system');
|
|
179
|
+
expect(disabled).toContain('docker');
|
|
180
|
+
});
|
|
181
|
+
});
|
|
182
|
+
describe('cmdPacksInstall persistence', () => {
|
|
183
|
+
it('persists disabled packs on install', () => {
|
|
184
|
+
const deps = createDeps();
|
|
185
|
+
cmdPacksInstall('docker', deps);
|
|
186
|
+
const persist = deps.persist;
|
|
187
|
+
expect(persist).toHaveBeenCalledTimes(1);
|
|
188
|
+
const firstCall = persist.mock.calls[0];
|
|
189
|
+
const disabled = firstCall[0];
|
|
190
|
+
expect(disabled).not.toContain('docker');
|
|
191
|
+
expect(disabled).not.toContain('system');
|
|
192
|
+
});
|
|
193
|
+
it('does not persist when install fails', () => {
|
|
194
|
+
const deps = createDeps();
|
|
195
|
+
cmdPacksInstall('nonexistent', deps);
|
|
196
|
+
const persist = deps.persist;
|
|
197
|
+
expect(persist).not.toHaveBeenCalled();
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
describe('buildEnabledPacks', () => {
|
|
201
|
+
it('returns all packs when none disabled', () => {
|
|
202
|
+
const registry = new Map([
|
|
203
|
+
['system', createMockPack('system')],
|
|
204
|
+
['docker', createMockPack('docker')],
|
|
205
|
+
]);
|
|
206
|
+
const result = buildEnabledPacks(registry, []);
|
|
207
|
+
expect([...result.keys()]).toEqual(['system', 'docker']);
|
|
208
|
+
});
|
|
209
|
+
it('filters out disabled packs', () => {
|
|
210
|
+
const registry = new Map([
|
|
211
|
+
['system', createMockPack('system')],
|
|
212
|
+
['docker', createMockPack('docker')],
|
|
213
|
+
['nginx', createMockPack('nginx')],
|
|
214
|
+
]);
|
|
215
|
+
const result = buildEnabledPacks(registry, ['docker', 'nginx']);
|
|
216
|
+
expect([...result.keys()]).toEqual(['system']);
|
|
217
|
+
});
|
|
218
|
+
it('ignores disabled names not in registry', () => {
|
|
219
|
+
const registry = new Map([
|
|
220
|
+
['system', createMockPack('system')],
|
|
221
|
+
]);
|
|
222
|
+
const result = buildEnabledPacks(registry, ['nonexistent']);
|
|
223
|
+
expect([...result.keys()]).toEqual(['system']);
|
|
224
|
+
});
|
|
170
225
|
});
|
|
171
226
|
//# sourceMappingURL=packs.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packs.test.js","sourceRoot":"","sources":["../../src/cli/packs.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"packs.test.js","sourceRoot":"","sources":["../../src/cli/packs.test.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export interface AgentConfig {
|
|
|
9
9
|
caCertPath?: string;
|
|
10
10
|
scrubPatterns?: string[];
|
|
11
11
|
allowUnsignedPacks?: boolean;
|
|
12
|
+
disabledPacks?: string[];
|
|
12
13
|
}
|
|
13
14
|
export declare function getConfigPath(): string;
|
|
14
15
|
export declare function loadConfig(): AgentConfig | undefined;
|
|
@@ -16,4 +17,16 @@ export declare function saveConfig(config: AgentConfig): void;
|
|
|
16
17
|
export declare function getConfigDir(): string;
|
|
17
18
|
/** Save cert/key/ca PEM files to ~/.sonde/ and update config paths. */
|
|
18
19
|
export declare function saveCerts(config: AgentConfig, certPem: string, keyPem: string, caCertPem: string): void;
|
|
20
|
+
export declare function writePidFile(pid: number): void;
|
|
21
|
+
/**
|
|
22
|
+
* Read PID file and verify the process is still alive.
|
|
23
|
+
* Returns undefined if file missing or process is dead.
|
|
24
|
+
*/
|
|
25
|
+
export declare function readPidFile(): number | undefined;
|
|
26
|
+
export declare function removePidFile(): void;
|
|
27
|
+
/**
|
|
28
|
+
* Stop a running background agent if one exists.
|
|
29
|
+
* Returns true if an agent was stopped.
|
|
30
|
+
*/
|
|
31
|
+
export declare function stopRunningAgent(): boolean;
|
|
19
32
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAMD,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,UAAU,IAAI,WAAW,GAAG,SAAS,CAoBpD;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAGpD;AAED,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,uEAAuE;AACvE,wBAAgB,SAAS,CACvB,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,IAAI,CAcN;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAG9C;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,GAAG,SAAS,CAmBhD;AAED,wBAAgB,aAAa,IAAI,IAAI,CAMpC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,OAAO,CAW1C"}
|
package/dist/config.js
CHANGED
|
@@ -3,6 +3,7 @@ import os from 'node:os';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
const CONFIG_DIR = path.join(os.homedir(), '.sonde');
|
|
5
5
|
const CONFIG_FILE = path.join(CONFIG_DIR, 'config.json');
|
|
6
|
+
const PID_FILE = path.join(CONFIG_DIR, 'agent.pid');
|
|
6
7
|
export function getConfigPath() {
|
|
7
8
|
return CONFIG_FILE;
|
|
8
9
|
}
|
|
@@ -49,4 +50,58 @@ export function saveCerts(config, certPem, keyPem, caCertPem) {
|
|
|
49
50
|
config.keyPath = keyPath;
|
|
50
51
|
config.caCertPath = caCertPath;
|
|
51
52
|
}
|
|
53
|
+
export function writePidFile(pid) {
|
|
54
|
+
fs.mkdirSync(CONFIG_DIR, { recursive: true });
|
|
55
|
+
fs.writeFileSync(PID_FILE, String(pid), 'utf-8');
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Read PID file and verify the process is still alive.
|
|
59
|
+
* Returns undefined if file missing or process is dead.
|
|
60
|
+
*/
|
|
61
|
+
export function readPidFile() {
|
|
62
|
+
let raw;
|
|
63
|
+
try {
|
|
64
|
+
raw = fs.readFileSync(PID_FILE, 'utf-8').trim();
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
const pid = Number.parseInt(raw, 10);
|
|
70
|
+
if (Number.isNaN(pid))
|
|
71
|
+
return undefined;
|
|
72
|
+
try {
|
|
73
|
+
process.kill(pid, 0);
|
|
74
|
+
return pid;
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
// Process is dead — clean up stale PID file
|
|
78
|
+
removePidFile();
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
export function removePidFile() {
|
|
83
|
+
try {
|
|
84
|
+
fs.unlinkSync(PID_FILE);
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
// Ignore if already removed
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Stop a running background agent if one exists.
|
|
92
|
+
* Returns true if an agent was stopped.
|
|
93
|
+
*/
|
|
94
|
+
export function stopRunningAgent() {
|
|
95
|
+
const pid = readPidFile();
|
|
96
|
+
if (pid === undefined)
|
|
97
|
+
return false;
|
|
98
|
+
try {
|
|
99
|
+
process.kill(pid, 'SIGTERM');
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// Process already gone
|
|
103
|
+
}
|
|
104
|
+
removePidFile();
|
|
105
|
+
return true;
|
|
106
|
+
}
|
|
52
107
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAOA,OAAO,EACL,KAAK,WAAW,EAOjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAiB,MAAM,yBAAyB,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AA4CtD,UAAU,OAAO;IACf,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,UAAU,EAAE,eAAe,CAAC;CAC7B;AAED,iBAAS,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAgBxD;AAwSD,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,YAAY,EAAE,OAAO,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { spawn } from 'node:child_process';
|
|
2
3
|
import os from 'node:os';
|
|
3
|
-
import {
|
|
4
|
+
import { packRegistry } from '@sonde/packs';
|
|
5
|
+
import { buildEnabledPacks, handlePacksCommand } from './cli/packs.js';
|
|
4
6
|
import { checkForUpdate, performUpdate } from './cli/update.js';
|
|
5
|
-
import { getConfigPath, loadConfig, saveConfig } from './config.js';
|
|
7
|
+
import { getConfigPath, loadConfig, removePidFile, saveConfig, stopRunningAgent, writePidFile, } from './config.js';
|
|
6
8
|
import { AgentConnection, enrollWithHub } from './runtime/connection.js';
|
|
7
9
|
import { ProbeExecutor } from './runtime/executor.js';
|
|
8
10
|
import { checkNotRoot } from './runtime/privilege.js';
|
|
9
11
|
import { buildPatterns } from './runtime/scrubber.js';
|
|
12
|
+
import { createSystemChecker, scanForSoftware } from './system/scanner.js';
|
|
10
13
|
import { VERSION } from './version.js';
|
|
11
14
|
const args = process.argv.slice(2);
|
|
12
15
|
const command = args[0];
|
|
@@ -21,6 +24,8 @@ function printUsage() {
|
|
|
21
24
|
console.log(' install Interactive guided setup (enroll + scan + packs)');
|
|
22
25
|
console.log(' enroll Enroll this agent with a hub');
|
|
23
26
|
console.log(' start Start the agent (TUI by default, --headless for daemon)');
|
|
27
|
+
console.log(' stop Stop the background agent');
|
|
28
|
+
console.log(' restart Restart the agent in background');
|
|
24
29
|
console.log(' status Show agent status');
|
|
25
30
|
console.log(' packs Manage packs (list, scan, install, uninstall)');
|
|
26
31
|
console.log(' update Check for and install agent updates');
|
|
@@ -48,7 +53,8 @@ function createRuntime(events) {
|
|
|
48
53
|
console.error('Error: Agent not enrolled. Run "sonde enroll" first.');
|
|
49
54
|
process.exit(1);
|
|
50
55
|
}
|
|
51
|
-
const
|
|
56
|
+
const enabledPacks = buildEnabledPacks(packRegistry, config.disabledPacks ?? []);
|
|
57
|
+
const executor = new ProbeExecutor(enabledPacks, undefined, buildPatterns(config.scrubPatterns));
|
|
52
58
|
const connection = new AgentConnection(config, executor, events);
|
|
53
59
|
return { config, executor, connection };
|
|
54
60
|
}
|
|
@@ -96,6 +102,18 @@ async function cmdEnroll() {
|
|
|
96
102
|
// Clear the one-time token after use
|
|
97
103
|
config.enrollmentToken = undefined;
|
|
98
104
|
saveConfig(config);
|
|
105
|
+
// Auto-detect packs
|
|
106
|
+
const manifests = [...packRegistry.values()].map((p) => p.manifest);
|
|
107
|
+
const checker = createSystemChecker();
|
|
108
|
+
const scanResults = scanForSoftware(manifests, checker);
|
|
109
|
+
const detectedNames = scanResults
|
|
110
|
+
.filter((r) => r.detected)
|
|
111
|
+
.map((r) => r.packName);
|
|
112
|
+
const allNames = manifests.map((m) => m.name);
|
|
113
|
+
const enabledNames = ['system', ...detectedNames.filter((n) => n !== 'system')];
|
|
114
|
+
const disabledNames = allNames.filter((n) => !enabledNames.includes(n));
|
|
115
|
+
config.disabledPacks = disabledNames;
|
|
116
|
+
saveConfig(config);
|
|
99
117
|
console.log('Agent enrolled successfully.');
|
|
100
118
|
console.log(` Hub: ${hubUrl}`);
|
|
101
119
|
console.log(` Name: ${agentName}`);
|
|
@@ -105,6 +123,14 @@ async function cmdEnroll() {
|
|
|
105
123
|
console.log(' mTLS: Client certificate issued and saved');
|
|
106
124
|
}
|
|
107
125
|
console.log('');
|
|
126
|
+
console.log('Pack detection:');
|
|
127
|
+
for (const name of enabledNames) {
|
|
128
|
+
console.log(` ✓ ${name}`);
|
|
129
|
+
}
|
|
130
|
+
for (const name of disabledNames) {
|
|
131
|
+
console.log(` ✗ ${name} (not detected)`);
|
|
132
|
+
}
|
|
133
|
+
console.log('');
|
|
108
134
|
console.log('Run "sonde start" to connect.');
|
|
109
135
|
}
|
|
110
136
|
function cmdStart() {
|
|
@@ -131,21 +157,56 @@ function cmdStart() {
|
|
|
131
157
|
console.log(` Hub: ${config.hubUrl}`);
|
|
132
158
|
console.log('');
|
|
133
159
|
connection.start();
|
|
160
|
+
writePidFile(process.pid);
|
|
134
161
|
process.stdin.unref();
|
|
135
162
|
const shutdown = () => {
|
|
136
163
|
console.log('\nShutting down...');
|
|
137
164
|
connection.stop();
|
|
165
|
+
removePidFile();
|
|
138
166
|
process.exit(0);
|
|
139
167
|
};
|
|
140
168
|
process.on('SIGINT', shutdown);
|
|
141
169
|
process.on('SIGTERM', shutdown);
|
|
142
170
|
}
|
|
171
|
+
function spawnBackgroundAgent() {
|
|
172
|
+
const child = spawn(process.execPath, [process.argv[1], 'start', '--headless'], {
|
|
173
|
+
detached: true,
|
|
174
|
+
stdio: 'ignore',
|
|
175
|
+
});
|
|
176
|
+
child.unref();
|
|
177
|
+
return child.pid;
|
|
178
|
+
}
|
|
143
179
|
async function cmdManager() {
|
|
180
|
+
stopRunningAgent();
|
|
181
|
+
let detached = false;
|
|
144
182
|
const { render } = await import('ink');
|
|
145
183
|
const { createElement } = await import('react');
|
|
146
184
|
const { ManagerApp } = await import('./tui/manager/ManagerApp.js');
|
|
147
|
-
const
|
|
185
|
+
const onDetach = () => {
|
|
186
|
+
detached = true;
|
|
187
|
+
spawnBackgroundAgent();
|
|
188
|
+
};
|
|
189
|
+
const { waitUntilExit } = render(createElement(ManagerApp, { createRuntime, onDetach }));
|
|
148
190
|
await waitUntilExit();
|
|
191
|
+
if (detached) {
|
|
192
|
+
console.log('Agent detached to background.');
|
|
193
|
+
console.log(' sonde stop — stop the background agent');
|
|
194
|
+
console.log(' sonde start — reattach the TUI');
|
|
195
|
+
console.log(' sonde restart — restart in background');
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
function cmdStop() {
|
|
199
|
+
if (stopRunningAgent()) {
|
|
200
|
+
console.log('Agent stopped.');
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
console.log('No running agent found.');
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
function cmdRestart() {
|
|
207
|
+
stopRunningAgent();
|
|
208
|
+
const pid = spawnBackgroundAgent();
|
|
209
|
+
console.log(`Agent restarted in background (PID: ${pid}).`);
|
|
149
210
|
}
|
|
150
211
|
function cmdStatus() {
|
|
151
212
|
const config = loadConfig();
|
|
@@ -154,7 +215,7 @@ function cmdStatus() {
|
|
|
154
215
|
console.log(`Run "sonde enroll" to get started.`);
|
|
155
216
|
return;
|
|
156
217
|
}
|
|
157
|
-
console.log(
|
|
218
|
+
console.log(`Sonde Agent v${VERSION}`);
|
|
158
219
|
console.log(` Name: ${config.agentName}`);
|
|
159
220
|
console.log(` Hub: ${config.hubUrl}`);
|
|
160
221
|
console.log(` Agent ID: ${config.agentId ?? '(not yet assigned)'}`);
|
|
@@ -213,6 +274,12 @@ switch (command) {
|
|
|
213
274
|
});
|
|
214
275
|
}
|
|
215
276
|
break;
|
|
277
|
+
case 'stop':
|
|
278
|
+
cmdStop();
|
|
279
|
+
break;
|
|
280
|
+
case 'restart':
|
|
281
|
+
cmdRestart();
|
|
282
|
+
break;
|
|
216
283
|
case 'status':
|
|
217
284
|
cmdStatus();
|
|
218
285
|
break;
|