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.
- package/dist/assets/extension/_locales/en_US/messages.json +5 -0
- package/dist/assets/extension/_locales/zh_CN/messages.json +5 -0
- package/dist/assets/extension/background/service-worker.js +3253 -0
- package/dist/assets/extension/content/index.js +13660 -0
- package/dist/assets/extension/manifest.json +49 -0
- package/dist/assets/extension/package.json +24 -0
- package/dist/assets/extension/sidepanel/index.html +400 -0
- package/dist/assets/extension/sidepanel/index.js +852 -0
- package/dist/assets/server/agent-session/agent-session.controller.d.ts +32 -0
- package/dist/assets/server/agent-session/agent-session.controller.js +83 -0
- package/dist/assets/server/agent-session/agent-session.controller.js.map +1 -0
- package/dist/assets/server/agent-session/agent-session.guard.d.ts +4 -0
- package/dist/assets/server/agent-session/agent-session.guard.js +32 -0
- package/dist/assets/server/agent-session/agent-session.guard.js.map +1 -0
- package/dist/assets/server/agent-session/agent-session.module.d.ts +2 -0
- package/dist/assets/server/agent-session/agent-session.module.js +28 -0
- package/dist/assets/server/agent-session/agent-session.module.js.map +1 -0
- package/dist/assets/server/agent-session/agent-session.service.d.ts +54 -0
- package/dist/assets/server/agent-session/agent-session.service.js +431 -0
- package/dist/assets/server/agent-session/agent-session.service.js.map +1 -0
- package/dist/assets/server/agent-session/agent-session.types.d.ts +56 -0
- package/dist/assets/server/agent-session/agent-session.types.js +3 -0
- package/dist/assets/server/agent-session/agent-session.types.js.map +1 -0
- package/dist/assets/server/agent-session/entities/agent-event.entity.d.ts +12 -0
- package/dist/assets/server/agent-session/entities/agent-event.entity.js +73 -0
- package/dist/assets/server/agent-session/entities/agent-event.entity.js.map +1 -0
- package/dist/assets/server/agent-session/entities/agent-message.entity.d.ts +13 -0
- package/dist/assets/server/agent-session/entities/agent-message.entity.js +77 -0
- package/dist/assets/server/agent-session/entities/agent-message.entity.js.map +1 -0
- package/dist/assets/server/agent-session/entities/agent-session.entity.d.ts +14 -0
- package/dist/assets/server/agent-session/entities/agent-session.entity.js +83 -0
- package/dist/assets/server/agent-session/entities/agent-session.entity.js.map +1 -0
- package/dist/assets/server/app.module.d.ts +4 -0
- package/dist/assets/server/app.module.js +125 -0
- package/dist/assets/server/app.module.js.map +1 -0
- package/dist/assets/server/auth/auth.controller.d.ts +22 -0
- package/dist/assets/server/auth/auth.controller.js +88 -0
- package/dist/assets/server/auth/auth.controller.js.map +1 -0
- package/dist/assets/server/auth/auth.middleware.d.ts +5 -0
- package/dist/assets/server/auth/auth.middleware.js +34 -0
- package/dist/assets/server/auth/auth.middleware.js.map +1 -0
- package/dist/assets/server/auth/auth.module.d.ts +2 -0
- package/dist/assets/server/auth/auth.module.js +24 -0
- package/dist/assets/server/auth/auth.module.js.map +1 -0
- package/dist/assets/server/auth/auth.service.d.ts +30 -0
- package/dist/assets/server/auth/auth.service.js +183 -0
- package/dist/assets/server/auth/auth.service.js.map +1 -0
- package/dist/assets/server/auth/auth.types.d.ts +28 -0
- package/dist/assets/server/auth/auth.types.js +3 -0
- package/dist/assets/server/auth/auth.types.js.map +1 -0
- package/dist/assets/server/build-info.json +4 -0
- package/dist/assets/server/common/common.module.d.ts +2 -0
- package/dist/assets/server/common/common.module.js +22 -0
- package/dist/assets/server/common/common.module.js.map +1 -0
- package/dist/assets/server/common/crypto.service.d.ts +11 -0
- package/dist/assets/server/common/crypto.service.js +73 -0
- package/dist/assets/server/common/crypto.service.js.map +1 -0
- package/dist/assets/server/communication/communication-record.entity.d.ts +15 -0
- package/dist/assets/server/communication/communication-record.entity.js +80 -0
- package/dist/assets/server/communication/communication-record.entity.js.map +1 -0
- package/dist/assets/server/communication/communication.controller.d.ts +12 -0
- package/dist/assets/server/communication/communication.controller.js +61 -0
- package/dist/assets/server/communication/communication.controller.js.map +1 -0
- package/dist/assets/server/communication/communication.module.d.ts +2 -0
- package/dist/assets/server/communication/communication.module.js +25 -0
- package/dist/assets/server/communication/communication.module.js.map +1 -0
- package/dist/assets/server/communication/communication.service.d.ts +23 -0
- package/dist/assets/server/communication/communication.service.js +51 -0
- package/dist/assets/server/communication/communication.service.js.map +1 -0
- package/dist/assets/server/db/schema-validator.service.d.ts +25 -0
- package/dist/assets/server/db/schema-validator.service.js +107 -0
- package/dist/assets/server/db/schema-validator.service.js.map +1 -0
- package/dist/assets/server/db/schema-version.entity.d.ts +5 -0
- package/dist/assets/server/db/schema-version.entity.js +35 -0
- package/dist/assets/server/db/schema-version.entity.js.map +1 -0
- package/dist/assets/server/db/sqlite.module.d.ts +2 -0
- package/dist/assets/server/db/sqlite.module.js +79 -0
- package/dist/assets/server/db/sqlite.module.js.map +1 -0
- package/dist/assets/server/devops/devops-sink-init.d.ts +10 -0
- package/dist/assets/server/devops/devops-sink-init.js +96 -0
- package/dist/assets/server/devops/devops-sink-init.js.map +1 -0
- package/dist/assets/server/devops/devops-sink-init.spec.d.ts +1 -0
- package/dist/assets/server/devops/devops-sink-init.spec.js +71 -0
- package/dist/assets/server/devops/devops-sink-init.spec.js.map +1 -0
- package/dist/assets/server/devops/devops-sink.module.d.ts +2 -0
- package/dist/assets/server/devops/devops-sink.module.js +22 -0
- package/dist/assets/server/devops/devops-sink.module.js.map +1 -0
- package/dist/assets/server/extension/extension-control.controller.d.ts +67 -0
- package/dist/assets/server/extension/extension-control.controller.js +173 -0
- package/dist/assets/server/extension/extension-control.controller.js.map +1 -0
- package/dist/assets/server/extension/extension-control.service.d.ts +46 -0
- package/dist/assets/server/extension/extension-control.service.js +212 -0
- package/dist/assets/server/extension/extension-control.service.js.map +1 -0
- package/dist/assets/server/extension/extension-core.module.d.ts +2 -0
- package/dist/assets/server/extension/extension-core.module.js +21 -0
- package/dist/assets/server/extension/extension-core.module.js.map +1 -0
- package/dist/assets/server/extension/extension-version.controller.d.ts +6 -0
- package/dist/assets/server/extension/extension-version.controller.js +41 -0
- package/dist/assets/server/extension/extension-version.controller.js.map +1 -0
- package/dist/assets/server/extension/extension.module.d.ts +2 -0
- package/dist/assets/server/extension/extension.module.js +25 -0
- package/dist/assets/server/extension/extension.module.js.map +1 -0
- package/dist/assets/server/extraction/adapter.service.d.ts +41 -0
- package/dist/assets/server/extraction/adapter.service.js +161 -0
- package/dist/assets/server/extraction/adapter.service.js.map +1 -0
- package/dist/assets/server/extraction/entities/company-profile.entity.d.ts +14 -0
- package/dist/assets/server/extraction/entities/company-profile.entity.js +81 -0
- package/dist/assets/server/extraction/entities/company-profile.entity.js.map +1 -0
- package/dist/assets/server/extraction/entities/job-posting.entity.d.ts +15 -0
- package/dist/assets/server/extraction/entities/job-posting.entity.js +86 -0
- package/dist/assets/server/extraction/entities/job-posting.entity.js.map +1 -0
- package/dist/assets/server/extraction/entities/parse-log.entity.d.ts +15 -0
- package/dist/assets/server/extraction/entities/parse-log.entity.js +87 -0
- package/dist/assets/server/extraction/entities/parse-log.entity.js.map +1 -0
- package/dist/assets/server/extraction/entities/talent-profile.entity.d.ts +15 -0
- package/dist/assets/server/extraction/entities/talent-profile.entity.js +86 -0
- package/dist/assets/server/extraction/entities/talent-profile.entity.js.map +1 -0
- package/dist/assets/server/extraction/extraction-entity.controller.d.ts +100 -0
- package/dist/assets/server/extraction/extraction-entity.controller.js +310 -0
- package/dist/assets/server/extraction/extraction-entity.controller.js.map +1 -0
- package/dist/assets/server/extraction/extraction-rule.controller.d.ts +7 -0
- package/dist/assets/server/extraction/extraction-rule.controller.js +48 -0
- package/dist/assets/server/extraction/extraction-rule.controller.js.map +1 -0
- package/dist/assets/server/extraction/extraction-rule.entity.d.ts +15 -0
- package/dist/assets/server/extraction/extraction-rule.entity.js +80 -0
- package/dist/assets/server/extraction/extraction-rule.entity.js.map +1 -0
- package/dist/assets/server/extraction/extraction-rule.service.d.ts +24 -0
- package/dist/assets/server/extraction/extraction-rule.service.js +81 -0
- package/dist/assets/server/extraction/extraction-rule.service.js.map +1 -0
- package/dist/assets/server/extraction/extraction.module.d.ts +2 -0
- package/dist/assets/server/extraction/extraction.module.js +43 -0
- package/dist/assets/server/extraction/extraction.module.js.map +1 -0
- package/dist/assets/server/extraction/extraction.service.d.ts +62 -0
- package/dist/assets/server/extraction/extraction.service.js +347 -0
- package/dist/assets/server/extraction/extraction.service.js.map +1 -0
- package/dist/assets/server/extraction/script-rule.d.ts +13 -0
- package/dist/assets/server/extraction/script-rule.js +45 -0
- package/dist/assets/server/extraction/script-rule.js.map +1 -0
- package/dist/assets/server/extraction/structured-data.d.ts +7 -0
- package/dist/assets/server/extraction/structured-data.js +96 -0
- package/dist/assets/server/extraction/structured-data.js.map +1 -0
- package/dist/assets/server/hcapi/hcapi.module.d.ts +2 -0
- package/dist/assets/server/hcapi/hcapi.module.js +23 -0
- package/dist/assets/server/hcapi/hcapi.module.js.map +1 -0
- package/dist/assets/server/hcapi/hcapi.service.d.ts +28 -0
- package/dist/assets/server/hcapi/hcapi.service.js +81 -0
- package/dist/assets/server/hcapi/hcapi.service.js.map +1 -0
- package/dist/assets/server/health/health.controller.d.ts +19 -0
- package/dist/assets/server/health/health.controller.js +59 -0
- package/dist/assets/server/health/health.controller.js.map +1 -0
- package/dist/assets/server/jobcase/jobcase.controller.d.ts +12 -0
- package/dist/assets/server/jobcase/jobcase.controller.js +61 -0
- package/dist/assets/server/jobcase/jobcase.controller.js.map +1 -0
- package/dist/assets/server/jobcase/jobcase.entity.d.ts +13 -0
- package/dist/assets/server/jobcase/jobcase.entity.js +71 -0
- package/dist/assets/server/jobcase/jobcase.entity.js.map +1 -0
- package/dist/assets/server/jobcase/jobcase.module.d.ts +2 -0
- package/dist/assets/server/jobcase/jobcase.module.js +26 -0
- package/dist/assets/server/jobcase/jobcase.module.js.map +1 -0
- package/dist/assets/server/jobcase/jobcase.service.d.ts +21 -0
- package/dist/assets/server/jobcase/jobcase.service.js +56 -0
- package/dist/assets/server/jobcase/jobcase.service.js.map +1 -0
- package/dist/assets/server/llm/llm.module.d.ts +2 -0
- package/dist/assets/server/llm/llm.module.js +21 -0
- package/dist/assets/server/llm/llm.module.js.map +1 -0
- package/dist/assets/server/llm/llm.service.d.ts +18 -0
- package/dist/assets/server/llm/llm.service.js +65 -0
- package/dist/assets/server/llm/llm.service.js.map +1 -0
- package/dist/assets/server/main.d.ts +1 -0
- package/dist/assets/server/main.js +30 -0
- package/dist/assets/server/main.js.map +1 -0
- package/dist/assets/server/matching/matching.controller.d.ts +16 -0
- package/dist/assets/server/matching/matching.controller.js +97 -0
- package/dist/assets/server/matching/matching.controller.js.map +1 -0
- package/dist/assets/server/matching/matching.module.d.ts +2 -0
- package/dist/assets/server/matching/matching.module.js +36 -0
- package/dist/assets/server/matching/matching.module.js.map +1 -0
- package/dist/assets/server/matching/matching.service.d.ts +55 -0
- package/dist/assets/server/matching/matching.service.js +409 -0
- package/dist/assets/server/matching/matching.service.js.map +1 -0
- package/dist/assets/server/package.json +57 -0
- package/dist/assets/server/parsed-resume/parsed-resume.controller.d.ts +6 -0
- package/dist/assets/server/parsed-resume/parsed-resume.controller.js +42 -0
- package/dist/assets/server/parsed-resume/parsed-resume.controller.js.map +1 -0
- package/dist/assets/server/parsed-resume/parsed-resume.entity.d.ts +124 -0
- package/dist/assets/server/parsed-resume/parsed-resume.entity.js +72 -0
- package/dist/assets/server/parsed-resume/parsed-resume.entity.js.map +1 -0
- package/dist/assets/server/parsed-resume/parsed-resume.module.d.ts +2 -0
- package/dist/assets/server/parsed-resume/parsed-resume.module.js +26 -0
- package/dist/assets/server/parsed-resume/parsed-resume.module.js.map +1 -0
- package/dist/assets/server/parsed-resume/parsed-resume.service.d.ts +10 -0
- package/dist/assets/server/parsed-resume/parsed-resume.service.js +45 -0
- package/dist/assets/server/parsed-resume/parsed-resume.service.js.map +1 -0
- package/dist/assets/server/parsing/parse-error-report.entity.d.ts +11 -0
- package/dist/assets/server/parsing/parse-error-report.entity.js +66 -0
- package/dist/assets/server/parsing/parse-error-report.entity.js.map +1 -0
- package/dist/assets/server/parsing/parsing.controller.d.ts +19 -0
- package/dist/assets/server/parsing/parsing.controller.js +97 -0
- package/dist/assets/server/parsing/parsing.controller.js.map +1 -0
- package/dist/assets/server/parsing/parsing.module.d.ts +2 -0
- package/dist/assets/server/parsing/parsing.module.js +38 -0
- package/dist/assets/server/parsing/parsing.module.js.map +1 -0
- package/dist/assets/server/parsing/parsing.service.d.ts +38 -0
- package/dist/assets/server/parsing/parsing.service.js +263 -0
- package/dist/assets/server/parsing/parsing.service.js.map +1 -0
- package/dist/assets/server/query/fields-meta.controller.d.ts +28 -0
- package/dist/assets/server/query/fields-meta.controller.js +57 -0
- package/dist/assets/server/query/fields-meta.controller.js.map +1 -0
- package/dist/assets/server/query/query-builder.controller.d.ts +11 -0
- package/dist/assets/server/query/query-builder.controller.js +40 -0
- package/dist/assets/server/query/query-builder.controller.js.map +1 -0
- package/dist/assets/server/query/query-builder.service.d.ts +8 -0
- package/dist/assets/server/query/query-builder.service.js +41 -0
- package/dist/assets/server/query/query-builder.service.js.map +1 -0
- package/dist/assets/server/query/query.module.d.ts +2 -0
- package/dist/assets/server/query/query.module.js +23 -0
- package/dist/assets/server/query/query.module.js.map +1 -0
- package/dist/assets/server/recording/entities/recording-event.entity.d.ts +9 -0
- package/dist/assets/server/recording/entities/recording-event.entity.js +56 -0
- package/dist/assets/server/recording/entities/recording-event.entity.js.map +1 -0
- package/dist/assets/server/recording/recording.controller.d.ts +52 -0
- package/dist/assets/server/recording/recording.controller.js +73 -0
- package/dist/assets/server/recording/recording.controller.js.map +1 -0
- package/dist/assets/server/recording/recording.gateway.d.ts +15 -0
- package/dist/assets/server/recording/recording.gateway.js +117 -0
- package/dist/assets/server/recording/recording.gateway.js.map +1 -0
- package/dist/assets/server/recording/recording.module.d.ts +2 -0
- package/dist/assets/server/recording/recording.module.js +29 -0
- package/dist/assets/server/recording/recording.module.js.map +1 -0
- package/dist/assets/server/recording/recording.service.d.ts +59 -0
- package/dist/assets/server/recording/recording.service.js +111 -0
- package/dist/assets/server/recording/recording.service.js.map +1 -0
- package/dist/assets/server/remark/remark.controller.d.ts +21 -0
- package/dist/assets/server/remark/remark.controller.js +59 -0
- package/dist/assets/server/remark/remark.controller.js.map +1 -0
- package/dist/assets/server/remark/remark.entity.d.ts +18 -0
- package/dist/assets/server/remark/remark.entity.js +67 -0
- package/dist/assets/server/remark/remark.entity.js.map +1 -0
- package/dist/assets/server/remark/remark.module.d.ts +2 -0
- package/dist/assets/server/remark/remark.module.js +26 -0
- package/dist/assets/server/remark/remark.module.js.map +1 -0
- package/dist/assets/server/remark/remark.service.d.ts +8 -0
- package/dist/assets/server/remark/remark.service.js +39 -0
- package/dist/assets/server/remark/remark.service.js.map +1 -0
- package/dist/assets/server/report/report.controller.d.ts +18 -0
- package/dist/assets/server/report/report.controller.js +41 -0
- package/dist/assets/server/report/report.controller.js.map +1 -0
- package/dist/assets/server/report/report.module.d.ts +2 -0
- package/dist/assets/server/report/report.module.js +24 -0
- package/dist/assets/server/report/report.module.js.map +1 -0
- package/dist/assets/server/report/report.service.d.ts +23 -0
- package/dist/assets/server/report/report.service.js +54 -0
- package/dist/assets/server/report/report.service.js.map +1 -0
- package/dist/assets/server/rules/rules.controller.d.ts +6 -0
- package/dist/assets/server/rules/rules.controller.js +35 -0
- package/dist/assets/server/rules/rules.controller.js.map +1 -0
- package/dist/assets/server/rules/rules.module.d.ts +2 -0
- package/dist/assets/server/rules/rules.module.js +23 -0
- package/dist/assets/server/rules/rules.module.js.map +1 -0
- package/dist/assets/server/rules/rules.service.d.ts +10 -0
- package/dist/assets/server/rules/rules.service.js +26 -0
- package/dist/assets/server/rules/rules.service.js.map +1 -0
- package/dist/assets/server/search/search.controller.d.ts +6 -0
- package/dist/assets/server/search/search.controller.js +53 -0
- package/dist/assets/server/search/search.controller.js.map +1 -0
- package/dist/assets/server/search/search.module.d.ts +2 -0
- package/dist/assets/server/search/search.module.js +24 -0
- package/dist/assets/server/search/search.module.js.map +1 -0
- package/dist/assets/server/search/search.service.d.ts +6 -0
- package/dist/assets/server/search/search.service.js +46 -0
- package/dist/assets/server/search/search.service.js.map +1 -0
- package/dist/assets/server/sentry.d.ts +3 -0
- package/dist/assets/server/sentry.js +10 -0
- package/dist/assets/server/sentry.js.map +1 -0
- package/dist/assets/server/site/entities/site-registry.entity.d.ts +11 -0
- package/dist/assets/server/site/entities/site-registry.entity.js +66 -0
- package/dist/assets/server/site/entities/site-registry.entity.js.map +1 -0
- package/dist/assets/server/site/site.controller.d.ts +36 -0
- package/dist/assets/server/site/site.controller.js +60 -0
- package/dist/assets/server/site/site.controller.js.map +1 -0
- package/dist/assets/server/site/site.module.d.ts +2 -0
- package/dist/assets/server/site/site.module.js +26 -0
- package/dist/assets/server/site/site.module.js.map +1 -0
- package/dist/assets/server/site/site.service.d.ts +37 -0
- package/dist/assets/server/site/site.service.js +134 -0
- package/dist/assets/server/site/site.service.js.map +1 -0
- package/dist/assets/server/snapshot/raw-snapshot.entity.d.ts +35 -0
- package/dist/assets/server/snapshot/raw-snapshot.entity.js +62 -0
- package/dist/assets/server/snapshot/raw-snapshot.entity.js.map +1 -0
- package/dist/assets/server/snapshot/snapshot.controller.d.ts +18 -0
- package/dist/assets/server/snapshot/snapshot.controller.js +76 -0
- package/dist/assets/server/snapshot/snapshot.controller.js.map +1 -0
- package/dist/assets/server/snapshot/snapshot.module.d.ts +2 -0
- package/dist/assets/server/snapshot/snapshot.module.js +26 -0
- package/dist/assets/server/snapshot/snapshot.module.js.map +1 -0
- package/dist/assets/server/snapshot/snapshot.service.d.ts +10 -0
- package/dist/assets/server/snapshot/snapshot.service.js +48 -0
- package/dist/assets/server/snapshot/snapshot.service.js.map +1 -0
- package/dist/assets/server/system/system.controller.d.ts +39 -0
- package/dist/assets/server/system/system.controller.js +93 -0
- package/dist/assets/server/system/system.controller.js.map +1 -0
- package/dist/assets/server/system/system.module.d.ts +2 -0
- package/dist/assets/server/system/system.module.js +26 -0
- package/dist/assets/server/system/system.module.js.map +1 -0
- package/dist/assets/server/system/system.service.d.ts +86 -0
- package/dist/assets/server/system/system.service.js +433 -0
- package/dist/assets/server/system/system.service.js.map +1 -0
- package/dist/assets/server/talent-fingerprint/fingerprint-match.service.d.ts +28 -0
- package/dist/assets/server/talent-fingerprint/fingerprint-match.service.js +186 -0
- package/dist/assets/server/talent-fingerprint/fingerprint-match.service.js.map +1 -0
- package/dist/assets/server/talent-fingerprint/talent-fingerprint.entity.d.ts +30 -0
- package/dist/assets/server/talent-fingerprint/talent-fingerprint.entity.js +55 -0
- package/dist/assets/server/talent-fingerprint/talent-fingerprint.entity.js.map +1 -0
- package/dist/assets/server/talent-fingerprint/talent-fingerprint.module.d.ts +2 -0
- package/dist/assets/server/talent-fingerprint/talent-fingerprint.module.js +25 -0
- package/dist/assets/server/talent-fingerprint/talent-fingerprint.module.js.map +1 -0
- package/dist/assets/server/talent-fingerprint/talent-fingerprint.service.d.ts +8 -0
- package/dist/assets/server/talent-fingerprint/talent-fingerprint.service.js +44 -0
- package/dist/assets/server/talent-fingerprint/talent-fingerprint.service.js.map +1 -0
- package/dist/assets/server/talent-job-match/talent-job-match.controller.d.ts +6 -0
- package/dist/assets/server/talent-job-match/talent-job-match.controller.js +42 -0
- package/dist/assets/server/talent-job-match/talent-job-match.controller.js.map +1 -0
- package/dist/assets/server/talent-job-match/talent-job-match.entity.d.ts +33 -0
- package/dist/assets/server/talent-job-match/talent-job-match.entity.js +73 -0
- package/dist/assets/server/talent-job-match/talent-job-match.entity.js.map +1 -0
- package/dist/assets/server/talent-job-match/talent-job-match.module.d.ts +2 -0
- package/dist/assets/server/talent-job-match/talent-job-match.module.js +26 -0
- package/dist/assets/server/talent-job-match/talent-job-match.module.js.map +1 -0
- package/dist/assets/server/talent-job-match/talent-job-match.service.d.ts +9 -0
- package/dist/assets/server/talent-job-match/talent-job-match.service.js +42 -0
- package/dist/assets/server/talent-job-match/talent-job-match.service.js.map +1 -0
- package/dist/assets/server/talent-portrait/portrait-merge.service.d.ts +17 -0
- package/dist/assets/server/talent-portrait/portrait-merge.service.js +200 -0
- package/dist/assets/server/talent-portrait/portrait-merge.service.js.map +1 -0
- package/dist/assets/server/talent-portrait/talent-portrait.controller.d.ts +7 -0
- package/dist/assets/server/talent-portrait/talent-portrait.controller.js +52 -0
- package/dist/assets/server/talent-portrait/talent-portrait.controller.js.map +1 -0
- package/dist/assets/server/talent-portrait/talent-portrait.entity.d.ts +91 -0
- package/dist/assets/server/talent-portrait/talent-portrait.entity.js +71 -0
- package/dist/assets/server/talent-portrait/talent-portrait.entity.js.map +1 -0
- package/dist/assets/server/talent-portrait/talent-portrait.module.d.ts +2 -0
- package/dist/assets/server/talent-portrait/talent-portrait.module.js +27 -0
- package/dist/assets/server/talent-portrait/talent-portrait.module.js.map +1 -0
- package/dist/assets/server/talent-portrait/talent-portrait.service.d.ts +10 -0
- package/dist/assets/server/talent-portrait/talent-portrait.service.js +46 -0
- package/dist/assets/server/talent-portrait/talent-portrait.service.js.map +1 -0
- package/dist/assets/server/telemetry/telemetry.module.d.ts +2 -0
- package/dist/assets/server/telemetry/telemetry.module.js +24 -0
- package/dist/assets/server/telemetry/telemetry.module.js.map +1 -0
- package/dist/assets/server/telemetry/telemetry.service.d.ts +29 -0
- package/dist/assets/server/telemetry/telemetry.service.js +116 -0
- package/dist/assets/server/telemetry/telemetry.service.js.map +1 -0
- package/dist/bundled-assets.d.ts +22 -0
- package/dist/bundled-assets.js +80 -0
- package/dist/cache/db.js +10 -54
- package/dist/commands/addons.js +46 -71
- package/dist/commands/cache.js +29 -27
- package/dist/commands/config.d.ts +1 -1
- package/dist/commands/config.js +8 -12
- package/dist/commands/doctor.d.ts +0 -1
- package/dist/commands/doctor.js +52 -67
- package/dist/commands/extension.js +82 -96
- package/dist/commands/extras.d.ts +31 -1
- package/dist/commands/extras.js +248 -61
- package/dist/commands/init.js +18 -46
- package/dist/commands/install.js +20 -52
- package/dist/commands/job.js +27 -65
- package/dist/commands/login.js +50 -37
- package/dist/commands/logout.js +8 -12
- package/dist/commands/ops.js +94 -67
- package/dist/commands/record.js +21 -59
- package/dist/commands/report.js +14 -18
- package/dist/commands/search.js +14 -21
- package/dist/commands/server.d.ts +1 -1
- package/dist/commands/server.js +126 -112
- package/dist/commands/status.js +23 -27
- package/dist/commands/update.js +44 -79
- package/dist/config.d.ts +3 -0
- package/dist/config.js +12 -46
- package/dist/i18n/index.js +5 -11
- package/dist/i18n/locales/en-US.json +24 -1
- package/dist/i18n/locales/zh-CN.json +24 -1
- package/dist/index.cmd +3 -0
- package/dist/index.js +84 -97
- package/dist/index.ps1 +3 -0
- package/dist/keychain.js +9 -44
- package/dist/logger.d.ts +7 -0
- package/dist/logger.js +80 -0
- package/dist/native-check.d.ts +6 -0
- package/dist/native-check.js +23 -0
- package/dist/sentry.js +4 -8
- package/dist/updater.js +15 -52
- package/dist/utils/proc.d.ts +35 -0
- package/dist/utils/proc.js +81 -0
- package/dist/utils/spawn.d.ts +19 -0
- package/dist/utils/spawn.js +60 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +183 -81
- package/dist/watchdog.d.ts +1 -0
- package/dist/watchdog.js +128 -0
- package/package.json +6 -5
- package/dist/commands/native-check.d.ts +0 -22
- package/dist/commands/native-check.js +0 -93
package/dist/index.js
CHANGED
|
@@ -1,77 +1,54 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
o["default"] = v;
|
|
18
|
-
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
-
var ownKeys = function(o) {
|
|
21
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
-
var ar = [];
|
|
23
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
-
return ar;
|
|
25
|
-
};
|
|
26
|
-
return ownKeys(o);
|
|
27
|
-
};
|
|
28
|
-
return function (mod) {
|
|
29
|
-
if (mod && mod.__esModule) return mod;
|
|
30
|
-
var result = {};
|
|
31
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
-
__setModuleDefault(result, mod);
|
|
33
|
-
return result;
|
|
34
|
-
};
|
|
35
|
-
})();
|
|
36
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
|
-
};
|
|
39
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
require("dotenv/config");
|
|
41
|
-
const commander_1 = require("commander");
|
|
42
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
43
|
-
const sentry_1 = require("./sentry");
|
|
44
|
-
const login_1 = require("./commands/login");
|
|
45
|
-
const logout_1 = require("./commands/logout");
|
|
46
|
-
const status_1 = require("./commands/status");
|
|
47
|
-
const config_1 = require("./commands/config");
|
|
48
|
-
const search_1 = require("./commands/search");
|
|
49
|
-
const job_1 = require("./commands/job");
|
|
50
|
-
const update_1 = require("./commands/update");
|
|
51
|
-
const extension_1 = require("./commands/extension");
|
|
52
|
-
const report_1 = require("./commands/report");
|
|
53
|
-
const record_1 = require("./commands/record");
|
|
54
|
-
const cache_1 = require("./commands/cache");
|
|
2
|
+
import 'dotenv/config';
|
|
3
|
+
import { Command } from 'commander';
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { initSentry } from './sentry.js';
|
|
6
|
+
import { loginCommand } from './commands/login.js';
|
|
7
|
+
import { logoutCommand } from './commands/logout.js';
|
|
8
|
+
import { statusCommand } from './commands/status.js';
|
|
9
|
+
import { configCommand } from './commands/config.js';
|
|
10
|
+
import { searchCommand } from './commands/search.js';
|
|
11
|
+
import { jobCommand } from './commands/job.js';
|
|
12
|
+
import { updateCommand } from './commands/update.js';
|
|
13
|
+
import { extensionCommand } from './commands/extension.js';
|
|
14
|
+
import { reportCommand } from './commands/report.js';
|
|
15
|
+
import { recordCommand } from './commands/record.js';
|
|
16
|
+
import { cacheCommand } from './commands/cache.js';
|
|
55
17
|
// 对应 ChromePilot 的新命令(环境管理 / 运维 / 扩展管理)
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
18
|
+
import { initCommand } from './commands/init.js';
|
|
19
|
+
import { installCommand } from './commands/install.js';
|
|
20
|
+
import { startCommand, stopCommand } from './commands/server.js';
|
|
21
|
+
import { doctorCommand } from './commands/doctor.js';
|
|
22
|
+
import { reloadCommand, openExtCommand, purgeCommand } from './commands/extras.js';
|
|
23
|
+
import { recordingsCommand, adapterCommand, memoryCommand, traceCommand, autofixCommand } from './commands/ops.js';
|
|
24
|
+
import { pluginCommand, skillCommand, externalCommand } from './commands/addons.js';
|
|
25
|
+
import { i18n } from './i18n/index.js';
|
|
26
|
+
import { initCliLogger, flushCliLogger, getCliLogger } from './logger.js';
|
|
27
|
+
import packageJson from '../package.json' with { type: 'json' };
|
|
28
|
+
const CLI_VERSION = packageJson.version;
|
|
29
|
+
initSentry();
|
|
30
|
+
// patchConsole + patchStreams:把业务代码里的 console.error/warn 统一转发到 logger-kit,
|
|
31
|
+
// 避免两套日志写法。AGENTS.md §11。
|
|
32
|
+
initCliLogger({ patchConsole: true, patchStreams: true }).catch(() => {
|
|
33
|
+
// 日志初始化失败不影响主流程
|
|
34
|
+
});
|
|
35
|
+
const program = new Command();
|
|
66
36
|
program
|
|
67
37
|
.name('hunter-mate')
|
|
68
|
-
.description(
|
|
69
|
-
.version(
|
|
70
|
-
.option('--lang <lang>',
|
|
38
|
+
.description(i18n.t('cli.description') + '(已对齐 ChromePilot: init/install/start/stop/status/recordings/control/adapter/run/memory/trace/autofix/external/plugin/skill/open-ext/doctor/reload)+ purge|reset|uninstall')
|
|
39
|
+
.version(CLI_VERSION)
|
|
40
|
+
.option('--lang <lang>', i18n.t('cli.langOption'), 'zh-CN')
|
|
71
41
|
.hook('preAction', async (thisCommand) => {
|
|
72
42
|
const lang = thisCommand.opts().lang;
|
|
73
43
|
if (lang)
|
|
74
|
-
|
|
44
|
+
i18n.setLocale(lang);
|
|
45
|
+
// 日志:command start
|
|
46
|
+
try {
|
|
47
|
+
getCliLogger().info('command:start', { command: thisCommand.name(), args: thisCommand.args });
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// logger 未就绪时忽略
|
|
51
|
+
}
|
|
75
52
|
// ADR-005 运行时一致性自动检测 + CLI 自更新(每次使用触发,版本判断):
|
|
76
53
|
// 1) CLI 自更新: 节流 1h 对比 npm registry,落后自动 npm install -g(下一条命令生效);
|
|
77
54
|
// dev 软链模式(wrapper 指向 hc-hw worktree dist)自动跳过。
|
|
@@ -84,50 +61,60 @@ program
|
|
|
84
61
|
if (name === 'update' || name === 'start' || name === 'stop')
|
|
85
62
|
return;
|
|
86
63
|
try {
|
|
87
|
-
const { maybeCliSelfUpdate } = await
|
|
64
|
+
const { maybeCliSelfUpdate } = await import('./updater.js');
|
|
88
65
|
const upd = await maybeCliSelfUpdate();
|
|
89
66
|
for (const line of upd.logs)
|
|
90
|
-
console.log(
|
|
67
|
+
console.log(chalk.gray(` [auto-update] ${line}`));
|
|
91
68
|
}
|
|
92
69
|
catch {
|
|
93
70
|
/* CLI 自更新检测永不阻塞主命令 */
|
|
94
71
|
}
|
|
95
72
|
try {
|
|
96
|
-
const { ensureRuntimeConsistency } = await
|
|
73
|
+
const { ensureRuntimeConsistency } = await import('./version.js');
|
|
97
74
|
const report = await ensureRuntimeConsistency({});
|
|
98
75
|
if (report.performed.length) {
|
|
99
76
|
for (const line of report.performed)
|
|
100
|
-
console.log(
|
|
77
|
+
console.log(chalk.gray(` [auto-update] ${line}`));
|
|
101
78
|
}
|
|
102
79
|
}
|
|
103
80
|
catch {
|
|
104
81
|
/* 一致性检测永不阻塞主命令 */
|
|
105
82
|
}
|
|
83
|
+
})
|
|
84
|
+
.hook('postAction', async (thisCommand) => {
|
|
85
|
+
try {
|
|
86
|
+
getCliLogger().info('command:end', { command: thisCommand.name() });
|
|
87
|
+
await flushCliLogger();
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// 日志发送失败不影响主流程
|
|
91
|
+
}
|
|
106
92
|
});
|
|
107
|
-
program.addCommand(
|
|
108
|
-
program.addCommand(
|
|
109
|
-
program.addCommand(
|
|
110
|
-
program.addCommand(
|
|
111
|
-
program.addCommand(
|
|
112
|
-
program.addCommand(
|
|
113
|
-
program.addCommand(
|
|
114
|
-
program.addCommand(
|
|
115
|
-
program.addCommand(
|
|
116
|
-
program.addCommand(
|
|
117
|
-
program.addCommand(
|
|
118
|
-
program.addCommand(
|
|
119
|
-
program.addCommand(
|
|
120
|
-
program.addCommand(
|
|
121
|
-
program.addCommand(
|
|
122
|
-
program.addCommand(
|
|
123
|
-
program.addCommand(
|
|
124
|
-
program.addCommand(
|
|
125
|
-
program.addCommand(
|
|
126
|
-
program.addCommand(
|
|
127
|
-
program.addCommand(
|
|
128
|
-
program.addCommand(
|
|
129
|
-
program.addCommand(
|
|
130
|
-
program.addCommand(
|
|
131
|
-
program.addCommand(
|
|
132
|
-
program.addCommand(
|
|
93
|
+
program.addCommand(initCommand);
|
|
94
|
+
program.addCommand(installCommand);
|
|
95
|
+
program.addCommand(startCommand);
|
|
96
|
+
program.addCommand(stopCommand);
|
|
97
|
+
program.addCommand(loginCommand);
|
|
98
|
+
program.addCommand(logoutCommand);
|
|
99
|
+
program.addCommand(statusCommand);
|
|
100
|
+
program.addCommand(configCommand);
|
|
101
|
+
program.addCommand(searchCommand);
|
|
102
|
+
program.addCommand(jobCommand);
|
|
103
|
+
program.addCommand(updateCommand);
|
|
104
|
+
program.addCommand(extensionCommand);
|
|
105
|
+
program.addCommand(recordingsCommand);
|
|
106
|
+
program.addCommand(adapterCommand);
|
|
107
|
+
program.addCommand(memoryCommand);
|
|
108
|
+
program.addCommand(traceCommand);
|
|
109
|
+
program.addCommand(autofixCommand);
|
|
110
|
+
program.addCommand(externalCommand);
|
|
111
|
+
program.addCommand(pluginCommand);
|
|
112
|
+
program.addCommand(skillCommand);
|
|
113
|
+
program.addCommand(openExtCommand);
|
|
114
|
+
program.addCommand(doctorCommand);
|
|
115
|
+
program.addCommand(reloadCommand);
|
|
116
|
+
program.addCommand(purgeCommand);
|
|
117
|
+
program.addCommand(reportCommand);
|
|
118
|
+
program.addCommand(recordCommand);
|
|
119
|
+
program.addCommand(cacheCommand);
|
|
133
120
|
program.parse();
|
package/dist/index.ps1
ADDED
package/dist/keychain.js
CHANGED
|
@@ -1,49 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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.saveToken = saveToken;
|
|
37
|
-
exports.getToken = getToken;
|
|
38
|
-
exports.deleteToken = deleteToken;
|
|
39
|
-
const fs = __importStar(require("fs"));
|
|
40
|
-
const path = __importStar(require("path"));
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
41
3
|
const SERVICE = 'hunter-mate';
|
|
42
4
|
const ACCOUNT = 'user';
|
|
43
5
|
const HOME = process.env.HUNTER_MATE_HOME || process.env.HOME || process.env.USERPROFILE || '.';
|
|
44
6
|
const TOKEN_FILE = path.join(HOME, '.hunter-mate', 'token.json');
|
|
45
7
|
function fallbackSave(token) {
|
|
46
8
|
fs.mkdirSync(path.dirname(TOKEN_FILE), { recursive: true });
|
|
9
|
+
// POSIX 上 mode 0o600 强制 owner-only;Windows NTFS 上 mode bit 被忽略,
|
|
10
|
+
// 由用户目录 ACL 兜底(%USERPROFILE%\.hunter-mate 默认只有当前用户可访问)。
|
|
11
|
+
// 真正安全的 Windows 路径是走 keytar(Windows Credential Manager)→ setPassword。
|
|
47
12
|
fs.writeFileSync(TOKEN_FILE, JSON.stringify({ token }), { mode: 0o600 });
|
|
48
13
|
}
|
|
49
14
|
function fallbackGet() {
|
|
@@ -68,7 +33,7 @@ async function getKeytar() {
|
|
|
68
33
|
if (process.platform === 'linux')
|
|
69
34
|
return null;
|
|
70
35
|
try {
|
|
71
|
-
const mod = await
|
|
36
|
+
const mod = await import('keytar');
|
|
72
37
|
// ESM/CJS 混用:部分导出在 default 上
|
|
73
38
|
return mod.setPassword ? mod : mod.default || null;
|
|
74
39
|
}
|
|
@@ -76,7 +41,7 @@ async function getKeytar() {
|
|
|
76
41
|
return null;
|
|
77
42
|
}
|
|
78
43
|
}
|
|
79
|
-
async function saveToken(token) {
|
|
44
|
+
export async function saveToken(token) {
|
|
80
45
|
const keytar = await getKeytar();
|
|
81
46
|
if (keytar) {
|
|
82
47
|
try {
|
|
@@ -89,7 +54,7 @@ async function saveToken(token) {
|
|
|
89
54
|
}
|
|
90
55
|
fallbackSave(token);
|
|
91
56
|
}
|
|
92
|
-
async function getToken() {
|
|
57
|
+
export async function getToken() {
|
|
93
58
|
const keytar = await getKeytar();
|
|
94
59
|
if (keytar) {
|
|
95
60
|
try {
|
|
@@ -103,7 +68,7 @@ async function getToken() {
|
|
|
103
68
|
}
|
|
104
69
|
return fallbackGet();
|
|
105
70
|
}
|
|
106
|
-
async function deleteToken() {
|
|
71
|
+
export async function deleteToken() {
|
|
107
72
|
const keytar = await getKeytar();
|
|
108
73
|
if (keytar) {
|
|
109
74
|
try {
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Logger } from "@chromepilot/logger-kit/client";
|
|
2
|
+
export declare function getCliLogger(): Logger;
|
|
3
|
+
export declare function initCliLogger(options?: {
|
|
4
|
+
patchConsole?: boolean;
|
|
5
|
+
patchStreams?: boolean;
|
|
6
|
+
}): Promise<Logger>;
|
|
7
|
+
export declare function flushCliLogger(): Promise<void>;
|
package/dist/logger.js
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Logger, createHttpTransport } from "@chromepilot/logger-kit/client";
|
|
2
|
+
import { PersistentLogQueue } from "@chromepilot/logger-kit/queue-node";
|
|
3
|
+
import { loadConfig } from "./config.js";
|
|
4
|
+
import { getToken } from "./keychain.js";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
let logger = null;
|
|
7
|
+
let queue = null;
|
|
8
|
+
let drainTimer = null;
|
|
9
|
+
const noopLogger = {
|
|
10
|
+
debug: () => { },
|
|
11
|
+
info: () => { },
|
|
12
|
+
warn: () => { },
|
|
13
|
+
error: () => { },
|
|
14
|
+
log: () => { },
|
|
15
|
+
patchConsole: () => { },
|
|
16
|
+
patchProcessStreams: () => { },
|
|
17
|
+
flush: async () => { },
|
|
18
|
+
drainPersistent: async () => null,
|
|
19
|
+
};
|
|
20
|
+
export function getCliLogger() {
|
|
21
|
+
if (!logger) {
|
|
22
|
+
// 未显式初始化时返回 noop(测试/单工具命令兼容);主入口 index.ts 会先 init
|
|
23
|
+
return noopLogger;
|
|
24
|
+
}
|
|
25
|
+
return logger;
|
|
26
|
+
}
|
|
27
|
+
function homeDir() {
|
|
28
|
+
return process.env.HUNTER_MATE_HOME || process.env.HOME || process.env.USERPROFILE || ".";
|
|
29
|
+
}
|
|
30
|
+
export async function initCliLogger(options) {
|
|
31
|
+
const cfg = loadConfig();
|
|
32
|
+
const serverUrl = cfg.serverUrl.replace(/\/$/, "");
|
|
33
|
+
const token = await getToken();
|
|
34
|
+
// 持久化队列:server 不可达时落盘 ~/.hunter-mate/logs-pending.jsonl
|
|
35
|
+
queue = new PersistentLogQueue({
|
|
36
|
+
filePath: path.join(homeDir(), ".hunter-mate", "logs-pending.jsonl"),
|
|
37
|
+
maxBytes: 4 * 1024 * 1024,
|
|
38
|
+
});
|
|
39
|
+
await queue.load();
|
|
40
|
+
const transport = await createHttpTransport({
|
|
41
|
+
serverUrl,
|
|
42
|
+
headers: token ? { Authorization: `Bearer ${token}` } : {},
|
|
43
|
+
});
|
|
44
|
+
logger = new Logger({
|
|
45
|
+
context: "cli",
|
|
46
|
+
sessionId: () => process.env.HM_SESSION_ID || `cli-${process.pid}`,
|
|
47
|
+
send: transport,
|
|
48
|
+
flushIntervalMs: 1000,
|
|
49
|
+
maxBufferSize: 50,
|
|
50
|
+
persistentQueue: queue,
|
|
51
|
+
});
|
|
52
|
+
// 后台定时器:每 5s 尝试 drain(server 恢复后补发)
|
|
53
|
+
if (drainTimer)
|
|
54
|
+
clearInterval(drainTimer);
|
|
55
|
+
drainTimer = setInterval(() => {
|
|
56
|
+
if (queue && queue.size() > 0) {
|
|
57
|
+
queue.drain(transport).catch(() => { });
|
|
58
|
+
}
|
|
59
|
+
}, 5000);
|
|
60
|
+
drainTimer.unref?.();
|
|
61
|
+
if (options?.patchConsole !== false) {
|
|
62
|
+
logger.patchConsole();
|
|
63
|
+
}
|
|
64
|
+
if (options?.patchStreams !== false) {
|
|
65
|
+
logger.patchProcessStreams();
|
|
66
|
+
}
|
|
67
|
+
return logger;
|
|
68
|
+
}
|
|
69
|
+
export async function flushCliLogger() {
|
|
70
|
+
await logger?.flush();
|
|
71
|
+
if (queue && queue.size() > 0) {
|
|
72
|
+
const cfg = loadConfig();
|
|
73
|
+
const token = await getToken();
|
|
74
|
+
const transport = await createHttpTransport({
|
|
75
|
+
serverUrl: cfg.serverUrl.replace(/\/$/, ""),
|
|
76
|
+
headers: token ? { Authorization: `Bearer ${token}` } : {},
|
|
77
|
+
});
|
|
78
|
+
await queue.drain(transport).catch(() => { });
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
import { createNativeChecker } from "@chromepilot/kit";
|
|
5
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
6
|
+
function locateServerEntryDir() {
|
|
7
|
+
const candidates = [
|
|
8
|
+
path.resolve(__dirname, "../../server/dist"),
|
|
9
|
+
path.resolve(__dirname, "../../server/src"),
|
|
10
|
+
];
|
|
11
|
+
for (const dir of candidates) {
|
|
12
|
+
if (fs.existsSync(path.join(dir, "main.js")) || fs.existsSync(path.join(dir, "main.ts"))) {
|
|
13
|
+
return dir;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
const checker = createNativeChecker({
|
|
19
|
+
probeDir: () => locateServerEntryDir(),
|
|
20
|
+
skipDetail: "未找到 server 入口(packages/server/dist|src),跳过原生模块检查",
|
|
21
|
+
rebuildHint: (moduleName, compiledLabel) => `二选一:① 切回 ${compiledLabel} 的 node 再运行;② 用当前 node 重编译:pnpm rebuild -r ${moduleName}(重编后重启 server)`,
|
|
22
|
+
});
|
|
23
|
+
export const checkNativeModules = checker.checkNativeModules;
|
package/dist/sentry.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Sentry = void 0;
|
|
4
|
-
exports.initSentry = initSentry;
|
|
5
|
-
const kit_1 = require("@chromepilot/kit");
|
|
6
|
-
Object.defineProperty(exports, "Sentry", { enumerable: true, get: function () { return kit_1.Sentry; } });
|
|
1
|
+
import { initSentryFromEnv, Sentry } from '@chromepilot/kit';
|
|
7
2
|
/** Sentry 初始化:通用骨架来自 @chromepilot/kit(HM_ 前缀 env 读取) */
|
|
8
|
-
function initSentry() {
|
|
9
|
-
return
|
|
3
|
+
export function initSentry() {
|
|
4
|
+
return initSentryFromEnv('HM');
|
|
10
5
|
}
|
|
6
|
+
export { Sentry };
|
package/dist/updater.js
CHANGED
|
@@ -1,42 +1,3 @@
|
|
|
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.markUpdateChecked = exports.shouldCheckUpdate = exports.updateCheckIntervalMs = exports.npmSelfUpdate = exports.npmLatestVersion = void 0;
|
|
37
|
-
exports.computeDevLinked = computeDevLinked;
|
|
38
|
-
exports.isDevLinked = isDevLinked;
|
|
39
|
-
exports.maybeCliSelfUpdate = maybeCliSelfUpdate;
|
|
40
1
|
/**
|
|
41
2
|
* CLI 自动更新(使用态)— 通用实现来自 @chromepilot/kit createCliUpdater。
|
|
42
3
|
*
|
|
@@ -50,9 +11,11 @@ exports.maybeCliSelfUpdate = maybeCliSelfUpdate;
|
|
|
50
11
|
* - HUNTER_MATE_UPDATE_CHECK_INTERVAL_MS 覆盖节流间隔(默认 3600000)
|
|
51
12
|
* - HUNTER_MATE_DEV=1 强制视为 dev 模式(测试用)
|
|
52
13
|
*/
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
14
|
+
import * as path from 'path';
|
|
15
|
+
import { fileURLToPath } from 'node:url';
|
|
16
|
+
import { createCliUpdater } from '@chromepilot/kit';
|
|
17
|
+
import { readInstalledVersions } from './version.js';
|
|
18
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
56
19
|
const HOME = () => process.env.HUNTER_MATE_HOME || process.env.HOME || process.env.USERPROFILE || '.';
|
|
57
20
|
const ROOT = () => path.join(HOME(), '.hunter-mate');
|
|
58
21
|
/**
|
|
@@ -60,30 +23,30 @@ const ROOT = () => path.join(HOME(), '.hunter-mate');
|
|
|
60
23
|
* 包根路径含 /worktrees/ 段(hc-hw local worktree 布局)或 HUNTER_MATE_DEV=1。
|
|
61
24
|
* 注意:GitHub Release 二进制安装(~/.hunter-mate/bin)不属于 dev 模式。
|
|
62
25
|
*/
|
|
63
|
-
function computeDevLinked(pkgRoot) {
|
|
26
|
+
export function computeDevLinked(pkgRoot) {
|
|
64
27
|
if (process.env.HUNTER_MATE_DEV === '1')
|
|
65
28
|
return true;
|
|
66
29
|
return path.normalize(pkgRoot).includes(`${path.sep}worktrees${path.sep}`);
|
|
67
30
|
}
|
|
68
|
-
function isDevLinked() {
|
|
31
|
+
export function isDevLinked() {
|
|
69
32
|
return computeDevLinked(path.join(__dirname, '..'));
|
|
70
33
|
}
|
|
71
|
-
const updater =
|
|
34
|
+
const updater = createCliUpdater({
|
|
72
35
|
npmPackage: 'hunter-mate',
|
|
73
36
|
envPrefix: 'HUNTER_MATE',
|
|
74
37
|
stateDir: ROOT,
|
|
75
|
-
getInstalledVersion: () =>
|
|
38
|
+
getInstalledVersion: () => readInstalledVersions().cli,
|
|
76
39
|
isDev: isDevLinked,
|
|
77
40
|
});
|
|
78
41
|
// ---------------------------------------------------------------------------
|
|
79
42
|
// 兼容导出(调用方零改动)
|
|
80
43
|
// ---------------------------------------------------------------------------
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
44
|
+
export const npmLatestVersion = updater.npmLatestVersion;
|
|
45
|
+
export const npmSelfUpdate = updater.npmSelfUpdate;
|
|
46
|
+
export const updateCheckIntervalMs = updater.updateCheckIntervalMs;
|
|
47
|
+
export const shouldCheckUpdate = updater.shouldCheckUpdate;
|
|
48
|
+
export const markUpdateChecked = updater.markUpdateChecked;
|
|
86
49
|
/** preAction 集成入口:返回日志行数组,永不 throw */
|
|
87
|
-
async function maybeCliSelfUpdate() {
|
|
50
|
+
export async function maybeCliSelfUpdate() {
|
|
88
51
|
return updater.autoCliUpdate();
|
|
89
52
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result of an attempted graceful termination.
|
|
3
|
+
*
|
|
4
|
+
* - `graceful`: the target acknowledged the signal and exited on its own
|
|
5
|
+
* before the grace deadline.
|
|
6
|
+
* - `forced`: we had to escalate to `SIGKILL` / `taskkill /F` after the
|
|
7
|
+
* deadline elapsed.
|
|
8
|
+
* - `esrch`: no such PID; the process was already gone (success).
|
|
9
|
+
* - `error`: an unexpected failure happened (e.g. permission denied on
|
|
10
|
+
* `taskkill`). Caller should inspect stderr.
|
|
11
|
+
*/
|
|
12
|
+
export type KillOutcome = "graceful" | "forced" | "esrch" | "error";
|
|
13
|
+
/**
|
|
14
|
+
* Synchronous variant — useful for `stop` commands that cannot easily be
|
|
15
|
+
* turned into async functions. Returns `true` iff the first signal
|
|
16
|
+
* attempt appeared to succeed (status 0 from `taskkill`, or `SIGTERM`
|
|
17
|
+
* delivered without throwing on POSIX).
|
|
18
|
+
*/
|
|
19
|
+
export declare function killGracefullySync(pid: number): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Async graceful termination.
|
|
22
|
+
*
|
|
23
|
+
* On Windows, `process.kill(pid, 'SIGTERM')` is a no-op (Node only supports
|
|
24
|
+
* `SIGKILL`/`SIGINT`/`SIGQUIT`/etc as process-group signals on POSIX).
|
|
25
|
+
* `taskkill /pid <pid> /T` without `/F` sends WM_CLOSE to GUI children and
|
|
26
|
+
* CTRL_BREAK to console children — which NestJS + Next.js turn into a
|
|
27
|
+
* graceful shutdown through `enableShutdownHooks()`. If the process is
|
|
28
|
+
* still alive after `graceMs`, we escalate to `/F` (force).
|
|
29
|
+
*
|
|
30
|
+
* On POSIX we send SIGTERM, wait `graceMs`, then SIGKILL as a last resort.
|
|
31
|
+
*
|
|
32
|
+
* The polling interval (200ms) is intentionally short so the function
|
|
33
|
+
* returns promptly when the child exits but does not busy-spin.
|
|
34
|
+
*/
|
|
35
|
+
export declare function killGracefully(pid: number, graceMs?: number): Promise<KillOutcome>;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { spawnSync } from "node:child_process";
|
|
2
|
+
/**
|
|
3
|
+
* Synchronous variant — useful for `stop` commands that cannot easily be
|
|
4
|
+
* turned into async functions. Returns `true` iff the first signal
|
|
5
|
+
* attempt appeared to succeed (status 0 from `taskkill`, or `SIGTERM`
|
|
6
|
+
* delivered without throwing on POSIX).
|
|
7
|
+
*/
|
|
8
|
+
export function killGracefullySync(pid) {
|
|
9
|
+
if (process.platform === "win32") {
|
|
10
|
+
return (spawnSync("taskkill", ["/pid", String(pid), "/T"], { encoding: "utf-8" })
|
|
11
|
+
.status === 0);
|
|
12
|
+
}
|
|
13
|
+
try {
|
|
14
|
+
process.kill(pid, "SIGTERM");
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Async graceful termination.
|
|
23
|
+
*
|
|
24
|
+
* On Windows, `process.kill(pid, 'SIGTERM')` is a no-op (Node only supports
|
|
25
|
+
* `SIGKILL`/`SIGINT`/`SIGQUIT`/etc as process-group signals on POSIX).
|
|
26
|
+
* `taskkill /pid <pid> /T` without `/F` sends WM_CLOSE to GUI children and
|
|
27
|
+
* CTRL_BREAK to console children — which NestJS + Next.js turn into a
|
|
28
|
+
* graceful shutdown through `enableShutdownHooks()`. If the process is
|
|
29
|
+
* still alive after `graceMs`, we escalate to `/F` (force).
|
|
30
|
+
*
|
|
31
|
+
* On POSIX we send SIGTERM, wait `graceMs`, then SIGKILL as a last resort.
|
|
32
|
+
*
|
|
33
|
+
* The polling interval (200ms) is intentionally short so the function
|
|
34
|
+
* returns promptly when the child exits but does not busy-spin.
|
|
35
|
+
*/
|
|
36
|
+
export async function killGracefully(pid, graceMs = 5000) {
|
|
37
|
+
const deadline = Date.now() + graceMs;
|
|
38
|
+
const pollGone = async () => {
|
|
39
|
+
while (Date.now() < deadline) {
|
|
40
|
+
await new Promise((r) => setTimeout(r, 200));
|
|
41
|
+
try {
|
|
42
|
+
process.kill(pid, 0);
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
};
|
|
50
|
+
if (process.platform === "win32") {
|
|
51
|
+
const r1 = spawnSync("taskkill", ["/pid", String(pid), "/T"], {
|
|
52
|
+
encoding: "utf-8",
|
|
53
|
+
});
|
|
54
|
+
if (r1.status === 0)
|
|
55
|
+
return "graceful";
|
|
56
|
+
const out = `${r1.stdout ?? ""}${r1.stderr ?? ""}`;
|
|
57
|
+
if (/not found|找不到|0x.*找不到/i.test(out))
|
|
58
|
+
return "esrch";
|
|
59
|
+
if (await pollGone())
|
|
60
|
+
return "graceful";
|
|
61
|
+
const r2 = spawnSync("taskkill", ["/pid", String(pid), "/T", "/F"], { encoding: "utf-8" });
|
|
62
|
+
return r2.status === 0 ? "forced" : "error";
|
|
63
|
+
}
|
|
64
|
+
// POSIX path
|
|
65
|
+
try {
|
|
66
|
+
process.kill(pid, "SIGTERM");
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
const e = err;
|
|
70
|
+
return e.code === "ESRCH" ? "esrch" : "error";
|
|
71
|
+
}
|
|
72
|
+
if (await pollGone())
|
|
73
|
+
return "graceful";
|
|
74
|
+
try {
|
|
75
|
+
process.kill(pid, "SIGKILL");
|
|
76
|
+
return "forced";
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return "error";
|
|
80
|
+
}
|
|
81
|
+
}
|