@inf-monkeys-tech/monkeys-cli 0.11.0 → 0.11.2
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/README.md +38 -21
- package/README.zh.md +27 -19
- package/bin/install-wizard.js +12 -2
- package/bin/run.js +4 -4
- package/dist/command/metadata.d.ts +11 -0
- package/dist/command/metadata.d.ts.map +1 -0
- package/dist/command/metadata.js +150 -0
- package/dist/command/metadata.js.map +1 -0
- package/dist/command-support/asset-feature-backfill.d.ts +20 -4
- package/dist/command-support/asset-feature-backfill.d.ts.map +1 -1
- package/dist/commands/agent/work/watch.d.ts +3 -2
- package/dist/commands/agent/work/watch.d.ts.map +1 -1
- package/dist/commands/agent/work/watch.js +10 -5
- package/dist/commands/agent/work/watch.js.map +1 -1
- package/dist/commands/context/show.d.ts +11 -0
- package/dist/commands/context/show.d.ts.map +1 -0
- package/dist/commands/context/show.js +32 -0
- package/dist/commands/context/show.js.map +1 -0
- package/dist/commands/data/asset/list.d.ts.map +1 -1
- package/dist/commands/data/asset/list.js +9 -5
- package/dist/commands/data/asset/list.js.map +1 -1
- package/dist/commands/data/asset/search.d.ts.map +1 -1
- package/dist/commands/data/asset/search.js +9 -5
- package/dist/commands/data/asset/search.js.map +1 -1
- package/dist/commands/data/view/rows.d.ts.map +1 -1
- package/dist/commands/data/view/rows.js +9 -5
- package/dist/commands/data/view/rows.js.map +1 -1
- package/dist/commands/execution/watch.d.ts +3 -2
- package/dist/commands/execution/watch.d.ts.map +1 -1
- package/dist/commands/execution/watch.js +10 -5
- package/dist/commands/execution/watch.js.map +1 -1
- package/dist/commands/identity/get.d.ts +13 -0
- package/dist/commands/identity/get.d.ts.map +1 -0
- package/dist/commands/identity/get.js +18 -0
- package/dist/commands/identity/get.js.map +1 -0
- package/dist/commands/identity/list.d.ts +17 -0
- package/dist/commands/identity/list.d.ts.map +1 -0
- package/dist/commands/identity/list.js +33 -0
- package/dist/commands/identity/list.js.map +1 -0
- package/dist/commands/schema.d.ts +17 -0
- package/dist/commands/schema.d.ts.map +1 -0
- package/dist/commands/schema.js +56 -0
- package/dist/commands/schema.js.map +1 -0
- package/dist/commands/skills/list.d.ts +9 -0
- package/dist/commands/skills/list.d.ts.map +1 -0
- package/dist/commands/skills/list.js +11 -0
- package/dist/commands/skills/list.js.map +1 -0
- package/dist/commands/skills/read.d.ts +14 -0
- package/dist/commands/skills/read.d.ts.map +1 -0
- package/dist/commands/skills/read.js +20 -0
- package/dist/commands/skills/read.js.map +1 -0
- package/dist/commands/skills/status.d.ts +9 -0
- package/dist/commands/skills/status.d.ts.map +1 -0
- package/dist/commands/skills/status.js +12 -0
- package/dist/commands/skills/status.js.map +1 -0
- package/dist/commands/skills/sync.d.ts +10 -0
- package/dist/commands/skills/sync.d.ts.map +1 -0
- package/dist/commands/skills/sync.js +36 -0
- package/dist/commands/skills/sync.js.map +1 -0
- package/dist/commands/team/get.d.ts +13 -0
- package/dist/commands/team/get.d.ts.map +1 -0
- package/dist/commands/team/get.js +18 -0
- package/dist/commands/team/get.js.map +1 -0
- package/dist/commands/team/list.d.ts +16 -0
- package/dist/commands/team/list.d.ts.map +1 -0
- package/dist/commands/team/list.js +31 -0
- package/dist/commands/team/list.js.map +1 -0
- package/dist/commands/update.d.ts +2 -4
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +37 -76
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/version/check.d.ts.map +1 -1
- package/dist/commands/version/check.js +8 -4
- package/dist/commands/version/check.js.map +1 -1
- package/dist/commands/version/show.d.ts +2 -2
- package/dist/commands/version/show.d.ts.map +1 -1
- package/dist/commands/version/show.js +7 -12
- package/dist/commands/version/show.js.map +1 -1
- package/dist/config/local-command.d.ts +9 -1
- package/dist/config/local-command.d.ts.map +1 -1
- package/dist/config/local-command.js +44 -5
- package/dist/config/local-command.js.map +1 -1
- package/dist/contracts/version.d.ts +1 -1
- package/dist/contracts/version.d.ts.map +1 -1
- package/dist/contracts/version.js +9 -1
- package/dist/contracts/version.js.map +1 -1
- package/dist/data/asset-jsonl-import.d.ts +50 -10
- package/dist/data/asset-jsonl-import.d.ts.map +1 -1
- package/dist/data/asset-jsonl-import.js +13 -2
- package/dist/data/asset-jsonl-import.js.map +1 -1
- package/dist/data/client.d.ts +21 -3
- package/dist/data/client.d.ts.map +1 -1
- package/dist/data/client.js +132 -21
- package/dist/data/client.js.map +1 -1
- package/dist/data/command.d.ts +36 -6
- package/dist/data/command.d.ts.map +1 -1
- package/dist/data/command.js +81 -15
- package/dist/data/command.js.map +1 -1
- package/dist/data/contracts.d.ts +1 -0
- package/dist/data/contracts.d.ts.map +1 -1
- package/dist/data/contracts.js +6 -0
- package/dist/data/contracts.js.map +1 -1
- package/dist/data/cursor.d.ts +5 -1
- package/dist/data/cursor.d.ts.map +1 -1
- package/dist/data/cursor.js +12 -6
- package/dist/data/cursor.js.map +1 -1
- package/dist/data/kernel-bindings.d.ts.map +1 -1
- package/dist/data/kernel-bindings.js +1 -0
- package/dist/data/kernel-bindings.js.map +1 -1
- package/dist/data/ontology-command.d.ts +80 -16
- package/dist/data/ontology-command.d.ts.map +1 -1
- package/dist/data/perspective.d.ts +10 -5
- package/dist/data/perspective.d.ts.map +1 -1
- package/dist/data/perspective.js +50 -57
- package/dist/data/perspective.js.map +1 -1
- package/dist/data/resource-locator.d.ts.map +1 -1
- package/dist/data/resource-locator.js +9 -7
- package/dist/data/resource-locator.js.map +1 -1
- package/dist/data/view-rows.d.ts +1 -1
- package/dist/data/view-rows.d.ts.map +1 -1
- package/dist/data/view-rows.js +26 -3
- package/dist/data/view-rows.js.map +1 -1
- package/dist/data-transfer/asset-export.d.ts +10 -2
- package/dist/data-transfer/asset-export.d.ts.map +1 -1
- package/dist/data-transfer/asset-import.d.ts +10 -2
- package/dist/data-transfer/asset-import.d.ts.map +1 -1
- package/dist/data-transfer/ontology-export.d.ts +10 -2
- package/dist/data-transfer/ontology-export.d.ts.map +1 -1
- package/dist/data-transfer/ontology-import.d.ts +10 -2
- package/dist/data-transfer/ontology-import.d.ts.map +1 -1
- package/dist/discovery/client.d.ts +31 -0
- package/dist/discovery/client.d.ts.map +1 -0
- package/dist/discovery/client.js +117 -0
- package/dist/discovery/client.js.map +1 -0
- package/dist/discovery/pagination.d.ts +20 -0
- package/dist/discovery/pagination.d.ts.map +1 -0
- package/dist/discovery/pagination.js +32 -0
- package/dist/discovery/pagination.js.map +1 -0
- package/dist/output/render.d.ts +7 -1
- package/dist/output/render.d.ts.map +1 -1
- package/dist/output/render.js +73 -0
- package/dist/output/render.js.map +1 -1
- package/dist/schema/command-schema.d.ts +26 -0
- package/dist/schema/command-schema.d.ts.map +1 -0
- package/dist/schema/command-schema.js +27 -0
- package/dist/schema/command-schema.js.map +1 -0
- package/dist/skills/content.d.ts +13 -0
- package/dist/skills/content.d.ts.map +1 -0
- package/dist/skills/content.js +103 -0
- package/dist/skills/content.js.map +1 -0
- package/dist/skills/state.d.ts +43 -0
- package/dist/skills/state.d.ts.map +1 -0
- package/dist/skills/state.js +56 -0
- package/dist/skills/state.js.map +1 -0
- package/dist/skills/sync.d.ts +28 -0
- package/dist/skills/sync.d.ts.map +1 -0
- package/dist/skills/sync.js +17 -0
- package/dist/skills/sync.js.map +1 -0
- package/dist/transport/http-client.d.ts.map +1 -1
- package/dist/transport/http-client.js +1 -0
- package/dist/transport/http-client.js.map +1 -1
- package/dist/transport/types.d.ts +1 -0
- package/dist/transport/types.d.ts.map +1 -1
- package/dist/update/updater.d.ts +1 -0
- package/dist/update/updater.d.ts.map +1 -1
- package/dist/update/updater.js +21 -5
- package/dist/update/updater.js.map +1 -1
- package/oclif.manifest.json +6013 -370
- package/package.json +57 -3
- package/skills/monkeys-agent-work/SKILL.md +21 -0
- package/skills/monkeys-agent-work/agents/openai.yaml +4 -0
- package/skills/monkeys-auth/SKILL.md +21 -0
- package/skills/monkeys-auth/agents/openai.yaml +4 -0
- package/skills/monkeys-data/SKILL.md +31 -0
- package/skills/monkeys-data/agents/openai.yaml +4 -0
- package/skills/monkeys-data/references/data-perspective.md +50 -0
- package/skills/monkeys-data/references/data-read.md +46 -0
- package/skills/{monkeys → monkeys-data}/references/ontology-feature-search.md +5 -5
- package/skills/{monkeys → monkeys-data}/references/ontology-model.md +2 -1
- package/skills/monkeys-openapi/SKILL.md +19 -0
- package/skills/monkeys-openapi/agents/openai.yaml +4 -0
- package/skills/monkeys-shared/SKILL.md +31 -0
- package/skills/monkeys-shared/agents/openai.yaml +4 -0
- package/skills/{monkeys → monkeys-shared}/references/compatibility.md +2 -2
- package/skills/{monkeys → monkeys-shared}/references/safety-errors.md +1 -1
- package/skills/monkeys-system-config/SKILL.md +20 -0
- package/skills/monkeys-system-config/agents/openai.yaml +4 -0
- package/skills/monkeys-workflow/SKILL.md +21 -0
- package/skills/monkeys-workflow/agents/openai.yaml +4 -0
- package/skills/monkeys/SKILL.md +0 -60
- package/skills/monkeys/agents/openai.yaml +0 -4
- package/skills/monkeys/references/data-perspective.md +0 -45
- package/skills/monkeys/references/data-read.md +0 -34
- /package/skills/{monkeys → monkeys-agent-work}/references/agent-work.md +0 -0
- /package/skills/{monkeys → monkeys-auth}/references/authentication.md +0 -0
- /package/skills/{monkeys → monkeys-data}/references/data-governance.md +0 -0
- /package/skills/{monkeys → monkeys-data}/references/data-transfer.md +0 -0
- /package/skills/{monkeys → monkeys-data}/references/data-write.md +0 -0
- /package/skills/{monkeys → monkeys-openapi}/references/fallback.md +0 -0
- /package/skills/{monkeys → monkeys-shared}/references/platform-overview.md +0 -0
- /package/skills/{monkeys → monkeys-system-config}/references/system-config.md +0 -0
- /package/skills/{monkeys → monkeys-workflow}/references/workflow-execution-files.md +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inf-monkeys-tech/monkeys-cli",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.2",
|
|
4
4
|
"packageManager": "bun@1.3.14",
|
|
5
5
|
"description": "Monkeys command-line client for AI agents, automation, and interactive use",
|
|
6
6
|
"type": "module",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"format:check": "prettier --check package.json tsconfig.json tsconfig.build.json .prettierrc.json bin scripts src test",
|
|
34
34
|
"language:check": "node ./scripts/check-english.mjs",
|
|
35
35
|
"lint": "tsc -p tsconfig.json --noEmit",
|
|
36
|
-
"pack:standalone": "bun run build && oclif
|
|
36
|
+
"pack:standalone": "bun run build && node ./scripts/oclif-pack.mjs -t win32-x64,linux-x64,darwin-x64",
|
|
37
37
|
"prepack": "bun run clean && bun run build",
|
|
38
38
|
"smoke:installer": "node ./scripts/install-wizard-smoke.mjs",
|
|
39
39
|
"smoke:npm": "node ./scripts/npm-install-smoke.mjs",
|
|
@@ -49,6 +49,59 @@
|
|
|
49
49
|
"dirname": "monkeys",
|
|
50
50
|
"commands": "./dist/commands",
|
|
51
51
|
"topicSeparator": " ",
|
|
52
|
+
"topics": {
|
|
53
|
+
"agent": {
|
|
54
|
+
"description": "Manage Agent Work and collaborative agent operations"
|
|
55
|
+
},
|
|
56
|
+
"api": {
|
|
57
|
+
"description": "Discover and call Platform OpenAPI operations"
|
|
58
|
+
},
|
|
59
|
+
"auth": {
|
|
60
|
+
"description": "Sign in, inspect credentials, and manage authentication"
|
|
61
|
+
},
|
|
62
|
+
"config": {
|
|
63
|
+
"description": "Inspect and change tenant system configuration"
|
|
64
|
+
},
|
|
65
|
+
"context": {
|
|
66
|
+
"description": "Inspect the resolved Profile, Team, tenant, and endpoint context"
|
|
67
|
+
},
|
|
68
|
+
"data": {
|
|
69
|
+
"description": "Manage ontology, assets, values, views, tags, and transfers"
|
|
70
|
+
},
|
|
71
|
+
"deployment": {
|
|
72
|
+
"description": "Manage local deployment endpoint definitions"
|
|
73
|
+
},
|
|
74
|
+
"execution": {
|
|
75
|
+
"description": "Inspect and monitor workflow executions"
|
|
76
|
+
},
|
|
77
|
+
"file": {
|
|
78
|
+
"description": "Upload and download platform files"
|
|
79
|
+
},
|
|
80
|
+
"identity": {
|
|
81
|
+
"description": "Discover users and Agent identities"
|
|
82
|
+
},
|
|
83
|
+
"post-review": {
|
|
84
|
+
"description": "Inspect workflow post-review audit jobs"
|
|
85
|
+
},
|
|
86
|
+
"profile": {
|
|
87
|
+
"description": "Manage endpoint subscriptions and active Profile selection"
|
|
88
|
+
},
|
|
89
|
+
"skills": {
|
|
90
|
+
"description": "List, read, verify, and synchronize bundled Agent Skills"
|
|
91
|
+
},
|
|
92
|
+
"team": {
|
|
93
|
+
"description": "Discover Teams available to the current identity"
|
|
94
|
+
},
|
|
95
|
+
"update": {
|
|
96
|
+
"description": "Update the CLI and synchronize bundled Agent Skills"
|
|
97
|
+
},
|
|
98
|
+
"version": {
|
|
99
|
+
"description": "Inspect CLI and compatibility versions"
|
|
100
|
+
},
|
|
101
|
+
"workflow": {
|
|
102
|
+
"description": "Create, inspect, run, and transfer workflows"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
52
105
|
"update": {
|
|
53
106
|
"node": {
|
|
54
107
|
"version": "24.18.0"
|
|
@@ -61,6 +114,7 @@
|
|
|
61
114
|
"csv-parse": "6.1.0",
|
|
62
115
|
"csv-stringify": "6.6.0",
|
|
63
116
|
"exceljs": "4.4.0",
|
|
117
|
+
"jq-wasm": "3.0.0-jq-1.8.2",
|
|
64
118
|
"saxes": "5.0.1",
|
|
65
119
|
"undici": "7.29.0",
|
|
66
120
|
"unzipper": "0.10.14",
|
|
@@ -88,5 +142,5 @@
|
|
|
88
142
|
"publishConfig": {
|
|
89
143
|
"access": "public"
|
|
90
144
|
},
|
|
91
|
-
"monkeysReleaseCommit": "
|
|
145
|
+
"monkeysReleaseCommit": "70803760aa5d36065c9a80a059685b0d2070a83e"
|
|
92
146
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monkeys-agent-work
|
|
3
|
+
description: 通过 monkeys CLI 管理 Kernel Agent Work 的查询、创建、分配、对话、暂停、恢复、重试、Spec 审批、Review 验收与观察。用户提到 Agent Console、工作单、运行时分配、用户输入、审批、验收或协作者时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Monkeys Agent Work
|
|
7
|
+
|
|
8
|
+
先运行 `monkeys skills read monkeys-shared`,再读取[Agent Work](references/agent-work.md)。
|
|
9
|
+
|
|
10
|
+
## 执行原则
|
|
11
|
+
|
|
12
|
+
1. 只使用预期 Surface 为 Kernel 的 Profile;运行 `monkeys context show` 确认 `authSurface=kernel`。
|
|
13
|
+
2. 用 `monkeys schema agent work <action>` 获取当前命令合同;创建或变更前精确查询 Work ID 与最新 Revision。
|
|
14
|
+
3. 写操作先 `--dry-run`;分配新 Runtime、重试、Spec 审批与 Review 验收等特权操作需要用户确认后再传 `--yes`。
|
|
15
|
+
4. 观察时明确区分服务端状态与本地轮询;Ctrl+C 只停止本地观察。
|
|
16
|
+
|
|
17
|
+
## 必须升级给用户的状态
|
|
18
|
+
|
|
19
|
+
`user_input_required`、`spec_approval_required`、`pending_review`、`pending_acceptance`、`blocked`、失败或超时必须在聊天中明确说明。`MUTATION_OUTCOME_UNKNOWN` 时只做只读恢复检查。
|
|
20
|
+
|
|
21
|
+
Agent Work 固定 `teamMode=none`,不得传入或继承 Team,也不得在权限不足时静默切换 Studio。
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monkeys-auth
|
|
3
|
+
description: 通过 monkeys CLI 安全配置订阅并使用浏览器 Device Code 或 API Key 登录,检查当前身份、认证存储与 Profile。用户要登录、退出、导入 API Key、切换 endpoint/订阅、诊断认证或查询 whoami 时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Monkeys Auth
|
|
7
|
+
|
|
8
|
+
开始前先运行 `monkeys skills read monkeys-shared`,遵循公共 Context、安全、输出和版本规则;再读取[认证与上下文](references/authentication.md)。
|
|
9
|
+
|
|
10
|
+
## 登录路径
|
|
11
|
+
|
|
12
|
+
- 浏览器登录:用 `monkeys auth login --url <Endpoint> --no-wait` 获取服务端 `verification_url`,原样交给用户;用户确认完成后,用同一次响应的临时 Profile 与 Device Code 继续轮询。
|
|
13
|
+
- API Key 登录:Key 只允许通过 `--api-key-stdin` 或 `--api-key-env` 输入,禁止出现在参数、文件、聊天或日志中。
|
|
14
|
+
- 登录后用服务端返回的已认证 `tenantId` 作为订阅/Profile 名;不得从 URL 主机名猜名称。
|
|
15
|
+
- 用 `monkeys auth whoami --profile <Profile>` 或 `monkeys auth status --profile <Profile>` 验证身份与 Surface。
|
|
16
|
+
|
|
17
|
+
## 安全边界
|
|
18
|
+
|
|
19
|
+
- CLI 和 Agent 都不得处理账户密码,不得自行填写浏览器登录表单。
|
|
20
|
+
- Device Code 只能用于原始 Endpoint 与临时 Profile,不得跨订阅复用。
|
|
21
|
+
- Keyring 或安全存储不可用时停止,不得降级为普通明文文件。
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monkeys-data
|
|
3
|
+
description: 通过 monkeys CLI 理解并操作 Ontology、View、Asset、Field/Feature Value、Tag、Membership、Container 与 Data 导入导出。用户提到数据仓库、数据集、视图、增强视图、标签、字段、记录、筛选、媒体、附件、治理或迁移时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Monkeys Data
|
|
7
|
+
|
|
8
|
+
先运行 `monkeys skills read monkeys-shared`,遵循公共 Context、安全、输出与版本规则。
|
|
9
|
+
|
|
10
|
+
## 路由与模型
|
|
11
|
+
|
|
12
|
+
1. 任何 Data 操作先读取[Data 视角路由](references/data-perspective.md);概念不明确时读取[Ontology 领域模型](references/ontology-model.md)。
|
|
13
|
+
2. 用户未指定 Studio/Kernel 时省略 `--perspective`,由 CLI Studio-first;以 `perspectiveResolution`、`effectivePerspective`、`teamMode` 与 `resourceLocator` 为真相。
|
|
14
|
+
3. Kernel 全局读取默认不传 `--team`;数据资源定位只传已确认的 `--resource-team`。Team `0` 是共享/系统数据分区,不是所有 Team。
|
|
15
|
+
4. 首次执行命令先用 `monkeys schema data <domain> <action>` 获取当前参数、风险与 dry-run 合同。
|
|
16
|
+
|
|
17
|
+
## 按需读取
|
|
18
|
+
|
|
19
|
+
- 查询、搜索、抽样、媒体与附件:[Data 读取](references/data-read.md)
|
|
20
|
+
- 按 Feature Column 结构化值检索:[Ontology Feature 结构化检索](references/ontology-feature-search.md)
|
|
21
|
+
- 创建和修改资源:[Data 写入](references/data-write.md)
|
|
22
|
+
- Ontology、Container、Trash 与转换:[Data 初步治理](references/data-governance.md)
|
|
23
|
+
- JSONL、CSV、XLSX 与 Ontology 迁移:[Data 导入导出](references/data-transfer.md)
|
|
24
|
+
|
|
25
|
+
## 边界
|
|
26
|
+
|
|
27
|
+
- 新 Data 能力优先使用 Ontology;Bucket 只用于旧合同兼容。
|
|
28
|
+
- 不执行永久 Purge,不把 Container Membership remove 描述为删除 Asset。
|
|
29
|
+
- 筛选失败或空集合不得触发 View 转换、Raw API、PG 扫描或视角写重放。
|
|
30
|
+
- Data 文件未指定文件格式时按 JSONL;真实导入必须先对同一输入完成全量 dry-run,并获得精确 Profile、Perspective、Ontology 与文件授权。
|
|
31
|
+
- Asset/附件 URL 只在 CLI 内部使用;不得显示、签名或经普通 HTTP 工具处理。
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Data 视角路由
|
|
2
|
+
|
|
3
|
+
Data 查询视角由 CLI 根据经过认证的 Session 能力统一解析,Skill 不得自行模拟路由或手工重试。`--perspective` 只接受 `studio|kernel`;省略该参数表示使用 CLI 的自动策略,不得传 `auto`,也不得构造 `x-monkeys-data-perspective` Header。
|
|
4
|
+
|
|
5
|
+
## 决策合同
|
|
6
|
+
|
|
7
|
+
1. 用户明确要求 Studio/前台:传 `--perspective studio`,只查 Studio。即使 Session 同时具有 Kernel 权限,也不得升级到 Kernel;Studio 空结果或 404 直接返回。
|
|
8
|
+
2. 用户明确要求 Kernel/后台/管理视角:传 `--perspective kernel`,直接查 Kernel。权限不足时报告 `DATA_KERNEL_PERMISSION_REQUIRED`,不得降级到 Studio。
|
|
9
|
+
3. 用户未指定视角:省略 `--perspective`。
|
|
10
|
+
- Session 有 Studio 权限时先查 Studio。
|
|
11
|
+
- Studio 返回确定性的空集合,或精确 GET 资源返回 404,并且 Session 同时有 Kernel 权限时,CLI 最多自动升级一次到 Kernel。
|
|
12
|
+
- Session 只有 Kernel 权限时直接查 Kernel。
|
|
13
|
+
- 401/403、认证过期、网络错误、5xx、合同/响应不兼容、校验失败及其他不确定错误均不得触发升级。
|
|
14
|
+
4. 写操作不会因失败或结果形态自动重放到另一个视角。治理命令和 `visible|creatable|all` 等固定语义入口仍受命令自身声明的可用视角约束;不支持所选视角时报告 `DATA_PERSPECTIVE_UNAVAILABLE`,不得换用 Raw API 伪造等价能力。
|
|
15
|
+
|
|
16
|
+
这套合同与 Lark CLI 的身份解析原则一致:显式选择优先于默认选择,命令声明支持的身份范围,最终解析结果进入结构化输出;Monkeys 额外只为确定性的只读空结果提供 Studio 到 Kernel 的一次升级。
|
|
17
|
+
|
|
18
|
+
## 输出与审计
|
|
19
|
+
|
|
20
|
+
最终答复必须引用 CLI 返回的 `effectivePerspective`,并同时检查:
|
|
21
|
+
|
|
22
|
+
- `requestedPerspective`:`studio`、`kernel` 或省略参数产生的 `auto`;
|
|
23
|
+
- `effectivePerspective`:实际返回结果的视角;
|
|
24
|
+
- `perspectiveSource`:`explicit`、`fixed-route` 或 `studio-first`;
|
|
25
|
+
- `perspectiveResolution.attempts`:按顺序记录 `studio|kernel` 和 `success|empty|not_found`;
|
|
26
|
+
- `perspectiveResolution.fallbackReason`:只有实际升级时才出现,为 `studio_empty` 或 `studio_not_found`;
|
|
27
|
+
- `teamMode`、可选的 `effectiveTeamId` 与 `resourceLocator`。
|
|
28
|
+
|
|
29
|
+
使用 Studio 返回结果时,说明结果受前台 Team、可见性与权限过滤。发生自动升级时,明确说明 Studio 的确定性空结果/精确资源不存在,以及最终数据来自 Kernel。没有 `fallbackReason` 时,不得宣称发生过升级。
|
|
30
|
+
|
|
31
|
+
## Team 与资源定位
|
|
32
|
+
|
|
33
|
+
Team 与 Data Perspective 分开处理:Kernel 是租户内管理视角,Kernel 全局读取默认不传 `--team`;只有用户明确要求 Team 筛选时才传。Studio 的 Team 表示前台 Team 上下文。
|
|
34
|
+
|
|
35
|
+
Field、View、Feature Value、Advanced Asset Search 和 Asset Export 等 Kernel 子资源读取可能需要 `--resource-team`。它只接受用户或权威资源元数据已确认的数据资源 Team,不得从 Ontology owner Team、Session Team、空结果或 404 猜测。自动模式下可以预先传已确认的 `--resource-team`:Studio 尝试不会把它当作 Team 上下文;如果升级到 Kernel,CLI 才把它用于资源定位。CLI 通过 `resourceLocator.source=explicit-flag` 报告该定位,它不会把 `teamMode=none` 改成 Team 筛选,不得描述成 Kernel 查询作用域。
|
|
36
|
+
|
|
37
|
+
`DATA_RESOURCE_TEAM_REQUIRED`、`DATA_TEAM_ROLE_CONFLICT` 或 `DATA_RESOURCE_TEAM_NOT_APPLICABLE` 时停止并报告;不得猜 Team `0`、切换为 Raw API 或继续盲试。
|
|
38
|
+
|
|
39
|
+
## Team 0 共享/系统分区
|
|
40
|
+
|
|
41
|
+
Team `0` 是保留的共享/系统数据分区,不表示“所有 Team”。只有用户明确要求共享/系统数据,或权威资源元数据确认目标位于 Team `0` 时,才能使用它:直接选择 Team `0` 的 Ontology/Asset 分区时传 `--team 0`;Kernel 子资源定位时传 `--resource-team 0`。
|
|
42
|
+
|
|
43
|
+
Team `0` 的 Ontology 可以作为共享 Schema 被其他 Team 复用,因此 `Ontology.teamId=0` 不自动证明其 Asset 或 data resource Team 也是 `0`。Studio/Public 路径中的 Team `0` 数据通常按共享发布数据只读使用,写权限仍完全以服务端授权为准。
|
|
44
|
+
|
|
45
|
+
## 能力边界
|
|
46
|
+
|
|
47
|
+
- 双视角查询:View、Asset、Tag、Tag Group、Field List/Get、Feature Value 等统一 Data 读取。
|
|
48
|
+
- 固定 Studio 语义:`data ontology list --scope visible|creatable`。
|
|
49
|
+
- 固定 Kernel 语义:`data ontology list --scope all`、`data ontology get/create/update/import`、`data asset import-jsonl` 及其 `status/cancel`,以及其他命令明确标记的 Kernel 专有治理操作。
|
|
50
|
+
- Cursor 会绑定查询上下文并记录实际视角;Studio 首次升级到 Kernel 后,下一页直接延续 Kernel,不重新把 Kernel page token 发给 Studio。
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Data 读取
|
|
2
|
+
|
|
3
|
+
## 选择命令
|
|
4
|
+
|
|
5
|
+
- Ontology:`data ontology list`
|
|
6
|
+
- Container/View:`data view tree`
|
|
7
|
+
- View 完整行表:`data view rows`
|
|
8
|
+
- Asset:`data asset list/search/get/sample`
|
|
9
|
+
- Asset 媒体:`data asset media download`
|
|
10
|
+
- View Feature 附件:`data asset attachment download`
|
|
11
|
+
- Field:`data field list/get`
|
|
12
|
+
- Feature Value:`data value get`
|
|
13
|
+
- Tag/Tag Group:对应的 `list/get`
|
|
14
|
+
|
|
15
|
+
## 流程
|
|
16
|
+
|
|
17
|
+
1. 用户明确要求 Kernel 时用 `data ontology list --scope all --perspective kernel`;明确要求 Studio 时用 `data ontology list --scope visible --perspective studio --team <Team ID>`。`visible|creatable|all` 是固定语义入口,不在它们之间自动改写。目标 Ontology 已知、用户未指定视角时,后续双视角查询省略 `--perspective`,由 CLI 执行 Studio-first。
|
|
18
|
+
2. Kernel 全局读取默认不传 `--team`;只有用户明确要求某 Team 且命令支持筛选时才传。Field、View、Feature Value、Feature 附件和 Advanced Asset Search 需要后端资源 Team 时传已确认的 `--resource-team <数据 Team>`;不得从 Ontology owner `teamId`、Session 或空结果猜测。已确认目标位于共享/系统数据分区时,直接分区查询传 `--team 0`,子资源定位传 `--resource-team 0`。明确 Studio 时传 `--team` 且不传 `--resource-team`;自动模式可携带已确认的 `--resource-team` 供 Kernel 升级后定位,Studio 尝试不会把它当作 Team 上下文。
|
|
19
|
+
3. 检查输出中的 `requestedPerspective`、`effectivePerspective`、`perspectiveResolution`、`teamMode`、可选的 `effectiveTeamId` 和 `resourceLocator`。`teamMode=none` 表示 CLI 未施加 Team 上下文/筛选;`resourceLocator` 只说明后端分区定位。`perspectiveResolution.fallbackReason` 为 `studio_empty|studio_not_found` 时,说明 Studio 已确定为空/不存在且最终结果来自 Kernel;其他错误不得由 Skill 手工换视角重试。CLI 返回 `DATA_RESOURCE_TEAM_REQUIRED` 时请求已确认的数据资源 Team;不得把 `0` 当默认兜底。
|
|
20
|
+
4. 用户要求“列出/查看某个 View 的数据”且未指定视角时,使用 `monkeys data view rows --ontology <Ontology ID> --view <View ID> --resource-team <已确认的数据 Team> --limit 20 --profile <Profile> --output json`;CLI 会把复合查询整体固定在一个视角,必要时从头用 Kernel 重查,避免混合两侧数据。明确 Studio 时改用 `--team` 且不传 `--resource-team`;明确 Kernel 时补 `--perspective kernel`。不要要求用户额外指定“完整列”,也不要先用紧凑 `data asset list` 代替。
|
|
21
|
+
5. View 类型为 `filter` 且已经配置 Tag/Field 规则时,继续使用 `data view rows`,由 CLI 按当前部署合同解析 `allOf`、`anyOf`、`noneOf` 与启用的字段规则。临时按 Ontology 全局 Feature 的结构化值筛选时,读取[Ontology Feature 结构化检索](ontology-feature-search.md),使用 `data asset search --expression-json/--expression-file`;其他临时条件仍以命令 Help 为准。筛选失败或结果为空时先核对上下文、View 类型和规则,禁止通过 `data view convert-to-container` 兜底。
|
|
22
|
+
6. 依据返回的有序 `columns` 和 `rows` 在聊天中展示完整 Markdown 表格。列较多时按列分成多个表格,每个表都保留 Asset ID 和名称用于关联;不得静默省略列。附件单元格只显示“可下载”和数量,不显示 URL。
|
|
23
|
+
7. 只有用户明确要求简略列表、资源元数据或低上下文投影时,才使用 `data asset list --view <View ID>`。默认单页有界;只有用户确实需要时扩大范围。
|
|
24
|
+
8. 抽样使用 `data asset sample` 的有界样本,不自行无限翻页后随机。
|
|
25
|
+
9. 只复用同一 Context、Team 模式、Data 合同、Ontology、View 和查询生成的 Cursor;CLI Cursor 会保留自动路由后的实际 Data Perspective,游标不匹配时重新查询。
|
|
26
|
+
10. 用户需要读取、查看或保存 Asset 封面图片/媒体时,使用 `monkeys data asset media download <Asset ID> --ontology <Ontology ID> --out <本地路径> --profile <Profile> --output json`;用户明确指定视角时再补 `--perspective studio|kernel`。`--source auto` 默认依次选择 `primaryContent.value`、`media`、`thumbnail`;需要特定来源时显式传 `--source`。
|
|
27
|
+
11. 用户需要 View Feature 中的 PDF/文件时,使用 `monkeys data asset attachment download <Asset ID> --ontology <Ontology ID> --view <View ID> --field <Field ID 或唯一精确名称> --out <本地路径> --profile <Profile> --output json`;用户明确指定视角时再补 `--perspective studio|kernel`。历史 Field 类型可能是 `img`,仍应按实际 Content-Type/文件内容称为 PDF 或附件,不要误称为图片。
|
|
28
|
+
12. 下载成功后依据 CLI 返回的本地 `path` 展示或处理文件,并向用户报告来源 Field、大小和 SHA-256;不要把二进制正文塞入 JSON 或聊天文本。
|
|
29
|
+
13. 两种下载都由 CLI 内部处理对象地址:公开 HTTPS 对象使用匿名、无身份 Header、无重定向、有界原子下载;对象明确返回 401/403/404 时,CLI 才请求 Server 生成短期签名并重试。CLI 不自行签名,任何规范或签名 URL 都不得进入结构化输出或聊天。网络错误、重定向、异常 Content-Type、超限或签名失败必须直接报告,不得使用普通 HTTP、Raw API 或手工 URL 兜底。
|
|
30
|
+
14. 覆盖本地已有文件前必须得到用户对该精确路径的授权,并同时传 `--overwrite --yes`。默认最大 50 MiB;只有任务确有需要时才提高 `--max-bytes`,不得超过 1 GiB。
|
|
31
|
+
|
|
32
|
+
参数和筛选条件始终以相应命令的 `--help` 为准。
|
|
33
|
+
|
|
34
|
+
## Team 0 用法
|
|
35
|
+
|
|
36
|
+
下面三类命令分别表示“发现 Team `0` 的 Ontology”“筛选 Team `0` 的 Asset”和“定位 Team `0` 中的 Kernel 子资源”:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
monkeys data ontology list --scope all --perspective kernel --team 0 --profile <Profile> --output json
|
|
40
|
+
monkeys data asset list --ontology <Ontology ID> --perspective kernel --team 0 --profile <Profile> --output json
|
|
41
|
+
monkeys data view rows --ontology <Ontology ID> --view <View ID> --resource-team 0 --perspective kernel --profile <Profile> --output json
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
前两类输出应为 `teamMode=filter`、`effectiveTeamId=0`;第三类仍为 `teamMode=none`,并通过 `resourceLocator.teamId=0` 报告后端分区定位。不要同时传 `--team 0` 与 `--resource-team 0`,也不要把任一形式解释为“查询所有 Team”。
|
|
45
|
+
|
|
46
|
+
`visible` 只表示当前身份可以读取,不代表可以创建、更新或治理。`data bucket` 和 `--bucket` 只用于旧脚本/旧部署兼容;新任务不得优先使用。
|
|
@@ -12,14 +12,14 @@
|
|
|
12
12
|
|
|
13
13
|
## Agent 执行流程
|
|
14
14
|
|
|
15
|
-
1. 按[Data 视角路由](data-perspective.md)
|
|
15
|
+
1. 按[Data 视角路由](data-perspective.md)处理视角。用户明确要求时传 `--perspective studio|kernel`;未指定时省略,由 CLI 执行 Studio-first。Kernel 全局查询默认不传 `--team`,用户明确要求 Team 筛选时才传。
|
|
16
16
|
2. 查询目标 Ontology 的 Feature Column:
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
|
-
monkeys data field list --profile <Profile> --
|
|
19
|
+
monkeys data field list --profile <Profile> --ontology <Ontology ID> --resource-team <数据 Team> --output json
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
Kernel 下不要添加 `--team
|
|
22
|
+
自动模式可携带已确认的 `--resource-team` 供 Kernel 升级后定位;Studio 尝试不会使用它作为 Team 上下文。Kernel 下不要添加 `--team`,除非用户明确要求 Team 筛选。CLI 不会从 Ontology owner Team 自动推导。用户明确指定 Studio 时改用明确的 `--team` 并移除 `--resource-team`。
|
|
23
23
|
|
|
24
24
|
3. 从返回项读取 `config.fieldKey`、`type` 和 `scopeContainerViewId`。只选择 `fieldKey` 非空、Ontology-global 且类型受支持的列;多个同名展示列不能按名称猜测。
|
|
25
25
|
4. 使用 `--expression-json` 或复杂条件优先使用 `--expression-file`,并在 Kernel 命令继续传同一 `--resource-team`。不要手工包装 `filterConfigV2.expression`;CLI 会完成适配。
|
|
@@ -74,8 +74,8 @@ CLI 只校验 expression 公共结构和 JSON 标量形状。Feature 的真实
|
|
|
74
74
|
|
|
75
75
|
- `DATA_SEARCH_EXPRESSION_INVALID`:请求未发送。修正节点路径、op、fieldKey、cmp、value 或表达式上限。
|
|
76
76
|
- `DATA_SEARCH_EXPRESSION_CONFLICT`:请求未发送。删除重复的 `filterConfigV2.expression` 或 `--expression-*` 之一。
|
|
77
|
-
- `DATA_RESOURCE_TEAM_REQUIRED`:缺少已确认的数据资源 Team。停止并向用户请求 `--resource-team
|
|
78
|
-
- `DATA_TEAM_ROLE_CONFLICT` / `DATA_RESOURCE_TEAM_NOT_APPLICABLE`:`--team` 与 `--resource-team`
|
|
77
|
+
- `DATA_RESOURCE_TEAM_REQUIRED`:缺少已确认的数据资源 Team。停止并向用户请求 `--resource-team`;不得猜 owner Team、`0` 或 Session Team,也不得使用 Raw API 或在空结果后补 Team 重试。若用户或权威资源元数据已确认 data resource Team 为 `0`,则应显式传 `--resource-team 0`。
|
|
78
|
+
- `DATA_TEAM_ROLE_CONFLICT` / `DATA_RESOURCE_TEAM_NOT_APPLICABLE`:`--team` 与 `--resource-team` 角色冲突,或 locator 不适用于明确 Studio/旧 Bucket 读取。按 recovery 修正参数,不得改走 Raw API。
|
|
79
79
|
- `HTTP_400`:重新读取 Feature Column,核对 `config.fieldKey`、类型、比较符、全局作用域和不支持边界。不得 Raw API 降级。
|
|
80
80
|
- `HTTP_503`:Feature 搜索依赖的 ES/索引不可用。向用户明确报告服务暂不可用和 `retryable`;不得改为 PG EAV 扫描、Raw API、模糊搜索或其他静默兜底。
|
|
81
81
|
- 空结果:先检查 Perspective、Team、Ontology、权限和真实查询条件;只有紧邻已确认写入时才按最终一致性做一次有界重试。
|
|
@@ -37,7 +37,8 @@
|
|
|
37
37
|
|
|
38
38
|
## Kernel 与 Studio 可见性
|
|
39
39
|
|
|
40
|
-
-
|
|
40
|
+
- 用户未指定视角时由 CLI 先查 Studio,确定性为空且当前账号有 Kernel 权限时再升级;Skill 不默认选择 Kernel。Kernel 全局读取没有用户 Team 作用域,显式 `--team` 只用于用户明确筛选。Ontology 子资源需要后端数据资源 Team 时传已确认的 `--resource-team`;owner Team 与 data resource Team 可以不同,Agent 和 CLI 都不得猜测。
|
|
41
|
+
- Team `0` 是共享/系统数据分区,不是“所有 Team”。Team `0` 的 Ontology 可作为共享 Schema 被普通 Team 复用,所以 `Ontology.teamId=0` 不代表其中所有 Asset 或子资源都位于 Team `0`;直接查询已确认的 Team `0` 分区用 `--team 0`,定位已确认位于该分区的 Kernel 子资源用 `--resource-team 0`。
|
|
41
42
|
- Studio 结果受当前账户和 Team 可见性限制;用户明确要求 Studio 时必须遵守。
|
|
42
43
|
- Kernel 权限不足且用户未指定视角时,Skill 只有在存在等价 Studio 操作并先在聊天中告知范围收窄后,才可显式降级。
|
|
43
44
|
- 后台能找到 Asset、前台某个 View 找不到,常见原因是 Studio 权限或 Membership/Filter 条件不同,不代表 Asset 不存在。
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monkeys-openapi
|
|
3
|
+
description: 通过 monkeys CLI 的 schema 与 api list/describe/call 探索已发布 OpenAPI,并在语义命令明确返回 fallbackEligible 时执行受控降级。用户需要查看服务端 operation schema、处理绑定漂移或语义命令暂未覆盖的已发布能力时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Monkeys OpenAPI
|
|
7
|
+
|
|
8
|
+
先运行 `monkeys skills read monkeys-shared`,再读取[受控语义到 API 降级](references/fallback.md)。
|
|
9
|
+
|
|
10
|
+
## 执行流程
|
|
11
|
+
|
|
12
|
+
1. 优先使用语义命令和 `monkeys schema <command path>`;只有语义命令返回 `fallbackEligible=true` 时才考虑降级。
|
|
13
|
+
2. 用 `monkeys api list` 搜索已发布 operation,再用 `monkeys schema --operation-id <operationId>` 或 `monkeys api describe` 核对 method、path、参数、权限、风险与 idempotency。
|
|
14
|
+
3. 写操作先用 `api call --dry-run`,回显 Profile、Team、operationId 与精确目标;需要确认的风险得到用户授权后才传 `--yes`。
|
|
15
|
+
4. 只使用 CLI 返回的同一 Context、短期 Evidence;不得自行拼 URL、Header 或直接发送 HTTP。
|
|
16
|
+
|
|
17
|
+
## 禁止降级
|
|
18
|
+
|
|
19
|
+
认证、授权、确认、输入错误、Workflow 写操作,以及请求已 `sent` 或 `result_unknown` 时禁止降级或重放。OpenAPI 不可用、过期或未发布时停止并报告恢复建议。
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monkeys-shared
|
|
3
|
+
description: 通过 monkeys CLI 选择多租户或私有化部署的 Profile、Context、Team 与 Identity,并遵循统一的输出、风险、错误、安全和 CLI/Skill 版本规则。用户询问 Monkeys 平台能力、订阅上下文、命令参数、结构化错误、版本兼容或其他 monkeys-* Skill 需要公共规则时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Monkeys Shared
|
|
7
|
+
|
|
8
|
+
只通过 `monkeys` CLI 操作平台。不要直接发送 HTTP 请求,也不要把 Tool、Workflow 或 Plugin capability 当作平台 API。
|
|
9
|
+
|
|
10
|
+
## 公共执行流程
|
|
11
|
+
|
|
12
|
+
1. 运行 `monkeys version show`;若 `_notice.update` 存在,只报告升级提示,得到用户授权后才运行 `monkeys update`。
|
|
13
|
+
2. 运行 `monkeys context show --profile <Profile>` 核对 endpoint、tenant、credential kind、Surface 与 Team。Profile 不明确时先用 `monkeys profile list`,Team 或 Identity 不明确时用 `monkeys team list`、`monkeys identity list`,禁止猜测。
|
|
14
|
+
3. 第一次使用命令或参数不确定时运行 `monkeys schema <command path>`;领域导航不明确时运行 `monkeys --help`。
|
|
15
|
+
4. 默认消费 JSON envelope:成功读取 `.data`,失败读取 `.error`,系统提示读取 `._notice`。需要窄字段时使用 `--jq`;面向人展示时才用 `--format table|text`。
|
|
16
|
+
5. 写操作先运行 `--dry-run`,回显精确 Profile、Team、目标 ID 与风险。只有 schema 标记需要确认时才传 `--yes`,不得自动重放结果未知的写请求。
|
|
17
|
+
6. 返回结果、关键资源 ID 与 Context Fingerprint;失败时返回 error code、recovery、retryable 和副作用是否未知。
|
|
18
|
+
|
|
19
|
+
## 按需读取
|
|
20
|
+
|
|
21
|
+
- 平台领域与命令入口:[平台能力地图](references/platform-overview.md)
|
|
22
|
+
- Secret、确认、批处理与结构化错误:[安全与错误](references/safety-errors.md)
|
|
23
|
+
- CLI/Skills 同版本合同:[兼容性](references/compatibility.md)
|
|
24
|
+
|
|
25
|
+
## 不可违反的边界
|
|
26
|
+
|
|
27
|
+
- 不索要、接收、显示或落盘密码、API Key、Bearer Token、Session Token 或签名 URL。
|
|
28
|
+
- 不覆盖认证、Tenant、Team 与 Data Perspective 等受保护 Header。
|
|
29
|
+
- 不把可读、Public 或 Shared 理解为可写;服务端授权是最终判断。
|
|
30
|
+
- 不从 URL、页面标题、相似名称、Owner Team 或 Session Team 猜 Tenant、Team、Identity 或资源位置。
|
|
31
|
+
- 不自动重放已发送、超时或结果未知的写操作;只做只读恢复检查。
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
- 本 Skill 面向命令 Schema Major `2`,最低 CLI 版本 `0.11.0`。
|
|
4
4
|
- 开始任务时运行 `monkeys version show --output json`。
|
|
5
5
|
- 任意结构化输出中的 `_notice.update` 表示 npm `latest` 高于当前 CLI;报告 `current`、`latest` 与 `command`。可用 `monkeys update --check --output json` 实时复核,只有用户明确授权后才运行 `monkeys update` 或 `monkeys update --force`。
|
|
6
|
-
- `monkeys update` 升级全局 npm
|
|
6
|
+
- `monkeys update` 升级全局 npm 包后,从新包的全局安装目录同步全部 7 个同版本 Skills,并写入版本与校验和状态;用 `monkeys skills status` 检查漂移,用 `monkeys skills sync` 只重同步 Skills。若 `skillsAction=failed`,报告警告,不回滚 CLI 或猜测 Skill 路径。
|
|
7
7
|
- CLI Major、命令 Schema Major 或 Skill 声明不兼容时停止写操作,升级匹配版本后再继续。
|
|
8
8
|
- OpenAPI Snapshot 可动态刷新,但语义命令合同不会因刷新而被静默改写。
|
|
9
9
|
- Data 合同由 Deployment 的 `data_contract=auto|ontology-v1|bucket-v1` 决定;`auto` 依次采用精确 OpenAPI、同一上下文缓存和有界只读探测。只有 Ontology 路由明确返回 404 时才探测旧 Bucket 路由。
|
|
10
10
|
- 输出中的 `dataContractVariant` 和 `dataScope` 是当前请求的合同/作用域真相。认证、授权、网络、5xx 或响应不兼容不得触发合同切换,已发送写操作不得换合同重放。
|
|
11
|
-
- Data
|
|
11
|
+
- 用户明确指定 Data 视角时传 `--perspective kernel|studio`;未指定时省略。以输出中的 `requestedPerspective`、`effectivePerspective`、`perspectiveSource`、`perspectiveResolution` 和 Perspective-aware `contextFingerprint` 判断实际路由;不得根据 Profile 名称猜测。
|
|
12
12
|
- Data 输出中的 `teamMode=none|filter|context` 表示 CLI 是否施加 Team;只有存在 `effectiveTeamId` 时才能报告具体筛选/上下文 Team。Kernel 全局读取必须为 `teamMode=none`;可选 `resourceLocator.kind=ontology-resource-team`、`source=explicit-flag` 只表示 Ontology 数据资源定位,不改变 Team 模式。CLI 不从 owner Team 自动推导 locator。
|
|
13
13
|
- 出现 Binding 漂移时按受控降级流程处理,不猜测 operationId。
|
|
14
14
|
- Execution 列表可能适配 `legacy-list-v1` 或 `db-search-summary-v1`;以输出的 `contractVariant` 为诊断依据,只消费稳定字段。
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
只有 `retryable=true` 且操作本身安全或带稳定幂等键时才有限重试。退出码 3/4/7 不得通过 Raw API 绕过。
|
|
10
10
|
|
|
11
|
-
`DATA_RESOURCE_TEAM_REQUIRED` 表示 Kernel Ontology 读取缺少已确认的 data resource Team;`DATA_TEAM_ROLE_CONFLICT` 表示同时传了用户筛选/上下文 `--team` 和资源定位 `--resource-team`;`DATA_RESOURCE_TEAM_NOT_APPLICABLE` 表示把 locator
|
|
11
|
+
`DATA_RESOURCE_TEAM_REQUIRED` 表示 Kernel Ontology 读取缺少已确认的 data resource Team;`DATA_TEAM_ROLE_CONFLICT` 表示同时传了用户筛选/上下文 `--team` 和资源定位 `--resource-team`;`DATA_RESOURCE_TEAM_NOT_APPLICABLE` 表示把 locator 用在明确 Studio 或旧 Bucket 读取。三类错误都发生在请求前。不得把 `0` 硬编码为默认值,也不得使用 owner Team 或 Session Team 猜测、调用 Raw API 或继续盲试;用户或权威资源元数据已确认共享/系统数据分区时,`--resource-team 0` 是有效的显式定位。应向用户报告 Ontology ID、错误和 recovery。
|
|
12
12
|
|
|
13
13
|
## Secret 与输出
|
|
14
14
|
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monkeys-system-config
|
|
3
|
+
description: 通过 monkeys CLI 查看、校验、导出、历史查询并按 Key 窄修改 Kernel System Config。用户提到平台系统配置、配置 Key、环境配置、校验、历史版本或敏感配置值时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Monkeys System Config
|
|
7
|
+
|
|
8
|
+
先运行 `monkeys skills read monkeys-shared`,再读取[System Config](references/system-config.md)。
|
|
9
|
+
|
|
10
|
+
## 执行原则
|
|
11
|
+
|
|
12
|
+
1. 只使用 Kernel Profile;Team 仅是身份上下文,不是配置作用域。
|
|
13
|
+
2. 先运行 `monkeys config overview/list/get` 发现精确 Key,再用 `monkeys schema config <action>` 核对参数;禁止猜 Key。
|
|
14
|
+
3. 修改前运行同一命令的 `--dry-run`,回显环境、精确 Key、非敏感摘要与恢复路径。
|
|
15
|
+
4. 敏感值只通过 `config set --value-stdin` 输入;不得出现在参数、文件、日志或回答中。
|
|
16
|
+
|
|
17
|
+
## 边界
|
|
18
|
+
|
|
19
|
+
- 不提供或臆造 replace、import、rollback、unset/reset。
|
|
20
|
+
- `MUTATION_OUTCOME_UNKNOWN` 时禁止自动重试,只做 get/history 等只读恢复检查。
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: monkeys-workflow
|
|
3
|
+
description: 通过 monkeys CLI 查询、创建、更新、删除、导入、导出和运行 Workflow,查看或等待 Execution,并安全传输平台文件。用户提到工作流定义、执行记录、运行输入输出、等待状态、上传或下载文件时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Monkeys Workflow
|
|
7
|
+
|
|
8
|
+
先运行 `monkeys skills read monkeys-shared`,再读取[Workflow、Execution 与文件](references/workflow-execution-files.md)。
|
|
9
|
+
|
|
10
|
+
## 执行原则
|
|
11
|
+
|
|
12
|
+
1. 用 `monkeys context show` 核对 Profile 与 Team;用 `monkeys schema workflow <action>` 获取当前参数合同。
|
|
13
|
+
2. 查询目标 Workflow 与版本后再写;写操作先 `--dry-run`,并回显实际 Team、Workflow ID、版本与输入文件。
|
|
14
|
+
3. 运行后返回 `workflowInstanceId`;需要结果时使用 `execution wait/watch/get`,不要把本地 Ctrl+C 误报为服务端取消。
|
|
15
|
+
4. 文件只用 `monkeys file upload/download`;不得把 URL 猜成对象 Key,也不得显示签名 URL。
|
|
16
|
+
|
|
17
|
+
## 边界
|
|
18
|
+
|
|
19
|
+
- Workflow 写操作不得使用 Raw API 降级,不使用 ETag;依赖 CLI 写前快照与写后回读恢复。
|
|
20
|
+
- 已发送或结果未知的写操作禁止自动重放。
|
|
21
|
+
- 以输出的 `contractVariant`、`teamMode`、`effectiveTeamId` 和 `ownerTeamId` 为事实,不补造缺失字段。
|
package/skills/monkeys/SKILL.md
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: monkeys
|
|
3
|
-
description: 理解并通过 monkeys CLI 安全操作 Monkeys 平台的多租户/私有化部署、认证、Workflow、Execution、Agent Work、文件、Data/Ontology 与 Kernel System Config。用户询问平台能力、Ontology、View、增强视图、Asset、Field、Tag 等概念,要求管理平台资源,或 Agent 需要选择 Profile、处理结构化错误和执行受控 OpenAPI 降级时使用。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Monkeys CLI
|
|
7
|
-
|
|
8
|
-
只通过 `monkeys` CLI 操作平台。不要直接发送 HTTP 请求,也不要把 Tool/Workflow 的 capability 声明当作平台 API。
|
|
9
|
-
|
|
10
|
-
## 执行流程
|
|
11
|
-
|
|
12
|
-
1. 运行 `monkeys version show --output json`,确认 CLI 可用和命令 Schema 兼容。若输出包含 `_notice.update`,向用户报告新版本和 `monkeys update`;只有用户明确同意升级后才执行该全局安装命令。
|
|
13
|
-
2. 选择明确的 `--profile`。Data 任务按[Data 视角路由](references/data-perspective.md)选择显式 `--perspective`:Kernel 全局读取默认不传 `--team`,只有用户明确筛选时才传;Field、View、Feature Value、Advanced Search 和 Asset Export 等需要数据资源定位时传已确认的 `--resource-team`。Studio 使用明确的 Team 上下文。不要在任务中途隐式切换上下文。
|
|
14
|
-
3. 在第一次使用命令或参数不确定时运行 `monkeys <命令> --help`。以 CLI 帮助为参数真相,不凭记忆补参数。
|
|
15
|
-
4. 优先调用 Workflow、Execution、Agent Work、File、Data、System Config 等语义命令,并使用 `--output json`。解析结构化结果和退出码,不解析面向人的 Text 文案。
|
|
16
|
-
5. 写操作前向用户回显 Profile、`teamMode`、实际生效的 Team(若有)、Ontology、实际 Data 合同、Data Perspective、精确目标 ID 或 System Config Key。目标模糊时先查询,禁止猜测。
|
|
17
|
-
6. 只按[受控降级](references/fallback.md)处理语义兼容性故障;认证、授权、确认和输入错误不得降级。
|
|
18
|
-
7. 返回执行结果、关键资源 ID、Context Fingerprint;失败时返回错误 code、恢复建议和是否可能已产生副作用。
|
|
19
|
-
|
|
20
|
-
## 按需读取
|
|
21
|
-
|
|
22
|
-
- 解释平台有哪些功能、某项需求应进入哪个领域或当前 CLI 是否覆盖:必须读取[平台能力地图](references/platform-overview.md)。
|
|
23
|
-
- 涉及 Ontology、View、增强视图、Asset、Field、Feature Value、Tag、Membership 或筛选语义:必须读取[Ontology 领域模型](references/ontology-model.md)。
|
|
24
|
-
- 配置部署、切换租户、API Key 或账户登录:读取[认证与上下文](references/authentication.md)。
|
|
25
|
-
- 查询、创建、导入、更新、删除或运行 Workflow,等待 Execution 或传文件:读取[工作流、执行与文件](references/workflow-execution-files.md)。
|
|
26
|
-
- 查询、创建、分配、对话、审批、验收或观察 Agent Work:必须读取[Agent Work](references/agent-work.md)。
|
|
27
|
-
- 查询、搜索或抽样 Data:读取[Data 读取](references/data-read.md)。按 Feature Column 的结构化值搜索 Asset 时,还必须读取[Ontology Feature 结构化检索](references/ontology-feature-search.md)。
|
|
28
|
-
- 创建、修改或删除 Data 资源:读取[Data 写入](references/data-write.md)。
|
|
29
|
-
- 管理 Ontology、移动/复制 Container、回收或恢复:必须读取[Data 治理](references/data-governance.md)。
|
|
30
|
-
- 导入或导出 Ontology 结构、JSONL、CSV 或 XLSX 数据:必须读取[Data 导入导出](references/data-transfer.md)。
|
|
31
|
-
- 任何 Data 操作:必须读取[Data 视角路由](references/data-perspective.md)。
|
|
32
|
-
- 查看、校验、导出或按 Key 修改 Kernel System Config:必须读取[System Config](references/system-config.md)。
|
|
33
|
-
- 语义命令返回 `fallbackEligible=true`:必须读取[受控降级](references/fallback.md)。
|
|
34
|
-
- 处理错误、确认、批处理或 Secret:读取[安全与错误](references/safety-errors.md)。
|
|
35
|
-
- 检查 CLI/Skill 版本:读取[兼容性](references/compatibility.md)。
|
|
36
|
-
|
|
37
|
-
## 不可违反的边界
|
|
38
|
-
|
|
39
|
-
- 不主动索要、接收或在回答中复述密码、API Key、Bearer Token。账户认证只允许通过 `auth login` 返回的 Deployment 浏览器地址完成;CLI 和 Agent 都不得处理账户密码。
|
|
40
|
-
- 首次登录以订阅 `--url` 为唯一 Endpoint 输入,不要求预建 Deployment/Profile。API Key 只经 `--api-key-stdin` 或 `--api-key-env` 导入;浏览器登录只把服务端签发的 Session Token 写入系统 Keyring。
|
|
41
|
-
- Agent 必须使用 `auth login --url <Endpoint> --no-wait --output json` 发起浏览器登录,把原样授权 URL 交给用户,并在用户确认完成后用同一次返回的临时 `profile` 与 `--device-code` 完成轮询;不得自行填写网页登录表单或跨 Endpoint 复用 Device Code。
|
|
42
|
-
- 登录成功后必须以 `/api/configs` 返回的已认证 `tenantId` 作为订阅/Profile 名;不得从 URL 主机名猜租户名。
|
|
43
|
-
- 不覆盖认证、Tenant、Team、Data Perspective 等受保护 Header。
|
|
44
|
-
- 不把 Session 的 `currentTeamId` 或 CLI 返回的 `resourceLocator.teamId` 描述为 Kernel 全局查询作用域,也不为 Kernel 全局读取手工补 `--team`。不得用 Ontology owner Team 猜测 `--resource-team`;缺少已确认值时在聊天中告知并停止。
|
|
45
|
-
- 不把 Public/Shared/可读理解为可写;服务端授权是最终判断。
|
|
46
|
-
- 不执行 Ontology/Bucket Delete、Container Purge、批量 Trash 或语义层未提供的永久清理。
|
|
47
|
-
- 不把 `data container remove` 描述为删除 Asset;它只移除 Membership,可从 Trash 恢复。
|
|
48
|
-
- 不在聊天或普通 HTTP 工具中处理 Asset/附件 URL,也不自行生成对象存储签名;始终使用 CLI 下载命令。CLI 可匿名读取公开 HTTPS 对象,访问受限时必须改由 Server 返回签名 URL,任何 URL 都不得显示在聊天中。
|
|
49
|
-
- 不把 View Feature 中的 PDF/文件误当成 Asset 封面;使用 `data asset attachment download`,只展示本地文件结果和审计信息,不展示 Feature Value URL。
|
|
50
|
-
- 不把筛选失败当成 View 类型不正确,不得为了实现 Tag/Field 筛选而自动执行 Filter View 到 Container View 的转换。
|
|
51
|
-
- 不把 Feature 结构化检索描述为语义、向量、模糊或全文搜索;不使用 Feature 展示名、Field ID 或 ES path 代替 `config.fieldKey`,也不在 HTTP 400/503 后改用 Raw API、PG 扫描或其他静默兜底。
|
|
52
|
-
- 不自动重放已发送或结果未知的写操作。
|
|
53
|
-
- Workflow 写操作不得使用 Raw API 降级;Update 不使用 ETag,并依赖 CLI 写前快照与写后回读恢复。
|
|
54
|
-
- Data 文件未显式指定 `--format` 时始终按 JSONL 处理;不得根据扩展名猜测 CSV/XLSX。真实导入必须先完成全量预检,并要求用户对精确 Profile、Perspective、Ontology 和文件明确授权。
|
|
55
|
-
- Data 文件迁移使用 `data asset import/export`;需要 Server 后台原生 JSONL 任务时使用 `data asset import-jsonl`;只给已有 Asset 回填图片/文本 Feature 时优先使用 `data asset feature-backfill`。不要根据文件名或数据量在这些写路径间静默切换。`data asset enrich-jsonl` 只是已弃用兼容入口;若被显式调用,必须把结果中的替代命令以当前聊天界面可读方式告诉用户。
|
|
56
|
-
- 完整 Ontology 迁移必须区分 owner Team 与 data resource Team:结构命令显式传 `--team` 和需要时的 `--resource-team`;Kernel Asset Export 用 `--resource-team` 定位读取资源,Asset Import 等写命令仍用 `--team` 指定目标数据 Team。包含 Field、Tag 或 View 引用的 Asset 导入必须传同一次真实 Ontology 导入生成的 `--ontology-report`,并在聊天中说明目标视角与 Team;不得用同名匹配或来源 ID 猜测。
|
|
57
|
-
- System Config 只允许 Kernel Profile;Team 仅是身份上下文,不是配置作用域。敏感 Key 只允许通过 `config set --value-stdin` 写入。
|
|
58
|
-
- Agent Work 只允许 Kernel Profile,固定 `teamMode=none`,不得传入或继承 Team,也不得在权限不足时静默改用 Studio。
|
|
59
|
-
- Agent Work 出现 `user_input_required`、`spec_approval_required`、`pending_review`、`pending_acceptance`、`blocked`、失败或超时时,必须在聊天中明确告诉用户;`MUTATION_OUTCOME_UNKNOWN` 时只做只读恢复检查。
|
|
60
|
-
- Agent Work 的聊天反馈必须面向人的任务与决策,并按当前 Agent 和聊天界面的可靠显示能力自适应呈现;不得把某个 Profile、租户或 Markdown 组件写成固定前提,也不得默认倾倒原始 JSON。
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
# Data 视角路由
|
|
2
|
-
|
|
3
|
-
CLI 只提供确定性的 `--perspective kernel|studio` 断言和固定语义命令;路由策略由本 Skill 执行。现有 Server 的统一 Data 接口按当前 Session 是否具有 Kernel Scope 分流,CLI 不发送自定义视角 Header,也不能把同一个 Kernel Session 强制降权为 Studio。不得使用 `auto`,不得直接构造 `x-monkeys-data-perspective` Header。
|
|
4
|
-
|
|
5
|
-
Team 与 Data Perspective 分开处理:Kernel 是租户内管理视角,Kernel 全局读取默认不传 `--team`;只有用户明确要求 Team 筛选时才传。Field、View、Feature Value、Advanced Asset Search 和 Asset Export 等需要下游数据资源 Team 时,使用用户或部署所有者已确认的 `--resource-team`;CLI 通过 `resourceLocator.source=explicit-flag` 报告,它不会改变 `teamMode=none`,不得描述成 Kernel 查询作用域。Ontology owner Team 与 data resource Team 可以不同,CLI 不会自动推导。Studio 的 Team 表示前台工作空间上下文。Session 的 `currentTeamId` 只是当前登录状态,不能据此宣称 Kernel 查询属于该 Team。
|
|
6
|
-
|
|
7
|
-
## 决策顺序
|
|
8
|
-
|
|
9
|
-
1. 用户明确要求 Studio/前台视角:不得先尝试 Kernel。先用 `auth status` 确认 Session:
|
|
10
|
-
- 从用户明确输入或 `session.currentTeamId` 确认 Studio Team;使用 Session Team 时必须说明结果受该 Team 与前台权限限制。
|
|
11
|
-
- 固定 Studio 入口(例如 `data ontology list --scope visible|creatable`)可直接使用 `--perspective studio`。
|
|
12
|
-
- 其他统一 Data 命令只有在 `session.surfaces.kernel=false` 时才能使用 `--perspective studio`。
|
|
13
|
-
- 若当前 Session 具有 Kernel Scope,必须告诉用户现有 Server 无法将该 Session 强制切到 Studio,并要求用户选择无 Kernel 权限的账户/Profile;不得假装已经切换。
|
|
14
|
-
2. 用户明确要求 Kernel/后台/管理视角:使用 `--perspective kernel`;全局读取不传 `--team`,用户明确要求某 Team 时才把 `--team` 作为筛选条件;命令需要资源定位时传已确认的 `--resource-team`,未知时先在聊天中说明并请求,不得猜测;权限不足时报告错误,不得降级。
|
|
15
|
-
3. 用户未指定视角:每个任务最多运行一次 `monkeys auth status --profile <Profile> --output json` 检查能力。
|
|
16
|
-
- `session.surfaces.kernel=true`:使用 `--perspective kernel`;全局读取默认不传 `--team`。
|
|
17
|
-
- 当前身份没有 Kernel Surface,但命令有 Studio 等价能力:必须先在聊天中明确告诉用户“当前账户没有 Kernel 管理权限,本次将使用 Studio 视角;结果受前台可见性和权限限制。”,再使用 `--perspective studio`。
|
|
18
|
-
- 当前身份没有 Kernel Surface,且命令没有 Studio 等价能力:停止并报告需要 Kernel 权限。
|
|
19
|
-
|
|
20
|
-
最终答复必须引用 CLI 返回的 `effectivePerspective` 与 `teamMode`;存在 `effectiveTeamId` 时同时报告。存在 `resourceLocator` 时说明该 Team 仅用于 Ontology 子资源定位、没有把 Kernel 全局结果收窄为 Team 筛选。若 CLI 只返回 `perspectiveSource=legacy-unverified`,必须明确说明实际视角未经确认。使用 Studio 时必须说明结果受前台 Team、可见性与权限过滤;不得把 Studio 空结果解释为 Kernel 中也不存在。
|
|
21
|
-
|
|
22
|
-
## 能力边界
|
|
23
|
-
|
|
24
|
-
- Session 路由、Kernel 与 Studio 均有实现:View、Asset、Tag、Tag Group、Field List/Ensure、Feature Value。实际分支由 Session Kernel Scope 决定。
|
|
25
|
-
- 固定 Studio 语义:`data ontology list --scope visible|creatable`。
|
|
26
|
-
- 固定 Kernel 语义:`data ontology list --scope all`、`data ontology get/create/update/import`、`data asset import-jsonl` 及其 `status/cancel`、`data field get/update` 和其他命令明确标记的 Kernel 专有治理操作。
|
|
27
|
-
- Skill 默认发现 Ontology 时,Kernel 路径使用 `data ontology list --scope all --perspective kernel` 且不传 Team;Studio 路径使用 `data ontology list --scope visible --perspective studio --team <Team ID>`。
|
|
28
|
-
- Kernel Field List/Get、View Tree/Rows、Feature Value、Feature 附件、Advanced Asset Search 和 Asset Export 使用独立 `--resource-team`,不手工补 `--team`。`DATA_RESOURCE_TEAM_REQUIRED`、`DATA_TEAM_ROLE_CONFLICT` 或 `DATA_RESOURCE_TEAM_NOT_APPLICABLE` 时停止并在聊天中报告;不尝试 owner Team、Team `0`、Session Team、Raw API 或空结果重试。
|
|
29
|
-
|
|
30
|
-
## 受控降级
|
|
31
|
-
|
|
32
|
-
优先在业务命令前通过 `auth status` 选择视角,避免先发一次 Kernel 业务请求。只有以下条件全部满足,Skill 才能把一次失败的 Kernel 尝试改为 Studio:
|
|
33
|
-
|
|
34
|
-
- 用户没有明确要求 Kernel;
|
|
35
|
-
- 错误为 `DATA_KERNEL_PERMISSION_REQUIRED`;
|
|
36
|
-
- `safeDetails.requestState=not_sent`;
|
|
37
|
-
- 同一语义命令具有 Studio 等价能力;
|
|
38
|
-
- 保持同一 Profile、Deployment、Tenant、Ontology 和精确目标;Kernel 全局查询不得凭 Session Team 补造筛选,切换 Studio 前必须确认 Team 并明确告知作用域收窄;
|
|
39
|
-
- 执行 Studio 命令前已在聊天中告知用户。
|
|
40
|
-
|
|
41
|
-
每个任务最多发生一次 Perspective 降级。空结果、404、认证过期、网络错误、5xx、合同或响应不兼容、`sent`、`result_unknown` 都不得触发 Perspective 降级。Perspective 降级与语义命令到 Raw API 的受控降级是两套独立机制,不得混用 `fallbackEligible`。
|
|
42
|
-
|
|
43
|
-
`DATA_STUDIO_SESSION_REQUIRED` 表示当前 Kernel Session 会被统一接口路由到 Kernel,无法满足明确的 Studio 要求。停止并要求无 Kernel Scope 的账户/Profile,或改用固定 Studio 入口;不得改走 Raw API 伪造成功。
|
|
44
|
-
|
|
45
|
-
`DATA_PERSPECTIVE_SESSION_INCOMPATIBLE` 表示 CLI 无法从认证 Session 确认实际能力。停止并报告认证合同问题,不得根据 Profile 名称猜测视角。
|