@inf-monkeys-tech/monkeys-cli 0.11.1 → 0.11.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/README.md +50 -21
  2. package/README.zh.md +27 -19
  3. package/bin/install-wizard.js +12 -2
  4. package/bin/run.js +4 -4
  5. package/dist/command/metadata.d.ts +11 -0
  6. package/dist/command/metadata.d.ts.map +1 -0
  7. package/dist/command/metadata.js +150 -0
  8. package/dist/command/metadata.js.map +1 -0
  9. package/dist/commands/agent/work/watch.d.ts +3 -2
  10. package/dist/commands/agent/work/watch.d.ts.map +1 -1
  11. package/dist/commands/agent/work/watch.js +10 -5
  12. package/dist/commands/agent/work/watch.js.map +1 -1
  13. package/dist/commands/context/show.d.ts +11 -0
  14. package/dist/commands/context/show.d.ts.map +1 -0
  15. package/dist/commands/context/show.js +32 -0
  16. package/dist/commands/context/show.js.map +1 -0
  17. package/dist/commands/execution/watch.d.ts +3 -2
  18. package/dist/commands/execution/watch.d.ts.map +1 -1
  19. package/dist/commands/execution/watch.js +10 -5
  20. package/dist/commands/execution/watch.js.map +1 -1
  21. package/dist/commands/identity/get.d.ts +13 -0
  22. package/dist/commands/identity/get.d.ts.map +1 -0
  23. package/dist/commands/identity/get.js +18 -0
  24. package/dist/commands/identity/get.js.map +1 -0
  25. package/dist/commands/identity/list.d.ts +17 -0
  26. package/dist/commands/identity/list.d.ts.map +1 -0
  27. package/dist/commands/identity/list.js +33 -0
  28. package/dist/commands/identity/list.js.map +1 -0
  29. package/dist/commands/schema.d.ts +17 -0
  30. package/dist/commands/schema.d.ts.map +1 -0
  31. package/dist/commands/schema.js +56 -0
  32. package/dist/commands/schema.js.map +1 -0
  33. package/dist/commands/skills/list.d.ts +9 -0
  34. package/dist/commands/skills/list.d.ts.map +1 -0
  35. package/dist/commands/skills/list.js +11 -0
  36. package/dist/commands/skills/list.js.map +1 -0
  37. package/dist/commands/skills/read.d.ts +14 -0
  38. package/dist/commands/skills/read.d.ts.map +1 -0
  39. package/dist/commands/skills/read.js +20 -0
  40. package/dist/commands/skills/read.js.map +1 -0
  41. package/dist/commands/skills/status.d.ts +9 -0
  42. package/dist/commands/skills/status.d.ts.map +1 -0
  43. package/dist/commands/skills/status.js +12 -0
  44. package/dist/commands/skills/status.js.map +1 -0
  45. package/dist/commands/skills/sync.d.ts +10 -0
  46. package/dist/commands/skills/sync.d.ts.map +1 -0
  47. package/dist/commands/skills/sync.js +36 -0
  48. package/dist/commands/skills/sync.js.map +1 -0
  49. package/dist/commands/team/get.d.ts +13 -0
  50. package/dist/commands/team/get.d.ts.map +1 -0
  51. package/dist/commands/team/get.js +18 -0
  52. package/dist/commands/team/get.js.map +1 -0
  53. package/dist/commands/team/list.d.ts +16 -0
  54. package/dist/commands/team/list.d.ts.map +1 -0
  55. package/dist/commands/team/list.js +31 -0
  56. package/dist/commands/team/list.js.map +1 -0
  57. package/dist/commands/update.d.ts +2 -4
  58. package/dist/commands/update.d.ts.map +1 -1
  59. package/dist/commands/update.js +37 -76
  60. package/dist/commands/update.js.map +1 -1
  61. package/dist/commands/version/check.d.ts.map +1 -1
  62. package/dist/commands/version/check.js +8 -4
  63. package/dist/commands/version/check.js.map +1 -1
  64. package/dist/commands/version/show.d.ts +2 -2
  65. package/dist/commands/version/show.d.ts.map +1 -1
  66. package/dist/commands/version/show.js +7 -12
  67. package/dist/commands/version/show.js.map +1 -1
  68. package/dist/config/environment-profile.d.ts +5 -0
  69. package/dist/config/environment-profile.d.ts.map +1 -0
  70. package/dist/config/environment-profile.js +47 -0
  71. package/dist/config/environment-profile.js.map +1 -0
  72. package/dist/config/local-command.d.ts +9 -1
  73. package/dist/config/local-command.d.ts.map +1 -1
  74. package/dist/config/local-command.js +44 -5
  75. package/dist/config/local-command.js.map +1 -1
  76. package/dist/config/store.d.ts +3 -0
  77. package/dist/config/store.d.ts.map +1 -1
  78. package/dist/config/store.js +15 -1
  79. package/dist/config/store.js.map +1 -1
  80. package/dist/contracts/version.d.ts +1 -1
  81. package/dist/contracts/version.d.ts.map +1 -1
  82. package/dist/contracts/version.js +9 -1
  83. package/dist/contracts/version.js.map +1 -1
  84. package/dist/discovery/client.d.ts +31 -0
  85. package/dist/discovery/client.d.ts.map +1 -0
  86. package/dist/discovery/client.js +117 -0
  87. package/dist/discovery/client.js.map +1 -0
  88. package/dist/discovery/pagination.d.ts +20 -0
  89. package/dist/discovery/pagination.d.ts.map +1 -0
  90. package/dist/discovery/pagination.js +32 -0
  91. package/dist/discovery/pagination.js.map +1 -0
  92. package/dist/output/render.d.ts +7 -1
  93. package/dist/output/render.d.ts.map +1 -1
  94. package/dist/output/render.js +73 -0
  95. package/dist/output/render.js.map +1 -1
  96. package/dist/schema/command-schema.d.ts +26 -0
  97. package/dist/schema/command-schema.d.ts.map +1 -0
  98. package/dist/schema/command-schema.js +27 -0
  99. package/dist/schema/command-schema.js.map +1 -0
  100. package/dist/skills/content.d.ts +13 -0
  101. package/dist/skills/content.d.ts.map +1 -0
  102. package/dist/skills/content.js +103 -0
  103. package/dist/skills/content.js.map +1 -0
  104. package/dist/skills/state.d.ts +43 -0
  105. package/dist/skills/state.d.ts.map +1 -0
  106. package/dist/skills/state.js +56 -0
  107. package/dist/skills/state.js.map +1 -0
  108. package/dist/skills/sync.d.ts +28 -0
  109. package/dist/skills/sync.d.ts.map +1 -0
  110. package/dist/skills/sync.js +17 -0
  111. package/dist/skills/sync.js.map +1 -0
  112. package/dist/update/updater.d.ts +1 -0
  113. package/dist/update/updater.d.ts.map +1 -1
  114. package/dist/update/updater.js +21 -5
  115. package/dist/update/updater.js.map +1 -1
  116. package/oclif.manifest.json +5967 -324
  117. package/package.json +57 -3
  118. package/skills/monkeys-agent-work/SKILL.md +21 -0
  119. package/skills/monkeys-agent-work/agents/openai.yaml +4 -0
  120. package/skills/monkeys-auth/SKILL.md +21 -0
  121. package/skills/monkeys-auth/agents/openai.yaml +4 -0
  122. package/skills/monkeys-data/SKILL.md +31 -0
  123. package/skills/monkeys-data/agents/openai.yaml +4 -0
  124. package/skills/monkeys-openapi/SKILL.md +19 -0
  125. package/skills/monkeys-openapi/agents/openai.yaml +4 -0
  126. package/skills/monkeys-shared/SKILL.md +31 -0
  127. package/skills/monkeys-shared/agents/openai.yaml +4 -0
  128. package/skills/{monkeys → monkeys-shared}/references/compatibility.md +1 -1
  129. package/skills/monkeys-system-config/SKILL.md +20 -0
  130. package/skills/monkeys-system-config/agents/openai.yaml +4 -0
  131. package/skills/monkeys-workflow/SKILL.md +21 -0
  132. package/skills/monkeys-workflow/agents/openai.yaml +4 -0
  133. package/skills/monkeys/SKILL.md +0 -60
  134. package/skills/monkeys/agents/openai.yaml +0 -4
  135. /package/skills/{monkeys → monkeys-agent-work}/references/agent-work.md +0 -0
  136. /package/skills/{monkeys → monkeys-auth}/references/authentication.md +0 -0
  137. /package/skills/{monkeys → monkeys-data}/references/data-governance.md +0 -0
  138. /package/skills/{monkeys → monkeys-data}/references/data-perspective.md +0 -0
  139. /package/skills/{monkeys → monkeys-data}/references/data-read.md +0 -0
  140. /package/skills/{monkeys → monkeys-data}/references/data-transfer.md +0 -0
  141. /package/skills/{monkeys → monkeys-data}/references/data-write.md +0 -0
  142. /package/skills/{monkeys → monkeys-data}/references/ontology-feature-search.md +0 -0
  143. /package/skills/{monkeys → monkeys-data}/references/ontology-model.md +0 -0
  144. /package/skills/{monkeys → monkeys-openapi}/references/fallback.md +0 -0
  145. /package/skills/{monkeys → monkeys-shared}/references/platform-overview.md +0 -0
  146. /package/skills/{monkeys → monkeys-shared}/references/safety-errors.md +0 -0
  147. /package/skills/{monkeys → monkeys-system-config}/references/system-config.md +0 -0
  148. /package/skills/{monkeys → monkeys-workflow}/references/workflow-execution-files.md +0 -0
