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.
Files changed (333) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +66 -28
  3. package/dist/arp/cli/index.d.ts +3 -0
  4. package/dist/arp/cli/index.d.ts.map +1 -0
  5. package/dist/arp/cli/index.js +219 -0
  6. package/dist/arp/cli/index.js.map +1 -0
  7. package/dist/arp/config/loader.d.ts +8 -0
  8. package/dist/arp/config/loader.d.ts.map +1 -0
  9. package/dist/arp/config/loader.js +102 -0
  10. package/dist/arp/config/loader.js.map +1 -0
  11. package/dist/arp/enforcement/kill-switch.d.ts +22 -0
  12. package/dist/arp/enforcement/kill-switch.d.ts.map +1 -0
  13. package/dist/arp/enforcement/kill-switch.js +122 -0
  14. package/dist/arp/enforcement/kill-switch.js.map +1 -0
  15. package/dist/arp/engine/event-engine.d.ts +29 -0
  16. package/dist/arp/engine/event-engine.d.ts.map +1 -0
  17. package/dist/arp/engine/event-engine.js +233 -0
  18. package/dist/arp/engine/event-engine.js.map +1 -0
  19. package/dist/arp/index.d.ts +81 -0
  20. package/dist/arp/index.d.ts.map +1 -0
  21. package/dist/arp/index.js +239 -0
  22. package/dist/arp/index.js.map +1 -0
  23. package/dist/arp/intelligence/adapters.d.ts +45 -0
  24. package/dist/arp/intelligence/adapters.d.ts.map +1 -0
  25. package/dist/arp/intelligence/adapters.js +222 -0
  26. package/dist/arp/intelligence/adapters.js.map +1 -0
  27. package/dist/arp/intelligence/anomaly.d.ts +32 -0
  28. package/dist/arp/intelligence/anomaly.d.ts.map +1 -0
  29. package/dist/arp/intelligence/anomaly.js +80 -0
  30. package/dist/arp/intelligence/anomaly.js.map +1 -0
  31. package/dist/arp/intelligence/budget.d.ts +33 -0
  32. package/dist/arp/intelligence/budget.d.ts.map +1 -0
  33. package/dist/arp/intelligence/budget.js +150 -0
  34. package/dist/arp/intelligence/budget.js.map +1 -0
  35. package/dist/arp/intelligence/coordinator.d.ts +43 -0
  36. package/dist/arp/intelligence/coordinator.d.ts.map +1 -0
  37. package/dist/arp/intelligence/coordinator.js +301 -0
  38. package/dist/arp/intelligence/coordinator.js.map +1 -0
  39. package/dist/arp/interceptors/a2a-protocol.d.ts +29 -0
  40. package/dist/arp/interceptors/a2a-protocol.d.ts.map +1 -0
  41. package/dist/arp/interceptors/a2a-protocol.js +111 -0
  42. package/dist/arp/interceptors/a2a-protocol.js.map +1 -0
  43. package/dist/arp/interceptors/filesystem.d.ts +33 -0
  44. package/dist/arp/interceptors/filesystem.d.ts.map +1 -0
  45. package/dist/arp/interceptors/filesystem.js +199 -0
  46. package/dist/arp/interceptors/filesystem.js.map +1 -0
  47. package/dist/arp/interceptors/mcp-protocol.d.ts +25 -0
  48. package/dist/arp/interceptors/mcp-protocol.d.ts.map +1 -0
  49. package/dist/arp/interceptors/mcp-protocol.js +126 -0
  50. package/dist/arp/interceptors/mcp-protocol.js.map +1 -0
  51. package/dist/arp/interceptors/network.d.ts +26 -0
  52. package/dist/arp/interceptors/network.d.ts.map +1 -0
  53. package/dist/arp/interceptors/network.js +146 -0
  54. package/dist/arp/interceptors/network.js.map +1 -0
  55. package/dist/arp/interceptors/process.d.ts +26 -0
  56. package/dist/arp/interceptors/process.d.ts.map +1 -0
  57. package/dist/arp/interceptors/process.js +157 -0
  58. package/dist/arp/interceptors/process.js.map +1 -0
  59. package/dist/arp/interceptors/prompt.d.ts +29 -0
  60. package/dist/arp/interceptors/prompt.d.ts.map +1 -0
  61. package/dist/arp/interceptors/prompt.js +82 -0
  62. package/dist/arp/interceptors/prompt.js.map +1 -0
  63. package/dist/arp/license/index.d.ts +59 -0
  64. package/dist/arp/license/index.d.ts.map +1 -0
  65. package/dist/arp/license/index.js +78 -0
  66. package/dist/arp/license/index.js.map +1 -0
  67. package/dist/arp/monitors/filesystem.d.ts +21 -0
  68. package/dist/arp/monitors/filesystem.d.ts.map +1 -0
  69. package/dist/arp/monitors/filesystem.js +141 -0
  70. package/dist/arp/monitors/filesystem.js.map +1 -0
  71. package/dist/arp/monitors/network.d.ts +32 -0
  72. package/dist/arp/monitors/network.d.ts.map +1 -0
  73. package/dist/arp/monitors/network.js +301 -0
  74. package/dist/arp/monitors/network.js.map +1 -0
  75. package/dist/arp/monitors/process.d.ts +24 -0
  76. package/dist/arp/monitors/process.d.ts.map +1 -0
  77. package/dist/arp/monitors/process.js +205 -0
  78. package/dist/arp/monitors/process.js.map +1 -0
  79. package/dist/arp/patterns/ai-threats.d.ts +48 -0
  80. package/dist/arp/patterns/ai-threats.d.ts.map +1 -0
  81. package/dist/arp/patterns/ai-threats.js +215 -0
  82. package/dist/arp/patterns/ai-threats.js.map +1 -0
  83. package/dist/arp/proxy/forward.d.ts +23 -0
  84. package/dist/arp/proxy/forward.d.ts.map +1 -0
  85. package/dist/arp/proxy/forward.js +152 -0
  86. package/dist/arp/proxy/forward.js.map +1 -0
  87. package/dist/arp/proxy/server.d.ts +45 -0
  88. package/dist/arp/proxy/server.d.ts.map +1 -0
  89. package/dist/arp/proxy/server.js +331 -0
  90. package/dist/arp/proxy/server.js.map +1 -0
  91. package/dist/arp/reporting/local-log.d.ts +22 -0
  92. package/dist/arp/reporting/local-log.d.ts.map +1 -0
  93. package/dist/arp/reporting/local-log.js +116 -0
  94. package/dist/arp/reporting/local-log.js.map +1 -0
  95. package/dist/arp/types.d.ts +230 -0
  96. package/dist/arp/types.d.ts.map +1 -0
  97. package/dist/arp/types.js +4 -0
  98. package/dist/arp/types.js.map +1 -0
  99. package/dist/attack/custom-payloads.d.ts +11 -0
  100. package/dist/attack/custom-payloads.d.ts.map +1 -0
  101. package/dist/attack/custom-payloads.js +108 -0
  102. package/dist/attack/custom-payloads.js.map +1 -0
  103. package/dist/attack/fail-policy.d.ts +16 -0
  104. package/dist/attack/fail-policy.d.ts.map +1 -0
  105. package/dist/attack/fail-policy.js +36 -0
  106. package/dist/attack/fail-policy.js.map +1 -0
  107. package/dist/attack/index.d.ts +12 -0
  108. package/dist/attack/index.d.ts.map +1 -0
  109. package/dist/attack/index.js +30 -0
  110. package/dist/attack/index.js.map +1 -0
  111. package/dist/attack/payloads/a2a-attacks.d.ts +12 -0
  112. package/dist/attack/payloads/a2a-attacks.d.ts.map +1 -0
  113. package/dist/attack/payloads/a2a-attacks.js +221 -0
  114. package/dist/attack/payloads/a2a-attacks.js.map +1 -0
  115. package/dist/attack/payloads/capability-abuse.d.ts +8 -0
  116. package/dist/attack/payloads/capability-abuse.d.ts.map +1 -0
  117. package/dist/attack/payloads/capability-abuse.js +222 -0
  118. package/dist/attack/payloads/capability-abuse.js.map +1 -0
  119. package/dist/attack/payloads/context-manipulation.d.ts +8 -0
  120. package/dist/attack/payloads/context-manipulation.d.ts.map +1 -0
  121. package/dist/attack/payloads/context-manipulation.js +217 -0
  122. package/dist/attack/payloads/context-manipulation.js.map +1 -0
  123. package/dist/attack/payloads/data-exfiltration.d.ts +8 -0
  124. package/dist/attack/payloads/data-exfiltration.d.ts.map +1 -0
  125. package/dist/attack/payloads/data-exfiltration.js +249 -0
  126. package/dist/attack/payloads/data-exfiltration.js.map +1 -0
  127. package/dist/attack/payloads/index.d.ts +29 -0
  128. package/dist/attack/payloads/index.d.ts.map +1 -0
  129. package/dist/attack/payloads/index.js +76 -0
  130. package/dist/attack/payloads/index.js.map +1 -0
  131. package/dist/attack/payloads/jailbreak.d.ts +8 -0
  132. package/dist/attack/payloads/jailbreak.d.ts.map +1 -0
  133. package/dist/attack/payloads/jailbreak.js +265 -0
  134. package/dist/attack/payloads/jailbreak.js.map +1 -0
  135. package/dist/attack/payloads/mcp-exploitation.d.ts +12 -0
  136. package/dist/attack/payloads/mcp-exploitation.d.ts.map +1 -0
  137. package/dist/attack/payloads/mcp-exploitation.js +221 -0
  138. package/dist/attack/payloads/mcp-exploitation.js.map +1 -0
  139. package/dist/attack/payloads/prompt-injection.d.ts +8 -0
  140. package/dist/attack/payloads/prompt-injection.d.ts.map +1 -0
  141. package/dist/attack/payloads/prompt-injection.js +262 -0
  142. package/dist/attack/payloads/prompt-injection.js.map +1 -0
  143. package/dist/attack/scanner.d.ts +84 -0
  144. package/dist/attack/scanner.d.ts.map +1 -0
  145. package/dist/attack/scanner.js +509 -0
  146. package/dist/attack/scanner.js.map +1 -0
  147. package/dist/attack/types.d.ts +153 -0
  148. package/dist/attack/types.d.ts.map +1 -0
  149. package/dist/attack/types.js +46 -0
  150. package/dist/attack/types.js.map +1 -0
  151. package/dist/benchmarks/index.d.ts +16 -0
  152. package/dist/benchmarks/index.d.ts.map +1 -0
  153. package/dist/benchmarks/index.js +27 -0
  154. package/dist/benchmarks/index.js.map +1 -0
  155. package/dist/benchmarks/oasb-1.d.ts +112 -0
  156. package/dist/benchmarks/oasb-1.d.ts.map +1 -0
  157. package/dist/benchmarks/oasb-1.js +1124 -0
  158. package/dist/benchmarks/oasb-1.js.map +1 -0
  159. package/dist/checker/check-skill.d.ts +48 -0
  160. package/dist/checker/check-skill.d.ts.map +1 -0
  161. package/dist/checker/check-skill.js +105 -0
  162. package/dist/checker/check-skill.js.map +1 -0
  163. package/dist/checker/index.d.ts +12 -0
  164. package/dist/checker/index.d.ts.map +1 -0
  165. package/dist/checker/index.js +16 -0
  166. package/dist/checker/index.js.map +1 -0
  167. package/dist/checker/permission-analyzer.d.ts +12 -0
  168. package/dist/checker/permission-analyzer.d.ts.map +1 -0
  169. package/dist/checker/permission-analyzer.js +84 -0
  170. package/dist/checker/permission-analyzer.js.map +1 -0
  171. package/dist/checker/publisher-verifier.d.ts +34 -0
  172. package/dist/checker/publisher-verifier.d.ts.map +1 -0
  173. package/dist/checker/publisher-verifier.js +121 -0
  174. package/dist/checker/publisher-verifier.js.map +1 -0
  175. package/dist/checker/skill-identifier.d.ts +14 -0
  176. package/dist/checker/skill-identifier.d.ts.map +1 -0
  177. package/dist/checker/skill-identifier.js +55 -0
  178. package/dist/checker/skill-identifier.js.map +1 -0
  179. package/dist/cli.d.ts +7 -0
  180. package/dist/cli.d.ts.map +1 -0
  181. package/dist/cli.js +3534 -0
  182. package/dist/cli.js.map +1 -0
  183. package/dist/hardening/index.d.ts +7 -0
  184. package/dist/hardening/index.d.ts.map +1 -0
  185. package/dist/hardening/index.js +9 -0
  186. package/dist/hardening/index.js.map +1 -0
  187. package/dist/hardening/scanner.d.ts +147 -0
  188. package/dist/hardening/scanner.d.ts.map +1 -0
  189. package/dist/hardening/scanner.js +5445 -0
  190. package/dist/hardening/scanner.js.map +1 -0
  191. package/dist/hardening/security-check.d.ts +85 -0
  192. package/dist/hardening/security-check.d.ts.map +1 -0
  193. package/dist/hardening/security-check.js +6 -0
  194. package/dist/hardening/security-check.js.map +1 -0
  195. package/dist/index.d.ts +38 -4
  196. package/dist/index.d.ts.map +1 -1
  197. package/dist/index.js +91 -3525
  198. package/dist/index.js.map +1 -1
  199. package/dist/mcp-server.js +10 -10
  200. package/dist/mcp-server.js.map +1 -1
  201. package/dist/oasb/config/dvaa-targets.d.ts +13 -0
  202. package/dist/oasb/config/dvaa-targets.d.ts.map +1 -0
  203. package/dist/oasb/config/dvaa-targets.js +89 -0
  204. package/dist/oasb/config/dvaa-targets.js.map +1 -0
  205. package/dist/oasb/harness/arp-wrapper.d.ts +29 -0
  206. package/dist/oasb/harness/arp-wrapper.d.ts.map +1 -0
  207. package/dist/oasb/harness/arp-wrapper.js +134 -0
  208. package/dist/oasb/harness/arp-wrapper.js.map +1 -0
  209. package/dist/oasb/harness/dvaa-client.d.ts +46 -0
  210. package/dist/oasb/harness/dvaa-client.d.ts.map +1 -0
  211. package/dist/oasb/harness/dvaa-client.js +98 -0
  212. package/dist/oasb/harness/dvaa-client.js.map +1 -0
  213. package/dist/oasb/harness/dvaa-manager.d.ts +17 -0
  214. package/dist/oasb/harness/dvaa-manager.d.ts.map +1 -0
  215. package/dist/oasb/harness/dvaa-manager.js +132 -0
  216. package/dist/oasb/harness/dvaa-manager.js.map +1 -0
  217. package/dist/oasb/harness/event-collector.d.ts +33 -0
  218. package/dist/oasb/harness/event-collector.d.ts.map +1 -0
  219. package/dist/oasb/harness/event-collector.js +86 -0
  220. package/dist/oasb/harness/event-collector.js.map +1 -0
  221. package/dist/oasb/harness/metrics.d.ts +14 -0
  222. package/dist/oasb/harness/metrics.d.ts.map +1 -0
  223. package/dist/oasb/harness/metrics.js +56 -0
  224. package/dist/oasb/harness/metrics.js.map +1 -0
  225. package/dist/oasb/harness/mock-llm-adapter.d.ts +34 -0
  226. package/dist/oasb/harness/mock-llm-adapter.d.ts.map +1 -0
  227. package/dist/oasb/harness/mock-llm-adapter.js +69 -0
  228. package/dist/oasb/harness/mock-llm-adapter.js.map +1 -0
  229. package/dist/oasb/harness/types.d.ts +74 -0
  230. package/dist/oasb/harness/types.d.ts.map +1 -0
  231. package/dist/oasb/harness/types.js +3 -0
  232. package/dist/oasb/harness/types.js.map +1 -0
  233. package/dist/plugins/core.d.ts +109 -0
  234. package/dist/plugins/core.d.ts.map +1 -0
  235. package/dist/plugins/core.js +30 -0
  236. package/dist/plugins/core.js.map +1 -0
  237. package/dist/plugins/credvault.d.ts +22 -0
  238. package/dist/plugins/credvault.d.ts.map +1 -0
  239. package/dist/plugins/credvault.js +374 -0
  240. package/dist/plugins/credvault.js.map +1 -0
  241. package/dist/plugins/signcrypt.d.ts +27 -0
  242. package/dist/plugins/signcrypt.d.ts.map +1 -0
  243. package/dist/plugins/signcrypt.js +317 -0
  244. package/dist/plugins/signcrypt.js.map +1 -0
  245. package/dist/plugins/skillguard.d.ts +25 -0
  246. package/dist/plugins/skillguard.d.ts.map +1 -0
  247. package/dist/plugins/skillguard.js +346 -0
  248. package/dist/plugins/skillguard.js.map +1 -0
  249. package/dist/registry/client.d.ts +125 -0
  250. package/dist/registry/client.d.ts.map +1 -0
  251. package/dist/registry/client.js +308 -0
  252. package/dist/registry/client.js.map +1 -0
  253. package/dist/registry/index.d.ts +3 -0
  254. package/dist/registry/index.d.ts.map +1 -0
  255. package/dist/registry/index.js +10 -0
  256. package/dist/registry/index.js.map +1 -0
  257. package/dist/scanner/external-scanner.d.ts +13 -0
  258. package/dist/scanner/external-scanner.d.ts.map +1 -0
  259. package/dist/scanner/external-scanner.js +299 -0
  260. package/dist/scanner/external-scanner.js.map +1 -0
  261. package/dist/scanner/index.d.ts +6 -0
  262. package/dist/scanner/index.d.ts.map +1 -0
  263. package/dist/scanner/index.js +9 -0
  264. package/dist/scanner/index.js.map +1 -0
  265. package/dist/scanner/types.d.ts +32 -0
  266. package/dist/scanner/types.d.ts.map +1 -0
  267. package/dist/scanner/types.js +6 -0
  268. package/dist/scanner/types.js.map +1 -0
  269. package/dist/semantic/deep-scan.d.ts +13 -0
  270. package/dist/semantic/deep-scan.d.ts.map +1 -0
  271. package/dist/semantic/deep-scan.js +63 -0
  272. package/dist/semantic/deep-scan.js.map +1 -0
  273. package/dist/semantic/index.d.ts +17 -0
  274. package/dist/semantic/index.d.ts.map +1 -0
  275. package/dist/semantic/index.js +39 -0
  276. package/dist/semantic/index.js.map +1 -0
  277. package/dist/semantic/integration/cost-estimator.d.ts +17 -0
  278. package/dist/semantic/integration/cost-estimator.d.ts.map +1 -0
  279. package/dist/semantic/integration/cost-estimator.js +54 -0
  280. package/dist/semantic/integration/cost-estimator.js.map +1 -0
  281. package/dist/semantic/integration/finding-adapter.d.ts +34 -0
  282. package/dist/semantic/integration/finding-adapter.d.ts.map +1 -0
  283. package/dist/semantic/integration/finding-adapter.js +41 -0
  284. package/dist/semantic/integration/finding-adapter.js.map +1 -0
  285. package/dist/semantic/integration/oasb-upgrader.d.ts +20 -0
  286. package/dist/semantic/integration/oasb-upgrader.d.ts.map +1 -0
  287. package/dist/semantic/integration/oasb-upgrader.js +47 -0
  288. package/dist/semantic/integration/oasb-upgrader.js.map +1 -0
  289. package/dist/semantic/llm/budget.d.ts +50 -0
  290. package/dist/semantic/llm/budget.d.ts.map +1 -0
  291. package/dist/semantic/llm/budget.js +139 -0
  292. package/dist/semantic/llm/budget.js.map +1 -0
  293. package/dist/semantic/llm/cache.d.ts +36 -0
  294. package/dist/semantic/llm/cache.d.ts.map +1 -0
  295. package/dist/semantic/llm/cache.js +103 -0
  296. package/dist/semantic/llm/cache.js.map +1 -0
  297. package/dist/semantic/llm/client.d.ts +49 -0
  298. package/dist/semantic/llm/client.d.ts.map +1 -0
  299. package/dist/semantic/llm/client.js +64 -0
  300. package/dist/semantic/llm/client.js.map +1 -0
  301. package/dist/semantic/llm/index.d.ts +33 -0
  302. package/dist/semantic/llm/index.d.ts.map +1 -0
  303. package/dist/semantic/llm/index.js +129 -0
  304. package/dist/semantic/llm/index.js.map +1 -0
  305. package/dist/semantic/llm/prompts.d.ts +30 -0
  306. package/dist/semantic/llm/prompts.d.ts.map +1 -0
  307. package/dist/semantic/llm/prompts.js +120 -0
  308. package/dist/semantic/llm/prompts.js.map +1 -0
  309. package/dist/semantic/structural/credential-context.d.ts +14 -0
  310. package/dist/semantic/structural/credential-context.d.ts.map +1 -0
  311. package/dist/semantic/structural/credential-context.js +295 -0
  312. package/dist/semantic/structural/credential-context.js.map +1 -0
  313. package/dist/semantic/structural/index.d.ts +28 -0
  314. package/dist/semantic/structural/index.d.ts.map +1 -0
  315. package/dist/semantic/structural/index.js +138 -0
  316. package/dist/semantic/structural/index.js.map +1 -0
  317. package/dist/semantic/structural/instruction.d.ts +19 -0
  318. package/dist/semantic/structural/instruction.d.ts.map +1 -0
  319. package/dist/semantic/structural/instruction.js +167 -0
  320. package/dist/semantic/structural/instruction.js.map +1 -0
  321. package/dist/semantic/structural/mcp-config.d.ts +22 -0
  322. package/dist/semantic/structural/mcp-config.d.ts.map +1 -0
  323. package/dist/semantic/structural/mcp-config.js +294 -0
  324. package/dist/semantic/structural/mcp-config.js.map +1 -0
  325. package/dist/semantic/structural/permission-model.d.ts +16 -0
  326. package/dist/semantic/structural/permission-model.d.ts.map +1 -0
  327. package/dist/semantic/structural/permission-model.js +121 -0
  328. package/dist/semantic/structural/permission-model.js.map +1 -0
  329. package/dist/semantic/types.d.ts +122 -0
  330. package/dist/semantic/types.d.ts.map +1 -0
  331. package/dist/semantic/types.js +10 -0
  332. package/dist/semantic/types.js.map +1 -0
  333. 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,7 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * HackMyAgent CLI
4
+ * Find it. Break it. Fix it.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;GAGG"}