@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.
Files changed (229) hide show
  1. package/ARCHITECTURE.md +69 -428
  2. package/README.md +108 -298
  3. package/dist/agent/managedRuntimeEnvironment.js +2 -2
  4. package/dist/cli/commandCatalog.js +39 -77
  5. package/dist/cli/interactionCandidates.js +4 -4
  6. package/dist/cli/interactionPolicy.js +7 -10
  7. package/dist/cli/invocationRouter.js +1 -1
  8. package/dist/cli/updateCommand.js +6 -27
  9. package/dist/cli/updateOrchestrator.js +63 -484
  10. package/dist/cli/updatePorts.js +15 -333
  11. package/dist/cli/upgradeCommand.js +8 -65
  12. package/dist/cli.js +57 -242
  13. package/dist/commands/configCommands.js +11 -62
  14. package/dist/commands/executionAuditCommands.js +23 -23
  15. package/dist/commands/globalRoleCommands.js +2 -7
  16. package/dist/commands/jobCommands.js +1 -4
  17. package/dist/commands/projectCommands.js +5 -5
  18. package/dist/commands/releaseCommands.js +3 -10
  19. package/dist/commands/resourcesCommands.js +2 -2
  20. package/dist/commands/sessionCommands.js +2 -2
  21. package/dist/commands/taskActor.js +31 -39
  22. package/dist/commands/taskChangeSetCommands.js +5 -12
  23. package/dist/commands/taskCommands.js +464 -1249
  24. package/dist/commands/taskContextCommand.js +35 -36
  25. package/dist/commands/taskExecutionCommands.js +33 -46
  26. package/dist/commands/taskInputCommands.js +20 -42
  27. package/dist/commands/taskNextActionCommand.js +9 -9
  28. package/dist/commands/taskOverviewCommand.js +56 -95
  29. package/dist/commands/taskRoleRuntimeStatus.js +77 -107
  30. package/dist/commands/taskUpstreamCommands.js +3 -3
  31. package/dist/commands/taskWorkspaceCommands.js +7 -79
  32. package/dist/commands/telemetryCommands.js +32 -124
  33. package/dist/commands/workflowCommands.js +3 -3
  34. package/dist/completion/fileCompletionManager.js +1 -1
  35. package/dist/config/configCatalog.js +4 -6
  36. package/dist/config/yuiConfig.js +6 -43
  37. package/dist/context/dispatchContext.js +14 -30
  38. package/dist/context/roleSessionContext.js +2 -2
  39. package/dist/context/sessionBootstrapManifest.js +2 -2
  40. package/dist/context/{runContextPack.js → turnContextPack.js} +58 -73
  41. package/dist/context/turnInputContract.js +204 -0
  42. package/dist/context/wakeNotification.js +2 -2
  43. package/dist/controller/agentRuntimeObserver.js +18 -18
  44. package/dist/controller/clientRuntime.js +13 -20
  45. package/dist/controller/controller.js +89 -116
  46. package/dist/controller/fileSchedulerStoreAdapter.js +511 -742
  47. package/dist/controller/jobControl.js +17 -17
  48. package/dist/controller/resourceInventory.js +6 -6
  49. package/dist/controller/resourceInventoryLinux.js +38 -59
  50. package/dist/controller/resourceInventoryRpc.js +3 -3
  51. package/dist/controller/resourceInventoryWorker.js +1 -1
  52. package/dist/controller/runtime.js +46 -53
  53. package/dist/controller/runtimeEventInbox.js +23 -31
  54. package/dist/controller/runtimeEventProcessor.js +15 -15
  55. package/dist/controller/{runtimeHookRunFence.js → runtimeHookTurnFence.js} +87 -81
  56. package/dist/controller/runtimeLaunchCoordinator.js +3 -3
  57. package/dist/controller/runtimeObservationHook.js +11 -8
  58. package/dist/controller/sessionNotify.js +11 -11
  59. package/dist/controller/structuredProviderObservation.js +89 -16
  60. package/dist/coordination/workMailbox.js +309 -579
  61. package/dist/coordination/workMailboxQueue.js +5 -6
  62. package/dist/core/controllerClient.js +1 -91
  63. package/dist/core/controllerServer.js +3 -6
  64. package/dist/doctor/doctor.js +51 -314
  65. package/dist/execution/candidateConvergence.js +3 -3
  66. package/dist/execution/executionGroup.js +32 -33
  67. package/dist/execution/executionHealth.js +36 -38
  68. package/dist/execution/resourceBroker.js +12 -12
  69. package/dist/executor/agentExecutor.js +30 -265
  70. package/dist/executor/effectiveLaunch.js +9 -19
  71. package/dist/executor/executorRegistry.js +43 -17
  72. package/dist/executor/fileRoleLaunchPlanner.js +56 -56
  73. package/dist/executor/launchPlan.js +3 -3
  74. package/dist/executor/workspacePreflightClassification.js +16 -16
  75. package/dist/grant/capabilityGrant.js +20 -25
  76. package/dist/input/inputRequest.js +12 -12
  77. package/dist/integration/changeSet.js +9 -13
  78. package/dist/integration/changeSetManifest.js +1 -1
  79. package/dist/integration/gitIntegrationService.js +2 -2
  80. package/dist/integration/integrationQueueService.js +5 -21
  81. package/dist/integration/overlapDiagnostics.js +2 -2
  82. package/dist/interaction/operatorPresentation.js +1 -1
  83. package/dist/job/jobRunner.js +1 -1
  84. package/dist/lifecycle/canonicalLifecycleEvent.js +25 -25
  85. package/dist/lifecycle/{exactRunTerminalization.js → exactTurnTerminalization.js} +116 -232
  86. package/dist/message/message.js +6 -6
  87. package/dist/observability/executionAudit.js +74 -86
  88. package/dist/observability/faultClassification.js +7 -24
  89. package/dist/observability/orchestrationMetrics.js +5 -5
  90. package/dist/observability/runtimeIdentity.js +34 -101
  91. package/dist/profile/agentProfile.js +1 -1
  92. package/dist/release/cliHomeReleaseFence.js +3 -3
  93. package/dist/release/releaseWorkflowEngine.js +6 -10
  94. package/dist/release/releaseWorkflowPorts.js +2 -2
  95. package/dist/release/workflowFileLock.js +1 -1
  96. package/dist/repository/checkoutSwap.js +1 -1
  97. package/dist/repository/gitWorkspace.js +0 -13
  98. package/dist/repository/project.js +1 -1
  99. package/dist/repository/projectMaintenanceLock.js +1 -2
  100. package/dist/repository/taskBaseFreshness.js +13 -13
  101. package/dist/repository/taskWorkspaceCoordinator.js +21 -25
  102. package/dist/repository/taskWorkspaceIdentity.js +8 -21
  103. package/dist/repository/taskWorkspacePreparer.js +63 -620
  104. package/dist/resources/autoResourceGc.js +3 -3
  105. package/dist/resources/liveReferences.js +1 -1
  106. package/dist/resources/resourceGc.js +1 -1
  107. package/dist/resources/sqliteResourceRegistry.js +1 -1
  108. package/dist/review/reviewDecision.js +7 -7
  109. package/dist/review/reviewFindingLedger.js +1 -1
  110. package/dist/review/reviewOutcomeClassifier.js +35 -50
  111. package/dist/review/reviewRound.js +14 -25
  112. package/dist/review/reviewerAvailability.js +4 -4
  113. package/dist/review/taskFinalReviewContractResolution.js +41 -0
  114. package/dist/role/role.js +6 -3
  115. package/dist/runtime/agentDriver.js +4 -0
  116. package/dist/runtime/agentHost.js +151 -36
  117. package/dist/runtime/builtinAgentDrivers.js +79 -2
  118. package/dist/runtime/codexAppServerRuntime.js +122 -0
  119. package/dist/runtime/continuationManager.js +3 -5
  120. package/dist/runtime/exactControlPlane.js +17 -42
  121. package/dist/runtime/firstProgressAdvisory.js +1 -1
  122. package/dist/runtime/index.js +2 -2
  123. package/dist/runtime/launchDiagnostics.js +2 -2
  124. package/dist/runtime/lifecycleReservation.js +4 -4
  125. package/dist/runtime/processExitObservation.js +1 -1
  126. package/dist/runtime/processExitOutbox.js +0 -32
  127. package/dist/runtime/promptEnvelope.js +9 -9
  128. package/dist/runtime/providerContinuation.js +2 -2
  129. package/dist/runtime/providerContinuationReconciliationService.js +2 -2
  130. package/dist/runtime/providerRuntimeIdentity.js +76 -24
  131. package/dist/runtime/recentTurnIds.js +38 -0
  132. package/dist/runtime/runtimeContinuationProjection.js +2 -2
  133. package/dist/runtime/runtimeHealthPolicy.js +1 -1
  134. package/dist/runtime/runtimeObservation.js +58 -21
  135. package/dist/runtime/runtimeProjection.js +19 -27
  136. package/dist/runtime/sessionLaunchRequest.js +2 -2
  137. package/dist/runtime/structuredProviderHost.js +177 -12
  138. package/dist/runtime/tmuxAdapters.js +46 -11
  139. package/dist/scheduler/activeRoleTurnDelivery.js +245 -0
  140. package/dist/scheduler/leaderWakeupProcessor.js +147 -445
  141. package/dist/scheduler/operatorEvent.js +4 -6
  142. package/dist/scheduler/resourceQueueProjection.js +71 -0
  143. package/dist/scheduler/{roleRunLiveness.js → roleTurnLiveness.js} +24 -28
  144. package/dist/scheduler/{roleRunStall.js → roleTurnStall.js} +162 -247
  145. package/dist/scheduler/taskExecutionProjection.js +99 -99
  146. package/dist/scheduler/taskObservabilityProjection.js +10 -10
  147. package/dist/scheduler/taskWake.js +4 -4
  148. package/dist/scheduler/wakeReason.js +6 -10
  149. package/dist/scheduler/wakeupQueue.js +0 -9
  150. package/dist/setup/setupCommand.js +2 -2
  151. package/dist/storage/currentTaskStore.js +46 -0
  152. package/dist/storage/persistenceWorker.js +1 -1
  153. package/dist/storage/sqliteSchema.js +81 -485
  154. package/dist/storage/sqliteStore.js +206 -365
  155. package/dist/storage/storageSchema.js +1 -15
  156. package/dist/storage/storageVersions.js +8 -9
  157. package/dist/storage/storeRpc.js +10 -34
  158. package/dist/storage/taskStore.js +63 -3415
  159. package/dist/storage/upgrade/recordVersions.js +55 -149
  160. package/dist/storage/upgrade/upgradeOrchestrator.js +89 -1752
  161. package/dist/task/completionReadiness.js +5 -5
  162. package/dist/task/deliveryGuard.js +10 -10
  163. package/dist/task/nextAction.js +74 -77
  164. package/dist/task/task.js +2 -4
  165. package/dist/task/taskRecordReference.js +3 -3
  166. package/dist/task/taskRecordRetirement.js +1 -1
  167. package/dist/telemetry/sqliteTelemetryStore.js +53 -53
  168. package/dist/telemetry/telemetryConfig.js +14 -14
  169. package/dist/telemetry/telemetryWiring.js +8 -14
  170. package/dist/turn/turn.js +356 -0
  171. package/dist/{run/runIdentity.js → turn/turnIdentity.js} +4 -4
  172. package/dist/verification/gateArtifactStore.js +2 -2
  173. package/dist/web/assets/client/app.js +1 -1
  174. package/dist/web/assets/client/components.js +29 -54
  175. package/dist/web/assets/client/i18n.js +17 -37
  176. package/dist/web/assets/client/view.js +37 -37
  177. package/dist/web/assets/shell.js +1 -1
  178. package/dist/web/assets/styles/cards.js +5 -5
  179. package/dist/web/assets/styles/widgets.js +1 -2
  180. package/dist/web/webSnapshot.js +65 -60
  181. package/dist/workItem/workItem.js +11 -11
  182. package/dist/workspace/workItemChangeSetManager.js +1 -1
  183. package/docs/task-local-identity.md +5 -5
  184. package/i18n/README.zh-CN.md +41 -54
  185. package/package.json +1 -1
  186. package/skills/yui-leader/SKILL.md +85 -83
  187. package/skills/yui-operator/SKILL.md +16 -16
  188. package/skills/yui-reviewer/SKILL.md +10 -10
  189. package/skills/yui-runtime/SKILL.md +17 -18
  190. package/skills/yui-worker/SKILL.md +16 -18
  191. package/dist/context/runContextContract.js +0 -162
  192. package/dist/executor/turnCompletion.js +0 -126
  193. package/dist/review/taskFinalReviewContractEvent.js +0 -1
  194. package/dist/review/taskFinalReviewContractRebind.js +0 -367
  195. package/dist/run/agentRun.js +0 -356
  196. package/dist/run/rejectedYieldAttempt.js +0 -221
  197. package/dist/run/runControlRequest.js +0 -50
  198. package/dist/run/yieldReceipt.js +0 -65
  199. package/dist/runtime/turnCompletion.js +0 -3
  200. package/dist/scheduler/actionability.js +0 -323
  201. package/dist/scheduler/activeRoleRunDelivery.js +0 -868
  202. package/dist/scheduler/activeTaskProgress.js +0 -126
  203. package/dist/storage/compatibleTaskStore.js +0 -248
  204. package/dist/storage/migration/baseline.js +0 -78
  205. package/dist/storage/migration/classifier.js +0 -51
  206. package/dist/storage/migration/compatibleCodec.js +0 -53
  207. package/dist/storage/migration/engine.js +0 -147
  208. package/dist/storage/migration/index.js +0 -33
  209. package/dist/storage/migration/planner.js +0 -154
  210. package/dist/storage/migration/productionRegistry.js +0 -3931
  211. package/dist/storage/migration/registry.js +0 -169
  212. package/dist/storage/migration/report.js +0 -54
  213. package/dist/storage/migration/types.js +0 -31
  214. package/dist/storage/upgrade/homeClassification.js +0 -353
  215. package/dist/storage/upgrade/homeMigrationTarget.js +0 -595
  216. package/dist/storage/upgrade/migrationReceipt.js +0 -67
  217. package/dist/storage/upgrade/offlineUpgradeInventory.js +0 -453
  218. package/dist/storage/upgrade/productionMigrationRegistry.js +0 -6
  219. package/dist/storage/upgrade/pseudoLayoutRepair.js +0 -241
  220. package/dist/storage/upgrade/recordVersionScan.js +0 -176
  221. package/dist/storage/upgrade/sqliteFileSet.js +0 -50
  222. package/dist/storage/upgrade/sqliteMigrationTarget.js +0 -375
  223. package/dist/storage/upgrade/sqliteRecordMigrationTarget.js +0 -305
  224. package/dist/storage/upgrade/sqliteStateMigration.js +0 -918
  225. package/dist/storage/upgrade/switchProgress.js +0 -80
  226. package/dist/storage/upgrade/upgradeReceipt.js +0 -161
  227. package/dist/storage/upgradeCoordination.js +0 -187
  228. package/dist/storage/upgradeFence.js +0 -366
  229. 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 durable record-version manifest and cannot be opened without explicit introduction migrations.");
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 for backward compatibility.
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`, root `state.json`, and locks).
9
+ * Version of the on-disk layout (`schema.json` plus the SQLite database).
10
10
  *
11
- * Layout 7 is the SQLite WAL control-plane layout (task-21 §8): the authoritative
12
- * store moves from the aggregate `state.json` document to `yui.db`. A layout-6
13
- * Home is migrated offline by the staged state.json→SQLite migration; layout 7
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 = 7;
17
- /** Version of the authoritative aggregate stored in `state.json`. */
18
- export const CURRENT_AGGREGATE_SCHEMA_VERSION = 20;
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;
@@ -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
- * The file `TaskStore` remains the default for CLI tools and tests; the worker
20
- * backend is opt-in via `YUI_STORE_BACKEND=sqlite` + `YUI_STORE_WORKER=1`
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
- "getAgentRun",
77
- "listAgentRuns",
73
+ "getTurn",
74
+ "listTurns",
78
75
  "listPendingProviderRetries",
79
- "peekNextAgentRunId",
76
+ "peekNextTurnId",
80
77
  "getReviewRound",
81
- "listReviewRuns",
82
- "getActiveAgentRun",
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
- * Resolve whether the persistence worker backend is enabled (design §6).
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 env.YUI_STORE_BACKEND?.toLowerCase() !== "sqlite";
277
+ return true;
302
278
  }