@zq-silk/yui 1.1.2 → 2.1.0
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/ARCHITECTURE.md +2 -1
- package/ARCHITECTURE.zh-CN.md +2 -1
- package/README.md +2 -0
- package/dist/cli/commandCatalog.js +344 -324
- package/dist/cli/commandDiscovery.js +69 -0
- package/dist/cli/completion.js +22 -227
- package/dist/cli/dynamicCompletion.js +12 -6
- package/dist/cli/invocationAuthority.js +2 -2
- package/dist/cli/invocationRouter.js +18 -7
- package/dist/cli/managedDiagnostics.js +2 -1
- package/dist/cli/updatePorts.js +0 -5
- package/dist/cli.js +184 -130
- package/dist/commands/capabilityCommands.js +5 -5
- package/dist/commands/controllerCommands.js +2 -1
- package/dist/commands/globalRoleCommands.js +86 -44
- package/dist/commands/grantCommands.js +48 -8
- package/dist/commands/taskCommands.js +157 -196
- package/dist/commands/taskContextCommand.js +29 -6
- package/dist/commands/taskFactCommands.js +10 -69
- package/dist/commands/taskInputCommands.js +26 -35
- package/dist/commands/taskPublicationCommands.js +2 -35
- package/dist/commands/taskPublicationVerifyCommand.js +1 -2
- package/dist/commands/taskUpstreamCommands.js +2 -1
- package/dist/context/runContextPack.js +8 -29
- package/dist/context/sessionBootstrapManifest.js +5 -101
- package/dist/context/taskContext.js +104 -41
- package/dist/controller/clientRuntime.js +16 -8
- package/dist/controller/fileSchedulerStoreAdapter.js +24 -0
- package/dist/controller/runtime.js +6 -0
- package/dist/core/controllerClient.js +46 -21
- package/dist/core/protocol.js +12 -7
- package/dist/doctor/doctor.js +4 -3
- package/dist/errors/cliError.js +4 -4
- package/dist/errors/cliFailure.js +213 -0
- package/dist/executor/fileRoleLaunchPlanner.js +1 -4
- package/dist/grant/capabilityGrant.js +13 -0
- package/dist/grant/taskAuthorization.js +127 -0
- package/dist/kernel/accessAssessment.js +1 -0
- package/dist/kernel/builtinCapabilities.js +88 -9
- package/dist/kernel/capabilityRegistry.js +64 -19
- package/dist/kernel/kernelPorts.js +2 -2
- package/dist/nativeAgent/agent.js +173 -0
- package/dist/nativeAgent/contracts.js +1 -0
- package/dist/nativeAgent/demo.js +29 -0
- package/dist/nativeAgent/index.js +3 -0
- package/dist/nativeAgent/mockProvider.js +43 -0
- package/dist/nativeAgent/textTools.js +156 -0
- package/dist/nativeAgent/validation.js +95 -0
- package/dist/output/boundedRead.js +118 -0
- package/dist/plugins/pluginService.js +98 -8
- package/dist/release/releaseWorkflowEngine.js +8 -1
- package/dist/resources/projectResourceService.js +23 -1
- package/dist/runtime/managedCaller.js +2 -2
- package/dist/runtime/managedIdentity.js +6 -0
- package/dist/runtime/runtimeCoherence.js +10 -8
- package/dist/storage/sqliteSchema.js +10 -0
- package/dist/storage/storageVersions.js +1 -1
- package/dist/storage/taskStore.js +3 -0
- package/dist/surface/surfaceContributions.js +3 -0
- package/dist/task/leaderArchive.js +111 -0
- package/dist/task/leaderArchiveAuthority.js +24 -0
- package/dist/task/taskAuthority.js +5 -10
- package/dist/tmux/commandExecutor.js +7 -5
- package/dist/web/assets/assetManifest.js +38 -22
- package/dist/web/assets/client/api.js +115 -0
- package/dist/web/assets/client/app.js +555 -863
- package/dist/web/assets/client/components.js +323 -897
- package/dist/web/assets/client/detail.js +333 -0
- package/dist/web/assets/client/dock.js +225 -0
- package/dist/web/assets/client/dom.js +55 -3
- package/dist/web/assets/client/evidence.js +172 -0
- package/dist/web/assets/client/format.js +25 -14
- package/dist/web/assets/client/forms.js +230 -0
- package/dist/web/assets/client/i18n.js +1020 -791
- package/dist/web/assets/client/overview.js +115 -0
- package/dist/web/assets/client/records.js +63 -0
- package/dist/web/assets/client/sections.js +313 -0
- package/dist/web/assets/client/sidebar.js +117 -0
- package/dist/web/assets/client/theme.js +61 -22
- package/dist/web/assets/icons.js +39 -0
- package/dist/web/assets/shell.js +124 -118
- package/dist/web/assets/styles/base.js +41 -0
- package/dist/web/assets/styles/components.js +167 -0
- package/dist/web/assets/styles/layout.js +49 -77
- package/dist/web/assets/styles/markdown.js +16 -24
- package/dist/web/assets/styles/responsive.js +33 -44
- package/dist/web/assets/styles/tokens.js +65 -89
- package/dist/web/assets/styles/views.js +289 -0
- package/dist/web/webServer.js +2 -1
- package/docs/architecture/README.md +1 -0
- package/docs/architecture/README.zh-CN.md +1 -0
- package/docs/cli-information-contract.md +107 -0
- package/docs/cli-information-contract.zh-CN.md +81 -0
- package/docs/managed-turn-and-session-runtime.md +9 -0
- package/docs/managed-turn-and-session-runtime.zh-CN.md +6 -0
- package/docs/plugin-sdk.md +7 -3
- package/docs/plugin-sdk.zh-CN.md +5 -2
- package/docs/release-workflow.md +42 -9
- package/docs/release-workflow.zh-CN.md +30 -7
- package/docs/storage-baseline.md +5 -0
- package/docs/testing/verification-levels.md +2 -2
- package/i18n/README.zh-CN.md +2 -0
- package/package.json +1 -1
- package/skills/yui-leader/SKILL.md +8 -1
- package/skills/yui-leader/references/authorization.md +64 -0
- package/skills/yui-leader/references/execution.md +18 -4
- package/skills/yui-leader/references/task-plugins.md +4 -2
- package/skills/yui-operator/SKILL.md +9 -2
- package/skills/yui-runtime/SKILL.md +77 -9
- package/skills/yui-runtime/references/publication.md +3 -1
- package/dist/web/assets/client/taskSummary.js +0 -350
- package/dist/web/assets/client/taskSurface.js +0 -616
- package/dist/web/assets/client/view.js +0 -608
- package/dist/web/assets/styles/cards.js +0 -247
- package/dist/web/assets/styles/widgets.js +0 -168
|
@@ -24,6 +24,7 @@ function buildNode(input, parentPath = []) {
|
|
|
24
24
|
}))),
|
|
25
25
|
children: Object.freeze(children),
|
|
26
26
|
hidden: input.hidden ?? false,
|
|
27
|
+
...(input.discovery === undefined ? {} : { discovery: input.discovery }),
|
|
27
28
|
options: Object.freeze([...(input.options ?? [])]),
|
|
28
29
|
hiddenOptions: Object.freeze([...(input.hiddenOptions ?? [])]),
|
|
29
30
|
values: Object.freeze((input.values ?? []).map((value) => Object.freeze(typeof value === "string" ? { name: value, summary: value } : { ...value }))),
|
|
@@ -66,7 +67,7 @@ function durableConfigDomainNode(domain) {
|
|
|
66
67
|
? ["--quiet-after-seconds", "--diagnostic-after-seconds", "--stall-after-seconds"]
|
|
67
68
|
: [];
|
|
68
69
|
return {
|
|
69
|
-
name: domain,
|
|
70
|
+
name: domain, discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
70
71
|
summary: CONFIG_DOMAIN_SUMMARIES[domain],
|
|
71
72
|
examples: [
|
|
72
73
|
`yui config ${domain} show`,
|
|
@@ -75,9 +76,9 @@ function durableConfigDomainNode(domain) {
|
|
|
75
76
|
],
|
|
76
77
|
sections: [{ id: "manage", title: "Commands", entries: ["show", "set", "clear"] }],
|
|
77
78
|
children: [
|
|
78
|
-
{ name: "show", summary: `Show effective ${domain} configuration.` },
|
|
79
|
+
{ name: "show", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment", "global"] }, summary: `Show effective ${domain} configuration.` },
|
|
79
80
|
{
|
|
80
|
-
name: "set",
|
|
81
|
+
name: "set", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
81
82
|
summary: `Set one ${domain} configuration key.`,
|
|
82
83
|
usage: `yui config ${domain} set <key> <value...>`,
|
|
83
84
|
sections: [{ id: "keys", title: "Configuration keys", entries: keys }],
|
|
@@ -90,7 +91,7 @@ function durableConfigDomainNode(domain) {
|
|
|
90
91
|
: {}
|
|
91
92
|
},
|
|
92
93
|
{
|
|
93
|
-
name: "clear",
|
|
94
|
+
name: "clear", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
94
95
|
summary: `Reset one ${domain} configuration key to its default.`,
|
|
95
96
|
usage: `yui config ${domain} clear <key>`,
|
|
96
97
|
sections: [{ id: "keys", title: "Configuration keys", entries: keys }],
|
|
@@ -101,7 +102,7 @@ function durableConfigDomainNode(domain) {
|
|
|
101
102
|
}
|
|
102
103
|
const agentChildren = [
|
|
103
104
|
{
|
|
104
|
-
name: "add",
|
|
105
|
+
name: "add", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
105
106
|
summary: "Add a configured Agent execution component.",
|
|
106
107
|
usage: "yui config agent add <id> [--component <component>] [--adapter <adapter>] --command <command> [--arg <arg> ...] [--env TARGET=PROCESS_NAME ...]",
|
|
107
108
|
options: ["--component", "--adapter", "--command", "--arg", "--env"],
|
|
@@ -111,16 +112,16 @@ const agentChildren = [
|
|
|
111
112
|
},
|
|
112
113
|
executableOptions: ["--command"]
|
|
113
114
|
},
|
|
114
|
-
{ name: "list", summary: "List configured Agents." },
|
|
115
|
-
{ name: "show", summary: "Show one configured Agent.", usage: "yui config agent show <id>" },
|
|
115
|
+
{ name: "list", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment", "global"] }, summary: "List configured Agents." },
|
|
116
|
+
{ name: "show", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment", "global"] }, summary: "Show one configured Agent.", usage: "yui config agent show <id>" },
|
|
116
117
|
{
|
|
117
|
-
name: "capabilities",
|
|
118
|
+
name: "capabilities", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment", "global"] },
|
|
118
119
|
summary: "Probe one Agent CLI for runtime configuration options.",
|
|
119
120
|
usage: "yui config agent capabilities <id> [--refresh]",
|
|
120
121
|
options: ["--refresh"]
|
|
121
122
|
},
|
|
122
123
|
{
|
|
123
|
-
name: "update",
|
|
124
|
+
name: "update", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
124
125
|
summary: "Update a configured Agent.",
|
|
125
126
|
usage: "yui config agent update <id> [--component <component>] [--adapter <adapter>] [--command <command>] [--arg <arg> ... | --clear-args] [--env TARGET=PROCESS_NAME ... | --clear-env]",
|
|
126
127
|
options: ["--component", "--adapter", "--command", "--arg", "--clear-args", "--env", "--clear-env", "--yes"],
|
|
@@ -130,7 +131,7 @@ const agentChildren = [
|
|
|
130
131
|
},
|
|
131
132
|
executableOptions: ["--command"]
|
|
132
133
|
},
|
|
133
|
-
{ name: "remove", summary: "Remove a configured Agent.", usage: "yui config agent remove <id>" }
|
|
134
|
+
{ name: "remove", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Remove a configured Agent.", usage: "yui config agent remove <id>" }
|
|
134
135
|
];
|
|
135
136
|
const roleProfileOptions = [
|
|
136
137
|
"--description", "--responsibility", "--constraint",
|
|
@@ -164,17 +165,17 @@ const roleAgentOptionValues = {
|
|
|
164
165
|
};
|
|
165
166
|
const roleChildren = [
|
|
166
167
|
{
|
|
167
|
-
name: "add",
|
|
168
|
+
name: "add", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
168
169
|
summary: "Add a reusable global Role.",
|
|
169
170
|
usage: "yui config role add <name> --agent <id> [Role and Agent settings]",
|
|
170
171
|
options: ["--agent", "--workspace", ...roleProfileOptions, ...roleAgentOptions],
|
|
171
172
|
optionValues: roleAgentOptionValues,
|
|
172
173
|
fileOptions: ["--workspace"]
|
|
173
174
|
},
|
|
174
|
-
{ name: "list", summary: "List global Roles." },
|
|
175
|
-
{ name: "show", summary: "Show one global Role.", usage: "yui config role show <name>" },
|
|
175
|
+
{ name: "list", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment", "global"] }, summary: "List global Roles." },
|
|
176
|
+
{ name: "show", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment", "global"] }, summary: "Show one global Role.", usage: "yui config role show <name>" },
|
|
176
177
|
{
|
|
177
|
-
name: "update",
|
|
178
|
+
name: "update", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
178
179
|
summary: "Update a global Role.",
|
|
179
180
|
usage: "yui config role update <name> [profile options] [clear options]",
|
|
180
181
|
options: ["--agent", "--workspace", ...roleProfileOptions, ...roleAgentOptions,
|
|
@@ -182,73 +183,74 @@ const roleChildren = [
|
|
|
182
183
|
optionValues: roleAgentOptionValues,
|
|
183
184
|
fileOptions: ["--workspace"]
|
|
184
185
|
},
|
|
185
|
-
{ name: "remove", summary: "Remove a global Role.", usage: "yui config role remove <name>" },
|
|
186
|
-
{ name: "bind", summary: "Bind and activate an Agent for a global Role.", usage: "yui config role bind <role> <agent-id>" },
|
|
187
|
-
{ name: "unbind", summary: "Unbind a dormant Agent from a global Role.", usage: "yui config role unbind <role> <agent-id>" }
|
|
186
|
+
{ name: "remove", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Remove a global Role.", usage: "yui config role remove <name>" },
|
|
187
|
+
{ name: "bind", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Bind and activate an Agent for a global Role.", usage: "yui config role bind <role> <agent-id>" },
|
|
188
|
+
{ name: "unbind", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Unbind a dormant Agent from a global Role.", usage: "yui config role unbind <role> <agent-id>" }
|
|
188
189
|
];
|
|
189
190
|
const globalSessionChildren = [
|
|
190
|
-
{ name: "enter", summary: "Enter a global Role's native session.", usage: "yui session enter <role>" },
|
|
191
|
+
{ name: "enter", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Enter a global Role's native session.", usage: "yui session enter <role>" },
|
|
191
192
|
{
|
|
192
|
-
name: "context",
|
|
193
|
+
name: "context", discovery: { surface: "managed", audiences: ["operator", "global", "unbound"] },
|
|
193
194
|
summary: "Load the exact authorized global Role context.",
|
|
194
|
-
usage: "yui session context <role>"
|
|
195
|
+
usage: "yui session context <role> [--cursor <cursor>]",
|
|
196
|
+
options: ["--cursor"]
|
|
195
197
|
},
|
|
196
198
|
{
|
|
197
|
-
name: "record",
|
|
199
|
+
name: "record", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
198
200
|
summary: "Record the active Agent's native session ID.",
|
|
199
201
|
usage: "yui session record <role> --native-id <id>",
|
|
200
202
|
options: ["--native-id"]
|
|
201
203
|
},
|
|
202
204
|
{
|
|
203
|
-
name: "replace",
|
|
205
|
+
name: "replace", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
204
206
|
summary: "Explicitly replace the active Agent's native session ID.",
|
|
205
207
|
usage: "yui session replace <role> --native-id <id> --reason <text>",
|
|
206
208
|
options: ["--native-id", "--reason"]
|
|
207
209
|
},
|
|
208
210
|
{
|
|
209
|
-
name: "stop",
|
|
211
|
+
name: "stop", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
210
212
|
summary: "Stop all idle managed Sessions and the Controller before an offline update.",
|
|
211
213
|
usage: "yui session stop --all",
|
|
212
214
|
options: ["--all"]
|
|
213
215
|
},
|
|
214
216
|
{
|
|
215
|
-
name: "reconcile",
|
|
217
|
+
name: "reconcile", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
216
218
|
summary: "Reconcile durable Session owners with native sessions.",
|
|
217
219
|
usage: "yui session reconcile [--report] [--cleanup]",
|
|
218
220
|
options: ["--report", "--cleanup"]
|
|
219
221
|
},
|
|
220
222
|
{
|
|
221
|
-
name: "retry",
|
|
223
|
+
name: "retry", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
222
224
|
summary: "Inspect or control bounded Provider recovery for this Global Session.",
|
|
223
225
|
usage: "yui session retry <role> [show|cancel|disable|enable]"
|
|
224
226
|
}
|
|
225
227
|
];
|
|
226
228
|
const profileChildren = [
|
|
227
229
|
{
|
|
228
|
-
name: "add",
|
|
230
|
+
name: "add", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
229
231
|
summary: "Add a reusable Agent Profile that inherits Worker runtime or selects one explicit Agent.",
|
|
230
232
|
usage: "yui config profile add <id> [--access <read|write>] [--inherit-worker | --agent <id> [--model <model>] [--effort <effort>]] [Profile settings]",
|
|
231
233
|
options: ["--access", ...agentProfileOptions],
|
|
232
234
|
optionValues: { "--access": ["read", "write"] }
|
|
233
235
|
},
|
|
234
|
-
{ name: "list", summary: "List Agent Profiles." },
|
|
235
|
-
{ name: "show", summary: "Show one Agent Profile.", usage: "yui config profile show <id>" },
|
|
236
|
+
{ name: "list", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment", "global"] }, summary: "List Agent Profiles." },
|
|
237
|
+
{ name: "show", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment", "global"] }, summary: "Show one Agent Profile.", usage: "yui config profile show <id>" },
|
|
236
238
|
{
|
|
237
|
-
name: "update",
|
|
239
|
+
name: "update", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
238
240
|
summary: "Update an Agent Profile's behavior or runtime source.",
|
|
239
241
|
usage: "yui config profile update <id> [--access <read|write>] [--inherit-worker | [--agent <id>] [--model <model>|--clear-model] [--effort <effort>|--clear-effort]] [Profile settings]",
|
|
240
242
|
options: ["--access", ...agentProfileOptions, ...agentProfileClearOptions],
|
|
241
243
|
optionValues: { "--access": ["read", "write"] }
|
|
242
244
|
},
|
|
243
|
-
{ name: "remove", summary: "Remove a custom Agent Profile.", usage: "yui config profile remove <id>" },
|
|
244
|
-
{ name: "reset", summary: "Reset all built-in Agent Profiles." }
|
|
245
|
+
{ name: "remove", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Remove a custom Agent Profile.", usage: "yui config profile remove <id>" },
|
|
246
|
+
{ name: "reset", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Reset all built-in Agent Profiles." }
|
|
245
247
|
];
|
|
246
248
|
const completionChildren = [
|
|
247
|
-
{ name: "bash", summary: "Interactively configure Bash completion." },
|
|
248
|
-
{ name: "zsh", summary: "Interactively configure Zsh completion." },
|
|
249
|
-
{ name: "fish", summary: "Interactively configure Fish completion." },
|
|
249
|
+
{ name: "bash", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Interactively configure Bash completion." },
|
|
250
|
+
{ name: "zsh", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Interactively configure Zsh completion." },
|
|
251
|
+
{ name: "fish", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Interactively configure Fish completion." },
|
|
250
252
|
{
|
|
251
|
-
name: "candidates",
|
|
253
|
+
name: "candidates", discovery: { surface: "runtime", audiences: [] },
|
|
252
254
|
summary: "Resolve internal dynamic completion candidates.",
|
|
253
255
|
usage: "yui config completion candidates <prefix> -- <words...>",
|
|
254
256
|
hidden: true
|
|
@@ -256,24 +258,24 @@ const completionChildren = [
|
|
|
256
258
|
];
|
|
257
259
|
const taskChildren = [
|
|
258
260
|
{
|
|
259
|
-
name: "create",
|
|
261
|
+
name: "create", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
260
262
|
summary: "Create a Draft Task.",
|
|
261
263
|
usage: "yui task create <title> [--type <project-defined-type>] [--project <project> ...] [--base <project>=<ref> ...]",
|
|
262
264
|
options: ["--type", "--project", "--base"],
|
|
263
265
|
optionValues: { "--type": ["feature", "bugfix"] }
|
|
264
266
|
},
|
|
265
267
|
{
|
|
266
|
-
name: "project",
|
|
268
|
+
name: "project", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
267
269
|
summary: "Manage Projects bound to a Task.",
|
|
268
270
|
sections: [{ id: "manage", title: "Commands", entries: ["list", "add"] }],
|
|
269
271
|
children: [
|
|
270
272
|
{
|
|
271
|
-
name: "list",
|
|
273
|
+
name: "list", discovery: { surface: "public", audiences: ["public", "operator", "leader"] },
|
|
272
274
|
summary: "List the Projects bound to a Task.",
|
|
273
275
|
usage: "yui task project list <task>"
|
|
274
276
|
},
|
|
275
277
|
{
|
|
276
|
-
name: "add",
|
|
278
|
+
name: "add", discovery: { surface: "public", audiences: ["public", "operator", "leader"] },
|
|
277
279
|
summary: "Add a Project to a Task.",
|
|
278
280
|
usage: "yui task project add <task> <project> [--base <ref>] [--directory <name>]",
|
|
279
281
|
options: ["--base", "--directory"]
|
|
@@ -281,7 +283,7 @@ const taskChildren = [
|
|
|
281
283
|
]
|
|
282
284
|
},
|
|
283
285
|
{
|
|
284
|
-
name: "update",
|
|
286
|
+
name: "update", discovery: { surface: "public", audiences: ["public", "operator", "leader"] },
|
|
285
287
|
summary: "Update Task metadata.",
|
|
286
288
|
usage: "yui task update <id> [--title <text>] [--type <project-defined-type>|--clear-type] [--description <text>|--clear-description] [--priority <low|medium|high|urgent>|--clear-priority] [--tags <comma-separated>|--clear-tags] [--due-at <RFC3339>|--clear-due-at]",
|
|
287
289
|
options: [
|
|
@@ -294,14 +296,14 @@ const taskChildren = [
|
|
|
294
296
|
"--type": ["feature", "bugfix"]
|
|
295
297
|
}
|
|
296
298
|
},
|
|
297
|
-
{ name: "activate", summary: "Adopt an existing Activation request for a Draft Task.", usage: "yui task activate <id>" },
|
|
299
|
+
{ name: "activate", discovery: { surface: "public", audiences: ["public", "operator", "leader"] }, summary: "Adopt an existing Activation request for a Draft Task.", usage: "yui task activate <id>" },
|
|
298
300
|
{
|
|
299
|
-
name: "activation",
|
|
301
|
+
name: "activation", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
300
302
|
summary: "Request, cancel or inspect explicit Task Activation.",
|
|
301
303
|
sections: [{ id: "manage", title: "Commands", entries: ["request", "cancel", "show"] }],
|
|
302
304
|
children: [
|
|
303
305
|
{
|
|
304
|
-
name: "request",
|
|
306
|
+
name: "request", discovery: { surface: "public", audiences: ["public", "operator", "leader"] },
|
|
305
307
|
summary: "Record an Activation request. Every active Task gets a managed main workspace. empty adds no execution environment; scratch adopts a separate scratch environment; local requires a registered Resource and grant, not a Project ID.",
|
|
306
308
|
usage: "yui task activation request <task> --request-id <id> "
|
|
307
309
|
+ "--environment <empty|scratch|local:<resource>:<read|write>>",
|
|
@@ -312,126 +314,126 @@ const taskChildren = [
|
|
|
312
314
|
]
|
|
313
315
|
},
|
|
314
316
|
{
|
|
315
|
-
name: "cancel",
|
|
317
|
+
name: "cancel", discovery: { surface: "public", audiences: ["public", "operator", "leader"] },
|
|
316
318
|
summary: "Cancel a pending Activation request so it is never adopted.",
|
|
317
319
|
usage: "yui task activation cancel <task> --request-id <id> --reason <text>",
|
|
318
320
|
options: ["--request-id", "--reason"]
|
|
319
321
|
},
|
|
320
322
|
{
|
|
321
|
-
name: "show",
|
|
323
|
+
name: "show", discovery: { surface: "public", audiences: ["public", "operator", "leader"] },
|
|
322
324
|
summary: "Show the Task's Activation request and its disposition.",
|
|
323
325
|
usage: "yui task activation show <task>"
|
|
324
326
|
}
|
|
325
327
|
]
|
|
326
328
|
},
|
|
327
329
|
{
|
|
328
|
-
name: "execution",
|
|
330
|
+
name: "execution", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
329
331
|
summary: "Fence or resume all execution for a Task.",
|
|
330
332
|
sections: [{ id: "manage", title: "Commands", entries: ["stop", "start"] }],
|
|
331
333
|
children: [
|
|
332
334
|
{
|
|
333
|
-
name: "stop",
|
|
335
|
+
name: "stop", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
334
336
|
summary: "Stop all Task execution while preserving durable progress.",
|
|
335
337
|
usage: "yui task execution stop <task> --force --reason <text>",
|
|
336
338
|
options: ["--force", "--reason"]
|
|
337
339
|
},
|
|
338
340
|
{
|
|
339
|
-
name: "start",
|
|
341
|
+
name: "start", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
340
342
|
summary: "Resume the Leader from durable Task progress.",
|
|
341
343
|
usage: "yui task execution start <task>"
|
|
342
344
|
}
|
|
343
345
|
]
|
|
344
346
|
},
|
|
345
347
|
{
|
|
346
|
-
name: "complete",
|
|
348
|
+
name: "complete", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
347
349
|
summary: "Complete locally, or prepare/dispatch the configured final Review and remain active. --refresh-remote only fetches freshness observations; it never rebases, changes HEAD or starts Integration checks.",
|
|
348
350
|
usage: "yui task complete <id> (--summary <text>|--summary-file <path|->) [--artifact-ref <artifact-id|turn:id|url> ...] [--refresh-remote] [--accept-published-tree <publication-id>]",
|
|
349
351
|
options: ["--summary", "--summary-file", "--artifact-ref", "--refresh-remote", "--accept-published-tree"],
|
|
350
352
|
fileOptions: ["--summary-file"]
|
|
351
353
|
},
|
|
352
354
|
{
|
|
353
|
-
name: "base",
|
|
355
|
+
name: "base", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
354
356
|
summary: "Inspect Task Project baseline freshness.",
|
|
355
357
|
sections: [{ id: "manage", title: "Commands", entries: ["status"] }],
|
|
356
358
|
children: [
|
|
357
359
|
{
|
|
358
|
-
name: "status",
|
|
360
|
+
name: "status", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
359
361
|
summary: "Observe Task Project bases against local refs; --refresh fetches remote objects without changing HEAD, starting checks or creating Integration/Review.",
|
|
360
362
|
usage: "yui task base status <task> [--refresh]",
|
|
361
363
|
options: ["--refresh"]
|
|
362
364
|
}
|
|
363
365
|
]
|
|
364
366
|
},
|
|
365
|
-
{ name: "reopen", summary: "Explicitly reopen completed or cancelled intent without replaying historical inputs.", usage: "yui task reopen <id>" },
|
|
367
|
+
{ name: "reopen", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Explicitly reopen completed or cancelled intent without replaying historical inputs.", usage: "yui task reopen <id>" },
|
|
366
368
|
{
|
|
367
|
-
name: "cancel",
|
|
369
|
+
name: "cancel", discovery: { surface: "public", audiences: ["public", "operator", "leader"] },
|
|
368
370
|
summary: "Stop pursuing a Task without claiming its processes stopped.",
|
|
369
371
|
usage: "yui task cancel <task> (--summary <text>|--summary-file <path|->)",
|
|
370
372
|
options: ["--summary", "--summary-file"],
|
|
371
373
|
fileOptions: ["--summary-file"]
|
|
372
374
|
},
|
|
373
375
|
{
|
|
374
|
-
name: "retire",
|
|
376
|
+
name: "retire", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
375
377
|
summary: "Retire a stale Task while preserving its historical evidence.",
|
|
376
378
|
usage: "yui task retire <task> (--summary <text>|--summary-file <path|->) [--replacement <task>]",
|
|
377
379
|
options: ["--summary", "--summary-file", "--replacement"],
|
|
378
380
|
fileOptions: ["--summary-file"]
|
|
379
381
|
},
|
|
380
382
|
{
|
|
381
|
-
name: "list",
|
|
383
|
+
name: "list", discovery: { surface: "public", audiences: ["public", "operator", "leader"] },
|
|
382
384
|
summary: "Discover Tasks through a bounded, filterable catalog.",
|
|
383
385
|
usage: "yui task list [--all] [--status <status>] [--project <id>] [--search <text>] [--attention <category>] [--limit <1..100>] [--cursor <cursor>]",
|
|
384
386
|
options: ["--all", "--status", "--project", "--search", "--attention", "--limit", "--cursor"]
|
|
385
387
|
},
|
|
386
|
-
{ name: "show", summary: "Show
|
|
388
|
+
{ name: "show", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment"] }, summary: "Show Task metadata and counts; long details use contentPage.", usage: "yui task show <id> [--cursor <cursor>]", options: ["--cursor"] },
|
|
387
389
|
{
|
|
388
|
-
name: "artifact",
|
|
390
|
+
name: "artifact", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
389
391
|
summary: "Save Task files in local Git and read current or commit-pinned content.",
|
|
390
392
|
sections: [{ id: "manage", title: "Commands", entries: ["list", "read", "save"] }],
|
|
391
393
|
children: [
|
|
392
|
-
{ name: "list", summary: "List saved Task artifacts.", usage: "yui task artifact list <task>" },
|
|
393
|
-
{ name: "read", summary: "Read a file at HEAD or an exact commit.", usage: "yui task artifact read <task> <relative-path> [<commit>]" },
|
|
394
|
-
{ name: "save", summary: "Save and locally commit one file.", usage: "yui task artifact save <task> <relative-path> <content> [--message <text>] [--expected-head <commit>]", options: ["--message", "--expected-head"] }
|
|
394
|
+
{ name: "list", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment"] }, summary: "List saved Task artifacts.", usage: "yui task artifact list <task>" },
|
|
395
|
+
{ name: "read", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment"] }, summary: "Read a file at HEAD or an exact commit.", usage: "yui task artifact read <task> <relative-path> [<commit>]" },
|
|
396
|
+
{ name: "save", discovery: { surface: "managed", audiences: ["operator", "leader"] }, summary: "Save and locally commit one file.", usage: "yui task artifact save <task> <relative-path> <content> [--message <text>] [--expected-head <commit>]", options: ["--message", "--expected-head"] }
|
|
395
397
|
]
|
|
396
398
|
},
|
|
397
399
|
{
|
|
398
|
-
name: "context",
|
|
400
|
+
name: "context", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment", "unbound"] },
|
|
399
401
|
summary: "Read compact authorized facts, fixed-bound delta, or inspect a Context reference.",
|
|
400
|
-
usage: "yui task context [read|delta|inspect] <task> [--after <cursor>] [--continuation <cursor>] [--limit <n>] [--store <store> --ref <id>] [--digest <digest>]",
|
|
401
|
-
options: ["--after", "--continuation", "--limit", "--store", "--ref", "--digest"]
|
|
402
|
+
usage: "yui task context [read|list|delta|inspect] <task> [--after <cursor>] [--continuation <cursor>] [--cursor <cursor>] [--limit <n>] [--store <store> --ref <id>] [--digest <digest>]",
|
|
403
|
+
options: ["--after", "--continuation", "--cursor", "--limit", "--store", "--ref", "--digest", "--status", "--work-item"]
|
|
402
404
|
},
|
|
403
405
|
{
|
|
404
|
-
name: "next-action",
|
|
406
|
+
name: "next-action", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
405
407
|
summary: "Read Task facts, mechanical prerequisites and legal alternatives; semantic choices remain with the Leader.",
|
|
406
|
-
usage: "yui task next-action <task> [--json]",
|
|
407
|
-
options: ["--json"]
|
|
408
|
+
usage: "yui task next-action <task> [--cursor <cursor>] [--json]",
|
|
409
|
+
options: ["--cursor", "--json"]
|
|
408
410
|
},
|
|
409
411
|
{
|
|
410
|
-
name: "remote-delivery",
|
|
412
|
+
name: "remote-delivery", discovery: { surface: "public", audiences: ["public", "operator", "leader"] },
|
|
411
413
|
summary: "Project exact Task heads and current PR/MR evidence into merge coverage.",
|
|
412
|
-
usage: "yui task remote-delivery <task> [--json]",
|
|
413
|
-
options: ["--json"]
|
|
414
|
+
usage: "yui task remote-delivery <task> [--cursor <cursor>] [--json]",
|
|
415
|
+
options: ["--cursor", "--json"]
|
|
414
416
|
},
|
|
415
417
|
{
|
|
416
|
-
name: "archive-preflight",
|
|
418
|
+
name: "archive-preflight", discovery: { surface: "public", audiences: ["public", "operator", "leader"] },
|
|
417
419
|
summary: "Inspect current archive and exact-owner cleanup blockers without changing state or authorizing removal.",
|
|
418
420
|
usage: "yui task archive-preflight <id> (--integrated|--abandon) [--force] [--json]",
|
|
419
421
|
options: ["--integrated", "--abandon", "--force", "--json"]
|
|
420
422
|
},
|
|
421
423
|
{
|
|
422
|
-
name: "archive",
|
|
424
|
+
name: "archive", discovery: { surface: "public", audiences: ["public", "operator", "leader"], optionAudiences: { "--force": ["public", "operator"] } },
|
|
423
425
|
summary: "Archive a terminal Task; explicit --force commits despite delivery/cleanup warnings, retaining unsafe resources.",
|
|
424
|
-
usage: "yui task archive <id> (--integrated|--abandon) [--force]",
|
|
425
|
-
options: ["--integrated", "--abandon", "--force"]
|
|
426
|
+
usage: "yui task archive <id> (--integrated|--abandon) [--force] [--source-message <id> --purpose <verbatim-authorization> --request-id <id>]",
|
|
427
|
+
options: ["--integrated", "--abandon", "--force", "--source-message", "--purpose", "--request-id"]
|
|
426
428
|
},
|
|
427
|
-
{ name: "reconcile", summary: "Run one immediate Controller reconciliation.", usage: "yui task reconcile <id>" },
|
|
429
|
+
{ name: "reconcile", discovery: { surface: "managed", audiences: ["operator", "leader"] }, summary: "Run one immediate Controller reconciliation.", usage: "yui task reconcile <id>" },
|
|
428
430
|
{
|
|
429
|
-
name: "upstream",
|
|
431
|
+
name: "upstream", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
430
432
|
summary: "Integrate upstream changes into an Active Task workspace.",
|
|
431
433
|
sections: [{ id: "manage", title: "Commands", entries: ["integrate"] }],
|
|
432
434
|
children: [
|
|
433
435
|
{
|
|
434
|
-
name: "integrate",
|
|
436
|
+
name: "integrate", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
435
437
|
summary: "Explicitly rebase Task changes onto the remote development head, run configured/additional checks (possibly as Jobs), then advance HEAD through Integration CAS. Returns exact attempts and partial results; does not request Review or complete the Task.",
|
|
436
438
|
usage: "yui task upstream integrate <task> (--latest|--project <project>) [--check <command> ...] [--rerun-checks]",
|
|
437
439
|
options: ["--latest", "--project", "--check", "--rerun-checks"]
|
|
@@ -439,25 +441,25 @@ const taskChildren = [
|
|
|
439
441
|
]
|
|
440
442
|
},
|
|
441
443
|
{
|
|
442
|
-
name: "replace",
|
|
444
|
+
name: "replace", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
443
445
|
summary: "Create a draft successor for a terminal Task.",
|
|
444
446
|
usage: "yui task replace <task> [--title <text>]",
|
|
445
447
|
options: ["--title"]
|
|
446
448
|
},
|
|
447
449
|
{
|
|
448
|
-
name: "message",
|
|
450
|
+
name: "message", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
449
451
|
summary: "Manage durable Task messages.",
|
|
450
452
|
sections: [{ id: "manage", title: "Commands", entries: ["send", "queue", "steer", "handoff", "list", "show", "update", "retire"] }],
|
|
451
453
|
children: [
|
|
452
454
|
{
|
|
453
|
-
name: "handoff",
|
|
455
|
+
name: "handoff", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
454
456
|
summary: "Explicitly hand an unassigned Message to the current dispatched owner of the same work.",
|
|
455
457
|
usage: "yui task message handoff <task/message> --to <role>",
|
|
456
458
|
options: ["--to"]
|
|
457
459
|
},
|
|
458
460
|
{
|
|
459
|
-
name: "send",
|
|
460
|
-
summary: "Send
|
|
461
|
+
name: "send", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"], optionAudiences: { "--intent": ["public", "operator"] } },
|
|
462
|
+
summary: "Send durable Task input within the current caller's routing and Assignment boundary.",
|
|
461
463
|
usage: "yui task message send <id> (<body>|--body-file <path|->) [--intent record|discuss|develop] [--request-id <key>] [--to <role> --work-item <id>|--review-round <id>]",
|
|
462
464
|
options: ["--body-file", "--intent", "--request-id", "--to", "--work-item", "--review-round"],
|
|
463
465
|
optionValues: {
|
|
@@ -466,39 +468,40 @@ const taskChildren = [
|
|
|
466
468
|
fileOptions: ["--body-file"]
|
|
467
469
|
},
|
|
468
470
|
{
|
|
469
|
-
name: "queue",
|
|
471
|
+
name: "queue", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
470
472
|
summary: "Queue ordinary Leader input without --to; an explicit Role requires an existing WorkItem/ReviewRound Assignment. Idempotent by request id.",
|
|
471
473
|
usage: "yui task message queue <id> (<body>|--body-file <path|->) --request-id <id> [--to <role> (--work-item <id>|--review-round <id>)]",
|
|
472
474
|
options: ["--body-file", "--request-id", "--to", "--work-item", "--review-round"],
|
|
473
475
|
fileOptions: ["--body-file"]
|
|
474
476
|
},
|
|
475
477
|
{
|
|
476
|
-
name: "steer",
|
|
478
|
+
name: "steer", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
477
479
|
summary: "Steer only a Role's exact current native Turn; saved and reported without fallback when unsupported.",
|
|
478
480
|
usage: "yui task message steer <id> (<body>|--body-file <path|->) --request-id <id> --expected-target <turn> --to <role> [--work-item <id>|--review-round <id>]",
|
|
479
481
|
options: ["--body-file", "--request-id", "--expected-target", "--to", "--work-item", "--review-round"],
|
|
480
482
|
fileOptions: ["--body-file"]
|
|
481
483
|
},
|
|
482
484
|
{
|
|
483
|
-
name: "list",
|
|
485
|
+
name: "list", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment"] },
|
|
484
486
|
summary: "List Task messages.",
|
|
485
|
-
usage: "yui task message list <id> [--after <timestamp>] [--limit <
|
|
486
|
-
options: ["--after", "--limit"]
|
|
487
|
+
usage: "yui task message list <id> [--after <timestamp>] [--limit <1..100>] [--cursor <cursor>]",
|
|
488
|
+
options: ["--after", "--limit", "--cursor"]
|
|
487
489
|
},
|
|
488
490
|
{
|
|
489
|
-
name: "show",
|
|
491
|
+
name: "show", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment"] },
|
|
490
492
|
summary: "Read a scoped Message and expand its single execution result.",
|
|
491
|
-
usage: "yui task message show <task>/<message>"
|
|
493
|
+
usage: "yui task message show <task>/<message> [--cursor <cursor>]",
|
|
494
|
+
options: ["--cursor"]
|
|
492
495
|
},
|
|
493
496
|
{
|
|
494
|
-
name: "update",
|
|
497
|
+
name: "update", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
495
498
|
summary: "Edit unkeyed Draft context without changing intent; inputs with request identities require a new Message.",
|
|
496
499
|
usage: "yui task message update <task>/<message> (<body>|--body-file <path|->)",
|
|
497
500
|
options: ["--body-file"],
|
|
498
501
|
fileOptions: ["--body-file"]
|
|
499
502
|
},
|
|
500
503
|
{
|
|
501
|
-
name: "retire",
|
|
504
|
+
name: "retire", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
502
505
|
summary: "Retire an incorrect historical Task Message without deleting its audit record.",
|
|
503
506
|
usage: "yui task message retire <task>/<message> --reason <text>",
|
|
504
507
|
options: ["--reason"]
|
|
@@ -506,36 +509,36 @@ const taskChildren = [
|
|
|
506
509
|
]
|
|
507
510
|
},
|
|
508
511
|
{
|
|
509
|
-
name: "input",
|
|
512
|
+
name: "input", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
510
513
|
summary: "Manage durable Task-owned input requests.",
|
|
511
514
|
sections: [{ id: "manage", title: "Commands", entries: ["request", "list", "show", "answer", "cancel"] }],
|
|
512
515
|
children: [
|
|
513
516
|
{
|
|
514
|
-
name: "request",
|
|
517
|
+
name: "request", discovery: { surface: "managed", audiences: ["leader"] },
|
|
515
518
|
summary: "Pause the active Leader AgentRun and request user input.",
|
|
516
519
|
usage: "yui task input request <task> --question <text> [--choice <key=label> ...] [--blocks <work-item:id|turn:id> ...] [--recommend <key> --timeout-seconds <seconds>]",
|
|
517
520
|
options: ["--question", "--choice", "--blocks", "--recommend", "--timeout-seconds"]
|
|
518
521
|
},
|
|
519
522
|
{
|
|
520
|
-
name: "list",
|
|
523
|
+
name: "list", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment"] },
|
|
521
524
|
summary: "List the global Inbox or one Task's input requests.",
|
|
522
|
-
usage: "yui task input list [task] [--all]",
|
|
523
|
-
options: ["--all"]
|
|
525
|
+
usage: "yui task input list [task] [--all] [--limit <1..100>] [--cursor <cursor>]",
|
|
526
|
+
options: ["--all", "--limit", "--cursor"]
|
|
524
527
|
},
|
|
525
528
|
{
|
|
526
|
-
name: "show",
|
|
529
|
+
name: "show", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment"] },
|
|
527
530
|
summary: "Show one input request.",
|
|
528
|
-
usage: "yui task input show (<task>/<input> | <input> --task <task>)",
|
|
529
|
-
options: ["--task"]
|
|
531
|
+
usage: "yui task input show (<task>/<input> | <input> --task <task>) [--cursor <cursor>]",
|
|
532
|
+
options: ["--task", "--cursor"]
|
|
530
533
|
},
|
|
531
534
|
{
|
|
532
|
-
name: "answer",
|
|
535
|
+
name: "answer", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
533
536
|
summary: "Answer one open input request.",
|
|
534
537
|
usage: "yui task input answer (<task>/<input> | <input> --task <task>) (--choice <key> | --text <text>)",
|
|
535
538
|
options: ["--task", "--choice", "--text"]
|
|
536
539
|
},
|
|
537
540
|
{
|
|
538
|
-
name: "cancel",
|
|
541
|
+
name: "cancel", discovery: { surface: "managed", audiences: ["leader"] },
|
|
539
542
|
summary: "Cancel an open request from its originating Leader.",
|
|
540
543
|
usage: "yui task input cancel <task> <input> --reason <text>",
|
|
541
544
|
options: ["--reason"]
|
|
@@ -543,116 +546,117 @@ const taskChildren = [
|
|
|
543
546
|
]
|
|
544
547
|
},
|
|
545
548
|
{
|
|
546
|
-
name: "grant",
|
|
547
|
-
summary: "Manage
|
|
549
|
+
name: "grant", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
550
|
+
summary: "Manage Task grants as Operator, or bounded source-authorized grants as the current delivery Leader.",
|
|
548
551
|
sections: [{ id: "manage", title: "Commands", entries: ["issue", "show", "list", "revoke"] }],
|
|
549
552
|
children: [
|
|
550
553
|
{
|
|
551
|
-
name: "issue",
|
|
552
|
-
summary: "Issue
|
|
554
|
+
name: "issue", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
555
|
+
summary: "Issue as Operator, or as current delivery Leader with --source-message, --purpose, --request-id, exact scope, expiry and finite uses.",
|
|
553
556
|
usage: "yui task grant issue <task> --action <name> (repeatable) [--scope-project <id>...] [--scope-repo <owner/name>...] [--scope-package <name>...] [--scope-home <path>] [--param <name=v1,v2>...] [--expires-at <iso-8601>] [--max-uses <int>] [--irreversibility-ceiling <none|reversible|irreversible>]",
|
|
554
|
-
options: ["--action", "--scope-project", "--scope-repo", "--scope-package", "--scope-home", "--param", "--expires-at", "--max-uses", "--irreversibility-ceiling"]
|
|
557
|
+
options: ["--action", "--scope-project", "--scope-repo", "--scope-package", "--scope-home", "--param", "--expires-at", "--max-uses", "--irreversibility-ceiling", "--source-message", "--purpose", "--request-id"]
|
|
555
558
|
},
|
|
556
559
|
{
|
|
557
|
-
name: "show",
|
|
560
|
+
name: "show", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
558
561
|
summary: "Show one capability grant.",
|
|
559
562
|
usage: "yui task grant show <task> <grant-id>"
|
|
560
563
|
},
|
|
561
564
|
{
|
|
562
|
-
name: "list",
|
|
565
|
+
name: "list", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
563
566
|
summary: "List capability grants for a Task.",
|
|
564
567
|
usage: "yui task grant list <task>"
|
|
565
568
|
},
|
|
566
569
|
{
|
|
567
|
-
name: "revoke",
|
|
568
|
-
summary: "Revoke
|
|
570
|
+
name: "revoke", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
571
|
+
summary: "Revoke as Operator, or this Task's current delivery Leader for a Leader-issued grant.",
|
|
569
572
|
usage: "yui task grant revoke <task> <grant-id>",
|
|
570
573
|
options: []
|
|
571
574
|
}
|
|
572
575
|
]
|
|
573
576
|
},
|
|
574
577
|
{
|
|
575
|
-
name: "workflow",
|
|
578
|
+
name: "workflow", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
576
579
|
summary: "Manage release workflows for a Task.",
|
|
577
580
|
sections: [{ id: "manage", title: "Commands", entries: ["create", "show", "list", "run", "resume", "status"] }],
|
|
578
581
|
children: [
|
|
579
582
|
{
|
|
580
|
-
name: "create",
|
|
583
|
+
name: "create", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
581
584
|
summary: "Create a release workflow for a Task.",
|
|
582
585
|
usage: "yui task workflow create <task> --grant <grant-id> --source-repo <owner/name> --source-commit <sha> [--source-artifact <name@integrity>] --step <id>:<kind> (repeatable) [--step-irreversibility <id>=<level> (repeatable)] [--step-param <id>:<key>=<value> (repeatable)]",
|
|
583
586
|
options: ["--grant", "--source-repo", "--source-commit", "--source-artifact", "--step", "--step-irreversibility", "--step-param"]
|
|
584
587
|
},
|
|
585
588
|
{
|
|
586
|
-
name: "show",
|
|
589
|
+
name: "show", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
587
590
|
summary: "Show one release workflow.",
|
|
588
591
|
usage: "yui task workflow show <task> <workflow-id>"
|
|
589
592
|
},
|
|
590
593
|
{
|
|
591
|
-
name: "list",
|
|
594
|
+
name: "list", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
592
595
|
summary: "List release workflows for a Task.",
|
|
593
596
|
usage: "yui task workflow list <task>"
|
|
594
597
|
},
|
|
595
598
|
{
|
|
596
|
-
name: "run",
|
|
599
|
+
name: "run", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
597
600
|
summary: "Run a release workflow from its resume cursor.",
|
|
598
601
|
usage: "yui task workflow run <task> <workflow-id> [--grant <grant-id>] [--max-steps <int>]",
|
|
599
602
|
options: ["--grant", "--max-steps"]
|
|
600
603
|
},
|
|
601
604
|
{
|
|
602
|
-
name: "resume",
|
|
605
|
+
name: "resume", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
603
606
|
summary: "Resume a release workflow from its first unconfirmed step.",
|
|
604
607
|
usage: "yui task workflow resume <task> <workflow-id> [--grant <grant-id>] [--max-steps <int>]",
|
|
605
608
|
options: ["--grant", "--max-steps"]
|
|
606
609
|
},
|
|
607
610
|
{
|
|
608
|
-
name: "status",
|
|
611
|
+
name: "status", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
609
612
|
summary: "Show a release workflow and its step states.",
|
|
610
613
|
usage: "yui task workflow status <task> <workflow-id>"
|
|
611
614
|
}
|
|
612
615
|
]
|
|
613
616
|
},
|
|
614
617
|
{
|
|
615
|
-
name: "publication",
|
|
618
|
+
name: "publication", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
616
619
|
summary: "Create or update external PR/MR publication evidence for a Task.",
|
|
617
620
|
sections: [{ id: "manage", title: "Commands", entries: ["upsert", "diff", "adopt", "verify", "list", "show"] }],
|
|
618
621
|
children: [
|
|
619
622
|
{
|
|
620
|
-
name: "upsert",
|
|
623
|
+
name: "upsert", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
621
624
|
summary: "Create or immutably update an external PR/MR and its publication state.",
|
|
622
625
|
usage: "yui task publication upsert <task> --project <project> --provider <github|gitlab> --repository <owner/name> --kind <pull-request|merge-request> --id <external-id> [--url <url>] [--title <text>] [--source-branch <branch>] [--target-branch <branch>] [--local-commit <sha>] [--head-commit <sha>] [--remote-commit <sha>] [--state <open|merged|closed>] [--reported|--verified] [--evidence <text>] [--merged-at <iso-timestamp>]",
|
|
623
626
|
options: ["--project", "--provider", "--repository", "--kind", "--id", "--url", "--title", "--source-branch", "--target-branch", "--local-commit", "--head-commit", "--remote-commit", "--state", "--reported", "--verified", "--evidence", "--merged-at"]
|
|
624
627
|
},
|
|
625
628
|
{
|
|
626
|
-
name: "diff",
|
|
629
|
+
name: "diff", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
627
630
|
summary: "Read a completed Task's fixed acceptance-to-publication candidate diff using local Git only.",
|
|
628
631
|
usage: "yui task publication diff <task>/<publication> [--integration <id>]",
|
|
629
632
|
options: ["--integration"]
|
|
630
633
|
},
|
|
631
634
|
{
|
|
632
|
-
name: "adopt",
|
|
635
|
+
name: "adopt", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
633
636
|
summary: "Explicitly accept the reviewed publication candidate as covering the original completion.",
|
|
634
637
|
usage: "yui task publication adopt <task>/<publication> --reviewed-diff <sha256> --acceptance <text> [--integration <id>]",
|
|
635
638
|
options: ["--reviewed-diff", "--acceptance", "--integration"]
|
|
636
639
|
},
|
|
637
640
|
{
|
|
638
|
-
name: "verify",
|
|
641
|
+
name: "verify", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
639
642
|
summary: "Observe the current PR/MR head and merge through its provider; record verification separately from Task coverage.",
|
|
640
643
|
usage: "yui task publication verify (<task>/<publication-id> | <task> <publication-id>)"
|
|
641
644
|
},
|
|
642
645
|
{
|
|
643
|
-
name: "list",
|
|
646
|
+
name: "list", discovery: { surface: "public", audiences: ["public", "operator", "leader"] },
|
|
644
647
|
summary: "List external publication evidence for a Task.",
|
|
645
|
-
usage: "yui task publication list <task>"
|
|
648
|
+
usage: "yui task publication list <task> [--limit <1..100>] [--cursor <cursor>]",
|
|
649
|
+
options: ["--limit", "--cursor"]
|
|
646
650
|
},
|
|
647
651
|
{
|
|
648
|
-
name: "show",
|
|
652
|
+
name: "show", discovery: { surface: "public", audiences: ["public", "operator", "leader"] },
|
|
649
653
|
summary: "Show one external publication reference.",
|
|
650
654
|
usage: "yui task publication show (<task>/<publication-id> | <task> <publication-id>)"
|
|
651
655
|
}
|
|
652
656
|
]
|
|
653
657
|
},
|
|
654
658
|
{
|
|
655
|
-
name: "role",
|
|
659
|
+
name: "role", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
656
660
|
summary: "Manage Roles within a Task.",
|
|
657
661
|
sections: [{ id: "manage", title: "Commands", entries: [
|
|
658
662
|
"add", "list", "status", "show", "update", "remove", "bind", "unbind",
|
|
@@ -660,57 +664,59 @@ const taskChildren = [
|
|
|
660
664
|
] }],
|
|
661
665
|
children: [
|
|
662
666
|
{
|
|
663
|
-
name: "add",
|
|
667
|
+
name: "add", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
664
668
|
summary: "Add a Task Role from a frozen Profile/Worker runtime or one explicit Agent.",
|
|
665
669
|
usage: "yui task role add <task> <name> [--profile <id>] [--agent <id> [Agent settings]] [Role settings]",
|
|
666
670
|
options: ["--profile", "--agent", ...roleProfileOptions, ...roleAgentOptions],
|
|
667
671
|
optionValues: roleAgentOptionValues
|
|
668
672
|
},
|
|
669
|
-
{ name: "list", summary: "
|
|
673
|
+
{ name: "list", discovery: { surface: "managed", audiences: ["operator", "leader"] }, summary: "Discover recorded Role health; Host is unchecked until role status.", usage: "yui task role list <task> [--limit <1..100>] [--cursor <cursor>]", options: ["--limit", "--cursor"] },
|
|
670
674
|
{
|
|
671
|
-
name: "status",
|
|
675
|
+
name: "status", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
672
676
|
summary: "Show persisted and live runtime state for one Task Role.",
|
|
673
|
-
usage: "yui task role status <task> <role>"
|
|
677
|
+
usage: "yui task role status <task> <role> [--cursor <cursor>]",
|
|
678
|
+
options: ["--cursor"]
|
|
674
679
|
},
|
|
675
|
-
{ name: "show", summary: "Show one Task Role.", usage: "yui task role show <task> <role>" },
|
|
676
|
-
{ name: "capabilities", summary: "Read native options using this Role's desired or exact failed launch configuration.",
|
|
680
|
+
{ name: "show", discovery: { surface: "managed", audiences: ["operator", "leader"] }, summary: "Show one Task Role.", usage: "yui task role show <task> <role> [--cursor <cursor>]", options: ["--cursor"] },
|
|
681
|
+
{ name: "capabilities", discovery: { surface: "managed", audiences: ["operator", "leader"] }, summary: "Read native options using this Role's desired or exact failed launch configuration.",
|
|
677
682
|
usage: "yui task role capabilities <task> <role> [--error <event-id>] [--refresh]",
|
|
678
683
|
options: ["--error", "--refresh"] },
|
|
679
684
|
{
|
|
680
|
-
name: "update",
|
|
685
|
+
name: "update", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
681
686
|
summary: "Update a Task Role; Agent settings target the named or active binding without switching it.",
|
|
682
687
|
usage: "yui task role update <task> <role> [--profile <id>] [--agent <id>] [--environment <preparation-id> | --managed-environment] [Role and Agent settings]",
|
|
683
688
|
options: ["--profile", "--agent", "--environment", "--managed-environment", ...roleProfileOptions, ...roleAgentOptions,
|
|
684
689
|
...roleProfileClearOptions, ...roleAgentClearOptions, "--yes"],
|
|
685
690
|
optionValues: roleAgentOptionValues
|
|
686
691
|
},
|
|
687
|
-
{ name: "remove", summary: "Remove a Task Role.", usage: "yui task role remove <task> <role>" },
|
|
688
|
-
{ name: "bind", summary: "Bind and activate an Agent for a Task Role.", usage: "yui task role bind <task> <role> <agent-id>" },
|
|
689
|
-
{ name: "unbind", summary: "Unbind a dormant Agent from a Task Role.", usage: "yui task role unbind <task> <role> <agent-id>" },
|
|
692
|
+
{ name: "remove", discovery: { surface: "managed", audiences: ["operator", "leader"] }, summary: "Remove a Task Role.", usage: "yui task role remove <task> <role>" },
|
|
693
|
+
{ name: "bind", discovery: { surface: "managed", audiences: ["operator", "leader"] }, summary: "Bind and activate an Agent for a Task Role.", usage: "yui task role bind <task> <role> <agent-id>" },
|
|
694
|
+
{ name: "unbind", discovery: { surface: "managed", audiences: ["operator", "leader"] }, summary: "Unbind a dormant Agent from a Task Role.", usage: "yui task role unbind <task> <role> <agent-id>" },
|
|
690
695
|
{
|
|
691
|
-
name: "session",
|
|
696
|
+
name: "session", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
692
697
|
summary: "Inspect, stop or explicitly select a new Task Role Session.",
|
|
693
698
|
executable: true,
|
|
694
699
|
sections: [{ id: "manage", title: "Commands", entries: ["inspect", "retry", "stop", "new"] }],
|
|
695
700
|
children: [
|
|
696
701
|
{
|
|
697
|
-
name: "retry",
|
|
702
|
+
name: "retry", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
698
703
|
summary: "Inspect or control Provider recovery without stopping an admitted Turn.",
|
|
699
704
|
usage: "yui task role session retry <task> <role> [show|cancel|disable|enable]"
|
|
700
705
|
},
|
|
701
706
|
{
|
|
702
|
-
name: "inspect",
|
|
707
|
+
name: "inspect", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
703
708
|
summary: "Read the current Session, Host process, and AgentRun facts.",
|
|
704
|
-
usage: "yui task role session inspect <task> <role>"
|
|
709
|
+
usage: "yui task role session inspect <task> <role> [--cursor <cursor>]",
|
|
710
|
+
options: ["--cursor"]
|
|
705
711
|
},
|
|
706
712
|
{
|
|
707
|
-
name: "stop",
|
|
713
|
+
name: "stop", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
708
714
|
summary: "Stop the exact Session execution and retain its conversation for possible reuse; preserve Task progress.",
|
|
709
715
|
usage: "yui task role session stop <task> <role> --reason <text>",
|
|
710
716
|
options: ["--reason"]
|
|
711
717
|
},
|
|
712
718
|
{
|
|
713
|
-
name: "new",
|
|
719
|
+
name: "new", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
714
720
|
summary: "Request replacement even for active or ended Sessions; stop exact execution and preserve Task context, results and workspaces.",
|
|
715
721
|
usage: "yui task role session new <task> <role> --reason <text>",
|
|
716
722
|
options: ["--reason"]
|
|
@@ -718,30 +724,30 @@ const taskChildren = [
|
|
|
718
724
|
]
|
|
719
725
|
},
|
|
720
726
|
{
|
|
721
|
-
name: "view",
|
|
727
|
+
name: "view", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
722
728
|
summary: "Attach read-only to an independent Provider presentation surface.",
|
|
723
729
|
usage: "yui task role view <task> <role>"
|
|
724
730
|
},
|
|
725
731
|
{
|
|
726
|
-
name: "interrupt",
|
|
732
|
+
name: "interrupt", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
727
733
|
summary: "Interrupt a Role's exact current native Turn via native cancel; optionally deliver a saved Message once after a proven terminal.",
|
|
728
734
|
usage: "yui task role interrupt <task> <role> --expected-target <turn> [--then-message <task/message>] [--request-id <id>]",
|
|
729
735
|
options: ["--expected-target", "--then-message", "--request-id"]
|
|
730
736
|
},
|
|
731
737
|
{
|
|
732
|
-
name: "takeover",
|
|
738
|
+
name: "takeover", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
733
739
|
summary: "Enter the PTY input gateway for an independent Provider process.",
|
|
734
740
|
usage: "yui task role takeover <task> <role>"
|
|
735
741
|
},
|
|
736
742
|
{
|
|
737
|
-
name: "release",
|
|
743
|
+
name: "release", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
738
744
|
summary: "Release an independent Provider PTY input gateway.",
|
|
739
745
|
usage: "yui task role release <task> <role>"
|
|
740
746
|
}
|
|
741
747
|
]
|
|
742
748
|
},
|
|
743
749
|
{
|
|
744
|
-
name: "work",
|
|
750
|
+
name: "work", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
745
751
|
summary: "Manage finite Task work items.",
|
|
746
752
|
sections: [{
|
|
747
753
|
id: "manage",
|
|
@@ -753,15 +759,15 @@ const taskChildren = [
|
|
|
753
759
|
}],
|
|
754
760
|
children: [
|
|
755
761
|
{
|
|
756
|
-
name: "create",
|
|
762
|
+
name: "create", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
757
763
|
summary: "Create a separately managed result; a coherent Task may use zero WorkItems. Omit --role for Leader-direct execution; --role (including leader) selects a managed AgentRun executor. Isolate writable direct work before editing, then submit, integrate and accept its Candidate.",
|
|
758
764
|
usage: "yui task work create <task> <title> [--project <project> ...] [--base-ref <project>=<ref> ...] [--objective <text>] [--accept <criterion> ...] [--after <work> ...] [--role <name>]",
|
|
759
765
|
options: ["--project", "--base-ref", "--objective", "--accept", "--after", "--role"]
|
|
760
766
|
},
|
|
761
|
-
{ name: "list", summary: "
|
|
762
|
-
{ name: "show", summary: "Show one Work Item.", usage: "yui task work show <work>" },
|
|
767
|
+
{ name: "list", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] }, summary: "Discover work items by summary and exact reference.", usage: "yui task work list <task> [--limit <1..100>] [--cursor <cursor>]", options: ["--limit", "--cursor"] },
|
|
768
|
+
{ name: "show", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] }, summary: "Show one Work Item.", usage: "yui task work show <work> [--cursor <cursor>]", options: ["--cursor"] },
|
|
763
769
|
{
|
|
764
|
-
name: "edit",
|
|
770
|
+
name: "edit", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
765
771
|
summary: "Edit current requirements without changing frozen Assignments or acceptance.",
|
|
766
772
|
usage: "yui task work edit <task>/<work> [--title <text>] [--objective <text>] [--accept <criterion> ...|--clear-acceptance] [--after <work> ...|--clear-dependencies] [--project <project> ...|--clear-projects] [--base-ref <project>=<ref> ...|--clear-base-refs] [--role <name>|--clear-role]",
|
|
767
773
|
options: [
|
|
@@ -771,7 +777,7 @@ const taskChildren = [
|
|
|
771
777
|
]
|
|
772
778
|
},
|
|
773
779
|
{
|
|
774
|
-
name: "update",
|
|
780
|
+
name: "update", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
775
781
|
summary: "Record progress or submit a Candidate; acceptance remains explicit.",
|
|
776
782
|
usage: "yui task work update <task>/<work> <todo|running|done|failed> [--summary <text>] [--artifact-ref <artifact-id> ...]",
|
|
777
783
|
options: ["--summary", "--artifact-ref"],
|
|
@@ -780,41 +786,41 @@ const taskChildren = [
|
|
|
780
786
|
}
|
|
781
787
|
},
|
|
782
788
|
{
|
|
783
|
-
name: "scope",
|
|
789
|
+
name: "scope", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
784
790
|
summary: "Expand the Projects a WorkItem may modify.",
|
|
785
791
|
usage: "yui task work scope <task>/<work> [--project <project> ...]",
|
|
786
792
|
options: ["--project"]
|
|
787
793
|
},
|
|
788
794
|
{
|
|
789
|
-
name: "dispatch",
|
|
795
|
+
name: "dispatch", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
790
796
|
summary: "Dispatch a work item to its Role.",
|
|
791
797
|
usage: "yui task work dispatch <task>/<work> [--input <text>] [--lane-role <role> ...]",
|
|
792
798
|
options: ["--input", "--lane-role"]
|
|
793
799
|
},
|
|
794
800
|
{
|
|
795
|
-
name: "synthesize",
|
|
801
|
+
name: "synthesize", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
796
802
|
summary: "Dispatch synthesis over explicitly selected original Producer AgentRuns.",
|
|
797
803
|
usage: "yui task work synthesize <task>/<work> --source-run <task>/<run> ...",
|
|
798
804
|
options: ["--source-run"]
|
|
799
805
|
},
|
|
800
806
|
{
|
|
801
|
-
name: "isolate",
|
|
807
|
+
name: "isolate", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
802
808
|
summary: "Create a WorkItem-owned isolated worktree.",
|
|
803
809
|
usage: "yui task work isolate <task>/<work>"
|
|
804
810
|
},
|
|
805
811
|
{
|
|
806
|
-
name: "capture",
|
|
812
|
+
name: "capture", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
807
813
|
summary: "Capture a terminal isolated WorkItem result as a ChangeSet.",
|
|
808
814
|
usage: "yui task work capture <task>/<work>"
|
|
809
815
|
},
|
|
810
816
|
{
|
|
811
|
-
name: "cleanup",
|
|
817
|
+
name: "cleanup", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
812
818
|
summary: "Release an idle WorkItem runtime or remove its final clean worktree.",
|
|
813
819
|
usage: "yui task work cleanup <task>/<work> (--runtime-only|--integrated|--abandon)",
|
|
814
820
|
options: ["--runtime-only", "--integrated", "--abandon"]
|
|
815
821
|
},
|
|
816
822
|
{
|
|
817
|
-
name: "review",
|
|
823
|
+
name: "review", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
818
824
|
summary: "Ask the configured reviewer to inspect a WorkItem candidate directly or with replicated Producers.",
|
|
819
825
|
usage: "yui task work review <task>/<work> [--lane-role <producer-role> --lane-role <producer-role> ...]",
|
|
820
826
|
options: ["--lane-role"],
|
|
@@ -825,36 +831,36 @@ const taskChildren = [
|
|
|
825
831
|
],
|
|
826
832
|
children: [
|
|
827
833
|
{
|
|
828
|
-
name: "retry",
|
|
834
|
+
name: "retry", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
829
835
|
summary: "Retry a failed Task-final ReviewRound that has no Reviewer AgentRun.",
|
|
830
836
|
usage: "yui task work review retry <task>/<review-round>"
|
|
831
837
|
},
|
|
832
838
|
{
|
|
833
|
-
name: "cleanup",
|
|
839
|
+
name: "cleanup", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
834
840
|
summary: "Remove only a clean terminal ReviewRound worktree.",
|
|
835
841
|
usage: "yui task work review cleanup <task>/<review-round>"
|
|
836
842
|
},
|
|
837
843
|
{
|
|
838
|
-
name: "preserve",
|
|
844
|
+
name: "preserve", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
839
845
|
summary: "Record that a terminal ReviewRound worktree is retained for diagnosis.",
|
|
840
846
|
usage: "yui task work review preserve <task>/<review-round>"
|
|
841
847
|
}
|
|
842
848
|
]
|
|
843
849
|
},
|
|
844
850
|
{
|
|
845
|
-
name: "accept",
|
|
851
|
+
name: "accept", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
846
852
|
summary: "Accept a successful, validated, integrated Work Item.",
|
|
847
853
|
usage: "yui task work accept <task>/<work> --summary <text> [--candidate <id>]",
|
|
848
854
|
options: ["--summary", "--candidate"]
|
|
849
855
|
},
|
|
850
856
|
{
|
|
851
|
-
name: "reject",
|
|
857
|
+
name: "reject", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
852
858
|
summary: "Decline a result or withdraw acceptance while preserving its history.",
|
|
853
859
|
usage: "yui task work reject <task>/<work> --summary <text>",
|
|
854
860
|
options: ["--summary"]
|
|
855
861
|
},
|
|
856
862
|
{
|
|
857
|
-
name: "retire",
|
|
863
|
+
name: "retire", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
858
864
|
summary: "Retire a WorkItem and settle its exact AgentRuns.",
|
|
859
865
|
usage: "yui task work retire <work> --summary <text> [--replacement <work>]",
|
|
860
866
|
options: ["--summary", "--replacement"]
|
|
@@ -862,50 +868,52 @@ const taskChildren = [
|
|
|
862
868
|
]
|
|
863
869
|
},
|
|
864
870
|
{
|
|
865
|
-
name: "run",
|
|
871
|
+
name: "run", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
866
872
|
summary: "Inspect and control Task Role AgentRuns.",
|
|
867
873
|
sections: [{ id: "manage", title: "Commands", entries: ["list", "show", "retry", "settle", "context", "checkpoint", "retire"] }],
|
|
868
874
|
children: [
|
|
869
|
-
{ name: "list", summary: "
|
|
875
|
+
{ name: "list", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] }, summary: "Discover AgentRuns for a Task or one WorkItem.", usage: "yui task run list <task|task/work> [--limit <1..100>] [--cursor <cursor>]", options: ["--limit", "--cursor"] },
|
|
870
876
|
{
|
|
871
|
-
name: "show",
|
|
877
|
+
name: "show", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] },
|
|
872
878
|
summary: "Show one AgentRun and its retained audit evidence.",
|
|
873
|
-
usage: "yui task run show <task>/<run> [--json]"
|
|
879
|
+
usage: "yui task run show <task>/<run> [--cursor <cursor>] [--json]",
|
|
880
|
+
options: ["--cursor", "--json"]
|
|
874
881
|
},
|
|
875
882
|
{
|
|
876
|
-
name: "retry",
|
|
883
|
+
name: "retry", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
877
884
|
summary: "Retry an exact failed execution or review AgentRun while preserving its semantic unit.",
|
|
878
885
|
usage: "yui task run retry <task>/<run>"
|
|
879
886
|
},
|
|
880
887
|
{
|
|
881
|
-
name: "settle",
|
|
888
|
+
name: "settle", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
882
889
|
summary: "Explicitly settle a failed WorkItem Lane or an obsolete stranded final Review AgentRun.",
|
|
883
890
|
usage: "yui task run settle <task>/<run>"
|
|
884
891
|
},
|
|
885
892
|
{
|
|
886
|
-
name: "context",
|
|
893
|
+
name: "context", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] },
|
|
887
894
|
summary: "Load the exact authorized AgentRun context.",
|
|
888
|
-
usage: "yui task run context <task>/<run> [--json]",
|
|
895
|
+
usage: "yui task run context <task>/<run> [--cursor <cursor>] [--json]",
|
|
896
|
+
options: ["--cursor", "--json"],
|
|
889
897
|
executable: true,
|
|
890
898
|
hidden: true,
|
|
891
899
|
sections: [{ id: "load", title: "Commands", entries: ["expand", "delta"] }],
|
|
892
900
|
children: [
|
|
893
901
|
{
|
|
894
|
-
name: "expand",
|
|
902
|
+
name: "expand", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] },
|
|
895
903
|
summary: "Expand one authorized AgentRun context reference.",
|
|
896
|
-
usage: "yui task run context expand <task>/<run> <ref-id> --store <store> [--mode full]",
|
|
897
|
-
options: ["--store", "--mode"]
|
|
904
|
+
usage: "yui task run context expand <task>/<run> <ref-id> --store <store> [--mode full] [--cursor <cursor>]",
|
|
905
|
+
options: ["--store", "--mode", "--cursor"]
|
|
898
906
|
},
|
|
899
907
|
{
|
|
900
|
-
name: "delta",
|
|
908
|
+
name: "delta", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] },
|
|
901
909
|
summary: "Load authorized AgentRun context changes after a cursor.",
|
|
902
|
-
usage: "yui task run context delta <task>/<run> --after <cursor>",
|
|
903
|
-
options: ["--after"]
|
|
910
|
+
usage: "yui task run context delta <task>/<run> --after <digest> [--cursor <cursor>]",
|
|
911
|
+
options: ["--after", "--cursor"]
|
|
904
912
|
}
|
|
905
913
|
]
|
|
906
914
|
},
|
|
907
915
|
{
|
|
908
|
-
name: "checkpoint",
|
|
916
|
+
name: "checkpoint", discovery: { surface: "runtime", audiences: [] },
|
|
909
917
|
summary: "Record durable progress for a long-running AgentRun.",
|
|
910
918
|
usage: "yui task run checkpoint <run> (--note <text>|--note-file <path|->)",
|
|
911
919
|
options: ["--note", "--note-file"],
|
|
@@ -913,7 +921,7 @@ const taskChildren = [
|
|
|
913
921
|
hidden: true
|
|
914
922
|
},
|
|
915
923
|
{
|
|
916
|
-
name: "retire",
|
|
924
|
+
name: "retire", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
917
925
|
summary: "Retire an incorrect historical AgentRun without deleting its audit record.",
|
|
918
926
|
usage: "yui task run retire <task>/<run> --reason <text> [--expected-progress-at <timestamp>] [--agent-id <id>] [--adapter-id <id>] [--native-session-id <id>]",
|
|
919
927
|
options: ["--reason", "--expected-progress-at", "--agent-id", "--adapter-id", "--native-session-id"]
|
|
@@ -921,78 +929,78 @@ const taskChildren = [
|
|
|
921
929
|
]
|
|
922
930
|
},
|
|
923
931
|
{
|
|
924
|
-
name: "review",
|
|
932
|
+
name: "review", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
925
933
|
summary: "Control Task-final ReviewRounds.",
|
|
926
934
|
sections: [{ id: "manage", title: "Commands", entries: ["request", "synthesize", "retry"] }],
|
|
927
935
|
children: [
|
|
928
936
|
{
|
|
929
|
-
name: "synthesize",
|
|
937
|
+
name: "synthesize", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
930
938
|
summary: "Dispatch main Review over selected Producer AgentRuns and the frozen candidate.",
|
|
931
939
|
usage: "yui task review synthesize <task>/<review-round> --source-run <task>/<run> ...",
|
|
932
940
|
options: ["--source-run"]
|
|
933
941
|
},
|
|
934
942
|
{
|
|
935
|
-
name: "request",
|
|
943
|
+
name: "request", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
936
944
|
summary: "Request a direct or replicated Task-local final ReviewRound.",
|
|
937
945
|
usage: "yui task review request <task> --role <main-role> [--lane-role <producer-role> --lane-role <producer-role> ...] [--delta-recheck]",
|
|
938
946
|
options: ["--role", "--lane-role", "--delta-recheck"]
|
|
939
947
|
},
|
|
940
948
|
{
|
|
941
|
-
name: "retry",
|
|
949
|
+
name: "retry", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
942
950
|
summary: "Retry a failed Task-final ReviewRound without a Reviewer AgentRun.",
|
|
943
951
|
usage: "yui task review retry <task>/<review-round>"
|
|
944
952
|
}
|
|
945
953
|
]
|
|
946
954
|
},
|
|
947
955
|
{
|
|
948
|
-
name: "integration",
|
|
956
|
+
name: "integration", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
949
957
|
summary: "Integrate WorkItem results and upstream commits with Leader-owned decisions.",
|
|
950
958
|
sections: [{ id: "manage", title: "Commands", entries: ["start", "continue", "resolve", "abort", "supersede", "list", "show", "cleanup"] }],
|
|
951
959
|
children: [
|
|
952
960
|
{
|
|
953
|
-
name: "start",
|
|
961
|
+
name: "start", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
954
962
|
summary: "Build, validate, and CAS-commit an integration candidate.",
|
|
955
963
|
usage: "yui task integration start <task> --work-item <id> --strategy <ff|cherry-pick|merge|manual> [--project <project>] [--target <ref>] [--check <command> ...] [--rerun-checks]",
|
|
956
964
|
options: ["--work-item", "--strategy", "--project", "--target", "--check", "--rerun-checks"],
|
|
957
965
|
optionValues: { "--strategy": ["ff", "cherry-pick", "merge", "manual"] }
|
|
958
966
|
},
|
|
959
967
|
{
|
|
960
|
-
name: "continue",
|
|
968
|
+
name: "continue", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
961
969
|
summary: "Consume a finished check Job and finalize this exact Integration, or continue an approved manual resolution.",
|
|
962
970
|
usage: "yui task integration continue <task>/<integration>"
|
|
963
971
|
},
|
|
964
972
|
{
|
|
965
|
-
name: "resolve",
|
|
973
|
+
name: "resolve", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
966
974
|
summary: "Record the Leader's semantic conflict decision.",
|
|
967
975
|
usage: "yui task integration resolve <task>/<integration> --option <manual-resolution|reject> --rationale <text>",
|
|
968
976
|
options: ["--option", "--rationale"],
|
|
969
977
|
optionValues: { "--option": ["manual-resolution", "reject"] }
|
|
970
978
|
},
|
|
971
979
|
{
|
|
972
|
-
name: "abort",
|
|
980
|
+
name: "abort", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
973
981
|
summary: "Abandon an unadvanced Integration while preserving evidence; reconcile an already-applied target.",
|
|
974
982
|
usage: "yui task integration abort <task>/<integration> --reason <text>",
|
|
975
983
|
options: ["--reason"]
|
|
976
984
|
},
|
|
977
985
|
{
|
|
978
|
-
name: "supersede",
|
|
986
|
+
name: "supersede", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
979
987
|
summary: "Mark a committed Integration as obsolete, retaining its evidence.",
|
|
980
988
|
usage: "yui task integration supersede <task>/<integration> --reason <text>",
|
|
981
989
|
options: ["--reason"]
|
|
982
990
|
},
|
|
983
|
-
{ name: "list", summary: "List Integration Attempts.", usage: "yui task integration list <task>" },
|
|
984
|
-
{ name: "show", summary: "Show one Integration Attempt.", usage: "yui task integration show <task>/<integration>" },
|
|
985
|
-
{ name: "cleanup", summary: "Remove a terminal Integration worktree and branch.", usage: "yui task integration cleanup <task>/<integration>" }
|
|
991
|
+
{ name: "list", discovery: { surface: "managed", audiences: ["operator", "leader"] }, summary: "List Integration Attempts.", usage: "yui task integration list <task>" },
|
|
992
|
+
{ name: "show", discovery: { surface: "managed", audiences: ["operator", "leader"] }, summary: "Show one Integration Attempt.", usage: "yui task integration show <task>/<integration>" },
|
|
993
|
+
{ name: "cleanup", discovery: { surface: "managed", audiences: ["operator", "leader"] }, summary: "Remove a terminal Integration worktree and branch.", usage: "yui task integration cleanup <task>/<integration>" }
|
|
986
994
|
]
|
|
987
995
|
},
|
|
988
996
|
{
|
|
989
|
-
name: "brief",
|
|
997
|
+
name: "brief", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
990
998
|
summary: "Manage the Task Brief, the authoritative summary of current task state.",
|
|
991
999
|
sections: [{ id: "manage", title: "Commands", entries: ["show", "update"] }],
|
|
992
1000
|
children: [
|
|
993
|
-
{ name: "show", summary: "Show the Task Brief.", usage: "yui task brief show <task>" },
|
|
1001
|
+
{ name: "show", discovery: { surface: "managed", audiences: ["operator", "leader"] }, summary: "Show the Task Brief.", usage: "yui task brief show <task> [--cursor <cursor>]", options: ["--cursor"] },
|
|
994
1002
|
{
|
|
995
|
-
name: "update",
|
|
1003
|
+
name: "update", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
996
1004
|
summary: "Create or update the Task Brief.",
|
|
997
1005
|
usage: "yui task brief update <task> [--objective <text>] [--boundary <text> ...] [--approach <text>] [--focus <text>] [--leader-summary <text>]",
|
|
998
1006
|
options: ["--objective", "--boundary", "--approach", "--focus", "--leader-summary"]
|
|
@@ -1000,26 +1008,26 @@ const taskChildren = [
|
|
|
1000
1008
|
]
|
|
1001
1009
|
},
|
|
1002
1010
|
{
|
|
1003
|
-
name: "decision",
|
|
1011
|
+
name: "decision", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
1004
1012
|
summary: "Record and supersede durable Task decisions.",
|
|
1005
1013
|
sections: [{ id: "manage", title: "Commands", entries: ["record", "list", "show", "supersede"] }],
|
|
1006
1014
|
children: [
|
|
1007
1015
|
{
|
|
1008
|
-
name: "record",
|
|
1016
|
+
name: "record", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
1009
1017
|
summary: "Record a new active Decision.",
|
|
1010
1018
|
usage: "yui task decision record <task> --title <text> --rationale <text>",
|
|
1011
1019
|
options: ["--title", "--rationale"]
|
|
1012
1020
|
},
|
|
1013
1021
|
{
|
|
1014
|
-
name: "list",
|
|
1022
|
+
name: "list", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment"] },
|
|
1015
1023
|
summary: "List Decisions for a Task.",
|
|
1016
|
-
usage: "yui task decision list <task> [--status active|superseded]",
|
|
1017
|
-
options: ["--status"],
|
|
1024
|
+
usage: "yui task decision list <task> [--status active|superseded] [--limit <1..100>] [--cursor <cursor>]",
|
|
1025
|
+
options: ["--status", "--limit", "--cursor"],
|
|
1018
1026
|
optionValues: { "--status": ["active", "superseded"] }
|
|
1019
1027
|
},
|
|
1020
|
-
{ name: "show", summary: "Show one Decision.", usage: "yui task decision show <task> <decision>" },
|
|
1028
|
+
{ name: "show", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment"] }, summary: "Show one Decision.", usage: "yui task decision show <task> <decision> [--cursor <cursor>]", options: ["--cursor"] },
|
|
1021
1029
|
{
|
|
1022
|
-
name: "supersede",
|
|
1030
|
+
name: "supersede", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
1023
1031
|
summary: "Mark a Decision as superseded.",
|
|
1024
1032
|
usage: "yui task decision supersede <task> <decision> --reason <text>",
|
|
1025
1033
|
options: ["--reason"]
|
|
@@ -1027,41 +1035,41 @@ const taskChildren = [
|
|
|
1027
1035
|
]
|
|
1028
1036
|
},
|
|
1029
1037
|
{
|
|
1030
|
-
name: "milestone",
|
|
1038
|
+
name: "milestone", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
1031
1039
|
summary: "Append immutable Milestone records for completed progress.",
|
|
1032
1040
|
sections: [{ id: "manage", title: "Commands", entries: ["add", "list", "show"] }],
|
|
1033
1041
|
children: [
|
|
1034
1042
|
{
|
|
1035
|
-
name: "add",
|
|
1043
|
+
name: "add", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
1036
1044
|
summary: "Append a Milestone to a Task.",
|
|
1037
1045
|
usage: "yui task milestone add <task> --title <text> --summary <text>",
|
|
1038
1046
|
options: ["--title", "--summary"]
|
|
1039
1047
|
},
|
|
1040
|
-
{ name: "list", summary: "List Milestones for a Task.", usage: "yui task milestone list <task>" },
|
|
1041
|
-
{ name: "show", summary: "Show one Milestone.", usage: "yui task milestone show <task> <milestone>" }
|
|
1048
|
+
{ name: "list", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment"] }, summary: "List Milestones for a Task.", usage: "yui task milestone list <task> [--limit <1..100>] [--cursor <cursor>]", options: ["--limit", "--cursor"] },
|
|
1049
|
+
{ name: "show", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment"] }, summary: "Show one Milestone.", usage: "yui task milestone show <task> <milestone> [--cursor <cursor>]", options: ["--cursor"] }
|
|
1042
1050
|
]
|
|
1043
1051
|
},
|
|
1044
1052
|
{
|
|
1045
|
-
name: "event",
|
|
1053
|
+
name: "event", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
1046
1054
|
summary: "Inspect the durable Task event history.",
|
|
1047
1055
|
sections: [{ id: "manage", title: "Commands", entries: ["list", "show"] }],
|
|
1048
1056
|
children: [
|
|
1049
1057
|
{
|
|
1050
|
-
name: "list",
|
|
1058
|
+
name: "list", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment"] },
|
|
1051
1059
|
summary: "List Task events.",
|
|
1052
|
-
usage: "yui task event list <task> [--after <timestamp>] [--limit <
|
|
1053
|
-
options: ["--after", "--limit"]
|
|
1060
|
+
usage: "yui task event list <task> [--after <timestamp>] [--limit <1..100>] [--cursor <cursor>]",
|
|
1061
|
+
options: ["--after", "--limit", "--cursor"]
|
|
1054
1062
|
},
|
|
1055
|
-
{ name: "show", summary: "Show one Task event.", usage: "yui task event show <task> <event>" }
|
|
1063
|
+
{ name: "show", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment"] }, summary: "Show one Task event.", usage: "yui task event show <task> <event> [--cursor <cursor>]", options: ["--cursor"] }
|
|
1056
1064
|
]
|
|
1057
1065
|
},
|
|
1058
1066
|
{
|
|
1059
|
-
name: "continuation",
|
|
1067
|
+
name: "continuation", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
1060
1068
|
summary: "Inspect native Provider child continuations and their durability mode.",
|
|
1061
1069
|
sections: [{ id: "manage", title: "Commands", entries: ["list"] }],
|
|
1062
1070
|
children: [
|
|
1063
1071
|
{
|
|
1064
|
-
name: "list",
|
|
1072
|
+
name: "list", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
1065
1073
|
summary: "List native child continuations for a Task.",
|
|
1066
1074
|
usage: "yui task continuation list <task> [--json]",
|
|
1067
1075
|
options: ["--json"]
|
|
@@ -1069,35 +1077,35 @@ const taskChildren = [
|
|
|
1069
1077
|
]
|
|
1070
1078
|
},
|
|
1071
1079
|
{
|
|
1072
|
-
name: "wake",
|
|
1080
|
+
name: "wake", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
1073
1081
|
summary: "Inspect the durable Leader wake ledger and its delta content.",
|
|
1074
1082
|
sections: [{ id: "manage", title: "Commands", entries: ["list", "show", "retry", "resolve"] }],
|
|
1075
1083
|
children: [
|
|
1076
|
-
{ name: "list", summary: "List recorded Leader wakes.", usage: "yui task wake list <task>" },
|
|
1077
|
-
{ name: "show", summary: "Show
|
|
1078
|
-
{ name: "retry", summary: "Retry a rejected notification after correcting its cause; preserve original input.",
|
|
1084
|
+
{ name: "list", discovery: { surface: "managed", audiences: ["operator", "leader"] }, summary: "List recorded Leader wakes.", usage: "yui task wake list <task> [--limit <1..100>] [--cursor <cursor>]", options: ["--limit", "--cursor"] },
|
|
1085
|
+
{ name: "show", discovery: { surface: "managed", audiences: ["operator", "leader"] }, summary: "Show a fixed wake window and exact detail reads.", usage: "yui task wake show <task> <wake> [--cursor <cursor>]", options: ["--cursor"] },
|
|
1086
|
+
{ name: "retry", discovery: { surface: "managed", audiences: ["operator", "leader"] }, summary: "Retry a rejected notification after correcting its cause; preserve original input.",
|
|
1079
1087
|
usage: "yui task wake retry <task> <wake> --reason <correction>", options: ["--reason"] },
|
|
1080
|
-
{ name: "resolve", summary: "Release an unknown notification claim after explicit quiescence evidence, without replay.",
|
|
1088
|
+
{ name: "resolve", discovery: { surface: "managed", audiences: ["operator", "leader"] }, summary: "Release an unknown notification claim after explicit quiescence evidence, without replay.",
|
|
1081
1089
|
usage: "yui task wake resolve <task> <wake> --reason <quiescence-evidence>", options: ["--reason"] }
|
|
1082
1090
|
]
|
|
1083
1091
|
},
|
|
1084
1092
|
{
|
|
1085
|
-
name: "overlap",
|
|
1093
|
+
name: "overlap", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1086
1094
|
summary: "Show read-only cross-Task overlap diagnostics.",
|
|
1087
1095
|
usage: "yui task overlap [--project <project>] [--base <sha>] [--task <task> ...]",
|
|
1088
1096
|
options: ["--project", "--base", "--task"]
|
|
1089
1097
|
},
|
|
1090
1098
|
{
|
|
1091
|
-
name: "change-set",
|
|
1099
|
+
name: "change-set", discovery: { surface: "managed", audiences: ["operator", "leader"] },
|
|
1092
1100
|
summary: "Inspect ChangeSets captured from WorkItem Candidates.",
|
|
1093
1101
|
sections: [{ id: "inspect", title: "Commands", entries: ["show"] }],
|
|
1094
1102
|
children: [
|
|
1095
|
-
{ name: "show", summary: "Show one ChangeSet.", usage: "yui task change-set show <task>/<change-set>" }
|
|
1103
|
+
{ name: "show", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] }, summary: "Show one ChangeSet.", usage: "yui task change-set show <task>/<change-set> [--cursor <cursor>]", options: ["--cursor"] }
|
|
1096
1104
|
]
|
|
1097
1105
|
},
|
|
1098
1106
|
];
|
|
1099
1107
|
export const ROOT_COMMAND = buildNode({
|
|
1100
|
-
name: "yui",
|
|
1108
|
+
name: "yui", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1101
1109
|
summary: "Coordinate durable, isolated Agent work.",
|
|
1102
1110
|
usage: "yui [--json] <command>",
|
|
1103
1111
|
examples: ["yui setup", "yui start", "yui operator enter", "yui task list"],
|
|
@@ -1113,62 +1121,72 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1113
1121
|
],
|
|
1114
1122
|
children: [
|
|
1115
1123
|
{
|
|
1116
|
-
name: "role",
|
|
1124
|
+
name: "role", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1117
1125
|
summary: "Queue input or control an exact current Global Role Turn.",
|
|
1118
1126
|
sections: [{ id: "input", title: "Input control", entries: ["message", "interrupt"] }],
|
|
1119
1127
|
children: [
|
|
1120
1128
|
{
|
|
1121
|
-
name: "message", summary: "Send durable input to a Global Role.",
|
|
1122
|
-
sections: [{ id: "input", title: "Input control", entries: ["queue", "steer"] }],
|
|
1129
|
+
name: "message", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Send durable input to a Global Role.",
|
|
1130
|
+
sections: [{ id: "input", title: "Input control", entries: ["queue", "steer", "list", "show"] }],
|
|
1123
1131
|
children: [
|
|
1124
1132
|
{
|
|
1125
|
-
name: "
|
|
1133
|
+
name: "list", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Discover Global Messages without consuming input.",
|
|
1134
|
+
usage: "yui role message list <role> [--pending] [--limit <1..100>] [--cursor <cursor>]",
|
|
1135
|
+
options: ["--pending", "--limit", "--cursor"]
|
|
1136
|
+
},
|
|
1137
|
+
{
|
|
1138
|
+
name: "show", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Read one exact Global Message; follow contentPage.nextCursor for long content.",
|
|
1139
|
+
usage: "yui role message show <role> <message-id> [--cursor <cursor>]",
|
|
1140
|
+
options: ["--cursor"]
|
|
1141
|
+
},
|
|
1142
|
+
{
|
|
1143
|
+
name: "queue", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Queue input for the next legal delivery opportunity.",
|
|
1126
1144
|
usage: "yui role message queue <role> (<text>|--body-file <path|->) --request-id <id>",
|
|
1127
1145
|
options: ["--request-id", "--body-file"], fileOptions: ["--body-file"]
|
|
1128
1146
|
},
|
|
1129
1147
|
{
|
|
1130
|
-
name: "steer", summary: "Steer the exact current native Turn.",
|
|
1148
|
+
name: "steer", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Steer the exact current native Turn.",
|
|
1131
1149
|
usage: "yui role message steer <role> (<text>|--body-file <path|->) --request-id <id> --expected-target <turn>",
|
|
1132
1150
|
options: ["--request-id", "--expected-target", "--body-file"], fileOptions: ["--body-file"]
|
|
1133
1151
|
}
|
|
1134
1152
|
]
|
|
1135
1153
|
},
|
|
1136
1154
|
{
|
|
1137
|
-
name: "interrupt", summary: "Request cancellation of the exact current native Turn.",
|
|
1155
|
+
name: "interrupt", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Request cancellation of the exact current native Turn.",
|
|
1138
1156
|
usage: "yui role interrupt <role> --expected-target <turn> [--request-id <id>] [--then-message <message>]",
|
|
1139
1157
|
options: ["--request-id", "--expected-target", "--then-message"]
|
|
1140
1158
|
}
|
|
1141
1159
|
]
|
|
1142
1160
|
},
|
|
1143
|
-
{ name: "help", summary: "Show root or scoped command help.", usage: "yui help [command ...]", commandPathArguments: true },
|
|
1144
|
-
{ name: "version", summary: "Print the installed Yui version." },
|
|
1161
|
+
{ name: "help", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment", "global", "unbound"] }, summary: "Show root or scoped command help.", usage: "yui help [command ...]", commandPathArguments: true },
|
|
1162
|
+
{ name: "version", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment", "global", "unbound"] }, summary: "Print the installed Yui version." },
|
|
1145
1163
|
{
|
|
1146
|
-
name: "update",
|
|
1164
|
+
name: "update", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1147
1165
|
summary: "Install the latest or an exact published Yui version after storage preflight.",
|
|
1148
1166
|
usage: "yui update [--version <exact-version>]",
|
|
1149
1167
|
options: ["--version"]
|
|
1150
1168
|
},
|
|
1151
1169
|
{
|
|
1152
|
-
name: "upgrade",
|
|
1170
|
+
name: "upgrade", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1153
1171
|
summary: "Plan or apply supported storage migrations for this Home.",
|
|
1154
1172
|
usage: "yui upgrade [--dry-run]",
|
|
1155
1173
|
options: ["--dry-run"]
|
|
1156
1174
|
},
|
|
1157
1175
|
{
|
|
1158
|
-
name: "setup",
|
|
1176
|
+
name: "setup", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1159
1177
|
summary: "Initialize the minimum Operator and Leader configuration required to execute Tasks.",
|
|
1160
1178
|
examples: "yui setup"
|
|
1161
1179
|
},
|
|
1162
|
-
{ name: "start", summary: "Start the Controller and Codex shared runtime needed by active Roles." },
|
|
1163
|
-
{ name: "doctor", summary: "Check Yui dependencies and file state." },
|
|
1180
|
+
{ name: "start", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Start the Controller and Codex shared runtime needed by active Roles." },
|
|
1181
|
+
{ name: "doctor", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment", "global", "unbound"] }, summary: "Check Yui dependencies and file state." },
|
|
1164
1182
|
{
|
|
1165
|
-
name: "web",
|
|
1183
|
+
name: "web", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1166
1184
|
summary: "Serve the control room using the running Controller's capability Host.",
|
|
1167
1185
|
usage: "yui web [--host <loopback>] [--port <port>] | --status | --stop",
|
|
1168
1186
|
options: ["--host", "--port", "--status", "--stop"]
|
|
1169
1187
|
},
|
|
1170
1188
|
{
|
|
1171
|
-
name: "controller",
|
|
1189
|
+
name: "controller", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1172
1190
|
summary: "Inspect and recover local Controller runtime resources.",
|
|
1173
1191
|
sections: [{
|
|
1174
1192
|
id: "lifecycle",
|
|
@@ -1177,34 +1195,34 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1177
1195
|
}],
|
|
1178
1196
|
children: [
|
|
1179
1197
|
{
|
|
1180
|
-
name: "status",
|
|
1198
|
+
name: "status", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1181
1199
|
summary: "Show Controller and AgentRuntime resources.",
|
|
1182
1200
|
usage: "yui controller status [--all] [--verbose]",
|
|
1183
1201
|
options: ["--all", "--verbose"]
|
|
1184
1202
|
},
|
|
1185
1203
|
{
|
|
1186
|
-
name: "cleanup",
|
|
1204
|
+
name: "cleanup", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1187
1205
|
summary: "Interactively clean confirmed unused runtime resources.",
|
|
1188
1206
|
usage: "yui controller cleanup [--all]",
|
|
1189
1207
|
options: ["--all"]
|
|
1190
1208
|
},
|
|
1191
1209
|
{
|
|
1192
|
-
name: "identity",
|
|
1210
|
+
name: "identity", discovery: { surface: "runtime", audiences: [] },
|
|
1193
1211
|
summary: "Read the stable runtime identity receipt (build, backend, worker).",
|
|
1194
1212
|
hidden: true
|
|
1195
1213
|
},
|
|
1196
1214
|
{
|
|
1197
|
-
name: "live-identity",
|
|
1215
|
+
name: "live-identity", discovery: { surface: "runtime", audiences: [] },
|
|
1198
1216
|
summary: "Read the authenticated live Controller runtime identity.",
|
|
1199
1217
|
hidden: true
|
|
1200
1218
|
},
|
|
1201
|
-
{ name: "start", summary: "Start the Controller for this Home without preparing Agent runtimes." },
|
|
1202
|
-
{ name: "stop", summary: "Stop the Controller." },
|
|
1203
|
-
{ name: "restart", summary: "Restart internal services without stopping tmux sessions." }
|
|
1219
|
+
{ name: "start", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Start the Controller for this Home without preparing Agent runtimes." },
|
|
1220
|
+
{ name: "stop", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Stop the Controller." },
|
|
1221
|
+
{ name: "restart", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Restart internal services without stopping tmux sessions." }
|
|
1204
1222
|
]
|
|
1205
1223
|
},
|
|
1206
1224
|
{
|
|
1207
|
-
name: "execution",
|
|
1225
|
+
name: "execution", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1208
1226
|
summary: "Read-only execution history audit.",
|
|
1209
1227
|
sections: [{
|
|
1210
1228
|
id: "reports",
|
|
@@ -1213,7 +1231,7 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1213
1231
|
}],
|
|
1214
1232
|
children: [
|
|
1215
1233
|
{
|
|
1216
|
-
name: "audit",
|
|
1234
|
+
name: "audit", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1217
1235
|
summary: "Report AgentRuns, wakes, Sessions, Reviews, Integrations, and telemetry volume.",
|
|
1218
1236
|
usage: "yui execution audit [--task <id>] [--since <iso>] [--until <iso>]",
|
|
1219
1237
|
options: ["--task", "--since", "--until"]
|
|
@@ -1221,7 +1239,7 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1221
1239
|
]
|
|
1222
1240
|
},
|
|
1223
1241
|
{
|
|
1224
|
-
name: "release",
|
|
1242
|
+
name: "release", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1225
1243
|
summary: "Install and activate immutable local runtime releases.",
|
|
1226
1244
|
sections: [{
|
|
1227
1245
|
id: "commands",
|
|
@@ -1230,25 +1248,25 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1230
1248
|
}],
|
|
1231
1249
|
children: [
|
|
1232
1250
|
{
|
|
1233
|
-
name: "install",
|
|
1251
|
+
name: "install", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1234
1252
|
summary: "Install a runtime package as an immutable release.",
|
|
1235
1253
|
usage: "yui release install <source-dir>"
|
|
1236
1254
|
},
|
|
1237
|
-
{ name: "list", summary: "List installed releases and the active pointer." },
|
|
1255
|
+
{ name: "list", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "List installed releases and the active pointer." },
|
|
1238
1256
|
{
|
|
1239
|
-
name: "activate",
|
|
1257
|
+
name: "activate", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1240
1258
|
summary: "Activate a release via atomic Controller handover.",
|
|
1241
1259
|
usage: "yui release activate [release-id]"
|
|
1242
1260
|
}
|
|
1243
1261
|
]
|
|
1244
1262
|
},
|
|
1245
1263
|
{
|
|
1246
|
-
name: "resources",
|
|
1264
|
+
name: "resources", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1247
1265
|
summary: "Inspect and garbage-collect managed worktrees, deployments, and runtime artifacts.",
|
|
1248
1266
|
sections: [{ id: "gc", title: "Commands", entries: ["gc"] }],
|
|
1249
1267
|
children: [
|
|
1250
1268
|
{
|
|
1251
|
-
name: "gc",
|
|
1269
|
+
name: "gc", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1252
1270
|
summary: "Plan or apply resource garbage collection.",
|
|
1253
1271
|
usage: "yui resources gc [--dry-run|--apply|--purge|--restore] [--quarantine-ttl-hours <hours>]",
|
|
1254
1272
|
options: ["--dry-run", "--apply", "--purge", "--restore", "--quarantine-ttl-hours"]
|
|
@@ -1256,7 +1274,7 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1256
1274
|
]
|
|
1257
1275
|
},
|
|
1258
1276
|
{
|
|
1259
|
-
name: "config",
|
|
1277
|
+
name: "config", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1260
1278
|
summary: "Inspect, understand, and update all persistent Yui configuration.",
|
|
1261
1279
|
examples: [
|
|
1262
1280
|
"yui config show",
|
|
@@ -1275,12 +1293,12 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1275
1293
|
],
|
|
1276
1294
|
children: [
|
|
1277
1295
|
{
|
|
1278
|
-
name: "show",
|
|
1296
|
+
name: "show", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment", "global"] },
|
|
1279
1297
|
summary: "Show the complete effective Yui configuration.",
|
|
1280
1298
|
examples: ["yui config show", "yui --json config show"]
|
|
1281
1299
|
},
|
|
1282
1300
|
{
|
|
1283
|
-
name: "describe",
|
|
1301
|
+
name: "describe", discovery: { surface: "public", audiences: ["public", "operator", "leader", "assignment", "global"] },
|
|
1284
1302
|
summary: "Explain configuration effects, defaults, choices, and activation behavior.",
|
|
1285
1303
|
usage: `yui config describe [${[...CONFIG_DOMAINS, "agent", "role", "profile", "completion"].join("|")}]`,
|
|
1286
1304
|
examples: ["yui config describe", "yui --json config describe role"],
|
|
@@ -1288,7 +1306,7 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1288
1306
|
},
|
|
1289
1307
|
...CONFIG_DOMAINS.map(durableConfigDomainNode),
|
|
1290
1308
|
{
|
|
1291
|
-
name: "agent",
|
|
1309
|
+
name: "agent", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1292
1310
|
summary: "Manage configured native Agent CLIs; launch-setting changes apply to the next Session activation.",
|
|
1293
1311
|
examples: ["yui config agent list", "yui config agent capabilities codex"],
|
|
1294
1312
|
sections: [
|
|
@@ -1298,7 +1316,7 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1298
1316
|
children: agentChildren
|
|
1299
1317
|
},
|
|
1300
1318
|
{
|
|
1301
|
-
name: "profile",
|
|
1319
|
+
name: "profile", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1302
1320
|
summary: "Manage reusable Agent Profiles; updates affect future copies and do not rewrite existing Task Roles.",
|
|
1303
1321
|
examples: ["yui config profile list", "yui config profile show implementer"],
|
|
1304
1322
|
sections: [
|
|
@@ -1308,7 +1326,7 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1308
1326
|
children: profileChildren
|
|
1309
1327
|
},
|
|
1310
1328
|
{
|
|
1311
|
-
name: "role",
|
|
1329
|
+
name: "role", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1312
1330
|
summary: "Manage reusable global Roles and desired Agent launch configuration for the next Host process.",
|
|
1313
1331
|
examples: ["yui config role list", "yui config role show operator"],
|
|
1314
1332
|
sections: [
|
|
@@ -1318,7 +1336,7 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1318
1336
|
children: roleChildren
|
|
1319
1337
|
},
|
|
1320
1338
|
{
|
|
1321
|
-
name: "completion",
|
|
1339
|
+
name: "completion", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1322
1340
|
summary: "Interactively configure shell completion after confirming generated files and startup-file changes.",
|
|
1323
1341
|
executable: true,
|
|
1324
1342
|
acceptsArguments: false,
|
|
@@ -1333,7 +1351,7 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1333
1351
|
]
|
|
1334
1352
|
},
|
|
1335
1353
|
{
|
|
1336
|
-
name: "operator",
|
|
1354
|
+
name: "operator", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1337
1355
|
summary: "Use the persistent Operator Actor.",
|
|
1338
1356
|
sections: [{
|
|
1339
1357
|
id: "workflow",
|
|
@@ -1341,23 +1359,23 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1341
1359
|
entries: ["enter", "status", "new", "list", "resume", "submit"]
|
|
1342
1360
|
}],
|
|
1343
1361
|
children: [
|
|
1344
|
-
{ name: "enter", summary: "Enter the Operator's native session." },
|
|
1345
|
-
{ name: "status", summary: "Show the unique active writer and retained conversation history." },
|
|
1362
|
+
{ name: "enter", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Enter the Operator's native session." },
|
|
1363
|
+
{ name: "status", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Show the unique active writer and retained conversation history." },
|
|
1346
1364
|
{
|
|
1347
|
-
name: "new",
|
|
1365
|
+
name: "new", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1348
1366
|
summary: "Start a new Operator session.",
|
|
1349
1367
|
usage: "yui operator new [--agent <id>]",
|
|
1350
1368
|
options: ["--agent"]
|
|
1351
1369
|
},
|
|
1352
|
-
{ name: "list", summary: "List Operator session history." },
|
|
1370
|
+
{ name: "list", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "List Operator session history." },
|
|
1353
1371
|
{
|
|
1354
|
-
name: "resume",
|
|
1372
|
+
name: "resume", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1355
1373
|
summary: "Resume a previous Operator session.",
|
|
1356
1374
|
usage: "yui operator resume [<ref> | --last]",
|
|
1357
1375
|
options: ["--last"]
|
|
1358
1376
|
},
|
|
1359
1377
|
{
|
|
1360
|
-
name: "submit",
|
|
1378
|
+
name: "submit", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1361
1379
|
summary: "Submit work through the Operator with a submission intent (record|discuss|develop); a task-less submit opens a Draft. An optional idempotency key makes a retry safe.",
|
|
1362
1380
|
usage: "yui operator submit (<body>|--body-file <path|->) [--task <id>] [--intent record|discuss|develop] [--request-id <key>]",
|
|
1363
1381
|
options: ["--task", "--body-file", "--intent", "--request-id"],
|
|
@@ -1369,7 +1387,7 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1369
1387
|
]
|
|
1370
1388
|
},
|
|
1371
1389
|
{
|
|
1372
|
-
name: "project",
|
|
1390
|
+
name: "project", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1373
1391
|
summary: "Manage Projects, stable checkouts, branches, and Yui knowledge.",
|
|
1374
1392
|
sections: [
|
|
1375
1393
|
{ id: "manage", title: "Commands", entries: ["add", "clone", "refresh", "diagnose", "migrate", "update", "discover", "list", "show", "knowledge"] },
|
|
@@ -1377,60 +1395,60 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1377
1395
|
],
|
|
1378
1396
|
children: [
|
|
1379
1397
|
{
|
|
1380
|
-
name: "add",
|
|
1398
|
+
name: "add", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1381
1399
|
summary: "Bind a Project to a stable Git checkout.",
|
|
1382
1400
|
usage: "yui project add <name> <path> [--alias <name> ...] [--remote <url>] [--stable <ref>] [--development <ref>]",
|
|
1383
1401
|
options: ["--alias", "--remote", "--stable", "--development"],
|
|
1384
1402
|
fileArguments: [1]
|
|
1385
1403
|
},
|
|
1386
1404
|
{
|
|
1387
|
-
name: "clone",
|
|
1405
|
+
name: "clone", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1388
1406
|
summary: "Clone and bind a Project after user confirmation.",
|
|
1389
1407
|
usage: "yui project clone <name> <remote> [--alias <name> ...] [--stable <ref>] [--development <ref>] [--external]",
|
|
1390
1408
|
options: ["--alias", "--stable", "--development", "--external"]
|
|
1391
1409
|
},
|
|
1392
1410
|
{
|
|
1393
|
-
name: "refresh",
|
|
1411
|
+
name: "refresh", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1394
1412
|
summary: "Fast-forward a clean stable checkout from its configured remote.",
|
|
1395
1413
|
usage: "yui project refresh <project>"
|
|
1396
1414
|
},
|
|
1397
1415
|
{
|
|
1398
|
-
name: "diagnose",
|
|
1416
|
+
name: "diagnose", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1399
1417
|
summary: "Show canonical HEAD vs remote head without mutating the checkout.",
|
|
1400
1418
|
usage: "yui project diagnose <project>"
|
|
1401
1419
|
},
|
|
1402
1420
|
{
|
|
1403
|
-
name: "migrate",
|
|
1421
|
+
name: "migrate", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1404
1422
|
summary: "Move an external Project into a Home-managed repository.",
|
|
1405
1423
|
usage: "yui project migrate <project> [--preflight]",
|
|
1406
1424
|
options: ["--preflight"]
|
|
1407
1425
|
},
|
|
1408
1426
|
{
|
|
1409
|
-
name: "reset",
|
|
1427
|
+
name: "reset", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1410
1428
|
summary: "Hard-reset a canonical checkout to its verified remote baseline (Operator authority).",
|
|
1411
1429
|
usage: "yui project reset <project> [--discard-local]",
|
|
1412
1430
|
options: ["--discard-local"]
|
|
1413
1431
|
},
|
|
1414
1432
|
{
|
|
1415
|
-
name: "replace",
|
|
1433
|
+
name: "replace", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1416
1434
|
summary: "Re-clone a Home-managed checkout from its remote, preserving Yui refs (Operator authority).",
|
|
1417
1435
|
usage: "yui project replace <project> --discard-local",
|
|
1418
1436
|
options: ["--discard-local"]
|
|
1419
1437
|
},
|
|
1420
1438
|
{
|
|
1421
|
-
name: "retire",
|
|
1439
|
+
name: "retire", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1422
1440
|
summary: "Soft-deprecate a Project; record and evidence are retained (Operator authority).",
|
|
1423
1441
|
usage: "yui project retire <project> --reason <text>",
|
|
1424
1442
|
options: ["--reason"]
|
|
1425
1443
|
},
|
|
1426
1444
|
{
|
|
1427
|
-
name: "delete",
|
|
1445
|
+
name: "delete", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1428
1446
|
summary: "Remove a retired Project's catalog record and optionally its checkout (Operator authority).",
|
|
1429
1447
|
usage: "yui project delete <project> [--checkout] --confirm <project-id>",
|
|
1430
1448
|
options: ["--checkout", "--confirm"]
|
|
1431
1449
|
},
|
|
1432
1450
|
{
|
|
1433
|
-
name: "update",
|
|
1451
|
+
name: "update", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1434
1452
|
summary: "Update a bound Project's aliases, remote, or branch refs.",
|
|
1435
1453
|
usage: "yui project update <project> [--alias <name> ...|--clear-aliases] [--remote <url>|--clear-remote] [--stable <ref>] [--development <ref>]",
|
|
1436
1454
|
options: [
|
|
@@ -1439,14 +1457,14 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1439
1457
|
]
|
|
1440
1458
|
},
|
|
1441
1459
|
{
|
|
1442
|
-
name: "discover",
|
|
1460
|
+
name: "discover", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1443
1461
|
summary: "Find Git projects directly under the configured workspace.",
|
|
1444
1462
|
usage: "yui project discover [name]"
|
|
1445
1463
|
},
|
|
1446
|
-
{ name: "list", summary: "List bound Projects." },
|
|
1447
|
-
{ name: "show", summary: "Show one Project.", usage: "yui project show <project>" },
|
|
1464
|
+
{ name: "list", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "List bound Projects." },
|
|
1465
|
+
{ name: "show", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Show one Project.", usage: "yui project show <project>" },
|
|
1448
1466
|
{
|
|
1449
|
-
name: "knowledge",
|
|
1467
|
+
name: "knowledge", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1450
1468
|
summary: "Manage durable Project knowledge stored by Yui.",
|
|
1451
1469
|
sections: [
|
|
1452
1470
|
{
|
|
@@ -1457,29 +1475,29 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1457
1475
|
],
|
|
1458
1476
|
children: [
|
|
1459
1477
|
{
|
|
1460
|
-
name: "add",
|
|
1478
|
+
name: "add", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1461
1479
|
summary: "Add Project knowledge (Operator authority).",
|
|
1462
1480
|
usage: "yui project knowledge add <project> <title> --body <text>",
|
|
1463
1481
|
options: ["--body"]
|
|
1464
1482
|
},
|
|
1465
1483
|
{
|
|
1466
|
-
name: "retire",
|
|
1484
|
+
name: "retire", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1467
1485
|
summary: "Retire Project knowledge without deleting its record (Operator authority).",
|
|
1468
1486
|
usage: "yui project knowledge retire <project> <knowledge>"
|
|
1469
1487
|
},
|
|
1470
1488
|
{
|
|
1471
|
-
name: "list",
|
|
1489
|
+
name: "list", discovery: { surface: "public", audiences: ["public", "operator", "leader"] },
|
|
1472
1490
|
summary: "List Project knowledge.",
|
|
1473
1491
|
usage: "yui project knowledge list <project> [--all]",
|
|
1474
1492
|
options: ["--all"]
|
|
1475
1493
|
},
|
|
1476
1494
|
{
|
|
1477
|
-
name: "show",
|
|
1495
|
+
name: "show", discovery: { surface: "public", audiences: ["public", "operator", "leader"] },
|
|
1478
1496
|
summary: "Read one Project knowledge entry.",
|
|
1479
1497
|
usage: "yui project knowledge show <project> <knowledge>"
|
|
1480
1498
|
},
|
|
1481
1499
|
{
|
|
1482
|
-
name: "propose",
|
|
1500
|
+
name: "propose", discovery: { surface: "public", audiences: ["public", "operator", "leader"] },
|
|
1483
1501
|
summary: "Propose a Task conclusion for promotion into Project knowledge.",
|
|
1484
1502
|
usage: "yui project knowledge propose <project> --title <text> --body <text> --task <task>"
|
|
1485
1503
|
+ " [--decision <id>] [--milestone <id>] [--commit <sha>] [--scope <text>]"
|
|
@@ -1487,31 +1505,31 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1487
1505
|
options: ["--title", "--body", "--task", "--decision", "--milestone", "--commit", "--scope", "--expires-when", "--supersedes"]
|
|
1488
1506
|
},
|
|
1489
1507
|
{
|
|
1490
|
-
name: "proposals",
|
|
1508
|
+
name: "proposals", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1491
1509
|
summary: "List or show Knowledge promotion proposals.",
|
|
1492
1510
|
sections: [{ id: "manage", title: "Commands", entries: ["list", "show"] }],
|
|
1493
1511
|
children: [
|
|
1494
1512
|
{
|
|
1495
|
-
name: "list",
|
|
1513
|
+
name: "list", discovery: { surface: "public", audiences: ["public", "operator", "leader"] },
|
|
1496
1514
|
summary: "List Knowledge promotion proposals (pending by default).",
|
|
1497
1515
|
usage: "yui project knowledge proposals list <project> [--status pending|accepted|rejected] [--all]",
|
|
1498
1516
|
options: ["--status", "--all"]
|
|
1499
1517
|
},
|
|
1500
1518
|
{
|
|
1501
|
-
name: "show",
|
|
1519
|
+
name: "show", discovery: { surface: "public", audiences: ["public", "operator", "leader"] },
|
|
1502
1520
|
summary: "Show one Knowledge promotion proposal.",
|
|
1503
1521
|
usage: "yui project knowledge proposals show <project> <proposal>"
|
|
1504
1522
|
}
|
|
1505
1523
|
]
|
|
1506
1524
|
},
|
|
1507
1525
|
{
|
|
1508
|
-
name: "accept",
|
|
1526
|
+
name: "accept", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1509
1527
|
summary: "Accept a Knowledge promotion proposal (Operator authority).",
|
|
1510
1528
|
usage: "yui project knowledge accept <project> <proposal> [--update <knowledge-id>]",
|
|
1511
1529
|
options: ["--update"]
|
|
1512
1530
|
},
|
|
1513
1531
|
{
|
|
1514
|
-
name: "reject",
|
|
1532
|
+
name: "reject", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1515
1533
|
summary: "Reject a Knowledge promotion proposal (Operator authority).",
|
|
1516
1534
|
usage: "yui project knowledge reject <project> <proposal> --reason <text>",
|
|
1517
1535
|
options: ["--reason"]
|
|
@@ -1521,7 +1539,7 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1521
1539
|
]
|
|
1522
1540
|
},
|
|
1523
1541
|
{
|
|
1524
|
-
name: "session",
|
|
1542
|
+
name: "session", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1525
1543
|
summary: "Enter, stop, and reconcile managed Role sessions.",
|
|
1526
1544
|
examples: [
|
|
1527
1545
|
"yui session context operator --json",
|
|
@@ -1537,7 +1555,7 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1537
1555
|
children: globalSessionChildren
|
|
1538
1556
|
},
|
|
1539
1557
|
{
|
|
1540
|
-
name: "task",
|
|
1558
|
+
name: "task", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1541
1559
|
summary: "Manage Tasks, WorkItems, AgentRuns, and integration.",
|
|
1542
1560
|
sections: [
|
|
1543
1561
|
{ id: "lifecycle", title: "Lifecycle", entries: ["create", "project", "base", "update", "activate", "activation", "execution", "complete", "cancel", "reopen", "retire", "list", "show", "context", "next-action", "remote-delivery", "archive-preflight", "archive", "replace", "reconcile", "upstream", "artifact"] },
|
|
@@ -1547,76 +1565,71 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1547
1565
|
children: taskChildren
|
|
1548
1566
|
},
|
|
1549
1567
|
{
|
|
1550
|
-
name: "capability",
|
|
1568
|
+
name: "capability", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] },
|
|
1551
1569
|
summary: "Discover and call authorized capabilities through the Controller.",
|
|
1552
1570
|
sections: [{ id: "entry", title: "Commands", entries: ["search", "commands", "panels", "describe", "call"] }],
|
|
1553
1571
|
children: [
|
|
1554
|
-
{ name: "search", summary: "Search the current authorized directory.", usage: "yui capability search [query] --task <id>" },
|
|
1555
|
-
{ name: "commands", summary: "List current command names, help and capability mappings; invoke via capability call.", usage: "yui capability commands --task <id>" },
|
|
1556
|
-
{ name: "panels", summary: "List authorized text/link or query-only JSON panel descriptors.", usage: "yui capability panels --task <id>" },
|
|
1557
|
-
{ name: "describe", summary: "Describe
|
|
1558
|
-
{ name: "call", summary: "Invoke one implementation under the current managed identity.", usage: "yui capability call <name> --task <id> --input <json> [--provider <id>] [--version <version>] [--request-id <id>]" }
|
|
1572
|
+
{ name: "search", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] }, summary: "Search the current authorized directory.", usage: "yui capability search [query] --task <id>" },
|
|
1573
|
+
{ name: "commands", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] }, summary: "List current command names, help and capability mappings; invoke via capability call.", usage: "yui capability commands --task <id>" },
|
|
1574
|
+
{ name: "panels", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] }, summary: "List authorized text/link or query-only JSON panel descriptors.", usage: "yui capability panels --task <id>" },
|
|
1575
|
+
{ name: "describe", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] }, summary: "Describe a template or assess exact authorization without executing it.", usage: "yui capability describe <name> --task <id> [--input <json>] [--provider <id>] [--version <version>]", options: ["--task", "--input", "--provider", "--version"] },
|
|
1576
|
+
{ name: "call", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] }, summary: "Invoke one implementation under the current managed identity.", usage: "yui capability call <name> --task <id> --input <json> [--provider <id>] [--version <version>] [--request-id <id>]", options: ["--task", "--input", "--provider", "--version", "--request-id"] }
|
|
1559
1577
|
]
|
|
1560
1578
|
},
|
|
1561
1579
|
{
|
|
1562
|
-
name: "job",
|
|
1580
|
+
name: "job", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] },
|
|
1563
1581
|
summary: "Start, inspect, cancel, or acknowledge a Controller-managed DurableJob.",
|
|
1564
1582
|
sections: [{ id: "manage", title: "Commands", entries: ["start", "get", "cancel", "acknowledge"] }],
|
|
1565
1583
|
children: [
|
|
1566
|
-
{ name: "start", summary: "Start a DurableJob under an explicit request identity.", usage: "yui job start --request-id <id> --task <id> --project <project> --head <sha> --workspace <dir> --step <name>=<command> [--step ...] [--owner task|work-item:<id>|integration-attempt:<id>] [--env <k=v>...]" },
|
|
1567
|
-
{ name: "get", summary: "Show a DurableJob record and its terminal result.", usage: "yui job get --task <id> --job <job-id>" },
|
|
1568
|
-
{ name: "cancel", summary: "Request cancellation of a running or queued DurableJob.", usage: "yui job cancel --task <id> --job <job-id>" },
|
|
1569
|
-
{ name: "acknowledge", summary: "Acknowledge an unknown-needs-attention DurableJob so Task lifecycle gates can proceed.", usage: "yui job acknowledge --task <id> --job <job-id>" }
|
|
1584
|
+
{ name: "start", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] }, summary: "Start a DurableJob under an explicit request identity.", usage: "yui job start --request-id <id> --task <id> --project <project> --head <sha> --workspace <dir> --step <name>=<command> [--step ...] [--owner task|work-item:<id>|integration-attempt:<id>] [--env <k=v>...]" },
|
|
1585
|
+
{ name: "get", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] }, summary: "Show a DurableJob record and its terminal result.", usage: "yui job get --task <id> --job <job-id>" },
|
|
1586
|
+
{ name: "cancel", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] }, summary: "Request cancellation of a running or queued DurableJob.", usage: "yui job cancel --task <id> --job <job-id>" },
|
|
1587
|
+
{ name: "acknowledge", discovery: { surface: "managed", audiences: ["operator", "leader", "assignment"] }, summary: "Acknowledge an unknown-needs-attention DurableJob so Task lifecycle gates can proceed.", usage: "yui job acknowledge --task <id> --job <job-id>" }
|
|
1570
1588
|
]
|
|
1571
1589
|
},
|
|
1572
1590
|
{
|
|
1573
|
-
name: "jobs",
|
|
1591
|
+
name: "jobs", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1574
1592
|
summary: "Inspect scheduler wake and recovery records.",
|
|
1575
1593
|
sections: [{ id: "manage", title: "Commands", entries: ["list", "retry"] }],
|
|
1576
1594
|
children: [
|
|
1577
|
-
{ name: "list", summary: "List scheduler wake and recovery records." },
|
|
1578
|
-
{ name: "retry", summary: "Retry a failed Leader recovery.", usage: "yui jobs retry <id>" }
|
|
1595
|
+
{ name: "list", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "List scheduler wake and recovery records." },
|
|
1596
|
+
{ name: "retry", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Retry a failed Leader recovery.", usage: "yui jobs retry <id>" }
|
|
1579
1597
|
]
|
|
1580
1598
|
},
|
|
1581
1599
|
{
|
|
1582
|
-
name: "telemetry",
|
|
1600
|
+
name: "telemetry", discovery: { surface: "public", audiences: ["public", "operator"] },
|
|
1583
1601
|
summary: "Inspect and compact the bounded provider-progress sidecar.",
|
|
1584
1602
|
sections: [{ id: "manage", title: "Commands", entries: ["status", "prune", "read"] }],
|
|
1585
1603
|
children: [
|
|
1586
|
-
{ name: "status", summary: "Show sidecar health, row counts, and retention settings.", usage: "yui telemetry status" },
|
|
1587
|
-
{ name: "prune", summary: "Apply terminal retention and active-AgentRun caps.", usage: "yui telemetry prune [--task <id>] [--keep <n>] [--dry-run]" },
|
|
1588
|
-
{ name: "read", summary: "Page through retained progress rows or read a AgentRun aggregate.", usage: "yui telemetry read --task <id> [--run <id>] [--aggregate] [--limit <n>] [--offset <n>]" }
|
|
1604
|
+
{ name: "status", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Show sidecar health, row counts, and retention settings.", usage: "yui telemetry status" },
|
|
1605
|
+
{ name: "prune", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Apply terminal retention and active-AgentRun caps.", usage: "yui telemetry prune [--task <id>] [--keep <n>] [--dry-run]" },
|
|
1606
|
+
{ name: "read", discovery: { surface: "public", audiences: ["public", "operator"] }, summary: "Page through retained progress rows or read a AgentRun aggregate.", usage: "yui telemetry read --task <id> [--run <id>] [--aggregate] [--limit <n>] [--offset <n>]" }
|
|
1589
1607
|
]
|
|
1590
1608
|
},
|
|
1591
1609
|
{
|
|
1592
|
-
name: "internal",
|
|
1610
|
+
name: "internal", discovery: { surface: "runtime", audiences: [] },
|
|
1593
1611
|
summary: "Internal Yui callbacks.",
|
|
1594
1612
|
hidden: true,
|
|
1595
1613
|
sections: [{
|
|
1596
1614
|
id: "callbacks",
|
|
1597
1615
|
title: "Callbacks",
|
|
1598
|
-
entries: ["session-notify", "runtime-hook", "agent-host"
|
|
1616
|
+
entries: ["session-notify", "runtime-hook", "agent-host"]
|
|
1599
1617
|
}],
|
|
1600
1618
|
children: [
|
|
1601
1619
|
{
|
|
1602
|
-
name: "agent-host",
|
|
1620
|
+
name: "agent-host", discovery: { surface: "runtime", audiences: [] },
|
|
1603
1621
|
summary: "Run the persistent structured Provider host.",
|
|
1604
1622
|
usage: "yui internal agent-host <ticket>"
|
|
1605
1623
|
},
|
|
1606
1624
|
{
|
|
1607
|
-
name: "session-notify",
|
|
1625
|
+
name: "session-notify", discovery: { surface: "runtime", audiences: [] },
|
|
1608
1626
|
summary: "Record a structured native session notification.",
|
|
1609
1627
|
usage: "yui internal session-notify <payload>"
|
|
1610
1628
|
},
|
|
1611
1629
|
{
|
|
1612
|
-
name: "runtime-hook",
|
|
1630
|
+
name: "runtime-hook", discovery: { surface: "runtime", audiences: [] },
|
|
1613
1631
|
summary: "Record a managed Agent Driver observation from stdin.",
|
|
1614
1632
|
usage: "yui internal runtime-hook"
|
|
1615
|
-
},
|
|
1616
|
-
{
|
|
1617
|
-
name: "session-cli-refresh",
|
|
1618
|
-
summary: "Refresh existing managed Session CLI wrappers after an update.",
|
|
1619
|
-
usage: "yui internal session-cli-refresh"
|
|
1620
1633
|
}
|
|
1621
1634
|
]
|
|
1622
1635
|
}
|
|
@@ -1649,8 +1662,8 @@ export function orderedImmediateTokens(node) {
|
|
|
1649
1662
|
export function findChild(node, name) {
|
|
1650
1663
|
return node.children.find((child) => child.name === name);
|
|
1651
1664
|
}
|
|
1652
|
-
export function findCommandNode(path) {
|
|
1653
|
-
let node =
|
|
1665
|
+
export function findCommandNode(path, root = ROOT_COMMAND) {
|
|
1666
|
+
let node = root;
|
|
1654
1667
|
for (const segment of path[0] === ROOT_COMMAND.name ? path.slice(1) : path) {
|
|
1655
1668
|
const child = findChild(node, segment);
|
|
1656
1669
|
if (child === undefined)
|
|
@@ -1686,6 +1699,13 @@ export function validateCommandCatalog(root) {
|
|
|
1686
1699
|
throw new Error(`Command examples are required: ${node.path.join(" ")}`);
|
|
1687
1700
|
}
|
|
1688
1701
|
const canonicalPath = node.path.join(" ");
|
|
1702
|
+
if (node.kind !== "group" && node.discovery === undefined) {
|
|
1703
|
+
throw new Error(`Executable command discovery must be explicit: ${canonicalPath}`);
|
|
1704
|
+
}
|
|
1705
|
+
for (const option of Object.keys(node.discovery?.optionAudiences ?? {})) {
|
|
1706
|
+
if (!node.options.includes(option))
|
|
1707
|
+
throw new Error(`Discovery references unknown option: ${canonicalPath} ${option}`);
|
|
1708
|
+
}
|
|
1689
1709
|
for (const example of node.examples) {
|
|
1690
1710
|
const normalized = example.replace(/^yui --json(?=\s|$)/, "yui");
|
|
1691
1711
|
if (normalized !== canonicalPath && !normalized.startsWith(`${canonicalPath} `)) {
|