maxc-cli 0.1.1__tar.gz → 0.1.3__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.
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/MANIFEST.in +1 -0
- maxc_cli-0.1.3/PKG-INFO +156 -0
- maxc_cli-0.1.3/README.md +135 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/setup.py +8 -1
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/skills/use-maxc-cli/.DS_Store +0 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/__init__.py +1 -1
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/app.py +450 -272
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/auth_providers.py +291 -151
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/backend/auth.py +29 -2
- maxc_cli-0.1.3/src/maxc_cli/backend/catalog.py +276 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/backend/data.py +33 -2
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/backend/job.py +80 -10
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/backend/meta.py +124 -9
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/backend/odps.py +12 -3
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/backend/query.py +55 -10
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/cache.py +56 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/cli.py +98 -86
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/config.py +45 -0
- maxc_cli-0.1.3/src/maxc_cli/exceptions.py +140 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/helpers.py +66 -15
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/models.py +35 -43
- {maxc_cli-0.1.1/skills/use-maxc-cli → maxc_cli-0.1.3/src/maxc_cli/skills}/SKILL.md +64 -6
- {maxc_cli-0.1.1/skills/use-maxc-cli → maxc_cli-0.1.3/src/maxc_cli/skills}/references/bootstrap-auth.md +77 -0
- {maxc_cli-0.1.1/skills/use-maxc-cli → maxc_cli-0.1.3/src/maxc_cli/skills}/references/command-patterns.md +18 -13
- maxc_cli-0.1.3/src/maxc_cli/skills/references/migrate-from-odpscmd.md +149 -0
- {maxc_cli-0.1.1/skills/use-maxc-cli → maxc_cli-0.1.3/src/maxc_cli/skills}/references/setup-install.md +3 -7
- maxc_cli-0.1.3/src/maxc_cli.egg-info/PKG-INFO +156 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli.egg-info/SOURCES.txt +10 -6
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/tests/test_agent_hints_and_cli.py +13 -10
- maxc_cli-0.1.3/tests/test_agent_skill_commands_context.py +412 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/tests/test_cache.py +2 -0
- maxc_cli-0.1.3/tests/test_catalog.py +390 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/tests/test_cli_mock.py +30 -350
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/tests/test_compat.py +2 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/tests/test_e2e_smoke.py +2 -0
- maxc_cli-0.1.3/tests/test_external_auth.py +662 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/tests/test_integration.py +2 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/tests/test_integration_real.py +2 -36
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/tests/test_job_improvements.py +2 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/tests/test_query_auto_promote.py +7 -5
- maxc_cli-0.1.1/PKG-INFO +0 -220
- maxc_cli-0.1.1/README.md +0 -199
- maxc_cli-0.1.1/scripts/sync_codex_skill.py +0 -68
- maxc_cli-0.1.1/src/maxc_cli/exceptions.py +0 -99
- maxc_cli-0.1.1/src/maxc_cli.egg-info/PKG-INFO +0 -220
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/pyproject.toml +0 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/setup.cfg +0 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/__main__.py +0 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/audit.py +0 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/backend/__init__.py +0 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/output.py +0 -0
- {maxc_cli-0.1.1/skills/use-maxc-cli → maxc_cli-0.1.3/src/maxc_cli/skills}/agents/openai.yaml +0 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/store.py +0 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli/utils.py +0 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli.egg-info/dependency_links.txt +0 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli.egg-info/entry_points.txt +0 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli.egg-info/requires.txt +0 -0
- {maxc_cli-0.1.1 → maxc_cli-0.1.3}/src/maxc_cli.egg-info/top_level.txt +0 -0
maxc_cli-0.1.3/PKG-INFO
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: maxc-cli
|
|
3
|
+
Version: 0.1.3
|
|
4
|
+
Summary: Agent-native MaxCompute CLI for external coding agents
|
|
5
|
+
Classifier: Programming Language :: Python :: 3
|
|
6
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
7
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
8
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
10
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
11
|
+
Requires-Python: >=3.8,<3.13
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
Requires-Dist: PyYAML>=5.4
|
|
14
|
+
Requires-Dist: pyodps
|
|
15
|
+
Dynamic: classifier
|
|
16
|
+
Dynamic: description
|
|
17
|
+
Dynamic: description-content-type
|
|
18
|
+
Dynamic: requires-dist
|
|
19
|
+
Dynamic: requires-python
|
|
20
|
+
Dynamic: summary
|
|
21
|
+
|
|
22
|
+
# maxc-cli
|
|
23
|
+
|
|
24
|
+
MaxCompute CLI — 不是 Agent,而是给 Agent 调用的结构化工具层。
|
|
25
|
+
|
|
26
|
+
## 快速开始
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
pip install maxc-cli
|
|
30
|
+
|
|
31
|
+
# 认证
|
|
32
|
+
maxc auth login --from-env --json # 从环境变量
|
|
33
|
+
maxc auth login --access-id ID --secret-access-key KEY --project PROJ --endpoint URL --json
|
|
34
|
+
|
|
35
|
+
# 确认就绪
|
|
36
|
+
maxc auth whoami --json
|
|
37
|
+
maxc agent context --json
|
|
38
|
+
|
|
39
|
+
# 用
|
|
40
|
+
maxc meta search "销售" --json
|
|
41
|
+
maxc meta describe schema.table --json
|
|
42
|
+
maxc query cost "SELECT * FROM schema.table WHERE ds='20260415'" --json
|
|
43
|
+
maxc query "SELECT * FROM schema.table WHERE ds='20260415'" --json
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 命令一览
|
|
47
|
+
|
|
48
|
+
| 家族 | 命令 | 说明 |
|
|
49
|
+
|------|------|------|
|
|
50
|
+
| **query** | `query [run]`, `query cost`, `query explain` | SQL 执行、成本估算、执行计划 |
|
|
51
|
+
| **job** | `submit`, `status`, `wait`, `result`, `cancel`, `diagnose`, `list` | 异步任务全生命周期 |
|
|
52
|
+
| **meta** | `list-tables`, `describe`, `search`, `search-columns`, `partitions`, `latest-partition`, `freshness`, `list-projects`, `list-schemas`, `semantic set/get/list-missing` | 元数据发现与语义管理 |
|
|
53
|
+
| **data** | `sample`, `profile` | 数据采样与画像 |
|
|
54
|
+
| **auth** | `login`, `login-external`, `whoami`, `can-i` | 认证与权限 |
|
|
55
|
+
| **session** | `set`, `show`, `unset` | 项目/Schema 切换 |
|
|
56
|
+
| **diff** | `schema`, `partition`, `data` | 表结构/分区/数据对比 |
|
|
57
|
+
| **cache** | `build`, `build-status`, `status`, `clear` | 元数据缓存管理 |
|
|
58
|
+
| **agent** | `context`, `skill`, `install-skill` | Agent 集成与 SKILL 安装 |
|
|
59
|
+
|
|
60
|
+
所有命令支持 `--json` 输出 Envelope v2.0 结构化响应。
|
|
61
|
+
|
|
62
|
+
## Agent 集成
|
|
63
|
+
|
|
64
|
+
### 方式 1:SKILL HUB(主路径)
|
|
65
|
+
|
|
66
|
+
SKILL HUB 安装 SKILL → Agent 读 SKILL.md → Agent 自己 `pip install maxc-cli`。
|
|
67
|
+
|
|
68
|
+
### 方式 2:install-skill(内网兜底)
|
|
69
|
+
|
|
70
|
+
先 pip install,再一键注册到 Agent 平台:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
pip install maxc-cli
|
|
74
|
+
maxc agent install-skill claude-code # 或 cursor / windsurf / codex / qwen
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
`install-skill` 从包内 `skills/` 目录拷贝 SKILL.md + references/ 到目标平台目录,写入 `.maxc-skill-version` 标记版本。同版本跳过,版本变化覆盖。
|
|
78
|
+
|
|
79
|
+
### preflight 检查
|
|
80
|
+
|
|
81
|
+
Agent 启动时应先运行:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
maxc agent context --json # 版本、认证状态、后端可达性、能力矩阵
|
|
85
|
+
maxc agent skill --json # SKILL.md 路径与 min_cli_version
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Envelope v2.0
|
|
89
|
+
|
|
90
|
+
所有 `--json` 输出遵循统一结构:
|
|
91
|
+
|
|
92
|
+
```json
|
|
93
|
+
{
|
|
94
|
+
"version": "2.0",
|
|
95
|
+
"command": "meta.describe",
|
|
96
|
+
"command_id": "meta.describe",
|
|
97
|
+
"status": "success | failure",
|
|
98
|
+
"data": { ... },
|
|
99
|
+
"metadata": { ... },
|
|
100
|
+
"error": null | { "code": "...", "message": "...", "recovery_steps": [...] },
|
|
101
|
+
"agent_hints": {
|
|
102
|
+
"next_actions": ["maxc meta search --json", ...],
|
|
103
|
+
"action_ids": ["meta.search", ...],
|
|
104
|
+
"insights": [...],
|
|
105
|
+
"warnings": [...]
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
- `action_ids`:稳定 dot-notation,用于程序化路由(`meta.describe`、`job.wait`)
|
|
111
|
+
- `next_actions`:可直接 copy-paste 的 CLI 命令
|
|
112
|
+
- `error.recovery_steps`:错误码对应的恢复步骤
|
|
113
|
+
|
|
114
|
+
详见 [`docs/ENVELOPE_SPEC.md`](docs/ENVELOPE_SPEC.md)。
|
|
115
|
+
|
|
116
|
+
## 项目结构
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
src/maxc_cli/
|
|
120
|
+
├── cli.py # argparse 命令注册
|
|
121
|
+
├── app.py # MaxCApp 业务逻辑
|
|
122
|
+
├── models.py # Envelope / AgentHints / QueryResult
|
|
123
|
+
├── exceptions.py # ErrorPayload + 9 个异常子类 + recovery_steps
|
|
124
|
+
├── config.py # YAML 配置加载
|
|
125
|
+
├── cache.py # LocalCache (SQLite)
|
|
126
|
+
├── store.py # JobStore (SQLite)
|
|
127
|
+
├── output.py # Rich / 纯文本渲染
|
|
128
|
+
├── auth_providers.py # AK-SK / NCS / 环境变量认证
|
|
129
|
+
├── backend/ # ODPS 后端(query / meta / catalog / data / diff 五个 mixin)
|
|
130
|
+
└── skills/ # SKILL.md + references/ + agents/(随 pip 包安装,唯一源)
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## 文档
|
|
134
|
+
|
|
135
|
+
| 文档 | 内容 |
|
|
136
|
+
|------|------|
|
|
137
|
+
| [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) | 三层架构、核心数据流、缓存/认证架构 |
|
|
138
|
+
| [`docs/ENVELOPE_SPEC.md`](docs/ENVELOPE_SPEC.md) | Envelope v2.0 规范、pagination、error codes |
|
|
139
|
+
| [`docs/ODPS_BACKEND.md`](docs/ODPS_BACKEND.md) | ODPS 后端 API 映射、限制与回退行为 |
|
|
140
|
+
| [`docs/design.md`](docs/design.md) | 产品定位与命令体系 |
|
|
141
|
+
| [`docs/implementation.md`](docs/implementation.md) | 当前代码的真实行为和输出契约 |
|
|
142
|
+
| [`docs/roadmap.md`](docs/roadmap.md) | 路线图 |
|
|
143
|
+
|
|
144
|
+
## 限制
|
|
145
|
+
|
|
146
|
+
- **只读**:CLI 强制 SELECT-only,不支持 DDL/DML
|
|
147
|
+
- **auth login**:AK/SK 明文存储于 `~/.maxc/config.yaml`(文件权限 0600)
|
|
148
|
+
- **list-tables 分页**:CLI 侧 offset token,非服务端游标
|
|
149
|
+
- **diff data**:按主键快照对比,非全量 diff
|
|
150
|
+
|
|
151
|
+
## 开发
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
pip install -e .
|
|
155
|
+
pytest tests/ -m unit # 142 个单元测试
|
|
156
|
+
```
|
maxc_cli-0.1.3/README.md
ADDED
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# maxc-cli
|
|
2
|
+
|
|
3
|
+
MaxCompute CLI — 不是 Agent,而是给 Agent 调用的结构化工具层。
|
|
4
|
+
|
|
5
|
+
## 快速开始
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
pip install maxc-cli
|
|
9
|
+
|
|
10
|
+
# 认证
|
|
11
|
+
maxc auth login --from-env --json # 从环境变量
|
|
12
|
+
maxc auth login --access-id ID --secret-access-key KEY --project PROJ --endpoint URL --json
|
|
13
|
+
|
|
14
|
+
# 确认就绪
|
|
15
|
+
maxc auth whoami --json
|
|
16
|
+
maxc agent context --json
|
|
17
|
+
|
|
18
|
+
# 用
|
|
19
|
+
maxc meta search "销售" --json
|
|
20
|
+
maxc meta describe schema.table --json
|
|
21
|
+
maxc query cost "SELECT * FROM schema.table WHERE ds='20260415'" --json
|
|
22
|
+
maxc query "SELECT * FROM schema.table WHERE ds='20260415'" --json
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 命令一览
|
|
26
|
+
|
|
27
|
+
| 家族 | 命令 | 说明 |
|
|
28
|
+
|------|------|------|
|
|
29
|
+
| **query** | `query [run]`, `query cost`, `query explain` | SQL 执行、成本估算、执行计划 |
|
|
30
|
+
| **job** | `submit`, `status`, `wait`, `result`, `cancel`, `diagnose`, `list` | 异步任务全生命周期 |
|
|
31
|
+
| **meta** | `list-tables`, `describe`, `search`, `search-columns`, `partitions`, `latest-partition`, `freshness`, `list-projects`, `list-schemas`, `semantic set/get/list-missing` | 元数据发现与语义管理 |
|
|
32
|
+
| **data** | `sample`, `profile` | 数据采样与画像 |
|
|
33
|
+
| **auth** | `login`, `login-external`, `whoami`, `can-i` | 认证与权限 |
|
|
34
|
+
| **session** | `set`, `show`, `unset` | 项目/Schema 切换 |
|
|
35
|
+
| **diff** | `schema`, `partition`, `data` | 表结构/分区/数据对比 |
|
|
36
|
+
| **cache** | `build`, `build-status`, `status`, `clear` | 元数据缓存管理 |
|
|
37
|
+
| **agent** | `context`, `skill`, `install-skill` | Agent 集成与 SKILL 安装 |
|
|
38
|
+
|
|
39
|
+
所有命令支持 `--json` 输出 Envelope v2.0 结构化响应。
|
|
40
|
+
|
|
41
|
+
## Agent 集成
|
|
42
|
+
|
|
43
|
+
### 方式 1:SKILL HUB(主路径)
|
|
44
|
+
|
|
45
|
+
SKILL HUB 安装 SKILL → Agent 读 SKILL.md → Agent 自己 `pip install maxc-cli`。
|
|
46
|
+
|
|
47
|
+
### 方式 2:install-skill(内网兜底)
|
|
48
|
+
|
|
49
|
+
先 pip install,再一键注册到 Agent 平台:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
pip install maxc-cli
|
|
53
|
+
maxc agent install-skill claude-code # 或 cursor / windsurf / codex / qwen
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
`install-skill` 从包内 `skills/` 目录拷贝 SKILL.md + references/ 到目标平台目录,写入 `.maxc-skill-version` 标记版本。同版本跳过,版本变化覆盖。
|
|
57
|
+
|
|
58
|
+
### preflight 检查
|
|
59
|
+
|
|
60
|
+
Agent 启动时应先运行:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
maxc agent context --json # 版本、认证状态、后端可达性、能力矩阵
|
|
64
|
+
maxc agent skill --json # SKILL.md 路径与 min_cli_version
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Envelope v2.0
|
|
68
|
+
|
|
69
|
+
所有 `--json` 输出遵循统一结构:
|
|
70
|
+
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"version": "2.0",
|
|
74
|
+
"command": "meta.describe",
|
|
75
|
+
"command_id": "meta.describe",
|
|
76
|
+
"status": "success | failure",
|
|
77
|
+
"data": { ... },
|
|
78
|
+
"metadata": { ... },
|
|
79
|
+
"error": null | { "code": "...", "message": "...", "recovery_steps": [...] },
|
|
80
|
+
"agent_hints": {
|
|
81
|
+
"next_actions": ["maxc meta search --json", ...],
|
|
82
|
+
"action_ids": ["meta.search", ...],
|
|
83
|
+
"insights": [...],
|
|
84
|
+
"warnings": [...]
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
- `action_ids`:稳定 dot-notation,用于程序化路由(`meta.describe`、`job.wait`)
|
|
90
|
+
- `next_actions`:可直接 copy-paste 的 CLI 命令
|
|
91
|
+
- `error.recovery_steps`:错误码对应的恢复步骤
|
|
92
|
+
|
|
93
|
+
详见 [`docs/ENVELOPE_SPEC.md`](docs/ENVELOPE_SPEC.md)。
|
|
94
|
+
|
|
95
|
+
## 项目结构
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
src/maxc_cli/
|
|
99
|
+
├── cli.py # argparse 命令注册
|
|
100
|
+
├── app.py # MaxCApp 业务逻辑
|
|
101
|
+
├── models.py # Envelope / AgentHints / QueryResult
|
|
102
|
+
├── exceptions.py # ErrorPayload + 9 个异常子类 + recovery_steps
|
|
103
|
+
├── config.py # YAML 配置加载
|
|
104
|
+
├── cache.py # LocalCache (SQLite)
|
|
105
|
+
├── store.py # JobStore (SQLite)
|
|
106
|
+
├── output.py # Rich / 纯文本渲染
|
|
107
|
+
├── auth_providers.py # AK-SK / NCS / 环境变量认证
|
|
108
|
+
├── backend/ # ODPS 后端(query / meta / catalog / data / diff 五个 mixin)
|
|
109
|
+
└── skills/ # SKILL.md + references/ + agents/(随 pip 包安装,唯一源)
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## 文档
|
|
113
|
+
|
|
114
|
+
| 文档 | 内容 |
|
|
115
|
+
|------|------|
|
|
116
|
+
| [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md) | 三层架构、核心数据流、缓存/认证架构 |
|
|
117
|
+
| [`docs/ENVELOPE_SPEC.md`](docs/ENVELOPE_SPEC.md) | Envelope v2.0 规范、pagination、error codes |
|
|
118
|
+
| [`docs/ODPS_BACKEND.md`](docs/ODPS_BACKEND.md) | ODPS 后端 API 映射、限制与回退行为 |
|
|
119
|
+
| [`docs/design.md`](docs/design.md) | 产品定位与命令体系 |
|
|
120
|
+
| [`docs/implementation.md`](docs/implementation.md) | 当前代码的真实行为和输出契约 |
|
|
121
|
+
| [`docs/roadmap.md`](docs/roadmap.md) | 路线图 |
|
|
122
|
+
|
|
123
|
+
## 限制
|
|
124
|
+
|
|
125
|
+
- **只读**:CLI 强制 SELECT-only,不支持 DDL/DML
|
|
126
|
+
- **auth login**:AK/SK 明文存储于 `~/.maxc/config.yaml`(文件权限 0600)
|
|
127
|
+
- **list-tables 分页**:CLI 侧 offset token,非服务端游标
|
|
128
|
+
- **diff data**:按主键快照对比,非全量 diff
|
|
129
|
+
|
|
130
|
+
## 开发
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
pip install -e .
|
|
134
|
+
pytest tests/ -m unit # 142 个单元测试
|
|
135
|
+
```
|
|
@@ -9,7 +9,7 @@ README = ROOT / "README.md"
|
|
|
9
9
|
|
|
10
10
|
setup(
|
|
11
11
|
name="maxc-cli",
|
|
12
|
-
version="0.1.
|
|
12
|
+
version="0.1.3",
|
|
13
13
|
description="Agent-native MaxCompute CLI for external coding agents",
|
|
14
14
|
long_description=README.read_text(encoding="utf-8"),
|
|
15
15
|
long_description_content_type="text/markdown",
|
|
@@ -17,6 +17,13 @@ setup(
|
|
|
17
17
|
package_dir={"": "src"},
|
|
18
18
|
packages=find_packages(where="src"),
|
|
19
19
|
include_package_data=True,
|
|
20
|
+
package_data={
|
|
21
|
+
"maxc_cli": [
|
|
22
|
+
"skills/SKILL.md",
|
|
23
|
+
"skills/references/*.md",
|
|
24
|
+
"skills/agents/*.yaml",
|
|
25
|
+
],
|
|
26
|
+
},
|
|
20
27
|
classifiers=[
|
|
21
28
|
"Programming Language :: Python :: 3",
|
|
22
29
|
"Programming Language :: Python :: 3.8",
|
|
Binary file
|