hackmyagent 0.7.2 → 0.8.0
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/LICENSE +191 -0
- package/README.md +66 -28
- package/dist/arp/cli/index.d.ts +3 -0
- package/dist/arp/cli/index.d.ts.map +1 -0
- package/dist/arp/cli/index.js +219 -0
- package/dist/arp/cli/index.js.map +1 -0
- package/dist/arp/config/loader.d.ts +8 -0
- package/dist/arp/config/loader.d.ts.map +1 -0
- package/dist/arp/config/loader.js +102 -0
- package/dist/arp/config/loader.js.map +1 -0
- package/dist/arp/enforcement/kill-switch.d.ts +22 -0
- package/dist/arp/enforcement/kill-switch.d.ts.map +1 -0
- package/dist/arp/enforcement/kill-switch.js +122 -0
- package/dist/arp/enforcement/kill-switch.js.map +1 -0
- package/dist/arp/engine/event-engine.d.ts +29 -0
- package/dist/arp/engine/event-engine.d.ts.map +1 -0
- package/dist/arp/engine/event-engine.js +233 -0
- package/dist/arp/engine/event-engine.js.map +1 -0
- package/dist/arp/index.d.ts +81 -0
- package/dist/arp/index.d.ts.map +1 -0
- package/dist/arp/index.js +239 -0
- package/dist/arp/index.js.map +1 -0
- package/dist/arp/intelligence/adapters.d.ts +45 -0
- package/dist/arp/intelligence/adapters.d.ts.map +1 -0
- package/dist/arp/intelligence/adapters.js +222 -0
- package/dist/arp/intelligence/adapters.js.map +1 -0
- package/dist/arp/intelligence/anomaly.d.ts +32 -0
- package/dist/arp/intelligence/anomaly.d.ts.map +1 -0
- package/dist/arp/intelligence/anomaly.js +80 -0
- package/dist/arp/intelligence/anomaly.js.map +1 -0
- package/dist/arp/intelligence/budget.d.ts +33 -0
- package/dist/arp/intelligence/budget.d.ts.map +1 -0
- package/dist/arp/intelligence/budget.js +150 -0
- package/dist/arp/intelligence/budget.js.map +1 -0
- package/dist/arp/intelligence/coordinator.d.ts +43 -0
- package/dist/arp/intelligence/coordinator.d.ts.map +1 -0
- package/dist/arp/intelligence/coordinator.js +301 -0
- package/dist/arp/intelligence/coordinator.js.map +1 -0
- package/dist/arp/interceptors/a2a-protocol.d.ts +29 -0
- package/dist/arp/interceptors/a2a-protocol.d.ts.map +1 -0
- package/dist/arp/interceptors/a2a-protocol.js +111 -0
- package/dist/arp/interceptors/a2a-protocol.js.map +1 -0
- package/dist/arp/interceptors/filesystem.d.ts +33 -0
- package/dist/arp/interceptors/filesystem.d.ts.map +1 -0
- package/dist/arp/interceptors/filesystem.js +199 -0
- package/dist/arp/interceptors/filesystem.js.map +1 -0
- package/dist/arp/interceptors/mcp-protocol.d.ts +25 -0
- package/dist/arp/interceptors/mcp-protocol.d.ts.map +1 -0
- package/dist/arp/interceptors/mcp-protocol.js +126 -0
- package/dist/arp/interceptors/mcp-protocol.js.map +1 -0
- package/dist/arp/interceptors/network.d.ts +26 -0
- package/dist/arp/interceptors/network.d.ts.map +1 -0
- package/dist/arp/interceptors/network.js +146 -0
- package/dist/arp/interceptors/network.js.map +1 -0
- package/dist/arp/interceptors/process.d.ts +26 -0
- package/dist/arp/interceptors/process.d.ts.map +1 -0
- package/dist/arp/interceptors/process.js +157 -0
- package/dist/arp/interceptors/process.js.map +1 -0
- package/dist/arp/interceptors/prompt.d.ts +29 -0
- package/dist/arp/interceptors/prompt.d.ts.map +1 -0
- package/dist/arp/interceptors/prompt.js +82 -0
- package/dist/arp/interceptors/prompt.js.map +1 -0
- package/dist/arp/license/index.d.ts +59 -0
- package/dist/arp/license/index.d.ts.map +1 -0
- package/dist/arp/license/index.js +78 -0
- package/dist/arp/license/index.js.map +1 -0
- package/dist/arp/monitors/filesystem.d.ts +21 -0
- package/dist/arp/monitors/filesystem.d.ts.map +1 -0
- package/dist/arp/monitors/filesystem.js +141 -0
- package/dist/arp/monitors/filesystem.js.map +1 -0
- package/dist/arp/monitors/network.d.ts +32 -0
- package/dist/arp/monitors/network.d.ts.map +1 -0
- package/dist/arp/monitors/network.js +301 -0
- package/dist/arp/monitors/network.js.map +1 -0
- package/dist/arp/monitors/process.d.ts +24 -0
- package/dist/arp/monitors/process.d.ts.map +1 -0
- package/dist/arp/monitors/process.js +205 -0
- package/dist/arp/monitors/process.js.map +1 -0
- package/dist/arp/patterns/ai-threats.d.ts +48 -0
- package/dist/arp/patterns/ai-threats.d.ts.map +1 -0
- package/dist/arp/patterns/ai-threats.js +215 -0
- package/dist/arp/patterns/ai-threats.js.map +1 -0
- package/dist/arp/proxy/forward.d.ts +23 -0
- package/dist/arp/proxy/forward.d.ts.map +1 -0
- package/dist/arp/proxy/forward.js +152 -0
- package/dist/arp/proxy/forward.js.map +1 -0
- package/dist/arp/proxy/server.d.ts +45 -0
- package/dist/arp/proxy/server.d.ts.map +1 -0
- package/dist/arp/proxy/server.js +331 -0
- package/dist/arp/proxy/server.js.map +1 -0
- package/dist/arp/reporting/local-log.d.ts +22 -0
- package/dist/arp/reporting/local-log.d.ts.map +1 -0
- package/dist/arp/reporting/local-log.js +116 -0
- package/dist/arp/reporting/local-log.js.map +1 -0
- package/dist/arp/types.d.ts +230 -0
- package/dist/arp/types.d.ts.map +1 -0
- package/dist/arp/types.js +4 -0
- package/dist/arp/types.js.map +1 -0
- package/dist/attack/custom-payloads.d.ts +11 -0
- package/dist/attack/custom-payloads.d.ts.map +1 -0
- package/dist/attack/custom-payloads.js +108 -0
- package/dist/attack/custom-payloads.js.map +1 -0
- package/dist/attack/fail-policy.d.ts +16 -0
- package/dist/attack/fail-policy.d.ts.map +1 -0
- package/dist/attack/fail-policy.js +36 -0
- package/dist/attack/fail-policy.js.map +1 -0
- package/dist/attack/index.d.ts +12 -0
- package/dist/attack/index.d.ts.map +1 -0
- package/dist/attack/index.js +30 -0
- package/dist/attack/index.js.map +1 -0
- package/dist/attack/payloads/a2a-attacks.d.ts +12 -0
- package/dist/attack/payloads/a2a-attacks.d.ts.map +1 -0
- package/dist/attack/payloads/a2a-attacks.js +221 -0
- package/dist/attack/payloads/a2a-attacks.js.map +1 -0
- package/dist/attack/payloads/capability-abuse.d.ts +8 -0
- package/dist/attack/payloads/capability-abuse.d.ts.map +1 -0
- package/dist/attack/payloads/capability-abuse.js +222 -0
- package/dist/attack/payloads/capability-abuse.js.map +1 -0
- package/dist/attack/payloads/context-manipulation.d.ts +8 -0
- package/dist/attack/payloads/context-manipulation.d.ts.map +1 -0
- package/dist/attack/payloads/context-manipulation.js +217 -0
- package/dist/attack/payloads/context-manipulation.js.map +1 -0
- package/dist/attack/payloads/data-exfiltration.d.ts +8 -0
- package/dist/attack/payloads/data-exfiltration.d.ts.map +1 -0
- package/dist/attack/payloads/data-exfiltration.js +249 -0
- package/dist/attack/payloads/data-exfiltration.js.map +1 -0
- package/dist/attack/payloads/index.d.ts +29 -0
- package/dist/attack/payloads/index.d.ts.map +1 -0
- package/dist/attack/payloads/index.js +76 -0
- package/dist/attack/payloads/index.js.map +1 -0
- package/dist/attack/payloads/jailbreak.d.ts +8 -0
- package/dist/attack/payloads/jailbreak.d.ts.map +1 -0
- package/dist/attack/payloads/jailbreak.js +265 -0
- package/dist/attack/payloads/jailbreak.js.map +1 -0
- package/dist/attack/payloads/mcp-exploitation.d.ts +12 -0
- package/dist/attack/payloads/mcp-exploitation.d.ts.map +1 -0
- package/dist/attack/payloads/mcp-exploitation.js +221 -0
- package/dist/attack/payloads/mcp-exploitation.js.map +1 -0
- package/dist/attack/payloads/prompt-injection.d.ts +8 -0
- package/dist/attack/payloads/prompt-injection.d.ts.map +1 -0
- package/dist/attack/payloads/prompt-injection.js +262 -0
- package/dist/attack/payloads/prompt-injection.js.map +1 -0
- package/dist/attack/scanner.d.ts +84 -0
- package/dist/attack/scanner.d.ts.map +1 -0
- package/dist/attack/scanner.js +509 -0
- package/dist/attack/scanner.js.map +1 -0
- package/dist/attack/types.d.ts +153 -0
- package/dist/attack/types.d.ts.map +1 -0
- package/dist/attack/types.js +46 -0
- package/dist/attack/types.js.map +1 -0
- package/dist/benchmarks/index.d.ts +16 -0
- package/dist/benchmarks/index.d.ts.map +1 -0
- package/dist/benchmarks/index.js +27 -0
- package/dist/benchmarks/index.js.map +1 -0
- package/dist/benchmarks/oasb-1.d.ts +112 -0
- package/dist/benchmarks/oasb-1.d.ts.map +1 -0
- package/dist/benchmarks/oasb-1.js +1124 -0
- package/dist/benchmarks/oasb-1.js.map +1 -0
- package/dist/checker/check-skill.d.ts +48 -0
- package/dist/checker/check-skill.d.ts.map +1 -0
- package/dist/checker/check-skill.js +105 -0
- package/dist/checker/check-skill.js.map +1 -0
- package/dist/checker/index.d.ts +12 -0
- package/dist/checker/index.d.ts.map +1 -0
- package/dist/checker/index.js +16 -0
- package/dist/checker/index.js.map +1 -0
- package/dist/checker/permission-analyzer.d.ts +12 -0
- package/dist/checker/permission-analyzer.d.ts.map +1 -0
- package/dist/checker/permission-analyzer.js +84 -0
- package/dist/checker/permission-analyzer.js.map +1 -0
- package/dist/checker/publisher-verifier.d.ts +34 -0
- package/dist/checker/publisher-verifier.d.ts.map +1 -0
- package/dist/checker/publisher-verifier.js +121 -0
- package/dist/checker/publisher-verifier.js.map +1 -0
- package/dist/checker/skill-identifier.d.ts +14 -0
- package/dist/checker/skill-identifier.d.ts.map +1 -0
- package/dist/checker/skill-identifier.js +55 -0
- package/dist/checker/skill-identifier.js.map +1 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +3534 -0
- package/dist/cli.js.map +1 -0
- package/dist/hardening/index.d.ts +7 -0
- package/dist/hardening/index.d.ts.map +1 -0
- package/dist/hardening/index.js +9 -0
- package/dist/hardening/index.js.map +1 -0
- package/dist/hardening/scanner.d.ts +147 -0
- package/dist/hardening/scanner.d.ts.map +1 -0
- package/dist/hardening/scanner.js +5445 -0
- package/dist/hardening/scanner.js.map +1 -0
- package/dist/hardening/security-check.d.ts +85 -0
- package/dist/hardening/security-check.d.ts.map +1 -0
- package/dist/hardening/security-check.js +6 -0
- package/dist/hardening/security-check.js.map +1 -0
- package/dist/index.d.ts +38 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +91 -3525
- package/dist/index.js.map +1 -1
- package/dist/mcp-server.js +10 -10
- package/dist/mcp-server.js.map +1 -1
- package/dist/oasb/config/dvaa-targets.d.ts +13 -0
- package/dist/oasb/config/dvaa-targets.d.ts.map +1 -0
- package/dist/oasb/config/dvaa-targets.js +89 -0
- package/dist/oasb/config/dvaa-targets.js.map +1 -0
- package/dist/oasb/harness/arp-wrapper.d.ts +29 -0
- package/dist/oasb/harness/arp-wrapper.d.ts.map +1 -0
- package/dist/oasb/harness/arp-wrapper.js +134 -0
- package/dist/oasb/harness/arp-wrapper.js.map +1 -0
- package/dist/oasb/harness/dvaa-client.d.ts +46 -0
- package/dist/oasb/harness/dvaa-client.d.ts.map +1 -0
- package/dist/oasb/harness/dvaa-client.js +98 -0
- package/dist/oasb/harness/dvaa-client.js.map +1 -0
- package/dist/oasb/harness/dvaa-manager.d.ts +17 -0
- package/dist/oasb/harness/dvaa-manager.d.ts.map +1 -0
- package/dist/oasb/harness/dvaa-manager.js +132 -0
- package/dist/oasb/harness/dvaa-manager.js.map +1 -0
- package/dist/oasb/harness/event-collector.d.ts +33 -0
- package/dist/oasb/harness/event-collector.d.ts.map +1 -0
- package/dist/oasb/harness/event-collector.js +86 -0
- package/dist/oasb/harness/event-collector.js.map +1 -0
- package/dist/oasb/harness/metrics.d.ts +14 -0
- package/dist/oasb/harness/metrics.d.ts.map +1 -0
- package/dist/oasb/harness/metrics.js +56 -0
- package/dist/oasb/harness/metrics.js.map +1 -0
- package/dist/oasb/harness/mock-llm-adapter.d.ts +34 -0
- package/dist/oasb/harness/mock-llm-adapter.d.ts.map +1 -0
- package/dist/oasb/harness/mock-llm-adapter.js +69 -0
- package/dist/oasb/harness/mock-llm-adapter.js.map +1 -0
- package/dist/oasb/harness/types.d.ts +74 -0
- package/dist/oasb/harness/types.d.ts.map +1 -0
- package/dist/oasb/harness/types.js +3 -0
- package/dist/oasb/harness/types.js.map +1 -0
- package/dist/plugins/core.d.ts +109 -0
- package/dist/plugins/core.d.ts.map +1 -0
- package/dist/plugins/core.js +30 -0
- package/dist/plugins/core.js.map +1 -0
- package/dist/plugins/credvault.d.ts +22 -0
- package/dist/plugins/credvault.d.ts.map +1 -0
- package/dist/plugins/credvault.js +374 -0
- package/dist/plugins/credvault.js.map +1 -0
- package/dist/plugins/signcrypt.d.ts +27 -0
- package/dist/plugins/signcrypt.d.ts.map +1 -0
- package/dist/plugins/signcrypt.js +317 -0
- package/dist/plugins/signcrypt.js.map +1 -0
- package/dist/plugins/skillguard.d.ts +25 -0
- package/dist/plugins/skillguard.d.ts.map +1 -0
- package/dist/plugins/skillguard.js +346 -0
- package/dist/plugins/skillguard.js.map +1 -0
- package/dist/registry/client.d.ts +125 -0
- package/dist/registry/client.d.ts.map +1 -0
- package/dist/registry/client.js +308 -0
- package/dist/registry/client.js.map +1 -0
- package/dist/registry/index.d.ts +3 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +10 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/scanner/external-scanner.d.ts +13 -0
- package/dist/scanner/external-scanner.d.ts.map +1 -0
- package/dist/scanner/external-scanner.js +299 -0
- package/dist/scanner/external-scanner.js.map +1 -0
- package/dist/scanner/index.d.ts +6 -0
- package/dist/scanner/index.d.ts.map +1 -0
- package/dist/scanner/index.js +9 -0
- package/dist/scanner/index.js.map +1 -0
- package/dist/scanner/types.d.ts +32 -0
- package/dist/scanner/types.d.ts.map +1 -0
- package/dist/scanner/types.js +6 -0
- package/dist/scanner/types.js.map +1 -0
- package/dist/semantic/deep-scan.d.ts +13 -0
- package/dist/semantic/deep-scan.d.ts.map +1 -0
- package/dist/semantic/deep-scan.js +63 -0
- package/dist/semantic/deep-scan.js.map +1 -0
- package/dist/semantic/index.d.ts +17 -0
- package/dist/semantic/index.d.ts.map +1 -0
- package/dist/semantic/index.js +39 -0
- package/dist/semantic/index.js.map +1 -0
- package/dist/semantic/integration/cost-estimator.d.ts +17 -0
- package/dist/semantic/integration/cost-estimator.d.ts.map +1 -0
- package/dist/semantic/integration/cost-estimator.js +54 -0
- package/dist/semantic/integration/cost-estimator.js.map +1 -0
- package/dist/semantic/integration/finding-adapter.d.ts +34 -0
- package/dist/semantic/integration/finding-adapter.d.ts.map +1 -0
- package/dist/semantic/integration/finding-adapter.js +41 -0
- package/dist/semantic/integration/finding-adapter.js.map +1 -0
- package/dist/semantic/integration/oasb-upgrader.d.ts +20 -0
- package/dist/semantic/integration/oasb-upgrader.d.ts.map +1 -0
- package/dist/semantic/integration/oasb-upgrader.js +47 -0
- package/dist/semantic/integration/oasb-upgrader.js.map +1 -0
- package/dist/semantic/llm/budget.d.ts +50 -0
- package/dist/semantic/llm/budget.d.ts.map +1 -0
- package/dist/semantic/llm/budget.js +139 -0
- package/dist/semantic/llm/budget.js.map +1 -0
- package/dist/semantic/llm/cache.d.ts +36 -0
- package/dist/semantic/llm/cache.d.ts.map +1 -0
- package/dist/semantic/llm/cache.js +103 -0
- package/dist/semantic/llm/cache.js.map +1 -0
- package/dist/semantic/llm/client.d.ts +49 -0
- package/dist/semantic/llm/client.d.ts.map +1 -0
- package/dist/semantic/llm/client.js +64 -0
- package/dist/semantic/llm/client.js.map +1 -0
- package/dist/semantic/llm/index.d.ts +33 -0
- package/dist/semantic/llm/index.d.ts.map +1 -0
- package/dist/semantic/llm/index.js +129 -0
- package/dist/semantic/llm/index.js.map +1 -0
- package/dist/semantic/llm/prompts.d.ts +30 -0
- package/dist/semantic/llm/prompts.d.ts.map +1 -0
- package/dist/semantic/llm/prompts.js +120 -0
- package/dist/semantic/llm/prompts.js.map +1 -0
- package/dist/semantic/structural/credential-context.d.ts +14 -0
- package/dist/semantic/structural/credential-context.d.ts.map +1 -0
- package/dist/semantic/structural/credential-context.js +295 -0
- package/dist/semantic/structural/credential-context.js.map +1 -0
- package/dist/semantic/structural/index.d.ts +28 -0
- package/dist/semantic/structural/index.d.ts.map +1 -0
- package/dist/semantic/structural/index.js +138 -0
- package/dist/semantic/structural/index.js.map +1 -0
- package/dist/semantic/structural/instruction.d.ts +19 -0
- package/dist/semantic/structural/instruction.d.ts.map +1 -0
- package/dist/semantic/structural/instruction.js +167 -0
- package/dist/semantic/structural/instruction.js.map +1 -0
- package/dist/semantic/structural/mcp-config.d.ts +22 -0
- package/dist/semantic/structural/mcp-config.d.ts.map +1 -0
- package/dist/semantic/structural/mcp-config.js +294 -0
- package/dist/semantic/structural/mcp-config.js.map +1 -0
- package/dist/semantic/structural/permission-model.d.ts +16 -0
- package/dist/semantic/structural/permission-model.d.ts.map +1 -0
- package/dist/semantic/structural/permission-model.js +121 -0
- package/dist/semantic/structural/permission-model.js.map +1 -0
- package/dist/semantic/types.d.ts +122 -0
- package/dist/semantic/types.d.ts.map +1 -0
- package/dist/semantic/types.js +10 -0
- package/dist/semantic/types.js.map +1 -0
- package/package.json +25 -14
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oasb-1.js","sourceRoot":"","sources":["../../src/benchmarks/oasb-1.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill checker
|
|
3
|
+
* Main entry point for checking a skill's safety
|
|
4
|
+
*/
|
|
5
|
+
import { type VerifyOptions } from './publisher-verifier';
|
|
6
|
+
export type RiskLevel = 'low' | 'medium' | 'high' | 'critical';
|
|
7
|
+
export interface PublisherInfo {
|
|
8
|
+
name: string;
|
|
9
|
+
verified: boolean;
|
|
10
|
+
verificationMethod?: 'dns' | 'github' | 'none';
|
|
11
|
+
domain?: string;
|
|
12
|
+
verifiedAt?: Date;
|
|
13
|
+
failureReason?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface PermissionInfo {
|
|
16
|
+
requested: string[];
|
|
17
|
+
safe: string[];
|
|
18
|
+
dangerous: string[];
|
|
19
|
+
reviewNeeded: string[];
|
|
20
|
+
riskScore: number;
|
|
21
|
+
}
|
|
22
|
+
export interface RevocationInfo {
|
|
23
|
+
revoked: boolean;
|
|
24
|
+
reason?: string;
|
|
25
|
+
revokedAt?: Date;
|
|
26
|
+
checkedAt: Date;
|
|
27
|
+
}
|
|
28
|
+
export interface CheckResult {
|
|
29
|
+
skillId: string;
|
|
30
|
+
publisher: PublisherInfo;
|
|
31
|
+
permissions: PermissionInfo;
|
|
32
|
+
revocation: RevocationInfo;
|
|
33
|
+
risk: RiskLevel;
|
|
34
|
+
}
|
|
35
|
+
export interface CheckOptions {
|
|
36
|
+
manifest?: {
|
|
37
|
+
permissions?: string[];
|
|
38
|
+
};
|
|
39
|
+
/** Skip real DNS verification (for testing) */
|
|
40
|
+
mockVerified?: boolean;
|
|
41
|
+
mockRevoked?: boolean;
|
|
42
|
+
/** Skip DNS lookup entirely (offline mode) */
|
|
43
|
+
skipDnsVerification?: boolean;
|
|
44
|
+
/** Options passed to verifyPublisher */
|
|
45
|
+
verifyOptions?: VerifyOptions;
|
|
46
|
+
}
|
|
47
|
+
export declare function checkSkill(skillId: string, options?: CheckOptions): Promise<CheckResult>;
|
|
48
|
+
//# sourceMappingURL=check-skill.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-skill.d.ts","sourceRoot":"","sources":["../../src/checker/check-skill.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE3E,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,aAAa,CAAC;IACzB,WAAW,EAAE,cAAc,CAAC;IAC5B,UAAU,EAAE,cAAc,CAAC;IAC3B,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,+CAA+C;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,8CAA8C;IAC9C,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,wCAAwC;IACxC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,WAAW,CAAC,CAgCtB"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Skill checker
|
|
4
|
+
* Main entry point for checking a skill's safety
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.checkSkill = checkSkill;
|
|
8
|
+
const skill_identifier_1 = require("./skill-identifier");
|
|
9
|
+
const permission_analyzer_1 = require("./permission-analyzer");
|
|
10
|
+
const publisher_verifier_1 = require("./publisher-verifier");
|
|
11
|
+
async function checkSkill(skillId, options) {
|
|
12
|
+
// Parse skill identifier
|
|
13
|
+
const parsed = (0, skill_identifier_1.parseSkillIdentifier)(skillId);
|
|
14
|
+
// Get publisher info
|
|
15
|
+
const publisher = await getPublisherInfo(parsed.publisher, options);
|
|
16
|
+
// Get permissions from manifest
|
|
17
|
+
const requestedPermissions = options?.manifest?.permissions ?? [];
|
|
18
|
+
const permissionAnalysis = (0, permission_analyzer_1.analyzePermissions)(requestedPermissions);
|
|
19
|
+
const permissions = {
|
|
20
|
+
requested: requestedPermissions,
|
|
21
|
+
safe: permissionAnalysis.safe,
|
|
22
|
+
dangerous: permissionAnalysis.dangerous,
|
|
23
|
+
reviewNeeded: permissionAnalysis.reviewNeeded,
|
|
24
|
+
riskScore: permissionAnalysis.riskScore,
|
|
25
|
+
};
|
|
26
|
+
// Check revocation status
|
|
27
|
+
const revocation = await checkRevocation(skillId, options);
|
|
28
|
+
// Calculate overall risk
|
|
29
|
+
const risk = calculateRisk(publisher, permissions, revocation);
|
|
30
|
+
return {
|
|
31
|
+
skillId,
|
|
32
|
+
publisher,
|
|
33
|
+
permissions,
|
|
34
|
+
revocation,
|
|
35
|
+
risk,
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
async function getPublisherInfo(publisherName, options) {
|
|
39
|
+
const name = publisherName ?? 'unknown';
|
|
40
|
+
// Handle mock verification for testing (backwards compatible)
|
|
41
|
+
if (options?.mockVerified !== undefined) {
|
|
42
|
+
return {
|
|
43
|
+
name,
|
|
44
|
+
verified: options.mockVerified,
|
|
45
|
+
verificationMethod: options.mockVerified ? 'dns' : 'none',
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
// Skip DNS verification if requested (offline mode)
|
|
49
|
+
if (options?.skipDnsVerification) {
|
|
50
|
+
return {
|
|
51
|
+
name,
|
|
52
|
+
verified: false,
|
|
53
|
+
verificationMethod: 'none',
|
|
54
|
+
failureReason: 'DNS verification skipped (offline mode)',
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
// Perform real DNS verification
|
|
58
|
+
const verification = await (0, publisher_verifier_1.verifyPublisher)(name, options?.verifyOptions);
|
|
59
|
+
return {
|
|
60
|
+
name,
|
|
61
|
+
verified: verification.verified,
|
|
62
|
+
verificationMethod: verification.method,
|
|
63
|
+
domain: verification.domain,
|
|
64
|
+
verifiedAt: verification.verifiedAt,
|
|
65
|
+
failureReason: verification.failureReason,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
async function checkRevocation(skillId, options) {
|
|
69
|
+
const checkedAt = new Date();
|
|
70
|
+
// Handle mock revocation for testing
|
|
71
|
+
if (options?.mockRevoked) {
|
|
72
|
+
return {
|
|
73
|
+
revoked: true,
|
|
74
|
+
reason: 'Skill has been revoked for security reasons',
|
|
75
|
+
revokedAt: new Date(),
|
|
76
|
+
checkedAt,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
// Known revoked skills (in production, this would query a revocation list)
|
|
80
|
+
const revokedSkills = new Set(['@malicious/bad-skill']);
|
|
81
|
+
const revoked = revokedSkills.has(skillId);
|
|
82
|
+
return {
|
|
83
|
+
revoked,
|
|
84
|
+
reason: revoked ? 'Skill has been revoked for security reasons' : undefined,
|
|
85
|
+
revokedAt: revoked ? new Date() : undefined,
|
|
86
|
+
checkedAt,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
function calculateRisk(publisher, permissions, revocation) {
|
|
90
|
+
// Critical: skill is revoked
|
|
91
|
+
if (revocation.revoked) {
|
|
92
|
+
return 'critical';
|
|
93
|
+
}
|
|
94
|
+
// High: dangerous permissions
|
|
95
|
+
if (permissions.dangerous.length > 0) {
|
|
96
|
+
return 'high';
|
|
97
|
+
}
|
|
98
|
+
// Medium: unverified publisher or permissions needing review
|
|
99
|
+
if (!publisher.verified || permissions.reviewNeeded.length > 0) {
|
|
100
|
+
return 'medium';
|
|
101
|
+
}
|
|
102
|
+
// Low: verified publisher with safe permissions
|
|
103
|
+
return 'low';
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=check-skill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check-skill.js","sourceRoot":"","sources":["../../src/checker/check-skill.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill checker module
|
|
3
|
+
*/
|
|
4
|
+
export { parseSkillIdentifier } from './skill-identifier';
|
|
5
|
+
export type { SkillIdentifier } from './skill-identifier';
|
|
6
|
+
export { analyzePermissions } from './permission-analyzer';
|
|
7
|
+
export type { PermissionAnalysis } from './permission-analyzer';
|
|
8
|
+
export { verifyPublisher, lookupDnsTxt } from './publisher-verifier';
|
|
9
|
+
export type { PublisherVerification, VerificationMethod, VerifyOptions, } from './publisher-verifier';
|
|
10
|
+
export { checkSkill } from './check-skill';
|
|
11
|
+
export type { CheckResult, CheckOptions, PublisherInfo, PermissionInfo, RevocationInfo, RiskLevel, } from './check-skill';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/checker/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EACV,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,cAAc,EACd,SAAS,GACV,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Skill checker module
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.checkSkill = exports.lookupDnsTxt = exports.verifyPublisher = exports.analyzePermissions = exports.parseSkillIdentifier = void 0;
|
|
7
|
+
var skill_identifier_1 = require("./skill-identifier");
|
|
8
|
+
Object.defineProperty(exports, "parseSkillIdentifier", { enumerable: true, get: function () { return skill_identifier_1.parseSkillIdentifier; } });
|
|
9
|
+
var permission_analyzer_1 = require("./permission-analyzer");
|
|
10
|
+
Object.defineProperty(exports, "analyzePermissions", { enumerable: true, get: function () { return permission_analyzer_1.analyzePermissions; } });
|
|
11
|
+
var publisher_verifier_1 = require("./publisher-verifier");
|
|
12
|
+
Object.defineProperty(exports, "verifyPublisher", { enumerable: true, get: function () { return publisher_verifier_1.verifyPublisher; } });
|
|
13
|
+
Object.defineProperty(exports, "lookupDnsTxt", { enumerable: true, get: function () { return publisher_verifier_1.lookupDnsTxt; } });
|
|
14
|
+
var check_skill_1 = require("./check-skill");
|
|
15
|
+
Object.defineProperty(exports, "checkSkill", { enumerable: true, get: function () { return check_skill_1.checkSkill; } });
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checker/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uDAA0D;AAAjD,wHAAA,oBAAoB,OAAA;AAG7B,6DAA2D;AAAlD,yHAAA,kBAAkB,OAAA;AAG3B,2DAAqE;AAA5D,qHAAA,eAAe,OAAA;AAAE,kHAAA,YAAY,OAAA;AAOtC,6CAA2C;AAAlC,yGAAA,UAAU,OAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Permission analyzer
|
|
3
|
+
* Analyzes skill permissions and categorizes them by risk level
|
|
4
|
+
*/
|
|
5
|
+
export interface PermissionAnalysis {
|
|
6
|
+
safe: string[];
|
|
7
|
+
dangerous: string[];
|
|
8
|
+
reviewNeeded: string[];
|
|
9
|
+
riskScore: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function analyzePermissions(permissions: string[]): PermissionAnalysis;
|
|
12
|
+
//# sourceMappingURL=permission-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission-analyzer.d.ts","sourceRoot":"","sources":["../../src/checker/permission-analyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AA0BD,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAoC5E"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Permission analyzer
|
|
4
|
+
* Analyzes skill permissions and categorizes them by risk level
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.analyzePermissions = analyzePermissions;
|
|
8
|
+
// Permissions that are always safe (read-only, limited scope)
|
|
9
|
+
const SAFE_PERMISSIONS = new Set([
|
|
10
|
+
'messages:read',
|
|
11
|
+
'config:read',
|
|
12
|
+
'storage:local',
|
|
13
|
+
]);
|
|
14
|
+
// Patterns that indicate dangerous permissions
|
|
15
|
+
const DANGEROUS_PATTERNS = [
|
|
16
|
+
/^shell:/, // Any shell access
|
|
17
|
+
/^filesystem:\*$/, // Wildcard filesystem
|
|
18
|
+
/^filesystem:\/$/, // Root filesystem
|
|
19
|
+
/^filesystem:~$/, // Home directory (broad)
|
|
20
|
+
/^network:\*$/, // Wildcard network
|
|
21
|
+
/^mcp:\*$/, // Wildcard MCP
|
|
22
|
+
];
|
|
23
|
+
// Patterns that need review (scoped but still sensitive)
|
|
24
|
+
const REVIEW_PATTERNS = [
|
|
25
|
+
/^filesystem:~\/.+/, // Scoped home directory paths
|
|
26
|
+
/^network:[^*]+$/, // Specific network hosts
|
|
27
|
+
/^mcp:[^*]+$/, // Specific MCP servers
|
|
28
|
+
];
|
|
29
|
+
function analyzePermissions(permissions) {
|
|
30
|
+
const safe = [];
|
|
31
|
+
const dangerous = [];
|
|
32
|
+
const reviewNeeded = [];
|
|
33
|
+
for (const permission of permissions) {
|
|
34
|
+
if (SAFE_PERMISSIONS.has(permission)) {
|
|
35
|
+
safe.push(permission);
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const isDangerous = DANGEROUS_PATTERNS.some((pattern) => pattern.test(permission));
|
|
39
|
+
if (isDangerous) {
|
|
40
|
+
dangerous.push(permission);
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const needsReview = REVIEW_PATTERNS.some((pattern) => pattern.test(permission));
|
|
44
|
+
if (needsReview) {
|
|
45
|
+
reviewNeeded.push(permission);
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
// Default: if not recognized, mark as needing review
|
|
49
|
+
reviewNeeded.push(permission);
|
|
50
|
+
}
|
|
51
|
+
// Calculate risk score (0-100)
|
|
52
|
+
const riskScore = calculateRiskScore(safe, dangerous, reviewNeeded);
|
|
53
|
+
return {
|
|
54
|
+
safe,
|
|
55
|
+
dangerous,
|
|
56
|
+
reviewNeeded,
|
|
57
|
+
riskScore,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
function calculateRiskScore(safe, dangerous, reviewNeeded) {
|
|
61
|
+
if (safe.length === 0 && dangerous.length === 0 && reviewNeeded.length === 0) {
|
|
62
|
+
return 0;
|
|
63
|
+
}
|
|
64
|
+
// Weights for each category
|
|
65
|
+
const SAFE_WEIGHT = 5;
|
|
66
|
+
const REVIEW_WEIGHT = 25;
|
|
67
|
+
const DANGEROUS_WEIGHT = 50;
|
|
68
|
+
const totalPermissions = safe.length + dangerous.length + reviewNeeded.length;
|
|
69
|
+
const weightedSum = safe.length * SAFE_WEIGHT +
|
|
70
|
+
reviewNeeded.length * REVIEW_WEIGHT +
|
|
71
|
+
dangerous.length * DANGEROUS_WEIGHT;
|
|
72
|
+
// Normalize to 0-100, with a minimum based on dangerous permissions
|
|
73
|
+
const baseScore = Math.min(100, (weightedSum / totalPermissions));
|
|
74
|
+
// If any dangerous permissions, ensure minimum score of 71
|
|
75
|
+
if (dangerous.length > 0) {
|
|
76
|
+
return Math.max(71, baseScore);
|
|
77
|
+
}
|
|
78
|
+
// If only review-needed, ensure minimum score of 31
|
|
79
|
+
if (reviewNeeded.length > 0 && safe.length === 0) {
|
|
80
|
+
return Math.max(31, baseScore);
|
|
81
|
+
}
|
|
82
|
+
return baseScore;
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=permission-analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission-analyzer.js","sourceRoot":"","sources":["../../src/checker/permission-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Publisher verification via DNS TXT records
|
|
3
|
+
*
|
|
4
|
+
* Publishers can verify ownership by adding a TXT record to their domain:
|
|
5
|
+
* - hackmyagent-verify=<publisher-name>
|
|
6
|
+
* - hackmyagent-publisher=<publisher-name>
|
|
7
|
+
* - opena2a-verify=<publisher-name>
|
|
8
|
+
*
|
|
9
|
+
* The record can be at:
|
|
10
|
+
* - The root domain (e.g., TXT @ for publisher.dev)
|
|
11
|
+
* - A _hackmyagent subdomain (e.g., TXT _hackmyagent.publisher.dev)
|
|
12
|
+
*/
|
|
13
|
+
export type VerificationMethod = 'dns' | 'github' | 'none';
|
|
14
|
+
export interface PublisherVerification {
|
|
15
|
+
verified: boolean;
|
|
16
|
+
method: VerificationMethod;
|
|
17
|
+
domain?: string;
|
|
18
|
+
txtRecord?: string;
|
|
19
|
+
verifiedAt?: Date;
|
|
20
|
+
failureReason?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface VerifyOptions {
|
|
23
|
+
mockDnsRecords?: Record<string, string[]>;
|
|
24
|
+
registryDomains?: Record<string, string>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Look up TXT records for a domain
|
|
28
|
+
*/
|
|
29
|
+
export declare function lookupDnsTxt(domain: string): Promise<string[]>;
|
|
30
|
+
/**
|
|
31
|
+
* Verify a publisher's identity via DNS TXT records
|
|
32
|
+
*/
|
|
33
|
+
export declare function verifyPublisher(publisherName: string, options?: VerifyOptions): Promise<PublisherVerification>;
|
|
34
|
+
//# sourceMappingURL=publisher-verifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publisher-verifier.d.ts","sourceRoot":"","sources":["../../src/checker/publisher-verifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAaD;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CASpE;AAuED;;GAEG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,EACrB,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,qBAAqB,CAAC,CA0BhC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Publisher verification via DNS TXT records
|
|
4
|
+
*
|
|
5
|
+
* Publishers can verify ownership by adding a TXT record to their domain:
|
|
6
|
+
* - hackmyagent-verify=<publisher-name>
|
|
7
|
+
* - hackmyagent-publisher=<publisher-name>
|
|
8
|
+
* - opena2a-verify=<publisher-name>
|
|
9
|
+
*
|
|
10
|
+
* The record can be at:
|
|
11
|
+
* - The root domain (e.g., TXT @ for publisher.dev)
|
|
12
|
+
* - A _hackmyagent subdomain (e.g., TXT _hackmyagent.publisher.dev)
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.lookupDnsTxt = lookupDnsTxt;
|
|
16
|
+
exports.verifyPublisher = verifyPublisher;
|
|
17
|
+
const dns_1 = require("dns");
|
|
18
|
+
// Accepted TXT record prefixes (case-insensitive)
|
|
19
|
+
const VALID_PREFIXES = [
|
|
20
|
+
'hackmyagent-verify=',
|
|
21
|
+
'hackmyagent-publisher=',
|
|
22
|
+
'opena2a-verify=',
|
|
23
|
+
'publisher=', // For _hackmyagent subdomain
|
|
24
|
+
];
|
|
25
|
+
// Domain suffixes to try when looking up a publisher
|
|
26
|
+
const DOMAIN_SUFFIXES = ['.dev', '.com', '.io', '.org'];
|
|
27
|
+
/**
|
|
28
|
+
* Look up TXT records for a domain
|
|
29
|
+
*/
|
|
30
|
+
async function lookupDnsTxt(domain) {
|
|
31
|
+
try {
|
|
32
|
+
const records = await dns_1.promises.resolveTxt(domain);
|
|
33
|
+
// dns.resolveTxt returns string[][] (chunks), flatten them
|
|
34
|
+
return records.map((chunks) => chunks.join(''));
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
// ENOTFOUND, ENODATA, etc. - domain doesn't exist or has no TXT records
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Check if a TXT record verifies the publisher
|
|
43
|
+
*/
|
|
44
|
+
function checkTxtRecord(record, publisherName) {
|
|
45
|
+
const lowerRecord = record.toLowerCase();
|
|
46
|
+
const lowerPublisher = publisherName.toLowerCase();
|
|
47
|
+
for (const prefix of VALID_PREFIXES) {
|
|
48
|
+
if (lowerRecord.startsWith(prefix.toLowerCase())) {
|
|
49
|
+
const value = record.substring(prefix.length).trim();
|
|
50
|
+
return value.toLowerCase() === lowerPublisher;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get domains to check for a publisher
|
|
57
|
+
*/
|
|
58
|
+
function getDomainsToCheck(publisherName, options) {
|
|
59
|
+
const domains = [];
|
|
60
|
+
// If registry has a custom domain for this publisher, check it first
|
|
61
|
+
if (options?.registryDomains?.[publisherName]) {
|
|
62
|
+
const customDomain = options.registryDomains[publisherName];
|
|
63
|
+
domains.push(customDomain);
|
|
64
|
+
domains.push(`_hackmyagent.${customDomain}`);
|
|
65
|
+
}
|
|
66
|
+
// Try common domain patterns
|
|
67
|
+
for (const suffix of DOMAIN_SUFFIXES) {
|
|
68
|
+
const baseDomain = `${publisherName}${suffix}`;
|
|
69
|
+
domains.push(baseDomain);
|
|
70
|
+
domains.push(`_hackmyagent.${baseDomain}`);
|
|
71
|
+
}
|
|
72
|
+
return domains;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Look up DNS TXT records (with mock support for testing)
|
|
76
|
+
*/
|
|
77
|
+
async function getDnsRecords(domain, options) {
|
|
78
|
+
// Use mock records if provided (for testing)
|
|
79
|
+
if (options?.mockDnsRecords) {
|
|
80
|
+
return options.mockDnsRecords[domain] ?? [];
|
|
81
|
+
}
|
|
82
|
+
// Real DNS lookup
|
|
83
|
+
return lookupDnsTxt(domain);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Extract the base domain from a full domain (removes _hackmyagent. prefix)
|
|
87
|
+
*/
|
|
88
|
+
function getBaseDomain(domain) {
|
|
89
|
+
if (domain.startsWith('_hackmyagent.')) {
|
|
90
|
+
return domain.substring('_hackmyagent.'.length);
|
|
91
|
+
}
|
|
92
|
+
return domain;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Verify a publisher's identity via DNS TXT records
|
|
96
|
+
*/
|
|
97
|
+
async function verifyPublisher(publisherName, options) {
|
|
98
|
+
const domainsToCheck = getDomainsToCheck(publisherName, options);
|
|
99
|
+
const checkedDomains = [];
|
|
100
|
+
for (const domain of domainsToCheck) {
|
|
101
|
+
checkedDomains.push(domain);
|
|
102
|
+
const records = await getDnsRecords(domain, options);
|
|
103
|
+
for (const record of records) {
|
|
104
|
+
if (checkTxtRecord(record, publisherName)) {
|
|
105
|
+
return {
|
|
106
|
+
verified: true,
|
|
107
|
+
method: 'dns',
|
|
108
|
+
domain: getBaseDomain(domain),
|
|
109
|
+
txtRecord: record,
|
|
110
|
+
verifiedAt: new Date(),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
verified: false,
|
|
117
|
+
method: 'none',
|
|
118
|
+
failureReason: `No valid TXT record found for publisher "${publisherName}". Checked domains: ${checkedDomains.join(', ')}`,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=publisher-verifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publisher-verifier.js","sourceRoot":"","sources":["../../src/checker/publisher-verifier.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;AAkCH,oCASC;AA0ED,0CA6BC;AAhJD,6BAAsC;AAkBtC,kDAAkD;AAClD,MAAM,cAAc,GAAG;IACrB,qBAAqB;IACrB,wBAAwB;IACxB,iBAAiB;IACjB,YAAY,EAAE,6BAA6B;CAC5C,CAAC;AAEF,qDAAqD;AACrD,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAExD;;GAEG;AACI,KAAK,UAAU,YAAY,CAAC,MAAc;IAC/C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,cAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7C,2DAA2D;QAC3D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,wEAAwE;QACxE,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,MAAc,EAAE,aAAqB;IAC3D,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,cAAc,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC;IAEnD,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC;QAChD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACxB,aAAqB,EACrB,OAAuB;IAEvB,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,qEAAqE;IACrE,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,gBAAgB,YAAY,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,6BAA6B;IAC7B,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,GAAG,aAAa,GAAG,MAAM,EAAE,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,MAAc,EACd,OAAuB;IAEvB,6CAA6C;IAC7C,IAAI,OAAO,EAAE,cAAc,EAAE,CAAC;QAC5B,OAAO,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED,kBAAkB;IAClB,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,MAAc;IACnC,IAAI,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,eAAe,CACnC,aAAqB,EACrB,OAAuB;IAEvB,MAAM,cAAc,GAAG,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACjE,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAErD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;gBAC1C,OAAO;oBACL,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC;oBAC7B,SAAS,EAAE,MAAM;oBACjB,UAAU,EAAE,IAAI,IAAI,EAAE;iBACvB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,KAAK;QACf,MAAM,EAAE,MAAM;QACd,aAAa,EAAE,4CAA4C,aAAa,uBAAuB,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;KAC3H,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill identifier parser
|
|
3
|
+
* Parses skill identifiers like @publisher/skill, ./local/path, or GitHub URLs
|
|
4
|
+
*/
|
|
5
|
+
export interface SkillIdentifier {
|
|
6
|
+
publisher?: string;
|
|
7
|
+
name: string;
|
|
8
|
+
version?: string;
|
|
9
|
+
source: 'registry' | 'local' | 'github';
|
|
10
|
+
path?: string;
|
|
11
|
+
url?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function parseSkillIdentifier(identifier: string): SkillIdentifier;
|
|
14
|
+
//# sourceMappingURL=skill-identifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-identifier.d.ts","sourceRoot":"","sources":["../../src/checker/skill-identifier.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,eAAe,CAmDxE"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Skill identifier parser
|
|
4
|
+
* Parses skill identifiers like @publisher/skill, ./local/path, or GitHub URLs
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.parseSkillIdentifier = parseSkillIdentifier;
|
|
8
|
+
function parseSkillIdentifier(identifier) {
|
|
9
|
+
const trimmed = identifier.trim();
|
|
10
|
+
if (!trimmed) {
|
|
11
|
+
throw new Error('Invalid skill identifier: empty string');
|
|
12
|
+
}
|
|
13
|
+
// GitHub URL
|
|
14
|
+
if (trimmed.startsWith('https://github.com/')) {
|
|
15
|
+
const match = trimmed.match(/^https:\/\/github\.com\/([^/]+)\/([^/]+)/);
|
|
16
|
+
if (!match) {
|
|
17
|
+
throw new Error('Invalid skill identifier: malformed GitHub URL');
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
publisher: match[1],
|
|
21
|
+
name: match[2],
|
|
22
|
+
version: undefined,
|
|
23
|
+
source: 'github',
|
|
24
|
+
url: trimmed,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
// Local path (relative or absolute)
|
|
28
|
+
if (trimmed.startsWith('./') || trimmed.startsWith('/')) {
|
|
29
|
+
const parts = trimmed.split('/');
|
|
30
|
+
const name = parts[parts.length - 1];
|
|
31
|
+
return {
|
|
32
|
+
publisher: undefined,
|
|
33
|
+
name,
|
|
34
|
+
version: undefined,
|
|
35
|
+
source: 'local',
|
|
36
|
+
path: trimmed,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
// Scoped npm-style identifier @publisher/skill[@version]
|
|
40
|
+
if (trimmed.startsWith('@')) {
|
|
41
|
+
// Match @publisher/name or @publisher/name@version
|
|
42
|
+
const match = trimmed.match(/^@([^/]+)\/([^@]+)(?:@(.+))?$/);
|
|
43
|
+
if (!match || !match[1] || !match[2]) {
|
|
44
|
+
throw new Error('Invalid skill identifier: malformed scoped identifier');
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
publisher: match[1],
|
|
48
|
+
name: match[2],
|
|
49
|
+
version: match[3],
|
|
50
|
+
source: 'registry',
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
throw new Error('Invalid skill identifier: unrecognized format');
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=skill-identifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-identifier.js","sourceRoot":"","sources":["../../src/checker/skill-identifier.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAWH,oDAmDC;AAnDD,SAAgB,oBAAoB,CAAC,UAAkB;IACrD,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IAElC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,aAAa;IACb,IAAI,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACxE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QACD,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YACnB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,QAAQ;YAChB,GAAG,EAAE,OAAO;SACb,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACrC,OAAO;YACL,SAAS,EAAE,SAAS;YACpB,IAAI;YACJ,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,OAAO;SACd,CAAC;IACJ,CAAC;IAED,yDAAyD;IACzD,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,mDAAmD;QACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YACnB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YACjB,MAAM,EAAE,UAAU;SACnB,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;AACnE,CAAC"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;GAGG"}
|