maxc-cli 0.1.4__tar.gz → 0.1.5__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.4/src/maxc_cli.egg-info → maxc_cli-0.1.5}/PKG-INFO +40 -5
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/README.md +39 -4
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/setup.py +1 -1
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/__init__.py +1 -1
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/app.py +442 -188
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/backend/odps.py +23 -16
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/backend/query.py +24 -19
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/cli.py +78 -42
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/exceptions.py +35 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/helpers.py +19 -1
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/models.py +160 -35
- maxc_cli-0.1.5/src/maxc_cli/output.py +296 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/skills/SKILL.md +106 -7
- maxc_cli-0.1.5/src/maxc_cli/skills/nohup.out +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/skills/references/command-patterns.md +8 -4
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/skills/references/maxcompute-sql-notes.md +44 -2
- {maxc_cli-0.1.4 → maxc_cli-0.1.5/src/maxc_cli.egg-info}/PKG-INFO +40 -5
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli.egg-info/SOURCES.txt +2 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/tests/test_agent_hints_and_cli.py +10 -3
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/tests/test_cli_mock.py +3 -3
- maxc_cli-0.1.5/tests/test_phase1_improvements.py +568 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/tests/test_query_auto_promote.py +10 -5
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/tests/test_setting_parser.py +17 -13
- maxc_cli-0.1.4/src/maxc_cli/output.py +0 -75
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/MANIFEST.in +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/pyproject.toml +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/scripts/regression_test.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/setup.cfg +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/__main__.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/audit.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/auth_providers.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/backend/__init__.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/backend/auth.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/backend/catalog.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/backend/data.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/backend/job.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/backend/meta.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/cache.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/config.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/masking.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/setting_parser.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/skills/agents/openai.yaml +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/skills/references/bootstrap-auth.md +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/skills/references/migrate-from-odpscmd.md +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/skills/references/partition-guide.md +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/skills/references/setup-install.md +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/store.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli/utils.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli.egg-info/dependency_links.txt +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli.egg-info/entry_points.txt +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli.egg-info/requires.txt +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/src/maxc_cli.egg-info/top_level.txt +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/tests/test_agent_skill_commands_context.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/tests/test_cache.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/tests/test_catalog.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/tests/test_compat.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/tests/test_e2e_smoke.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/tests/test_error_self_correction.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/tests/test_external_auth.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/tests/test_integration.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/tests/test_integration_real.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/tests/test_job_improvements.py +0 -0
- {maxc_cli-0.1.4 → maxc_cli-0.1.5}/tests/test_masking.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: maxc-cli
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.5
|
|
4
4
|
Summary: Agent-native MaxCompute CLI for external coding agents
|
|
5
5
|
Classifier: Programming Language :: Python :: 3
|
|
6
6
|
Classifier: Programming Language :: Python :: 3.8
|
|
@@ -57,7 +57,7 @@ maxc query "SELECT * FROM schema.table WHERE ds='20260415'" --json
|
|
|
57
57
|
| **cache** | `build`, `build-status`, `status`, `clear` | 元数据缓存管理 |
|
|
58
58
|
| **agent** | `context`, `skill`, `install-skill` | Agent 集成与 SKILL 安装 |
|
|
59
59
|
|
|
60
|
-
所有命令支持 `--json` 输出 Envelope v2.0
|
|
60
|
+
所有命令支持 `--json` 输出 Envelope v2.0 结构化响应。支持 `--format json|markdown|brief`(全局标志)。
|
|
61
61
|
|
|
62
62
|
## Agent 集成
|
|
63
63
|
|
|
@@ -99,18 +99,53 @@ maxc agent skill --json # SKILL.md 路径与 min_cli_version
|
|
|
99
99
|
"metadata": { ... },
|
|
100
100
|
"error": null | { "code": "...", "message": "...", "recovery_steps": [...] },
|
|
101
101
|
"agent_hints": {
|
|
102
|
-
"
|
|
103
|
-
|
|
102
|
+
"actions": [
|
|
103
|
+
{
|
|
104
|
+
"id": "meta.search",
|
|
105
|
+
"title": "Search tables",
|
|
106
|
+
"command": "maxc meta search <keyword> --json",
|
|
107
|
+
"executable": false,
|
|
108
|
+
"placeholders": {"keyword": "search keyword"},
|
|
109
|
+
"args_schema": {}
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"action_ids": ["meta.search"],
|
|
113
|
+
"next_actions": ["maxc meta search <keyword> --json"],
|
|
104
114
|
"insights": [...],
|
|
105
115
|
"warnings": [...]
|
|
106
116
|
}
|
|
107
117
|
}
|
|
108
118
|
```
|
|
109
119
|
|
|
120
|
+
- `agent_hints.actions[]`: 结构化 `SuggestedAction` 对象数组(Phase 1 新增)
|
|
110
121
|
- `action_ids`:稳定 dot-notation,用于程序化路由(`meta.describe`、`job.wait`)
|
|
111
|
-
- `next_actions`:可直接 copy-paste 的 CLI
|
|
122
|
+
- `next_actions`:可直接 copy-paste 的 CLI 命令(从 `actions[]` 派生)
|
|
112
123
|
- `error.recovery_steps`:错误码对应的恢复步骤
|
|
113
124
|
|
|
125
|
+
### 输出格式
|
|
126
|
+
|
|
127
|
+
`--format` 是全局标志,适用于所有命令:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
maxc --format json meta describe my_table # 结构化 JSON(默认,等价于 --json)
|
|
131
|
+
maxc --format markdown meta describe my_table # 人类可读 markdown
|
|
132
|
+
maxc --format brief meta describe my_table # 最小化单行输出(低 token 场景)
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### safety 块
|
|
136
|
+
|
|
137
|
+
`query` 和 `job` 命令的 `data` 中包含 `safety` 字段,描述安全策略决策:
|
|
138
|
+
|
|
139
|
+
```json
|
|
140
|
+
"safety": {
|
|
141
|
+
"mode": "read_only",
|
|
142
|
+
"force": false,
|
|
143
|
+
"allowed_operations": ["SELECT"],
|
|
144
|
+
"effective_hints": {"odps.sql.read.only": "true"},
|
|
145
|
+
"policy_decision": "allowed"
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
114
149
|
详见 [`docs/ENVELOPE_SPEC.md`](docs/ENVELOPE_SPEC.md)。
|
|
115
150
|
|
|
116
151
|
## 项目结构
|
|
@@ -36,7 +36,7 @@ maxc query "SELECT * FROM schema.table WHERE ds='20260415'" --json
|
|
|
36
36
|
| **cache** | `build`, `build-status`, `status`, `clear` | 元数据缓存管理 |
|
|
37
37
|
| **agent** | `context`, `skill`, `install-skill` | Agent 集成与 SKILL 安装 |
|
|
38
38
|
|
|
39
|
-
所有命令支持 `--json` 输出 Envelope v2.0
|
|
39
|
+
所有命令支持 `--json` 输出 Envelope v2.0 结构化响应。支持 `--format json|markdown|brief`(全局标志)。
|
|
40
40
|
|
|
41
41
|
## Agent 集成
|
|
42
42
|
|
|
@@ -78,18 +78,53 @@ maxc agent skill --json # SKILL.md 路径与 min_cli_version
|
|
|
78
78
|
"metadata": { ... },
|
|
79
79
|
"error": null | { "code": "...", "message": "...", "recovery_steps": [...] },
|
|
80
80
|
"agent_hints": {
|
|
81
|
-
"
|
|
82
|
-
|
|
81
|
+
"actions": [
|
|
82
|
+
{
|
|
83
|
+
"id": "meta.search",
|
|
84
|
+
"title": "Search tables",
|
|
85
|
+
"command": "maxc meta search <keyword> --json",
|
|
86
|
+
"executable": false,
|
|
87
|
+
"placeholders": {"keyword": "search keyword"},
|
|
88
|
+
"args_schema": {}
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
"action_ids": ["meta.search"],
|
|
92
|
+
"next_actions": ["maxc meta search <keyword> --json"],
|
|
83
93
|
"insights": [...],
|
|
84
94
|
"warnings": [...]
|
|
85
95
|
}
|
|
86
96
|
}
|
|
87
97
|
```
|
|
88
98
|
|
|
99
|
+
- `agent_hints.actions[]`: 结构化 `SuggestedAction` 对象数组(Phase 1 新增)
|
|
89
100
|
- `action_ids`:稳定 dot-notation,用于程序化路由(`meta.describe`、`job.wait`)
|
|
90
|
-
- `next_actions`:可直接 copy-paste 的 CLI
|
|
101
|
+
- `next_actions`:可直接 copy-paste 的 CLI 命令(从 `actions[]` 派生)
|
|
91
102
|
- `error.recovery_steps`:错误码对应的恢复步骤
|
|
92
103
|
|
|
104
|
+
### 输出格式
|
|
105
|
+
|
|
106
|
+
`--format` 是全局标志,适用于所有命令:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
maxc --format json meta describe my_table # 结构化 JSON(默认,等价于 --json)
|
|
110
|
+
maxc --format markdown meta describe my_table # 人类可读 markdown
|
|
111
|
+
maxc --format brief meta describe my_table # 最小化单行输出(低 token 场景)
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### safety 块
|
|
115
|
+
|
|
116
|
+
`query` 和 `job` 命令的 `data` 中包含 `safety` 字段,描述安全策略决策:
|
|
117
|
+
|
|
118
|
+
```json
|
|
119
|
+
"safety": {
|
|
120
|
+
"mode": "read_only",
|
|
121
|
+
"force": false,
|
|
122
|
+
"allowed_operations": ["SELECT"],
|
|
123
|
+
"effective_hints": {"odps.sql.read.only": "true"},
|
|
124
|
+
"policy_decision": "allowed"
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
93
128
|
详见 [`docs/ENVELOPE_SPEC.md`](docs/ENVELOPE_SPEC.md)。
|
|
94
129
|
|
|
95
130
|
## 项目结构
|
|
@@ -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.5",
|
|
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",
|