careermate 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +14 -10
  3. package/THIRD_PARTY_NOTICES.md +15 -0
  4. package/apps/mcp/src/index.ts +4 -5
  5. package/apps/web/demo/demo-shim.js +536 -0
  6. package/apps/web/demo/demo.css +75 -0
  7. package/apps/web/demo/seed.js +269 -0
  8. package/apps/web/public/app.js +34 -2
  9. package/apps/web/public/index.html +10 -2
  10. package/apps/web/public/lib.js +134 -22
  11. package/apps/web/public/pages/applications.js +2 -9
  12. package/apps/web/public/pages/documents.js +73 -52
  13. package/apps/web/public/pages/home.js +16 -18
  14. package/apps/web/public/pages/interview.js +9 -12
  15. package/apps/web/public/pages/jobs.js +40 -41
  16. package/apps/web/public/pages/profile.js +69 -89
  17. package/apps/web/public/pages/settings.js +15 -10
  18. package/apps/web/public/styles.css +63 -4
  19. package/apps/web/src/http.ts +31 -4
  20. package/apps/web/src/info.ts +3 -3
  21. package/apps/web/src/routes.ts +2 -1
  22. package/apps/web/src/server.ts +1 -4
  23. package/dist/doctor.mjs +72715 -697
  24. package/dist/install-page/analytics.js +97 -0
  25. package/dist/install-page/index.html +94 -112
  26. package/dist/install-page/landing.js +54 -0
  27. package/dist/install-page/og.png +0 -0
  28. package/dist/install-page/robots.txt +4 -0
  29. package/dist/install-page/sitemap.xml +21 -0
  30. package/dist/install-page/start.html +26 -46
  31. package/dist/install-page/style.css +105 -37
  32. package/dist/mcp.mjs +74044 -2062
  33. package/dist/migrate.mjs +110 -90
  34. package/dist/pdf.worker.min.mjs +28 -0
  35. package/dist/public/app.js +34 -2
  36. package/dist/public/index.html +10 -2
  37. package/dist/public/lib.js +134 -22
  38. package/dist/public/pages/applications.js +2 -9
  39. package/dist/public/pages/documents.js +73 -52
  40. package/dist/public/pages/home.js +16 -18
  41. package/dist/public/pages/interview.js +9 -12
  42. package/dist/public/pages/jobs.js +40 -41
  43. package/dist/public/pages/profile.js +69 -89
  44. package/dist/public/pages/settings.js +15 -10
  45. package/dist/public/styles.css +63 -4
  46. package/dist/web.mjs +39740 -326
  47. package/package.json +6 -3
  48. package/packages/db/src/paths.ts +11 -0
  49. package/packages/db/src/repositories.ts +18 -1
  50. package/packages/mcp-tools/src/bridge.ts +55 -32
  51. package/packages/mcp-tools/src/index.ts +9 -0
  52. package/packages/mcp-tools/src/tools.ts +198 -75
  53. package/packages/mcp-tools/src/update.ts +330 -0
  54. package/packages/parsers/src/documents.ts +533 -0
  55. package/packages/parsers/src/index.ts +8 -5
  56. package/packages/prompts/src/onboarding.ts +2 -2
  57. package/packages/shared/src/build-info.ts +22 -0
  58. package/packages/shared/src/index.ts +1 -0
  59. package/packages/shared/src/schemas.ts +138 -83
  60. package/packages/workflows/src/definitions.ts +4 -2
  61. package/scripts/build-demo.mjs +130 -0
  62. package/scripts/build-dist.mjs +26 -1
  63. package/scripts/doctor.ts +16 -3
  64. package/scripts/gen-og.mjs +1 -1
  65. package/scripts/test.ts +25 -0
  66. package/scripts/ui-smoke.ts +32 -4
  67. package/docs/ARCHITECTURE.md +0 -208
  68. package/docs/CHANGES_V1.md +0 -103
  69. package/docs/DATA_MODEL.md +0 -460
  70. package/docs/DECISIONS.md +0 -277
  71. package/docs/DEMO.md +0 -242
  72. package/docs/MCP_TOOLS.md +0 -252
  73. package/docs/ROADMAP.md +0 -134
  74. package/docs/RUNTIME_DISTRIBUTION_RESEARCH.md +0 -135
  75. package/docs/START_WORKFLOW.md +0 -131
  76. package/docs/SUPPORTED_AI_APPS.md +0 -112
  77. package/docs/TODO.md +0 -57
  78. package/docs/UX_NOTES.md +0 -247
  79. package/docs/WORKFLOWS.md +0 -200
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 CareerMate
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  ## 주요 기능
28
28
 
