@zq-silk/yui 0.15.7 → 0.15.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (308) hide show
  1. package/ARCHITECTURE.md +194 -399
  2. package/ARCHITECTURE.zh-CN.md +151 -0
  3. package/README.md +306 -1131
  4. package/dist/agent/adapterCatalog.js +15 -2
  5. package/dist/agent/agent.js +23 -3
  6. package/dist/agent/argumentPolicy.js +7 -1
  7. package/dist/agent/connectionPlan.js +62 -0
  8. package/dist/agent/executionComponents.js +158 -0
  9. package/dist/agent/launchEnvironment.js +31 -3
  10. package/dist/agent/managedRuntimeEnvironment.js +3 -5
  11. package/dist/{turn/turn.js → agentRun/agentRun.js} +166 -109
  12. package/dist/{turn/turnIdentity.js → agentRun/runIdentity.js} +4 -4
  13. package/dist/artifacts/artifactCapability.js +74 -0
  14. package/dist/artifacts/artifactCommitLock.js +249 -0
  15. package/dist/artifacts/artifactPaths.js +151 -0
  16. package/dist/artifacts/gitArtifactRef.js +146 -0
  17. package/dist/artifacts/managedGit.js +332 -0
  18. package/dist/artifacts/taskArtifactRepository.js +277 -0
  19. package/dist/brief/taskBrief.js +12 -0
  20. package/dist/cli/agentConfigurationPicker.js +13 -0
  21. package/dist/cli/commandCatalog.js +165 -74
  22. package/dist/cli/interactionCandidates.js +5 -5
  23. package/dist/cli/interactionPolicy.js +38 -8
  24. package/dist/cli/invocationRouter.js +1 -1
  25. package/dist/cli/managedDiagnostics.js +28 -0
  26. package/dist/cli/operatorWizard.js +1 -7
  27. package/dist/cli/roleOptionOrder.js +27 -0
  28. package/dist/cli/roleWizard.js +50 -14
  29. package/dist/cli/updateOrchestrator.js +1 -1
  30. package/dist/cli/updatePorts.js +3 -4
  31. package/dist/cli.js +245 -95
  32. package/dist/commands/agentCommands.js +72 -14
  33. package/dist/commands/capabilityCommands.js +9 -6
  34. package/dist/commands/configCommands.js +20 -20
  35. package/dist/commands/deliveryGuardPreflight.js +2 -2
  36. package/dist/commands/executionAuditCommands.js +24 -24
  37. package/dist/commands/globalRoleCommands.js +1 -1
  38. package/dist/commands/grantCommands.js +4 -4
  39. package/dist/commands/operatorCommands.js +34 -9
  40. package/dist/commands/projectCommands.js +4 -4
  41. package/dist/commands/resourcesCommands.js +2 -2
  42. package/dist/commands/roleConfiguration.js +25 -5
  43. package/dist/commands/roleRuntimeGuard.js +4 -5
  44. package/dist/commands/sessionCommands.js +3 -7
  45. package/dist/commands/taskActivationCommands.js +281 -0
  46. package/dist/commands/taskActor.js +28 -49
  47. package/dist/commands/taskCommands.js +1461 -720
  48. package/dist/commands/taskContextCommand.js +39 -583
  49. package/dist/commands/taskExecutionCommands.js +32 -32
  50. package/dist/commands/taskInputCommands.js +40 -104
  51. package/dist/commands/taskIntegrationCommands.js +3 -2
  52. package/dist/commands/taskIntegrationQueueCommands.js +1 -1
  53. package/dist/commands/taskNextActionCommand.js +8 -8
  54. package/dist/commands/taskOverviewCommand.js +33 -45
  55. package/dist/commands/taskRemoteDeliveryCommand.js +2 -2
  56. package/dist/commands/taskRoleRuntimeStatus.js +133 -102
  57. package/dist/commands/telemetryCommands.js +36 -38
  58. package/dist/config/configCatalog.js +4 -4
  59. package/dist/config/yuiConfig.js +8 -8
  60. package/dist/context/contextSnapshot.js +10 -10
  61. package/dist/context/dispatchContext.js +11 -11
  62. package/dist/context/roleSessionContext.js +6 -3
  63. package/dist/context/{turnContextPack.js → runContextPack.js} +158 -81
  64. package/dist/context/{turnInputContract.js → runInputContract.js} +73 -60
  65. package/dist/context/sessionBootstrapManifest.js +21 -2
  66. package/dist/context/sourceRunContext.js +30 -0
  67. package/dist/context/taskContext.js +481 -0
  68. package/dist/context/wakeNotification.js +27 -27
  69. package/dist/controller/agentRuntimeObserver.js +21 -24
  70. package/dist/controller/capabilityBridge.js +17 -6
  71. package/dist/controller/clientRuntime.js +65 -92
  72. package/dist/controller/controller.js +120 -188
  73. package/dist/controller/fileSchedulerStoreAdapter.js +787 -887
  74. package/dist/controller/jobControl.js +54 -85
  75. package/dist/controller/resourceInventory.js +8 -27
  76. package/dist/controller/resourceInventoryLinux.js +12 -13
  77. package/dist/controller/runtime.js +529 -479
  78. package/dist/controller/runtimeEventInbox.js +55 -25
  79. package/dist/controller/runtimeEventProcessor.js +22 -31
  80. package/dist/controller/{runtimeHookTurnFence.js → runtimeHookRunFence.js} +91 -115
  81. package/dist/controller/runtimeLaunchCoordinator.js +80 -426
  82. package/dist/controller/runtimeObservationHook.js +14 -18
  83. package/dist/controller/sessionNotify.js +16 -24
  84. package/dist/controller/sessionOwnerReconciliation.js +168 -50
  85. package/dist/controller/structuredProviderObservation.js +138 -99
  86. package/dist/coordination/workMailbox.js +3 -3
  87. package/dist/coordination/workMailboxQueue.js +36 -33
  88. package/dist/core/boundedRpc.js +8 -1
  89. package/dist/core/controllerClient.js +20 -1
  90. package/dist/core/controllerServer.js +4 -4
  91. package/dist/doctor/doctor.js +13 -2
  92. package/dist/domain/agentResultTransport.js +9 -9
  93. package/dist/execution/codexThreadNaming.js +2 -8
  94. package/dist/execution/executionHealth.js +51 -63
  95. package/dist/execution/reviewMainRun.js +137 -0
  96. package/dist/execution/workItemExecution.js +28 -29
  97. package/dist/execution/workItemExecutionProjection.js +99 -107
  98. package/dist/execution/workItemMainRun.js +141 -0
  99. package/dist/executor/agentAdapter.js +227 -20
  100. package/dist/executor/agentConfigurationCatalog.js +126 -4
  101. package/dist/executor/agentConfigurationProbe.js +162 -4
  102. package/dist/executor/agentExecutor.js +79 -78
  103. package/dist/executor/effectiveLaunch.js +105 -18
  104. package/dist/executor/executorRegistry.js +29 -44
  105. package/dist/executor/fileRoleLaunchPlanner.js +229 -154
  106. package/dist/executor/workspacePreflightClassification.js +16 -16
  107. package/dist/grant/capabilityGrant.js +6 -3
  108. package/dist/input/inputRequest.js +12 -10
  109. package/dist/integration/gitIntegrationService.js +4 -11
  110. package/dist/integration/integrationQueueService.js +4 -4
  111. package/dist/interaction/operatorPresentation.js +1 -1
  112. package/dist/kernel/builtinCapabilities.js +255 -12
  113. package/dist/kernel/capabilityRegistry.js +64 -18
  114. package/dist/kernel/instanceHost.js +12 -1
  115. package/dist/kernel/kernelPorts.js +2 -2
  116. package/dist/lifecycle/canonicalLifecycleEvent.js +44 -49
  117. package/dist/lifecycle/exactRunTerminalization.js +449 -0
  118. package/dist/message/message.js +118 -6
  119. package/dist/message/messageContinuation.js +204 -0
  120. package/dist/observability/executionAudit.js +70 -72
  121. package/dist/observability/faultClassification.js +2 -2
  122. package/dist/observability/orchestrationMetrics.js +8 -8
  123. package/dist/operator/operatorSessionHistory.js +1 -7
  124. package/dist/output/agentConfigurationPresentation.js +8 -3
  125. package/dist/output/agentRunConfigurationPresentation.js +128 -0
  126. package/dist/output/rolePresentation.js +54 -3
  127. package/dist/plugins/pluginChild.js +104 -0
  128. package/dist/plugins/pluginIntent.js +26 -0
  129. package/dist/plugins/pluginInterpreter.js +43 -0
  130. package/dist/plugins/pluginPackage.js +101 -0
  131. package/dist/plugins/pluginProcess.js +112 -0
  132. package/dist/plugins/pluginService.js +388 -0
  133. package/dist/profile/agentProfile.js +1 -1
  134. package/dist/repository/gitWorkspace.js +26 -4
  135. package/dist/repository/project.js +19 -4
  136. package/dist/repository/taskBaseFreshness.js +13 -13
  137. package/dist/repository/taskWorkspaceCoordinator.js +20 -27
  138. package/dist/repository/taskWorkspacePreparer.js +344 -83
  139. package/dist/resources/autoResourceGc.js +3 -3
  140. package/dist/resources/liveReferences.js +3 -3
  141. package/dist/resources/projectResource.js +75 -0
  142. package/dist/resources/projectResourceService.js +343 -0
  143. package/dist/resources/resourceDiscovery.js +6 -6
  144. package/dist/resources/resourceGc.js +1 -1
  145. package/dist/resources/resourceRegistrar.js +1 -1
  146. package/dist/resources/resourceTypes.js +1 -1
  147. package/dist/review/deltaRecheck.js +3 -3
  148. package/dist/review/reviewAcceptance.js +16 -16
  149. package/dist/review/reviewDecision.js +7 -7
  150. package/dist/review/reviewRound.js +21 -20
  151. package/dist/review/reviewerAvailability.js +2 -2
  152. package/dist/role/role.js +51 -7
  153. package/dist/role/taskRoleUpdate.js +30 -0
  154. package/dist/runtime/acpProtocol.js +425 -0
  155. package/dist/runtime/acpSession.js +731 -0
  156. package/dist/runtime/acpSessionConfiguration.js +260 -0
  157. package/dist/runtime/agentDriver.js +30 -11
  158. package/dist/runtime/agentEndpoint.js +278 -0
  159. package/dist/runtime/agentEndpointIdentity.js +86 -0
  160. package/dist/runtime/agentEndpointOwnership.js +239 -0
  161. package/dist/runtime/agentError.js +2 -10
  162. package/dist/runtime/agentHost.js +565 -314
  163. package/dist/runtime/agentRunConfiguration.js +258 -0
  164. package/dist/runtime/builtinAgentDrivers.js +134 -18
  165. package/dist/runtime/builtinAgentErrorMappers.js +55 -3
  166. package/dist/runtime/builtinTranscriptUsage.js +1 -1
  167. package/dist/runtime/claude-process-owner +0 -0
  168. package/dist/runtime/codexAppServerRuntime.js +38 -30
  169. package/dist/runtime/codexInteractiveHost.js +41 -6
  170. package/dist/runtime/continuationManager.js +2 -6
  171. package/dist/runtime/executionEnvironment.js +30 -0
  172. package/dist/runtime/firstProgressAdvisory.js +11 -11
  173. package/dist/runtime/index.js +4 -3
  174. package/dist/runtime/jsonLineChannel.js +109 -0
  175. package/dist/runtime/launchBroker.js +91 -16
  176. package/dist/runtime/launchDiagnostics.js +2 -2
  177. package/dist/runtime/lifecycleReservation.js +10 -18
  178. package/dist/runtime/managedCaller.js +61 -17
  179. package/dist/runtime/nativeSessionControl.js +102 -0
  180. package/dist/runtime/ports.js +6 -21
  181. package/dist/runtime/processExitObservation.js +8 -7
  182. package/dist/runtime/promptEnvelope.js +17 -6
  183. package/dist/runtime/providerContinuation.js +3 -9
  184. package/dist/runtime/providerContinuationReconciliationService.js +4 -13
  185. package/dist/runtime/providerControl.js +2 -7
  186. package/dist/runtime/providerRuntimeIdentity.js +110 -222
  187. package/dist/runtime/providerRuntimeReconciler.js +5 -9
  188. package/dist/runtime/runtimeBinding.js +0 -1
  189. package/dist/runtime/runtimeContinuationProjection.js +4 -7
  190. package/dist/runtime/runtimeDeadlines.js +9 -0
  191. package/dist/runtime/runtimeHealthPolicy.js +1 -1
  192. package/dist/runtime/runtimeObservation.js +29 -65
  193. package/dist/runtime/runtimeProjection.js +43 -51
  194. package/dist/runtime/runtimeSessionCandidate.js +1 -3
  195. package/dist/runtime/sessionLaunchRequest.js +3 -7
  196. package/dist/runtime/sessionOwnerIdentity.js +7 -54
  197. package/dist/runtime/sessionOwnerRegistry.js +22 -17
  198. package/dist/runtime/sessionReconciliation.js +4 -8
  199. package/dist/runtime/sessionTerminationGuard.js +70 -259
  200. package/dist/runtime/sessionTokenMetrics.js +5 -16
  201. package/dist/runtime/structuredProviderHost.js +237 -117
  202. package/dist/runtime/taskRuntimeIsolation.js +39 -122
  203. package/dist/runtime/tmuxAdapters.js +39 -86
  204. package/dist/scheduler/activeRoleRunDelivery.js +354 -0
  205. package/dist/scheduler/leaderWakeupProcessor.js +75 -266
  206. package/dist/scheduler/operatorInputNotificationProcessor.js +1 -1
  207. package/dist/scheduler/ports.js +80 -9
  208. package/dist/scheduler/{roleTurnLiveness.js → roleRunLiveness.js} +26 -30
  209. package/dist/scheduler/{roleTurnStall.js → roleRunStall.js} +128 -139
  210. package/dist/scheduler/taskExecutionProjection.js +120 -124
  211. package/dist/scheduler/taskObservabilityProjection.js +29 -29
  212. package/dist/scheduler/taskWake.js +11 -4
  213. package/dist/scheduler/wakeReason.js +9 -1
  214. package/dist/setup/setupCommand.js +3 -7
  215. package/dist/storage/migrations/agentRunContract.js +159 -0
  216. package/dist/storage/migrations/artifactsToGit.js +338 -0
  217. package/dist/storage/migrations/removeRuntimeGeneration.js +207 -0
  218. package/dist/storage/migrations/submitIntent.js +126 -0
  219. package/dist/storage/sqliteSchema.js +467 -7
  220. package/dist/storage/sqliteStore.js +355 -220
  221. package/dist/storage/storageVersions.js +1 -1
  222. package/dist/storage/storeRpc.js +10 -5
  223. package/dist/storage/taskStore.js +13 -11
  224. package/dist/storage/upgrade/upgradeOrchestrator.js +5 -7
  225. package/dist/surface/surfaceContributions.js +102 -0
  226. package/dist/task/completionReadiness.js +32 -6
  227. package/dist/task/deliveryGuard.js +16 -16
  228. package/dist/task/draftPlan.js +72 -12
  229. package/dist/task/nextAction.js +144 -128
  230. package/dist/task/remoteDelivery.js +6 -6
  231. package/dist/task/task.js +184 -18
  232. package/dist/task/taskActivation.js +327 -0
  233. package/dist/task/taskActivationService.js +408 -0
  234. package/dist/task/taskRecordReference.js +5 -4
  235. package/dist/task/taskRecordRetirement.js +1 -1
  236. package/dist/task/taskSubmission.js +236 -0
  237. package/dist/telemetry/sqliteTelemetryStore.js +55 -68
  238. package/dist/telemetry/telemetryConfig.js +14 -14
  239. package/dist/telemetry/telemetryWiring.js +2 -2
  240. package/dist/web/assets/assetManifest.js +2 -0
  241. package/dist/web/assets/client/app.js +121 -20
  242. package/dist/web/assets/client/components.js +87 -54
  243. package/dist/web/assets/client/i18n.js +83 -41
  244. package/dist/web/assets/client/markdown.js +1 -1
  245. package/dist/web/assets/client/taskSurface.js +442 -0
  246. package/dist/web/assets/client/view.js +49 -44
  247. package/dist/web/assets/shell.js +1 -1
  248. package/dist/web/assets/styles/cards.js +22 -4
  249. package/dist/web/controllerWeb.js +60 -0
  250. package/dist/web/webMutation.js +28 -0
  251. package/dist/web/webServer.js +133 -8
  252. package/dist/web/webSnapshot.js +81 -74
  253. package/dist/web/webTaskSurface.js +64 -0
  254. package/dist/workItem/dependencyGate.js +1 -1
  255. package/dist/workItem/workItem.js +84 -48
  256. package/dist/workspace/workItemChangeSetManager.js +16 -9
  257. package/docs/agent-result-consumption.md +96 -0
  258. package/docs/agent-result-consumption.zh-CN.md +81 -0
  259. package/docs/agent-runtime-drivers.md +93 -0
  260. package/docs/agent-runtime-drivers.zh-CN.md +77 -0
  261. package/docs/architecture/README.md +50 -0
  262. package/docs/architecture/README.zh-CN.md +43 -0
  263. package/docs/architecture/capabilities-and-resources.md +118 -0
  264. package/docs/architecture/capabilities-and-resources.zh-CN.md +83 -0
  265. package/docs/managed-turn-and-session-runtime.md +224 -0
  266. package/docs/managed-turn-and-session-runtime.zh-CN.md +180 -0
  267. package/docs/observability/README.md +83 -0
  268. package/docs/observability/README.zh-CN.md +71 -0
  269. package/docs/plugin-sdk.md +393 -0
  270. package/docs/plugin-sdk.zh-CN.md +293 -0
  271. package/docs/provider-runtime.md +165 -0
  272. package/docs/provider-runtime.zh-CN.md +132 -0
  273. package/docs/release-workflow.md +305 -0
  274. package/docs/release-workflow.zh-CN.md +237 -0
  275. package/docs/roles-and-configuration.md +115 -0
  276. package/docs/roles-and-configuration.zh-CN.md +96 -0
  277. package/docs/sqlite-control-plane-design.md +78 -0
  278. package/docs/sqlite-control-plane-design.zh-CN.md +62 -0
  279. package/docs/task-dag-semantics.md +80 -0
  280. package/docs/task-dag-semantics.zh-CN.md +59 -0
  281. package/docs/task-delivery.md +105 -0
  282. package/docs/task-delivery.zh-CN.md +82 -0
  283. package/docs/task-local-identity.md +8 -6
  284. package/docs/task-local-identity.zh-CN.md +58 -0
  285. package/docs/testing/verification-levels.md +88 -0
  286. package/docs/testing/verification-levels.zh-CN.md +69 -0
  287. package/i18n/README.zh-CN.md +270 -722
  288. package/package.json +3 -2
  289. package/skills/yui-leader/SKILL.md +88 -304
  290. package/skills/yui-leader/references/execution.md +303 -0
  291. package/skills/yui-leader/references/integration.md +39 -0
  292. package/skills/yui-leader/references/planning.md +109 -0
  293. package/skills/yui-leader/references/replicated-execution.md +42 -0
  294. package/skills/yui-leader/references/task-plugins.md +37 -0
  295. package/skills/yui-operator/SKILL.md +46 -62
  296. package/skills/yui-reviewer/SKILL.md +35 -36
  297. package/skills/yui-runtime/SKILL.md +88 -24
  298. package/skills/yui-runtime/references/publication.md +22 -0
  299. package/skills/yui-runtime/references/recovery.md +64 -0
  300. package/skills/yui-worker/SKILL.md +37 -39
  301. package/dist/cli/roleOptionCatalog.js +0 -68
  302. package/dist/context/sourceTurnContext.js +0 -30
  303. package/dist/execution/reviewMainTurn.js +0 -161
  304. package/dist/execution/workItemMainTurn.js +0 -164
  305. package/dist/lifecycle/exactTurnTerminalization.js +0 -407
  306. package/dist/runtime/preallocatedNativeSession.js +0 -13
  307. package/dist/runtime/runtimeStopReceipt.js +0 -42
  308. package/dist/scheduler/activeRoleTurnDelivery.js +0 -315