package/README.md CHANGED
@@ -4,13 +4,13 @@
4
4
 
5
5
  The official Monkeys command-line tool for humans, automation, and AI Agents. It works with both cloud and self-hosted deployments and covers subscriptions and identity, Workflow, Execution, Agent Work, Ontology/Data, System Config, file transfer, and dynamic OpenAPI access.
6
6
 
7
- The CLI is the only execution layer. The official Chinese-language `monkeys` Skill bundled in the npm package guides Agents in command selection, context resolution, and safe recovery. The CLI does not embed a model, planner, natural-language interpreter, or Agent Runtime.
7
+ The CLI is the only execution layer. Seven focused Chinese-language Skills bundled in the npm package guide Agents by domain while `monkeys-shared` centralizes context, safety, errors, and version rules. The CLI does not embed a model, planner, natural-language interpreter, or Agent Runtime.
8
8
 
9
9
  [Install](#installation--quick-start) · [AI Agent Skill](#ai-agent-skill) · [Authentication](#authentication) · [Commands](#command-system) · [Advanced](#advanced-usage) · [Security](#security--risk-warning-read-before-use) · [Development](#development--release)
10
10
 
11
11
  ## Why monkeys-cli?
12
12
 
13
- - **Agent-Native** — The CLI and official Skill ship in the same package and install with one command
13
+ - **Agent-Native** — The CLI and all official Skills ship in the same package and install with one command
14
14
  - **Multi-Subscription** — Connect one local CLI to multiple cloud or self-hosted endpoints and switch Profiles quickly
15
15
  - **Semantic First** — Workflow, Execution, Agent Work, Data, and Config have explicit domain commands
16
16
  - **Open Coverage** — Discover the OpenAPI contract actually published by a deployment and make controlled raw API calls
@@ -40,13 +40,13 @@ The CLI is the only execution layer. The official Chinese-language `monkeys` Ski
40
40
 
41
41
  ### Quick Start (Human Users)
42
42
 
43
- #### Step 1 — Install the CLI and Skill
43
+ #### Step 1 — Install the CLI and Skills
44
44
 
45
45
  ```bash
46
46
  npx @inf-monkeys-tech/monkeys-cli@latest install
47
47
  ```
48
48
 
49
- The installer globally installs the `monkeys` CLI and installs the matching official `monkeys` Skill from the same npm artifact.
49
+ The installer globally installs the `monkeys` CLI and all seven matching official Skills from the same npm artifact.
50
50
 
51
51
  To install only the CLI:
52
52
 
@@ -121,17 +121,25 @@ monkeys auth login \
121
121
 
122
122
  ## AI Agent Skill
123
123
 
124
- | Skill | Description |
125
- | ------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
126
- | [`monkeys`](skills/monkeys/SKILL.md) | Multi-subscription context, authentication, Workflow, Execution, Agent Work, Data, System Config, OpenAPI, safety confirmation, and failure recovery |
124
+ | Skill | Description |
125
+ | --- | --- |
126
+ | [`monkeys-shared`](skills/monkeys-shared/SKILL.md) | Profile, Context, Team, Identity, output, safety, errors, and version rules |
127
+ | [`monkeys-auth`](skills/monkeys-auth/SKILL.md) | Browser and API Key authentication |
128
+ | [`monkeys-workflow`](skills/monkeys-workflow/SKILL.md) | Workflow, Execution, and file transfer |
129
+ | [`monkeys-agent-work`](skills/monkeys-agent-work/SKILL.md) | Kernel Agent Work lifecycle |
130
+ | [`monkeys-data`](skills/monkeys-data/SKILL.md) | Ontology, Data, views, values, governance, and transfer |
131
+ | [`monkeys-system-config`](skills/monkeys-system-config/SKILL.md) | Kernel System Config |
132
+ | [`monkeys-openapi`](skills/monkeys-openapi/SKILL.md) | Schema inspection and controlled OpenAPI fallback |
127
133
 
128
- The installer always installs the Skill from the current npm package to prevent CLI/Skill version drift. Check compatibility at any time:
134
+ The installer always installs every Skill from the current npm package and records the CLI version plus Skill checksums. Inspect or repair drift at any time:
129
135
 
130
136
  ```bash
131
137
  monkeys version check --output json
138
+ monkeys skills status
139
+ monkeys skills sync
132
140
  ```
133
141
 
134
- Agents should read the Skill before invoking the CLI. The source of truth for parameters is always `monkeys <command> --help`, never remembered syntax.
142
+ Agents can read the exact embedded version without locating npm files, for example `monkeys skills read monkeys-data references/data-read.md`. The source of truth for parameters is `monkeys schema <command path>` and command help, never remembered syntax.
135
143
 
136
144
  ## Authentication
137
145
 
@@ -157,6 +165,18 @@ monkeys auth login --url https://customer.example.com --api-key-stdin --output j
157
165
  monkeys auth login --url https://customer.example.com --api-key-env MONKEYS_API_KEY --output json
158
166
  ```
159
167
 
168
+ ### Ephemeral Environment Authentication
169
+
170
+ Automation hosts can provide one non-persistent, read-only Profile without running a login command:
171
+
172
+ ```bash
173
+ MONKEYS_ENDPOINT=https://customer.example.com \
174
+ MONKEYS_ACCESS_TOKEN=<access-token> \
175
+ monkeys context show --output json
176
+ ```
177
+
178
+ Both variables are required. While they are present, the CLI uses only the `environment` Profile and rejects Profile or deployment mutations. The CLI does not infer who issued the access token or how the host obtained it.
179
+
160
180
  ### Switch Subscriptions
161
181
 
162
182
  ```bash
@@ -179,7 +199,7 @@ The cache is refreshed from npm in a detached background process at most once ev
179
199
  # Check only; makes no installation changes
180
200
  monkeys update --check --output json
181
201
 
182
- # Upgrade the global npm package and sync the matching bundled Skill
202
+ # Upgrade the global npm package and sync all matching bundled Skills
183
203
  monkeys update
184
204
 
185
205
  # Reinstall the current latest CLI and retry Skill synchronization
@@ -205,6 +225,15 @@ monkeys data asset list --profile customer-kernel --perspective kernel --ontolog
205
225
  monkeys config overview --profile customer-kernel --output json
206
226
  ```
207
227
 
228
+ Context and identity are first-class discovery surfaces:
229
+
230
+ ```bash
231
+ monkeys context show --profile customer-a
232
+ monkeys team list --profile customer-a --page-all
233
+ monkeys identity list --profile customer-kernel --user-type agent --page-all
234
+ monkeys schema workflow run
235
+ ```
236
+
208
237
  ### 2. OpenAPI Discovery
209
238
 
210
239
  List and describe real Operations from the fresh OpenAPI contract published by the current deployment.
@@ -230,7 +259,7 @@ monkeys api call \
230
259
 
231
260
  ### Structured Output
232
261
 
233
- Automation and Agents should use `--output json`; long-running status watches use NDJSON. Successful results go to stdout with exit code `0`. Errors go to stderr with a fixed non-zero exit code.
262
+ JSON is the default for automation and Agents; long-running status watches use NDJSON. `--format pretty|table|csv|ndjson|text` changes presentation, `--jq` filters the full JSON envelope, and `--output` remains a compatibility alias. Successful results go to stdout with exit code `0`. Errors use a fixed non-zero exit code.
234
263
 
235
264
  ```json
236
265
  {
@@ -267,16 +296,16 @@ Never infer Profile, Team, Ontology, or other IDs from resource names. Resolve t
267
296
 
268
297
  ### Detailed Documentation
269
298
 
270
- | Topic | Documentation |
271
- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
272
- | Platform and context | [platform-overview.md](skills/monkeys/references/platform-overview.md) |
273
- | Authentication and subscriptions | [authentication.md](skills/monkeys/references/authentication.md) |
274
- | Workflow, Execution, and files | [workflow-execution-files.md](skills/monkeys/references/workflow-execution-files.md) |
275
- | Agent Work | [agent-work.md](skills/monkeys/references/agent-work.md) |
276
- | Data reads and perspectives | [data-read.md](skills/monkeys/references/data-read.md) · [data-perspective.md](skills/monkeys/references/data-perspective.md) |
277
- | Data writes and transfer | [data-write.md](skills/monkeys/references/data-write.md) · [data-transfer.md](skills/monkeys/references/data-transfer.md) |
278
- | System Config | [system-config.md](skills/monkeys/references/system-config.md) |
279
- | OpenAPI fallback and error recovery | [fallback.md](skills/monkeys/references/fallback.md) · [safety-errors.md](skills/monkeys/references/safety-errors.md) |
299
+ | Topic | Documentation |
300
+ | ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
301
+ | Platform, context, safety | [platform-overview.md](skills/monkeys-shared/references/platform-overview.md) · [safety-errors.md](skills/monkeys-shared/references/safety-errors.md) |
302
+ | Authentication and subscriptions | [authentication.md](skills/monkeys-auth/references/authentication.md) |
303
+ | Workflow, Execution, and files | [workflow-execution-files.md](skills/monkeys-workflow/references/workflow-execution-files.md) |
304
+ | Agent Work | [agent-work.md](skills/monkeys-agent-work/references/agent-work.md) |
305
+ | Data reads and perspectives | [data-read.md](skills/monkeys-data/references/data-read.md) · [data-perspective.md](skills/monkeys-data/references/data-perspective.md) |
306
+ | Data writes and transfer | [data-write.md](skills/monkeys-data/references/data-write.md) · [data-transfer.md](skills/monkeys-data/references/data-transfer.md) |
307
+ | System Config | [system-config.md](skills/monkeys-system-config/references/system-config.md) |
308
+ | OpenAPI fallback | [fallback.md](skills/monkeys-openapi/references/fallback.md) |
280
309
 
281
310
  ## Security & Risk Warning (Read Before Use)
282
311
 
package/README.zh.md CHANGED
@@ -4,13 +4,13 @@
4
4
 
5
5
  Monkeys 官方命令行工具,让人类、自动化脚本和 AI Agent 都能在终端中安全操作 Monkeys。它支持云端与私有化部署,覆盖订阅与身份、Workflow、Execution、Agent Work、Ontology/Data、System Config、文件传输和动态 OpenAPI。
6
6
 
7
- CLI 是唯一执行层;随 npm 包分发的官方中文 `monkeys` Skill 负责指导 Agent 选择命令、补齐上下文并处理安全恢复,不内置模型、规划器或 Agent Runtime。
7
+ CLI 是唯一执行层;npm 包内的 7 个聚焦领域 Skill 按需指导 Agent,`monkeys-shared` 统一保存上下文、安全、错误和版本规则,不内置模型、规划器或 Agent Runtime。
8
8
 
9
9
  [安装](#安装与快速开始) · [AI Agent Skill](#ai-agent-skill) · [认证](#认证) · [命令体系](#命令体系) · [进阶用法](#进阶用法) · [安全](#安全与风险提示使用前必读) · [开发](#开发与发布)
10
10
 
11
11
  ## 为什么选择 monkeys-cli?
12
12
 
13
- - **Agent 原生** — CLI 与官方 Skill 同包、同版本发布,一条命令完成安装
13
+ - **Agent 原生** — CLI 与全部官方 Skills 同包、同版本发布,一条命令完成安装
14
14
  - **多订阅设计** — 一个本地 CLI 可连接多个云端或私有化 Endpoint,并快速切换 Profile
15
15
  - **语义优先** — Workflow、Execution、Agent Work、Data 和 Config 都有明确的领域命令
16
16
  - **开放覆盖** — 动态发现部署实际发布的 OpenAPI,并提供受控的原始 API 调用
@@ -40,13 +40,13 @@ CLI 是唯一执行层;随 npm 包分发的官方中文 `monkeys` Skill 负责
40
40
 
41
41
  ### 快速开始(人类用户)
42
42
 
43
- #### 第 1 步 — 安装 CLI 与 Skill
43
+ #### 第 1 步 — 安装 CLI 与 Skills
44
44
 
45
45
  ```bash
46
46
  npx @inf-monkeys-tech/monkeys-cli@latest install
47
47
  ```
48
48
 
49
- 安装向导会全局安装 `monkeys` CLI,并从同一个 npm 制品安装匹配版本的官方 `monkeys` Skill。
49
+ 安装向导会全局安装 `monkeys` CLI,并从同一个 npm 制品安装匹配版本的 7 个官方 Skills。
50
50
 
51
51
  如果只需要 CLI:
52
52
 
@@ -121,17 +121,25 @@ monkeys auth login \
121
121
 
122
122
  ## AI Agent Skill
123
123
 
124
- | Skill | 说明 |
125
- | ------------------------------------ | ----------------------------------------------------------------------------------------------------- |
126
- | [`monkeys`](skills/monkeys/SKILL.md) | 多订阅上下文、认证、Workflow、Execution、Agent Work、Data、System Config、OpenAPI、安全确认与失败恢复 |
124
+ | Skill | 说明 |
125
+ | --- | --- |
126
+ | [`monkeys-shared`](skills/monkeys-shared/SKILL.md) | Profile、Context、Team、Identity、输出、安全、错误与版本规则 |
127
+ | [`monkeys-auth`](skills/monkeys-auth/SKILL.md) | 浏览器登录与 API Key 认证 |
128
+ | [`monkeys-workflow`](skills/monkeys-workflow/SKILL.md) | Workflow、Execution 与文件 |
129
+ | [`monkeys-agent-work`](skills/monkeys-agent-work/SKILL.md) | Kernel Agent Work 全生命周期 |
130
+ | [`monkeys-data`](skills/monkeys-data/SKILL.md) | Ontology、Data、治理与迁移 |
131
+ | [`monkeys-system-config`](skills/monkeys-system-config/SKILL.md) | Kernel System Config |
132
+ | [`monkeys-openapi`](skills/monkeys-openapi/SKILL.md) | Schema 与受控 OpenAPI 降级 |
127
133
 
128
- 安装向导始终从当前 npm 包安装 Skill,避免 CLI 与 Skill 版本漂移。可随时验证兼容性:
134
+ 安装向导始终从当前 npm 包安装全部 Skills,并记录 CLI 版本与 Skill 校验和。可随时查看或修复漂移:
129
135
 
130
136
  ```bash
131
137
  monkeys version check --output json
138
+ monkeys skills status
139
+ monkeys skills sync
132
140
  ```
133
141
 
134
- Agent 应优先读取 Skill,再执行 CLI;参数真相始终来自 `monkeys <命令> --help`,不能凭记忆构造。
142
+ Agent 可直接读取 npm 包内的同版本内容,例如 `monkeys skills read monkeys-data references/data-read.md`;参数真相来自 `monkeys schema <命令路径>` 与命令 Help,不能凭记忆构造。
135
143
 
136
144
  ## 认证
137
145
 
@@ -267,16 +275,16 @@ monkeys workflow delete <workflow-id> \
267
275
 
268
276
  ### 深入文档
269
277
 
270
- | 主题 | 文档 |
271
- | -------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
272
- | 平台与上下文 | [platform-overview.md](skills/monkeys/references/platform-overview.md) |
273
- | 认证与多订阅 | [authentication.md](skills/monkeys/references/authentication.md) |
274
- | Workflow、Execution 与文件 | [workflow-execution-files.md](skills/monkeys/references/workflow-execution-files.md) |
275
- | Agent Work | [agent-work.md](skills/monkeys/references/agent-work.md) |
276
- | Data 读取与视角 | [data-read.md](skills/monkeys/references/data-read.md) · [data-perspective.md](skills/monkeys/references/data-perspective.md) |
277
- | Data 写入与迁移 | [data-write.md](skills/monkeys/references/data-write.md) · [data-transfer.md](skills/monkeys/references/data-transfer.md) |
278
- | System Config | [system-config.md](skills/monkeys/references/system-config.md) |
279
- | OpenAPI 降级与错误恢复 | [fallback.md](skills/monkeys/references/fallback.md) · [safety-errors.md](skills/monkeys/references/safety-errors.md) |
278
+ | 主题 | 文档 |
279
+ | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
280
+ | 平台、上下文与安全 | [platform-overview.md](skills/monkeys-shared/references/platform-overview.md) · [safety-errors.md](skills/monkeys-shared/references/safety-errors.md) |
281
+ | 认证与多订阅 | [authentication.md](skills/monkeys-auth/references/authentication.md) |
282
+ | Workflow、Execution 与文件 | [workflow-execution-files.md](skills/monkeys-workflow/references/workflow-execution-files.md) |
283
+ | Agent Work | [agent-work.md](skills/monkeys-agent-work/references/agent-work.md) |
284
+ | Data 读取与视角 | [data-read.md](skills/monkeys-data/references/data-read.md) · [data-perspective.md](skills/monkeys-data/references/data-perspective.md) |
285
+ | Data 写入与迁移 | [data-write.md](skills/monkeys-data/references/data-write.md) · [data-transfer.md](skills/monkeys-data/references/data-transfer.md) |
286
+ | System Config | [system-config.md](skills/monkeys-system-config/references/system-config.md) |
287
+ | OpenAPI 降级 | [fallback.md](skills/monkeys-openapi/references/fallback.md) |
280
288
 
281
289
  ## 安全与风险提示(使用前必读)
282
290
 
@@ -17,7 +17,7 @@ export function createInstallPlan({ packageName, packageRoot }) {
17
17
  {
18
18
  args: ['-y', 'skills', 'add', resolve(packageRoot, 'skills'), '-y', '-g', '--copy'],
19
19
  command: 'npx',
20
- label: 'Install Monkeys AI Skill',
20
+ label: 'Install Monkeys AI Skills',
21
21
  },
22
22
  ];
23
23
  }
@@ -41,6 +41,15 @@ export async function runInstallWizard(options = {}) {
41
41
  const packageJson = JSON.parse(await readFile(resolve(packageRoot, 'package.json'), 'utf8'));
42
42
  const plan = createInstallPlan({ packageName: packageJson.name, packageRoot });
43
43
  const execute = options.execute ?? runCommand;
44
+ const recordState =
45
+ options.recordState ??
46
+ (async () => {
47
+ const [{ listBundledSkills }, { writeSkillsState }] = await Promise.all([
48
+ import('../dist/skills/content.js'),
49
+ import('../dist/skills/state.js'),
50
+ ]);
51
+ await writeSkillsState(packageJson.version, await listBundledSkills(resolve(packageRoot, 'skills')), 'install');
52
+ });
44
53
  const output = options.output ?? ((message) => process.stdout.write(`${message}\n`));
45
54
 
46
55
  output('Setting up Monkeys CLI...');
@@ -48,7 +57,8 @@ export async function runInstallWizard(options = {}) {
48
57
  output(`${step.label}...`);
49
58
  execute(step.command, step.args);
50
59
  }
51
- output('Monkeys CLI and AI Skill are installed.');
60
+ await recordState({ packageRoot, version: packageJson.version });
61
+ output('Monkeys CLI and AI Skills are installed.');
52
62
 
53
63
  return plan;
54
64
  }
package/bin/run.js CHANGED
@@ -41,16 +41,16 @@ if (install) {
41
41
  const { runInstallWizardCli } = await import('./install-wizard.js');
42
42
  await runInstallWizardCli();
43
43
  } else if (fastVersion) {
44
- const { BUNDLED_SKILL_MINIMUM_CLI_VERSION, BUNDLED_SKILL_NAME, COMMAND_SCHEMA_MAJOR } = await import('../dist/contracts/version.js');
44
+ const { BUNDLED_SKILL_MINIMUM_CLI_VERSION, BUNDLED_SKILL_NAMES, COMMAND_SCHEMA_MAJOR } = await import('../dist/contracts/version.js');
45
45
  const data = {
46
46
  cliVersion: packageJson.version,
47
47
  commandSchemaMajor: COMMAND_SCHEMA_MAJOR,
48
48
  nodeVersion: process.version,
49
49
  platform: `${process.platform}-${process.arch}`,
50
- skill: { minimumCliVersion: BUNDLED_SKILL_MINIMUM_CLI_VERSION, name: BUNDLED_SKILL_NAME },
50
+ skills: { minimumCliVersion: BUNDLED_SKILL_MINIMUM_CLI_VERSION, names: BUNDLED_SKILL_NAMES },
51
51
  };
52
52
  const outputIndex = args.indexOf('--output');
53
- const output = outputIndex >= 0 ? args[outputIndex + 1] : 'text';
53
+ const output = outputIndex >= 0 ? args[outputIndex + 1] : 'json';
54
54
  if (output === 'json') {
55
55
  process.stdout.write(
56
56
  `${JSON.stringify({
@@ -71,7 +71,7 @@ if (install) {
71
71
  } else if (fastProfileList) {
72
72
  const { renderFastProfileList } = await import('../dist/config/fast-profile-list.js');
73
73
  const outputIndex = args.indexOf('--output');
74
- const result = await renderFastProfileList(outputIndex >= 0 ? args[outputIndex + 1] : 'text');
74
+ const result = await renderFastProfileList(outputIndex >= 0 ? args[outputIndex + 1] : 'json');
75
75
  process.stdout.write(`${result.text}\n`);
76
76
  process.exitCode = result.exitCode;
77
77
  } else {
@@ -0,0 +1,11 @@
1
+ import type { RiskLevel } from '../policy/risk.js';
2
+ export interface CommandMetadata {
3
+ confirmationMode: 'conditional' | 'none' | 'required' | 'runtime';
4
+ confirmationEnforcement: 'generic' | 'native' | 'none';
5
+ confirmationRequired: boolean;
6
+ dryRun: 'generic' | 'native';
7
+ risk: RiskLevel;
8
+ }
9
+ export declare function getCommandMetadata(command: string): CommandMetadata;
10
+ export declare function genericDryRunPreview(command: string): Record<string, unknown>;
11
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/command/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAClE,uBAAuB,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IACvD,oBAAoB,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,IAAI,EAAE,SAAS,CAAC;CACjB;AA6GD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAiCnE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAU7E"}
@@ -0,0 +1,150 @@
1
+ const NATIVE_DRY_RUN_COMMANDS = new Set([
2
+ 'config patch',
3
+ 'config set',
4
+ 'data asset enrich-jsonl',
5
+ 'data asset feature-backfill',
6
+ 'data asset import',
7
+ 'data ontology import',
8
+ 'workflow create',
9
+ 'workflow delete',
10
+ 'workflow import',
11
+ 'workflow update',
12
+ ]);
13
+ const READ_VERBS = new Set([
14
+ 'check',
15
+ 'current',
16
+ 'describe',
17
+ 'doctor',
18
+ 'export',
19
+ 'get',
20
+ 'history',
21
+ 'list',
22
+ 'overview',
23
+ 'read',
24
+ 'schema',
25
+ 'search',
26
+ 'show',
27
+ 'status',
28
+ 'test',
29
+ 'validate',
30
+ 'version',
31
+ 'wait',
32
+ 'watch',
33
+ 'whoami',
34
+ ]);
35
+ const CREDENTIAL_PREFIXES = ['auth login', 'auth logout', 'profile add', 'profile remove'];
36
+ const CREDENTIAL_COMMANDS = new Set(['auth api-key import']);
37
+ const PRIVILEGED_COMMANDS = new Set([
38
+ 'agent work assign existing',
39
+ 'agent work assign new',
40
+ 'agent work retry',
41
+ 'agent work review approve',
42
+ 'agent work spec approve',
43
+ 'config patch',
44
+ 'config set',
45
+ 'data asset import',
46
+ 'data asset import-jsonl',
47
+ 'data asset import-jsonl cancel',
48
+ 'data bucket create',
49
+ 'data bucket update',
50
+ 'data ontology create',
51
+ 'data ontology import',
52
+ 'data ontology update',
53
+ 'data view convert-to-container',
54
+ ]);
55
+ const DESTRUCTIVE_VERBS = new Set(['delete', 'remove']);
56
+ const NATIVE_REQUIRED_CONFIRMATION = new Set([
57
+ 'agent work assign existing',
58
+ 'agent work assign new',
59
+ 'agent work delete',
60
+ 'agent work retry',
61
+ 'agent work review approve',
62
+ 'agent work spec approve',
63
+ 'config patch',
64
+ 'config set',
65
+ 'data asset delete',
66
+ 'data asset import',
67
+ 'data asset import-jsonl',
68
+ 'data asset import-jsonl cancel',
69
+ 'data bucket create',
70
+ 'data bucket update',
71
+ 'data container remove',
72
+ 'data ontology create',
73
+ 'data ontology import',
74
+ 'data ontology update',
75
+ 'data tag delete',
76
+ 'data tag-group delete',
77
+ 'data view convert-to-container',
78
+ 'data view delete',
79
+ 'workflow create',
80
+ 'workflow delete',
81
+ 'workflow import',
82
+ 'workflow update',
83
+ ]);
84
+ const NATIVE_CONDITIONAL_CONFIRMATION = new Set([
85
+ 'config export',
86
+ 'data asset attachment download',
87
+ 'data asset export',
88
+ 'data asset media download',
89
+ 'data ontology export',
90
+ 'file download',
91
+ ]);
92
+ const LOCAL_OR_SERVER_SIDE_WRITES = new Set([
93
+ 'config export',
94
+ 'data asset attachment download',
95
+ 'data asset export',
96
+ 'data asset media download',
97
+ 'data ontology export',
98
+ 'file download',
99
+ 'team list',
100
+ ]);
101
+ function commandVerb(command) {
102
+ return command.trim().split(/\s+/).at(-1) ?? '';
103
+ }
104
+ export function getCommandMetadata(command) {
105
+ const normalized = command.trim().replace(/\s+/g, ' ');
106
+ let risk;
107
+ if (CREDENTIAL_COMMANDS.has(normalized) || CREDENTIAL_PREFIXES.some((prefix) => normalized.startsWith(prefix)))
108
+ risk = 'credential';
109
+ else if (PRIVILEGED_COMMANDS.has(normalized))
110
+ risk = 'privileged';
111
+ else if (DESTRUCTIVE_VERBS.has(commandVerb(normalized)) || normalized.endsWith(' cancel'))
112
+ risk = 'destructive';
113
+ else if (LOCAL_OR_SERVER_SIDE_WRITES.has(normalized))
114
+ risk = 'bounded-write';
115
+ else if (READ_VERBS.has(commandVerb(normalized)))
116
+ risk = 'read';
117
+ else
118
+ risk = 'bounded-write';
119
+ const confirmationMode = normalized === 'api call'
120
+ ? 'runtime'
121
+ : NATIVE_CONDITIONAL_CONFIRMATION.has(normalized)
122
+ ? 'conditional'
123
+ : NATIVE_REQUIRED_CONFIRMATION.has(normalized) || risk === 'destructive' || risk === 'privileged'
124
+ ? 'required'
125
+ : 'none';
126
+ const confirmationEnforcement = NATIVE_REQUIRED_CONFIRMATION.has(normalized) || NATIVE_CONDITIONAL_CONFIRMATION.has(normalized) || normalized === 'api call'
127
+ ? 'native'
128
+ : confirmationMode === 'required'
129
+ ? 'generic'
130
+ : 'none';
131
+ return {
132
+ confirmationEnforcement,
133
+ confirmationMode,
134
+ confirmationRequired: confirmationMode === 'required',
135
+ dryRun: NATIVE_DRY_RUN_COMMANDS.has(normalized) ? 'native' : 'generic',
136
+ risk,
137
+ };
138
+ }
139
+ export function genericDryRunPreview(command) {
140
+ const metadata = getCommandMetadata(command);
141
+ return {
142
+ command,
143
+ confirmationMode: metadata.confirmationMode,
144
+ confirmationRequired: metadata.confirmationRequired,
145
+ dryRun: true,
146
+ risk: metadata.risk,
147
+ wouldExecute: false,
148
+ };
149
+ }
150
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/command/metadata.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
- import { Command } from '@oclif/core';
2
- export default class AgentWorkWatch extends Command {
1
+ import { LocalCommand } from '../../../config/local-command.js';
2
+ export default class AgentWorkWatch extends LocalCommand {
3
3
  static args: {
4
4
  issueId: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
5
5
  };
6
6
  static description: string;
7
7
  static flags: {
8
8
  'interval-ms': import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
9
+ output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
9
10
  profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
11
  'timeout-seconds': import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
11
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../../src/commands/agent/work/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,OAAO,EAAS,MAAM,aAAa,CAAC;AAUnD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;IACjD,OAAgB,IAAI;QAAK,OAAO;MAAkE;IAClG,OAAgB,WAAW,SAAsF;IACjH,OAAgB,KAAK;QACnB,aAAa;QACb,OAAO;QACP,iBAAiB;MACjB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CA8BzB;CACF"}
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../../src/commands/agent/work/watch.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAmB,MAAM,kCAAkC,CAAC;AAIjF,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,YAAY;IACtD,OAAgB,IAAI;QAAK,OAAO;MAAkE;IAClG,OAAgB,WAAW,SAAsF;IACjH,OAAgB,KAAK;QACnB,aAAa;QACb,MAAM;QACN,OAAO;QACP,iBAAiB;MACjB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CA+BzB;CACF"}
@@ -1,22 +1,25 @@
1
- import { Args, Command, Flags } from '@oclif/core';
1
+ import { Args, Flags } from '@oclif/core';
2
2
  import { AgentWorkClient } from '../../../agent-work/client.js';
3
3
  import { agentWorkMeta } from '../../../agent-work/context.js';
4
4
  import { watchAgentWork } from '../../../agent-work/polling.js';
5
5
  import { loadAgentWorkRuntime } from '../../../agent-work/runtime.js';
6
6
  import { errorResult, successResult } from '../../../contracts/result.js';
7
7
  import { asCliError } from '../../../errors/cli-error.js';
8
- import { renderResult } from '../../../output/render.js';
8
+ import { LocalCommand, localOutputFlag } from '../../../config/local-command.js';
9
+ import { renderCommandResult } from '../../../output/render.js';
9
10
  import { redactValue } from '../../../security/redact.js';
10
- export default class AgentWorkWatch extends Command {
11
+ export default class AgentWorkWatch extends LocalCommand {
11
12
  static args = { issueId: Args.string({ description: 'Agent Work ID', required: true }) };
12
13
  static description = 'Output Agent Work status changes in NDJSON; Ctrl+C only stops local observation.';
13
14
  static flags = {
14
15
  'interval-ms': Flags.integer({ default: 2_000, min: 250, max: 60_000, summary: 'Polling interval' }),
16
+ output: localOutputFlag,
15
17
  profile: Flags.string({ summary: 'Kernel Profile name' }),
16
18
  'timeout-seconds': Flags.integer({ default: 3_600, min: 1, max: 86_400, summary: 'Maximum listening seconds' }),
17
19
  };
18
20
  async run() {
19
21
  const { args, flags } = await this.parse(AgentWorkWatch);
22
+ const format = (flags.format ?? flags.output);
20
23
  const controller = new AbortController();
21
24
  const onInterrupt = () => controller.abort();
22
25
  process.once('SIGINT', onInterrupt);
@@ -34,12 +37,14 @@ export default class AgentWorkWatch extends Command {
34
37
  ...(event.requestId ? { requestId: event.requestId } : {}),
35
38
  work: event.data,
36
39
  };
37
- this.log(renderResult(redactValue(successResult(value, { command: 'agent work watch' })), 'json'));
40
+ const result = redactValue(successResult(value, { command: 'agent work watch' }));
41
+ this.log(await renderCommandResult(result, { format, ...(flags.jq ? { jq: flags.jq } : {}) }));
38
42
  }
39
43
  }
40
44
  catch (error) {
41
45
  const cliError = asCliError(error);
42
- this.log(renderResult(redactValue(errorResult(cliError.toErrorDetail(), { command: 'agent work watch' })), 'json'));
46
+ const result = redactValue(errorResult(cliError.toErrorDetail(), { command: 'agent work watch' }));
47
+ this.log(await renderCommandResult(result, { format, ...(flags.jq ? { jq: flags.jq } : {}) }));
43
48
  this.exit(cliError.exitCode);
44
49
  }
45
50
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../../src/commands/agent/work/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAsB,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,OAAO;IACjD,MAAM,CAAU,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAClG,MAAM,CAAU,WAAW,GAAG,kFAAkF,CAAC;IACjH,MAAM,CAAU,KAAK,GAAG;QACtB,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;QACpG,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;QACzD,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;KAChH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1D,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,cAAc,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE;gBACnF,UAAU,EAAE,KAAK,CAAC,aAAa,CAAC;gBAChC,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,SAAS,EAAE,KAAK,CAAC,iBAAiB,CAAC,GAAG,KAAK;aAC5C,CAAC,EAAE,CAAC;gBACH,MAAM,KAAK,GAAG;oBACZ,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;oBACxC,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,WAAW,EAAE,iBAAiB;oBAC9B,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC1D,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAgC,EAAE,MAAM,CAAC,CAAC,CAAC;YACpI,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG,CACN,YAAY,CAAC,WAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAyB,EAAE,MAAM,CAAC,CAClI,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;gBAAS,CAAC;YACT,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../../src/commands/agent/work/watch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { LocalCommand } from '../../config/local-command.js';
2
+ export default class ContextShow extends LocalCommand {
3
+ static description: string;
4
+ static flags: {
5
+ output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
6
+ profile: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
+ team: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ };
9
+ run(): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=show.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../src/commands/context/show.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAmB,MAAM,+BAA+B,CAAC;AAI9E,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,YAAY;IACnD,OAAgB,WAAW,SACuF;IAClH,OAAgB,KAAK;QACnB,MAAM;QACN,OAAO;QACP,IAAI;MACJ;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CAkBzB;CACF"}
@@ -0,0 +1,32 @@
1
+ import { Flags } from '@oclif/core';
2
+ import { LocalCommand, localOutputFlag } from '../../config/local-command.js';
3
+ import { resolveCommandRuntime } from '../../credential/command-runtime.js';
4
+ import { resolveAuthSurface } from '../../credential/runtime.js';
5
+ export default class ContextShow extends LocalCommand {
6
+ static description = 'Show the resolved endpoint, Profile, tenant, Team, identity expectation, and credential kind without secrets.';
7
+ static flags = {
8
+ output: localOutputFlag,
9
+ profile: Flags.string({ summary: 'Profile name' }),
10
+ team: Flags.string({ summary: 'Team ID used in this context' }),
11
+ };
12
+ async run() {
13
+ const { flags } = await this.parse(ContextShow);
14
+ await this.emit('context show', flags.output, async () => {
15
+ const { context } = await resolveCommandRuntime(flags.profile, flags.team);
16
+ return {
17
+ authSurface: resolveAuthSurface(context),
18
+ baseUrl: context.baseUrl,
19
+ credential: { fingerprint: context.credential.fingerprint, kind: context.credential.kind },
20
+ dataContract: context.dataContract,
21
+ deployment: context.deployment,
22
+ expectedPrincipal: context.expectedPrincipal,
23
+ expectedSurfaces: context.expectedSurfaces,
24
+ fingerprint: context.fingerprint,
25
+ profile: context.profile,
26
+ team: context.team,
27
+ tenant: context.tenant,
28
+ };
29
+ });
30
+ }
31
+ }
32
+ //# sourceMappingURL=show.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/commands/context/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC9E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,YAAY;IACnD,MAAM,CAAU,WAAW,GACzB,+GAA+G,CAAC;IAClH,MAAM,CAAU,KAAK,GAAG;QACtB,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;QAClD,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;KAChE,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE;YACvD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,qBAAqB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3E,OAAO;gBACL,WAAW,EAAE,kBAAkB,CAAC,OAAO,CAAC;gBACxC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE;gBAC1F,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,MAAM,EAAE,OAAO,CAAC,MAAM;aACvB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}