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
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
var TelemetryService_1;
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
exports.TelemetryService = void 0;
|
|
17
|
+
const common_1 = require("@nestjs/common");
|
|
18
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
19
|
+
const typeorm_2 = require("typeorm");
|
|
20
|
+
const config_1 = require("@nestjs/config");
|
|
21
|
+
const os = require("os");
|
|
22
|
+
const parse_log_entity_1 = require("../extraction/entities/parse-log.entity");
|
|
23
|
+
let TelemetryService = TelemetryService_1 = class TelemetryService {
|
|
24
|
+
parseLogRepo;
|
|
25
|
+
config;
|
|
26
|
+
logger = new common_1.Logger(TelemetryService_1.name);
|
|
27
|
+
reporting = false;
|
|
28
|
+
timer;
|
|
29
|
+
constructor(parseLogRepo, config) {
|
|
30
|
+
this.parseLogRepo = parseLogRepo;
|
|
31
|
+
this.config = config;
|
|
32
|
+
}
|
|
33
|
+
onApplicationBootstrap() {
|
|
34
|
+
if (!this.url) {
|
|
35
|
+
this.logger.log('HM_TELEMETRY_URL 未配置,parse_log 上报停用(纯本地模式)');
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
setTimeout(() => this.reportUnreported(), 30_000);
|
|
39
|
+
this.timer = setInterval(() => this.reportUnreported(), 5 * 60_000);
|
|
40
|
+
this.timer.unref?.();
|
|
41
|
+
}
|
|
42
|
+
get url() {
|
|
43
|
+
const base = this.config.get('HM_TELEMETRY_URL');
|
|
44
|
+
return base ? `${base.replace(/\/$/, '')}/hunter-mate/telemetry/parse-log` : undefined;
|
|
45
|
+
}
|
|
46
|
+
async reportUnreported() {
|
|
47
|
+
const endpoint = this.url;
|
|
48
|
+
if (!endpoint || this.reporting)
|
|
49
|
+
return { skipped: true };
|
|
50
|
+
this.reporting = true;
|
|
51
|
+
try {
|
|
52
|
+
const rows = await this.parseLogRepo.find({
|
|
53
|
+
where: { reportedAt: (0, typeorm_2.IsNull)() },
|
|
54
|
+
order: { id: 'ASC' },
|
|
55
|
+
take: 200,
|
|
56
|
+
});
|
|
57
|
+
if (!rows.length)
|
|
58
|
+
return { reported: 0 };
|
|
59
|
+
const items = rows.map((r) => ({
|
|
60
|
+
localId: r.id,
|
|
61
|
+
sessionId: r.sessionId,
|
|
62
|
+
sourceUrl: r.sourceUrl,
|
|
63
|
+
domain: r.domain,
|
|
64
|
+
pageClass: r.pageClass,
|
|
65
|
+
matchedRuleIds: r.matchedRuleIds || [],
|
|
66
|
+
extractedFields: this.sanitize(r.extractedFields),
|
|
67
|
+
missingFields: r.missingFields || [],
|
|
68
|
+
hasSnapshot: r.hasSnapshot,
|
|
69
|
+
status: r.status,
|
|
70
|
+
entityId: r.entityId ?? null,
|
|
71
|
+
localCreatedAt: r.createdAt?.toISOString(),
|
|
72
|
+
}));
|
|
73
|
+
const res = await fetch(endpoint, {
|
|
74
|
+
method: 'POST',
|
|
75
|
+
headers: {
|
|
76
|
+
'Content-Type': 'application/json',
|
|
77
|
+
'X-Api-Key': this.config.get('HM_TELEMETRY_API_KEY') || '',
|
|
78
|
+
},
|
|
79
|
+
body: JSON.stringify({ clientId: this.clientId, items }),
|
|
80
|
+
});
|
|
81
|
+
if (!res.ok)
|
|
82
|
+
throw new Error(`HTTP ${res.status}`);
|
|
83
|
+
await this.parseLogRepo.update({ id: (0, typeorm_2.In)(rows.map((r) => r.id)) }, { reportedAt: new Date() });
|
|
84
|
+
this.logger.log(`telemetry reported ${rows.length} parse_log rows`);
|
|
85
|
+
return { reported: rows.length };
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
this.logger.warn(`telemetry report failed: ${err.message}`);
|
|
89
|
+
return { error: err.message };
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
this.reporting = false;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
get clientId() {
|
|
96
|
+
return `${os.userInfo().username}@${os.hostname()}`.slice(0, 64);
|
|
97
|
+
}
|
|
98
|
+
sanitize(fields) {
|
|
99
|
+
const out = {};
|
|
100
|
+
for (const [k, v] of Object.entries(fields || {})) {
|
|
101
|
+
if (v == null)
|
|
102
|
+
continue;
|
|
103
|
+
const s = String(v);
|
|
104
|
+
out[k] = s.length > 200 ? s.slice(0, 200) + '…' : s;
|
|
105
|
+
}
|
|
106
|
+
return out;
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
exports.TelemetryService = TelemetryService;
|
|
110
|
+
exports.TelemetryService = TelemetryService = TelemetryService_1 = __decorate([
|
|
111
|
+
(0, common_1.Injectable)(),
|
|
112
|
+
__param(0, (0, typeorm_1.InjectRepository)(parse_log_entity_1.ParseLog)),
|
|
113
|
+
__metadata("design:paramtypes", [typeorm_2.Repository,
|
|
114
|
+
config_1.ConfigService])
|
|
115
|
+
], TelemetryService);
|
|
116
|
+
//# sourceMappingURL=telemetry.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.service.js","sourceRoot":"","sources":["../../src/telemetry/telemetry.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface BundledAssets {
|
|
2
|
+
extensionDir: string;
|
|
3
|
+
serverEntry: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Locate the bundled server + extension assets.
|
|
7
|
+
*
|
|
8
|
+
* Resolution order (first hit wins):
|
|
9
|
+
* 1) npm-installed mode:
|
|
10
|
+
* - `<cliDir>/assets/server/main.js`
|
|
11
|
+
* - `<cliDir>/assets/extension/manifest.json`
|
|
12
|
+
* produced by `scripts/postbuild-assets.mjs` at build time.
|
|
13
|
+
* 2) monorepo dev mode (worktree layout):
|
|
14
|
+
* - `../../../server/dist/main.js` next to `packages/cli/dist/index.js`
|
|
15
|
+
* - `../../../extension/dist/manifest.json`
|
|
16
|
+
*
|
|
17
|
+
* Returns null if neither layout finds both pieces. Callers must show a
|
|
18
|
+
* clear "this npm package is missing server/extension assets — contact
|
|
19
|
+
* Hiredchina IT" message instead of generic "not found".
|
|
20
|
+
*/
|
|
21
|
+
export declare function findBundledAssets(cliDir?: string): BundledAssets | null;
|
|
22
|
+
export declare function findExtensionParentDir(assets?: BundledAssets | null): string | null;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { fileURLToPath } from "node:url";
|
|
4
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
5
|
+
/**
|
|
6
|
+
* Locate the bundled server + extension assets.
|
|
7
|
+
*
|
|
8
|
+
* Resolution order (first hit wins):
|
|
9
|
+
* 1) npm-installed mode:
|
|
10
|
+
* - `<cliDir>/assets/server/main.js`
|
|
11
|
+
* - `<cliDir>/assets/extension/manifest.json`
|
|
12
|
+
* produced by `scripts/postbuild-assets.mjs` at build time.
|
|
13
|
+
* 2) monorepo dev mode (worktree layout):
|
|
14
|
+
* - `../../../server/dist/main.js` next to `packages/cli/dist/index.js`
|
|
15
|
+
* - `../../../extension/dist/manifest.json`
|
|
16
|
+
*
|
|
17
|
+
* Returns null if neither layout finds both pieces. Callers must show a
|
|
18
|
+
* clear "this npm package is missing server/extension assets — contact
|
|
19
|
+
* Hiredchina IT" message instead of generic "not found".
|
|
20
|
+
*/
|
|
21
|
+
export function findBundledAssets(cliDir) {
|
|
22
|
+
const baseDir = cliDir ?? findCliDir();
|
|
23
|
+
// (1) npm-installed mode
|
|
24
|
+
const installedServerEntry = path.join(baseDir, "assets", "server", "main.js");
|
|
25
|
+
const installedExtensionDir = path.join(baseDir, "assets", "extension");
|
|
26
|
+
if (fs.existsSync(installedServerEntry) &&
|
|
27
|
+
fs.existsSync(path.join(installedExtensionDir, "manifest.json"))) {
|
|
28
|
+
return {
|
|
29
|
+
serverEntry: installedServerEntry,
|
|
30
|
+
extensionDir: installedExtensionDir,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
// (2) monorepo dev mode (CLI lives in packages/cli/dist)
|
|
34
|
+
const devServerEntry = path.resolve(baseDir, "..", "..", "..", "server", "dist", "main.js");
|
|
35
|
+
const devExtensionDir = path.resolve(baseDir, "..", "..", "..", "extension", "dist");
|
|
36
|
+
if (fs.existsSync(devServerEntry) &&
|
|
37
|
+
fs.existsSync(path.join(devExtensionDir, "manifest.json"))) {
|
|
38
|
+
return {
|
|
39
|
+
serverEntry: devServerEntry,
|
|
40
|
+
extensionDir: devExtensionDir,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
// (3) monorepo dev mode via import.meta.url (more reliable for ts-node)
|
|
44
|
+
try {
|
|
45
|
+
const here = path.dirname(fileURLToPath(import.meta.url));
|
|
46
|
+
const dev2ServerEntry = path.resolve(here, "..", "..", "..", "server", "dist", "main.js");
|
|
47
|
+
const dev2ExtensionDir = path.resolve(here, "..", "..", "..", "extension", "dist");
|
|
48
|
+
if (fs.existsSync(dev2ServerEntry) &&
|
|
49
|
+
fs.existsSync(path.join(dev2ExtensionDir, "manifest.json"))) {
|
|
50
|
+
return {
|
|
51
|
+
serverEntry: dev2ServerEntry,
|
|
52
|
+
extensionDir: dev2ExtensionDir,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
/* import.meta.url may be unavailable in CJS bundles; fall through */
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Best-effort CLI directory resolution. We prefer `import.meta.url` because
|
|
63
|
+
* on Windows the npm `.cmd` shim sets argv[1] to the wrapper file, not the
|
|
64
|
+
* real `.js` entry. CJS fallback uses `__dirname` (reliable in bundled
|
|
65
|
+
* CJS output).
|
|
66
|
+
*/
|
|
67
|
+
function findCliDir() {
|
|
68
|
+
try {
|
|
69
|
+
return path.dirname(fileURLToPath(import.meta.url));
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return __dirname;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export function findExtensionParentDir(assets) {
|
|
76
|
+
const resolved = assets ?? findBundledAssets();
|
|
77
|
+
if (!resolved)
|
|
78
|
+
return null;
|
|
79
|
+
return path.dirname(resolved.extensionDir);
|
|
80
|
+
}
|
package/dist/cache/db.js
CHANGED
|
@@ -1,63 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.ensureCacheDir = ensureCacheDir;
|
|
40
|
-
exports.getDb = getDb;
|
|
41
|
-
exports.saveJobCase = saveJobCase;
|
|
42
|
-
exports.listJobCases = listJobCases;
|
|
43
|
-
exports.saveCommunicationRecord = saveCommunicationRecord;
|
|
44
|
-
exports.listCommunicationRecords = listCommunicationRecords;
|
|
45
|
-
const fs = __importStar(require("fs"));
|
|
46
|
-
const path = __importStar(require("path"));
|
|
47
|
-
const better_sqlite3_1 = __importDefault(require("better-sqlite3"));
|
|
1
|
+
import * as fs from 'fs';
|
|
2
|
+
import * as path from 'path';
|
|
3
|
+
import Database from 'better-sqlite3';
|
|
48
4
|
const HOME = process.env.HUNTER_MATE_HOME || process.env.HOME || process.env.USERPROFILE || '.';
|
|
49
5
|
const CACHE_DIR = path.join(HOME, '.hunter-mate');
|
|
50
6
|
const DB_FILE = path.join(CACHE_DIR, 'cache.db');
|
|
51
7
|
let db = null;
|
|
52
|
-
function ensureCacheDir() {
|
|
8
|
+
export function ensureCacheDir() {
|
|
53
9
|
if (!fs.existsSync(CACHE_DIR)) {
|
|
54
10
|
fs.mkdirSync(CACHE_DIR, { recursive: true });
|
|
55
11
|
}
|
|
56
12
|
}
|
|
57
|
-
function getDb() {
|
|
13
|
+
export function getDb() {
|
|
58
14
|
if (!db) {
|
|
59
15
|
ensureCacheDir();
|
|
60
|
-
db = new
|
|
16
|
+
db = new Database(DB_FILE);
|
|
61
17
|
initSchema(db);
|
|
62
18
|
}
|
|
63
19
|
return db;
|
|
@@ -83,21 +39,21 @@ function initSchema(db) {
|
|
|
83
39
|
);
|
|
84
40
|
`);
|
|
85
41
|
}
|
|
86
|
-
function saveJobCase(jobCase) {
|
|
42
|
+
export function saveJobCase(jobCase) {
|
|
87
43
|
const stmt = getDb().prepare('INSERT OR REPLACE INTO job_cases (id, payload, created_at) VALUES (?, ?, ?)');
|
|
88
44
|
stmt.run(jobCase.id, JSON.stringify(jobCase), jobCase.createdAt);
|
|
89
45
|
}
|
|
90
|
-
function listJobCases() {
|
|
46
|
+
export function listJobCases() {
|
|
91
47
|
return getDb()
|
|
92
48
|
.prepare('SELECT payload FROM job_cases ORDER BY created_at DESC')
|
|
93
49
|
.all()
|
|
94
50
|
.map((row) => JSON.parse(row.payload));
|
|
95
51
|
}
|
|
96
|
-
function saveCommunicationRecord(record) {
|
|
52
|
+
export function saveCommunicationRecord(record) {
|
|
97
53
|
const stmt = getDb().prepare('INSERT OR REPLACE INTO communication_records (id, payload, created_at) VALUES (?, ?, ?)');
|
|
98
54
|
stmt.run(String(record.id), JSON.stringify(record), Date.parse(record.createdAt) || Date.now());
|
|
99
55
|
}
|
|
100
|
-
function listCommunicationRecords() {
|
|
56
|
+
export function listCommunicationRecords() {
|
|
101
57
|
return getDb()
|
|
102
58
|
.prepare('SELECT payload FROM communication_records ORDER BY created_at DESC')
|
|
103
59
|
.all()
|
package/dist/commands/addons.js
CHANGED
|
@@ -1,42 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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.externalCommand = exports.skillCommand = exports.pluginCommand = void 0;
|
|
37
|
-
const commander_1 = require("commander");
|
|
38
|
-
const fs = __importStar(require("fs"));
|
|
39
|
-
const path = __importStar(require("path"));
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import * as fs from 'fs';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
import { spawnSyncSafe } from '../utils/spawn.js';
|
|
5
|
+
import { getCliLogger } from '../logger.js';
|
|
40
6
|
function formatOpt(cmd) {
|
|
41
7
|
return cmd.option('-f, --format <format>', '输出格式: table|json|yaml|md|csv', 'json');
|
|
42
8
|
}
|
|
@@ -75,13 +41,14 @@ const writeJson = (f, v) => fs.writeFileSync(f, JSON.stringify(v, null, 2));
|
|
|
75
41
|
// ---------------------------------------------------------------------------
|
|
76
42
|
// plugin (对应 chromepilot plugin)
|
|
77
43
|
// ---------------------------------------------------------------------------
|
|
78
|
-
|
|
44
|
+
export const pluginCommand = formatOpt(new Command('plugin')
|
|
79
45
|
.description('插件管理(对应 chromepilot plugin): list|install|update|uninstall|create')
|
|
80
46
|
.argument('[action]', '操作 (默认 list)', 'list')
|
|
81
47
|
.argument('[arg]', 'install:source / uninstall|update:name / create:name')).action(async (action, arg, opts) => {
|
|
82
48
|
ensure(PLUGINS_DIR());
|
|
83
49
|
// install/update/uninstall 后: server 在跑则自动热重载插件(磁盘 vs 运行版本对比)
|
|
84
|
-
const syncPlugins = () =>
|
|
50
|
+
const syncPlugins = () => import('../version.js')
|
|
51
|
+
.then(({ ensureRuntimeConsistency }) => ensureRuntimeConsistency({ force: true, verbose: true }))
|
|
85
52
|
.catch(() => { });
|
|
86
53
|
switch (action) {
|
|
87
54
|
case 'list': {
|
|
@@ -103,12 +70,12 @@ exports.pluginCommand = formatOpt(new commander_1.Command('plugin')
|
|
|
103
70
|
}
|
|
104
71
|
case 'create': {
|
|
105
72
|
if (!arg) {
|
|
106
|
-
|
|
73
|
+
getCliLogger().error('addons:plugin-create-missing-arg', { hint: 'plugin create 需要 name' });
|
|
107
74
|
process.exit(1);
|
|
108
75
|
}
|
|
109
76
|
const dir = path.join(PLUGINS_DIR(), arg);
|
|
110
77
|
if (fs.existsSync(dir)) {
|
|
111
|
-
|
|
78
|
+
getCliLogger().error('addons:plugin-already-exists', { hint: `plugin ${arg} already exists: ${dir}` });
|
|
112
79
|
process.exit(1);
|
|
113
80
|
}
|
|
114
81
|
ensure(dir);
|
|
@@ -128,7 +95,7 @@ exports.pluginCommand = formatOpt(new commander_1.Command('plugin')
|
|
|
128
95
|
}
|
|
129
96
|
case 'install': {
|
|
130
97
|
if (!arg) {
|
|
131
|
-
|
|
98
|
+
getCliLogger().error('addons:plugin-install-missing-arg', { hint: 'plugin install 需要 source(本地路径或 npm 包名)' });
|
|
132
99
|
process.exit(1);
|
|
133
100
|
}
|
|
134
101
|
// MVP: 本地路径复制;npm 包需单独调用 npm install --prefix
|
|
@@ -146,7 +113,7 @@ exports.pluginCommand = formatOpt(new commander_1.Command('plugin')
|
|
|
146
113
|
}
|
|
147
114
|
case 'update': {
|
|
148
115
|
if (!arg) {
|
|
149
|
-
|
|
116
|
+
getCliLogger().error('addons:plugin-update-missing-arg', { hint: 'plugin update 需要 name' });
|
|
150
117
|
process.exit(1);
|
|
151
118
|
}
|
|
152
119
|
const dir = path.join(PLUGINS_DIR(), arg);
|
|
@@ -155,18 +122,19 @@ exports.pluginCommand = formatOpt(new commander_1.Command('plugin')
|
|
|
155
122
|
return;
|
|
156
123
|
}
|
|
157
124
|
// 真实更新: git 仓 → git pull;npm 包 → npm update;完成后触发 server 端热重载
|
|
158
|
-
|
|
125
|
+
// spawnSyncSafe 跨平台处理:Windows 自动 shell:true + PATHEXT 解析(.cmd/.bat/.exe)
|
|
126
|
+
// POSIX 行为零变化(不依赖 shell)
|
|
159
127
|
let updated = false;
|
|
160
128
|
let detail = '';
|
|
161
129
|
if (fs.existsSync(path.join(dir, '.git'))) {
|
|
162
|
-
const r =
|
|
130
|
+
const r = spawnSyncSafe('git', ['-C', dir, 'pull', '--ff-only'], { encoding: 'utf-8', timeout: 60_000 });
|
|
163
131
|
updated = r.status === 0;
|
|
164
|
-
detail = r.stdout
|
|
132
|
+
detail = String(r.stdout ?? '').trim() || String(r.stderr ?? '').trim() || '';
|
|
165
133
|
}
|
|
166
134
|
else if (fs.existsSync(path.join(dir, 'package.json')) && fs.existsSync(path.join(dir, 'node_modules'))) {
|
|
167
|
-
const r =
|
|
135
|
+
const r = spawnSyncSafe('npm', ['update', '--prefix', dir], { encoding: 'utf-8', timeout: 120_000 });
|
|
168
136
|
updated = r.status === 0;
|
|
169
|
-
detail = r.stdout
|
|
137
|
+
detail = String(r.stdout ?? '').trim() || String(r.stderr ?? '').trim() || '';
|
|
170
138
|
}
|
|
171
139
|
else {
|
|
172
140
|
detail = `非 git 仓且非 npm 安装目录,请手动更新: ${dir}`;
|
|
@@ -178,7 +146,7 @@ exports.pluginCommand = formatOpt(new commander_1.Command('plugin')
|
|
|
178
146
|
}
|
|
179
147
|
case 'uninstall': {
|
|
180
148
|
if (!arg) {
|
|
181
|
-
|
|
149
|
+
getCliLogger().error('addons:plugin-uninstall-missing-arg', { hint: 'plugin uninstall 需要 name' });
|
|
182
150
|
process.exit(1);
|
|
183
151
|
}
|
|
184
152
|
const dir = path.join(PLUGINS_DIR(), arg);
|
|
@@ -192,14 +160,16 @@ exports.pluginCommand = formatOpt(new commander_1.Command('plugin')
|
|
|
192
160
|
return;
|
|
193
161
|
}
|
|
194
162
|
default:
|
|
195
|
-
|
|
163
|
+
getCliLogger().error('addons:plugin-unknown-action', {
|
|
164
|
+
hint: `plugin: unknown action ${action}(支持: list|install|update|uninstall|create)`,
|
|
165
|
+
});
|
|
196
166
|
process.exit(1);
|
|
197
167
|
}
|
|
198
168
|
});
|
|
199
169
|
// ---------------------------------------------------------------------------
|
|
200
170
|
// skill (对应 chromepilot skill)
|
|
201
171
|
// ---------------------------------------------------------------------------
|
|
202
|
-
|
|
172
|
+
export const skillCommand = formatOpt(new Command('skill')
|
|
203
173
|
.description('本地 CLI 级 skill 管理(对应 chromepilot skill): list|show|path|create|remove|edit')
|
|
204
174
|
.argument('[action]', '操作 (默认 list)', 'list')
|
|
205
175
|
.argument('[name]', 'skill 名称')).action(async (action, name, opts) => {
|
|
@@ -216,7 +186,7 @@ exports.skillCommand = formatOpt(new commander_1.Command('skill')
|
|
|
216
186
|
}
|
|
217
187
|
case 'path': {
|
|
218
188
|
if (!name) {
|
|
219
|
-
|
|
189
|
+
getCliLogger().error('addons:skill-path-missing-name', { hint: 'skill path 需要 name' });
|
|
220
190
|
process.exit(1);
|
|
221
191
|
}
|
|
222
192
|
const p = path.join(SKILLS_DIR(), name);
|
|
@@ -225,7 +195,7 @@ exports.skillCommand = formatOpt(new commander_1.Command('skill')
|
|
|
225
195
|
}
|
|
226
196
|
case 'show': {
|
|
227
197
|
if (!name) {
|
|
228
|
-
|
|
198
|
+
getCliLogger().error('addons:skill-show-missing-name', { hint: 'skill show 需要 name' });
|
|
229
199
|
process.exit(1);
|
|
230
200
|
}
|
|
231
201
|
const sm = path.join(SKILLS_DIR(), name, 'SKILL.md');
|
|
@@ -238,12 +208,12 @@ exports.skillCommand = formatOpt(new commander_1.Command('skill')
|
|
|
238
208
|
}
|
|
239
209
|
case 'create': {
|
|
240
210
|
if (!name) {
|
|
241
|
-
|
|
211
|
+
getCliLogger().error('addons:skill-create-missing-name', { hint: 'skill create 需要 name' });
|
|
242
212
|
process.exit(1);
|
|
243
213
|
}
|
|
244
214
|
const dir = path.join(SKILLS_DIR(), name);
|
|
245
215
|
if (fs.existsSync(dir)) {
|
|
246
|
-
|
|
216
|
+
getCliLogger().error('addons:skill-already-exists', { hint: `skill ${name} 已存在` });
|
|
247
217
|
process.exit(1);
|
|
248
218
|
}
|
|
249
219
|
ensure(dir);
|
|
@@ -268,7 +238,7 @@ exports.skillCommand = formatOpt(new commander_1.Command('skill')
|
|
|
268
238
|
}
|
|
269
239
|
case 'remove': {
|
|
270
240
|
if (!name) {
|
|
271
|
-
|
|
241
|
+
getCliLogger().error('addons:skill-remove-missing-name', { hint: 'skill remove 需要 name' });
|
|
272
242
|
process.exit(1);
|
|
273
243
|
}
|
|
274
244
|
const dir = path.join(SKILLS_DIR(), name);
|
|
@@ -282,29 +252,33 @@ exports.skillCommand = formatOpt(new commander_1.Command('skill')
|
|
|
282
252
|
}
|
|
283
253
|
case 'edit': {
|
|
284
254
|
if (!name) {
|
|
285
|
-
|
|
255
|
+
getCliLogger().error('addons:skill-edit-missing-name', { hint: 'skill edit 需要 name' });
|
|
286
256
|
process.exit(1);
|
|
287
257
|
}
|
|
288
258
|
const sm = path.join(SKILLS_DIR(), name, 'SKILL.md');
|
|
289
259
|
try {
|
|
290
|
-
const { default: open } = await
|
|
260
|
+
const { default: open } = await import('open');
|
|
291
261
|
await open(sm);
|
|
292
262
|
printResult({ ok: true, opening: sm }, opts.format);
|
|
293
263
|
}
|
|
294
264
|
catch (e) {
|
|
295
|
-
|
|
265
|
+
getCliLogger().warn('addons:skill-edit-open-failed', {
|
|
266
|
+
hint: `open not available: ${e.message}. 手动编辑: ${sm}`,
|
|
267
|
+
});
|
|
296
268
|
}
|
|
297
269
|
return;
|
|
298
270
|
}
|
|
299
271
|
default:
|
|
300
|
-
|
|
272
|
+
getCliLogger().error('addons:skill-unknown-action', {
|
|
273
|
+
hint: `skill: unknown action ${action}(支持: list|install|update|uninstall|create)`,
|
|
274
|
+
});
|
|
301
275
|
process.exit(1);
|
|
302
276
|
}
|
|
303
277
|
});
|
|
304
278
|
// ---------------------------------------------------------------------------
|
|
305
279
|
// external (对应 chromepilot external)
|
|
306
280
|
// ---------------------------------------------------------------------------
|
|
307
|
-
|
|
281
|
+
export const externalCommand = formatOpt(new Command('external')
|
|
308
282
|
.description('外部 CLI 透传(对应 chromepilot external): list|register|install|run|unregister')
|
|
309
283
|
.argument('[action]', '操作 (默认 list)', 'list')
|
|
310
284
|
.argument('[name]', 'CLI 名称'))
|
|
@@ -319,7 +293,7 @@ exports.externalCommand = formatOpt(new commander_1.Command('external')
|
|
|
319
293
|
return;
|
|
320
294
|
case 'register': {
|
|
321
295
|
if (!name || !opts.binary) {
|
|
322
|
-
|
|
296
|
+
getCliLogger().error('addons:external-register-missing-arg', { hint: 'external register 需要 name + --binary <path>' });
|
|
323
297
|
process.exit(1);
|
|
324
298
|
}
|
|
325
299
|
const e = { name, binary: opts.binary, description: opts.desc, registeredAt: new Date().toISOString() };
|
|
@@ -330,7 +304,7 @@ exports.externalCommand = formatOpt(new commander_1.Command('external')
|
|
|
330
304
|
}
|
|
331
305
|
case 'unregister': {
|
|
332
306
|
if (!name) {
|
|
333
|
-
|
|
307
|
+
getCliLogger().error('addons:external-unregister-missing-name', { hint: 'external unregister 需要 name' });
|
|
334
308
|
process.exit(1);
|
|
335
309
|
}
|
|
336
310
|
store.entries = store.entries.filter((x) => x.name !== name);
|
|
@@ -340,12 +314,12 @@ exports.externalCommand = formatOpt(new commander_1.Command('external')
|
|
|
340
314
|
}
|
|
341
315
|
case 'install': {
|
|
342
316
|
if (!name) {
|
|
343
|
-
|
|
317
|
+
getCliLogger().error('addons:external-install-missing-name', { hint: 'external install 需要 name(已注册的 CLI)' });
|
|
344
318
|
process.exit(1);
|
|
345
319
|
}
|
|
346
320
|
const e = store.entries.find((x) => x.name === name);
|
|
347
321
|
if (!e) {
|
|
348
|
-
|
|
322
|
+
getCliLogger().error('addons:external-not-registered', { hint: `external not registered: ${name}` });
|
|
349
323
|
process.exit(1);
|
|
350
324
|
}
|
|
351
325
|
// 校验可执行权限/存在
|
|
@@ -361,17 +335,18 @@ exports.externalCommand = formatOpt(new commander_1.Command('external')
|
|
|
361
335
|
}
|
|
362
336
|
case 'run': {
|
|
363
337
|
if (!name) {
|
|
364
|
-
|
|
338
|
+
getCliLogger().error('addons:external-run-missing-name', { hint: 'external run 需要 name' });
|
|
365
339
|
process.exit(1);
|
|
366
340
|
}
|
|
367
341
|
const e = store.entries.find((x) => x.name === name);
|
|
368
342
|
if (!e) {
|
|
369
|
-
|
|
343
|
+
getCliLogger().error('addons:external-not-registered', { hint: `external not registered: ${name}. 先 hunter-mate external register ${name} --binary <path>` });
|
|
370
344
|
process.exit(1);
|
|
371
345
|
}
|
|
372
|
-
|
|
346
|
+
// spawnSyncSafe 在 Windows 上自动开 shell:true 让 .cmd/.bat 可执行;
|
|
347
|
+
// POSIX 上 shell:false 与原行为一致。
|
|
373
348
|
const extraArgs = process.argv.slice(process.argv.indexOf(name) + 1);
|
|
374
|
-
const r =
|
|
349
|
+
const r = spawnSyncSafe(e.binary, extraArgs, { stdio: 'inherit' });
|
|
375
350
|
process.exit(r.status ?? 0);
|
|
376
351
|
}
|
|
377
352
|
}
|