boss-agent-cli 1.3.0__tar.gz
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.
- boss_agent_cli-1.3.0/.gitattributes +2 -0
- boss_agent_cli-1.3.0/.github/ISSUE_TEMPLATE/bug_report.yml +33 -0
- boss_agent_cli-1.3.0/.github/ISSUE_TEMPLATE/config.yml +5 -0
- boss_agent_cli-1.3.0/.github/ISSUE_TEMPLATE/feature_request.yml +21 -0
- boss_agent_cli-1.3.0/.github/PULL_REQUEST_TEMPLATE.md +24 -0
- boss_agent_cli-1.3.0/.github/dependabot.yml +21 -0
- boss_agent_cli-1.3.0/.github/workflows/ci.yml +70 -0
- boss_agent_cli-1.3.0/.github/workflows/release.yml +44 -0
- boss_agent_cli-1.3.0/.gitignore +18 -0
- boss_agent_cli-1.3.0/CHANGELOG.md +89 -0
- boss_agent_cli-1.3.0/CODE_OF_CONDUCT.md +41 -0
- boss_agent_cli-1.3.0/CONTRIBUTING.md +37 -0
- boss_agent_cli-1.3.0/LICENSE +21 -0
- boss_agent_cli-1.3.0/PKG-INFO +412 -0
- boss_agent_cli-1.3.0/README.md +375 -0
- boss_agent_cli-1.3.0/SECURITY.md +34 -0
- boss_agent_cli-1.3.0/SKILL.md +143 -0
- boss_agent_cli-1.3.0/demo.gif +0 -0
- boss_agent_cli-1.3.0/demo.tape +68 -0
- boss_agent_cli-1.3.0/demo_showcase.py +29 -0
- boss_agent_cli-1.3.0/docs/agent-hosts.md +30 -0
- boss_agent_cli-1.3.0/docs/agent-quickstart.md +57 -0
- boss_agent_cli-1.3.0/docs/capability-matrix.md +23 -0
- boss_agent_cli-1.3.0/docs/integrations/claude-code.md +63 -0
- boss_agent_cli-1.3.0/docs/integrations/codex.md +59 -0
- boss_agent_cli-1.3.0/docs/integrations/shell-agent.md +61 -0
- boss_agent_cli-1.3.0/docs/promotion-article.md +117 -0
- boss_agent_cli-1.3.0/docs/smoke-testing.md +33 -0
- boss_agent_cli-1.3.0/extension/background.js +280 -0
- boss_agent_cli-1.3.0/extension/manifest.json +25 -0
- boss_agent_cli-1.3.0/extension/popup.html +39 -0
- boss_agent_cli-1.3.0/mcp-server/README.md +78 -0
- boss_agent_cli-1.3.0/mcp-server/server.py +213 -0
- boss_agent_cli-1.3.0/pyproject.toml +62 -0
- boss_agent_cli-1.3.0/scripts/smoke_p0.py +99 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/__init__.py +1 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/api/__init__.py +0 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/api/boss.yaml +209 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/api/browser_client.py +325 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/api/client.py +301 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/api/endpoints.py +60 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/api/endpoints_loader.py +76 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/api/models.py +128 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/api/throttle.py +53 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/auth/__init__.py +0 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/auth/browser.py +200 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/auth/cookie_extract.py +56 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/auth/manager.py +139 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/auth/token_store.py +131 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/bridge/__init__.py +0 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/bridge/client.py +173 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/bridge/daemon.py +269 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/bridge/protocol.py +70 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/cache/__init__.py +0 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/cache/store.py +288 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/chat_summary.py +43 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/__init__.py +0 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/apply.py +60 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/chat.py +210 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/chat_export.py +337 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/chat_snapshot.py +102 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/chat_summary.py +57 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/chat_utils.py +26 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/chatmsg.py +96 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/cities.py +23 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/detail.py +115 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/digest.py +51 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/doctor.py +259 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/exchange.py +59 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/export.py +193 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/greet.py +215 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/history.py +49 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/interviews.py +61 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/login.py +57 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/logout.py +28 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/mark.py +84 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/me.py +77 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/pipeline.py +78 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/preset.py +82 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/recommend.py +60 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/schema.py +487 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/search.py +179 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/shortlist.py +87 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/show.py +91 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/status.py +37 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/commands/watch.py +151 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/config.py +23 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/digest.py +10 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/display.py +325 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/hooks.py +61 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/index_cache.py +88 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/main.py +68 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/match_score.py +106 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/output.py +85 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/pipeline_state.py +71 -0
- boss_agent_cli-1.3.0/src/boss_agent_cli/search_filters.py +340 -0
- boss_agent_cli-1.3.0/tests/test_agent_docs.py +47 -0
- boss_agent_cli-1.3.0/tests/test_agent_host_examples.py +50 -0
- boss_agent_cli-1.3.0/tests/test_api.py +142 -0
- boss_agent_cli-1.3.0/tests/test_api_client_retry.py +164 -0
- boss_agent_cli-1.3.0/tests/test_apply.py +72 -0
- boss_agent_cli-1.3.0/tests/test_auth.py +55 -0
- boss_agent_cli-1.3.0/tests/test_auth_manager_flow.py +134 -0
- boss_agent_cli-1.3.0/tests/test_bridge.py +200 -0
- boss_agent_cli-1.3.0/tests/test_browser_client.py +140 -0
- boss_agent_cli-1.3.0/tests/test_cache.py +117 -0
- boss_agent_cli-1.3.0/tests/test_chat_export_extended.py +517 -0
- boss_agent_cli-1.3.0/tests/test_chat_snapshot_extended.py +381 -0
- boss_agent_cli-1.3.0/tests/test_chat_summary.py +57 -0
- boss_agent_cli-1.3.0/tests/test_chat_summary_command.py +64 -0
- boss_agent_cli-1.3.0/tests/test_chatmsg_extended.py +407 -0
- boss_agent_cli-1.3.0/tests/test_commands.py +917 -0
- boss_agent_cli-1.3.0/tests/test_digest.py +21 -0
- boss_agent_cli-1.3.0/tests/test_digest_command.py +62 -0
- boss_agent_cli-1.3.0/tests/test_display.py +122 -0
- boss_agent_cli-1.3.0/tests/test_doctor_extended.py +356 -0
- boss_agent_cli-1.3.0/tests/test_endpoints_loader.py +55 -0
- boss_agent_cli-1.3.0/tests/test_hooks.py +84 -0
- boss_agent_cli-1.3.0/tests/test_index_cache.py +113 -0
- boss_agent_cli-1.3.0/tests/test_match_score.py +59 -0
- boss_agent_cli-1.3.0/tests/test_new_commands.py +461 -0
- boss_agent_cli-1.3.0/tests/test_output.py +76 -0
- boss_agent_cli-1.3.0/tests/test_pipeline_commands.py +100 -0
- boss_agent_cli-1.3.0/tests/test_pipeline_state.py +86 -0
- boss_agent_cli-1.3.0/tests/test_preset.py +107 -0
- boss_agent_cli-1.3.0/tests/test_schema_contract.py +142 -0
- boss_agent_cli-1.3.0/tests/test_search_filters.py +149 -0
- boss_agent_cli-1.3.0/tests/test_search_pipeline.py +204 -0
- boss_agent_cli-1.3.0/tests/test_shortlist.py +45 -0
- boss_agent_cli-1.3.0/tests/test_smoke_p0.py +61 -0
- boss_agent_cli-1.3.0/tests/test_throttle.py +54 -0
- boss_agent_cli-1.3.0/tests/test_watch.py +104 -0
- boss_agent_cli-1.3.0/tests/test_welfare_filter.py +98 -0
- boss_agent_cli-1.3.0/uv.lock +1463 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
name: Bug Report
|
|
2
|
+
description: 报告一个 Bug
|
|
3
|
+
labels: ["bug"]
|
|
4
|
+
body:
|
|
5
|
+
- type: textarea
|
|
6
|
+
attributes:
|
|
7
|
+
label: 问题描述
|
|
8
|
+
description: 清晰描述遇到的问题
|
|
9
|
+
validations:
|
|
10
|
+
required: true
|
|
11
|
+
- type: textarea
|
|
12
|
+
attributes:
|
|
13
|
+
label: 复现步骤
|
|
14
|
+
description: 按步骤描述如何复现
|
|
15
|
+
value: |
|
|
16
|
+
1. 执行命令 `boss ...`
|
|
17
|
+
2. 观察到 ...
|
|
18
|
+
3. 期望的结果是 ...
|
|
19
|
+
validations:
|
|
20
|
+
required: true
|
|
21
|
+
- type: textarea
|
|
22
|
+
attributes:
|
|
23
|
+
label: 错误输出
|
|
24
|
+
description: 粘贴完整的 JSON 错误输出
|
|
25
|
+
render: json
|
|
26
|
+
- type: input
|
|
27
|
+
attributes:
|
|
28
|
+
label: Python 版本
|
|
29
|
+
placeholder: "3.10"
|
|
30
|
+
- type: input
|
|
31
|
+
attributes:
|
|
32
|
+
label: 操作系统
|
|
33
|
+
placeholder: "macOS 15.3 / Ubuntu 22.04 / Windows 11"
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
name: Feature Request
|
|
2
|
+
description: 提交一个功能建议
|
|
3
|
+
labels: ["enhancement"]
|
|
4
|
+
body:
|
|
5
|
+
- type: textarea
|
|
6
|
+
attributes:
|
|
7
|
+
label: 功能描述
|
|
8
|
+
description: 你希望添加什么功能?
|
|
9
|
+
validations:
|
|
10
|
+
required: true
|
|
11
|
+
- type: textarea
|
|
12
|
+
attributes:
|
|
13
|
+
label: 使用场景
|
|
14
|
+
description: 在什么场景下需要这个功能?
|
|
15
|
+
validations:
|
|
16
|
+
required: true
|
|
17
|
+
- type: textarea
|
|
18
|
+
attributes:
|
|
19
|
+
label: 期望的命令格式
|
|
20
|
+
description: 你期望的命令和输出格式是什么样的?
|
|
21
|
+
render: bash
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
## 变更说明
|
|
2
|
+
|
|
3
|
+
<!-- 简要描述本次变更的内容和目的 -->
|
|
4
|
+
|
|
5
|
+
## 变更类型
|
|
6
|
+
|
|
7
|
+
- [ ] feat: 新功能
|
|
8
|
+
- [ ] fix: Bug 修复
|
|
9
|
+
- [ ] refactor: 重构
|
|
10
|
+
- [ ] docs: 文档
|
|
11
|
+
- [ ] test: 测试
|
|
12
|
+
- [ ] chore: 构建/依赖/配置
|
|
13
|
+
|
|
14
|
+
## 测试
|
|
15
|
+
|
|
16
|
+
- [ ] 已运行 `uv run pytest tests/ -v` 且全部通过
|
|
17
|
+
- [ ] 已运行 `uv run python -m compileall src/boss_agent_cli/ -q`
|
|
18
|
+
- [ ] 新增/修改的功能已有对应测试覆盖
|
|
19
|
+
|
|
20
|
+
## 检查清单
|
|
21
|
+
|
|
22
|
+
- [ ] commit message 格式: `type: 中文描述`
|
|
23
|
+
- [ ] 无敏感信息(Token、密码、Cookie)
|
|
24
|
+
- [ ] 如有新命令:已更新 schema.py / README.md / SKILL.md
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
- package-ecosystem: "pip"
|
|
4
|
+
directory: "/"
|
|
5
|
+
schedule:
|
|
6
|
+
interval: "weekly"
|
|
7
|
+
commit-message:
|
|
8
|
+
prefix: "chore"
|
|
9
|
+
labels:
|
|
10
|
+
- "dependencies"
|
|
11
|
+
open-pull-requests-limit: 5
|
|
12
|
+
|
|
13
|
+
- package-ecosystem: "github-actions"
|
|
14
|
+
directory: "/"
|
|
15
|
+
schedule:
|
|
16
|
+
interval: "weekly"
|
|
17
|
+
commit-message:
|
|
18
|
+
prefix: "ci"
|
|
19
|
+
labels:
|
|
20
|
+
- "dependencies"
|
|
21
|
+
open-pull-requests-limit: 5
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [master]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [master]
|
|
8
|
+
|
|
9
|
+
concurrency:
|
|
10
|
+
group: ci-${{ github.ref }}
|
|
11
|
+
cancel-in-progress: true
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
test:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
strategy:
|
|
17
|
+
matrix:
|
|
18
|
+
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@v6
|
|
22
|
+
|
|
23
|
+
- name: Install uv
|
|
24
|
+
uses: astral-sh/setup-uv@v7
|
|
25
|
+
with:
|
|
26
|
+
enable-cache: true
|
|
27
|
+
|
|
28
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
29
|
+
run: uv python install ${{ matrix.python-version }}
|
|
30
|
+
|
|
31
|
+
- name: Install dependencies
|
|
32
|
+
run: uv sync --all-extras
|
|
33
|
+
|
|
34
|
+
- name: Run tests
|
|
35
|
+
run: uv run pytest tests/ -v --tb=short
|
|
36
|
+
|
|
37
|
+
- name: Verify CLI loads
|
|
38
|
+
run: uv run python -c "from boss_agent_cli.main import cli; print('CLI loaded')"
|
|
39
|
+
|
|
40
|
+
lint:
|
|
41
|
+
runs-on: ubuntu-latest
|
|
42
|
+
steps:
|
|
43
|
+
- uses: actions/checkout@v6
|
|
44
|
+
|
|
45
|
+
- name: Install uv
|
|
46
|
+
uses: astral-sh/setup-uv@v7
|
|
47
|
+
with:
|
|
48
|
+
enable-cache: true
|
|
49
|
+
|
|
50
|
+
- name: Set up Python
|
|
51
|
+
run: uv python install 3.11
|
|
52
|
+
|
|
53
|
+
- name: Install dependencies
|
|
54
|
+
run: uv sync --all-extras
|
|
55
|
+
|
|
56
|
+
- name: Compile check all modules
|
|
57
|
+
run: uv run python -m compileall src/boss_agent_cli/ -q
|
|
58
|
+
|
|
59
|
+
- name: Ruff lint
|
|
60
|
+
run: uv run ruff check src/
|
|
61
|
+
|
|
62
|
+
- name: Check critical imports
|
|
63
|
+
run: |
|
|
64
|
+
uv run python -c "
|
|
65
|
+
from boss_agent_cli.auth.manager import AuthManager
|
|
66
|
+
from boss_agent_cli.api.client import BossClient
|
|
67
|
+
from boss_agent_cli.cache.store import CacheStore
|
|
68
|
+
from boss_agent_cli.commands.schema import schema_cmd
|
|
69
|
+
print('All critical imports OK')
|
|
70
|
+
"
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: write
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
release:
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
steps:
|
|
15
|
+
- uses: actions/checkout@v6
|
|
16
|
+
|
|
17
|
+
- name: Install uv
|
|
18
|
+
uses: astral-sh/setup-uv@v7
|
|
19
|
+
with:
|
|
20
|
+
enable-cache: true
|
|
21
|
+
|
|
22
|
+
- name: Set up Python
|
|
23
|
+
run: uv python install 3.11
|
|
24
|
+
|
|
25
|
+
- name: Install dependencies
|
|
26
|
+
run: uv sync --all-extras
|
|
27
|
+
|
|
28
|
+
- name: Run tests
|
|
29
|
+
run: uv run pytest tests/ -v --tb=short
|
|
30
|
+
|
|
31
|
+
- name: Build package
|
|
32
|
+
run: uv build
|
|
33
|
+
|
|
34
|
+
- name: Create GitHub Release
|
|
35
|
+
uses: softprops/action-gh-release@v2
|
|
36
|
+
with:
|
|
37
|
+
generate_release_notes: true
|
|
38
|
+
files: dist/*
|
|
39
|
+
|
|
40
|
+
- name: Publish to PyPI
|
|
41
|
+
if: ${{ !contains(github.ref, 'rc') && !contains(github.ref, 'beta') }}
|
|
42
|
+
run: uv publish
|
|
43
|
+
env:
|
|
44
|
+
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
__pycache__/
|
|
2
|
+
*.pyc
|
|
3
|
+
.venv/
|
|
4
|
+
*.egg-info/
|
|
5
|
+
dist/
|
|
6
|
+
build/
|
|
7
|
+
.pytest_cache/
|
|
8
|
+
.playwright-mcp/
|
|
9
|
+
.worktrees/
|
|
10
|
+
.claude/
|
|
11
|
+
docs/superpowers/
|
|
12
|
+
my-boss-profile.md
|
|
13
|
+
CLAUDE.md
|
|
14
|
+
AGENTS.md
|
|
15
|
+
GEMINI.md
|
|
16
|
+
.ace-tool/
|
|
17
|
+
.agents/skills/
|
|
18
|
+
.trellis/
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
本项目遵循 [Semantic Versioning](https://semver.org/)。
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
## [1.3.0] - 2026-04-13
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- 新增 `watch` 命令组 — 保存搜索条件并执行增量监控,自动标出新职位
|
|
11
|
+
- 新增 `pipeline` 命令 — 汇总沟通和面试数据,构建求职流水线全景视图
|
|
12
|
+
- 新增 `follow-up` 命令 — 筛选超时未推进的联系人,生成跟进提醒
|
|
13
|
+
- 新增 `apply` 命令 — 发起投递/立即沟通动作,幂等设计防止重复投递
|
|
14
|
+
- 新增 `shortlist` 命令组 — 管理职位候选池,支持添加/列表/移除
|
|
15
|
+
- 新增 `chat-summary` 命令 — 对沟通消息生成结构化摘要
|
|
16
|
+
- 新增 `preset` 命令组 — 管理可复用搜索预设,保存常用参数组合一键复用
|
|
17
|
+
- 新增 `digest` 命令 — 每日摘要,综合流水线、跟进、统计信息
|
|
18
|
+
- 搜索结果新增匹配分和匹配原因输出
|
|
19
|
+
- 快速入门文档和冒烟测试框架
|
|
20
|
+
- 多宿主集成示例文档(Claude Code / Codex / Shell Agent)
|
|
21
|
+
- 接口合约和错误码一致性测试
|
|
22
|
+
- 高风险链路测试覆盖补齐
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
- 开源仓库元信息优化,补充英文摘要和变更记录
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
- 检测风控状态码并输出明确错误标识(此前静默失败)
|
|
29
|
+
- 调试协议模式复用用户上下文,规避自动化检测
|
|
30
|
+
- 扩展优先复用已有招聘页而非空白自动化页
|
|
31
|
+
- 职位详情快速通道失败时自动降级到浏览器通道(此前误报"职位不存在")
|
|
32
|
+
- 搜索分页边界条件修正
|
|
33
|
+
|
|
34
|
+
## [1.2.0] - 2026-04-09
|
|
35
|
+
|
|
36
|
+
### Added
|
|
37
|
+
- CI 新增 ruff lint 质量门禁步骤
|
|
38
|
+
- CI 矩阵新增 Python 3.13 支持
|
|
39
|
+
- 新增 bridge/display/endpoints_loader/index_cache 四模块测试(123→182 用例)
|
|
40
|
+
- SKILL.md 命令速查表补全至 19 个命令
|
|
41
|
+
|
|
42
|
+
### Changed
|
|
43
|
+
- chat.py 拆分为 chat_export/chat_snapshot/chat_utils 三子模块(655→227 行)
|
|
44
|
+
- 浏览器超时从裸数字提取为命名常量
|
|
45
|
+
- search_filters 异常捕获从 Exception 收窄为具体类型
|
|
46
|
+
- client.py 根据运行平台动态设置请求头
|
|
47
|
+
- daemon.py 文件句柄改为 with ���句防泄漏
|
|
48
|
+
- 安装命令改为从 GitHub 源码安装
|
|
49
|
+
|
|
50
|
+
### Fixed
|
|
51
|
+
- CLAUDE.md 缩进规范、模块索引、技术栈、架构图与代码对齐
|
|
52
|
+
- README 配置文档补全 cdp_url/export_dir 字段
|
|
53
|
+
- .gitignore 排除 .trellis/.agents 目录
|
|
54
|
+
|
|
55
|
+
## [1.1.0] - 2026-04-03
|
|
56
|
+
|
|
57
|
+
### Added
|
|
58
|
+
- 新增 `boss me` 命令 — 获取当前登录用户的基本信息、简历、求职期望、投递记录
|
|
59
|
+
- 跨平台 Agent Skill 体系 — 支持 Codex / Claude Code / Gemini CLI / OpenCode / OpenClaw
|
|
60
|
+
- `.agents/skills/` symlink 供 Codex / OpenCode 发现 skill
|
|
61
|
+
- pyproject.toml 补全 authors、keywords、classifiers、urls 元数据
|
|
62
|
+
|
|
63
|
+
### Fixed
|
|
64
|
+
- 修复 `boss me` 命令 AuthManager 路径拼接和 emit_error 参数问题
|
|
65
|
+
- 消息模板标准化 — hints 补全 + 参数引用修正 + recovery_action 统一
|
|
66
|
+
|
|
67
|
+
### Changed
|
|
68
|
+
- SKILL.md 重构为 AgentSkills 标准格式
|
|
69
|
+
- skill 目录从 `skills/SKILL.md` 迁移到 `skills/boss-agent-cli/SKILL.md`
|
|
70
|
+
|
|
71
|
+
## [0.1.0] - 2026-03-20
|
|
72
|
+
|
|
73
|
+
### Added
|
|
74
|
+
- 核心 CLI 框架(Click)+ JSON 信封输出协议
|
|
75
|
+
- `boss login` — patchright 反检测浏览器扫码登录 + 本地浏览器 Cookie 自动提取
|
|
76
|
+
- `boss status` — 检查登录态
|
|
77
|
+
- `boss search` — 职位搜索(支持城市 / 薪资 / 经验 / 学历 / 规模筛选)
|
|
78
|
+
- `boss search --welfare` — 福利精准筛选(双休、五险一金等,逗号分隔 AND 逻辑,自动翻页)
|
|
79
|
+
- `boss recommend` — 基于简历的个性化职位推荐
|
|
80
|
+
- `boss detail` — 职位完整详情(描述、地址、招聘者信息)
|
|
81
|
+
- `boss greet` — 向招聘者打招呼
|
|
82
|
+
- `boss batch-greet` — 批量打招呼(上限 10,支持 dry-run 预览)
|
|
83
|
+
- `boss export` — 导出搜索结果为 CSV / JSON
|
|
84
|
+
- `boss cities` — 列出 40 个支持城市
|
|
85
|
+
- `boss schema` — 工具能力自描述 JSON(Agent 调用入口)
|
|
86
|
+
- Token 加密存储(Fernet + PBKDF2 机器绑定密钥)
|
|
87
|
+
- SQLite WAL 缓存(搜索历史 100 条上限 + 已打招呼记录)
|
|
88
|
+
- 高斯分布请求延迟 + 指数退避 403 重试
|
|
89
|
+
- GitHub Actions CI(多 OS + 多 Python 版本)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our Pledge
|
|
4
|
+
|
|
5
|
+
We as members, contributors, and leaders pledge to make participation in our
|
|
6
|
+
community a harassment-free experience for everyone, regardless of age, body
|
|
7
|
+
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
|
8
|
+
identity and expression, level of experience, education, socio-economic status,
|
|
9
|
+
nationality, personal appearance, race, religion, or sexual identity
|
|
10
|
+
and orientation.
|
|
11
|
+
|
|
12
|
+
## Our Standards
|
|
13
|
+
|
|
14
|
+
Examples of behavior that contributes to a positive environment:
|
|
15
|
+
|
|
16
|
+
* Using welcoming and inclusive language
|
|
17
|
+
* Being respectful of differing viewpoints and experiences
|
|
18
|
+
* Gracefully accepting constructive criticism
|
|
19
|
+
* Focusing on what is best for the community
|
|
20
|
+
* Showing empathy towards other community members
|
|
21
|
+
|
|
22
|
+
Examples of unacceptable behavior:
|
|
23
|
+
|
|
24
|
+
* The use of sexualized language or imagery and unwelcome sexual attention
|
|
25
|
+
* Trolling, insulting/derogatory comments, and personal or political attacks
|
|
26
|
+
* Public or private harassment
|
|
27
|
+
* Publishing others' private information without explicit permission
|
|
28
|
+
* Other conduct which could reasonably be considered inappropriate
|
|
29
|
+
|
|
30
|
+
## Enforcement
|
|
31
|
+
|
|
32
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
|
33
|
+
reported to the project maintainer at can4hou6joeng4@163.com.
|
|
34
|
+
|
|
35
|
+
All complaints will be reviewed and investigated and will result in a response
|
|
36
|
+
that is deemed necessary and appropriate to the circumstances.
|
|
37
|
+
|
|
38
|
+
## Attribution
|
|
39
|
+
|
|
40
|
+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org),
|
|
41
|
+
version 2.1, available at https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
感谢你对 boss-agent-cli 的关注!
|
|
4
|
+
|
|
5
|
+
## 开发环境
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
git clone https://github.com/can4hou6joeng4/boss-agent-cli.git
|
|
9
|
+
cd boss-agent-cli
|
|
10
|
+
uv sync --all-extras
|
|
11
|
+
uv run pytest tests/ -v
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## 编码规范
|
|
15
|
+
|
|
16
|
+
- 缩进使用 **tab**
|
|
17
|
+
- Python >= 3.10(使用 `X | Y` 联合类型)
|
|
18
|
+
- commit message:`type: 中文描述`(feat / fix / refactor / docs / test / chore)
|
|
19
|
+
|
|
20
|
+
## 提交流程
|
|
21
|
+
|
|
22
|
+
1. Fork 本仓库
|
|
23
|
+
2. 创建功能分支:`git checkout -b feat/your-feature`
|
|
24
|
+
3. 编写测试 → 实现功能 → 确保测试通过
|
|
25
|
+
4. 提交并推送
|
|
26
|
+
5. 创建 Pull Request
|
|
27
|
+
|
|
28
|
+
## 添加新命令
|
|
29
|
+
|
|
30
|
+
1. 在 `src/boss_agent_cli/commands/` 下新建文件
|
|
31
|
+
2. 在 `main.py` 中注册命令
|
|
32
|
+
3. 在 `schema.py` 中添加命令描述
|
|
33
|
+
4. 在 `tests/test_commands.py` 中添加测试
|
|
34
|
+
5. 更新 `skills/boss-agent-cli/SKILL.md`(命令速查表)
|
|
35
|
+
6. 更新 `AGENTS.md`(CLI 不变量契约中的命令数)
|
|
36
|
+
7. 更新 `README.md`(命令参考表)
|
|
37
|
+
8. 更新对应模块的 `CLAUDE.md`
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 can4hou6joeng4
|
|
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.
|