hunter-mate 0.1.15 → 0.1.17

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 (654) hide show
  1. package/dist/assets/extension/background/service-worker.20261001153649.js +4618 -0
  2. package/dist/assets/extension/background/service-worker.js +536 -99
  3. package/dist/assets/extension/build-info.json +1 -1
  4. package/dist/assets/extension/content/index.js +2 -2
  5. package/dist/assets/extension/icons/icon128.png +0 -0
  6. package/dist/assets/extension/manifest.json +7 -3
  7. package/dist/assets/extension/offscreen/offscreen.html +1 -1
  8. package/dist/assets/extension/offscreen/offscreen.js +269 -117
  9. package/dist/assets/extension/package.json +2 -1
  10. package/dist/assets/extension/sidepanel/index.css +1 -1
  11. package/dist/assets/extension/sidepanel/index.html +1 -1
  12. package/dist/assets/extension/sidepanel/index.js +27 -10
  13. package/dist/assets/server/chunks/chunk-EKKMDS42.mjs +26 -0
  14. package/dist/assets/server/chunks/chunk-GNM26E3H.mjs +54 -0
  15. package/dist/assets/server/chunks/chunk-IXYSL3NT.mjs +567 -0
  16. package/dist/assets/server/chunks/chunk-SAJB6JRK.mjs +14421 -0
  17. package/dist/assets/server/chunks/chunk-U7FVFSKP.mjs +1565 -0
  18. package/dist/assets/server/chunks/esm-4U746B76.mjs +29 -0
  19. package/dist/assets/server/chunks/getMachineId-bsd-L5TFP6QC.mjs +46 -0
  20. package/dist/assets/server/chunks/getMachineId-darwin-OY4E7LEK.mjs +45 -0
  21. package/dist/assets/server/chunks/getMachineId-linux-NSVVMJTW.mjs +39 -0
  22. package/dist/assets/server/chunks/getMachineId-unsupported-WBPZVDKV.mjs +29 -0
  23. package/dist/assets/server/chunks/getMachineId-win-LGO5ETVN.mjs +48 -0
  24. package/dist/assets/server/chunks/script-rule-ANR2J7E6.mjs +14 -0
  25. package/dist/assets/server/main.mjs +302490 -0
  26. package/dist/index.js +72986 -174
  27. package/dist/postinstall.js +221 -27
  28. package/dist/watchdog.js +324 -233
  29. package/dist/web/dist/404.html +1 -1
  30. package/dist/web/dist/_next/static/chunks/170-b66b6f731381943e.js +1 -0
  31. package/dist/web/dist/_next/static/chunks/{589-d632233641f35681.js → 589-5e99e548a0ee6bac.js} +1 -1
  32. package/dist/web/dist/_next/static/chunks/686-ade57c57a1737818.js +1 -0
  33. package/dist/web/dist/_next/static/chunks/{935-99f57b7d4151d9e7.js → 935-bb4adb3868af4cd4.js} +2 -2
  34. package/dist/web/dist/_next/static/chunks/{a7067448-96dd4b8457c447e8.js → a7067448-d3882c7e74c162bf.js} +1 -1
  35. package/dist/web/dist/_next/static/chunks/app/_not-found/{page-fdf1a13a7656886a.js → page-cf5ab201496f0914.js} +1 -1
  36. package/dist/web/dist/_next/static/chunks/app/admin/data/page-37e01dad70306bf3.js +1 -0
  37. package/dist/web/dist/_next/static/chunks/app/auth/verify/page-38fa28a48f76defa.js +1 -0
  38. package/dist/web/dist/_next/static/chunks/app/companies/page-985002eea5b295d0.js +1 -0
  39. package/dist/web/dist/_next/static/chunks/app/company/admin/page-8c7ecc92bef09e92.js +1 -0
  40. package/dist/web/dist/_next/static/chunks/app/entity/{page-250f8a9b6d91ab19.js → page-dc9664fb628e2d08.js} +1 -1
  41. package/dist/web/dist/_next/static/chunks/app/jobs/page-e39b3e25f0a81254.js +1 -0
  42. package/dist/web/dist/_next/static/chunks/app/layout-d094dc654772bf32.js +1 -0
  43. package/dist/web/dist/_next/static/chunks/app/logs/{page-d478031d49f7ba00.js → page-ccc6bb863cf77e56.js} +1 -1
  44. package/dist/web/dist/_next/static/chunks/app/matching/jobs/[id]/talents/page-936f6190c968d20b.js +1 -0
  45. package/dist/web/dist/_next/static/chunks/app/matching/portraits/[id]/jobs/page-ea44a2236bd53cae.js +1 -0
  46. package/dist/web/dist/_next/static/chunks/app/page-41d8e008a9411221.js +1 -0
  47. package/dist/web/dist/_next/static/chunks/app/parselog/page-3f756bbd580f337e.js +1 -0
  48. package/dist/web/dist/_next/static/chunks/app/recordings/page-ffd507b12e67f2db.js +1 -0
  49. package/dist/web/dist/_next/static/chunks/app/resource-usage/page-3b8bd27536a7889a.js +1 -0
  50. package/dist/web/dist/_next/static/chunks/app/snapshots/[id]/agent-prompt/page-c89b32aa2ef509f5.js +1 -0
  51. package/dist/web/dist/_next/static/chunks/app/talents/page-8e0b4072df138fa3.js +1 -0
  52. package/dist/web/dist/_next/static/chunks/{main-app-74b80a6877b21dfc.js → main-app-d053d37cc3b76ace.js} +1 -1
  53. package/dist/web/dist/_next/static/chunks/{main-5a4e0cd75dd7f04b.js → main-ead3ac50aa4bc931.js} +1 -1
  54. package/dist/web/dist/_next/static/chunks/pages/{_app-638dc63058a49a9c.js → _app-e11d02a41d9f3cb9.js} +2 -2
  55. package/dist/web/dist/_next/static/chunks/webpack-cf21e951181fd345.js +1 -0
  56. package/dist/web/dist/_next/static/css/1dd88e02ef1af7b9.css +3 -0
  57. package/dist/web/dist/admin/data.html +1 -0
  58. package/dist/web/dist/admin/data.txt +7 -0
  59. package/dist/web/dist/auth/verify.html +1 -1
  60. package/dist/web/dist/auth/verify.txt +3 -3
  61. package/dist/web/dist/companies.html +1 -1
  62. package/dist/web/dist/companies.txt +3 -3
  63. package/dist/web/dist/company/admin.html +1 -0
  64. package/dist/web/dist/company/admin.txt +7 -0
  65. package/dist/web/dist/entity.html +1 -1
  66. package/dist/web/dist/entity.txt +3 -3
  67. package/dist/web/dist/index.html +1 -1
  68. package/dist/web/dist/index.txt +3 -3
  69. package/dist/web/dist/jobs.html +1 -1
  70. package/dist/web/dist/jobs.txt +7 -6
  71. package/dist/web/dist/logs.html +1 -1
  72. package/dist/web/dist/logs.txt +3 -3
  73. package/dist/web/dist/matching/jobs/placeholder/talents.html +1 -1
  74. package/dist/web/dist/matching/jobs/placeholder/talents.txt +3 -3
  75. package/dist/web/dist/matching/portraits/placeholder/jobs.html +1 -1
  76. package/dist/web/dist/matching/portraits/placeholder/jobs.txt +3 -3
  77. package/dist/web/dist/parselog.html +1 -1
  78. package/dist/web/dist/parselog.txt +3 -3
  79. package/dist/web/dist/recordings.html +1 -1
  80. package/dist/web/dist/recordings.txt +3 -3
  81. package/dist/web/dist/resource-usage.html +1 -0
  82. package/dist/web/dist/resource-usage.txt +8 -0
  83. package/dist/web/dist/snapshots/placeholder/agent-prompt.html +1 -1
  84. package/dist/web/dist/snapshots/placeholder/agent-prompt.txt +3 -3
  85. package/dist/web/dist/talents.html +1 -1
  86. package/dist/web/dist/talents.txt +3 -3
  87. package/package.json +18 -15
  88. package/dist/assets/server/agent-session/agent-session.controller.d.ts +0 -32
  89. package/dist/assets/server/agent-session/agent-session.controller.js +0 -83
  90. package/dist/assets/server/agent-session/agent-session.controller.js.map +0 -1
  91. package/dist/assets/server/agent-session/agent-session.guard.d.ts +0 -4
  92. package/dist/assets/server/agent-session/agent-session.guard.js +0 -32
  93. package/dist/assets/server/agent-session/agent-session.guard.js.map +0 -1
  94. package/dist/assets/server/agent-session/agent-session.module.d.ts +0 -2
  95. package/dist/assets/server/agent-session/agent-session.module.js +0 -28
  96. package/dist/assets/server/agent-session/agent-session.module.js.map +0 -1
  97. package/dist/assets/server/agent-session/agent-session.service.d.ts +0 -54
  98. package/dist/assets/server/agent-session/agent-session.service.js +0 -431
  99. package/dist/assets/server/agent-session/agent-session.service.js.map +0 -1
  100. package/dist/assets/server/agent-session/agent-session.types.d.ts +0 -56
  101. package/dist/assets/server/agent-session/agent-session.types.js +0 -3
  102. package/dist/assets/server/agent-session/agent-session.types.js.map +0 -1
  103. package/dist/assets/server/agent-session/entities/agent-event.entity.d.ts +0 -12
  104. package/dist/assets/server/agent-session/entities/agent-event.entity.js +0 -73
  105. package/dist/assets/server/agent-session/entities/agent-event.entity.js.map +0 -1
  106. package/dist/assets/server/agent-session/entities/agent-message.entity.d.ts +0 -13
  107. package/dist/assets/server/agent-session/entities/agent-message.entity.js +0 -77
  108. package/dist/assets/server/agent-session/entities/agent-message.entity.js.map +0 -1
  109. package/dist/assets/server/agent-session/entities/agent-session.entity.d.ts +0 -14
  110. package/dist/assets/server/agent-session/entities/agent-session.entity.js +0 -83
  111. package/dist/assets/server/agent-session/entities/agent-session.entity.js.map +0 -1
  112. package/dist/assets/server/app.module.d.ts +0 -4
  113. package/dist/assets/server/app.module.js +0 -141
  114. package/dist/assets/server/app.module.js.map +0 -1
  115. package/dist/assets/server/auth/auth.controller.d.ts +0 -43
  116. package/dist/assets/server/auth/auth.controller.js +0 -127
  117. package/dist/assets/server/auth/auth.controller.js.map +0 -1
  118. package/dist/assets/server/auth/auth.middleware.d.ts +0 -5
  119. package/dist/assets/server/auth/auth.middleware.js +0 -42
  120. package/dist/assets/server/auth/auth.middleware.js.map +0 -1
  121. package/dist/assets/server/auth/auth.module.d.ts +0 -2
  122. package/dist/assets/server/auth/auth.module.js +0 -27
  123. package/dist/assets/server/auth/auth.module.js.map +0 -1
  124. package/dist/assets/server/auth/auth.service.d.ts +0 -58
  125. package/dist/assets/server/auth/auth.service.js +0 -303
  126. package/dist/assets/server/auth/auth.service.js.map +0 -1
  127. package/dist/assets/server/auth/auth.types.d.ts +0 -28
  128. package/dist/assets/server/auth/auth.types.js +0 -3
  129. package/dist/assets/server/auth/auth.types.js.map +0 -1
  130. package/dist/assets/server/auth/saas-token.entity.d.ts +0 -7
  131. package/dist/assets/server/auth/saas-token.entity.js +0 -46
  132. package/dist/assets/server/auth/saas-token.entity.js.map +0 -1
  133. package/dist/assets/server/build-info.json +0 -4
  134. package/dist/assets/server/common/common.module.d.ts +0 -2
  135. package/dist/assets/server/common/common.module.js +0 -22
  136. package/dist/assets/server/common/common.module.js.map +0 -1
  137. package/dist/assets/server/common/crypto.service.d.ts +0 -11
  138. package/dist/assets/server/common/crypto.service.js +0 -73
  139. package/dist/assets/server/common/crypto.service.js.map +0 -1
  140. package/dist/assets/server/communication/communication-record.entity.d.ts +0 -15
  141. package/dist/assets/server/communication/communication-record.entity.js +0 -80
  142. package/dist/assets/server/communication/communication-record.entity.js.map +0 -1
  143. package/dist/assets/server/communication/communication.controller.d.ts +0 -12
  144. package/dist/assets/server/communication/communication.controller.js +0 -61
  145. package/dist/assets/server/communication/communication.controller.js.map +0 -1
  146. package/dist/assets/server/communication/communication.module.d.ts +0 -2
  147. package/dist/assets/server/communication/communication.module.js +0 -25
  148. package/dist/assets/server/communication/communication.module.js.map +0 -1
  149. package/dist/assets/server/communication/communication.service.d.ts +0 -23
  150. package/dist/assets/server/communication/communication.service.js +0 -51
  151. package/dist/assets/server/communication/communication.service.js.map +0 -1
  152. package/dist/assets/server/customer/customer.controller.d.ts +0 -18
  153. package/dist/assets/server/customer/customer.controller.js +0 -81
  154. package/dist/assets/server/customer/customer.controller.js.map +0 -1
  155. package/dist/assets/server/customer/customer.entity.d.ts +0 -17
  156. package/dist/assets/server/customer/customer.entity.js +0 -82
  157. package/dist/assets/server/customer/customer.entity.js.map +0 -1
  158. package/dist/assets/server/customer/customer.module.d.ts +0 -2
  159. package/dist/assets/server/customer/customer.module.js +0 -28
  160. package/dist/assets/server/customer/customer.module.js.map +0 -1
  161. package/dist/assets/server/customer/customer.service.d.ts +0 -36
  162. package/dist/assets/server/customer/customer.service.js +0 -200
  163. package/dist/assets/server/customer/customer.service.js.map +0 -1
  164. package/dist/assets/server/datasync/datasync.module.d.ts +0 -2
  165. package/dist/assets/server/datasync/datasync.module.js +0 -26
  166. package/dist/assets/server/datasync/datasync.module.js.map +0 -1
  167. package/dist/assets/server/datasync/datasync.service.d.ts +0 -50
  168. package/dist/assets/server/datasync/datasync.service.js +0 -389
  169. package/dist/assets/server/datasync/datasync.service.js.map +0 -1
  170. package/dist/assets/server/datasync/entities/sync-conflict.entity.d.ts +0 -10
  171. package/dist/assets/server/datasync/entities/sync-conflict.entity.js +0 -61
  172. package/dist/assets/server/datasync/entities/sync-conflict.entity.js.map +0 -1
  173. package/dist/assets/server/datasync/entities/sync-cursor.entity.d.ts +0 -9
  174. package/dist/assets/server/datasync/entities/sync-cursor.entity.js +0 -56
  175. package/dist/assets/server/datasync/entities/sync-cursor.entity.js.map +0 -1
  176. package/dist/assets/server/datasync/registry.d.ts +0 -8
  177. package/dist/assets/server/datasync/registry.js +0 -55
  178. package/dist/assets/server/datasync/registry.js.map +0 -1
  179. package/dist/assets/server/db/schema-validator.service.d.ts +0 -27
  180. package/dist/assets/server/db/schema-validator.service.js +0 -138
  181. package/dist/assets/server/db/schema-validator.service.js.map +0 -1
  182. package/dist/assets/server/db/schema-version.entity.d.ts +0 -5
  183. package/dist/assets/server/db/schema-version.entity.js +0 -35
  184. package/dist/assets/server/db/schema-version.entity.js.map +0 -1
  185. package/dist/assets/server/db/sqlite.module.d.ts +0 -3
  186. package/dist/assets/server/db/sqlite.module.js +0 -99
  187. package/dist/assets/server/db/sqlite.module.js.map +0 -1
  188. package/dist/assets/server/devops/devops-sink-init.d.ts +0 -10
  189. package/dist/assets/server/devops/devops-sink-init.js +0 -96
  190. package/dist/assets/server/devops/devops-sink-init.js.map +0 -1
  191. package/dist/assets/server/devops/devops-sink-init.spec.d.ts +0 -1
  192. package/dist/assets/server/devops/devops-sink-init.spec.js +0 -71
  193. package/dist/assets/server/devops/devops-sink-init.spec.js.map +0 -1
  194. package/dist/assets/server/devops/devops-sink.module.d.ts +0 -2
  195. package/dist/assets/server/devops/devops-sink.module.js +0 -22
  196. package/dist/assets/server/devops/devops-sink.module.js.map +0 -1
  197. package/dist/assets/server/doctor/doctor.controller.d.ts +0 -13
  198. package/dist/assets/server/doctor/doctor.controller.js +0 -62
  199. package/dist/assets/server/doctor/doctor.controller.js.map +0 -1
  200. package/dist/assets/server/doctor/doctor.module.d.ts +0 -2
  201. package/dist/assets/server/doctor/doctor.module.js +0 -27
  202. package/dist/assets/server/doctor/doctor.module.js.map +0 -1
  203. package/dist/assets/server/doctor/doctor.service.d.ts +0 -15
  204. package/dist/assets/server/doctor/doctor.service.js +0 -209
  205. package/dist/assets/server/doctor/doctor.service.js.map +0 -1
  206. package/dist/assets/server/doctor/doctor.types.d.ts +0 -46
  207. package/dist/assets/server/doctor/doctor.types.js +0 -3
  208. package/dist/assets/server/doctor/doctor.types.js.map +0 -1
  209. package/dist/assets/server/extension/extension-control.controller.d.ts +0 -86
  210. package/dist/assets/server/extension/extension-control.controller.js +0 -229
  211. package/dist/assets/server/extension/extension-control.controller.js.map +0 -1
  212. package/dist/assets/server/extension/extension-control.service.d.ts +0 -59
  213. package/dist/assets/server/extension/extension-control.service.js +0 -275
  214. package/dist/assets/server/extension/extension-control.service.js.map +0 -1
  215. package/dist/assets/server/extension/extension-core.module.d.ts +0 -2
  216. package/dist/assets/server/extension/extension-core.module.js +0 -21
  217. package/dist/assets/server/extension/extension-core.module.js.map +0 -1
  218. package/dist/assets/server/extension/extension-version.controller.d.ts +0 -6
  219. package/dist/assets/server/extension/extension-version.controller.js +0 -41
  220. package/dist/assets/server/extension/extension-version.controller.js.map +0 -1
  221. package/dist/assets/server/extension/extension.module.d.ts +0 -2
  222. package/dist/assets/server/extension/extension.module.js +0 -26
  223. package/dist/assets/server/extension/extension.module.js.map +0 -1
  224. package/dist/assets/server/extraction/adapter.service.d.ts +0 -58
  225. package/dist/assets/server/extraction/adapter.service.js +0 -396
  226. package/dist/assets/server/extraction/adapter.service.js.map +0 -1
  227. package/dist/assets/server/extraction/anomaly-report.service.d.ts +0 -12
  228. package/dist/assets/server/extraction/anomaly-report.service.js +0 -81
  229. package/dist/assets/server/extraction/anomaly-report.service.js.map +0 -1
  230. package/dist/assets/server/extraction/entities/adapter-rule.entity.d.ts +0 -15
  231. package/dist/assets/server/extraction/entities/adapter-rule.entity.js +0 -81
  232. package/dist/assets/server/extraction/entities/adapter-rule.entity.js.map +0 -1
  233. package/dist/assets/server/extraction/entities/company-profile.entity.d.ts +0 -14
  234. package/dist/assets/server/extraction/entities/company-profile.entity.js +0 -81
  235. package/dist/assets/server/extraction/entities/company-profile.entity.js.map +0 -1
  236. package/dist/assets/server/extraction/entities/job-posting.entity.d.ts +0 -15
  237. package/dist/assets/server/extraction/entities/job-posting.entity.js +0 -86
  238. package/dist/assets/server/extraction/entities/job-posting.entity.js.map +0 -1
  239. package/dist/assets/server/extraction/entities/parse-log.entity.d.ts +0 -18
  240. package/dist/assets/server/extraction/entities/parse-log.entity.js +0 -102
  241. package/dist/assets/server/extraction/entities/parse-log.entity.js.map +0 -1
  242. package/dist/assets/server/extraction/entities/talent-profile.entity.d.ts +0 -15
  243. package/dist/assets/server/extraction/entities/talent-profile.entity.js +0 -86
  244. package/dist/assets/server/extraction/entities/talent-profile.entity.js.map +0 -1
  245. package/dist/assets/server/extraction/extraction-entity.controller.d.ts +0 -156
  246. package/dist/assets/server/extraction/extraction-entity.controller.js +0 -528
  247. package/dist/assets/server/extraction/extraction-entity.controller.js.map +0 -1
  248. package/dist/assets/server/extraction/extraction-rule.controller.d.ts +0 -7
  249. package/dist/assets/server/extraction/extraction-rule.controller.js +0 -48
  250. package/dist/assets/server/extraction/extraction-rule.controller.js.map +0 -1
  251. package/dist/assets/server/extraction/extraction-rule.entity.d.ts +0 -15
  252. package/dist/assets/server/extraction/extraction-rule.entity.js +0 -80
  253. package/dist/assets/server/extraction/extraction-rule.entity.js.map +0 -1
  254. package/dist/assets/server/extraction/extraction-rule.service.d.ts +0 -24
  255. package/dist/assets/server/extraction/extraction-rule.service.js +0 -89
  256. package/dist/assets/server/extraction/extraction-rule.service.js.map +0 -1
  257. package/dist/assets/server/extraction/extraction.module.d.ts +0 -2
  258. package/dist/assets/server/extraction/extraction.module.js +0 -63
  259. package/dist/assets/server/extraction/extraction.module.js.map +0 -1
  260. package/dist/assets/server/extraction/extraction.service.d.ts +0 -81
  261. package/dist/assets/server/extraction/extraction.service.js +0 -488
  262. package/dist/assets/server/extraction/extraction.service.js.map +0 -1
  263. package/dist/assets/server/extraction/harness-overlay.service.d.ts +0 -41
  264. package/dist/assets/server/extraction/harness-overlay.service.js +0 -319
  265. package/dist/assets/server/extraction/harness-overlay.service.js.map +0 -1
  266. package/dist/assets/server/extraction/liepin-extractor.d.ts +0 -1
  267. package/dist/assets/server/extraction/liepin-extractor.js +0 -172
  268. package/dist/assets/server/extraction/liepin-extractor.js.map +0 -1
  269. package/dist/assets/server/extraction/linkedin-extractor.d.ts +0 -1
  270. package/dist/assets/server/extraction/linkedin-extractor.js +0 -244
  271. package/dist/assets/server/extraction/linkedin-extractor.js.map +0 -1
  272. package/dist/assets/server/extraction/rrweb-snapshot.utils.d.ts +0 -15
  273. package/dist/assets/server/extraction/rrweb-snapshot.utils.js +0 -48
  274. package/dist/assets/server/extraction/rrweb-snapshot.utils.js.map +0 -1
  275. package/dist/assets/server/extraction/rrweb-snapshot.utils.spec.d.ts +0 -1
  276. package/dist/assets/server/extraction/rrweb-snapshot.utils.spec.js +0 -60
  277. package/dist/assets/server/extraction/rrweb-snapshot.utils.spec.js.map +0 -1
  278. package/dist/assets/server/extraction/script-rule.d.ts +0 -14
  279. package/dist/assets/server/extraction/script-rule.js +0 -61
  280. package/dist/assets/server/extraction/script-rule.js.map +0 -1
  281. package/dist/assets/server/extraction/snapshot-analysis.service.d.ts +0 -23
  282. package/dist/assets/server/extraction/snapshot-analysis.service.js +0 -147
  283. package/dist/assets/server/extraction/snapshot-analysis.service.js.map +0 -1
  284. package/dist/assets/server/extraction/structured-data.d.ts +0 -7
  285. package/dist/assets/server/extraction/structured-data.js +0 -96
  286. package/dist/assets/server/extraction/structured-data.js.map +0 -1
  287. package/dist/assets/server/governance/action-audit.entity.d.ts +0 -12
  288. package/dist/assets/server/governance/action-audit.entity.js +0 -66
  289. package/dist/assets/server/governance/action-audit.entity.js.map +0 -1
  290. package/dist/assets/server/governance/governance.command-recorder.d.ts +0 -17
  291. package/dist/assets/server/governance/governance.command-recorder.js +0 -98
  292. package/dist/assets/server/governance/governance.command-recorder.js.map +0 -1
  293. package/dist/assets/server/governance/governance.controller.d.ts +0 -14
  294. package/dist/assets/server/governance/governance.controller.js +0 -77
  295. package/dist/assets/server/governance/governance.controller.js.map +0 -1
  296. package/dist/assets/server/governance/governance.ingester.d.ts +0 -21
  297. package/dist/assets/server/governance/governance.ingester.js +0 -117
  298. package/dist/assets/server/governance/governance.ingester.js.map +0 -1
  299. package/dist/assets/server/governance/governance.module.d.ts +0 -2
  300. package/dist/assets/server/governance/governance.module.js +0 -27
  301. package/dist/assets/server/governance/governance.module.js.map +0 -1
  302. package/dist/assets/server/governance/governance.service.d.ts +0 -122
  303. package/dist/assets/server/governance/governance.service.js +0 -398
  304. package/dist/assets/server/governance/governance.service.js.map +0 -1
  305. package/dist/assets/server/hcapi/hcapi.module.d.ts +0 -2
  306. package/dist/assets/server/hcapi/hcapi.module.js +0 -23
  307. package/dist/assets/server/hcapi/hcapi.module.js.map +0 -1
  308. package/dist/assets/server/hcapi/hcapi.service.d.ts +0 -28
  309. package/dist/assets/server/hcapi/hcapi.service.js +0 -81
  310. package/dist/assets/server/hcapi/hcapi.service.js.map +0 -1
  311. package/dist/assets/server/health/health.controller.d.ts +0 -19
  312. package/dist/assets/server/health/health.controller.js +0 -59
  313. package/dist/assets/server/health/health.controller.js.map +0 -1
  314. package/dist/assets/server/jobcase/jobcase.controller.d.ts +0 -13
  315. package/dist/assets/server/jobcase/jobcase.controller.js +0 -61
  316. package/dist/assets/server/jobcase/jobcase.controller.js.map +0 -1
  317. package/dist/assets/server/jobcase/jobcase.entity.d.ts +0 -14
  318. package/dist/assets/server/jobcase/jobcase.entity.js +0 -77
  319. package/dist/assets/server/jobcase/jobcase.entity.js.map +0 -1
  320. package/dist/assets/server/jobcase/jobcase.module.d.ts +0 -2
  321. package/dist/assets/server/jobcase/jobcase.module.js +0 -26
  322. package/dist/assets/server/jobcase/jobcase.module.js.map +0 -1
  323. package/dist/assets/server/jobcase/jobcase.service.d.ts +0 -23
  324. package/dist/assets/server/jobcase/jobcase.service.js +0 -57
  325. package/dist/assets/server/jobcase/jobcase.service.js.map +0 -1
  326. package/dist/assets/server/llm/llm.module.d.ts +0 -2
  327. package/dist/assets/server/llm/llm.module.js +0 -21
  328. package/dist/assets/server/llm/llm.module.js.map +0 -1
  329. package/dist/assets/server/llm/llm.service.d.ts +0 -18
  330. package/dist/assets/server/llm/llm.service.js +0 -65
  331. package/dist/assets/server/llm/llm.service.js.map +0 -1
  332. package/dist/assets/server/main.d.ts +0 -1
  333. package/dist/assets/server/main.js +0 -31
  334. package/dist/assets/server/main.js.map +0 -1
  335. package/dist/assets/server/matching/matching.controller.d.ts +0 -16
  336. package/dist/assets/server/matching/matching.controller.js +0 -97
  337. package/dist/assets/server/matching/matching.controller.js.map +0 -1
  338. package/dist/assets/server/matching/matching.module.d.ts +0 -2
  339. package/dist/assets/server/matching/matching.module.js +0 -36
  340. package/dist/assets/server/matching/matching.module.js.map +0 -1
  341. package/dist/assets/server/matching/matching.service.d.ts +0 -55
  342. package/dist/assets/server/matching/matching.service.js +0 -409
  343. package/dist/assets/server/matching/matching.service.js.map +0 -1
  344. package/dist/assets/server/package.json +0 -59
  345. package/dist/assets/server/parsed-resume/parsed-resume.controller.d.ts +0 -6
  346. package/dist/assets/server/parsed-resume/parsed-resume.controller.js +0 -42
  347. package/dist/assets/server/parsed-resume/parsed-resume.controller.js.map +0 -1
  348. package/dist/assets/server/parsed-resume/parsed-resume.entity.d.ts +0 -124
  349. package/dist/assets/server/parsed-resume/parsed-resume.entity.js +0 -72
  350. package/dist/assets/server/parsed-resume/parsed-resume.entity.js.map +0 -1
  351. package/dist/assets/server/parsed-resume/parsed-resume.module.d.ts +0 -2
  352. package/dist/assets/server/parsed-resume/parsed-resume.module.js +0 -26
  353. package/dist/assets/server/parsed-resume/parsed-resume.module.js.map +0 -1
  354. package/dist/assets/server/parsed-resume/parsed-resume.service.d.ts +0 -10
  355. package/dist/assets/server/parsed-resume/parsed-resume.service.js +0 -45
  356. package/dist/assets/server/parsed-resume/parsed-resume.service.js.map +0 -1
  357. package/dist/assets/server/parsing/parse-error-report.entity.d.ts +0 -11
  358. package/dist/assets/server/parsing/parse-error-report.entity.js +0 -66
  359. package/dist/assets/server/parsing/parse-error-report.entity.js.map +0 -1
  360. package/dist/assets/server/parsing/parsing.controller.d.ts +0 -19
  361. package/dist/assets/server/parsing/parsing.controller.js +0 -97
  362. package/dist/assets/server/parsing/parsing.controller.js.map +0 -1
  363. package/dist/assets/server/parsing/parsing.module.d.ts +0 -2
  364. package/dist/assets/server/parsing/parsing.module.js +0 -38
  365. package/dist/assets/server/parsing/parsing.module.js.map +0 -1
  366. package/dist/assets/server/parsing/parsing.service.d.ts +0 -38
  367. package/dist/assets/server/parsing/parsing.service.js +0 -263
  368. package/dist/assets/server/parsing/parsing.service.js.map +0 -1
  369. package/dist/assets/server/preference/preference.controller.d.ts +0 -14
  370. package/dist/assets/server/preference/preference.controller.js +0 -66
  371. package/dist/assets/server/preference/preference.controller.js.map +0 -1
  372. package/dist/assets/server/preference/preference.entity.d.ts +0 -13
  373. package/dist/assets/server/preference/preference.entity.js +0 -77
  374. package/dist/assets/server/preference/preference.entity.js.map +0 -1
  375. package/dist/assets/server/preference/preference.module.d.ts +0 -2
  376. package/dist/assets/server/preference/preference.module.js +0 -26
  377. package/dist/assets/server/preference/preference.module.js.map +0 -1
  378. package/dist/assets/server/preference/preference.service.d.ts +0 -33
  379. package/dist/assets/server/preference/preference.service.js +0 -122
  380. package/dist/assets/server/preference/preference.service.js.map +0 -1
  381. package/dist/assets/server/query/fields-meta.controller.d.ts +0 -28
  382. package/dist/assets/server/query/fields-meta.controller.js +0 -57
  383. package/dist/assets/server/query/fields-meta.controller.js.map +0 -1
  384. package/dist/assets/server/query/query-builder.controller.d.ts +0 -11
  385. package/dist/assets/server/query/query-builder.controller.js +0 -40
  386. package/dist/assets/server/query/query-builder.controller.js.map +0 -1
  387. package/dist/assets/server/query/query-builder.service.d.ts +0 -8
  388. package/dist/assets/server/query/query-builder.service.js +0 -41
  389. package/dist/assets/server/query/query-builder.service.js.map +0 -1
  390. package/dist/assets/server/query/query.module.d.ts +0 -2
  391. package/dist/assets/server/query/query.module.js +0 -23
  392. package/dist/assets/server/query/query.module.js.map +0 -1
  393. package/dist/assets/server/recording/entities/recording-event.entity.d.ts +0 -9
  394. package/dist/assets/server/recording/entities/recording-event.entity.js +0 -56
  395. package/dist/assets/server/recording/entities/recording-event.entity.js.map +0 -1
  396. package/dist/assets/server/recording/entities/recording-snapshot.entity.d.ts +0 -16
  397. package/dist/assets/server/recording/entities/recording-snapshot.entity.js +0 -91
  398. package/dist/assets/server/recording/entities/recording-snapshot.entity.js.map +0 -1
  399. package/dist/assets/server/recording/recording-event-bus.service.d.ts +0 -4
  400. package/dist/assets/server/recording/recording-event-bus.service.js +0 -25
  401. package/dist/assets/server/recording/recording-event-bus.service.js.map +0 -1
  402. package/dist/assets/server/recording/recording-event-queue.service.d.ts +0 -26
  403. package/dist/assets/server/recording/recording-event-queue.service.js +0 -115
  404. package/dist/assets/server/recording/recording-event-queue.service.js.map +0 -1
  405. package/dist/assets/server/recording/recording-retention.service.d.ts +0 -38
  406. package/dist/assets/server/recording/recording-retention.service.js +0 -174
  407. package/dist/assets/server/recording/recording-retention.service.js.map +0 -1
  408. package/dist/assets/server/recording/recording-snapshot.service.d.ts +0 -14
  409. package/dist/assets/server/recording/recording-snapshot.service.js +0 -85
  410. package/dist/assets/server/recording/recording-snapshot.service.js.map +0 -1
  411. package/dist/assets/server/recording/recording-snapshot.service.spec.d.ts +0 -1
  412. package/dist/assets/server/recording/recording-snapshot.service.spec.js +0 -65
  413. package/dist/assets/server/recording/recording-snapshot.service.spec.js.map +0 -1
  414. package/dist/assets/server/recording/recording.controller.d.ts +0 -74
  415. package/dist/assets/server/recording/recording.controller.js +0 -112
  416. package/dist/assets/server/recording/recording.controller.js.map +0 -1
  417. package/dist/assets/server/recording/recording.gateway.d.ts +0 -15
  418. package/dist/assets/server/recording/recording.gateway.js +0 -132
  419. package/dist/assets/server/recording/recording.gateway.js.map +0 -1
  420. package/dist/assets/server/recording/recording.module.d.ts +0 -2
  421. package/dist/assets/server/recording/recording.module.js +0 -50
  422. package/dist/assets/server/recording/recording.module.js.map +0 -1
  423. package/dist/assets/server/recording/recording.service.d.ts +0 -52
  424. package/dist/assets/server/recording/recording.service.js +0 -149
  425. package/dist/assets/server/recording/recording.service.js.map +0 -1
  426. package/dist/assets/server/remark/remark.controller.d.ts +0 -21
  427. package/dist/assets/server/remark/remark.controller.js +0 -50
  428. package/dist/assets/server/remark/remark.controller.js.map +0 -1
  429. package/dist/assets/server/remark/remark.entity.d.ts +0 -18
  430. package/dist/assets/server/remark/remark.entity.js +0 -67
  431. package/dist/assets/server/remark/remark.entity.js.map +0 -1
  432. package/dist/assets/server/remark/remark.module.d.ts +0 -2
  433. package/dist/assets/server/remark/remark.module.js +0 -26
  434. package/dist/assets/server/remark/remark.module.js.map +0 -1
  435. package/dist/assets/server/remark/remark.service.d.ts +0 -8
  436. package/dist/assets/server/remark/remark.service.js +0 -39
  437. package/dist/assets/server/remark/remark.service.js.map +0 -1
  438. package/dist/assets/server/report/report.controller.d.ts +0 -18
  439. package/dist/assets/server/report/report.controller.js +0 -41
  440. package/dist/assets/server/report/report.controller.js.map +0 -1
  441. package/dist/assets/server/report/report.module.d.ts +0 -2
  442. package/dist/assets/server/report/report.module.js +0 -24
  443. package/dist/assets/server/report/report.module.js.map +0 -1
  444. package/dist/assets/server/report/report.service.d.ts +0 -23
  445. package/dist/assets/server/report/report.service.js +0 -54
  446. package/dist/assets/server/report/report.service.js.map +0 -1
  447. package/dist/assets/server/rules/rules.controller.d.ts +0 -6
  448. package/dist/assets/server/rules/rules.controller.js +0 -35
  449. package/dist/assets/server/rules/rules.controller.js.map +0 -1
  450. package/dist/assets/server/rules/rules.module.d.ts +0 -2
  451. package/dist/assets/server/rules/rules.module.js +0 -23
  452. package/dist/assets/server/rules/rules.module.js.map +0 -1
  453. package/dist/assets/server/rules/rules.service.d.ts +0 -10
  454. package/dist/assets/server/rules/rules.service.js +0 -26
  455. package/dist/assets/server/rules/rules.service.js.map +0 -1
  456. package/dist/assets/server/search/search.controller.d.ts +0 -6
  457. package/dist/assets/server/search/search.controller.js +0 -53
  458. package/dist/assets/server/search/search.controller.js.map +0 -1
  459. package/dist/assets/server/search/search.module.d.ts +0 -2
  460. package/dist/assets/server/search/search.module.js +0 -24
  461. package/dist/assets/server/search/search.module.js.map +0 -1
  462. package/dist/assets/server/search/search.service.d.ts +0 -6
  463. package/dist/assets/server/search/search.service.js +0 -46
  464. package/dist/assets/server/search/search.service.js.map +0 -1
  465. package/dist/assets/server/sentry.d.ts +0 -3
  466. package/dist/assets/server/sentry.js +0 -10
  467. package/dist/assets/server/sentry.js.map +0 -1
  468. package/dist/assets/server/site/entities/site-registry.entity.d.ts +0 -13
  469. package/dist/assets/server/site/entities/site-registry.entity.js +0 -76
  470. package/dist/assets/server/site/entities/site-registry.entity.js.map +0 -1
  471. package/dist/assets/server/site/site.controller.d.ts +0 -38
  472. package/dist/assets/server/site/site.controller.js +0 -60
  473. package/dist/assets/server/site/site.controller.js.map +0 -1
  474. package/dist/assets/server/site/site.module.d.ts +0 -2
  475. package/dist/assets/server/site/site.module.js +0 -26
  476. package/dist/assets/server/site/site.module.js.map +0 -1
  477. package/dist/assets/server/site/site.service.d.ts +0 -42
  478. package/dist/assets/server/site/site.service.js +0 -154
  479. package/dist/assets/server/site/site.service.js.map +0 -1
  480. package/dist/assets/server/snapshot/raw-snapshot.entity.d.ts +0 -35
  481. package/dist/assets/server/snapshot/raw-snapshot.entity.js +0 -62
  482. package/dist/assets/server/snapshot/raw-snapshot.entity.js.map +0 -1
  483. package/dist/assets/server/snapshot/snapshot.controller.d.ts +0 -18
  484. package/dist/assets/server/snapshot/snapshot.controller.js +0 -76
  485. package/dist/assets/server/snapshot/snapshot.controller.js.map +0 -1
  486. package/dist/assets/server/snapshot/snapshot.module.d.ts +0 -2
  487. package/dist/assets/server/snapshot/snapshot.module.js +0 -26
  488. package/dist/assets/server/snapshot/snapshot.module.js.map +0 -1
  489. package/dist/assets/server/snapshot/snapshot.service.d.ts +0 -10
  490. package/dist/assets/server/snapshot/snapshot.service.js +0 -48
  491. package/dist/assets/server/snapshot/snapshot.service.js.map +0 -1
  492. package/dist/assets/server/system/system.controller.d.ts +0 -40
  493. package/dist/assets/server/system/system.controller.js +0 -93
  494. package/dist/assets/server/system/system.controller.js.map +0 -1
  495. package/dist/assets/server/system/system.module.d.ts +0 -2
  496. package/dist/assets/server/system/system.module.js +0 -26
  497. package/dist/assets/server/system/system.module.js.map +0 -1
  498. package/dist/assets/server/system/system.service.d.ts +0 -87
  499. package/dist/assets/server/system/system.service.js +0 -434
  500. package/dist/assets/server/system/system.service.js.map +0 -1
  501. package/dist/assets/server/talent-fingerprint/fingerprint-match.service.d.ts +0 -28
  502. package/dist/assets/server/talent-fingerprint/fingerprint-match.service.js +0 -186
  503. package/dist/assets/server/talent-fingerprint/fingerprint-match.service.js.map +0 -1
  504. package/dist/assets/server/talent-fingerprint/talent-fingerprint.entity.d.ts +0 -30
  505. package/dist/assets/server/talent-fingerprint/talent-fingerprint.entity.js +0 -55
  506. package/dist/assets/server/talent-fingerprint/talent-fingerprint.entity.js.map +0 -1
  507. package/dist/assets/server/talent-fingerprint/talent-fingerprint.module.d.ts +0 -2
  508. package/dist/assets/server/talent-fingerprint/talent-fingerprint.module.js +0 -25
  509. package/dist/assets/server/talent-fingerprint/talent-fingerprint.module.js.map +0 -1
  510. package/dist/assets/server/talent-fingerprint/talent-fingerprint.service.d.ts +0 -8
  511. package/dist/assets/server/talent-fingerprint/talent-fingerprint.service.js +0 -44
  512. package/dist/assets/server/talent-fingerprint/talent-fingerprint.service.js.map +0 -1
  513. package/dist/assets/server/talent-job-match/talent-job-match.controller.d.ts +0 -6
  514. package/dist/assets/server/talent-job-match/talent-job-match.controller.js +0 -42
  515. package/dist/assets/server/talent-job-match/talent-job-match.controller.js.map +0 -1
  516. package/dist/assets/server/talent-job-match/talent-job-match.entity.d.ts +0 -33
  517. package/dist/assets/server/talent-job-match/talent-job-match.entity.js +0 -73
  518. package/dist/assets/server/talent-job-match/talent-job-match.entity.js.map +0 -1
  519. package/dist/assets/server/talent-job-match/talent-job-match.module.d.ts +0 -2
  520. package/dist/assets/server/talent-job-match/talent-job-match.module.js +0 -26
  521. package/dist/assets/server/talent-job-match/talent-job-match.module.js.map +0 -1
  522. package/dist/assets/server/talent-job-match/talent-job-match.service.d.ts +0 -9
  523. package/dist/assets/server/talent-job-match/talent-job-match.service.js +0 -42
  524. package/dist/assets/server/talent-job-match/talent-job-match.service.js.map +0 -1
  525. package/dist/assets/server/talent-portrait/portrait-merge.service.d.ts +0 -17
  526. package/dist/assets/server/talent-portrait/portrait-merge.service.js +0 -200
  527. package/dist/assets/server/talent-portrait/portrait-merge.service.js.map +0 -1
  528. package/dist/assets/server/talent-portrait/talent-portrait.controller.d.ts +0 -7
  529. package/dist/assets/server/talent-portrait/talent-portrait.controller.js +0 -52
  530. package/dist/assets/server/talent-portrait/talent-portrait.controller.js.map +0 -1
  531. package/dist/assets/server/talent-portrait/talent-portrait.entity.d.ts +0 -91
  532. package/dist/assets/server/talent-portrait/talent-portrait.entity.js +0 -71
  533. package/dist/assets/server/talent-portrait/talent-portrait.entity.js.map +0 -1
  534. package/dist/assets/server/talent-portrait/talent-portrait.module.d.ts +0 -2
  535. package/dist/assets/server/talent-portrait/talent-portrait.module.js +0 -27
  536. package/dist/assets/server/talent-portrait/talent-portrait.module.js.map +0 -1
  537. package/dist/assets/server/talent-portrait/talent-portrait.service.d.ts +0 -10
  538. package/dist/assets/server/talent-portrait/talent-portrait.service.js +0 -46
  539. package/dist/assets/server/talent-portrait/talent-portrait.service.js.map +0 -1
  540. package/dist/assets/server/telemetry/telemetry.module.d.ts +0 -2
  541. package/dist/assets/server/telemetry/telemetry.module.js +0 -24
  542. package/dist/assets/server/telemetry/telemetry.module.js.map +0 -1
  543. package/dist/assets/server/telemetry/telemetry.service.d.ts +0 -29
  544. package/dist/assets/server/telemetry/telemetry.service.js +0 -116
  545. package/dist/assets/server/telemetry/telemetry.service.js.map +0 -1
  546. package/dist/auto-doctor.d.ts +0 -8
  547. package/dist/auto-doctor.js +0 -34
  548. package/dist/bundled-assets.d.ts +0 -22
  549. package/dist/bundled-assets.js +0 -80
  550. package/dist/cache/db.d.ts +0 -7
  551. package/dist/cache/db.js +0 -61
  552. package/dist/commands/addons.d.ts +0 -4
  553. package/dist/commands/addons.js +0 -354
  554. package/dist/commands/cache.d.ts +0 -8
  555. package/dist/commands/cache.js +0 -59
  556. package/dist/commands/case.d.ts +0 -67
  557. package/dist/commands/case.js +0 -101
  558. package/dist/commands/config.d.ts +0 -17
  559. package/dist/commands/config.js +0 -30
  560. package/dist/commands/customer.d.ts +0 -25
  561. package/dist/commands/customer.js +0 -137
  562. package/dist/commands/doctor.d.ts +0 -63
  563. package/dist/commands/doctor.js +0 -666
  564. package/dist/commands/extension.d.ts +0 -5
  565. package/dist/commands/extension.js +0 -420
  566. package/dist/commands/extras.d.ts +0 -55
  567. package/dist/commands/extras.js +0 -456
  568. package/dist/commands/init.d.ts +0 -10
  569. package/dist/commands/init.js +0 -58
  570. package/dist/commands/install.d.ts +0 -14
  571. package/dist/commands/install.js +0 -77
  572. package/dist/commands/issue-env.d.ts +0 -23
  573. package/dist/commands/issue-env.js +0 -101
  574. package/dist/commands/job.d.ts +0 -13
  575. package/dist/commands/job.js +0 -131
  576. package/dist/commands/login.d.ts +0 -22
  577. package/dist/commands/login.js +0 -192
  578. package/dist/commands/logout.d.ts +0 -3
  579. package/dist/commands/logout.js +0 -12
  580. package/dist/commands/migrate.d.ts +0 -32
  581. package/dist/commands/migrate.js +0 -116
  582. package/dist/commands/note.d.ts +0 -3
  583. package/dist/commands/note.js +0 -75
  584. package/dist/commands/ops.d.ts +0 -6
  585. package/dist/commands/ops.js +0 -461
  586. package/dist/commands/preference.d.ts +0 -6
  587. package/dist/commands/preference.js +0 -80
  588. package/dist/commands/record.d.ts +0 -12
  589. package/dist/commands/record.js +0 -56
  590. package/dist/commands/report.d.ts +0 -7
  591. package/dist/commands/report.js +0 -48
  592. package/dist/commands/search.d.ts +0 -14
  593. package/dist/commands/search.js +0 -46
  594. package/dist/commands/server.d.ts +0 -35
  595. package/dist/commands/server.js +0 -471
  596. package/dist/commands/status.d.ts +0 -24
  597. package/dist/commands/status.js +0 -98
  598. package/dist/commands/update.d.ts +0 -8
  599. package/dist/commands/update.js +0 -125
  600. package/dist/config.d.ts +0 -67
  601. package/dist/config.js +0 -121
  602. package/dist/extension-sync.d.ts +0 -35
  603. package/dist/extension-sync.js +0 -159
  604. package/dist/i18n/index.d.ts +0 -7
  605. package/dist/i18n/index.js +0 -18
  606. package/dist/i18n/locales/en-US.json +0 -79
  607. package/dist/i18n/locales/zh-CN.json +0 -79
  608. package/dist/index.d.ts +0 -2
  609. package/dist/keychain.d.ts +0 -18
  610. package/dist/keychain.js +0 -109
  611. package/dist/logger.d.ts +0 -7
  612. package/dist/logger.js +0 -80
  613. package/dist/native-check.d.ts +0 -6
  614. package/dist/native-check.js +0 -30
  615. package/dist/postinstall.d.ts +0 -1
  616. package/dist/sentry.d.ts +0 -4
  617. package/dist/sentry.js +0 -6
  618. package/dist/updater.d.ts +0 -119
  619. package/dist/updater.js +0 -475
  620. package/dist/utils/artifact-checksum.d.ts +0 -4
  621. package/dist/utils/artifact-checksum.js +0 -40
  622. package/dist/utils/command-error.d.ts +0 -11
  623. package/dist/utils/command-error.js +0 -47
  624. package/dist/utils/link.d.ts +0 -18
  625. package/dist/utils/link.js +0 -83
  626. package/dist/utils/local-http.d.ts +0 -7
  627. package/dist/utils/local-http.js +0 -30
  628. package/dist/utils/proc.d.ts +0 -35
  629. package/dist/utils/proc.js +0 -81
  630. package/dist/utils/proxy-detect.d.ts +0 -20
  631. package/dist/utils/proxy-detect.js +0 -96
  632. package/dist/utils/script-path.d.ts +0 -5
  633. package/dist/utils/script-path.js +0 -27
  634. package/dist/utils/spawn.d.ts +0 -19
  635. package/dist/utils/spawn.js +0 -60
  636. package/dist/version.d.ts +0 -16
  637. package/dist/version.js +0 -388
  638. package/dist/watchdog.d.ts +0 -31
  639. package/dist/web/dist/_next/static/chunks/539-cd9d7c0ee78f8874.js +0 -1
  640. package/dist/web/dist/_next/static/chunks/app/auth/verify/page-f13c66b48f7cf13e.js +0 -1
  641. package/dist/web/dist/_next/static/chunks/app/companies/page-e38a69e1929d0953.js +0 -1
  642. package/dist/web/dist/_next/static/chunks/app/jobs/page-6a281776fec065f6.js +0 -1
  643. package/dist/web/dist/_next/static/chunks/app/layout-83e623e973c1693f.js +0 -1
  644. package/dist/web/dist/_next/static/chunks/app/matching/jobs/[id]/talents/page-cdf1ed0971999f35.js +0 -1
  645. package/dist/web/dist/_next/static/chunks/app/matching/portraits/[id]/jobs/page-87f04f1d61b94cb2.js +0 -1
  646. package/dist/web/dist/_next/static/chunks/app/page-affa1ffde089f1dd.js +0 -1
  647. package/dist/web/dist/_next/static/chunks/app/parselog/page-31d3630d611649f7.js +0 -1
  648. package/dist/web/dist/_next/static/chunks/app/recordings/page-9cdefceb2bff613f.js +0 -1
  649. package/dist/web/dist/_next/static/chunks/app/snapshots/[id]/agent-prompt/page-6996f7f221b1a7eb.js +0 -1
  650. package/dist/web/dist/_next/static/chunks/app/talents/page-30748338da20d7e0.js +0 -1
  651. package/dist/web/dist/_next/static/chunks/webpack-1784baecc6fdcf0b.js +0 -1
  652. package/dist/web/dist/_next/static/css/b7097b50a6497650.css +0 -3
  653. /package/dist/web/dist/_next/static/{hG-sO5oTR0EvAw6sU7EMO → L4ZJv0swR7OTsvB_PaAB4}/_buildManifest.js +0 -0
  654. /package/dist/web/dist/_next/static/{hG-sO5oTR0EvAw6sU7EMO → L4ZJv0swR7OTsvB_PaAB4}/_ssgManifest.js +0 -0