29
- - **AI와 대화로 모든 작업** — MCP 도구 24개로 온보딩·프로필·이력서·자소서·공고·핏 분석·지원 상태·면접 준비·AI 티 안 나는 글쓰기까지 처리.
29
+ - **AI와 대화로 모든 작업** — MCP 도구 31개로 온보딩·프로필·이력서·자소서·공고·핏 분석·지원 상태·면접 준비·AI 티 안 나는 글쓰기까지 처리.
30
30
  - **지원 상태 8단계 관리** — `draft`(작성 중) · `planned`(지원 예정) · `applied`(지원 완료) · `document_passed`(서류 합격) · `interview`(면접 진행) · `final_passed`(최종 합격) · `rejected`(불합격) · `on_hold`(보류). `document_passed` 이상에서 면접 준비가 해금됩니다.
31
31
  - **자기소개서 버전 관리** — 공고별로 자소서 버전을 쌓고 타임라인으로 비교, 파일로 내보내기.
32
32
  - **채용공고 파싱** — 붙여넣은 공고 텍스트를 구조화해 저장.
@@ -42,7 +42,7 @@
42
42
  | 프로세스 | 실행 | 역할 |
43
43
  | --- | --- | --- |
44
44
  | **대시보드 웹 서버** | `npm start` | `http://127.0.0.1:4319` — 내 데이터를 눈으로 확인·관리. `127.0.0.1`에만 바인딩. |
45
- | **MCP 서버** | `npm run mcp` | stdio 기반. 보통 AI 클라이언트가 자동 실행. 도구 24개 제공. |
45
+ | **MCP 서버** | `npm run mcp` | stdio 기반. 보통 AI 클라이언트가 자동 실행. 도구 31개 제공. |
46
46
 
47
47
  ---
48
48
 
@@ -139,21 +139,23 @@ Codex가 `~/.codex/config.toml`에 MCP 서버를 등록합니다. 연결은 Code
139
139
 
140
140
  ---
141
141
 
142
- ## MCP 도구 한눈에 (24개)
142
+ ## MCP 도구 한눈에 (31개)
143
143
 
144
144
  | 분류 | 도구 |
145
145
  | --- | --- |
146
- | 온보딩 | `get_onboarding_status` · `start_onboarding` |
147
- | 프로필 | `save_profile` · `get_profile` · `update_profile` |
148
- | 이력서 | `add_resume` · `get_resumes` |
149
- | 자기소개서 | `add_cover_letter` · `get_cover_letters` · `save_cover_letter_version` · `export_cover_letter` |
150
- | 채용공고 | `save_job_posting` · `get_job_posting` · `list_jobs` · `parse_job_posting` |
146
+ | 온보딩 | `get_onboarding_status` |
147
+ | 프로필 | `save_profile` · `get_profile` |
148
+ | 이력서 | `read_document` · `add_resume` · `get_resumes` · `open_inbox` · `read_inbox` |
149
+ | 경력·프로젝트·스킬 | `add_experience` · `get_experiences` · `add_project` · `get_projects` · `add_skill` · `get_skills` |
150
+ | 자기소개서 | `get_cover_letters` · `save_cover_letter_version` · `export_cover_letter` |
151
+ | 채용공고 | `save_job_posting` · `get_job_posting` · `list_jobs` |
151
152
  | 핵심 컨텍스트 | **`get_application_context`** (지원에 필요한 맥락을 한 번에 모아줌) |
152
153
  | 핏 분석 | `save_fit_analysis` |
153
154
  | 지원 상태 | `update_application_status` |
154
155
  | 면접 준비 | `save_interview_prep` |
155
156
  | 글쓰기 | `get_writing_style_guide` (AI 티 안 나는 한국어 글쓰기 규칙) |
156
157
  | 대시보드/활동 | `open_dashboard` · `open_application` · `list_recent_activity` · `get_workflow_guide` |
158
+ | 업데이트 | `check_for_update` · `update_careermate` |
157
159
 
158
160
  이 도구들 위에 5종의 워크플로우(`onboarding`, `analyze_job`, `write_cover_letter`, `manage_application_status`, `prepare_interview`)가 정의되어 있어, AI가 단계별로 자연스럽게 안내합니다.
159
161
 
@@ -170,7 +172,7 @@ CareerMate/
170
172
  │ ├─ shared/ # 공용 타입·zod 스키마·유틸
171
173
  │ ├─ db/ # node:sqlite DB 접근·스키마·마이그레이션
172
174
  │ ├─ core/ # 도메인 유스케이스
173
- │ ├─ mcp-tools/ # MCP 도구 24개 정의
175
+ │ ├─ mcp-tools/ # MCP 도구 31개 정의
174
176
  │ ├─ exporters/ # 내보내기(자소서 등)
175
177
  │ ├─ parsers/ # 채용공고 파싱
176
178
  │ ├─ prompts/ # 프롬프트·안내 문구
@@ -238,7 +240,9 @@ CareerMate/
238
240
  - [`AGENTS.md`](AGENTS.md) — Codex용 영속 지침. / [`CLAUDE.md`](CLAUDE.md) — Claude Code용 영속 지침.
