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