hunter-mate 0.1.1 → 0.1.3

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 (403) hide show
  1. package/dist/assets/extension/_locales/en_US/messages.json +5 -0
  2. package/dist/assets/extension/_locales/zh_CN/messages.json +5 -0
  3. package/dist/assets/extension/background/service-worker.js +3253 -0
  4. package/dist/assets/extension/content/index.js +13660 -0
  5. package/dist/assets/extension/manifest.json +49 -0
  6. package/dist/assets/extension/package.json +24 -0
  7. package/dist/assets/extension/sidepanel/index.html +400 -0
  8. package/dist/assets/extension/sidepanel/index.js +852 -0
  9. package/dist/assets/server/agent-session/agent-session.controller.d.ts +32 -0
  10. package/dist/assets/server/agent-session/agent-session.controller.js +83 -0
  11. package/dist/assets/server/agent-session/agent-session.controller.js.map +1 -0
  12. package/dist/assets/server/agent-session/agent-session.guard.d.ts +4 -0
  13. package/dist/assets/server/agent-session/agent-session.guard.js +32 -0
  14. package/dist/assets/server/agent-session/agent-session.guard.js.map +1 -0
  15. package/dist/assets/server/agent-session/agent-session.module.d.ts +2 -0
  16. package/dist/assets/server/agent-session/agent-session.module.js +28 -0
  17. package/dist/assets/server/agent-session/agent-session.module.js.map +1 -0
  18. package/dist/assets/server/agent-session/agent-session.service.d.ts +54 -0
  19. package/dist/assets/server/agent-session/agent-session.service.js +431 -0
  20. package/dist/assets/server/agent-session/agent-session.service.js.map +1 -0
  21. package/dist/assets/server/agent-session/agent-session.types.d.ts +56 -0
  22. package/dist/assets/server/agent-session/agent-session.types.js +3 -0
  23. package/dist/assets/server/agent-session/agent-session.types.js.map +1 -0
  24. package/dist/assets/server/agent-session/entities/agent-event.entity.d.ts +12 -0
  25. package/dist/assets/server/agent-session/entities/agent-event.entity.js +73 -0
  26. package/dist/assets/server/agent-session/entities/agent-event.entity.js.map +1 -0
  27. package/dist/assets/server/agent-session/entities/agent-message.entity.d.ts +13 -0
  28. package/dist/assets/server/agent-session/entities/agent-message.entity.js +77 -0
  29. package/dist/assets/server/agent-session/entities/agent-message.entity.js.map +1 -0
  30. package/dist/assets/server/agent-session/entities/agent-session.entity.d.ts +14 -0
  31. package/dist/assets/server/agent-session/entities/agent-session.entity.js +83 -0
  32. package/dist/assets/server/agent-session/entities/agent-session.entity.js.map +1 -0
  33. package/dist/assets/server/app.module.d.ts +4 -0
  34. package/dist/assets/server/app.module.js +125 -0
  35. package/dist/assets/server/app.module.js.map +1 -0
  36. package/dist/assets/server/auth/auth.controller.d.ts +22 -0
  37. package/dist/assets/server/auth/auth.controller.js +88 -0
  38. package/dist/assets/server/auth/auth.controller.js.map +1 -0
  39. package/dist/assets/server/auth/auth.middleware.d.ts +5 -0
  40. package/dist/assets/server/auth/auth.middleware.js +34 -0
  41. package/dist/assets/server/auth/auth.middleware.js.map +1 -0
  42. package/dist/assets/server/auth/auth.module.d.ts +2 -0
  43. package/dist/assets/server/auth/auth.module.js +24 -0
  44. package/dist/assets/server/auth/auth.module.js.map +1 -0
  45. package/dist/assets/server/auth/auth.service.d.ts +30 -0
  46. package/dist/assets/server/auth/auth.service.js +183 -0
  47. package/dist/assets/server/auth/auth.service.js.map +1 -0
  48. package/dist/assets/server/auth/auth.types.d.ts +28 -0
  49. package/dist/assets/server/auth/auth.types.js +3 -0
  50. package/dist/assets/server/auth/auth.types.js.map +1 -0
  51. package/dist/assets/server/build-info.json +4 -0
  52. package/dist/assets/server/common/common.module.d.ts +2 -0
  53. package/dist/assets/server/common/common.module.js +22 -0
  54. package/dist/assets/server/common/common.module.js.map +1 -0
  55. package/dist/assets/server/common/crypto.service.d.ts +11 -0
  56. package/dist/assets/server/common/crypto.service.js +73 -0
  57. package/dist/assets/server/common/crypto.service.js.map +1 -0
  58. package/dist/assets/server/communication/communication-record.entity.d.ts +15 -0
  59. package/dist/assets/server/communication/communication-record.entity.js +80 -0
  60. package/dist/assets/server/communication/communication-record.entity.js.map +1 -0
  61. package/dist/assets/server/communication/communication.controller.d.ts +12 -0
  62. package/dist/assets/server/communication/communication.controller.js +61 -0
  63. package/dist/assets/server/communication/communication.controller.js.map +1 -0
  64. package/dist/assets/server/communication/communication.module.d.ts +2 -0
  65. package/dist/assets/server/communication/communication.module.js +25 -0
  66. package/dist/assets/server/communication/communication.module.js.map +1 -0
  67. package/dist/assets/server/communication/communication.service.d.ts +23 -0
  68. package/dist/assets/server/communication/communication.service.js +51 -0
  69. package/dist/assets/server/communication/communication.service.js.map +1 -0
  70. package/dist/assets/server/db/schema-validator.service.d.ts +25 -0
  71. package/dist/assets/server/db/schema-validator.service.js +107 -0
  72. package/dist/assets/server/db/schema-validator.service.js.map +1 -0
  73. package/dist/assets/server/db/schema-version.entity.d.ts +5 -0
  74. package/dist/assets/server/db/schema-version.entity.js +35 -0
  75. package/dist/assets/server/db/schema-version.entity.js.map +1 -0
  76. package/dist/assets/server/db/sqlite.module.d.ts +2 -0
  77. package/dist/assets/server/db/sqlite.module.js +79 -0
  78. package/dist/assets/server/db/sqlite.module.js.map +1 -0
  79. package/dist/assets/server/devops/devops-sink-init.d.ts +10 -0
  80. package/dist/assets/server/devops/devops-sink-init.js +96 -0
  81. package/dist/assets/server/devops/devops-sink-init.js.map +1 -0
  82. package/dist/assets/server/devops/devops-sink-init.spec.d.ts +1 -0
  83. package/dist/assets/server/devops/devops-sink-init.spec.js +71 -0
  84. package/dist/assets/server/devops/devops-sink-init.spec.js.map +1 -0
  85. package/dist/assets/server/devops/devops-sink.module.d.ts +2 -0
  86. package/dist/assets/server/devops/devops-sink.module.js +22 -0
  87. package/dist/assets/server/devops/devops-sink.module.js.map +1 -0
  88. package/dist/assets/server/extension/extension-control.controller.d.ts +67 -0
  89. package/dist/assets/server/extension/extension-control.controller.js +173 -0
  90. package/dist/assets/server/extension/extension-control.controller.js.map +1 -0
  91. package/dist/assets/server/extension/extension-control.service.d.ts +46 -0
  92. package/dist/assets/server/extension/extension-control.service.js +212 -0
  93. package/dist/assets/server/extension/extension-control.service.js.map +1 -0
  94. package/dist/assets/server/extension/extension-core.module.d.ts +2 -0
  95. package/dist/assets/server/extension/extension-core.module.js +21 -0
  96. package/dist/assets/server/extension/extension-core.module.js.map +1 -0
  97. package/dist/assets/server/extension/extension-version.controller.d.ts +6 -0
  98. package/dist/assets/server/extension/extension-version.controller.js +41 -0
  99. package/dist/assets/server/extension/extension-version.controller.js.map +1 -0
  100. package/dist/assets/server/extension/extension.module.d.ts +2 -0
  101. package/dist/assets/server/extension/extension.module.js +25 -0
  102. package/dist/assets/server/extension/extension.module.js.map +1 -0
  103. package/dist/assets/server/extraction/adapter.service.d.ts +41 -0
  104. package/dist/assets/server/extraction/adapter.service.js +161 -0
  105. package/dist/assets/server/extraction/adapter.service.js.map +1 -0
  106. package/dist/assets/server/extraction/entities/company-profile.entity.d.ts +14 -0
  107. package/dist/assets/server/extraction/entities/company-profile.entity.js +81 -0
  108. package/dist/assets/server/extraction/entities/company-profile.entity.js.map +1 -0
  109. package/dist/assets/server/extraction/entities/job-posting.entity.d.ts +15 -0
  110. package/dist/assets/server/extraction/entities/job-posting.entity.js +86 -0
  111. package/dist/assets/server/extraction/entities/job-posting.entity.js.map +1 -0
  112. package/dist/assets/server/extraction/entities/parse-log.entity.d.ts +15 -0
  113. package/dist/assets/server/extraction/entities/parse-log.entity.js +87 -0
  114. package/dist/assets/server/extraction/entities/parse-log.entity.js.map +1 -0
  115. package/dist/assets/server/extraction/entities/talent-profile.entity.d.ts +15 -0
  116. package/dist/assets/server/extraction/entities/talent-profile.entity.js +86 -0
  117. package/dist/assets/server/extraction/entities/talent-profile.entity.js.map +1 -0
  118. package/dist/assets/server/extraction/extraction-entity.controller.d.ts +100 -0
  119. package/dist/assets/server/extraction/extraction-entity.controller.js +310 -0
  120. package/dist/assets/server/extraction/extraction-entity.controller.js.map +1 -0
  121. package/dist/assets/server/extraction/extraction-rule.controller.d.ts +7 -0
  122. package/dist/assets/server/extraction/extraction-rule.controller.js +48 -0
  123. package/dist/assets/server/extraction/extraction-rule.controller.js.map +1 -0
  124. package/dist/assets/server/extraction/extraction-rule.entity.d.ts +15 -0
  125. package/dist/assets/server/extraction/extraction-rule.entity.js +80 -0
  126. package/dist/assets/server/extraction/extraction-rule.entity.js.map +1 -0
  127. package/dist/assets/server/extraction/extraction-rule.service.d.ts +24 -0
  128. package/dist/assets/server/extraction/extraction-rule.service.js +81 -0
  129. package/dist/assets/server/extraction/extraction-rule.service.js.map +1 -0
  130. package/dist/assets/server/extraction/extraction.module.d.ts +2 -0
  131. package/dist/assets/server/extraction/extraction.module.js +43 -0
  132. package/dist/assets/server/extraction/extraction.module.js.map +1 -0
  133. package/dist/assets/server/extraction/extraction.service.d.ts +62 -0
  134. package/dist/assets/server/extraction/extraction.service.js +347 -0
  135. package/dist/assets/server/extraction/extraction.service.js.map +1 -0
  136. package/dist/assets/server/extraction/script-rule.d.ts +13 -0
  137. package/dist/assets/server/extraction/script-rule.js +45 -0
  138. package/dist/assets/server/extraction/script-rule.js.map +1 -0
  139. package/dist/assets/server/extraction/structured-data.d.ts +7 -0
  140. package/dist/assets/server/extraction/structured-data.js +96 -0
  141. package/dist/assets/server/extraction/structured-data.js.map +1 -0
  142. package/dist/assets/server/hcapi/hcapi.module.d.ts +2 -0
  143. package/dist/assets/server/hcapi/hcapi.module.js +23 -0
  144. package/dist/assets/server/hcapi/hcapi.module.js.map +1 -0
  145. package/dist/assets/server/hcapi/hcapi.service.d.ts +28 -0
  146. package/dist/assets/server/hcapi/hcapi.service.js +81 -0
  147. package/dist/assets/server/hcapi/hcapi.service.js.map +1 -0
  148. package/dist/assets/server/health/health.controller.d.ts +19 -0
  149. package/dist/assets/server/health/health.controller.js +59 -0
  150. package/dist/assets/server/health/health.controller.js.map +1 -0
  151. package/dist/assets/server/jobcase/jobcase.controller.d.ts +12 -0
  152. package/dist/assets/server/jobcase/jobcase.controller.js +61 -0
  153. package/dist/assets/server/jobcase/jobcase.controller.js.map +1 -0
  154. package/dist/assets/server/jobcase/jobcase.entity.d.ts +13 -0
  155. package/dist/assets/server/jobcase/jobcase.entity.js +71 -0
  156. package/dist/assets/server/jobcase/jobcase.entity.js.map +1 -0
  157. package/dist/assets/server/jobcase/jobcase.module.d.ts +2 -0
  158. package/dist/assets/server/jobcase/jobcase.module.js +26 -0
  159. package/dist/assets/server/jobcase/jobcase.module.js.map +1 -0
  160. package/dist/assets/server/jobcase/jobcase.service.d.ts +21 -0
  161. package/dist/assets/server/jobcase/jobcase.service.js +56 -0
  162. package/dist/assets/server/jobcase/jobcase.service.js.map +1 -0
  163. package/dist/assets/server/llm/llm.module.d.ts +2 -0
  164. package/dist/assets/server/llm/llm.module.js +21 -0
  165. package/dist/assets/server/llm/llm.module.js.map +1 -0
  166. package/dist/assets/server/llm/llm.service.d.ts +18 -0
  167. package/dist/assets/server/llm/llm.service.js +65 -0
  168. package/dist/assets/server/llm/llm.service.js.map +1 -0
  169. package/dist/assets/server/main.d.ts +1 -0
  170. package/dist/assets/server/main.js +30 -0
  171. package/dist/assets/server/main.js.map +1 -0
  172. package/dist/assets/server/matching/matching.controller.d.ts +16 -0
  173. package/dist/assets/server/matching/matching.controller.js +97 -0
  174. package/dist/assets/server/matching/matching.controller.js.map +1 -0
  175. package/dist/assets/server/matching/matching.module.d.ts +2 -0
  176. package/dist/assets/server/matching/matching.module.js +36 -0
  177. package/dist/assets/server/matching/matching.module.js.map +1 -0
  178. package/dist/assets/server/matching/matching.service.d.ts +55 -0
  179. package/dist/assets/server/matching/matching.service.js +409 -0
  180. package/dist/assets/server/matching/matching.service.js.map +1 -0
  181. package/dist/assets/server/package.json +57 -0
  182. package/dist/assets/server/parsed-resume/parsed-resume.controller.d.ts +6 -0
  183. package/dist/assets/server/parsed-resume/parsed-resume.controller.js +42 -0
  184. package/dist/assets/server/parsed-resume/parsed-resume.controller.js.map +1 -0
  185. package/dist/assets/server/parsed-resume/parsed-resume.entity.d.ts +124 -0
  186. package/dist/assets/server/parsed-resume/parsed-resume.entity.js +72 -0
  187. package/dist/assets/server/parsed-resume/parsed-resume.entity.js.map +1 -0
  188. package/dist/assets/server/parsed-resume/parsed-resume.module.d.ts +2 -0
  189. package/dist/assets/server/parsed-resume/parsed-resume.module.js +26 -0
  190. package/dist/assets/server/parsed-resume/parsed-resume.module.js.map +1 -0
  191. package/dist/assets/server/parsed-resume/parsed-resume.service.d.ts +10 -0
  192. package/dist/assets/server/parsed-resume/parsed-resume.service.js +45 -0
  193. package/dist/assets/server/parsed-resume/parsed-resume.service.js.map +1 -0
  194. package/dist/assets/server/parsing/parse-error-report.entity.d.ts +11 -0
  195. package/dist/assets/server/parsing/parse-error-report.entity.js +66 -0
  196. package/dist/assets/server/parsing/parse-error-report.entity.js.map +1 -0
  197. package/dist/assets/server/parsing/parsing.controller.d.ts +19 -0
  198. package/dist/assets/server/parsing/parsing.controller.js +97 -0
  199. package/dist/assets/server/parsing/parsing.controller.js.map +1 -0
  200. package/dist/assets/server/parsing/parsing.module.d.ts +2 -0
  201. package/dist/assets/server/parsing/parsing.module.js +38 -0
  202. package/dist/assets/server/parsing/parsing.module.js.map +1 -0
  203. package/dist/assets/server/parsing/parsing.service.d.ts +38 -0
  204. package/dist/assets/server/parsing/parsing.service.js +263 -0
  205. package/dist/assets/server/parsing/parsing.service.js.map +1 -0
  206. package/dist/assets/server/query/fields-meta.controller.d.ts +28 -0
  207. package/dist/assets/server/query/fields-meta.controller.js +57 -0
  208. package/dist/assets/server/query/fields-meta.controller.js.map +1 -0
  209. package/dist/assets/server/query/query-builder.controller.d.ts +11 -0
  210. package/dist/assets/server/query/query-builder.controller.js +40 -0
  211. package/dist/assets/server/query/query-builder.controller.js.map +1 -0
  212. package/dist/assets/server/query/query-builder.service.d.ts +8 -0
  213. package/dist/assets/server/query/query-builder.service.js +41 -0
  214. package/dist/assets/server/query/query-builder.service.js.map +1 -0
  215. package/dist/assets/server/query/query.module.d.ts +2 -0
  216. package/dist/assets/server/query/query.module.js +23 -0
  217. package/dist/assets/server/query/query.module.js.map +1 -0
  218. package/dist/assets/server/recording/entities/recording-event.entity.d.ts +9 -0
  219. package/dist/assets/server/recording/entities/recording-event.entity.js +56 -0
  220. package/dist/assets/server/recording/entities/recording-event.entity.js.map +1 -0
  221. package/dist/assets/server/recording/recording.controller.d.ts +52 -0
  222. package/dist/assets/server/recording/recording.controller.js +73 -0
  223. package/dist/assets/server/recording/recording.controller.js.map +1 -0
  224. package/dist/assets/server/recording/recording.gateway.d.ts +15 -0
  225. package/dist/assets/server/recording/recording.gateway.js +117 -0
  226. package/dist/assets/server/recording/recording.gateway.js.map +1 -0
  227. package/dist/assets/server/recording/recording.module.d.ts +2 -0
  228. package/dist/assets/server/recording/recording.module.js +29 -0
  229. package/dist/assets/server/recording/recording.module.js.map +1 -0
  230. package/dist/assets/server/recording/recording.service.d.ts +59 -0
  231. package/dist/assets/server/recording/recording.service.js +111 -0
  232. package/dist/assets/server/recording/recording.service.js.map +1 -0
  233. package/dist/assets/server/remark/remark.controller.d.ts +21 -0
  234. package/dist/assets/server/remark/remark.controller.js +59 -0
  235. package/dist/assets/server/remark/remark.controller.js.map +1 -0
  236. package/dist/assets/server/remark/remark.entity.d.ts +18 -0
  237. package/dist/assets/server/remark/remark.entity.js +67 -0
  238. package/dist/assets/server/remark/remark.entity.js.map +1 -0
  239. package/dist/assets/server/remark/remark.module.d.ts +2 -0
  240. package/dist/assets/server/remark/remark.module.js +26 -0
  241. package/dist/assets/server/remark/remark.module.js.map +1 -0
  242. package/dist/assets/server/remark/remark.service.d.ts +8 -0
  243. package/dist/assets/server/remark/remark.service.js +39 -0
  244. package/dist/assets/server/remark/remark.service.js.map +1 -0
  245. package/dist/assets/server/report/report.controller.d.ts +18 -0
  246. package/dist/assets/server/report/report.controller.js +41 -0
  247. package/dist/assets/server/report/report.controller.js.map +1 -0
  248. package/dist/assets/server/report/report.module.d.ts +2 -0
  249. package/dist/assets/server/report/report.module.js +24 -0
  250. package/dist/assets/server/report/report.module.js.map +1 -0
  251. package/dist/assets/server/report/report.service.d.ts +23 -0
  252. package/dist/assets/server/report/report.service.js +54 -0
  253. package/dist/assets/server/report/report.service.js.map +1 -0
  254. package/dist/assets/server/rules/rules.controller.d.ts +6 -0
  255. package/dist/assets/server/rules/rules.controller.js +35 -0
  256. package/dist/assets/server/rules/rules.controller.js.map +1 -0
  257. package/dist/assets/server/rules/rules.module.d.ts +2 -0
  258. package/dist/assets/server/rules/rules.module.js +23 -0
  259. package/dist/assets/server/rules/rules.module.js.map +1 -0
  260. package/dist/assets/server/rules/rules.service.d.ts +10 -0
  261. package/dist/assets/server/rules/rules.service.js +26 -0
  262. package/dist/assets/server/rules/rules.service.js.map +1 -0
  263. package/dist/assets/server/search/search.controller.d.ts +6 -0
  264. package/dist/assets/server/search/search.controller.js +53 -0
  265. package/dist/assets/server/search/search.controller.js.map +1 -0
  266. package/dist/assets/server/search/search.module.d.ts +2 -0
  267. package/dist/assets/server/search/search.module.js +24 -0
  268. package/dist/assets/server/search/search.module.js.map +1 -0
  269. package/dist/assets/server/search/search.service.d.ts +6 -0
  270. package/dist/assets/server/search/search.service.js +46 -0
  271. package/dist/assets/server/search/search.service.js.map +1 -0
  272. package/dist/assets/server/sentry.d.ts +3 -0
  273. package/dist/assets/server/sentry.js +10 -0
  274. package/dist/assets/server/sentry.js.map +1 -0
  275. package/dist/assets/server/site/entities/site-registry.entity.d.ts +11 -0
  276. package/dist/assets/server/site/entities/site-registry.entity.js +66 -0
  277. package/dist/assets/server/site/entities/site-registry.entity.js.map +1 -0
  278. package/dist/assets/server/site/site.controller.d.ts +36 -0
  279. package/dist/assets/server/site/site.controller.js +60 -0
  280. package/dist/assets/server/site/site.controller.js.map +1 -0
  281. package/dist/assets/server/site/site.module.d.ts +2 -0
  282. package/dist/assets/server/site/site.module.js +26 -0
  283. package/dist/assets/server/site/site.module.js.map +1 -0
  284. package/dist/assets/server/site/site.service.d.ts +37 -0
  285. package/dist/assets/server/site/site.service.js +134 -0
  286. package/dist/assets/server/site/site.service.js.map +1 -0
  287. package/dist/assets/server/snapshot/raw-snapshot.entity.d.ts +35 -0
  288. package/dist/assets/server/snapshot/raw-snapshot.entity.js +62 -0
  289. package/dist/assets/server/snapshot/raw-snapshot.entity.js.map +1 -0
  290. package/dist/assets/server/snapshot/snapshot.controller.d.ts +18 -0
  291. package/dist/assets/server/snapshot/snapshot.controller.js +76 -0
  292. package/dist/assets/server/snapshot/snapshot.controller.js.map +1 -0
  293. package/dist/assets/server/snapshot/snapshot.module.d.ts +2 -0
  294. package/dist/assets/server/snapshot/snapshot.module.js +26 -0
  295. package/dist/assets/server/snapshot/snapshot.module.js.map +1 -0
  296. package/dist/assets/server/snapshot/snapshot.service.d.ts +10 -0
  297. package/dist/assets/server/snapshot/snapshot.service.js +48 -0
  298. package/dist/assets/server/snapshot/snapshot.service.js.map +1 -0
  299. package/dist/assets/server/system/system.controller.d.ts +39 -0
  300. package/dist/assets/server/system/system.controller.js +93 -0
  301. package/dist/assets/server/system/system.controller.js.map +1 -0
  302. package/dist/assets/server/system/system.module.d.ts +2 -0
  303. package/dist/assets/server/system/system.module.js +26 -0
  304. package/dist/assets/server/system/system.module.js.map +1 -0
  305. package/dist/assets/server/system/system.service.d.ts +86 -0
  306. package/dist/assets/server/system/system.service.js +433 -0
  307. package/dist/assets/server/system/system.service.js.map +1 -0
  308. package/dist/assets/server/talent-fingerprint/fingerprint-match.service.d.ts +28 -0
  309. package/dist/assets/server/talent-fingerprint/fingerprint-match.service.js +186 -0
  310. package/dist/assets/server/talent-fingerprint/fingerprint-match.service.js.map +1 -0
  311. package/dist/assets/server/talent-fingerprint/talent-fingerprint.entity.d.ts +30 -0
  312. package/dist/assets/server/talent-fingerprint/talent-fingerprint.entity.js +55 -0
  313. package/dist/assets/server/talent-fingerprint/talent-fingerprint.entity.js.map +1 -0
  314. package/dist/assets/server/talent-fingerprint/talent-fingerprint.module.d.ts +2 -0
  315. package/dist/assets/server/talent-fingerprint/talent-fingerprint.module.js +25 -0
  316. package/dist/assets/server/talent-fingerprint/talent-fingerprint.module.js.map +1 -0
  317. package/dist/assets/server/talent-fingerprint/talent-fingerprint.service.d.ts +8 -0
  318. package/dist/assets/server/talent-fingerprint/talent-fingerprint.service.js +44 -0
  319. package/dist/assets/server/talent-fingerprint/talent-fingerprint.service.js.map +1 -0
  320. package/dist/assets/server/talent-job-match/talent-job-match.controller.d.ts +6 -0
  321. package/dist/assets/server/talent-job-match/talent-job-match.controller.js +42 -0
  322. package/dist/assets/server/talent-job-match/talent-job-match.controller.js.map +1 -0
  323. package/dist/assets/server/talent-job-match/talent-job-match.entity.d.ts +33 -0
  324. package/dist/assets/server/talent-job-match/talent-job-match.entity.js +73 -0
  325. package/dist/assets/server/talent-job-match/talent-job-match.entity.js.map +1 -0
  326. package/dist/assets/server/talent-job-match/talent-job-match.module.d.ts +2 -0
  327. package/dist/assets/server/talent-job-match/talent-job-match.module.js +26 -0
  328. package/dist/assets/server/talent-job-match/talent-job-match.module.js.map +1 -0
  329. package/dist/assets/server/talent-job-match/talent-job-match.service.d.ts +9 -0
  330. package/dist/assets/server/talent-job-match/talent-job-match.service.js +42 -0
  331. package/dist/assets/server/talent-job-match/talent-job-match.service.js.map +1 -0
  332. package/dist/assets/server/talent-portrait/portrait-merge.service.d.ts +17 -0
  333. package/dist/assets/server/talent-portrait/portrait-merge.service.js +200 -0
  334. package/dist/assets/server/talent-portrait/portrait-merge.service.js.map +1 -0
  335. package/dist/assets/server/talent-portrait/talent-portrait.controller.d.ts +7 -0
  336. package/dist/assets/server/talent-portrait/talent-portrait.controller.js +52 -0
  337. package/dist/assets/server/talent-portrait/talent-portrait.controller.js.map +1 -0
  338. package/dist/assets/server/talent-portrait/talent-portrait.entity.d.ts +91 -0
  339. package/dist/assets/server/talent-portrait/talent-portrait.entity.js +71 -0
  340. package/dist/assets/server/talent-portrait/talent-portrait.entity.js.map +1 -0
  341. package/dist/assets/server/talent-portrait/talent-portrait.module.d.ts +2 -0
  342. package/dist/assets/server/talent-portrait/talent-portrait.module.js +27 -0
  343. package/dist/assets/server/talent-portrait/talent-portrait.module.js.map +1 -0
  344. package/dist/assets/server/talent-portrait/talent-portrait.service.d.ts +10 -0
  345. package/dist/assets/server/talent-portrait/talent-portrait.service.js +46 -0
  346. package/dist/assets/server/talent-portrait/talent-portrait.service.js.map +1 -0
  347. package/dist/assets/server/telemetry/telemetry.module.d.ts +2 -0
  348. package/dist/assets/server/telemetry/telemetry.module.js +24 -0
  349. package/dist/assets/server/telemetry/telemetry.module.js.map +1 -0
  350. package/dist/assets/server/telemetry/telemetry.service.d.ts +29 -0
  351. package/dist/assets/server/telemetry/telemetry.service.js +116 -0
  352. package/dist/assets/server/telemetry/telemetry.service.js.map +1 -0
  353. package/dist/bundled-assets.d.ts +22 -0
  354. package/dist/bundled-assets.js +80 -0
  355. package/dist/cache/db.js +10 -54
  356. package/dist/commands/addons.js +46 -71
  357. package/dist/commands/cache.js +29 -27
  358. package/dist/commands/config.d.ts +1 -1
  359. package/dist/commands/config.js +8 -12
  360. package/dist/commands/doctor.d.ts +0 -1
  361. package/dist/commands/doctor.js +52 -67
  362. package/dist/commands/extension.js +82 -96
  363. package/dist/commands/extras.d.ts +31 -1
  364. package/dist/commands/extras.js +248 -61
  365. package/dist/commands/init.js +18 -46
  366. package/dist/commands/install.js +20 -52
  367. package/dist/commands/job.js +27 -65
  368. package/dist/commands/login.js +50 -37
  369. package/dist/commands/logout.js +8 -12
  370. package/dist/commands/ops.js +94 -67
  371. package/dist/commands/record.js +21 -59
  372. package/dist/commands/report.js +14 -18
  373. package/dist/commands/search.js +14 -21
  374. package/dist/commands/server.d.ts +1 -1
  375. package/dist/commands/server.js +126 -112
  376. package/dist/commands/status.js +23 -27
  377. package/dist/commands/update.js +44 -79
  378. package/dist/config.d.ts +3 -0
  379. package/dist/config.js +12 -46
  380. package/dist/i18n/index.js +5 -11
  381. package/dist/i18n/locales/en-US.json +24 -1
  382. package/dist/i18n/locales/zh-CN.json +24 -1
  383. package/dist/index.cmd +3 -0
  384. package/dist/index.js +84 -97
  385. package/dist/index.ps1 +3 -0
  386. package/dist/keychain.js +9 -44
  387. package/dist/logger.d.ts +7 -0
  388. package/dist/logger.js +80 -0
  389. package/dist/native-check.d.ts +6 -0
  390. package/dist/native-check.js +23 -0
  391. package/dist/sentry.js +4 -8
  392. package/dist/updater.js +15 -52
  393. package/dist/utils/proc.d.ts +35 -0
  394. package/dist/utils/proc.js +81 -0
  395. package/dist/utils/spawn.d.ts +19 -0
  396. package/dist/utils/spawn.js +60 -0
  397. package/dist/version.d.ts +1 -1
  398. package/dist/version.js +183 -81
  399. package/dist/watchdog.d.ts +1 -0
  400. package/dist/watchdog.js +128 -0
  401. package/package.json +6 -5
  402. package/dist/commands/native-check.d.ts +0 -22
  403. package/dist/commands/native-check.js +0 -93
