@zq-silk/yui 0.13.10 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ARCHITECTURE.md +69 -428
- package/README.md +108 -298
- package/dist/agent/managedRuntimeEnvironment.js +2 -2
- package/dist/cli/commandCatalog.js +39 -77
- package/dist/cli/interactionCandidates.js +4 -4
- package/dist/cli/interactionPolicy.js +7 -10
- package/dist/cli/invocationRouter.js +1 -1
- package/dist/cli/updateCommand.js +6 -27
- package/dist/cli/updateOrchestrator.js +63 -484
- package/dist/cli/updatePorts.js +15 -333
- package/dist/cli/upgradeCommand.js +8 -65
- package/dist/cli.js +57 -242
- package/dist/commands/configCommands.js +11 -62
- package/dist/commands/executionAuditCommands.js +23 -23
- package/dist/commands/globalRoleCommands.js +2 -7
- package/dist/commands/jobCommands.js +1 -4
- package/dist/commands/projectCommands.js +5 -5
- package/dist/commands/releaseCommands.js +3 -10
- package/dist/commands/resourcesCommands.js +2 -2
- package/dist/commands/sessionCommands.js +2 -2
- package/dist/commands/taskActor.js +31 -39
- package/dist/commands/taskChangeSetCommands.js +5 -12
- package/dist/commands/taskCommands.js +464 -1249
- package/dist/commands/taskContextCommand.js +35 -36
- package/dist/commands/taskExecutionCommands.js +33 -46
- package/dist/commands/taskInputCommands.js +20 -42
- package/dist/commands/taskNextActionCommand.js +9 -9
- package/dist/commands/taskOverviewCommand.js +56 -95
- package/dist/commands/taskRoleRuntimeStatus.js +77 -107
- package/dist/commands/taskUpstreamCommands.js +3 -3
- package/dist/commands/taskWorkspaceCommands.js +7 -79
- package/dist/commands/telemetryCommands.js +32 -124
- package/dist/commands/workflowCommands.js +3 -3
- package/dist/completion/fileCompletionManager.js +1 -1
- package/dist/config/configCatalog.js +4 -6
- package/dist/config/yuiConfig.js +6 -43
- package/dist/context/dispatchContext.js +14 -30
- package/dist/context/roleSessionContext.js +2 -2
- package/dist/context/sessionBootstrapManifest.js +2 -2
- package/dist/context/{runContextPack.js → turnContextPack.js} +58 -73
- package/dist/context/turnInputContract.js +204 -0
- package/dist/context/wakeNotification.js +2 -2
- package/dist/controller/agentRuntimeObserver.js +18 -18
- package/dist/controller/clientRuntime.js +13 -20
- package/dist/controller/controller.js +89 -116
- package/dist/controller/fileSchedulerStoreAdapter.js +511 -742
- package/dist/controller/jobControl.js +17 -17
- package/dist/controller/resourceInventory.js +6 -6
- package/dist/controller/resourceInventoryLinux.js +38 -59
- package/dist/controller/resourceInventoryRpc.js +3 -3
- package/dist/controller/resourceInventoryWorker.js +1 -1
- package/dist/controller/runtime.js +46 -53
- package/dist/controller/runtimeEventInbox.js +23 -31
- package/dist/controller/runtimeEventProcessor.js +15 -15
- package/dist/controller/{runtimeHookRunFence.js → runtimeHookTurnFence.js} +87 -81
- package/dist/controller/runtimeLaunchCoordinator.js +3 -3
- package/dist/controller/runtimeObservationHook.js +11 -8
- package/dist/controller/sessionNotify.js +11 -11
- package/dist/controller/structuredProviderObservation.js +89 -16
- package/dist/coordination/workMailbox.js +309 -579
- package/dist/coordination/workMailboxQueue.js +5 -6
- package/dist/core/controllerClient.js +1 -91
- package/dist/core/controllerServer.js +3 -6
- package/dist/doctor/doctor.js +51 -314
- package/dist/execution/candidateConvergence.js +3 -3
- package/dist/execution/executionGroup.js +32 -33
- package/dist/execution/executionHealth.js +36 -38
- package/dist/execution/resourceBroker.js +12 -12
- package/dist/executor/agentExecutor.js +30 -265
- package/dist/executor/effectiveLaunch.js +9 -19
- package/dist/executor/executorRegistry.js +43 -17
- package/dist/executor/fileRoleLaunchPlanner.js +56 -56
- package/dist/executor/launchPlan.js +3 -3
- package/dist/executor/workspacePreflightClassification.js +16 -16
- package/dist/grant/capabilityGrant.js +20 -25
- package/dist/input/inputRequest.js +12 -12
- package/dist/integration/changeSet.js +9 -13
- package/dist/integration/changeSetManifest.js +1 -1
- package/dist/integration/gitIntegrationService.js +2 -2
- package/dist/integration/integrationQueueService.js +5 -21
- package/dist/integration/overlapDiagnostics.js +2 -2
- package/dist/interaction/operatorPresentation.js +1 -1
- package/dist/job/jobRunner.js +1 -1
- package/dist/lifecycle/canonicalLifecycleEvent.js +25 -25
- package/dist/lifecycle/{exactRunTerminalization.js → exactTurnTerminalization.js} +116 -232
- package/dist/message/message.js +6 -6
- package/dist/observability/executionAudit.js +74 -86
- package/dist/observability/faultClassification.js +7 -24
- package/dist/observability/orchestrationMetrics.js +5 -5
- package/dist/observability/runtimeIdentity.js +34 -101
- package/dist/profile/agentProfile.js +1 -1
- package/dist/release/cliHomeReleaseFence.js +3 -3
- package/dist/release/releaseWorkflowEngine.js +6 -10
- package/dist/release/releaseWorkflowPorts.js +2 -2
- package/dist/release/workflowFileLock.js +1 -1
- package/dist/repository/checkoutSwap.js +1 -1
- package/dist/repository/gitWorkspace.js +0 -13
- package/dist/repository/project.js +1 -1
- package/dist/repository/projectMaintenanceLock.js +1 -2
- package/dist/repository/taskBaseFreshness.js +13 -13
- package/dist/repository/taskWorkspaceCoordinator.js +21 -25
- package/dist/repository/taskWorkspaceIdentity.js +8 -21
- package/dist/repository/taskWorkspacePreparer.js +63 -620
- package/dist/resources/autoResourceGc.js +3 -3
- package/dist/resources/liveReferences.js +1 -1
- package/dist/resources/resourceGc.js +1 -1
- package/dist/resources/sqliteResourceRegistry.js +1 -1
- package/dist/review/reviewDecision.js +7 -7
- package/dist/review/reviewFindingLedger.js +1 -1
- package/dist/review/reviewOutcomeClassifier.js +35 -50
- package/dist/review/reviewRound.js +14 -25
- package/dist/review/reviewerAvailability.js +4 -4
- package/dist/review/taskFinalReviewContractResolution.js +41 -0
- package/dist/role/role.js +6 -3
- package/dist/runtime/agentDriver.js +4 -0
- package/dist/runtime/agentHost.js +151 -36
- package/dist/runtime/builtinAgentDrivers.js +79 -2
- package/dist/runtime/codexAppServerRuntime.js +122 -0
- package/dist/runtime/continuationManager.js +3 -5
- package/dist/runtime/exactControlPlane.js +17 -42
- package/dist/runtime/firstProgressAdvisory.js +1 -1
- package/dist/runtime/index.js +2 -2
- package/dist/runtime/launchDiagnostics.js +2 -2
- package/dist/runtime/lifecycleReservation.js +4 -4
- package/dist/runtime/processExitObservation.js +1 -1
- package/dist/runtime/processExitOutbox.js +0 -32
- package/dist/runtime/promptEnvelope.js +9 -9
- package/dist/runtime/providerContinuation.js +2 -2
- package/dist/runtime/providerContinuationReconciliationService.js +2 -2
- package/dist/runtime/providerRuntimeIdentity.js +76 -24
- package/dist/runtime/recentTurnIds.js +38 -0
- package/dist/runtime/runtimeContinuationProjection.js +2 -2
- package/dist/runtime/runtimeHealthPolicy.js +1 -1
- package/dist/runtime/runtimeObservation.js +58 -21
- package/dist/runtime/runtimeProjection.js +19 -27
- package/dist/runtime/sessionLaunchRequest.js +2 -2
- package/dist/runtime/structuredProviderHost.js +177 -12
- package/dist/runtime/tmuxAdapters.js +46 -11
- package/dist/scheduler/activeRoleTurnDelivery.js +245 -0
- package/dist/scheduler/leaderWakeupProcessor.js +147 -445
- package/dist/scheduler/operatorEvent.js +4 -6
- package/dist/scheduler/resourceQueueProjection.js +71 -0
- package/dist/scheduler/{roleRunLiveness.js → roleTurnLiveness.js} +24 -28
- package/dist/scheduler/{roleRunStall.js → roleTurnStall.js} +162 -247
- package/dist/scheduler/taskExecutionProjection.js +99 -99
- package/dist/scheduler/taskObservabilityProjection.js +10 -10
- package/dist/scheduler/taskWake.js +4 -4
- package/dist/scheduler/wakeReason.js +6 -10
- package/dist/scheduler/wakeupQueue.js +0 -9
- package/dist/setup/setupCommand.js +2 -2
- package/dist/storage/currentTaskStore.js +46 -0
- package/dist/storage/persistenceWorker.js +1 -1
- package/dist/storage/sqliteSchema.js +81 -485
- package/dist/storage/sqliteStore.js +206 -365
- package/dist/storage/storageSchema.js +1 -15
- package/dist/storage/storageVersions.js +8 -9
- package/dist/storage/storeRpc.js +10 -34
- package/dist/storage/taskStore.js +63 -3415
- package/dist/storage/upgrade/recordVersions.js +55 -149
- package/dist/storage/upgrade/upgradeOrchestrator.js +89 -1752
- package/dist/task/completionReadiness.js +5 -5
- package/dist/task/deliveryGuard.js +10 -10
- package/dist/task/nextAction.js +74 -77
- package/dist/task/task.js +2 -4
- package/dist/task/taskRecordReference.js +3 -3
- package/dist/task/taskRecordRetirement.js +1 -1
- package/dist/telemetry/sqliteTelemetryStore.js +53 -53
- package/dist/telemetry/telemetryConfig.js +14 -14
- package/dist/telemetry/telemetryWiring.js +8 -14
- package/dist/turn/turn.js +356 -0
- package/dist/{run/runIdentity.js → turn/turnIdentity.js} +4 -4
- package/dist/verification/gateArtifactStore.js +2 -2
- package/dist/web/assets/client/app.js +1 -1
- package/dist/web/assets/client/components.js +29 -54
- package/dist/web/assets/client/i18n.js +17 -37
- package/dist/web/assets/client/view.js +37 -37
- package/dist/web/assets/shell.js +1 -1
- package/dist/web/assets/styles/cards.js +5 -5
- package/dist/web/assets/styles/widgets.js +1 -2
- package/dist/web/webSnapshot.js +65 -60
- package/dist/workItem/workItem.js +11 -11
- package/dist/workspace/workItemChangeSetManager.js +1 -1
- package/docs/task-local-identity.md +5 -5
- package/i18n/README.zh-CN.md +41 -54
- package/package.json +1 -1
- package/skills/yui-leader/SKILL.md +85 -83
- package/skills/yui-operator/SKILL.md +16 -16
- package/skills/yui-reviewer/SKILL.md +10 -10
- package/skills/yui-runtime/SKILL.md +17 -18
- package/skills/yui-worker/SKILL.md +16 -18
- package/dist/context/runContextContract.js +0 -162
- package/dist/executor/turnCompletion.js +0 -126
- package/dist/review/taskFinalReviewContractEvent.js +0 -1
- package/dist/review/taskFinalReviewContractRebind.js +0 -367
- package/dist/run/agentRun.js +0 -356
- package/dist/run/rejectedYieldAttempt.js +0 -221
- package/dist/run/runControlRequest.js +0 -50
- package/dist/run/yieldReceipt.js +0 -65
- package/dist/runtime/turnCompletion.js +0 -3
- package/dist/scheduler/actionability.js +0 -323
- package/dist/scheduler/activeRoleRunDelivery.js +0 -868
- package/dist/scheduler/activeTaskProgress.js +0 -126
- package/dist/storage/compatibleTaskStore.js +0 -248
- package/dist/storage/migration/baseline.js +0 -78
- package/dist/storage/migration/classifier.js +0 -51
- package/dist/storage/migration/compatibleCodec.js +0 -53
- package/dist/storage/migration/engine.js +0 -147
- package/dist/storage/migration/index.js +0 -33
- package/dist/storage/migration/planner.js +0 -154
- package/dist/storage/migration/productionRegistry.js +0 -3931
- package/dist/storage/migration/registry.js +0 -169
- package/dist/storage/migration/report.js +0 -54
- package/dist/storage/migration/types.js +0 -31
- package/dist/storage/upgrade/homeClassification.js +0 -353
- package/dist/storage/upgrade/homeMigrationTarget.js +0 -595
- package/dist/storage/upgrade/migrationReceipt.js +0 -67
- package/dist/storage/upgrade/offlineUpgradeInventory.js +0 -453
- package/dist/storage/upgrade/productionMigrationRegistry.js +0 -6
- package/dist/storage/upgrade/pseudoLayoutRepair.js +0 -241
- package/dist/storage/upgrade/recordVersionScan.js +0 -176
- package/dist/storage/upgrade/sqliteFileSet.js +0 -50
- package/dist/storage/upgrade/sqliteMigrationTarget.js +0 -375
- package/dist/storage/upgrade/sqliteRecordMigrationTarget.js +0 -305
- package/dist/storage/upgrade/sqliteStateMigration.js +0 -926
- package/dist/storage/upgrade/switchProgress.js +0 -80
- package/dist/storage/upgrade/upgradeReceipt.js +0 -161
- package/dist/storage/upgradeCoordination.js +0 -187
- package/dist/storage/upgradeFence.js +0 -366
- package/dist/telemetry/telemetryCompaction.js +0 -252
|
@@ -16,7 +16,7 @@ export const YUI_MANAGED_RUNTIME_ENVIRONMENT_NAMES = Object.freeze([
|
|
|
16
16
|
"YUI_ADAPTER_ID",
|
|
17
17
|
"YUI_DRIVER_ID",
|
|
18
18
|
"YUI_WORKSPACE",
|
|
19
|
-
"
|
|
19
|
+
"YUI_TURN_ID",
|
|
20
20
|
"YUI_LAUNCH_ID",
|
|
21
21
|
"YUI_NATIVE_SESSION_ROOT",
|
|
22
22
|
"YUI_NATIVE_SESSION_ID",
|
|
@@ -30,7 +30,7 @@ export const YUI_MANAGED_RUNTIME_ENVIRONMENT_NAMES = Object.freeze([
|
|
|
30
30
|
"YUI_WRITABLE_PROJECT_IDS",
|
|
31
31
|
"YUI_CONTEXT_PROJECT_IDS",
|
|
32
32
|
"YUI_WORKSPACE_PROJECTS",
|
|
33
|
-
"
|
|
33
|
+
"YUI_LEADER_ACTION_TURN_ID",
|
|
34
34
|
"YUI_LEADER_ACTION_RECEIPT_ID",
|
|
35
35
|
"YUI_JOB_CALLER_KEY"
|
|
36
36
|
]);
|
|
@@ -353,12 +353,6 @@ const taskChildren = [
|
|
|
353
353
|
options: ["--integrated", "--abandon"]
|
|
354
354
|
},
|
|
355
355
|
{ name: "reconcile", summary: "Run one immediate Controller reconciliation.", usage: "yui task reconcile <id>" },
|
|
356
|
-
{
|
|
357
|
-
name: "rebuild",
|
|
358
|
-
summary: "Rebuild a legacy Task workspace under its canonical identity.",
|
|
359
|
-
usage: "yui task rebuild <task> [--latest]",
|
|
360
|
-
options: ["--latest"]
|
|
361
|
-
},
|
|
362
356
|
{
|
|
363
357
|
name: "upstream",
|
|
364
358
|
summary: "Integrate upstream changes into an Active Task workspace.",
|
|
@@ -372,23 +366,6 @@ const taskChildren = [
|
|
|
372
366
|
}
|
|
373
367
|
]
|
|
374
368
|
},
|
|
375
|
-
{
|
|
376
|
-
name: "history",
|
|
377
|
-
summary: "Inspect and archive legacy Task refs in the Home repository.",
|
|
378
|
-
sections: [{ id: "manage", title: "Commands", entries: ["list", "archive"] }],
|
|
379
|
-
children: [
|
|
380
|
-
{
|
|
381
|
-
name: "list",
|
|
382
|
-
summary: "List legacy Task refs and their live owners.",
|
|
383
|
-
usage: "yui task history list [task]"
|
|
384
|
-
},
|
|
385
|
-
{
|
|
386
|
-
name: "archive",
|
|
387
|
-
summary: "Archive legacy Task refs without a live owner.",
|
|
388
|
-
usage: "yui task history archive [task]"
|
|
389
|
-
}
|
|
390
|
-
]
|
|
391
|
-
},
|
|
392
369
|
{
|
|
393
370
|
name: "replace",
|
|
394
371
|
summary: "Create a draft successor for a terminal Task.",
|
|
@@ -403,11 +380,10 @@ const taskChildren = [
|
|
|
403
380
|
{
|
|
404
381
|
name: "send",
|
|
405
382
|
summary: "Send a Task message.",
|
|
406
|
-
usage: "yui task message send <id> (<body>|--body-file <path|->) [--wake-policy leader|none]
|
|
407
|
-
options: ["--body-file", "--wake-policy"
|
|
383
|
+
usage: "yui task message send <id> (<body>|--body-file <path|->) [--wake-policy leader|none]",
|
|
384
|
+
options: ["--body-file", "--wake-policy"],
|
|
408
385
|
optionValues: {
|
|
409
|
-
"--wake-policy": ["leader", "none"]
|
|
410
|
-
"--delivery-mode": ["followup", "steer"]
|
|
386
|
+
"--wake-policy": ["leader", "none"]
|
|
411
387
|
},
|
|
412
388
|
fileOptions: ["--body-file"]
|
|
413
389
|
},
|
|
@@ -432,8 +408,8 @@ const taskChildren = [
|
|
|
432
408
|
children: [
|
|
433
409
|
{
|
|
434
410
|
name: "request",
|
|
435
|
-
summary: "Pause the active Leader
|
|
436
|
-
usage: "yui task input request <task> --question <text> [--choice <key=label> ...] [--blocks <work-item:id|
|
|
411
|
+
summary: "Pause the active Leader Turn and request user input.",
|
|
412
|
+
usage: "yui task input request <task> --question <text> [--choice <key=label> ...] [--blocks <work-item:id|turn:id> ...] [--recommend <key> --timeout-seconds <seconds>]",
|
|
437
413
|
options: ["--question", "--choice", "--blocks", "--recommend", "--timeout-seconds"]
|
|
438
414
|
},
|
|
439
415
|
{
|
|
@@ -708,7 +684,7 @@ const taskChildren = [
|
|
|
708
684
|
children: [
|
|
709
685
|
{
|
|
710
686
|
name: "retry",
|
|
711
|
-
summary: "Retry a failed Task-final ReviewRound that has no Reviewer
|
|
687
|
+
summary: "Retry a failed Task-final ReviewRound that has no Reviewer Turn.",
|
|
712
688
|
usage: "yui task work review retry <task>/<review-round>"
|
|
713
689
|
},
|
|
714
690
|
{
|
|
@@ -737,74 +713,67 @@ const taskChildren = [
|
|
|
737
713
|
},
|
|
738
714
|
{
|
|
739
715
|
name: "retire",
|
|
740
|
-
summary: "Retire a WorkItem and settle its exact
|
|
716
|
+
summary: "Retire a WorkItem and settle its exact Turns.",
|
|
741
717
|
usage: "yui task work retire <work> --summary <text> [--replacement <work>]",
|
|
742
718
|
options: ["--summary", "--replacement"]
|
|
743
719
|
}
|
|
744
720
|
]
|
|
745
721
|
},
|
|
746
722
|
{
|
|
747
|
-
name: "
|
|
748
|
-
summary: "Inspect and control Task Role
|
|
749
|
-
sections: [{ id: "manage", title: "Commands", entries: ["list", "show", "retry", "settle", "
|
|
723
|
+
name: "turn",
|
|
724
|
+
summary: "Inspect and control Task Role Turns.",
|
|
725
|
+
sections: [{ id: "manage", title: "Commands", entries: ["list", "show", "retry", "settle", "context", "checkpoint", "retire"] }],
|
|
750
726
|
children: [
|
|
751
|
-
{ name: "list", summary: "List
|
|
727
|
+
{ name: "list", summary: "List all Turns for a Task or one WorkItem.", usage: "yui task turn list <task|task/work>" },
|
|
752
728
|
{
|
|
753
729
|
name: "show",
|
|
754
|
-
summary: "Show one
|
|
755
|
-
usage: "yui task
|
|
730
|
+
summary: "Show one Turn and its retained audit evidence.",
|
|
731
|
+
usage: "yui task turn show <task>/<turn> [--json]"
|
|
756
732
|
},
|
|
757
733
|
{
|
|
758
734
|
name: "retry",
|
|
759
|
-
summary: "Retry a failed execution
|
|
760
|
-
usage: "yui task
|
|
735
|
+
summary: "Retry a failed execution Turn or request a fresh Round for an exact failed final Review Turn.",
|
|
736
|
+
usage: "yui task turn retry <task>/<turn>"
|
|
761
737
|
},
|
|
762
738
|
{
|
|
763
739
|
name: "settle",
|
|
764
|
-
summary: "Close an obsolete stranded final Review
|
|
765
|
-
usage: "yui task
|
|
766
|
-
},
|
|
767
|
-
{
|
|
768
|
-
name: "yield",
|
|
769
|
-
summary: "Complete an active Run and wake the Leader.",
|
|
770
|
-
usage: "yui task run yield <task>/<run> (--summary <text>|--summary-file <path|->)",
|
|
771
|
-
options: ["--summary", "--summary-file"],
|
|
772
|
-
fileOptions: ["--summary-file"]
|
|
740
|
+
summary: "Close an obsolete stranded final Review Turn without requesting a retry Round.",
|
|
741
|
+
usage: "yui task turn settle <task>/<turn>"
|
|
773
742
|
},
|
|
774
743
|
{
|
|
775
744
|
name: "context",
|
|
776
|
-
summary: "Load the exact authorized
|
|
777
|
-
usage: "yui task
|
|
745
|
+
summary: "Load the exact authorized Turn context.",
|
|
746
|
+
usage: "yui task turn context <task>/<turn> [--json]",
|
|
778
747
|
executable: true,
|
|
779
748
|
hidden: true,
|
|
780
749
|
sections: [{ id: "load", title: "Commands", entries: ["expand", "delta"] }],
|
|
781
750
|
children: [
|
|
782
751
|
{
|
|
783
752
|
name: "expand",
|
|
784
|
-
summary: "Expand one authorized
|
|
785
|
-
usage: "yui task
|
|
753
|
+
summary: "Expand one authorized Turn context reference.",
|
|
754
|
+
usage: "yui task turn context expand <task>/<turn> <ref-id> [--store <store>] [--mode full]",
|
|
786
755
|
options: ["--store", "--mode"]
|
|
787
756
|
},
|
|
788
757
|
{
|
|
789
758
|
name: "delta",
|
|
790
|
-
summary: "Load authorized
|
|
791
|
-
usage: "yui task
|
|
759
|
+
summary: "Load authorized Turn context changes after a cursor.",
|
|
760
|
+
usage: "yui task turn context delta <task>/<turn> --after <cursor>",
|
|
792
761
|
options: ["--after"]
|
|
793
762
|
}
|
|
794
763
|
]
|
|
795
764
|
},
|
|
796
765
|
{
|
|
797
766
|
name: "checkpoint",
|
|
798
|
-
summary: "Record durable progress for a long-running
|
|
799
|
-
usage: "yui task
|
|
767
|
+
summary: "Record durable progress for a long-running Turn.",
|
|
768
|
+
usage: "yui task turn checkpoint <turn> (--note <text>|--note-file <path|->)",
|
|
800
769
|
options: ["--note", "--note-file"],
|
|
801
770
|
fileOptions: ["--note-file"],
|
|
802
771
|
hidden: true
|
|
803
772
|
},
|
|
804
773
|
{
|
|
805
774
|
name: "retire",
|
|
806
|
-
summary: "Retire an incorrect historical
|
|
807
|
-
usage: "yui task
|
|
775
|
+
summary: "Retire an incorrect historical Turn without deleting its audit record.",
|
|
776
|
+
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>]",
|
|
808
777
|
options: ["--reason", "--expected-progress-at", "--progress-at", "--agent-id", "--adapter-id", "--native-session-id", "--launch-id"]
|
|
809
778
|
}
|
|
810
779
|
]
|
|
@@ -812,7 +781,7 @@ const taskChildren = [
|
|
|
812
781
|
{
|
|
813
782
|
name: "review",
|
|
814
783
|
summary: "Control Task-final ReviewRounds.",
|
|
815
|
-
sections: [{ id: "manage", title: "Commands", entries: ["request", "
|
|
784
|
+
sections: [{ id: "manage", title: "Commands", entries: ["request", "force-fresh", "group", "retry", "finding"] }],
|
|
816
785
|
children: [
|
|
817
786
|
{
|
|
818
787
|
name: "request",
|
|
@@ -820,12 +789,6 @@ const taskChildren = [
|
|
|
820
789
|
usage: "yui task review request <task> --role <global-role> [--strategy fixed:<count>|adaptive:<max>] [--lane-role <role> ...] [--delta-recheck]",
|
|
821
790
|
options: ["--role", "--strategy", "--lane-role", "--delta-recheck"]
|
|
822
791
|
},
|
|
823
|
-
{
|
|
824
|
-
name: "rebind",
|
|
825
|
-
summary: "Explicitly rebind a frozen Task-final contract after a verified immutable release handover.",
|
|
826
|
-
usage: "yui task review rebind <task> --from-control <digest> --to-control <digest> --from-release <release-id> --to-release <release-id>",
|
|
827
|
-
options: ["--from-control", "--to-control", "--from-release", "--to-release"]
|
|
828
|
-
},
|
|
829
792
|
{
|
|
830
793
|
name: "force-fresh",
|
|
831
794
|
summary: "Replace one exact terminal non-semantic Task-final Review with a distinct full Round.",
|
|
@@ -846,7 +809,7 @@ const taskChildren = [
|
|
|
846
809
|
},
|
|
847
810
|
{
|
|
848
811
|
name: "retry",
|
|
849
|
-
summary: "Retry a failed Task-final ReviewRound without a Reviewer
|
|
812
|
+
summary: "Retry a failed Task-final ReviewRound without a Reviewer Turn.",
|
|
850
813
|
usage: "yui task review retry <task>/<review-round>"
|
|
851
814
|
},
|
|
852
815
|
{
|
|
@@ -1067,7 +1030,7 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1067
1030
|
{ name: "update", summary: "Install the latest published Yui package globally." },
|
|
1068
1031
|
{
|
|
1069
1032
|
name: "upgrade",
|
|
1070
|
-
summary: "
|
|
1033
|
+
summary: "Inspect this Home and apply any supported storage upgrade.",
|
|
1071
1034
|
usage: "yui upgrade [--dry-run]",
|
|
1072
1035
|
options: ["--dry-run"]
|
|
1073
1036
|
},
|
|
@@ -1094,7 +1057,7 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1094
1057
|
children: [
|
|
1095
1058
|
{
|
|
1096
1059
|
name: "status",
|
|
1097
|
-
summary: "Show Controller and
|
|
1060
|
+
summary: "Show Controller and AgentRuntime resources.",
|
|
1098
1061
|
usage: "yui controller status [--all] [--verbose]",
|
|
1099
1062
|
options: ["--all", "--verbose"]
|
|
1100
1063
|
},
|
|
@@ -1129,7 +1092,7 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1129
1092
|
children: [
|
|
1130
1093
|
{
|
|
1131
1094
|
name: "audit",
|
|
1132
|
-
summary: "Report
|
|
1095
|
+
summary: "Report Turns, wakes, Sessions, Reviews, Integrations, and telemetry volume.",
|
|
1133
1096
|
usage: "yui execution audit [--task <id>] [--since <iso>] [--until <iso>]",
|
|
1134
1097
|
options: ["--task", "--since", "--until"]
|
|
1135
1098
|
}
|
|
@@ -1450,10 +1413,10 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1450
1413
|
},
|
|
1451
1414
|
{
|
|
1452
1415
|
name: "task",
|
|
1453
|
-
summary: "Manage Tasks, WorkItems,
|
|
1416
|
+
summary: "Manage Tasks, WorkItems, Turns, and integration.",
|
|
1454
1417
|
sections: [
|
|
1455
|
-
{ id: "lifecycle", title: "Lifecycle", entries: ["create", "project", "base", "update", "activate", "execution", "complete", "reopen", "retire", "list", "show", "context", "next-action", "archive", "
|
|
1456
|
-
{ id: "collaboration", title: "Collaboration", entries: ["message", "input", "grant", "workflow", "publication", "work", "
|
|
1418
|
+
{ id: "lifecycle", title: "Lifecycle", entries: ["create", "project", "base", "update", "activate", "execution", "complete", "reopen", "retire", "list", "show", "context", "next-action", "archive", "replace", "reconcile", "upstream"] },
|
|
1419
|
+
{ id: "collaboration", title: "Collaboration", entries: ["message", "input", "grant", "workflow", "publication", "work", "turn", "review", "integration", "role", "overlap", "change-set"] },
|
|
1457
1420
|
{ id: "knowledge", title: "Task Knowledge", entries: ["brief", "decision", "milestone", "event", "continuation", "wake"] }
|
|
1458
1421
|
],
|
|
1459
1422
|
children: taskChildren
|
|
@@ -1481,12 +1444,11 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1481
1444
|
{
|
|
1482
1445
|
name: "telemetry",
|
|
1483
1446
|
summary: "Inspect and compact the bounded provider-progress sidecar.",
|
|
1484
|
-
sections: [{ id: "manage", title: "Commands", entries: ["status", "prune", "
|
|
1447
|
+
sections: [{ id: "manage", title: "Commands", entries: ["status", "prune", "read"] }],
|
|
1485
1448
|
children: [
|
|
1486
1449
|
{ name: "status", summary: "Show sidecar health, row counts, and retention settings.", usage: "yui telemetry status" },
|
|
1487
|
-
{ name: "prune", summary: "Apply terminal retention and active-
|
|
1488
|
-
{ name: "
|
|
1489
|
-
{ name: "read", summary: "Page through retained progress rows or read a Run aggregate.", usage: "yui telemetry read --task <id> [--run <id>] [--aggregate] [--limit <n>] [--offset <n>]" }
|
|
1450
|
+
{ name: "prune", summary: "Apply terminal retention and active-Turn caps.", usage: "yui telemetry prune [--task <id>] [--keep <n>] [--dry-run]" },
|
|
1451
|
+
{ 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>]" }
|
|
1490
1452
|
]
|
|
1491
1453
|
},
|
|
1492
1454
|
{
|
|
@@ -1516,7 +1478,7 @@ export const ROOT_COMMAND = buildNode({
|
|
|
1516
1478
|
},
|
|
1517
1479
|
{
|
|
1518
1480
|
name: "session-cli-refresh",
|
|
1519
|
-
summary: "Refresh
|
|
1481
|
+
summary: "Refresh existing managed Session CLI wrappers after an update.",
|
|
1520
1482
|
usage: "yui internal session-cli-refresh"
|
|
1521
1483
|
}
|
|
1522
1484
|
]
|
|
@@ -68,11 +68,11 @@ export async function getSelectionCandidates(selector, ports, args) {
|
|
|
68
68
|
}
|
|
69
69
|
case "work-items":
|
|
70
70
|
return entities("work item", "Select work item", qualifyTaskRecords(await listAllWorkItems(ports)), ["qualifiedId", "title", "status"]);
|
|
71
|
-
case "
|
|
71
|
+
case "turns": {
|
|
72
72
|
const workItemId = dependencyValue(selector, args);
|
|
73
|
-
const
|
|
74
|
-
return entities("
|
|
75
|
-
|| matchesTaskRecordReference(
|
|
73
|
+
const turns = await listAllByTask(ports, "task.turn.list", "turns");
|
|
74
|
+
return entities("turn", workItemId === undefined ? "Select Turn" : `Select Turn: ${workItemId}`, qualifyTaskRecords(turns.filter((turn) => workItemId === undefined
|
|
75
|
+
|| matchesTaskRecordReference(turn, "workItemId", workItemId))), ["qualifiedId", "roleName", "status", "summary"]);
|
|
76
76
|
}
|
|
77
77
|
case "integration-attempts":
|
|
78
78
|
return entities("Integration Attempt", "Select Integration Attempt", qualifyTaskRecords((await listAllByTask(ports, "task.integration.list", "integrations")).filter((attempt) => selector.statuses === undefined
|
|
@@ -424,21 +424,18 @@ export const INTERACTION_POLICIES = Object.freeze([
|
|
|
424
424
|
confirmation: { action: "Retire Work Item", targetArgumentIndex: 3 }
|
|
425
425
|
},
|
|
426
426
|
{
|
|
427
|
-
commandPath: ["task", "
|
|
427
|
+
commandPath: ["task", "turn", "list"],
|
|
428
428
|
selectors: [{ argumentIndex: 3, entity: "work-item", provider: "work-items", actionTarget: true }],
|
|
429
429
|
},
|
|
430
|
-
|
|
431
|
-
commandPath: ["task", "
|
|
430
|
+
{
|
|
431
|
+
commandPath: ["task", "turn", "retry"],
|
|
432
432
|
selectors: [{
|
|
433
433
|
argumentIndex: 3,
|
|
434
|
-
entity: "
|
|
435
|
-
provider: "
|
|
434
|
+
entity: "turn",
|
|
435
|
+
provider: "turns",
|
|
436
436
|
actionTarget: true
|
|
437
|
-
}]
|
|
438
|
-
|
|
439
|
-
? { trailingOptions: { "--summary": "value" } }
|
|
440
|
-
: {})
|
|
441
|
-
})),
|
|
437
|
+
}]
|
|
438
|
+
},
|
|
442
439
|
{
|
|
443
440
|
commandPath: ["task", "work", "group", "resolve"],
|
|
444
441
|
selectors: [{
|
|
@@ -32,7 +32,7 @@ function resolveExecutionPath(args) {
|
|
|
32
32
|
const child = findChild(node, args[index] ?? "");
|
|
33
33
|
const internalExecutable = child !== undefined && ((node === ROOT_COMMAND && child.name === "internal")
|
|
34
34
|
|| (node.path.join(" ") === "yui config completion" && child.name === "candidates")
|
|
35
|
-
|| (node.path.join(" ") === "yui task
|
|
35
|
+
|| (node.path.join(" ") === "yui task turn"
|
|
36
36
|
&& (child.name === "checkpoint" || child.name === "context"))
|
|
37
37
|
|| (node.path.join(" ") === "yui controller"
|
|
38
38
|
&& (child.name === "identity" || child.name === "live-identity")));
|
|
@@ -5,13 +5,9 @@ import { runUpdate } from "./updateOrchestrator.js";
|
|
|
5
5
|
* Run `yui update` as a side-by-side, recoverable orchestration.
|
|
6
6
|
*
|
|
7
7
|
* The new package is staged beside the live install and used to run a read-only
|
|
8
|
-
* preflight against the target Home.
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* it reports the precise phase and recovery boundary. See
|
|
12
|
-
* {@link runUpdate} for the exact, narrowed rollback boundary (this release does
|
|
13
|
-
* not introduce a versioned binary pointer, so it does not claim binary+Home
|
|
14
|
-
* dual-resource atomicity).
|
|
8
|
+
* preflight against the target Home. Only the exact current storage contract is
|
|
9
|
+
* accepted; the exact Controller handoff then promotes and verifies the binary
|
|
10
|
+
* without changing the Home. Older Homes remain untouched.
|
|
15
11
|
*
|
|
16
12
|
* Returns a process exit code: 0 on success or already-current, 5 on abort.
|
|
17
13
|
*/
|
|
@@ -20,12 +16,8 @@ export function runUpdateCommand(environment = process.env, spawn, write = (text
|
|
|
20
16
|
const resolvedPorts = ports ?? createUpdatePorts(environment, spawn);
|
|
21
17
|
const result = runUpdate(resolvedPorts, { home });
|
|
22
18
|
write(`${renderUpdateResult(result)}\n`);
|
|
23
|
-
// Both an abort and an ambiguous result are non-success exits; ambiguous is
|
|
24
|
-
// distinct (manual verification required), so it gets its own exit code.
|
|
25
19
|
if (result.outcome === "aborted")
|
|
26
20
|
return 5;
|
|
27
|
-
if (result.outcome === "ambiguous")
|
|
28
|
-
return 6;
|
|
29
21
|
return 0;
|
|
30
22
|
}
|
|
31
23
|
/** Render an {@link UpdateResult} as concise, CLI-style text. */
|
|
@@ -35,30 +27,17 @@ export function renderUpdateResult(result) {
|
|
|
35
27
|
case "already-current":
|
|
36
28
|
return "Yui is already up to date; nothing to install.";
|
|
37
29
|
case "updated":
|
|
38
|
-
return result.
|
|
39
|
-
? result.path === "compatible-fast"
|
|
40
|
-
? `Updated Yui to ${result.version} via the compatible fast path; the Home was not migrated.`
|
|
41
|
-
: result.path === "in-place-migration"
|
|
42
|
-
? `Updated Yui to ${result.version}; SQLite was migrated in place without rebuilding the database.`
|
|
43
|
-
: `Updated Yui to ${result.version}; storage was already current.`
|
|
44
|
-
: `Updated Yui to ${result.version}. Storage was migrated; original Home backed up at `
|
|
45
|
-
+ `${result.storageBackupPath}.`;
|
|
30
|
+
return `Updated Yui to ${result.version}; the current Home was not modified.`;
|
|
46
31
|
case "aborted":
|
|
47
32
|
return [
|
|
48
33
|
`Update aborted during ${result.phase}: ${result.message}`,
|
|
49
34
|
result.recoverable
|
|
50
35
|
? "The current install and Home remain usable."
|
|
51
|
-
: result.phase === "activate-binary"
|
|
52
|
-
? "The Home was
|
|
36
|
+
: result.phase === "activate-binary"
|
|
37
|
+
? "The Home was unchanged, but binary health is unknown; do not assume the current install is usable."
|
|
53
38
|
: "Manual recovery is required (see below).",
|
|
54
39
|
`Action: ${result.action}`
|
|
55
40
|
].join("\n");
|
|
56
|
-
case "ambiguous":
|
|
57
|
-
return [
|
|
58
|
-
`Update result is UNKNOWN after ${result.phase}: ${result.message}`,
|
|
59
|
-
"Manual verification is required — do NOT assume the update succeeded or was a no-op.",
|
|
60
|
-
`Action: ${result.action}`
|
|
61
|
-
].join("\n");
|
|
62
41
|
}
|
|
63
42
|
})();
|
|
64
43
|
return result.cleanupWarning === undefined
|