@sonde/shared 0.1.0 → 0.1.2
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 +4 -0
- package/.turbo/turbo-test.log +15 -0
- package/.turbo/turbo-typecheck.log +4 -0
- package/CHANGELOG.md +13 -0
- package/dist/crypto/pack-signing.d.ts +18 -0
- package/dist/crypto/pack-signing.d.ts.map +1 -0
- package/dist/crypto/pack-signing.js +31 -0
- package/dist/crypto/pack-signing.js.map +1 -0
- package/dist/crypto/pack-signing.test.d.ts +2 -0
- package/dist/crypto/pack-signing.test.d.ts.map +1 -0
- package/dist/crypto/pack-signing.test.js +61 -0
- package/dist/crypto/pack-signing.test.js.map +1 -0
- package/dist/crypto/signing.test (# Edit conflict 2026-02-17 HtKiQM9 #).js +57 -0
- package/dist/crypto/signing.test.d.ts (# Edit conflict 2026-02-17 EtwzGam #).map +1 -0
- package/dist/crypto/signing.test.js (# Edit conflict 2026-02-17 FD0ZiNy #).map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/schemas/mcp.d.ts +130 -41
- package/dist/schemas/mcp.d.ts.map +1 -1
- package/dist/schemas/mcp.js +34 -11
- package/dist/schemas/mcp.js.map +1 -1
- package/dist/schemas/packs.d.ts +19 -15
- package/dist/schemas/packs.d.ts.map +1 -1
- package/dist/schemas/packs.js +2 -0
- package/dist/schemas/packs.js.map +1 -1
- package/dist/schemas/probes.d.ts +8 -0
- package/dist/schemas/probes.d.ts.map +1 -1
- package/dist/schemas/probes.js +4 -0
- package/dist/schemas/probes.js.map +1 -1
- package/dist/schemas/protocol.d.ts +50 -3
- package/dist/schemas/protocol.d.ts.map +1 -1
- package/dist/schemas/protocol.js +16 -0
- package/dist/schemas/protocol.js.map +1 -1
- package/dist/types/common.d.ts +1 -1
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/common.js +1 -0
- package/dist/types/common.js.map +1 -1
- package/dist/types/integrations.d.ts +38 -0
- package/dist/types/integrations.d.ts.map +1 -0
- package/dist/types/integrations.js +2 -0
- package/dist/types/integrations.js.map +1 -0
- package/package.json +1 -1
- package/src/crypto/pack-signing.test.ts +72 -0
- package/src/crypto/pack-signing.ts +36 -0
- package/src/index.ts +17 -1
- package/src/schemas/mcp.ts +38 -11
- package/src/schemas/packs.ts +2 -0
- package/src/schemas/probes.ts +4 -0
- package/src/schemas/protocol.ts +20 -0
- package/src/types/common.ts +1 -0
- package/src/types/integrations.ts +53 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
|
|
2
|
+
> @sonde/shared@0.1.1 test
|
|
3
|
+
> vitest run
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
RUN v2.1.9 /Users/joshowen/Library/CloudStorage/ProtonDrive-joshowen@protonmail.com-folder/AI/ClaudeCode/sonde/packages/shared
|
|
7
|
+
|
|
8
|
+
✓ src/crypto/pack-signing.test.ts (5 tests) 7ms
|
|
9
|
+
✓ src/crypto/signing.test.ts (6 tests) 45ms
|
|
10
|
+
|
|
11
|
+
Test Files 2 passed (2)
|
|
12
|
+
Tests 11 passed (11)
|
|
13
|
+
Start at 13:22:02
|
|
14
|
+
Duration 911ms (transform 49ms, setup 0ms, collect 165ms, tests 52ms, environment 0ms, prepare 515ms)
|
|
15
|
+
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public key for verifying pack manifest signatures.
|
|
3
|
+
* Populated after running `scripts/generate-pack-keypair.ts`.
|
|
4
|
+
* When empty, verification is skipped (unsigned packs allowed).
|
|
5
|
+
*/
|
|
6
|
+
export declare const PACK_SIGNING_PUBLIC_KEY = "";
|
|
7
|
+
/**
|
|
8
|
+
* Sign a pack manifest. Strips the `signature` field before signing.
|
|
9
|
+
* Returns a base64-encoded RSA-SHA256 signature.
|
|
10
|
+
*/
|
|
11
|
+
export declare function signPackManifest(manifest: Record<string, unknown>, privateKeyPem: string): string;
|
|
12
|
+
/**
|
|
13
|
+
* Verify a pack manifest signature. Strips the `signature` field before verifying.
|
|
14
|
+
* Uses the embedded public key by default, or a provided one.
|
|
15
|
+
* Returns false if signature is missing or verification fails.
|
|
16
|
+
*/
|
|
17
|
+
export declare function verifyPackManifest(manifest: Record<string, unknown>, publicKeyPem?: string): boolean;
|
|
18
|
+
//# sourceMappingURL=pack-signing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-signing.d.ts","sourceRoot":"","sources":["../../src/crypto/pack-signing.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAGjG;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAST"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { signPayload, verifyPayload } from './signing.js';
|
|
2
|
+
/**
|
|
3
|
+
* Public key for verifying pack manifest signatures.
|
|
4
|
+
* Populated after running `scripts/generate-pack-keypair.ts`.
|
|
5
|
+
* When empty, verification is skipped (unsigned packs allowed).
|
|
6
|
+
*/
|
|
7
|
+
export const PACK_SIGNING_PUBLIC_KEY = '';
|
|
8
|
+
/**
|
|
9
|
+
* Sign a pack manifest. Strips the `signature` field before signing.
|
|
10
|
+
* Returns a base64-encoded RSA-SHA256 signature.
|
|
11
|
+
*/
|
|
12
|
+
export function signPackManifest(manifest, privateKeyPem) {
|
|
13
|
+
const { signature: _, ...rest } = manifest;
|
|
14
|
+
return signPayload(rest, privateKeyPem);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Verify a pack manifest signature. Strips the `signature` field before verifying.
|
|
18
|
+
* Uses the embedded public key by default, or a provided one.
|
|
19
|
+
* Returns false if signature is missing or verification fails.
|
|
20
|
+
*/
|
|
21
|
+
export function verifyPackManifest(manifest, publicKeyPem) {
|
|
22
|
+
const key = publicKeyPem ?? PACK_SIGNING_PUBLIC_KEY;
|
|
23
|
+
if (!key)
|
|
24
|
+
return false;
|
|
25
|
+
const sig = manifest.signature;
|
|
26
|
+
if (!sig || typeof sig !== 'string')
|
|
27
|
+
return false;
|
|
28
|
+
const { signature: _, ...rest } = manifest;
|
|
29
|
+
return verifyPayload(rest, sig, key);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=pack-signing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-signing.js","sourceRoot":"","sources":["../../src/crypto/pack-signing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAiC,EAAE,aAAqB;IACvF,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;IAC3C,OAAO,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAiC,EACjC,YAAqB;IAErB,MAAM,GAAG,GAAG,YAAY,IAAI,uBAAuB,CAAC;IACpD,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IAEvB,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC;IAC/B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAElD,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;IAC3C,OAAO,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-signing.test.d.ts","sourceRoot":"","sources":["../../src/crypto/pack-signing.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import crypto from 'node:crypto';
|
|
2
|
+
import { describe, expect, it } from 'vitest';
|
|
3
|
+
import { signPackManifest, verifyPackManifest } from './pack-signing.js';
|
|
4
|
+
function generateTestKeypair() {
|
|
5
|
+
const { publicKey, privateKey } = crypto.generateKeyPairSync('rsa', {
|
|
6
|
+
modulusLength: 2048,
|
|
7
|
+
publicKeyEncoding: { type: 'spki', format: 'pem' },
|
|
8
|
+
privateKeyEncoding: { type: 'pkcs8', format: 'pem' },
|
|
9
|
+
});
|
|
10
|
+
return { publicKey: publicKey, privateKey: privateKey };
|
|
11
|
+
}
|
|
12
|
+
const testManifest = {
|
|
13
|
+
name: 'system',
|
|
14
|
+
version: '0.1.0',
|
|
15
|
+
description: 'System monitoring probes',
|
|
16
|
+
requires: { groups: [], files: [], commands: [] },
|
|
17
|
+
probes: [
|
|
18
|
+
{
|
|
19
|
+
name: 'disk.usage',
|
|
20
|
+
description: 'Disk usage',
|
|
21
|
+
capability: 'observe',
|
|
22
|
+
timeout: 30000,
|
|
23
|
+
},
|
|
24
|
+
],
|
|
25
|
+
};
|
|
26
|
+
describe('pack-signing', () => {
|
|
27
|
+
const { publicKey, privateKey } = generateTestKeypair();
|
|
28
|
+
it('should sign and verify a pack manifest', () => {
|
|
29
|
+
const sig = signPackManifest(testManifest, privateKey);
|
|
30
|
+
expect(sig).toBeTruthy();
|
|
31
|
+
expect(typeof sig).toBe('string');
|
|
32
|
+
const signedManifest = { ...testManifest, signature: sig };
|
|
33
|
+
const valid = verifyPackManifest(signedManifest, publicKey);
|
|
34
|
+
expect(valid).toBe(true);
|
|
35
|
+
});
|
|
36
|
+
it('should reject a tampered manifest', () => {
|
|
37
|
+
const sig = signPackManifest(testManifest, privateKey);
|
|
38
|
+
const tampered = { ...testManifest, signature: sig, version: '9.9.9' };
|
|
39
|
+
const valid = verifyPackManifest(tampered, publicKey);
|
|
40
|
+
expect(valid).toBe(false);
|
|
41
|
+
});
|
|
42
|
+
it('should return false for missing signature', () => {
|
|
43
|
+
const valid = verifyPackManifest(testManifest, publicKey);
|
|
44
|
+
expect(valid).toBe(false);
|
|
45
|
+
});
|
|
46
|
+
it('should return false when no public key is available', () => {
|
|
47
|
+
const sig = signPackManifest(testManifest, privateKey);
|
|
48
|
+
const signedManifest = { ...testManifest, signature: sig };
|
|
49
|
+
// No public key passed and PACK_SIGNING_PUBLIC_KEY is empty
|
|
50
|
+
const valid = verifyPackManifest(signedManifest);
|
|
51
|
+
expect(valid).toBe(false);
|
|
52
|
+
});
|
|
53
|
+
it('should ignore existing signature field when signing', () => {
|
|
54
|
+
const manifestWithSig = { ...testManifest, signature: 'old-sig' };
|
|
55
|
+
const sig = signPackManifest(manifestWithSig, privateKey);
|
|
56
|
+
// Should produce same signature as manifest without signature field
|
|
57
|
+
const sigClean = signPackManifest(testManifest, privateKey);
|
|
58
|
+
expect(sig).toBe(sigClean);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=pack-signing.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pack-signing.test.js","sourceRoot":"","sources":["../../src/crypto/pack-signing.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import crypto from 'node:crypto';
|
|
2
|
+
import { describe, expect, it } from 'vitest';
|
|
3
|
+
import { signPayload, verifyPayload } from './signing.js';
|
|
4
|
+
function generateKeyPair() {
|
|
5
|
+
return crypto.generateKeyPairSync('rsa', {
|
|
6
|
+
modulusLength: 2048,
|
|
7
|
+
publicKeyEncoding: { type: 'spki', format: 'pem' },
|
|
8
|
+
privateKeyEncoding: { type: 'pkcs8', format: 'pem' },
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
describe('signPayload / verifyPayload', () => {
|
|
12
|
+
const { publicKey, privateKey } = generateKeyPair();
|
|
13
|
+
it('sign + verify with matching RSA keypair succeeds', () => {
|
|
14
|
+
const payload = { probe: 'system.disk.usage', data: { usedPct: 42 } };
|
|
15
|
+
const sig = signPayload(payload, privateKey);
|
|
16
|
+
expect(sig).toBeTruthy();
|
|
17
|
+
expect(verifyPayload(payload, sig, publicKey)).toBe(true);
|
|
18
|
+
});
|
|
19
|
+
it('wrong key → verify returns false', () => {
|
|
20
|
+
const other = generateKeyPair();
|
|
21
|
+
const payload = { msg: 'hello' };
|
|
22
|
+
const sig = signPayload(payload, privateKey);
|
|
23
|
+
expect(verifyPayload(payload, sig, other.publicKey)).toBe(false);
|
|
24
|
+
});
|
|
25
|
+
it('tampered payload → verify returns false', () => {
|
|
26
|
+
const payload = { value: 1 };
|
|
27
|
+
const sig = signPayload(payload, privateKey);
|
|
28
|
+
expect(verifyPayload({ value: 2 }, sig, publicKey)).toBe(false);
|
|
29
|
+
});
|
|
30
|
+
it('various payload types serialize consistently', () => {
|
|
31
|
+
const payloads = [null, 42, 'hello', [1, 2, 3], { nested: { a: 1 } }];
|
|
32
|
+
for (const p of payloads) {
|
|
33
|
+
const sig = signPayload(p, privateKey);
|
|
34
|
+
expect(sig).toBeTruthy();
|
|
35
|
+
expect(verifyPayload(p, sig, publicKey)).toBe(true);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
it('invalid inputs return empty string / false (not throw)', () => {
|
|
39
|
+
expect(signPayload({ a: 1 }, 'not-a-key')).toBe('');
|
|
40
|
+
expect(verifyPayload({ a: 1 }, 'bad-sig', publicKey)).toBe(false);
|
|
41
|
+
expect(verifyPayload({ a: 1 }, 'bad-sig', 'not-a-key')).toBe(false);
|
|
42
|
+
});
|
|
43
|
+
it('verify with certificate PEM works', () => {
|
|
44
|
+
// Generate a self-signed cert wrapping the public key
|
|
45
|
+
const payload = { test: true };
|
|
46
|
+
const sig = signPayload(payload, privateKey);
|
|
47
|
+
// Node's createVerify can accept a cert PEM that contains the public key
|
|
48
|
+
// We'll create a minimal self-signed cert for this test
|
|
49
|
+
const cert = crypto.X509Certificate;
|
|
50
|
+
// Use the public key PEM directly as Node also accepts it; for cert-based
|
|
51
|
+
// verification, we rely on the hub's ca.ts issuing real certs. Here we just
|
|
52
|
+
// confirm that the function doesn't choke on cert-like input and that
|
|
53
|
+
// standard public key PEM works in the verifyPayload path.
|
|
54
|
+
expect(verifyPayload(payload, sig, publicKey)).toBe(true);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
//# sourceMappingURL=signing.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signing.test.d.ts","sourceRoot":"","sources":["../../src/crypto/signing.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signing.test.js","sourceRoot":"","sources":["../../src/crypto/signing.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
export { CapabilityLevel, AgentStatus, PackStatus, ProbeStatus, MessageType, DEFAULT_PROBE_TIMEOUT_MS, DEFAULT_HUB_PORT, HEARTBEAT_INTERVAL_MS, } from './types/common.js';
|
|
2
2
|
export { AgentPackInfo, AgentInfo } from './types/agent.js';
|
|
3
3
|
export { HubConfig } from './types/hub.js';
|
|
4
|
-
export {
|
|
4
|
+
export type { FetchFn, AuthMethod, OAuth2Credentials, IntegrationCredentials, IntegrationConfig, IntegrationProbeHandler, IntegrationPack, } from './types/integrations.js';
|
|
5
|
+
export { MessageEnvelope, RegisterPayload } from './schemas/protocol.js';
|
|
5
6
|
export { ProbeRequest, ProbeResponse } from './schemas/probes.js';
|
|
6
7
|
export { ProbeParamDef, DbRoleRequirement, PackRequirements, ProbeDefinition, RunbookDefinition, DetectRules, PackManifest, } from './schemas/packs.js';
|
|
7
8
|
export { AttestationData } from './schemas/attestation.js';
|
|
8
9
|
export { signPayload, verifyPayload } from './crypto/signing.js';
|
|
10
|
+
export { PACK_SIGNING_PUBLIC_KEY, signPackManifest, verifyPackManifest, } from './crypto/pack-signing.js';
|
|
9
11
|
export { ProbeInput, DiagnoseInput, DiagnoseOutput, ListAgentsOutput, } from './schemas/mcp.js';
|
|
10
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EACV,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGzE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGlE,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,YAAY,GACb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGjE,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,7 @@ export { CapabilityLevel, AgentStatus, PackStatus, ProbeStatus, MessageType, DEF
|
|
|
3
3
|
export { AgentPackInfo, AgentInfo } from './types/agent.js';
|
|
4
4
|
export { HubConfig } from './types/hub.js';
|
|
5
5
|
// Schemas — Protocol
|
|
6
|
-
export { MessageEnvelope } from './schemas/protocol.js';
|
|
6
|
+
export { MessageEnvelope, RegisterPayload } from './schemas/protocol.js';
|
|
7
7
|
// Schemas — Probes
|
|
8
8
|
export { ProbeRequest, ProbeResponse } from './schemas/probes.js';
|
|
9
9
|
// Schemas — Packs
|
|
@@ -12,6 +12,8 @@ export { ProbeParamDef, DbRoleRequirement, PackRequirements, ProbeDefinition, Ru
|
|
|
12
12
|
export { AttestationData } from './schemas/attestation.js';
|
|
13
13
|
// Crypto — Signing
|
|
14
14
|
export { signPayload, verifyPayload } from './crypto/signing.js';
|
|
15
|
+
// Crypto — Pack Signing
|
|
16
|
+
export { PACK_SIGNING_PUBLIC_KEY, signPackManifest, verifyPackManifest, } from './crypto/pack-signing.js';
|
|
15
17
|
// Schemas — MCP
|
|
16
18
|
export { ProbeInput, DiagnoseInput, DiagnoseOutput, ListAgentsOutput, } from './schemas/mcp.js';
|
|
17
19
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,OAAO,EACL,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,QAAQ;AACR,OAAO,EACL,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAW3C,qBAAqB;AACrB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEzE,mBAAmB;AACnB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAElE,kBAAkB;AAClB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,YAAY,GACb,MAAM,oBAAoB,CAAC;AAE5B,wBAAwB;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,mBAAmB;AACnB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEjE,wBAAwB;AACxB,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,gBAAgB;AAChB,OAAO,EACL,UAAU,EACV,aAAa,EACb,cAAc,EACd,gBAAgB,GACjB,MAAM,kBAAkB,CAAC"}
|
package/dist/schemas/mcp.d.ts
CHANGED
|
@@ -4,19 +4,19 @@ import { z } from 'zod';
|
|
|
4
4
|
* MVP's primary MCP tool — sends a single probe to an agent.
|
|
5
5
|
*/
|
|
6
6
|
export declare const ProbeInput: z.ZodObject<{
|
|
7
|
-
/** Agent name or ID */
|
|
8
|
-
agent: z.ZodString
|
|
7
|
+
/** Agent name or ID (required for agent probes, omit for integration probes) */
|
|
8
|
+
agent: z.ZodOptional<z.ZodString>;
|
|
9
9
|
/** Full probe name, e.g. "system.disk.usage" */
|
|
10
10
|
probe: z.ZodString;
|
|
11
11
|
/** Probe-specific parameters */
|
|
12
12
|
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
13
13
|
}, "strip", z.ZodTypeAny, {
|
|
14
14
|
probe: string;
|
|
15
|
-
agent
|
|
15
|
+
agent?: string | undefined;
|
|
16
16
|
params?: Record<string, unknown> | undefined;
|
|
17
17
|
}, {
|
|
18
18
|
probe: string;
|
|
19
|
-
agent
|
|
19
|
+
agent?: string | undefined;
|
|
20
20
|
params?: Record<string, unknown> | undefined;
|
|
21
21
|
}>;
|
|
22
22
|
export type ProbeInput = z.infer<typeof ProbeInput>;
|
|
@@ -24,19 +24,23 @@ export type ProbeInput = z.infer<typeof ProbeInput>;
|
|
|
24
24
|
* Input schema for the `diagnose` MCP tool (post-MVP).
|
|
25
25
|
*/
|
|
26
26
|
export declare const DiagnoseInput: z.ZodObject<{
|
|
27
|
-
/** Agent name or ID */
|
|
28
|
-
agent: z.ZodString
|
|
27
|
+
/** Agent name or ID (required for agent probes, omit for integration probes) */
|
|
28
|
+
agent: z.ZodOptional<z.ZodString>;
|
|
29
29
|
/** Pack category, e.g. "docker", "system" */
|
|
30
30
|
category: z.ZodString;
|
|
31
31
|
/** Natural language problem description */
|
|
32
32
|
description: z.ZodOptional<z.ZodString>;
|
|
33
|
+
/** Parameters for diagnostic runbooks (e.g. { vmid: 100 }) */
|
|
34
|
+
params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
33
35
|
}, "strip", z.ZodTypeAny, {
|
|
34
36
|
category: string;
|
|
35
|
-
agent
|
|
37
|
+
agent?: string | undefined;
|
|
38
|
+
params?: Record<string, unknown> | undefined;
|
|
36
39
|
description?: string | undefined;
|
|
37
40
|
}, {
|
|
38
41
|
category: string;
|
|
39
|
-
agent
|
|
42
|
+
agent?: string | undefined;
|
|
43
|
+
params?: Record<string, unknown> | undefined;
|
|
40
44
|
description?: string | undefined;
|
|
41
45
|
}>;
|
|
42
46
|
export type DiagnoseInput = z.infer<typeof DiagnoseInput>;
|
|
@@ -44,52 +48,137 @@ export type DiagnoseInput = z.infer<typeof DiagnoseInput>;
|
|
|
44
48
|
* Output schema for the `diagnose` MCP tool (post-MVP).
|
|
45
49
|
*/
|
|
46
50
|
export declare const DiagnoseOutput: z.ZodObject<{
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
summary: z.ZodObject<{
|
|
51
|
+
/** Execution metadata */
|
|
52
|
+
meta: z.ZodObject<{
|
|
53
|
+
agent: z.ZodString;
|
|
54
|
+
timestamp: z.ZodString;
|
|
55
|
+
category: z.ZodString;
|
|
56
|
+
runbookId: z.ZodString;
|
|
54
57
|
probesRun: z.ZodNumber;
|
|
55
58
|
probesSucceeded: z.ZodNumber;
|
|
56
59
|
probesFailed: z.ZodNumber;
|
|
57
60
|
durationMs: z.ZodNumber;
|
|
61
|
+
summaryText: z.ZodOptional<z.ZodString>;
|
|
62
|
+
/** Whether any probe data was truncated */
|
|
63
|
+
truncated: z.ZodOptional<z.ZodBoolean>;
|
|
64
|
+
/** Whether runbook timed out with partial results */
|
|
65
|
+
timedOut: z.ZodOptional<z.ZodBoolean>;
|
|
58
66
|
}, "strip", z.ZodTypeAny, {
|
|
59
|
-
|
|
67
|
+
agent: string;
|
|
68
|
+
category: string;
|
|
69
|
+
timestamp: string;
|
|
70
|
+
runbookId: string;
|
|
60
71
|
probesRun: number;
|
|
61
72
|
probesSucceeded: number;
|
|
62
73
|
probesFailed: number;
|
|
63
|
-
}, {
|
|
64
74
|
durationMs: number;
|
|
75
|
+
summaryText?: string | undefined;
|
|
76
|
+
truncated?: boolean | undefined;
|
|
77
|
+
timedOut?: boolean | undefined;
|
|
78
|
+
}, {
|
|
79
|
+
agent: string;
|
|
80
|
+
category: string;
|
|
81
|
+
timestamp: string;
|
|
82
|
+
runbookId: string;
|
|
65
83
|
probesRun: number;
|
|
66
84
|
probesSucceeded: number;
|
|
67
85
|
probesFailed: number;
|
|
86
|
+
durationMs: number;
|
|
87
|
+
summaryText?: string | undefined;
|
|
88
|
+
truncated?: boolean | undefined;
|
|
89
|
+
timedOut?: boolean | undefined;
|
|
68
90
|
}>;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
91
|
+
/** Raw probe data keyed by probe name */
|
|
92
|
+
probes: z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
93
|
+
status: z.ZodEnum<["success", "error", "timeout"]>;
|
|
94
|
+
data: z.ZodUnknown;
|
|
95
|
+
durationMs: z.ZodNumber;
|
|
96
|
+
error: z.ZodOptional<z.ZodString>;
|
|
97
|
+
}, "strip", z.ZodTypeAny, {
|
|
98
|
+
status: "success" | "error" | "timeout";
|
|
99
|
+
durationMs: number;
|
|
100
|
+
error?: string | undefined;
|
|
101
|
+
data?: unknown;
|
|
102
|
+
}, {
|
|
103
|
+
status: "success" | "error" | "timeout";
|
|
76
104
|
durationMs: number;
|
|
105
|
+
error?: string | undefined;
|
|
106
|
+
data?: unknown;
|
|
107
|
+
}>>;
|
|
108
|
+
/** Structured analysis findings from diagnostic runbooks */
|
|
109
|
+
findings: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
110
|
+
severity: z.ZodEnum<["info", "warning", "critical"]>;
|
|
111
|
+
title: z.ZodString;
|
|
112
|
+
detail: z.ZodString;
|
|
113
|
+
remediation: z.ZodOptional<z.ZodString>;
|
|
114
|
+
relatedProbes: z.ZodArray<z.ZodString, "many">;
|
|
115
|
+
}, "strip", z.ZodTypeAny, {
|
|
116
|
+
severity: "info" | "warning" | "critical";
|
|
117
|
+
title: string;
|
|
118
|
+
detail: string;
|
|
119
|
+
relatedProbes: string[];
|
|
120
|
+
remediation?: string | undefined;
|
|
121
|
+
}, {
|
|
122
|
+
severity: "info" | "warning" | "critical";
|
|
123
|
+
title: string;
|
|
124
|
+
detail: string;
|
|
125
|
+
relatedProbes: string[];
|
|
126
|
+
remediation?: string | undefined;
|
|
127
|
+
}>, "many">>;
|
|
128
|
+
}, "strip", z.ZodTypeAny, {
|
|
129
|
+
meta: {
|
|
130
|
+
agent: string;
|
|
131
|
+
category: string;
|
|
132
|
+
timestamp: string;
|
|
133
|
+
runbookId: string;
|
|
77
134
|
probesRun: number;
|
|
78
135
|
probesSucceeded: number;
|
|
79
136
|
probesFailed: number;
|
|
137
|
+
durationMs: number;
|
|
138
|
+
summaryText?: string | undefined;
|
|
139
|
+
truncated?: boolean | undefined;
|
|
140
|
+
timedOut?: boolean | undefined;
|
|
80
141
|
};
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
runbookId: string;
|
|
84
|
-
category: string;
|
|
85
|
-
agent: string;
|
|
86
|
-
findings: Record<string, unknown>;
|
|
87
|
-
summary: {
|
|
142
|
+
probes: Record<string, {
|
|
143
|
+
status: "success" | "error" | "timeout";
|
|
88
144
|
durationMs: number;
|
|
145
|
+
error?: string | undefined;
|
|
146
|
+
data?: unknown;
|
|
147
|
+
}>;
|
|
148
|
+
findings?: {
|
|
149
|
+
severity: "info" | "warning" | "critical";
|
|
150
|
+
title: string;
|
|
151
|
+
detail: string;
|
|
152
|
+
relatedProbes: string[];
|
|
153
|
+
remediation?: string | undefined;
|
|
154
|
+
}[] | undefined;
|
|
155
|
+
}, {
|
|
156
|
+
meta: {
|
|
157
|
+
agent: string;
|
|
158
|
+
category: string;
|
|
159
|
+
timestamp: string;
|
|
160
|
+
runbookId: string;
|
|
89
161
|
probesRun: number;
|
|
90
162
|
probesSucceeded: number;
|
|
91
163
|
probesFailed: number;
|
|
164
|
+
durationMs: number;
|
|
165
|
+
summaryText?: string | undefined;
|
|
166
|
+
truncated?: boolean | undefined;
|
|
167
|
+
timedOut?: boolean | undefined;
|
|
92
168
|
};
|
|
169
|
+
probes: Record<string, {
|
|
170
|
+
status: "success" | "error" | "timeout";
|
|
171
|
+
durationMs: number;
|
|
172
|
+
error?: string | undefined;
|
|
173
|
+
data?: unknown;
|
|
174
|
+
}>;
|
|
175
|
+
findings?: {
|
|
176
|
+
severity: "info" | "warning" | "critical";
|
|
177
|
+
title: string;
|
|
178
|
+
detail: string;
|
|
179
|
+
relatedProbes: string[];
|
|
180
|
+
remediation?: string | undefined;
|
|
181
|
+
}[] | undefined;
|
|
93
182
|
}>;
|
|
94
183
|
export type DiagnoseOutput = z.infer<typeof DiagnoseOutput>;
|
|
95
184
|
/**
|
|
@@ -106,11 +195,11 @@ export declare const ListAgentsOutput: z.ZodObject<{
|
|
|
106
195
|
version: z.ZodString;
|
|
107
196
|
status: z.ZodEnum<["active", "pending", "error"]>;
|
|
108
197
|
}, "strip", z.ZodTypeAny, {
|
|
109
|
-
status: "
|
|
198
|
+
status: "error" | "active" | "pending";
|
|
110
199
|
name: string;
|
|
111
200
|
version: string;
|
|
112
201
|
}, {
|
|
113
|
-
status: "
|
|
202
|
+
status: "error" | "active" | "pending";
|
|
114
203
|
name: string;
|
|
115
204
|
version: string;
|
|
116
205
|
}>, "many">;
|
|
@@ -118,11 +207,11 @@ export declare const ListAgentsOutput: z.ZodObject<{
|
|
|
118
207
|
agentVersion: z.ZodString;
|
|
119
208
|
}, "strip", z.ZodTypeAny, {
|
|
120
209
|
status: "online" | "offline" | "degraded";
|
|
121
|
-
name: string;
|
|
122
210
|
id: string;
|
|
211
|
+
name: string;
|
|
123
212
|
lastSeen: string;
|
|
124
213
|
packs: {
|
|
125
|
-
status: "
|
|
214
|
+
status: "error" | "active" | "pending";
|
|
126
215
|
name: string;
|
|
127
216
|
version: string;
|
|
128
217
|
}[];
|
|
@@ -130,11 +219,11 @@ export declare const ListAgentsOutput: z.ZodObject<{
|
|
|
130
219
|
agentVersion: string;
|
|
131
220
|
}, {
|
|
132
221
|
status: "online" | "offline" | "degraded";
|
|
133
|
-
name: string;
|
|
134
222
|
id: string;
|
|
223
|
+
name: string;
|
|
135
224
|
lastSeen: string;
|
|
136
225
|
packs: {
|
|
137
|
-
status: "
|
|
226
|
+
status: "error" | "active" | "pending";
|
|
138
227
|
name: string;
|
|
139
228
|
version: string;
|
|
140
229
|
}[];
|
|
@@ -144,11 +233,11 @@ export declare const ListAgentsOutput: z.ZodObject<{
|
|
|
144
233
|
}, "strip", z.ZodTypeAny, {
|
|
145
234
|
agents: {
|
|
146
235
|
status: "online" | "offline" | "degraded";
|
|
147
|
-
name: string;
|
|
148
236
|
id: string;
|
|
237
|
+
name: string;
|
|
149
238
|
lastSeen: string;
|
|
150
239
|
packs: {
|
|
151
|
-
status: "
|
|
240
|
+
status: "error" | "active" | "pending";
|
|
152
241
|
name: string;
|
|
153
242
|
version: string;
|
|
154
243
|
}[];
|
|
@@ -158,11 +247,11 @@ export declare const ListAgentsOutput: z.ZodObject<{
|
|
|
158
247
|
}, {
|
|
159
248
|
agents: {
|
|
160
249
|
status: "online" | "offline" | "degraded";
|
|
161
|
-
name: string;
|
|
162
250
|
id: string;
|
|
251
|
+
name: string;
|
|
163
252
|
lastSeen: string;
|
|
164
253
|
packs: {
|
|
165
|
-
status: "
|
|
254
|
+
status: "error" | "active" | "pending";
|
|
166
255
|
name: string;
|
|
167
256
|
version: string;
|
|
168
257
|
}[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/schemas/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;GAGG;AACH,eAAO,MAAM,UAAU;IACrB,
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/schemas/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;GAGG;AACH,eAAO,MAAM,UAAU;IACrB,gFAAgF;;IAEhF,gDAAgD;;IAEhD,gCAAgC;;;;;;;;;;EAEhC,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,aAAa;IACxB,gFAAgF;;IAEhF,6CAA6C;;IAE7C,2CAA2C;;IAE3C,8DAA8D;;;;;;;;;;;;EAE9D,CAAC;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB,yBAAyB;;;;;;;;;;;QAWvB,2CAA2C;;QAE3C,qDAAqD;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGvD,yCAAyC;;;;;;;;;;;;;;;;;IASzC,4DAA4D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAY5D,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|