239
241
  - [`docs/SUPPORTED_AI_APPS.md`](docs/SUPPORTED_AI_APPS.md) — **설치 레퍼런스 허브**: 지원 앱 매트릭스 + 설치 3방식(에이전트/npx/.mcpb) + 클라이언트별 수동 MCP 설정 + 알려진 제약. (사람용 안내는 https://careermate.life)
240
242
  - [`docs/START_WORKFLOW.md`](docs/START_WORKFLOW.md) — 등록부터 면접 준비까지 단계별 작업 런북.
243
+ - [`docs/FAQ.md`](docs/FAQ.md) — **자주 묻는 질문 / 문제 해결**: "PDF가 안 읽혀요", "분석이 안 돼요", "공고 URL은 어떻게 넣어요" 등.
241
244
  - [`docs/TODO.md`](docs/TODO.md) — 남은 작업과 v1 범위 밖 항목.
245
+ - [`CHANGELOG.md`](CHANGELOG.md) — 버전별 변경 이력. / [`CONTRIBUTING.md`](CONTRIBUTING.md) · [`SECURITY.md`](SECURITY.md) · [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) — 기여·보안·행동 강령.
242
246
 
243
247
  ---
244
248
 
@@ -256,4 +260,4 @@ npm run typecheck
256
260
 
257
261
  ## 라이선스
258
262
 
259
- MIT.
263
+ MIT 라이선스 — 전문은 [`LICENSE`](LICENSE) 파일을 참고하세요. (개발용 GitHub 저장소는 현재 비공개입니다.)
@@ -38,3 +38,18 @@ SOFTWARE.
38
38
 
39
39
  > 참고: 원 저장소의 정확한 저작권자 표기(`Copyright (c) <year> <holder>`)를 확인해
40
40
  > 위 전문 상단에 그대로 채워 넣는 것을 권장합니다.
41
+
42
+ ---
43
+
44
+ ## 번들에 포함되는 npm 의존성 (문서 텍스트 추출)
45
+
46
+ `read_document` 도구가 PDF·Word·한컴 문서에서 텍스트를 추출하는 데 사용하는 순수 JS 라이브러리들입니다. 배포 시 `dist/` 번들(esbuild)에 코드가 인라인되므로 각 라이선스 고지를 보존합니다. 각 라이선스 전문은 설치된 `node_modules/<패키지>/LICENSE` 에 포함됩니다.
47
+
48
+ | 패키지 | 용도 | 라이선스 | 저작권 |
49
+ | --- | --- | --- | --- |
50
+ | [`mammoth`](https://github.com/mwilliamson/mammoth.js) | `.docx` → 텍스트 | BSD-2-Clause | Copyright (c) Michael Williamson |
51
+ | [`hwp.js`](https://github.com/hahnlee/hwp.js) | `.hwp`(HWP 5.x) → 텍스트 | Apache-2.0 | Copyright Han Lee and other contributors |
52
+ | [`fflate`](https://github.com/101arrowz/fflate) | `.hwpx` 압축 해제 | MIT | Copyright (c) 2023 Arjun Barrett |
53
+ | [`pdfjs-dist`](https://github.com/mozilla/pdf.js) | `.pdf` → 텍스트 | Apache-2.0 | Copyright Mozilla Foundation and contributors |
54
+
55
+ > Apache-2.0(`hwp.js`, `pdfjs-dist`)은 라이선스 사본과 NOTICE 고지 보존을 요구합니다. 위 표와 `node_modules`의 동봉 라이선스로 이를 충족합니다.
@@ -6,16 +6,15 @@
6
6
  * dashboard uses, so anything the AI writes appears in the dashboard instantly,
7
7
  * and anything the user edits in the dashboard is visible to the AI.
8
8
  *
9
- * Nothing here calls out to the network. All reasoning stays in the user's AI.
9
+ * All reasoning stays in the user's AI. The only outbound network call is an
10
+ * optional version check (check_for_update / update_careermate) against the
11
+ * public npm registry — no user data is sent; disable with CAREERMATE_NO_UPDATE_CHECK.
10
12
  */
11
13
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
12
14
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
13
15
  import { getDb, getDataDir } from '@careermate/db';
14
16
  import { TOOLS, toCallToolResult } from '@careermate/mcp-tools';
15
-
16
- // 번들 빌드(esbuild)에서 package.json 버전으로 치환된다. tsx 개발 실행에서는 정의되지 않아 typeof로 안전 분기.
17
- declare const __APP_VERSION__: string | undefined;
18
- const APP_VERSION = typeof __APP_VERSION__ !== 'undefined' ? __APP_VERSION__ : '0.0.0-dev';
17
+ import { APP_VERSION } from '@careermate/shared';
19
18
 
20
19
  async function main(): Promise<void> {
21
20
  // Ensure the DB is created/migrated before serving any tool call.