@@ -1,56 +0,0 @@
1
- import { Command } from 'commander';
2
- import * as fs from 'fs';
3
- import axios from 'axios';
4
- import { v4 as uuidv4 } from 'uuid';
5
- import { loadConfig } from '../config.js';
6
- import { getToken } from '../keychain.js';
7
- import { ensureCacheDir } from '../cache/db.js';
8
- import { printCommandError } from '../utils/command-error.js';
9
- export async function runRecordTranscript(filePath, options) {
10
- const config = loadConfig();
11
- const token = await getToken();
12
- const headers = token ? { Authorization: `UTOKEN ${token}` } : {};
13
- if (!fs.existsSync(filePath)) {
14
- throw new Error(`文件不存在: ${filePath}`);
15
- }
16
- const transcript = fs.readFileSync(filePath, 'utf-8');
17
- ensureCacheDir();
18
- const res = await axios.post(`${config.serverUrl}/communication-records`, {
19
- externalId: uuidv4(),
20
- type: options.type || 'call',
21
- transcript,
22
- personId: options.personId ? parseInt(options.personId, 10) : undefined,
23
- jobCaseId: options.jobCaseId ? parseInt(options.jobCaseId, 10) : undefined,
24
- }, { headers, proxy: false });
25
- return res.data;
26
- }
27
- export function runRecordCall(audioFile) {
28
- return { audioFile, note: 'STT 处理待接入(本地 faster-whisper 或云端 Whisper API)。' };
29
- }
30
- export const recordCommand = new Command('record')
31
- .description('沟通记录/录音归档');
32
- recordCommand
33
- .command('transcript <file>')
34
- .description('上传转写文本并生成沟通记录草稿')
35
- .option('--type <type>', '记录类型(call/wechat/email/audio/meeting)', 'call')
36
- .option('--personId <id>', '关联人才 ID')
37
- .option('--jobCaseId <id>', '关联 JobCase ID')
38
- .action(async (filePath, options) => {
39
- try {
40
- const data = await runRecordTranscript(filePath, options);
41
- console.log(`已创建沟通记录草稿: ${data.id} (${data.externalId})`);
42
- console.log('请使用本地 LLM 对转写文本做 NER/摘要/实体链接后确认归档。');
43
- }
44
- catch (err) {
45
- await printCommandError('record:upload-failed', err);
46
- process.exit(1);
47
- }
48
- });
49
- recordCommand
50
- .command('call <audioFile>')
51
- .description('上传音频文件(MVP 阶段仅保存路径,STT 由本地或云端后续处理)')
52
- .action((audioFile) => {
53
- const result = runRecordCall(audioFile);
54
- console.log(`音频文件已记录: ${result.audioFile}`);
55
- console.log(result.note);
56
- });
@@ -1,7 +0,0 @@
1
- import { Command } from 'commander';
2
- export interface ReportSalesOptions {
3
- name?: string;
4
- industry?: string;
5
- }
6
- export declare function runReportSales(customerId: string, options: ReportSalesOptions): Promise<any>;
7
- export declare const reportCommand: Command;
@@ -1,48 +0,0 @@
1
- import { Command } from 'commander';
2
- import axios from 'axios';
3
- import { loadConfig } from '../config.js';
4
- import { getToken } from '../keychain.js';
5
- import { printCommandError } from '../utils/command-error.js';
6
- export async function runReportSales(customerId, options) {
7
- const config = loadConfig();
8
- const token = await getToken();
9
- const headers = token ? { Authorization: `UTOKEN ${token}` } : {};
10
- const res = await axios.get(`${config.serverUrl}/reports/sales/${encodeURIComponent(customerId)}`, {
11
- headers,
12
- params: { name: options.name, industry: options.industry },
13
- proxy: false,
14
- });
15
- return res.data;
16
- }
17
- export const reportCommand = new Command('report')
18
- .description('生成报告');
19
- reportCommand
20
- .command('sales <customerId>')
21
- .description('生成 BD 销售方案报告')
22
- .option('--name <name>', '客户名称')
23
- .option('--industry <industry>', '行业')
24
- .action(async (customerId, options) => {
25
- try {
26
- const data = await runReportSales(customerId, options);
27
- console.log(`# BD 销售方案报告:${data.customerName}`);
28
- console.log(`\n## 客户信息`);
29
- console.log(`- 客户 ID: ${data.customerId}`);
30
- console.log(`- 行业: ${data.industry || '未指定'}`);
31
- console.log(`\n## 历史相似客户案例`);
32
- for (const c of data.similarCustomers || []) {
33
- console.log(`- ${c.name}(${c.industry})成单数:${c.dealCount} — ${c.notes}`);
34
- }
35
- console.log(`\n## 可匹配人才池`);
36
- const pool = data.talentPool || {};
37
- console.log(`- 总数:${pool.count || 0}`);
38
- if (pool.error) {
39
- console.log(`- 人才数据获取失败:${pool.error}`);
40
- }
41
- console.log(`\n## 推荐方案`);
42
- console.log('> 请使用本地 LLM 基于以上原始数据生成最终销售方案与交付节奏。');
43
- }
44
- catch (err) {
45
- await printCommandError('report:generate-failed', err);
46
- process.exit(1);
47
- }
48
- });
@@ -1,14 +0,0 @@
1
- import { Command } from 'commander';
2
- export interface SearchOptions {
3
- filter?: string;
4
- keyword?: string;
5
- areaId?: string;
6
- postId?: string;
7
- nationalityId?: string;
8
- page?: string;
9
- limit?: string;
10
- source?: string;
11
- top?: string;
12
- }
13
- export declare function runSearch(options: SearchOptions): Promise<any>;
14
- export declare const searchCommand: Command;
@@ -1,46 +0,0 @@
1
- import { Command } from 'commander';
2
- import axios from 'axios';
3
- import { loadConfig } from '../config.js';
4
- import { getToken } from '../keychain.js';
5
- import { i18n } from '../i18n/index.js';
6
- import { printCommandError } from '../utils/command-error.js';
7
- export async function runSearch(options) {
8
- const config = loadConfig();
9
- const token = await getToken();
10
- const params = {
11
- keyword: options.keyword || options.filter,
12
- areaId: options.areaId,
13
- postId: options.postId,
14
- nationalityId: options.nationalityId,
15
- page: options.page,
16
- limit: options.limit || options.top,
17
- source: options.source,
18
- };
19
- const res = await axios.get(`${config.serverUrl}/search/talent`, {
20
- headers: token ? { Authorization: `UTOKEN ${token}` } : {},
21
- params,
22
- proxy: false,
23
- });
24
- return res.data;
25
- }
26
- export const searchCommand = new Command('search')
27
- .description(i18n.t('search.description'))
28
- .option('--filter <filter>', i18n.t('search.filter'))
29
- .option('--keyword <keyword>', '搜索关键词')
30
- .option('--areaId <areaId>', '现居地 ID')
31
- .option('--postId <postId>', '职位 ID')
32
- .option('--nationalityId <nationalityId>', '国籍 ID')
33
- .option('--page <n>', '页码', '1')
34
- .option('--limit <n>', '每页数量', '10')
35
- .option('--source <sources>', i18n.t('search.source'), 'u_person')
36
- .option('--top <n>', i18n.t('search.top'), '10')
37
- .action(async (options) => {
38
- try {
39
- const data = await runSearch(options);
40
- console.log(JSON.stringify(data, null, 2));
41
- }
42
- catch (err) {
43
- await printCommandError('search:failed', err);
44
- process.exit(1);
45
- }
46
- });
@@ -1,35 +0,0 @@
1
- import { Command } from 'commander';
2
- type StartLock = 'acquired' | 'busy' | 'stolen';
3
- /** FID-093:导出供单测覆盖竞态/残留锁语义 */
4
- export declare function acquireStartLock(): StartLock;
5
- /**
6
- * server.log 无界增长曾达 800M+ 挤占用户磁盘(FID-068)。
7
- * 后台 daemon 启动前按大小轮转:超过 HM_LOG_MAX_BYTES(默认 50MB)时
8
- * server.log → server.log.1 → …保留最近 LOG_KEEP_FILES 份,最旧丢弃。
9
- * 纯 fs 实现,Windows 兼容(rename 前先清目标,Windows 不允许覆盖已有文件)。
10
- */
11
- export declare function rotateLogIfNeeded(logFile: string, maxBytes?: number, keep?: number): boolean;
12
- declare function tryReadPid(): number | null;
13
- export { tryReadPid };
14
- /** 定位 server 包根(dist 优先,ts-node 开发模式兜底);找不到返回 null */
15
- export declare function findServerRoot(): string | null;
16
- /** 探活:server /health 是否可访问(短超时,永不 throw)。导出供 version.ts 重启编排复核 */
17
- export declare function probeServerHealth(url: string, timeoutMs?: number): Promise<boolean>;
18
- /** 对应 ChromePilot start: 启动本地 NestJS Server(提供 REST + WebSocket + SPA) */
19
- export declare function runStart(opts: {
20
- port?: number;
21
- host?: string;
22
- foreground?: boolean;
23
- }): Promise<{
24
- started: boolean;
25
- pid: number | null;
26
- url: string;
27
- msg: string;
28
- }>;
29
- export declare function runStop(): Promise<{
30
- stopped: boolean;
31
- pid: number | null;
32
- msg: string;
33
- }>;
34
- export declare const startCommand: Command;
35
- export declare const stopCommand: Command;
@@ -1,471 +0,0 @@
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 { spawn } from 'child_process';
6
- import { loadConfig, saveConfig, resolveDataDir } from '../config.js';
7
- import { killGracefullySync } from '../utils/proc.js';
8
- import { findBundledAssets } from '../bundled-assets.js';
9
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
10
- /** server.pid 等运行时文件随数据目录走(FID-071:dataDir 可配置后 server 状态文件一并迁移) */
11
- const PID_FILE = () => path.join(resolveDataDir(), 'server.pid');
12
- const LOG_FILE = () => PID_FILE().replace(/server\.pid$/, 'server.log');
13
- const WATCHDOG_PID_FILE = () => PID_FILE().replace(/server\.pid$/, 'watchdog.pid');
14
- /**
15
- * FID-093:启动单飞锁。N 个 CLI 进程并发 auto-start(如多个 agent 同时跑
16
- * extension 命令)时,旧逻辑各自 spawn watchdog——即便 watchdog 单例加固后
17
- * 多实例会被拒,也会留下一地被误写的 pid 文件与误导性的"启动失败"输出。
18
- * 持锁者完成 spawn + health 探测期间,其他进程改为等待并复用结果。
19
- * 锁残留(持锁进程崩溃)按 mtime 判 stale 抢占。
20
- */
21
- const START_LOCK_FILE = () => path.join(resolveDataDir(), 'server-start.lock');
22
- const START_LOCK_STALE_MS = 90_000;
23
- /** FID-093:导出供单测覆盖竞态/残留锁语义 */
24
- export function acquireStartLock() {
25
- const write = () => {
26
- try {
27
- const fd = fs.openSync(START_LOCK_FILE(), 'wx'); // 原子 O_CREAT|O_EXCL
28
- try {
29
- fs.writeFileSync(fd, String(process.pid));
30
- }
31
- finally {
32
- fs.closeSync(fd);
33
- }
34
- return true;
35
- }
36
- catch {
37
- return false;
38
- }
39
- };
40
- if (write())
41
- return 'acquired';
42
- try {
43
- if (Date.now() - fs.statSync(START_LOCK_FILE()).mtimeMs > START_LOCK_STALE_MS) {
44
- fs.unlinkSync(START_LOCK_FILE());
45
- if (write())
46
- return 'stolen';
47
- }
48
- }
49
- catch { /* 竞态:他人同时清理/占用,让出 */ }
50
- return 'busy';
51
- }
52
- function releaseStartLock() {
53
- try {
54
- fs.unlinkSync(START_LOCK_FILE());
55
- }
56
- catch { /* ignore */ }
57
- }
58
- function watchdogAlive(pid) {
59
- if (!pid)
60
- return false;
61
- try {
62
- process.kill(pid, 0);
63
- return true;
64
- }
65
- catch {
66
- return false;
67
- }
68
- }
69
- function tryReadPidFile(file) {
70
- try {
71
- const raw = fs.readFileSync(file, 'utf-8').trim();
72
- const pid = Number(raw);
73
- if (!pid || !Number.isInteger(pid))
74
- return null;
75
- process.kill(pid, 0);
76
- return pid;
77
- }
78
- catch {
79
- return null;
80
- }
81
- }
82
- function cleanPidFile(file) {
83
- try {
84
- fs.unlinkSync(file);
85
- }
86
- catch { /* ignore */ }
87
- }
88
- const LOG_MAX_BYTES = () => Number(process.env.HM_LOG_MAX_BYTES || 50 * 1024 * 1024);
89
- const LOG_KEEP_FILES = 3;
90
- /**
91
- * server.log 无界增长曾达 800M+ 挤占用户磁盘(FID-068)。
92
- * 后台 daemon 启动前按大小轮转:超过 HM_LOG_MAX_BYTES(默认 50MB)时
93
- * server.log → server.log.1 → …保留最近 LOG_KEEP_FILES 份,最旧丢弃。
94
- * 纯 fs 实现,Windows 兼容(rename 前先清目标,Windows 不允许覆盖已有文件)。
95
- */
96
- export function rotateLogIfNeeded(logFile, maxBytes = LOG_MAX_BYTES(), keep = LOG_KEEP_FILES) {
97
- try {
98
- if (!fs.existsSync(logFile))
99
- return false;
100
- if (fs.statSync(logFile).size <= maxBytes)
101
- return false;
102
- for (let i = keep - 1; i >= 1; i--) {
103
- const src = `${logFile}.${i}`;
104
- const dest = `${logFile}.${i + 1}`;
105
- if (!fs.existsSync(src))
106
- continue;
107
- try {
108
- fs.unlinkSync(dest);
109
- }
110
- catch { /* dest 不存在时忽略 */ }
111
- fs.renameSync(src, dest);
112
- }
113
- fs.renameSync(logFile, `${logFile}.1`);
114
- return true;
115
- }
116
- catch {
117
- return false;
118
- }
119
- }
120
- function tryReadPid() {
121
- const pid = tryReadPidFile(PID_FILE());
122
- if (pid)
123
- return pid;
124
- cleanPidFile(PID_FILE());
125
- return null;
126
- }
127
- export { tryReadPid };
128
- /** 定位 server 包根(dist 优先,ts-node 开发模式兜底);找不到返回 null */
129
- export function findServerRoot() {
130
- // dev/monorepo 模式优先用原始 packages/server,避免复制到 assets 后因 node_modules 解析失败
131
- const monorepoCandidates = [
132
- path.resolve(__dirname, '../../../server/dist/main.js'),
133
- path.resolve(__dirname, '../../../server/src/main.ts'),
134
- ];
135
- for (const c of monorepoCandidates) {
136
- if (fs.existsSync(c))
137
- return path.dirname(path.dirname(c));
138
- }
139
- // fallback:bundled-assets(npm 安装模式:dist/assets/server/main.js 已存在)
140
- const bundled = findBundledAssets();
141
- if (bundled) {
142
- return path.dirname(bundled.serverEntry);
143
- }
144
- return null;
145
- }
146
- /** 探活:server /health 是否可访问(短超时,永不 throw)。导出供 version.ts 重启编排复核 */
147
- export async function probeServerHealth(url, timeoutMs = 1500) {
148
- try {
149
- const res = await fetch(`${url}/health`, { signal: AbortSignal.timeout(timeoutMs) });
150
- return res.ok;
151
- }
152
- catch {
153
- return false;
154
- }
155
- }
156
- /** 从 config.serverUrl 解析默认端口(与 runStart 逻辑一致) */
157
- function defaultPortFromConfig(serverUrl) {
158
- return new URL(serverUrl).port ? Number(new URL(serverUrl).port) : 34570;
159
- }
160
- /** 对应 ChromePilot start: 启动本地 NestJS Server(提供 REST + WebSocket + SPA) */
161
- export async function runStart(opts) {
162
- const config = loadConfig();
163
- const defaultPort = defaultPortFromConfig(config.serverUrl);
164
- const port = opts.port ?? defaultPort;
165
- const host = opts.host ?? '127.0.0.1';
166
- const url = `http://${host}:${port}`;
167
- // 启动过程中的告警说明(会拼进最终返回 msg,保证用户看得见)
168
- const notes = [];
169
- // FID-093 单飞:另一进程正在启动时等待复用,不再并发起 watchdog
170
- const lock = acquireStartLock();
171
- if (lock === 'busy') {
172
- const deadline = Date.now() + 35_000;
173
- while (Date.now() < deadline) {
174
- await new Promise((r) => setTimeout(r, 1000));
175
- if (await probeServerHealth(url)) {
176
- return {
177
- started: true,
178
- pid: null,
179
- url,
180
- msg: 'server 已由另一个 hunter-mate 进程启动完成(启动锁被持有,本次复用其结果)',
181
- };
182
- }
183
- }
184
- return {
185
- started: false,
186
- pid: null,
187
- url,
188
- msg: '另一个 hunter-mate 进程持有 server 启动锁,且 35s 内 /health 未就绪。请执行 hunter-mate doctor 排查。',
189
- };
190
- }
191
- if (lock === 'stolen') {
192
- notes.push('⚠ 检测到残留的 server-start.lock(持有进程疑似崩溃),已按 stale 抢占继续启动');
193
- }
194
- try {
195
- return await runStartLocked(opts, { url, port, host, notes });
196
- }
197
- finally {
198
- releaseStartLock();
199
- }
200
- }
201
- /** 单飞锁内的实际启动逻辑(锁外逻辑见 runStart) */
202
- async function runStartLocked(opts, ctx) {
203
- const { url, port, host, notes } = ctx;
204
- const config = loadConfig();
205
- const existing = tryReadPid();
206
- if (existing) {
207
- // pid 文件存在 ≠ server 存活。pid 可能被系统中其他进程复用
208
- // (Windows 现场:残留 node.exe 复用了 pid → 误判 already running,
209
- // server 实际从未被拉起,日志停在旧时间戳,用户无任何感知)。
210
- // 因此必须先 /health 探活再决定是否走"已在运行"分支。
211
- if (await probeServerHealth(url)) {
212
- // 已在运行: 先做版本一致性检测(磁盘版本 vs 运行版本,server 不一致则自动重启)
213
- // 动态 import 避免与 version.ts 的循环依赖(version.ts 静态引入本文件的 runStart/runStop)
214
- const { ensureRuntimeConsistency } = await import('../version.js');
215
- const report = await ensureRuntimeConsistency({ force: true });
216
- if (report.actions.serverRestart && report.performed.length) {
217
- return { started: true, pid: null, url, msg: report.performed.join('; ') };
218
- }
219
- return { started: false, pid: existing, url, msg: `server already running (pid=${existing})` };
220
- }
221
- // FID-093:探活失败≠server 死了。机器抖动(构建/多实例抢 CPU)会让单次
222
- // /health 超时,旧逻辑直接当 stale 清文件重拉 → 活 server 被孤儿化,
223
- // 新实例 EADDRINUSE 崩溃循环(2026-09-10 23:13 实机复现)。先给 grace 窗口
224
- // 复探:进程仍存活且 /health 恢复 → 按已运行处理,绝不双实例。
225
- let recovered = false;
226
- const graceDeadline = Date.now() + 10_000;
227
- while (Date.now() < graceDeadline) {
228
- await new Promise((r) => setTimeout(r, 1000));
229
- const pidAlive = (() => {
230
- try {
231
- process.kill(existing, 0);
232
- return true;
233
- }
234
- catch {
235
- return false;
236
- }
237
- })();
238
- if (!pidAlive)
239
- break; // 真死了,走正常启动
240
- if (await probeServerHealth(url)) {
241
- recovered = true;
242
- break;
243
- }
244
- }
245
- if (recovered) {
246
- return {
247
- started: false,
248
- pid: existing,
249
- url,
250
- msg: `server already running (pid=${existing}; /health 曾短暂无响应,grace 窗口内恢复,未拉起新实例)`,
251
- };
252
- }
253
- // stale pid:进程号存活但 grace 后仍无响应(疑似僵死或被其他进程复用)。清理后继续启动,
254
- // 不 kill —— 那个进程可能属于别的程序(误杀 foreign 进程红线);
255
- // 若它其实占了 34570 端口,新实例会因 EADDRINUSE 显式崩溃退出,不静默。
256
- notes.push(`⚠ 检测到 stale server.pid (pid=${existing}):该进程存活但 ${url}/health 在 10s grace 窗口内持续无响应,` +
257
- `疑似 pid 被其他进程复用,已忽略并继续启动`);
258
- cleanPidFile(PID_FILE());
259
- }
260
- // server 入口: bundled 模式下 <cli>/dist/assets/server/main.js;monorepo 下 packages/server/dist/main.js 或 src/main.ts(开发模式 ts-node)
261
- const serverRoot = findServerRoot();
262
- let entry = null;
263
- if (serverRoot) {
264
- const candidates = [
265
- path.join(serverRoot, 'main.js'),
266
- path.join(serverRoot, 'dist', 'main.js'),
267
- path.join(serverRoot, 'src', 'main.ts'),
268
- ];
269
- for (const c of candidates) {
270
- if (fs.existsSync(c)) {
271
- entry = c;
272
- break;
273
- }
274
- }
275
- }
276
- if (!entry) {
277
- return {
278
- started: false,
279
- pid: null,
280
- url,
281
- msg: `✗ hunter-mate 启动失败:本 npm 包未包含 server 资产。\n` +
282
- ` - 若你正在 monorepo 开发,先执行 pnpm --filter @hunter-mate/server build 让 server dist 进入 packages/cli/dist/assets/server/。\n` +
283
- ` - 若你已 npm install -g hunter-mate,完整终端分发包需联系 Hiredchina IT 索要(含 server + Chrome 扩展)。\n` +
284
- ` - 临时绕过:单独启动 NestJS server,把 serverUrl 指向它(hunter-mate config serverUrl ${url})。`,
285
- };
286
- }
287
- const env = {
288
- ...process.env,
289
- PORT: String(port),
290
- HOST: host,
291
- // FID-071: server 所有数据落点(db/备份/runtime.json/artifacts)由 CLI 的数据目录决定
292
- HM_DATA_DIR: resolveDataDir(),
293
- };
294
- const nodeArgs = [];
295
- if (entry.endsWith('.ts')) {
296
- // ts-node 模式
297
- nodeArgs.push('--require', 'ts-node/register');
298
- }
299
- let child;
300
- if (opts.foreground) {
301
- child = spawn(process.execPath, [...nodeArgs, entry], {
302
- stdio: 'inherit',
303
- env,
304
- });
305
- return { started: true, pid: child.pid ?? null, url, msg: `server running in foreground (pid=${child.pid}) on ${url}` };
306
- }
307
- const logDir = path.dirname(LOG_FILE());
308
- if (!fs.existsSync(logDir))
309
- fs.mkdirSync(logDir, { recursive: true });
310
- // 后台 daemon 启动前轮转 server.log(超 50MB 保留 3 份),防止无界增长挤占磁盘
311
- rotateLogIfNeeded(LOG_FILE());
312
- // 后台模式由独立 watchdog 进程托管 server,实现崩溃后自动重启
313
- const watchdogEntry = path.resolve(__dirname, '../watchdog.js');
314
- if (!fs.existsSync(watchdogEntry)) {
315
- return {
316
- started: false,
317
- pid: null,
318
- url,
319
- msg: `✗ 启动失败:找不到 watchdog 入口 ${watchdogEntry},请先执行 pnpm --filter @hunter-mate/cli build`,
320
- };
321
- }
322
- const watchdogEnv = {
323
- ...process.env,
324
- HM_SERVER_ENTRY: entry,
325
- HM_SERVER_LOG: LOG_FILE(),
326
- HM_SERVER_NODE_ARGS: nodeArgs.join(','),
327
- HM_DATA_DIR: resolveDataDir(),
328
- PORT: String(port),
329
- HOST: host,
330
- };
331
- const wd = spawn(process.execPath, [watchdogEntry], {
332
- stdio: 'ignore',
333
- env: watchdogEnv,
334
- detached: true,
335
- windowsHide: true,
336
- });
337
- wd.unref();
338
- // FID-093:不再由 CLI 覆写 watchdog.pid——watchdog 进程原子自注册(acquireWatchdogLock),
339
- // 并发启动的败者若覆写会把胜者 pid 覆盖成将死进程,runStop 从此找不到活 watchdog。
340
- // 就绪探测改为直接探 spawn 出的 watchdog 进程是否存活(比 pid 文件更直接)。
341
- // 等待 server health 就绪。窗口给足:NestJS 全量路由映射 + TypeORM schema 同步
342
- // 在慢机/Windows 上实测 10-15s,原 8s 会在 route mapping 阶段误报"未就绪"
343
- // (server 实际 3 秒后就绪,watchdog 会保活,误报只会误导用户)。
344
- const probeDeadlineMs = 30_000;
345
- const deadline = Date.now() + probeDeadlineMs;
346
- let ready = false;
347
- while (Date.now() < deadline) {
348
- await new Promise((r) => setTimeout(r, 500));
349
- try {
350
- const res = await fetch(`${url}/health`, { signal: AbortSignal.timeout(800) });
351
- if (res.ok) {
352
- ready = true;
353
- break;
354
- }
355
- }
356
- catch { /* server 尚未监听,继续轮询 */ }
357
- // watchdog 自身退出说明启动参数/入口有问题(含单例锁被占,另一 watchdog 在保活)
358
- if (!watchdogAlive(wd.pid ?? null))
359
- break;
360
- }
361
- if (!ready) {
362
- let tail = '';
363
- try {
364
- const log = fs.readFileSync(LOG_FILE(), 'utf-8');
365
- tail = log.split('\n').slice(-30).join('\n').trim();
366
- }
367
- catch { /* ignore */ }
368
- cleanPidFile(WATCHDOG_PID_FILE());
369
- return {
370
- started: false,
371
- pid: wd.pid ?? null,
372
- url,
373
- msg: (notes.length ? notes.join('\n') + '\n' : '') +
374
- `✗ server watchdog 启动后 ${probeDeadlineMs / 1000}s 内未就绪(pid=${wd.pid}),日志尾部:\n${tail || '(server.log 为空)'}\n` +
375
- `排障: hunter-mate doctor 或 TROUBLESHOOTING.md#server-启动即崩abi`,
376
- };
377
- }
378
- // 持久化: 如果 port 变了就写回 config(避免下次 serverUrl 不对)
379
- try {
380
- const u = new URL(config.serverUrl);
381
- if (Number(u.port) !== port) {
382
- u.port = String(port);
383
- u.hostname = host;
384
- saveConfig({ serverUrl: u.origin });
385
- }
386
- }
387
- catch { /* ignore */ }
388
- return {
389
- started: true,
390
- pid: wd.pid ?? null,
391
- url,
392
- msg: (notes.length ? notes.join('\n') + '\n' : '') +
393
- `server watchdog started (pid=${wd.pid}) on ${url} — logs: ${LOG_FILE()}`,
394
- };
395
- }
396
- export async function runStop() {
397
- const config = loadConfig();
398
- const url = `http://127.0.0.1:${defaultPortFromConfig(config.serverUrl)}`;
399
- // kill 任何进程前先 /health 确认它真的是我们的 server。
400
- // pid 文件可能被复用(Windows 现场:残留 node.exe 占用 pid),误杀 foreign 进程不可接受。
401
- const healthy = await probeServerHealth(url);
402
- // 优先停止 watchdog,让它去停止子 server
403
- const wdPid = tryReadPidFile(WATCHDOG_PID_FILE());
404
- if (wdPid) {
405
- if (!healthy) {
406
- // server 不响应时不杀 watchdog pid(可能已被其他进程复用)——红线不动;
407
- // FID-093:也不清 pid 文件——进程可能还活着,清了等于孤儿化注册表,
408
- // 后续 auto-start 会再拉一个实例造成双 server(EADDRINUSE 崩溃循环)。
409
- // 文件留在原地,runStart 的 grace 复探会正确处理。
410
- return {
411
- stopped: false,
412
- pid: wdPid,
413
- msg: `✗ server 无响应(${url}/health 不可达),watchdog pid=${wdPid} 未杀(疑似 stale pid,` +
414
- `可能已被其他进程复用)。pid 文件保留以便复探;如确认是僵死进程请手工 kill`,
415
- };
416
- }
417
- const ok = killGracefullySync(wdPid);
418
- cleanPidFile(WATCHDOG_PID_FILE());
419
- if (ok) {
420
- // 给 watchdog 一点时间清理 server.pid
421
- try {
422
- const pid = tryReadPid();
423
- if (pid) {
424
- killGracefullySync(pid);
425
- cleanPidFile(PID_FILE());
426
- }
427
- }
428
- catch { /* ignore */ }
429
- return { stopped: true, pid: wdPid, msg: `server watchdog stopped (pid=${wdPid})` };
430
- }
431
- }
432
- // fallback:直接停止 server
433
- const pid = tryReadPid();
434
- if (!pid)
435
- return { stopped: false, pid: null, msg: 'no server.pid found or process dead' };
436
- if (!healthy) {
437
- // pid 存活但 server 不响应:不 kill(可能复用了别人的 pid)红线不动;
438
- // FID-093:同样保留 pid 文件(进程可能还活着,清了会孤儿化注册表)
439
- return {
440
- stopped: false,
441
- pid,
442
- msg: `✗ pid=${pid} 存活但 server 无响应,未发送 kill 信号(疑似 stale pid,` +
443
- `可能属于其他进程)。pid 文件保留以便复探;如确认是僵死 server 请手工 kill`,
444
- };
445
- }
446
- const ok = killGracefullySync(pid);
447
- if (!ok) {
448
- return { stopped: false, pid, msg: `failed to signal ${pid}` };
449
- }
450
- cleanPidFile(PID_FILE());
451
- return { stopped: true, pid, msg: `server stopped (pid=${pid})` };
452
- }
453
- export const startCommand = new Command('start')
454
- .description('启动本地 NestJS server(REST + WebSocket + SPA),对应 chromepilot start')
455
- .option('-p, --port <port>', 'server 端口,默认从 config.serverUrl 解析或 34570')
456
- .option('-h, --host <host>', '绑定 host,默认 127.0.0.1', '127.0.0.1')
457
- .option('-f, --foreground', '前台运行(默认后台 daemon,写 server.pid + server.log)')
458
- .action(async (opts) => {
459
- const r = await runStart({ port: opts.port ? Number(opts.port) : undefined, host: opts.host, foreground: opts.foreground });
460
- console.log(r.msg);
461
- if (!r.started && !r.pid)
462
- process.exit(1);
463
- });
464
- export const stopCommand = new Command('stop')
465
- .description('停止本地 server(读 ~/.hunter-mate/server.pid 并 SIGTERM)')
466
- .action(async () => {
467
- const r = await runStop();
468
- console.log(r.msg);
469
- if (!r.stopped && r.pid)
470
- process.exit(1);
471
- });