@zq-silk/yui 0.13.9 → 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 -918
- 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
|
@@ -139,20 +139,6 @@ export function ensureStorageSchema(rootDir, now = new Date()) {
|
|
|
139
139
|
export function requireStorageSchema(rootDir) {
|
|
140
140
|
requireInspectedSchema(inspectStorageSchema(rootDir));
|
|
141
141
|
}
|
|
142
|
-
/**
|
|
143
|
-
* Compatible readers may bypass only a record-axis mismatch. Layout,
|
|
144
|
-
* aggregate, syntax, and initialization remain strict.
|
|
145
|
-
*/
|
|
146
|
-
export function requireCompatibleStorageSchema(rootDir) {
|
|
147
|
-
const state = inspectStorageSchema(rootDir);
|
|
148
|
-
if (state.status === "current")
|
|
149
|
-
return;
|
|
150
|
-
if (state.status === "unsupported"
|
|
151
|
-
&& state.incompatibleComponent === "record"
|
|
152
|
-
&& state.direction === "older")
|
|
153
|
-
return;
|
|
154
|
-
requireInspectedSchema(state);
|
|
155
|
-
}
|
|
156
142
|
/** Persist the current three-axis manifest through the existing atomic-file seam. */
|
|
157
143
|
export function writeCurrentStorageManifest(rootDir, now = new Date()) {
|
|
158
144
|
const recordVersions = {};
|
|
@@ -182,7 +168,7 @@ function requireInspectedSchema(state) {
|
|
|
182
168
|
}
|
|
183
169
|
function unsupportedVersion(current, required, component, recordFamily) {
|
|
184
170
|
if (component === "record" && recordFamily === undefined) {
|
|
185
|
-
return new StorageSchemaError("STORAGE_SCHEMA_UNSUPPORTED", "This Home predates the
|
|
171
|
+
return new StorageSchemaError("STORAGE_SCHEMA_UNSUPPORTED", "This Home predates the current record-version manifest. Preserve it for inspection and initialize a new Home.");
|
|
186
172
|
}
|
|
187
173
|
const label = component === "layout"
|
|
188
174
|
? "Storage layout"
|
|
@@ -3,16 +3,15 @@
|
|
|
3
3
|
*
|
|
4
4
|
* These live in their own module so that `storageSchema.ts`, `recordVersions.ts`,
|
|
5
5
|
* and `taskStore.ts` can all import them without creating a circular dependency.
|
|
6
|
-
* `storageSchema.ts` re-exports them
|
|
6
|
+
* `storageSchema.ts` re-exports them as the public storage-contract boundary.
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
|
-
* Version of the on-disk layout (`schema.json
|
|
9
|
+
* Version of the on-disk layout (`schema.json` plus the SQLite database).
|
|
10
10
|
*
|
|
11
|
-
* Layout
|
|
12
|
-
* store
|
|
13
|
-
*
|
|
14
|
-
* is the current layout this release reads and writes.
|
|
11
|
+
* Layout 8 is the current SQLite WAL control-plane layout: the authoritative
|
|
12
|
+
* store is `yui.db`. Layout 8 is the only layout this release reads and writes;
|
|
13
|
+
* older Homes are rejected and must not be upgraded in place.
|
|
15
14
|
*/
|
|
16
|
-
export const CURRENT_STORAGE_LAYOUT_VERSION =
|
|
17
|
-
/** Version of the
|
|
18
|
-
export const CURRENT_AGGREGATE_SCHEMA_VERSION =
|
|
15
|
+
export const CURRENT_STORAGE_LAYOUT_VERSION = 8;
|
|
16
|
+
/** Version of the logical aggregates persisted in SQLite. */
|
|
17
|
+
export const CURRENT_AGGREGATE_SCHEMA_VERSION = 21;
|
package/dist/storage/storeRpc.js
CHANGED
|
@@ -16,14 +16,11 @@
|
|
|
16
16
|
* `transactionAsync` ships an ordered batch that the worker runs inside one
|
|
17
17
|
* `BEGIN IMMEDIATE … COMMIT` (§3.2).
|
|
18
18
|
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* ({@link resolveStoreWorkerEnabled}). Rollback to the file store is a config
|
|
22
|
-
* flip (§6).
|
|
19
|
+
* SQLite is the only product Store. `YUI_STORE_WORKER` controls whether its
|
|
20
|
+
* connection lives in a Worker Thread; it does not select another authority.
|
|
23
21
|
*/
|
|
24
22
|
import { BoundedRpcClient, nextRequestId } from "../core/boundedRpc.js";
|
|
25
23
|
import { StorageCancelledError, StorageConflictError, StorageRecordError } from "./taskStore.js";
|
|
26
|
-
import { resolveTaskStoreBackendForHome } from "./sqliteStore.js";
|
|
27
24
|
// -- Read-only classification ------------------------------------------------
|
|
28
25
|
/**
|
|
29
26
|
* TaskStore methods that do not mutate. Reads use the worker's read pool
|
|
@@ -73,14 +70,13 @@ const READ_ONLY_STORE_METHODS = new Set([
|
|
|
73
70
|
"getRoleSession",
|
|
74
71
|
"getWorkItem",
|
|
75
72
|
"listWorkItems",
|
|
76
|
-
"
|
|
77
|
-
"
|
|
73
|
+
"getTurn",
|
|
74
|
+
"listTurns",
|
|
78
75
|
"listPendingProviderRetries",
|
|
79
|
-
"
|
|
76
|
+
"peekNextTurnId",
|
|
80
77
|
"getReviewRound",
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"getActiveExecutionLaneRun",
|
|
78
|
+
"getActiveTurn",
|
|
79
|
+
"getActiveExecutionLaneTurn",
|
|
84
80
|
"listMessages",
|
|
85
81
|
"getInputRequest",
|
|
86
82
|
"listInputRequests",
|
|
@@ -271,32 +267,12 @@ function isRpcCallOptions(value) {
|
|
|
271
267
|
const record = value;
|
|
272
268
|
return "requestId" in record || "signal" in record;
|
|
273
269
|
}
|
|
274
|
-
/**
|
|
275
|
-
|
|
276
|
-
* The worker requires the SQLite backend (`YUI_STORE_BACKEND=sqlite`) and is
|
|
277
|
-
* opt-in via `YUI_STORE_WORKER=1`. The file store remains the default.
|
|
278
|
-
*/
|
|
279
|
-
export function resolveStoreWorkerEnabled(env = process.env) {
|
|
280
|
-
if (env.YUI_STORE_BACKEND?.toLowerCase() !== "sqlite")
|
|
281
|
-
return false;
|
|
282
|
-
const flag = env.YUI_STORE_WORKER;
|
|
283
|
-
return flag === "1" || flag?.toLowerCase() === "true";
|
|
284
|
-
}
|
|
285
|
-
/**
|
|
286
|
-
* Resolve whether the persistence worker is enabled, from the Home's verified
|
|
287
|
-
* manifest (Issue 01). A Home-decided SQLite backend (layout 7, no explicit
|
|
288
|
-
* `YUI_STORE_BACKEND`) runs the worker by default — that is the product
|
|
289
|
-
* commitment layout 7 makes. An env-decided SQLite backend keeps the
|
|
290
|
-
* historical opt-in (`YUI_STORE_WORKER=1`). `YUI_STORE_WORKER=0/false`
|
|
291
|
-
* disables the worker in both cases (in-process SQLite still applies).
|
|
292
|
-
*/
|
|
293
|
-
export function resolveStoreWorkerEnabledForHome(home, env = process.env) {
|
|
294
|
-
if (resolveTaskStoreBackendForHome(home, env) !== "sqlite")
|
|
295
|
-
return false;
|
|
270
|
+
/** Resolve the optional persistence worker for the current SQLite store. */
|
|
271
|
+
export function resolveStoreWorkerEnabledForHome(_home, env = process.env) {
|
|
296
272
|
const flag = env.YUI_STORE_WORKER?.toLowerCase();
|
|
297
273
|
if (flag === "1" || flag === "true")
|
|
298
274
|
return true;
|
|
299
275
|
if (flag === "0" || flag === "false")
|
|
300
276
|
return false;
|
|
301
|
-
return
|
|
277
|
+
return true;
|
|
302
278
|
}
|