@@ -1,72 +1,100 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
1
+ import { Command } from 'commander';
2
+ import WebSocket from 'ws';
3
+ import * as readline from 'readline';
4
+ import { loadConfig } from '../config.js';
5
+ import axios from 'axios';
6
+ import * as fs from 'fs';
7
+ import * as path from 'path';
8
+ import { runInit } from './init.js';
9
+ import { runStop, tryReadPid } from './server.js';
10
+ import { i18n } from '../i18n/index.js';
11
+ import { getCliLogger } from '../logger.js';
12
+ /**
13
+ * 通知所有已连接扩展 reload(自愈主链路):
14
+ * 1) 优先 HTTP POST /system/broadcast-extension(返回明确 broadcast 计数和错误)
15
+ * 2) Fallback: 直连 WS /ws 发 {type:'broadcast', payload:{type:'reload'}}(兼容旧 server 无 HTTP 端点)
16
+ */
17
+ export async function runReload(timeoutMs = 5000) {
18
+ const config = loadConfig();
19
+ // ---------- 1) HTTP 优先(POST /system/broadcast-extension) ----------
20
+ try {
21
+ const res = await axios.post(`${config.serverUrl}/system/broadcast-extension`, { payload: { type: 'reload' } }, { timeout: timeoutMs, proxy: false });
22
+ const body = (res.data ?? {});
23
+ const broadcast = typeof body.broadcast === 'number' ? body.broadcast : 0;
24
+ const errors = Array.isArray(body.errors) ? body.errors : [];
25
+ if (broadcast > 0) {
26
+ return {
27
+ broadcast,
28
+ errors,
29
+ msg: `reload 广播已通过 HTTP 通道发送给 ${broadcast} 个扩展实例:200ms 后每个实例会自动调 chrome.runtime.reload(),Chrome 将重新读取磁盘上的扩展文件。`,
30
+ };
31
+ }
32
+ if (errors.length) {
33
+ return {
34
+ broadcast: 0,
35
+ errors,
36
+ msg: `HTTP 广播 0 个成功;错误: ${errors.map((e) => `${e.extensionId}:${e.error}`).join('; ')}。请在 chrome://extensions/ 点 HunterMate「重新加载」按钮。`,
37
+ };
38
+ }
39
+ // broadcast=0 且无错误 = 没有扩展连接(虽然 HTTP 通了)
40
+ return {
41
+ broadcast: 0,
42
+ msg: '本地 server 运行正常,但当前无已连接的 HunterMate 扩展。请启动 Chrome 并确认扩展已启用/加载;也可到 chrome://extensions/ 手动点刷新图标。',
24
43
  };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.openExtCommand = exports.reloadCommand = void 0;
40
- exports.runReload = runReload;
41
- exports.runOpenExt = runOpenExt;
42
- const commander_1 = require("commander");
43
- const ws_1 = __importDefault(require("ws"));
44
- const config_1 = require("../config");
45
- const fs = __importStar(require("fs"));
46
- const init_1 = require("./init");
47
- /** 对应 ChromePilot reload: 通过 WS 向所有已连接扩展广播 {type: 'reload'} */
48
- function runReload(timeoutMs = 5000) {
49
- const config = (0, config_1.loadConfig)();
44
+ }
45
+ catch (e) {
46
+ // HTTP 不通(server 版本 < 新增 broadcast-extension 端点)→ 退回 WS 方式
47
+ }
48
+ // ---------- 2) Fallback: WS 广播方式(兼容旧 server) ----------
50
49
  const wsUrl = config.serverUrl.replace(/^http/, 'ws') + '/ws';
51
- const ws = new ws_1.default(wsUrl);
50
+ const ws = new WebSocket(wsUrl);
52
51
  return new Promise((resolve, reject) => {
53
52
  const timer = setTimeout(() => {
54
53
  ws.terminate();
55
54
  reject(new Error('reload timeout — is server running? Try `hunter-mate start`.'));
56
55
  }, timeoutMs);
57
56
  ws.on('open', () => {
58
- // 以特殊 client 身份发广播消息
59
57
  ws.send(JSON.stringify({ type: 'broadcast', payload: { type: 'reload' } }));
60
- // 服务器未实现 broadcast 路由时也当作 OK(由扩展端自己实现 ws.onmessage 监听),
61
- // 给用户一个可预期的输出,说明下一步
58
+ const onMsg = (raw) => {
59
+ try {
60
+ const data = JSON.parse(raw.toString());
61
+ if (data.type === 'broadcast_ack') {
62
+ clearTimeout(timer);
63
+ ws.removeAllListeners();
64
+ ws.close();
65
+ const count = typeof data.broadcast === 'number' ? data.broadcast : 1;
66
+ const errors = Array.isArray(data.errors) ? data.errors : [];
67
+ if (count > 0) {
68
+ resolve({
69
+ broadcast: count,
70
+ errors,
71
+ msg: `reload 广播已通过 WS 通道发送给 ${count} 个扩展实例:200ms 后每个实例会自动调 chrome.runtime.reload()。`,
72
+ });
73
+ }
74
+ else {
75
+ resolve({
76
+ broadcast: 0,
77
+ errors,
78
+ msg: `WS 通道广播返回 0:${errors.length ? errors.map((e) => `${e.extensionId}:${e.error}`).join('; ') : '无已连接扩展'}。请手动 chrome://extensions 刷新。`,
79
+ });
80
+ }
81
+ }
82
+ }
83
+ catch {
84
+ /* ignore non-JSON / non-ack */
85
+ }
86
+ };
87
+ ws.on('message', onMsg);
88
+ // 300ms 后没收到 broadcast_ack → 当成功(兼容老 server 不回 ack 的情况)
62
89
  setTimeout(() => {
63
90
  clearTimeout(timer);
91
+ ws.removeAllListeners();
64
92
  ws.close();
65
93
  resolve({
66
94
  broadcast: 1,
67
- msg: 'reload 广播已发送。若扩展端已实现 reload 处理器,所有 Chrome 实例中的 Hunter Mate 扩展会自动重载;否则请在 chrome://extensions 点击刷新按钮。',
95
+ msg: 'WS 通道 broadcast 已发送(未收到 ack,兼容旧 server):若扩展端已实现 reload 处理器,所有 Chrome 实例中的 HunterMate 扩展会自动重载;否则请在 chrome://extensions 点击刷新按钮。',
68
96
  });
69
- }, 300);
97
+ }, 600);
70
98
  });
71
99
  ws.on('error', (e) => {
72
100
  clearTimeout(timer);
@@ -75,21 +103,23 @@ function runReload(timeoutMs = 5000) {
75
103
  });
76
104
  }
77
105
  /** 对应 ChromePilot open-ext / open-extension-folder: 打开 ~/.hunter-mate/extension */
78
- async function runOpenExt(target) {
79
- const init = (0, init_1.runInit)();
106
+ export async function runOpenExt(target) {
107
+ const init = runInit();
80
108
  const dir = target ?? init.extensionDir;
81
109
  if (!fs.existsSync(dir))
82
110
  fs.mkdirSync(dir, { recursive: true });
83
111
  try {
84
- const { default: open } = await Promise.resolve().then(() => __importStar(require('open')));
112
+ const { default: open } = await import('open');
85
113
  await open(dir);
86
114
  }
87
115
  catch (e) {
88
- console.warn(`open(3) not available: ${e.message}. 请手动打开: ${dir}`);
116
+ getCliLogger().warn('extras:open-failed', {
117
+ hint: `open(3) not available: ${e.message}. 请手动打开: ${dir}`,
118
+ });
89
119
  }
90
120
  return dir;
91
121
  }
92
- exports.reloadCommand = new commander_1.Command('reload')
122
+ export const reloadCommand = new Command('reload')
93
123
  .description('通知所有已连接的 Chrome 扩展重新加载(对应 chromepilot reload)')
94
124
  .action(async () => {
95
125
  try {
@@ -97,11 +127,11 @@ exports.reloadCommand = new commander_1.Command('reload')
97
127
  console.log(r.msg);
98
128
  }
99
129
  catch (e) {
100
- console.error(`reload error: ${e.message}`);
130
+ getCliLogger().error('extras:reload-failed', { error: e.message });
101
131
  process.exit(1);
102
132
  }
103
133
  });
104
- exports.openExtCommand = new commander_1.Command('open-extension-folder')
134
+ export const openExtCommand = new Command('open-extension-folder')
105
135
  .alias('open-ext')
106
136
  .description('打开 ~/.hunter-mate/extension 文件夹,方便拖到 chrome://extensions 加载(对应 chromepilot open-ext)')
107
137
  .option('-t, --target <dir>', '指定自定义扩展目录')
@@ -109,3 +139,160 @@ exports.openExtCommand = new commander_1.Command('open-extension-folder')
109
139
  const dir = await runOpenExt(opts.target);
110
140
  console.log(`extension folder: ${dir}`);
111
141
  });
142
+ // ---------------------------------------------------------------------------
143
+ // purge — 彻底清理本地 hunter-mate 数据
144
+ // ---------------------------------------------------------------------------
145
+ const HM_ROOT = () => path.join(process.env.HUNTER_MATE_HOME || process.env.HOME || process.env.USERPROFILE || '.', '.hunter-mate');
146
+ /** 交互式二次确认 */
147
+ function confirmPrompt(question) {
148
+ return new Promise((resolve) => {
149
+ // 非 TTY 环境(如管道/CI)当作未确认,需要 --force
150
+ if (!process.stdin.isTTY)
151
+ return resolve(false);
152
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
153
+ rl.question(question, (ans) => {
154
+ rl.close();
155
+ const a = ans.trim().toLowerCase();
156
+ resolve(a === 'y' || a === 'yes');
157
+ });
158
+ });
159
+ }
160
+ /** 递归目录大小统计(用于展示将要删除的数据量) */
161
+ function dirSize(dir) {
162
+ let files = 0;
163
+ let bytes = 0;
164
+ if (!fs.existsSync(dir))
165
+ return { files: 0, bytes: 0 };
166
+ const walk = (d) => {
167
+ for (const ent of fs.readdirSync(d, { withFileTypes: true })) {
168
+ const full = path.join(d, ent.name);
169
+ if (ent.isDirectory())
170
+ walk(full);
171
+ else if (ent.isFile()) {
172
+ files++;
173
+ try {
174
+ bytes += fs.statSync(full).size;
175
+ }
176
+ catch { }
177
+ }
178
+ }
179
+ };
180
+ try {
181
+ walk(dir);
182
+ }
183
+ catch { }
184
+ return { files, bytes };
185
+ }
186
+ function humanSize(bytes) {
187
+ if (bytes < 1024)
188
+ return `${bytes} B`;
189
+ if (bytes < 1024 * 1024)
190
+ return `${(bytes / 1024).toFixed(1)} KB`;
191
+ if (bytes < 1024 * 1024 * 1024)
192
+ return `${(bytes / 1024 / 1024).toFixed(1)} MB`;
193
+ return `${(bytes / 1024 / 1024 / 1024).toFixed(2)} GB`;
194
+ }
195
+ /**
196
+ * 彻底清理本地 hunter-mate:
197
+ * 1. 停止本地 server(若运行中)
198
+ * 2. 删除整个 ~/.hunter-mate 目录(含 config、token、cache DB、插件、skill、trace、日志、pid 等)
199
+ */
200
+ export async function runPurge(opts) {
201
+ const root = HM_ROOT();
202
+ const exists = fs.existsSync(root);
203
+ // 1) 预检查:数据规模展示
204
+ let info = { files: 0, bytes: 0 };
205
+ if (exists)
206
+ info = dirSize(root);
207
+ const livePid = tryReadPid();
208
+ // 2) 二次确认(--force 或非交互跳过)
209
+ if (!opts.force) {
210
+ console.log([
211
+ i18n.t('purge.preview.title'),
212
+ ` ${i18n.t('purge.preview.root')}: ${root}`,
213
+ ` ${i18n.t('purge.preview.exists')}: ${exists ? i18n.t('purge.preview.yes') : i18n.t('purge.preview.no')}`,
214
+ exists
215
+ ? ` ${i18n.t('purge.preview.size')}: ${info.files} ${i18n.t('purge.preview.files')} / ${humanSize(info.bytes)}`
216
+ : '',
217
+ livePid
218
+ ? ` ${i18n.t('purge.preview.running')}: pid=${livePid} (${i18n.t('purge.preview.willStop')})`
219
+ : '',
220
+ '',
221
+ i18n.t('purge.preview.includes'),
222
+ ` - server.pid / server.log / runtime.json`,
223
+ ` - token.json / config.json (${i18n.t('purge.preview.loginLost')})`,
224
+ ` - cache.sqlite (job_cases / communication_records / search_history)`,
225
+ ` - plugins/ skills/ memory.json externals.json`,
226
+ ` - sessions/*.trace.jsonl recordings/ extension/`,
227
+ '',
228
+ ].filter(Boolean).join('\n'));
229
+ const ok = await confirmPrompt(i18n.t('purge.confirm.prompt'));
230
+ if (!ok) {
231
+ return {
232
+ ok: false,
233
+ skipped: true,
234
+ root,
235
+ serverStopped: null,
236
+ msg: i18n.t('purge.confirm.cancelled'),
237
+ };
238
+ }
239
+ }
240
+ // 3) 停止 server(先于目录删除,避免 server 还在写日志导致删不干净)
241
+ let serverStopResult = null;
242
+ if (livePid || exists && fs.existsSync(path.join(root, 'server.pid'))) {
243
+ serverStopResult = runStop();
244
+ }
245
+ // 4) 删除目录
246
+ let removedFiles = info.files;
247
+ let removedBytes = info.bytes;
248
+ if (exists) {
249
+ try {
250
+ // 再扫一遍,防止 stop 过程中又有新文件
251
+ const post = dirSize(root);
252
+ removedFiles = Math.max(removedFiles, post.files);
253
+ removedBytes = Math.max(removedBytes, post.bytes);
254
+ fs.rmSync(root, { recursive: true, force: true });
255
+ }
256
+ catch (err) {
257
+ return {
258
+ ok: false,
259
+ root,
260
+ serverStopped: serverStopResult,
261
+ msg: `${i18n.t('purge.error.rmFailed')}: ${err.message}`,
262
+ };
263
+ }
264
+ }
265
+ return {
266
+ ok: true,
267
+ root,
268
+ serverStopped: serverStopResult,
269
+ removedFiles,
270
+ removedBytes,
271
+ msg: exists
272
+ ? [
273
+ i18n.t('purge.done.title'),
274
+ ` ${i18n.t('purge.done.root')}: ${root}`,
275
+ ` ${i18n.t('purge.done.removed')}: ${removedFiles} ${i18n.t('purge.preview.files')} / ${humanSize(removedBytes)}`,
276
+ serverStopResult?.stopped
277
+ ? ` ${i18n.t('purge.done.server')}: ${serverStopResult.msg}`
278
+ : serverStopResult
279
+ ? ` ${i18n.t('purge.done.server')}: ${serverStopResult.msg}`
280
+ : '',
281
+ ` ${i18n.t('purge.done.next')}: \`hunter-mate init\``,
282
+ ].filter(Boolean).join('\n')
283
+ : `${i18n.t('purge.done.nothing')} (${root} ${i18n.t('purge.preview.noExist')})`,
284
+ };
285
+ }
286
+ export const purgeCommand = new Command('purge')
287
+ .alias('reset')
288
+ .alias('uninstall')
289
+ .description(i18n.t('purge.description'))
290
+ .option('-y, --force', i18n.t('purge.forceOption'))
291
+ .action(async (opts) => {
292
+ const r = await runPurge({ force: !!opts.force });
293
+ console.log(r.msg);
294
+ if (!r.ok && !r.skipped)
295
+ process.exit(1);
296
+ if (r.skipped)
297
+ process.exit(2);
298
+ });
@@ -1,53 +1,17 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.initCommand = void 0;
37
- exports.runInit = runInit;
38
- const commander_1 = require("commander");
39
- const fs = __importStar(require("fs"));
40
- const path = __importStar(require("path"));
41
- const config_1 = require("../config");
1
+ import { Command } from 'commander';
2
+ import * as fs from 'fs';
3
+ import * as path from 'path';
4
+ import { ensureConfigDir, loadConfig, saveConfig } from '../config.js';
5
+ import { getCliLogger } from '../logger.js';
42
6
  /** 对应 ChromePilot init: 创建 ~/.hunter-mate 目录、SQLite、初始 token */
43
- function runInit(force = false) {
7
+ export function runInit(force = false) {
44
8
  const HOME = process.env.HUNTER_MATE_HOME || process.env.HOME || process.env.USERPROFILE || '.';
45
9
  const ROOT = path.join(HOME, '.hunter-mate');
46
10
  const EXT_DIR = path.join(ROOT, 'extension');
47
11
  const DB_FILE = path.join(ROOT, 'hunter-mate.db');
48
12
  const SESSIONS_DIR = path.join(ROOT, 'sessions');
49
13
  const TOKEN_FILE = path.join(ROOT, 'token');
50
- (0, config_1.ensureConfigDir)();
14
+ ensureConfigDir();
51
15
  for (const d of [ROOT, EXT_DIR, SESSIONS_DIR]) {
52
16
  if (!fs.existsSync(d))
53
17
  fs.mkdirSync(d, { recursive: true });
@@ -63,21 +27,29 @@ function runInit(force = false) {
63
27
  Math.random().toString(36).slice(2, 10) +
64
28
  Math.random().toString(36).slice(2, 10) +
65
29
  Date.now().toString(36);
30
+ // POSIX 上 mode 0o600 强制 owner-only;Windows NTFS 上 mode bit 被忽略,
31
+ // 由 %USERPROFILE%\.hunter-mate 目录的 ACL 兜底(默认仅当前用户可访问)。
32
+ // 真正安全的 Windows 路径是 keytar → Windows Credential Manager(见 keychain.ts)。
66
33
  fs.writeFileSync(TOKEN_FILE, token, { mode: 0o600 });
67
34
  }
68
35
  else {
69
36
  token = fs.readFileSync(TOKEN_FILE, 'utf-8').trim();
70
37
  }
71
38
  // 保证 serverUrl 默认值落到 config(首次)
72
- (0, config_1.loadConfig)();
73
- void config_1.saveConfig;
39
+ loadConfig();
40
+ void saveConfig;
74
41
  return { dir: ROOT, extensionDir: EXT_DIR, dbFile: DB_FILE, sessionsDir: SESSIONS_DIR, token };
75
42
  }
76
- exports.initCommand = new commander_1.Command('init')
43
+ export const initCommand = new Command('init')
77
44
  .description('创建 ~/.hunter-mate 目录、SQLite 数据库文件、初始 token(对应 chromepilot init)')
78
45
  .option('-f, --force', '强制重建 token')
79
46
  .action((opts) => {
80
47
  const r = runInit(opts.force);
48
+ getCliLogger().info('init:done', {
49
+ dir: r.dir,
50
+ dbFile: r.dbFile,
51
+ force: !!opts.force,
52
+ });
81
53
  console.log(`hunter-mate init OK:`);
82
54
  console.log(` dir: ${r.dir}`);
83
55
  console.log(` extension: ${r.extensionDir} (用 \`hunter-mate install\` 写入扩展 dist)`);
@@ -1,49 +1,17 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.installCommand = void 0;
37
- exports.runInstall = runInstall;
38
- exports.showInstallGuide = showInstallGuide;
39
- const commander_1 = require("commander");
40
- const fs = __importStar(require("fs"));
41
- const path = __importStar(require("path"));
42
- const init_1 = require("./init");
1
+ import { Command } from 'commander';
2
+ import * as fs from 'fs';
3
+ import * as path from 'path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { runInit } from './init.js';
6
+ import { findBundledAssets } from '../bundled-assets.js';
7
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
43
8
  /** 对应 ChromePilot install: 把内置 extension dist 复制到 ~/.hunter-mate/extension */
44
9
  function resolveBuiltinExtensionDist() {
45
- // 约定: monorepo 中 extension dist 与 CLI 包并列 packages/extension/dist
46
- // 单包发布时则 fallback 到 CLI 包内的 bundled-extension/
10
+ // 优先 bundled-assets(npm 安装模式:dist/assets/extension 已存在)
11
+ const bundled = findBundledAssets();
12
+ if (bundled)
13
+ return bundled.extensionDir;
14
+ // fallback:monorepo 并列路径(老 hunter-mate 开发模式)
47
15
  const candidates = [
48
16
  path.resolve(__dirname, '../../../extension/dist'), // monorepo: packages/cli/dist/commands -> packages/extension/dist
49
17
  path.resolve(__dirname, '../../bundled-extension'), // bundled
@@ -53,8 +21,8 @@ function resolveBuiltinExtensionDist() {
53
21
  return c;
54
22
  return null;
55
23
  }
56
- function runInstall(target) {
57
- const init = (0, init_1.runInit)();
24
+ export function runInstall(target) {
25
+ const init = runInit();
58
26
  const targetDir = target ?? init.extensionDir;
59
27
  if (!fs.existsSync(targetDir))
60
28
  fs.mkdirSync(targetDir, { recursive: true });
@@ -83,7 +51,7 @@ const B = {
83
51
  green: '\x1b[32m', yellow: '\x1b[33m', red: '\x1b[31m', cyan: '\x1b[36m', magenta: '\x1b[35m',
84
52
  };
85
53
  /** 友好引导: 告诉用户如何在 Chrome 中加载 Hunter Mate 扩展 */
86
- function showInstallGuide(extDir) {
54
+ export function showInstallGuide(extDir) {
87
55
  console.log(`\n${B.bold}${B.cyan}━━━━━━━━━━━━━━━━━━━━━━━━━━ Hunter Mate 扩展安装指引 ━━━━━━━━━━━━━━━━━━━━━━━━━━${B.reset}`);
88
56
  console.log(`\n${B.bold}扩展文件已经准备好:${B.reset}`);
89
57
  console.log(` ${B.cyan}${extDir}${B.reset}`);
@@ -100,16 +68,16 @@ function showInstallGuide(extDir) {
100
68
  console.log(` · 扩展报权限错误? → chrome://extensions → Hunter Mate → 详情 → 允许访问所有网站`);
101
69
  console.log(`\n${B.bold}${B.cyan}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${B.reset}\n`);
102
70
  }
103
- exports.installCommand = new commander_1.Command('install')
71
+ export const installCommand = new Command('install')
104
72
  .description('把内置 extension dist 复制到 ~/.hunter-mate/extension(对应 chromepilot install)。完成后自动打开目录并给出中文引导。')
105
73
  .option('-t, --target <dir>', '目标目录,默认 ~/.hunter-mate/extension')
106
74
  .option('--no-open', '不自动打开扩展所在目录')
107
75
  .action(async (opts) => {
108
76
  const r = runInstall(opts.target);
109
77
  if (!r.source) {
110
- console.log(`${B.yellow}⚠ 未找到内置 extension dist(本仓库 packages/extension 尚未构建)。${B.reset}\n` +
111
- ` 请先在 hunter-mate monorepo 执行:\n` +
112
- ` ${B.bold}pnpm --filter @hunter-mate/extension build${B.reset}\n` +
78
+ console.log(`${B.yellow}⚠ hunter-mate 找不到内置 extension dist。${B.reset}\n` +
79
+ ` - 若你正在 monorepo 开发:执行 ${B.bold}pnpm --filter @hunter-mate/extension build${B.reset} 后重试。\n` +
80
+ ` - 若你已 ${B.bold}npm install -g hunter-mate${B.reset}:本 npm 包未含 extension 资产,完整终端分发包(含 extension)需联系 Hiredchina IT 索要。\n` +
113
81
  ` 目标目录已准备好: ${B.cyan}${r.target}${B.reset}`);
114
82
  return;
115
83
  }
@@ -117,7 +85,7 @@ exports.installCommand = new commander_1.Command('install')
117
85
  // 自动打开目录 + 引导
118
86
  if (opts.open !== false) {
119
87
  try {
120
- const { default: open } = await Promise.resolve().then(() => __importStar(require('open')));
88
+ const { default: open } = await import('open');
121
89
  open(r.target).catch(() => { });
122
90
  }
123
91
  catch { }