@@ -1,4 +1,5 @@
1
1
  import { supportedAgentAdapterIds } from "../agent/adapterCatalog.js";
2
+ import { supportedAgentExecutionComponentIds } from "../agent/executionComponents.js";
2
3
  import { CONFIG_DEFINITIONS, CONFIG_DOMAINS, configDefinitionsForDomain } from "../config/configCatalog.js";
3
4
  function buildNode(input, parentPath = []) {
4
5
  const path = [...parentPath, input.name];
@@ -101,10 +102,13 @@ function durableConfigDomainNode(domain) {
101
102
  const agentChildren = [
102
103
  {
103
104
  name: "add",
104
- summary: "Add a configured native Agent CLI.",
105
- usage: "yui config agent add <id> [--adapter <adapter>] --command <command> [--arg <arg> ...] [--env TARGET=PROCESS_NAME ...]",
106
- options: ["--adapter", "--command", "--arg", "--env"],
107
- optionValues: { "--adapter": supportedAgentAdapterIds() },
105
+ summary: "Add a configured Agent execution component.",
106
+ usage: "yui config agent add <id> [--component <component>] [--adapter <adapter>] --command <command> [--arg <arg> ...] [--env TARGET=PROCESS_NAME ...]",
107
+ options: ["--component", "--adapter", "--command", "--arg", "--env"],
108
+ optionValues: {
109
+ "--component": supportedAgentExecutionComponentIds(),
110
+ "--adapter": supportedAgentAdapterIds()
111
+ },
108
112
  executableOptions: ["--command"]
109
113
  },
110
114
  { name: "list", summary: "List configured Agents." },
@@ -117,9 +121,12 @@ const agentChildren = [
117
121
  {
118
122
  name: "update",
119
123
  summary: "Update a configured Agent.",
120
- usage: "yui config agent update <id> [--adapter <adapter>] [--command <command>] [--arg <arg> ... | --clear-args] [--env TARGET=PROCESS_NAME ... | --clear-env]",
121
- options: ["--adapter", "--command", "--arg", "--clear-args", "--env", "--clear-env", "--yes"],
122
- optionValues: { "--adapter": supportedAgentAdapterIds() },
124
+ usage: "yui config agent update <id> [--component <component>] [--adapter <adapter>] [--command <command>] [--arg <arg> ... | --clear-args] [--env TARGET=PROCESS_NAME ... | --clear-env]",
125
+ options: ["--component", "--adapter", "--command", "--arg", "--clear-args", "--env", "--clear-env", "--yes"],
126
+ optionValues: {
127
+ "--component": supportedAgentExecutionComponentIds(),
128
+ "--adapter": supportedAgentAdapterIds()
129
+ },
123
130
  executableOptions: ["--command"]
124
131
  },
125
132
  { name: "remove", summary: "Remove a configured Agent.", usage: "yui config agent remove <id>" }
@@ -282,6 +289,35 @@ const taskChildren = [
282
289
  }
283
290
  },
284
291
  { name: "activate", summary: "Activate a Draft Task.", usage: "yui task activate <id>" },
292
+ {
293
+ name: "activation",
294
+ summary: "Request, cancel or inspect explicit Task Activation.",
295
+ sections: [{ id: "manage", title: "Commands", entries: ["request", "cancel", "show"] }],
296
+ children: [
297
+ {
298
+ name: "request",
299
+ summary: "Record an Activation request. empty adds no extra environment (bound Projects still get managed worktrees); scratch creates a Task directory; local requires a registered Resource and grant, not a Project ID.",
300
+ usage: "yui task activation request <task> --request-id <id> "
301
+ + "--environment <empty|scratch|local:<resource>:<read|write>>",
302
+ options: ["--request-id", "--environment"],
303
+ examples: [
304
+ "yui task activation request <task> --request-id start-1 --environment empty",
305
+ "yui task activation request <gitless-task> --request-id start-1 --environment scratch"
306
+ ]
307
+ },
308
+ {
309
+ name: "cancel",
310
+ summary: "Cancel a pending Activation request so it is never adopted.",
311
+ usage: "yui task activation cancel <task> --request-id <id> --reason <text>",
312
+ options: ["--request-id", "--reason"]
313
+ },
314
+ {
315
+ name: "show",
316
+ summary: "Show the Task's Activation request and its disposition.",
317
+ usage: "yui task activation show <task>"
318
+ }
319
+ ]
320
+ },
285
321
  {
286
322
  name: "execution",
287
323
  summary: "Fence or resume all execution for a Task.",
@@ -303,8 +339,8 @@ const taskChildren = [
303
339
  {
304
340
  name: "complete",
305
341
  summary: "Complete an active Task and stop automatic wakeups.",
306
- usage: "yui task complete <id> (--summary <text>|--summary-file <path|->) [--refresh-remote] [--accept-published-tree <publication-id>]",
307
- options: ["--summary", "--summary-file", "--refresh-remote", "--accept-published-tree"],
342
+ usage: "yui task complete <id> (--summary <text>|--summary-file <path|->) [--artifact-ref <artifact-id|turn:id|url> ...] [--refresh-remote] [--accept-published-tree <publication-id>]",
343
+ options: ["--summary", "--summary-file", "--artifact-ref", "--refresh-remote", "--accept-published-tree"],
308
344
  fileOptions: ["--summary-file"]
309
345
  },
310
346
  {
@@ -320,7 +356,14 @@ const taskChildren = [
320
356
  }
321
357
  ]
322
358
  },
323
- { name: "reopen", summary: "Reopen a completed Task.", usage: "yui task reopen <id>" },
359
+ { name: "reopen", summary: "Explicitly reopen completed or cancelled intent without replaying historical inputs.", usage: "yui task reopen <id>" },
360
+ {
361
+ name: "cancel",
362
+ summary: "Stop pursuing a Task without claiming its processes stopped.",
363
+ usage: "yui task cancel <task> (--summary <text>|--summary-file <path|->)",
364
+ options: ["--summary", "--summary-file"],
365
+ fileOptions: ["--summary-file"]
366
+ },
324
367
  {
325
368
  name: "retire",
326
369
  summary: "Retire a stale Task while preserving its historical evidence.",
@@ -335,10 +378,21 @@ const taskChildren = [
335
378
  options: ["--all", "--verbose"]
336
379
  },
337
380
  { name: "show", summary: "Show a Task.", usage: "yui task show <id>" },
381
+ {
382
+ name: "artifact",
383
+ summary: "Save Task files in local Git and read current or commit-pinned content.",
384
+ sections: [{ id: "manage", title: "Commands", entries: ["list", "read", "save"] }],
385
+ children: [
386
+ { name: "list", summary: "List saved Task artifacts.", usage: "yui task artifact list <task>" },
387
+ { name: "read", summary: "Read a file at HEAD or an exact commit.", usage: "yui task artifact read <task> <relative-path> [<commit>]" },
388
+ { 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"] }
389
+ ]
390
+ },
338
391
  {
339
392
  name: "context",
340
- summary: "Show consolidated working context for a Task.",
341
- usage: "yui task context <task>"
393
+ summary: "Read compact authorized facts, fixed-bound delta, or inspect a Context reference.",
394
+ usage: "yui task context [read|delta|inspect] <task> [--after <cursor>] [--continuation <cursor>] [--limit <n>] [--store <store> --ref <id>] [--digest <digest>]",
395
+ options: ["--after", "--continuation", "--limit", "--store", "--ref", "--digest"]
342
396
  },
343
397
  {
344
398
  name: "next-action",
@@ -381,14 +435,21 @@ const taskChildren = [
381
435
  {
382
436
  name: "message",
383
437
  summary: "Manage durable Task messages.",
384
- sections: [{ id: "manage", title: "Commands", entries: ["send", "list", "update", "retire"] }],
438
+ sections: [{ id: "manage", title: "Commands", entries: ["send", "handoff", "list", "show", "update", "retire"] }],
385
439
  children: [
440
+ {
441
+ name: "handoff",
442
+ summary: "Explicitly hand an unassigned Message to the current dispatched owner of the same work.",
443
+ usage: "yui task message handoff <task/message> --to <role>",
444
+ options: ["--to"]
445
+ },
386
446
  {
387
447
  name: "send",
388
- summary: "Send a Task message.",
389
- usage: "yui task message send <id> (<body>|--body-file <path|->) [--wake-policy leader|none]",
390
- options: ["--body-file", "--wake-policy"],
448
+ summary: "Send a Task message. An unaddressed user/operator message carries a submission intent (record|discuss|develop) and an optional idempotency key.",
449
+ usage: "yui task message send <id> (<body>|--body-file <path|->) [--intent record|discuss|develop] [--request-id <key>] [--wake-policy leader|none] [--to <role> --work-item <id>|--review-round <id>]",
450
+ options: ["--body-file", "--intent", "--request-id", "--wake-policy", "--to", "--work-item", "--review-round"],
391
451
  optionValues: {
452
+ "--intent": ["record", "discuss", "develop"],
392
453
  "--wake-policy": ["leader", "none"]
393
454
  },
394
455
  fileOptions: ["--body-file"]
@@ -399,6 +460,11 @@ const taskChildren = [
399
460
  usage: "yui task message list <id> [--after <timestamp>] [--limit <n>]",
400
461
  options: ["--after", "--limit"]
401
462
  },
463
+ {
464
+ name: "show",
465
+ summary: "Read a scoped Message and expand its single execution result.",
466
+ usage: "yui task message show <task>/<message>"
467
+ },
402
468
  {
403
469
  name: "update",
404
470
  summary: "Replace the mutable body and wake policy of a Draft user/operator Message.",
@@ -424,7 +490,7 @@ const taskChildren = [
424
490
  children: [
425
491
  {
426
492
  name: "request",
427
- summary: "Pause the active Leader Turn and request user input.",
493
+ summary: "Pause the active Leader AgentRun and request user input.",
428
494
  usage: "yui task input request <task> --question <text> [--choice <key=label> ...] [--blocks <work-item:id|turn:id> ...] [--recommend <key> --timeout-seconds <seconds>]",
429
495
  options: ["--question", "--choice", "--blocks", "--recommend", "--timeout-seconds"]
430
496
  },
@@ -576,8 +642,8 @@ const taskChildren = [
576
642
  {
577
643
  name: "update",
578
644
  summary: "Update a Task Role; Agent settings target the named or active binding without switching it.",
579
- usage: "yui task role update <task> <role> [--profile <id>] [--agent <id>] [Role and Agent settings]",
580
- options: ["--profile", "--agent", ...roleProfileOptions, ...roleAgentOptions,
645
+ usage: "yui task role update <task> <role> [--profile <id>] [--agent <id>] [--environment <preparation-id> | --managed-environment] [Role and Agent settings]",
646
+ options: ["--profile", "--agent", "--environment", "--managed-environment", ...roleProfileOptions, ...roleAgentOptions,
581
647
  ...roleProfileClearOptions, ...roleAgentClearOptions, "--yes"],
582
648
  optionValues: roleAgentOptionValues
583
649
  },
@@ -586,20 +652,26 @@ const taskChildren = [
586
652
  { name: "unbind", summary: "Unbind a dormant Agent from a Task Role.", usage: "yui task role unbind <task> <role> <agent-id>" },
587
653
  {
588
654
  name: "session",
589
- summary: "Inspect or stop one Task Role's native Session.",
655
+ summary: "Inspect, stop or explicitly select a new Task Role Session.",
590
656
  executable: true,
591
- sections: [{ id: "manage", title: "Commands", entries: ["inspect", "stop"] }],
657
+ sections: [{ id: "manage", title: "Commands", entries: ["inspect", "stop", "new"] }],
592
658
  children: [
593
659
  {
594
660
  name: "inspect",
595
- summary: "Read the current Session, Host activation, and Turn facts.",
661
+ summary: "Read the current Session, Host process, and AgentRun facts.",
596
662
  usage: "yui task role session inspect <task> <role>"
597
663
  },
598
664
  {
599
665
  name: "stop",
600
- summary: "Stop one idle Session and its exact Host activation.",
666
+ summary: "Stop the exact Session execution and retain its conversation for possible reuse; preserve Task progress.",
601
667
  usage: "yui task role session stop <task> <role> --reason <text>",
602
668
  options: ["--reason"]
669
+ },
670
+ {
671
+ name: "new",
672
+ summary: "Request replacement even for active or ended Sessions; stop exact execution and preserve Task context, results and workspaces.",
673
+ usage: "yui task role session new <task> <role> --reason <text>",
674
+ options: ["--reason"]
603
675
  }
604
676
  ]
605
677
  },
@@ -627,7 +699,7 @@ const taskChildren = [
627
699
  id: "manage",
628
700
  title: "Commands",
629
701
  entries: [
630
- "create", "list", "show", "edit", "update", "scope", "dispatch", "isolate", "capture", "cleanup",
702
+ "create", "list", "show", "edit", "update", "scope", "dispatch", "synthesize", "isolate", "capture", "cleanup",
631
703
  "review", "accept", "reject", "retire"
632
704
  ]
633
705
  }],
@@ -642,7 +714,7 @@ const taskChildren = [
642
714
  { name: "show", summary: "Show one Work Item.", usage: "yui task work show <work>" },
643
715
  {
644
716
  name: "edit",
645
- summary: "Replace mutable definition fields on an execution-free Draft WorkItem.",
717
+ summary: "Edit current requirements without changing frozen Assignments or acceptance.",
646
718
  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]",
647
719
  options: [
648
720
  "--title", "--objective", "--accept", "--clear-acceptance",
@@ -652,9 +724,9 @@ const taskChildren = [
652
724
  },
653
725
  {
654
726
  name: "update",
655
- summary: "Update a work item's state.",
656
- usage: "yui task work update <task>/<work> <todo|running|done|failed> [--summary <text>]",
657
- options: ["--summary"],
727
+ summary: "Record progress or submit a Candidate; acceptance remains explicit.",
728
+ usage: "yui task work update <task>/<work> <todo|running|done|failed> [--summary <text>] [--artifact-ref <artifact-id> ...]",
729
+ options: ["--summary", "--artifact-ref"],
658
730
  argumentValues: {
659
731
  1: ["todo", "running", "done", "failed"]
660
732
  }
@@ -671,6 +743,12 @@ const taskChildren = [
671
743
  usage: "yui task work dispatch <task>/<work> [--input <text>] [--lane-role <role> ...]",
672
744
  options: ["--input", "--lane-role"]
673
745
  },
746
+ {
747
+ name: "synthesize",
748
+ summary: "Dispatch synthesis over explicitly selected original Producer AgentRuns.",
749
+ usage: "yui task work synthesize <task>/<work> --source-run <task>/<run> ...",
750
+ options: ["--source-run"]
751
+ },
674
752
  {
675
753
  name: "isolate",
676
754
  summary: "Create a WorkItem-owned isolated worktree.",
@@ -700,7 +778,7 @@ const taskChildren = [
700
778
  children: [
701
779
  {
702
780
  name: "retry",
703
- summary: "Retry a failed Task-final ReviewRound that has no Reviewer Turn.",
781
+ summary: "Retry a failed Task-final ReviewRound that has no Reviewer AgentRun.",
704
782
  usage: "yui task work review retry <task>/<review-round>"
705
783
  },
706
784
  {
@@ -718,87 +796,93 @@ const taskChildren = [
718
796
  {
719
797
  name: "accept",
720
798
  summary: "Accept a successful, validated, integrated Work Item.",
721
- usage: "yui task work accept <task>/<work> --summary <text>",
722
- options: ["--summary"]
799
+ usage: "yui task work accept <task>/<work> --summary <text> [--candidate <id>]",
800
+ options: ["--summary", "--candidate"]
723
801
  },
724
802
  {
725
803
  name: "reject",
726
- summary: "Reject an awaiting Work Item so it can be retried.",
804
+ summary: "Decline a result or withdraw acceptance while preserving its history.",
727
805
  usage: "yui task work reject <task>/<work> --summary <text>",
728
806
  options: ["--summary"]
729
807
  },
730
808
  {
731
809
  name: "retire",
732
- summary: "Retire a WorkItem and settle its exact Turns.",
810
+ summary: "Retire a WorkItem and settle its exact AgentRuns.",
733
811
  usage: "yui task work retire <work> --summary <text> [--replacement <work>]",
734
812
  options: ["--summary", "--replacement"]
735
813
  }
736
814
  ]
737
815
  },
738
816
  {
739
- name: "turn",
740
- summary: "Inspect and control Task Role Turns.",
817
+ name: "run",
818
+ summary: "Inspect and control Task Role AgentRuns.",
741
819
  sections: [{ id: "manage", title: "Commands", entries: ["list", "show", "retry", "settle", "context", "checkpoint", "retire"] }],
742
820
  children: [
743
- { name: "list", summary: "List all Turns for a Task or one WorkItem.", usage: "yui task turn list <task|task/work>" },
821
+ { name: "list", summary: "List all AgentRuns for a Task or one WorkItem.", usage: "yui task run list <task|task/work>" },
744
822
  {
745
823
  name: "show",
746
- summary: "Show one Turn and its retained audit evidence.",
747
- usage: "yui task turn show <task>/<turn> [--json]"
824
+ summary: "Show one AgentRun and its retained audit evidence.",
825
+ usage: "yui task run show <task>/<run> [--json]"
748
826
  },
749
827
  {
750
828
  name: "retry",
751
- summary: "Retry an exact failed execution or review Turn while preserving its semantic unit.",
752
- usage: "yui task turn retry <task>/<turn>"
829
+ summary: "Retry an exact failed execution or review AgentRun while preserving its semantic unit.",
830
+ usage: "yui task run retry <task>/<run>"
753
831
  },
754
832
  {
755
833
  name: "settle",
756
- summary: "Explicitly settle a failed WorkItem Lane or an obsolete stranded final Review Turn.",
757
- usage: "yui task turn settle <task>/<turn>"
834
+ summary: "Explicitly settle a failed WorkItem Lane or an obsolete stranded final Review AgentRun.",
835
+ usage: "yui task run settle <task>/<run>"
758
836
  },
759
837
  {
760
838
  name: "context",
761
- summary: "Load the exact authorized Turn context.",
762
- usage: "yui task turn context <task>/<turn> [--json]",
839
+ summary: "Load the exact authorized AgentRun context.",
840
+ usage: "yui task run context <task>/<run> [--json]",
763
841
  executable: true,
764
842
  hidden: true,
765
843
  sections: [{ id: "load", title: "Commands", entries: ["expand", "delta"] }],
766
844
  children: [
767
845
  {
768
846
  name: "expand",
769
- summary: "Expand one authorized Turn context reference.",
770
- usage: "yui task turn context expand <task>/<turn> <ref-id> [--store <store>] [--mode full]",
847
+ summary: "Expand one authorized AgentRun context reference.",
848
+ usage: "yui task run context expand <task>/<run> <ref-id> [--store <store>] [--mode full]",
771
849
  options: ["--store", "--mode"]
772
850
  },
773
851
  {
774
852
  name: "delta",
775
- summary: "Load authorized Turn context changes after a cursor.",
776
- usage: "yui task turn context delta <task>/<turn> --after <cursor>",
853
+ summary: "Load authorized AgentRun context changes after a cursor.",
854
+ usage: "yui task run context delta <task>/<run> --after <cursor>",
777
855
  options: ["--after"]
778
856
  }
779
857
  ]
780
858
  },
781
859
  {
782
860
  name: "checkpoint",
783
- summary: "Record durable progress for a long-running Turn.",
784
- usage: "yui task turn checkpoint <turn> (--note <text>|--note-file <path|->)",
861
+ summary: "Record durable progress for a long-running AgentRun.",
862
+ usage: "yui task run checkpoint <run> (--note <text>|--note-file <path|->)",
785
863
  options: ["--note", "--note-file"],
786
864
  fileOptions: ["--note-file"],
787
865
  hidden: true
788
866
  },
789
867
  {
790
868
  name: "retire",
791
- summary: "Retire an incorrect historical Turn without deleting its audit record.",
792
- usage: "yui task turn retire <task>/<turn> --reason <text> [--expected-progress-at <timestamp>] [--agent-id <id>] [--adapter-id <id>] [--native-session-id <id>] [--launch-id <id>]",
793
- options: ["--reason", "--expected-progress-at", "--progress-at", "--agent-id", "--adapter-id", "--native-session-id", "--launch-id"]
869
+ summary: "Retire an incorrect historical AgentRun without deleting its audit record.",
870
+ usage: "yui task run retire <task>/<run> --reason <text> [--expected-progress-at <timestamp>] [--agent-id <id>] [--adapter-id <id>] [--native-session-id <id>]",
871
+ options: ["--reason", "--expected-progress-at", "--progress-at", "--agent-id", "--adapter-id", "--native-session-id"]
794
872
  }
795
873
  ]
796
874
  },
797
875
  {
798
876
  name: "review",
799
877
  summary: "Control Task-final ReviewRounds.",
800
- sections: [{ id: "manage", title: "Commands", entries: ["request", "retry"] }],
878
+ sections: [{ id: "manage", title: "Commands", entries: ["request", "synthesize", "retry"] }],
801
879
  children: [
880
+ {
881
+ name: "synthesize",
882
+ summary: "Dispatch main Review over selected Producer AgentRuns and the frozen candidate.",
883
+ usage: "yui task review synthesize <task>/<review-round> --source-run <task>/<run> ...",
884
+ options: ["--source-run"]
885
+ },
802
886
  {
803
887
  name: "request",
804
888
  summary: "Request a direct or replicated Task-local final ReviewRound.",
@@ -807,7 +891,7 @@ const taskChildren = [
807
891
  },
808
892
  {
809
893
  name: "retry",
810
- summary: "Retry a failed Task-final ReviewRound without a Reviewer Turn.",
894
+ summary: "Retry a failed Task-final ReviewRound without a Reviewer AgentRun.",
811
895
  usage: "yui task review retry <task>/<review-round>"
812
896
  }
813
897
  ]
@@ -826,7 +910,7 @@ const taskChildren = [
826
910
  },
827
911
  {
828
912
  name: "continue",
829
- summary: "Continue a Leader-approved manual resolution.",
913
+ summary: "Consume a finished check Job and finalize this exact Integration, or continue an approved manual resolution.",
830
914
  usage: "yui task integration continue <task>/<integration>"
831
915
  },
832
916
  {
@@ -953,10 +1037,12 @@ const taskChildren = [
953
1037
  {
954
1038
  name: "wake",
955
1039
  summary: "Inspect the durable Leader wake ledger and its delta content.",
956
- sections: [{ id: "manage", title: "Commands", entries: ["list", "show"] }],
1040
+ sections: [{ id: "manage", title: "Commands", entries: ["list", "show", "resolve"] }],
957
1041
  children: [
958
1042
  { name: "list", summary: "List recorded Leader wakes.", usage: "yui task wake list <task>" },
959
- { name: "show", summary: "Show one wake and its delta content.", usage: "yui task wake show <task> <wake>" }
1043
+ { name: "show", summary: "Show one wake and its delta content.", usage: "yui task wake show <task> <wake>" },
1044
+ { name: "resolve", summary: "Release an unknown notification claim after explicit quiescence evidence, without replay.",
1045
+ usage: "yui task wake resolve <task> <wake> --reason <quiescence-evidence>", options: ["--reason"] }
960
1046
  ]
961
1047
  },
962
1048
  {
@@ -1007,9 +1093,9 @@ export const ROOT_COMMAND = buildNode({
1007
1093
  { name: "doctor", summary: "Check Yui dependencies and file state." },
1008
1094
  {
1009
1095
  name: "web",
1010
- summary: "Serve the local Task and Agent control room.",
1011
- usage: "yui web [--host <loopback>] [--port <port>]",
1012
- options: ["--host", "--port"]
1096
+ summary: "Serve the control room using the running Controller's capability Host.",
1097
+ usage: "yui web [--host <loopback>] [--port <port>] | --status | --stop",
1098
+ options: ["--host", "--port", "--status", "--stop"]
1013
1099
  },
1014
1100
  {
1015
1101
  name: "controller",
@@ -1039,7 +1125,7 @@ export const ROOT_COMMAND = buildNode({
1039
1125
  },
1040
1126
  {
1041
1127
  name: "live-identity",
1042
- summary: "Read the authenticated live Controller runtime generation identity.",
1128
+ summary: "Read the authenticated live Controller runtime identity.",
1043
1129
  hidden: true
1044
1130
  },
1045
1131
  { name: "stop", summary: "Stop the Controller." },
@@ -1057,7 +1143,7 @@ export const ROOT_COMMAND = buildNode({
1057
1143
  children: [
1058
1144
  {
1059
1145
  name: "audit",
1060
- summary: "Report Turns, wakes, Sessions, Reviews, Integrations, and telemetry volume.",
1146
+ summary: "Report AgentRuns, wakes, Sessions, Reviews, Integrations, and telemetry volume.",
1061
1147
  usage: "yui execution audit [--task <id>] [--since <iso>] [--until <iso>]",
1062
1148
  options: ["--task", "--since", "--until"]
1063
1149
  }
@@ -1152,7 +1238,7 @@ export const ROOT_COMMAND = buildNode({
1152
1238
  },
1153
1239
  {
1154
1240
  name: "role",
1155
- summary: "Manage reusable global Roles and desired Agent launch configuration for the next Host activation.",
1241
+ summary: "Manage reusable global Roles and desired Agent launch configuration for the next Host process.",
1156
1242
  examples: ["yui config role list", "yui config role show operator"],
1157
1243
  sections: [
1158
1244
  { id: "inspect", title: "Inspect", entries: ["list", "show"] },
@@ -1201,9 +1287,12 @@ export const ROOT_COMMAND = buildNode({
1201
1287
  },
1202
1288
  {
1203
1289
  name: "submit",
1204
- summary: "Submit work through the Operator.",
1205
- usage: "yui operator submit (<body>|--body-file <path|->) [--task <id>]",
1206
- options: ["--task", "--body-file"],
1290
+ 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.",
1291
+ usage: "yui operator submit (<body>|--body-file <path|->) [--task <id>] [--intent record|discuss|develop] [--request-id <key>]",
1292
+ options: ["--task", "--body-file", "--intent", "--request-id"],
1293
+ optionValues: {
1294
+ "--intent": ["record", "discuss", "develop"]
1295
+ },
1207
1296
  fileOptions: ["--body-file"]
1208
1297
  }
1209
1298
  ]
@@ -1378,10 +1467,10 @@ export const ROOT_COMMAND = buildNode({
1378
1467
  },
1379
1468
  {
1380
1469
  name: "task",
1381
- summary: "Manage Tasks, WorkItems, Turns, and integration.",
1470
+ summary: "Manage Tasks, WorkItems, AgentRuns, and integration.",
1382
1471
  sections: [
1383
- { id: "lifecycle", title: "Lifecycle", entries: ["create", "project", "base", "update", "activate", "execution", "complete", "reopen", "retire", "list", "show", "context", "next-action", "remote-delivery", "archive", "replace", "reconcile", "upstream"] },
1384
- { id: "collaboration", title: "Collaboration", entries: ["message", "input", "grant", "workflow", "publication", "work", "turn", "review", "integration", "role", "overlap", "change-set"] },
1472
+ { id: "lifecycle", title: "Lifecycle", entries: ["create", "project", "base", "update", "activate", "activation", "execution", "complete", "cancel", "reopen", "retire", "list", "show", "context", "next-action", "remote-delivery", "archive", "replace", "reconcile", "upstream", "artifact"] },
1473
+ { id: "collaboration", title: "Collaboration", entries: ["message", "input", "grant", "workflow", "publication", "work", "run", "review", "integration", "role", "overlap", "change-set"] },
1385
1474
  { id: "knowledge", title: "Task Knowledge", entries: ["brief", "decision", "milestone", "event", "continuation", "wake"] }
1386
1475
  ],
1387
1476
  children: taskChildren
@@ -1389,9 +1478,11 @@ export const ROOT_COMMAND = buildNode({
1389
1478
  {
1390
1479
  name: "capability",
1391
1480
  summary: "Discover and call authorized capabilities through the Controller.",
1392
- sections: [{ id: "entry", title: "Commands", entries: ["search", "describe", "call"] }],
1481
+ sections: [{ id: "entry", title: "Commands", entries: ["search", "commands", "panels", "describe", "call"] }],
1393
1482
  children: [
1394
1483
  { name: "search", summary: "Search the current authorized directory.", usage: "yui capability search [query] --task <id>" },
1484
+ { name: "commands", summary: "List current command names, help and capability mappings; invoke via capability call.", usage: "yui capability commands --task <id>" },
1485
+ { name: "panels", summary: "List authorized text/link or query-only JSON panel descriptors.", usage: "yui capability panels --task <id>" },
1395
1486
  { name: "describe", summary: "Describe one contract or report Provider ambiguity.", usage: "yui capability describe <name> --task <id> [--provider <id>] [--version <version>]" },
1396
1487
  { 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>]" }
1397
1488
  ]
@@ -1422,8 +1513,8 @@ export const ROOT_COMMAND = buildNode({
1422
1513
  sections: [{ id: "manage", title: "Commands", entries: ["status", "prune", "read"] }],
1423
1514
  children: [
1424
1515
  { name: "status", summary: "Show sidecar health, row counts, and retention settings.", usage: "yui telemetry status" },
1425
- { name: "prune", summary: "Apply terminal retention and active-Turn caps.", usage: "yui telemetry prune [--task <id>] [--keep <n>] [--dry-run]" },
1426
- { name: "read", summary: "Page through retained progress rows or read a Turn aggregate.", usage: "yui telemetry read --task <id> [--turn <id>] [--aggregate] [--limit <n>] [--offset <n>]" }
1516
+ { name: "prune", summary: "Apply terminal retention and active-AgentRun caps.", usage: "yui telemetry prune [--task <id>] [--keep <n>] [--dry-run]" },
1517
+ { 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>]" }
1427
1518
  ]
1428
1519
  },
1429
1520
  {
@@ -1439,7 +1530,7 @@ export const ROOT_COMMAND = buildNode({
1439
1530
  {
1440
1531
  name: "agent-host",
1441
1532
  summary: "Run the persistent structured Provider host.",
1442
- usage: "yui internal agent-host <launch-id> <ticket>"
1533
+ usage: "yui internal agent-host <ticket>"
1443
1534
  },
1444
1535
  {
1445
1536
  name: "session-notify",
@@ -1,4 +1,4 @@
1
- import { orderRoleOptions } from "./roleOptionCatalog.js";
1
+ import { orderRoleOptions } from "./roleOptionOrder.js";
2
2
  export async function getSelectionCandidates(selector, ports, args) {
3
3
  switch (selector.provider) {
4
4
  case "tasks":
@@ -70,11 +70,11 @@ export async function getSelectionCandidates(selector, ports, args) {
70
70
  }
71
71
  case "work-items":
72
72
  return entities("work item", "Select work item", qualifyTaskRecords(await listAllWorkItems(ports)), ["qualifiedId", "title", "status"]);
73
- case "turns": {
73
+ case "runs": {
74
74
  const workItemId = dependencyValue(selector, args);
75
- const turns = await listAllByTask(ports, "task.turn.list", "turns");
76
- return entities("turn", workItemId === undefined ? "Select Turn" : `Select Turn: ${workItemId}`, qualifyTaskRecords(turns.filter((turn) => workItemId === undefined
77
- || matchesTaskRecordReference(turn, "workItemId", workItemId))), ["qualifiedId", "roleName", "status", "summary"]);
75
+ const runs = await listAllByTask(ports, "task.run.list", "runs");
76
+ return entities("run", workItemId === undefined ? "Select AgentRun" : `Select AgentRun: ${workItemId}`, qualifyTaskRecords(runs.filter((run) => workItemId === undefined
77
+ || matchesTaskRecordReference(run, "workItemId", workItemId))), ["qualifiedId", "roleName", "status", "summary"]);
78
78
  }
79
79
  case "integration-attempts":
80
80
  return entities("Integration Attempt", "Select Integration Attempt", qualifyTaskRecords((await listAllByTask(ports, "task.integration.list", "integrations")).filter((attempt) => selector.statuses === undefined
@@ -176,11 +176,41 @@ export const INTERACTION_POLICIES = Object.freeze([
176
176
  }
177
177
  },
178
178
  taskTarget("activate", 2, ["draft"]),
179
+ {
180
+ commandPath: ["task", "activation", "request"],
181
+ selectors: [{
182
+ argumentIndex: 3,
183
+ entity: "task",
184
+ provider: "tasks",
185
+ actionTarget: true,
186
+ statuses: ["draft"]
187
+ }],
188
+ trailingOptions: { "--request-id": "value", "--environment": "value" }
189
+ },
190
+ {
191
+ commandPath: ["task", "activation", "cancel"],
192
+ selectors: [{
193
+ argumentIndex: 3,
194
+ entity: "task",
195
+ provider: "tasks",
196
+ actionTarget: true,
197
+ statuses: ["draft"]
198
+ }],
199
+ trailingOptions: { "--request-id": "value", "--reason": "value" }
200
+ },
201
+ {
202
+ commandPath: ["task", "activation", "show"],
203
+ selectors: [{ argumentIndex: 3, entity: "task", provider: "tasks", actionTarget: true }]
204
+ },
179
205
  {
180
206
  ...taskTarget("complete", 2, ["active"]),
181
207
  trailingOptions: { "--summary": "value" }
182
208
  },
183
- taskTarget("reopen", 2, ["completed"]),
209
+ taskTarget("reopen", 2, ["completed", "cancelled"]),
210
+ {
211
+ ...taskTarget("cancel", 2, ["draft", "active"]),
212
+ trailingOptions: { "--summary": "value", "--summary-file": "value" }
213
+ },
184
214
  {
185
215
  ...taskTarget("retire", 2, ["draft", "active"]),
186
216
  trailingOptions: {
@@ -200,7 +230,7 @@ export const INTERACTION_POLICIES = Object.freeze([
200
230
  trailingOptions: { "--json": "flag" }
201
231
  },
202
232
  {
203
- ...taskTarget("archive", 2, ["completed", "retired"]),
233
+ ...taskTarget("archive", 2, ["completed", "cancelled"]),
204
234
  trailingOptions: { "--integrated": "flag", "--abandon": "flag", "--force": "flag" },
205
235
  confirmation: { action: "Archive task", targetArgumentIndex: 2 }
206
236
  },
@@ -436,7 +466,7 @@ export const INTERACTION_POLICIES = Object.freeze([
436
466
  }
437
467
  }
438
468
  : command === "update"
439
- ? { trailingOptions: { "--summary": "value" } }
469
+ ? { trailingOptions: { "--summary": "value", "--artifact-ref": "value" } }
440
470
  : command === "dispatch"
441
471
  ? { trailingOptions: { "--input": "value" } }
442
472
  : command === "cleanup"
@@ -471,15 +501,15 @@ export const INTERACTION_POLICIES = Object.freeze([
471
501
  confirmation: { action: "Retire Work Item", targetArgumentIndex: 3 }
472
502
  },
473
503
  {
474
- commandPath: ["task", "turn", "list"],
504
+ commandPath: ["task", "run", "list"],
475
505
  selectors: [{ argumentIndex: 3, entity: "work-item", provider: "work-items", actionTarget: true }],
476
506
  },
477
507
  {
478
- commandPath: ["task", "turn", "retry"],
508
+ commandPath: ["task", "run", "retry"],
479
509
  selectors: [{
480
510
  argumentIndex: 3,
481
- entity: "turn",
482
- provider: "turns",
511
+ entity: "run",
512
+ provider: "runs",
483
513
  actionTarget: true
484
514
  }]
485
515
  },
@@ -573,7 +603,7 @@ export const INTERACTION_POLICIES = Object.freeze([
573
603
  ].map(([group, command]) => {
574
604
  const trailingOptions = {};
575
605
  if (group === "brief" && command === "update") {
576
- Object.assign(trailingOptions, { "--objective": "value", "--boundary": "value", "--focus": "value", "--leader-summary": "value" });
606
+ Object.assign(trailingOptions, { "--objective": "value", "--boundary": "value", "--approach": "value", "--focus": "value", "--leader-summary": "value" });
577
607
  }
578
608
  else if (group === "decision" && command === "record") {
579
609
  Object.assign(trailingOptions, { "--title": "value", "--rationale": "value" });