@openspecui/core 9.0.3 → 10.0.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 (50) hide show
  1. package/dist/{active-root-config-CDH9K5lV.d.mts → active-root-config-N3lOotoq.d.mts} +15 -15
  2. package/dist/active-root-config.d.mts +5 -5
  3. package/dist/app-daemon-control.d.mts +16 -16
  4. package/dist/{cli-projection-C1ZYzYMm.d.mts → cli-projection-bB650ru4.d.mts} +1 -1
  5. package/dist/cli-projection.d.mts +5 -5
  6. package/dist/{workflow-CmQ4pFYC.mjs → command-result-DWMmDl6I.mjs} +91 -80
  7. package/dist/{dashboard-summary-transport-Bys0g-UT.d.mts → dashboard-summary-transport-DcyVID8z.d.mts} +3045 -2948
  8. package/dist/dashboard-summary-transport.d.mts +17 -17
  9. package/dist/{document-translation-CBqubtWC.d.mts → document-translation-DM2eydNr.d.mts} +2 -2
  10. package/dist/document-translation.d.mts +1 -1
  11. package/dist/hosted-app.d.mts +17 -17
  12. package/dist/hosted-contract.d.mts +17 -17
  13. package/dist/{index-C7jJcSdH.d.mts → index-CW5hcqKC.d.mts} +12277 -7316
  14. package/dist/index.d.mts +18 -18
  15. package/dist/index.mjs +385 -138
  16. package/dist/{local-download-profiles-CyAhZwxA.d.mts → local-download-profiles-DXmw0Zs3.d.mts} +1 -1
  17. package/dist/local-download-profiles.d.mts +2 -2
  18. package/dist/{notifications-Be5ltQeN.d.mts → notifications-BQhnmovr.d.mts} +17 -17
  19. package/dist/notifications.d.mts +2 -2
  20. package/dist/{openspec-compat-DidEO359.mjs → openspec-compat-DctIDxRM.mjs} +23 -17
  21. package/dist/openspec-compat.d.mts +4 -76
  22. package/dist/openspec-compat.mjs +2 -2
  23. package/dist/{openspec-projection-Bymnjuf9.d.mts → openspec-projection-FKuNsfBp.d.mts} +1 -1
  24. package/dist/openspec-projection.d.mts +2 -2
  25. package/dist/{opsx-entity-NFWGsreJ.d.mts → opsx-entity-CulylXeK.d.mts} +2 -2
  26. package/dist/opsx-entity.d.mts +7 -7
  27. package/dist/{opsx-schema-detail-ChaSoC8S.d.mts → opsx-schema-detail-C9kNWQmO.d.mts} +2 -2
  28. package/dist/opsx-schema-detail.d.mts +8 -8
  29. package/dist/{opsx-types-C2lUEACZ.d.mts → opsx-types-BeQJ4Le_.d.mts} +124 -124
  30. package/dist/{planning-cli-projection-BTkiQ7PG.mjs → planning-cli-projection-pq8vZC1r.mjs} +2 -2
  31. package/dist/planning-cli-projection.d.mts +17 -17
  32. package/dist/planning-cli-projection.mjs +3 -3
  33. package/dist/{schemas-BG7Tcs8J.d.mts → schemas-BIaPbul1.d.mts} +117 -117
  34. package/dist/{sounds-DdPTMYMa.d.mts → sounds-CxSkCgKh.d.mts} +8 -8
  35. package/dist/sounds.d.mts +1 -1
  36. package/dist/{spec-catalog-Ce3uSLSc.mjs → spec-catalog-BkX0tZp9.mjs} +149 -2
  37. package/dist/spec-catalog.d.mts +17 -17
  38. package/dist/spec-catalog.mjs +2 -2
  39. package/dist/{store-types-X35XKl10.d.mts → store-types-TDbmbvPx.d.mts} +1 -1
  40. package/dist/store-types.d.mts +5 -5
  41. package/dist/task-progress.d.mts +6 -6
  42. package/dist/{terminal-audio-Csuw114f.d.mts → terminal-audio-R-3VBy0x.d.mts} +1 -1
  43. package/dist/terminal-audio.d.mts +2 -2
  44. package/dist/terminal-control.d.mts +2 -2
  45. package/dist/{terminal-invocation-C5AN93a9.d.mts → terminal-invocation-C8mSioBZ.d.mts} +93 -93
  46. package/dist/terminal-invocation.d.mts +1 -1
  47. package/dist/{translator-4wvacuAX.d.mts → translator-CVkc7MHh.d.mts} +31 -31
  48. package/dist/translator.d.mts +1 -1
  49. package/dist/workspace-directory-catalog.d.mts +2 -2
  50. package/package.json +3 -2
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { A as requireCanonicalOpenSpecEntityId, C as CliStoreDoctorSchema, E as CliStoreSchema, M as requireOpenSpecEntityRelativePath, O as CliSchemasSuccessSchema, S as CliStoreDoctorEntrySchema, T as CliStoreMutationSchema, _ as specRoutePath, a as SpecDocumentProjectionSchema, b as CliDoctorSchema, c as createStaticSpecCatalogOwnedProjection, d as getSpecCatalogEntry, f as isReferencedSpecIdentity, g as specIdentityKey, h as specIdentityFromRoute, i as SpecCommandEvidenceSchema, j as requireCanonicalOpenSpecSpecId, k as isCliSchemasFailure, l as createStaticSpecCatalogReferenceProjection, m as specDocumentDisplayPath, n as ReferencedSpecIdentitySchema, o as SpecIdentitySchema, p as mergeSpecCatalog, r as SpecCatalogSchema, s as buildSpecCatalog, t as OwnedSpecIdentitySchema, u as createStaticSpecCatalogReferenceSource, v as OpenSpecCliContractExecutor, w as CliStoreListSchema, x as CliStoreCleanupSchema, y as CliContextSchema } from "./spec-catalog-Ce3uSLSc.mjs";
1
+ import { A as isCliBatchStatusEntryFailure, C as CliStoreDoctorSchema, E as CliStoreSchema, M as requireCanonicalOpenSpecSpecId, N as requireOpenSpecEntityRelativePath, O as CliSchemasSuccessSchema, S as CliStoreDoctorEntrySchema, T as CliStoreMutationSchema, _ as specRoutePath, a as SpecDocumentProjectionSchema, b as CliDoctorSchema, c as createStaticSpecCatalogOwnedProjection, d as getSpecCatalogEntry, f as isReferencedSpecIdentity, g as specIdentityKey, h as specIdentityFromRoute, i as SpecCommandEvidenceSchema, j as requireCanonicalOpenSpecEntityId, k as isCliSchemasFailure, l as createStaticSpecCatalogReferenceProjection, m as specDocumentDisplayPath, n as ReferencedSpecIdentitySchema, o as SpecIdentitySchema, p as mergeSpecCatalog, r as SpecCatalogSchema, s as buildSpecCatalog, t as OwnedSpecIdentitySchema, u as createStaticSpecCatalogReferenceSource, v as OpenSpecCliContractExecutor, w as CliStoreListSchema, x as CliStoreCleanupSchema, y as CliContextSchema } from "./spec-catalog-BkX0tZp9.mjs";
2
2
  import { _ as isTextLikeMime, a as DeltaSpecSchema, c as ScenarioStepSchema, d as TrackedTaskProgressSchema, f as FILE_PREVIEW_KINDS, g as isTextLikeFile, h as isPreviewableFile, i as DeltaSchema, l as SpecSchema, m as inferFilePreviewKind, n as ChangeSchema, o as RequirementSchema, p as inferFileMime, r as DeltaOperationType, s as ScenarioStepKeywordSchema, t as ChangeFileSchema, u as TaskSchema } from "./schemas-CMThmKx1.mjs";
3
3
  import { a as normalizeOpsxEntityPath, c as parseOpsxEntityMetadata, i as isOpsxGlobPattern, n as getOpsxEntityMetadataPath, o as opsxGlobToRegex, r as getOpsxEntityRootRelativePath, s as opsxPathMatchesPattern, t as buildOpsxEntityDetail } from "./opsx-entity-BnO3k48r.mjs";
4
4
  import { t as parseOpsxSchemaDetail } from "./opsx-schema-detail-zk8ePaKK.mjs";
@@ -8,7 +8,7 @@ import { a as getOpenSpecAnnotationsForFact, i as getOpenSpecAnnotation, n as an
8
8
  import { a as getOpenSpecReadingSections, c as projectOpenSpecMarkdown, i as getOpenSpecProjectionAnnotation, n as OPEN_SPEC_SPEC_PROJECTION_ID, o as parseOpenSpecMarkdownToSpec, r as createOpenSpecReadingPlugin, s as projectAnnotatedOpenSpecToSpec, t as OPEN_SPEC_READING_SECTIONS_PROJECTION_ID } from "./openspec-projection-Cno7FlwE.mjs";
9
9
  import { a as isMarkdownTaskSourcePath, c as toggleMarkdownTask, i as deriveTrackedTaskPhase, n as createDocumentChecklistSummary, o as parseMarkdownTasks, r as createTrackedTaskProgress, s as projectTaskProjectionsFromMarkdownFiles, t as createApplyInstructionProgress } from "./task-progress-Bvid_Ws8.mjs";
10
10
  import { a as CliRootSchema, i as CliReferenceIndexEntrySchema, n as CliDiagnosticSchema, o as CliRootSourceSchema, r as CliDoctorReferenceEntrySchema, t as CliDiagnosticFailureSchema } from "./common-BRL_34xt.mjs";
11
- import { C as CliWorkflowStatusSuccessSchema, S as CliWorkflowStatusSchema, T as parseCliCommandResult, _ as CliSpecListSchema, a as CliArchiveInstructionsSuccessSchema, b as CliValidateReportSchema, c as CliArtifactInstructionsSuccessSchema, g as CliShowSpecSchema, h as CliShowSpecDocumentSchema, i as CliArchiveInstructionsSchema, n as CliApplyInstructionsSchema, o as CliArchiveSchema, r as CliApplyInstructionsSuccessSchema, s as CliArtifactInstructionsSchema, u as CliChangeListSchema, w as CliCommandTransportSchema, x as CliValidateSchema } from "./workflow-CmQ4pFYC.mjs";
11
+ import { C as CliValidateReportSchema, D as CliWorkflowStatusSuccessSchema, E as CliWorkflowStatusSchema, _ as CliShowSpecDocumentSchema, a as CliApplyInstructionsSuccessSchema, c as CliArchiveSchema, f as CliChangeListSchema, i as CliApplyInstructionsSchema, l as CliArtifactInstructionsSchema, n as parseCliCommandResult, o as CliArchiveInstructionsSchema, s as CliArchiveInstructionsSuccessSchema, t as CliCommandTransportSchema, u as CliArtifactInstructionsSuccessSchema, v as CliShowSpecSchema, w as CliValidateSchema, y as CliSpecListSchema } from "./command-result-DWMmDl6I.mjs";
12
12
  import { a as CliProjectionInvalidationCauseSchema, d as toCliProjectionCommandEvidence, f as toCliProjectionFailure, i as CliProjectionFailureSchema, l as cliProjectionStates, n as CliProjectionCommandError, o as CliProjectionNoticeSchema, p as toCliProjectionNotice, r as CliProjectionCommandEvidenceSchema, s as CliProjectionStateNameSchema, t as CliJsonValueSchema, u as createCliProjectionStateSchema } from "./cli-projection-Bc2WVwGj.mjs";
13
13
  import { $ as shouldShowTranslationEngineInstallGate, A as TranslationEngineIdSchema, B as TranslationLocalLlamaSettingsUpdateSchema, C as TranslationDownloadGroupPlanSchema, D as TranslationEngineDependencyStatusSchema, E as TranslationEngineDependencyStateSchema, F as TranslationEngineRuntimeStateSchema, G as createTranslationEngineLifecycleStatus, H as TranslationLocalSettingsUpdateSchema, I as TranslationEngineRuntimeStatusSchema, J as getTranslationEngineManifest, K as getManagedLocalTranslationEngineManifest, L as TranslationLocalCt2SettingsSchema, M as TranslationEngineInstallLogStreamSchema, N as TranslationEngineLifecycleEventSchema, O as TranslationEngineGlobalSettingsSchema, P as TranslationEngineLifecycleStatusSchema, Q as isTranslationEngineRuntimeReady, R as TranslationLocalCt2SettingsUpdateSchema, S as TranslationDownloadFilePlanSchema, T as TranslationEngineAssetStatusSchema, U as TranslationOpenAISettingsSchema, V as TranslationLocalSettingsSchema, W as TranslationOpenAISettingsUpdateSchema, X as isManagedLocalTranslationEngineId, Y as isDirectionalManagedLocalTranslationEngineId, Z as isTranslationEngineDependencyReady, _ as SERVICE_TRANSLATION_ENGINE_IDS, a as LocalModelAssetLogSchema, b as TRANSLATION_ENGINE_MANIFESTS, c as LocalModelDownloadStatusSchema, d as LocalModelProfileLoadStateSchema, et as isBatchTranslationAbort, f as LocalModelProfileManifestFileSchema, g as ManagedLocalCatalogSourceSchema, h as LocalModelProfileStatusSchema, i as DEFAULT_TRANSLATION_ENGINE_ID, j as TranslationEngineInstallLogEventSchema, k as TranslationEngineGlobalSettingsUpdateSchema, l as LocalModelLifecycleFileStateSchema, m as LocalModelProfileManifestSchema, n as BatchTranslateInputSchema, nt as runControlledTranslationTask, o as LocalModelAssetPlanSnapshotSchema, p as LocalModelProfileManifestGroupSchema, q as getTranslationEngineLifecycleMessage, s as LocalModelAssetStateSchema, t as BatchTranslateEventSchema, tt as normalizeBatchTranslationError, u as LocalModelLifecycleGroupStateSchema, v as ServiceTranslationEngineIdSchema, w as TranslationEngineAssetStateSchema, x as TRANSLATOR_CONTRACT_VERSION, y as TRANSLATION_ENGINE_IDS, z as TranslationLocalLlamaSettingsSchema } from "./translator-BkNACZ9R.mjs";
14
14
  import { a as ActiveRootOfficialConfigSchema, c as MAX_ACTIVE_ROOT_CONTEXT_BYTES, i as ActiveRootMutationSchema, n as patchActiveRootOfficialFields, o as ActiveRootRevisionSchema, r as validateActiveRootRawYaml, s as ActiveRootStructuredUpdateSchema, t as inspectActiveRootOfficialConfig } from "./active-root-config-K_wVeuI3.mjs";
@@ -16,12 +16,12 @@ import { a as DocumentTranslationDisplayModeSchema, c as TRANSLATION_CACHE_POLIC
16
16
  import { _ as customHashFromSoundId, a as CustomSoundHashSchema, b as soundIdFromCustomHash, c as CustomSoundMetadataSchema, f as LEGACY_SOUND_ID_MAP, g as SoundVolumeSchema, h as SoundIdSchema, i as CUSTOM_SOUND_ADD_VALUE, l as DEFAULT_BELL_SOUND_ID, m as SoundConfigIdSchema, n as BUILTIN_SOUND_OPTIONS, o as CustomSoundIdSchema, p as SILENT_SOUND_ID, r as BuiltinSoundIdSchema, s as CustomSoundMetadataFileSchema, t as BUILTIN_SOUND_IDS, u as DEFAULT_NOTIFICATION_SOUND_ID, v as getBuiltinSoundUrl, y as normalizeLegacySoundId } from "./sounds-cd9lIDxN.mjs";
17
17
  import { n as terminalNotificationEventToPublishInput, t as TerminalControlParser } from "./terminal-control-D893EEN_.mjs";
18
18
  import { a as NotificationPublishInputSchema, c as NotificationSoundSchema, h as groupNotifications, i as NotificationGroupKeySchema, l as NotificationSourceSchema, m as getNotificationGroupLabel, n as NOTIFICATION_SOUND_VALUES, o as NotificationRecordSchema, p as getNotificationGroupKey, r as NotificationActionSchema, s as NotificationSettingsSchema, t as NOTIFICATION_SOUND_OPTIONS, u as TerminalNotificationParser } from "./notifications-D6XlgL9b.mjs";
19
- import { h as parseOpenSpecCliVersion, p as deriveOpenSpecCliCapabilities, u as OPENSPEC_CLI_TARGET_SERIES } from "./openspec-compat-DidEO359.mjs";
19
+ import { h as parseOpenSpecCliVersion, p as deriveOpenSpecCliCapabilities, u as OPENSPEC_CLI_TARGET_SERIES } from "./openspec-compat-DctIDxRM.mjs";
20
20
  import { n as TERMINAL_BELL_SOUND_VALUES, r as TerminalBellSoundSchema, t as TERMINAL_BELL_SOUND_OPTIONS } from "./terminal-audio-CLEDFFpW.mjs";
21
21
  import { a as TERMINAL_THEME_VALUES, i as TERMINAL_THEME_MODE_VALUES, n as DEFAULT_TERMINAL_LIGHT_THEME, r as DEFAULT_TERMINAL_THEME_MODE, t as DEFAULT_TERMINAL_DARK_THEME } from "./terminal-theme-Bse1UdaX.mjs";
22
22
  import { i as selectLocalDownloadGroup, n as buildLocalDownloadPlanFromRepositoryFiles, r as buildLocalDownloadPlanFromRuntimeProfileFiles, t as LOCAL_MODEL_PROFILE_DEFINITIONS } from "./local-download-profiles-3I8AOUJj.mjs";
23
23
  import { n as inferLocalDirectionalModelLanguagePair, t as checkLocalDirectionalModelLanguagePair } from "./translation-language-pair-BTfLQehX.mjs";
24
- import { C as SchemaResolutionSchema, D as isGlobPattern, E as TemplatesSchema, S as SchemaInfoSchema, T as TemplateContentSchema, _ as OpsxCliEvidenceSchema, a as PlanningCliProjectionDataSchema, b as SchemaArtifactSchema, c as ApplyInstructionsContextFilesSchema, d as ApplyTaskSchema, f as ArchiveInstructionsSchema, g as DependencyInfoSchema, h as ChangeStatusSchema, i as EnvironmentGlobalProjectionStateSchema, l as ApplyInstructionsProjectionSchema, m as ArtifactStatusSchema, n as EnvironmentGlobalFileProjectionStateSchema, o as PlanningCliProjectionSelectorSchema, p as ArtifactInstructionsSchema, r as EnvironmentGlobalProjectionDataSchema, s as PlanningCliProjectionStateSchema, t as EnvironmentGlobalFileProjectionDataSchema, u as ApplyInstructionsSchema, v as OpsxConfigBundleSchema, w as TemplateContentMapSchema, x as SchemaDetailSchema, y as OpsxStatusEvidenceSchema } from "./planning-cli-projection-BTkiQ7PG.mjs";
24
+ import { C as SchemaResolutionSchema, D as isGlobPattern, E as TemplatesSchema, S as SchemaInfoSchema, T as TemplateContentSchema, _ as OpsxCliEvidenceSchema, a as PlanningCliProjectionDataSchema, b as SchemaArtifactSchema, c as ApplyInstructionsContextFilesSchema, d as ApplyTaskSchema, f as ArchiveInstructionsSchema, g as DependencyInfoSchema, h as ChangeStatusSchema, i as EnvironmentGlobalProjectionStateSchema, l as ApplyInstructionsProjectionSchema, m as ArtifactStatusSchema, n as EnvironmentGlobalFileProjectionStateSchema, o as PlanningCliProjectionSelectorSchema, p as ArtifactInstructionsSchema, r as EnvironmentGlobalProjectionDataSchema, s as PlanningCliProjectionStateSchema, t as EnvironmentGlobalFileProjectionDataSchema, u as ApplyInstructionsSchema, v as OpsxConfigBundleSchema, w as TemplateContentMapSchema, x as SchemaDetailSchema, y as OpsxStatusEvidenceSchema } from "./planning-cli-projection-pq8vZC1r.mjs";
25
25
  import { a as OPSX_CORE_PROFILE_WORKFLOWS, c as OPSX_WORKFLOW_TO_SKILL_DIR, i as OPSX_COMMAND_CAPABLE_WORKFLOWS, l as isOpsxCoreWorkflowSelection, n as OPSX_ARTIFACT_INPUT_ACTIONS, o as OPSX_TEXT_INPUT_ACTIONS, r as OPSX_CHANGE_INPUT_ACTIONS, s as OPSX_WORKFLOW_LABELS, t as OPSX_ALL_WORKFLOWS } from "./opsx-workflows-BA-46T7_.mjs";
26
26
  import { a as DASHBOARD_METRIC_KEYS, c as DashboardSummaryProjectionSchema, i as DashboardSummaryProjectionStateSchema, l as DashboardTrendsProjectionSchema, n as DashboardSummaryInvalidationCauseSchema, o as DashboardGitSnapshotSchema, r as DashboardSummaryInvalidationSchema, s as DashboardOverviewSchema, t as DashboardSummaryIdentitySchema } from "./dashboard-summary-transport-Do8pzSES.mjs";
27
27
  import { a as StoreListResultSchema, n as StoreDoctorResultSchema, o as classifyStoreCliResult, s as toStoreFeatureResult } from "./store-types-C87SlrJ3.mjs";
@@ -5115,7 +5115,7 @@ function runOpenSpecCliWorker(options) {
5115
5115
  //#endregion
5116
5116
  //#region src/cli-executor.ts
5117
5117
  /**
5118
- * Orthogonal intents (updated 2026-08-15 Asia/Shanghai):
5118
+ * Orthogonal intents (updated 2026-08-28 Asia/Shanghai):
5119
5119
  * 1. Execute buffered CLI work through process/Worker backends with runner recovery, observer-explicit
5120
5120
  * OTel phase evidence, bounded probes, and owner-scoped disposal.
5121
5121
  * 2. Own streaming CLI process trees through cancellation request, escalation, and confirmed settlement.
@@ -5124,10 +5124,13 @@ function runOpenSpecCliWorker(options) {
5124
5124
  * 4. Expose the physically separated OpenSpec 1.6-1.9 typed command facade with response-Span delivery
5125
5125
  * separate from late child-process settlement evidence.
5126
5126
  * 5. Report eager-resolved exit codes as unknown instead of fabricated zeros.
5127
+ * 6. Pass the OpenSpec 1.10 `init --language` context-block option through init/initStream argv only
5128
+ * for a non-empty value.
5127
5129
  *
5128
5130
  * Original request (2026-07-15): "你先负责后端(内核)的开发。"
5129
5131
  * Original request (2026-07-17): "A stream cancellation request is not child-process settlement."
5130
5132
  * Original request (2026-08-15): "v9的适配需要同时适配 1.8和1.9。"
5133
+ * Original request (2026-08-28): "直接将 0.10.0 和 0.11.0 一起适配,然后发布 v11。"
5131
5134
  */
5132
5135
  /** Failure raised when even forced termination cannot confirm child-process close. */
5133
5136
  var CliStreamTerminationError = class extends Error {
@@ -5541,6 +5544,9 @@ var CliExecutor = class {
5541
5544
  }
5542
5545
  /**
5543
5546
  * 执行 openspec init(非交互式)
5547
+ *
5548
+ * `language`(OpenSpec 1.10+)非空时透传 `--language <value>`;CLI 会在
5549
+ * openspec/config.yaml 写入固定三行 context 块,并拒绝覆盖已有配置。
5544
5550
  */
5545
5551
  async init(options) {
5546
5552
  const args = ["init"];
@@ -5550,6 +5556,7 @@ var CliExecutor = class {
5550
5556
  }
5551
5557
  if (options?.profile) args.push("--profile", options.profile);
5552
5558
  if (options?.force) args.push("--force");
5559
+ if (options?.language) args.push("--language", options.language);
5553
5560
  return this.execute(args);
5554
5561
  }
5555
5562
  /**
@@ -5834,6 +5841,8 @@ var CliExecutor = class {
5834
5841
  }
5835
5842
  /**
5836
5843
  * 流式执行 openspec init
5844
+ *
5845
+ * `language`(OpenSpec 1.10+)非空时透传 `--language <value>`。
5837
5846
  */
5838
5847
  initStream(options, onEvent) {
5839
5848
  const args = ["init"];
@@ -5843,6 +5852,7 @@ var CliExecutor = class {
5843
5852
  }
5844
5853
  if (options.profile) args.push("--profile", options.profile);
5845
5854
  if (options.force) args.push("--force");
5855
+ if (options.language) args.push("--language", options.language);
5846
5856
  return this.executeStream(args, onEvent);
5847
5857
  }
5848
5858
  /** Stream the fixed project bootstrap command without installing Agent integrations. */
@@ -6287,26 +6297,57 @@ var RuntimeRootInvalidationRegistry = class {
6287
6297
  //#endregion
6288
6298
  //#region src/agent-delivery-registry.ts
6289
6299
  /**
6290
- * Orthogonal intents (updated 2026-08-15 Asia/Shanghai):
6291
- * 1. Preserve the complete pinned OpenSpec 1.9 Agent delivery registry in one typed physical owner.
6300
+ * Orthogonal intents (updated 2026-08-28 Asia/Shanghai):
6301
+ * 1. Preserve the complete pinned OpenSpec 1.11 Agent delivery registry in one typed physical owner.
6292
6302
  * 2. Co-locate capability, command artifact, invocation, alias, setup, cleanup, and migration metadata.
6293
6303
  * 3. Model current/legacy project roots, user-global skill roots, detection paths, and IDE restart facts.
6294
- * 4. Provide deterministic path-template helpers without reading runtime filesystem state.
6295
- * 5. Select the official inventory per admitted CLI line (1.8 lacks Command Code and restart facts).
6304
+ * 4. Express the single per-series root divergence (Antigravity `.agent` -> `.agents`, 1.11 only)
6305
+ * as typed series overrides so each admitted line selects a faithful snapshot.
6306
+ * 5. Declare the shared `.agents` skills-root owner candidate set and its arbitration order as
6307
+ * metadata only; physical arbitration stays owned by the official CLI and the Server projection.
6308
+ * 6. Select the official inventory per admitted CLI line (1.10 / 1.11).
6296
6309
  *
6297
6310
  * Original request (2026-08-01): adapt the complete OpenSpec 1.7 Agent delivery protocol for OpenSpecUI 7.
6298
6311
  * Original request (2026-08-15): "v9的适配需要同时适配 1.8和1.9。"
6312
+ * Original request (2026-08-28): "直接将 0.10.0 和 0.11.0 一起适配,然后发布 v11。"
6299
6313
  */
6300
6314
  function agentCliSeriesOrder(series) {
6301
- return series === "1.9" ? 19 : 18;
6315
+ switch (series) {
6316
+ case "1.9": return 9;
6317
+ case "1.10": return 10;
6318
+ case "1.11": return 11;
6319
+ }
6302
6320
  }
6321
+ /** Physical project root shared by Codex, Zed Agent, and the vendor-neutral skills target. */
6322
+ const SHARED_AGENTS_SKILLS_ROOT = ".agents";
6323
+ /** Marker file the official CLI writes inside `<root>/skills/` to pin one shared-root writer. */
6324
+ const SHARED_SKILLS_TARGET_MARKER = ".openspec-target";
6325
+ /**
6326
+ * Candidate owners that may render the shared `.agents` skills root, in pinned upstream
6327
+ * registry order (`codex`, `zed`, `agents` on both admitted lines).
6328
+ *
6329
+ * Arbitration is owned by the official CLI and projected by the Server Agent delivery
6330
+ * service — never by this registry — and follows: the `.openspec-target` marker, then
6331
+ * the owner inferred from generated invocation syntax, then `agents` when current skills
6332
+ * already exist, then the `codex` fallback. Antigravity joins the shared root on 1.11
6333
+ * but is adapter-backed and is excluded from skills-writer candidacy; its own
6334
+ * `.agents/workflows` commands root is unaffected by that exclusion.
6335
+ */
6336
+ const SHARED_AGENTS_SKILLS_OWNER_CANDIDATES = [
6337
+ "codex",
6338
+ "zed",
6339
+ "agents"
6340
+ ];
6303
6341
  /**
6304
6342
  * Select the official Agent delivery inventory for one CLI version string.
6305
6343
  *
6306
- * Only a stable, admitted version — current (1.9.x) or supported non-current (1.8.x) — selects
6307
- * an inventory. Unsupported forms (prereleases, >=1.10, below-range) and unparseable output
6308
- * select none: a page-level version bypass must not manufacture a 1.9 inventory for a CLI the
6309
- * release line refuses to admit.
6344
+ * Only a stable, admitted version — current (1.11.x) or supported non-current
6345
+ * (1.10.x) — selects an inventory. Unsupported forms (prereleases, >=1.12,
6346
+ * below-range lines including 1.8/1.9) and unparseable output select none: a
6347
+ * page-level version bypass must not manufacture an admitted inventory for a
6348
+ * CLI the release line refuses to admit. The returned snapshot carries the
6349
+ * per-series physical reality of the selected line (Antigravity roots differ
6350
+ * between 1.10 and 1.11).
6310
6351
  */
6311
6352
  function selectAgentDeliveryRegistry(cliVersion) {
6312
6353
  const series = parseOpenSpecCliSeries(cliVersion);
@@ -6316,12 +6357,11 @@ function selectAgentDeliveryRegistry(cliVersion) {
6316
6357
  if (tool.minCliSeries && agentCliSeriesOrder(tool.minCliSeries) > running) return false;
6317
6358
  return true;
6318
6359
  }).map((tool) => {
6319
- if (tool.requiresIdeRestart !== void 0 && tool.requiresIdeRestartSince && agentCliSeriesOrder(tool.requiresIdeRestartSince) > running) {
6320
- const { ...rest } = tool;
6321
- delete rest.requiresIdeRestart;
6322
- return rest;
6323
- }
6324
- return { ...tool };
6360
+ const { perSeriesOverrides, ...selected } = tool;
6361
+ if (selected.requiresIdeRestart !== void 0 && selected.requiresIdeRestartSince && agentCliSeriesOrder(selected.requiresIdeRestartSince) > running) delete selected.requiresIdeRestart;
6362
+ const override = perSeriesOverrides?.[series];
6363
+ if (override) Object.assign(selected, override);
6364
+ return selected;
6325
6365
  });
6326
6366
  }
6327
6367
  /**
@@ -6329,14 +6369,15 @@ function selectAgentDeliveryRegistry(cliVersion) {
6329
6369
  *
6330
6370
  * Delegates to the single compat version parser so the same stdout that classifies a session
6331
6371
  * also selects its inventory — two parsers must never disagree at this boundary. Returns
6332
- * '1.9' only for stable 1.9.x, '1.8' only for stable 1.8.x, and null for every non-admitted
6333
- * form: prereleases, >=1.10, below-range, or unparseable output.
6372
+ * '1.11' only for stable 1.11.x, '1.10' only for stable 1.10.x, and null for every
6373
+ * non-admitted form: prereleases, >=1.12, below-range lines (including 1.9.x), or
6374
+ * unparseable output.
6334
6375
  */
6335
6376
  function parseOpenSpecCliSeries(cliVersion) {
6336
6377
  const version = parseOpenSpecCliVersion(cliVersion ?? void 0);
6337
6378
  if (!version || version.prerelease !== null) return null;
6338
- if (version.major === 1 && version.minor === 9) return "1.9";
6339
- if (version.major === 1 && version.minor === 8) return "1.8";
6379
+ if (version.major === 1 && version.minor === 11) return "1.11";
6380
+ if (version.major === 1 && version.minor === 10) return "1.10";
6340
6381
  return null;
6341
6382
  }
6342
6383
  const CODEX_MANAGED_PROMPTS = {
@@ -6393,7 +6434,7 @@ const projectCleanup = (...patterns) => ({
6393
6434
  kind: "project-patterns",
6394
6435
  patterns
6395
6436
  });
6396
- /** Complete OpenSpec 1.9 Agent delivery registry in official order. */
6437
+ /** Complete OpenSpec 1.11 Agent delivery registry in official order (the newest admitted line). */
6397
6438
  const AGENT_DELIVERY_REGISTRY = [
6398
6439
  {
6399
6440
  name: "Amazon Q Developer",
@@ -6412,12 +6453,27 @@ const AGENT_DELIVERY_REGISTRY = [
6412
6453
  value: "antigravity",
6413
6454
  available: true,
6414
6455
  successLabel: "Antigravity",
6415
- skillsDir: ".agent",
6456
+ skillsDir: ".agents",
6457
+ legacySkillsDirs: [".agent"],
6458
+ detectionPaths: [".agent", ".agents/workflows"],
6416
6459
  requiresIdeRestart: true,
6417
6460
  requiresIdeRestartSince: "1.9",
6418
6461
  capability: "adapter-backed",
6419
- command: command(".agent/workflows/opsx-{workflow}.md", yamlMarkdown("description")),
6420
- cleanup: projectCleanup(".agent/workflows/openspec-*.md")
6462
+ command: command(".agents/workflows/opsx-{workflow}.md", yamlMarkdown("description")),
6463
+ cleanup: projectCleanup(".agent/workflows/openspec-*.md"),
6464
+ migrations: [{
6465
+ from: ".agent",
6466
+ to: ".agents",
6467
+ needsConsent: false,
6468
+ timing: "after-generation"
6469
+ }],
6470
+ perSeriesOverrides: { "1.10": {
6471
+ skillsDir: ".agent",
6472
+ legacySkillsDirs: void 0,
6473
+ detectionPaths: void 0,
6474
+ command: command(".agent/workflows/opsx-{workflow}.md", yamlMarkdown("description")),
6475
+ migrations: void 0
6476
+ } }
6421
6477
  },
6422
6478
  {
6423
6479
  name: "Auggie (Augment CLI)",
@@ -6498,7 +6554,8 @@ const AGENT_DELIVERY_REGISTRY = [
6498
6554
  migrations: [{
6499
6555
  from: ".codex",
6500
6556
  to: ".agents",
6501
- needsConsent: false
6557
+ needsConsent: false,
6558
+ timing: "after-generation"
6502
6559
  }]
6503
6560
  },
6504
6561
  {
@@ -6816,6 +6873,17 @@ const AGENT_DELIVERY_REGISTRY = [
6816
6873
  capability: "adapter-backed",
6817
6874
  command: command(".trae/commands/opsx-{workflow}.md", yamlMarkdown("name", "description"))
6818
6875
  },
6876
+ {
6877
+ name: "Zed Agent",
6878
+ value: "zed",
6879
+ available: true,
6880
+ successLabel: "Zed Agent",
6881
+ skillsDir: ".agents",
6882
+ detectionPaths: [".zed", ".agents/skills"],
6883
+ minCliSeries: "1.10",
6884
+ capability: "none",
6885
+ command: null
6886
+ },
6819
6887
  {
6820
6888
  name: "ZCode",
6821
6889
  value: "zcode",
@@ -6847,21 +6915,137 @@ function resolveAgentCommandPathTemplate(pathTemplate, workflow) {
6847
6915
  return pathTemplate.replace("{workflow}", workflow);
6848
6916
  }
6849
6917
 
6918
+ //#endregion
6919
+ //#region src/agent-command-content.ts
6920
+ /**
6921
+ * Orthogonal intents (updated 2026-08-28 Asia/Shanghai):
6922
+ * 1. Resolve the running OpenSpec CLI's private command-generation boundary without bundling copied prompts.
6923
+ * 2. Produce exact per-Agent, per-workflow command contents for physical fingerprint comparison.
6924
+ * 3. Fail closed when the configured runner has no importable OpenSpec module or compatible generator contract.
6925
+ * 4. Isolate per-tool adapter absence as version-scoped unavailability, keeping unrelated evidence.
6926
+ * 5. Own command-content equivalence, tolerating exactly the OpenCode provided-arguments
6927
+ * injection line that 1.10+ adapters append to placeholder-free templates.
6928
+ *
6929
+ * Original request (2026-08-01): adapt the complete OpenSpec 1.7 Agent delivery protocol for OpenSpecUI 7.
6930
+
6931
+ * Original request (2026-08-15): "v9的适配需要同时适配 1.8和1.9。"
6932
+ * Original request (2026-08-28): "直接将 0.10.0 和 0.11.0 一起适配,然后发布 v11。"
6933
+ */
6934
+ /**
6935
+ * Passthrough line the OpenCode adapter injects after the complete `**Input**`
6936
+ * contract when a command template carries no argument placeholder of its own
6937
+ * (see the pinned upstream `command-generation/adapters/opencode.ts`). OpenSpecUI
6938
+ * treats this line as generator-owned, so command files may differ by exactly
6939
+ * this line and still be content-current across the admitted series pair.
6940
+ */
6941
+ const OPENCODE_PROVIDED_ARGUMENTS_LINE = "**Provided arguments**: $ARGUMENTS";
6942
+ /** Normalize checkout artifacts that are not real content drift (UTF-8 BOM, CRLF). */
6943
+ function normalizeContentForEquivalence(content) {
6944
+ return content.replace(/^\uFEFF/u, "").replaceAll("\r\n", "\n");
6945
+ }
6946
+ /**
6947
+ * Line-anchored form of the injected passthrough line: it matches only when the
6948
+ * passthrough text stands as a complete line (a newline before it, a newline or end
6949
+ * of content after it), never as a prefix of a longer genuine body line.
6950
+ */
6951
+ const STANDALONE_PROVIDED_ARGUMENTS_LINE_PATTERN = /* @__PURE__ */ new RegExp(`\\n${OPENCODE_PROVIDED_ARGUMENTS_LINE.replace(/[$*]/g, "\\$&")}(?=\\n|$)`);
6952
+ /** Remove at most one standalone injected passthrough line, wherever it sits. */
6953
+ function stripInjectedProvidedArgumentsLine(content) {
6954
+ const match = STANDALONE_PROVIDED_ARGUMENTS_LINE_PATTERN.exec(content);
6955
+ if (!match) return content;
6956
+ return content.slice(0, match.index) + content.slice(match.index + match[0].length);
6957
+ }
6958
+ /**
6959
+ * Whether an on-disk command file is content-equivalent to the expected generated command.
6960
+ *
6961
+ * Equivalence is exact string equality after BOM/CRLF normalization, plus one
6962
+ * deliberate tolerance: the OpenCode passthrough line above may appear as a
6963
+ * standalone line on either side, because 1.10+ adapters inject it while earlier
6964
+ * admitted runners did not. A longer body line that merely starts with the
6965
+ * passthrough text is genuine content, never generator-owned. No other tool or
6966
+ * difference is tolerated.
6967
+ */
6968
+ function isEquivalentAgentCommandContent(toolId, actual, expected) {
6969
+ const normalizedActual = normalizeContentForEquivalence(actual);
6970
+ const normalizedExpected = normalizeContentForEquivalence(expected);
6971
+ if (normalizedActual === normalizedExpected) return true;
6972
+ if (toolId !== "opencode") return false;
6973
+ return stripInjectedProvidedArgumentsLine(normalizedActual) === stripInjectedProvidedArgumentsLine(normalizedExpected);
6974
+ }
6975
+ const KNOWN_WORKFLOWS = new Set(OPSX_ALL_WORKFLOWS);
6976
+ function isRecord(value) {
6977
+ return typeof value === "object" && value !== null;
6978
+ }
6979
+ function isRuntimeSkillGenerationModule(value) {
6980
+ return isRecord(value) && typeof value.getCommandContents === "function";
6981
+ }
6982
+ function isRuntimeCommandAdapterRegistry(value) {
6983
+ if (typeof value !== "object" && typeof value !== "function" || value === null) return false;
6984
+ return "get" in value && typeof value.get === "function";
6985
+ }
6986
+ function isRuntimeCommandGenerationModule(value) {
6987
+ return isRecord(value) && isRuntimeCommandAdapterRegistry(value.CommandAdapterRegistry) && typeof value.generateCommands === "function";
6988
+ }
6989
+ function isRuntimeCommandContent(value) {
6990
+ return isRecord(value) && typeof value.id === "string" && KNOWN_WORKFLOWS.has(value.id);
6991
+ }
6992
+ function isRuntimeGeneratedCommand(value) {
6993
+ return isRecord(value) && typeof value.fileContent === "string";
6994
+ }
6995
+ /**
6996
+ * Load exact command contents from the configured OpenSpec CLI.
6997
+ *
6998
+ * The private generator is intentionally treated as optional evidence. When the runner is not an
6999
+ * importable local OpenSpec module, callers receive `null` and commands-only installs cannot be
7000
+ * declared current from path existence alone.
7001
+ */
7002
+ async function loadOpenSpecAgentCommandContents(cliCommand, workflows) {
7003
+ try {
7004
+ const cliModuleDir = dirname$1((await resolveOpenSpecWorkerInvocation(cliCommand)).modulePath);
7005
+ const [skillGenerationModule, commandGenerationModule] = await Promise.all([import(pathToFileURL(resolve(cliModuleDir, "../core/shared/skill-generation.js")).href), import(pathToFileURL(resolve(cliModuleDir, "../core/command-generation/index.js")).href)]);
7006
+ if (!isRuntimeSkillGenerationModule(skillGenerationModule) || !isRuntimeCommandGenerationModule(commandGenerationModule)) return null;
7007
+ const commandContents = skillGenerationModule.getCommandContents(workflows);
7008
+ if (!Array.isArray(commandContents) || !commandContents.every(isRuntimeCommandContent)) return null;
7009
+ const catalog = {};
7010
+ const unavailableTools = {};
7011
+ for (const tool of AGENT_DELIVERY_REGISTRY) {
7012
+ if (!tool.command) continue;
7013
+ const adapter = commandGenerationModule.CommandAdapterRegistry.get(tool.value);
7014
+ if (!adapter) {
7015
+ unavailableTools[tool.value] = tool.minCliSeries !== void 0 ? `Command adapter first ships with OpenSpec CLI ${tool.minCliSeries}; this runner does not declare it.` : "This OpenSpec CLI runner does not register the command adapter.";
7016
+ continue;
7017
+ }
7018
+ const generatedCommands = commandGenerationModule.generateCommands(commandContents, adapter);
7019
+ if (!Array.isArray(generatedCommands) || generatedCommands.length !== commandContents.length || !generatedCommands.every(isRuntimeGeneratedCommand)) return null;
7020
+ catalog[tool.value] = Object.fromEntries(commandContents.map((content, index) => [content.id, generatedCommands[index]?.fileContent]));
7021
+ }
7022
+ return {
7023
+ catalog,
7024
+ unavailableTools
7025
+ };
7026
+ } catch {
7027
+ return null;
7028
+ }
7029
+ }
7030
+
6850
7031
  //#endregion
6851
7032
  //#region src/tool-init-state.ts
6852
7033
  /**
6853
- * Orthogonal intents (updated 2026-08-15 Asia/Shanghai):
6854
- * 1. Project the unified OpenSpec 1.9 Agent registry into exact skill and command artifact state.
7034
+ * Orthogonal intents (updated 2026-08-28 Asia/Shanghai):
7035
+ * 1. Project the unified OpenSpec 1.11 Agent registry into exact skill and command artifact state.
6855
7036
  * 2. Report partial, stale-version, cleanup-needed, migration-required, and unavailable states from physical evidence.
6856
7037
  * 3. Observe user-global skill roots (e.g. MiniMax Code) without ever cleaning or migrating them here.
6857
7038
  * 4. Preserve bounded reactive directory observation and fresh one-shot cache invalidation.
6858
7039
  * 5. Expose Codex managed-global-prompt observation without treating those prompts as current commands.
7040
+ * 6. Judge generated-by staleness series-aware: either admitted line (1.10.x/1.11.x) is current
7041
+ * for both admitted sessions; only below-admitted generators are stale.
6859
7042
  *
6860
7043
  * Original request (2026-08-01): adapt the complete OpenSpec 1.7 Agent delivery protocol for OpenSpecUI 7.
6861
7044
  * Original request (2026-08-15): "v9的适配需要同时适配 1.8和1.9。"
7045
+ * Original request (2026-08-28): "直接将 0.10.0 和 0.11.0 一起适配,然后发布 v11。"
6862
7046
  */
6863
7047
  /** Pinned source version used when a runtime CLI version is not supplied by the Server owner. */
6864
- const PINNED_AGENT_GENERATOR_VERSION = "1.9.0";
7048
+ const PINNED_AGENT_GENERATOR_VERSION = "1.11.0";
6865
7049
  /** Resolve the physical skills inventory scope for one registry entry. */
6866
7050
  function resolveToolSkillsScope(tool) {
6867
7051
  if (tool.globalSkillsDir) return {
@@ -7011,9 +7195,6 @@ async function readGeneratedByVersion(entries, existingPaths) {
7011
7195
  }
7012
7196
  return null;
7013
7197
  }
7014
- function normalizeCommandContent(content) {
7015
- return content.replace(/^\uFEFF/u, "").replaceAll("\r\n", "\n");
7016
- }
7017
7198
  async function areExpectedCommandContentsCurrent(toolId, entries, existingPaths, commandContents) {
7018
7199
  if (entries.length === 0) return false;
7019
7200
  const expectedContents = commandContents?.[toolId];
@@ -7023,12 +7204,21 @@ async function areExpectedCommandContentsCurrent(toolId, entries, existingPaths,
7023
7204
  const expectedContent = expectedContents[entry.workflow];
7024
7205
  if (!path || expectedContent === void 0) return false;
7025
7206
  const actualContent = await reactiveReadFile(path);
7026
- if (actualContent === null || normalizeCommandContent(actualContent) !== normalizeCommandContent(expectedContent)) return false;
7207
+ if (actualContent === null || !isEquivalentAgentCommandContent(toolId, actualContent, expectedContent)) return false;
7027
7208
  }
7028
7209
  return true;
7029
7210
  }
7030
- function isCurrentGeneratedByVersion(version, expectedVersion, hasAnyArtifacts) {
7031
- return !hasAnyArtifacts || version === expectedVersion;
7211
+ /**
7212
+ * Series-aware generator currency.
7213
+ *
7214
+ * Artifacts whose `generatedBy` stamp names either admitted line (stable 1.10.x or
7215
+ * 1.11.x) are current for both admitted sessions; only below-admitted generators
7216
+ * (and unparseable or future stamps) are stale. The pinned constant never feeds
7217
+ * this comparison — it is fallback display only and never fabricates a live version.
7218
+ */
7219
+ function isCurrentGeneratedByVersion(version, hasAnyArtifacts) {
7220
+ if (!hasAnyArtifacts) return true;
7221
+ return parseOpenSpecCliSeries(version) !== null;
7032
7222
  }
7033
7223
  async function collectCodexCleanup(cleanup) {
7034
7224
  const promptRoot = getExternalCodexCommandObservationRoot();
@@ -7093,7 +7283,7 @@ async function collectCleanup(projectDir, tool, projectRootEntries) {
7093
7283
  kind: projectCleanup$1.paths.length > 0 && globalCleanup ? "mixed" : globalCleanup ? "managed-global-prompts" : "project-artifacts",
7094
7284
  paths,
7095
7285
  workflows,
7096
- replacementLabel: globalCleanup?.replacementLabel ?? "OpenSpec 1.9 Agent delivery"
7286
+ replacementLabel: globalCleanup?.replacementLabel ?? "OpenSpec 1.11 Agent delivery"
7097
7287
  };
7098
7288
  }
7099
7289
  async function collectMigrationEvidence(projectDir, tool, projectRootEntries) {
@@ -7188,7 +7378,7 @@ async function projectToolInitStates(projectDir, options) {
7188
7378
  const migration = migrationEvidence?.state;
7189
7379
  const readiness = !hasAnyArtifacts ? "uninitialized" : isInitialized ? "initialized" : "partial";
7190
7380
  const issues = [];
7191
- if (!isCurrentGeneratedByVersion(generatedByVersion, options.generatorVersion ?? PINNED_AGENT_GENERATOR_VERSION, hasAnyArtifacts)) issues.push("stale-version");
7381
+ if (!isCurrentGeneratedByVersion(generatedByVersion, hasAnyArtifacts)) issues.push("stale-version");
7192
7382
  if (cleanup) issues.push("cleanup-needed");
7193
7383
  if (migration) issues.push("migration-required");
7194
7384
  return {
@@ -7392,75 +7582,6 @@ function applyAgentDeliveryPolicy(config, update) {
7392
7582
  };
7393
7583
  }
7394
7584
 
7395
- //#endregion
7396
- //#region src/agent-command-content.ts
7397
- /**
7398
- * Orthogonal intents (updated 2026-08-15 Asia/Shanghai):
7399
- * 1. Resolve the running OpenSpec CLI's private command-generation boundary without bundling copied prompts.
7400
- * 2. Produce exact per-Agent, per-workflow command contents for physical fingerprint comparison.
7401
- * 3. Fail closed when the configured runner has no importable OpenSpec module or compatible generator contract.
7402
- * 4. Isolate per-tool adapter absence as version-scoped unavailability, keeping unrelated evidence.
7403
- *
7404
- * Original request (2026-08-01): adapt the complete OpenSpec 1.7 Agent delivery protocol for OpenSpecUI 7.
7405
-
7406
- * Original request (2026-08-15): "v9的适配需要同时适配 1.8和1.9。"
7407
- */
7408
- const KNOWN_WORKFLOWS = new Set(OPSX_ALL_WORKFLOWS);
7409
- function isRecord(value) {
7410
- return typeof value === "object" && value !== null;
7411
- }
7412
- function isRuntimeSkillGenerationModule(value) {
7413
- return isRecord(value) && typeof value.getCommandContents === "function";
7414
- }
7415
- function isRuntimeCommandAdapterRegistry(value) {
7416
- if (typeof value !== "object" && typeof value !== "function" || value === null) return false;
7417
- return "get" in value && typeof value.get === "function";
7418
- }
7419
- function isRuntimeCommandGenerationModule(value) {
7420
- return isRecord(value) && isRuntimeCommandAdapterRegistry(value.CommandAdapterRegistry) && typeof value.generateCommands === "function";
7421
- }
7422
- function isRuntimeCommandContent(value) {
7423
- return isRecord(value) && typeof value.id === "string" && KNOWN_WORKFLOWS.has(value.id);
7424
- }
7425
- function isRuntimeGeneratedCommand(value) {
7426
- return isRecord(value) && typeof value.fileContent === "string";
7427
- }
7428
- /**
7429
- * Load exact command contents from the configured OpenSpec CLI.
7430
- *
7431
- * The private generator is intentionally treated as optional evidence. When the runner is not an
7432
- * importable local OpenSpec module, callers receive `null` and commands-only installs cannot be
7433
- * declared current from path existence alone.
7434
- */
7435
- async function loadOpenSpecAgentCommandContents(cliCommand, workflows) {
7436
- try {
7437
- const cliModuleDir = dirname$1((await resolveOpenSpecWorkerInvocation(cliCommand)).modulePath);
7438
- const [skillGenerationModule, commandGenerationModule] = await Promise.all([import(pathToFileURL(resolve(cliModuleDir, "../core/shared/skill-generation.js")).href), import(pathToFileURL(resolve(cliModuleDir, "../core/command-generation/index.js")).href)]);
7439
- if (!isRuntimeSkillGenerationModule(skillGenerationModule) || !isRuntimeCommandGenerationModule(commandGenerationModule)) return null;
7440
- const commandContents = skillGenerationModule.getCommandContents(workflows);
7441
- if (!Array.isArray(commandContents) || !commandContents.every(isRuntimeCommandContent)) return null;
7442
- const catalog = {};
7443
- const unavailableTools = {};
7444
- for (const tool of AGENT_DELIVERY_REGISTRY) {
7445
- if (!tool.command) continue;
7446
- const adapter = commandGenerationModule.CommandAdapterRegistry.get(tool.value);
7447
- if (!adapter) {
7448
- unavailableTools[tool.value] = tool.minCliSeries !== void 0 ? `Command adapter first ships with OpenSpec CLI ${tool.minCliSeries}; this runner does not declare it.` : "This OpenSpec CLI runner does not register the command adapter.";
7449
- continue;
7450
- }
7451
- const generatedCommands = commandGenerationModule.generateCommands(commandContents, adapter);
7452
- if (!Array.isArray(generatedCommands) || generatedCommands.length !== commandContents.length || !generatedCommands.every(isRuntimeGeneratedCommand)) return null;
7453
- catalog[tool.value] = Object.fromEntries(commandContents.map((content, index) => [content.id, generatedCommands[index]?.fileContent]));
7454
- }
7455
- return {
7456
- catalog,
7457
- unavailableTools
7458
- };
7459
- } catch {
7460
- return null;
7461
- }
7462
- }
7463
-
7464
7585
  //#endregion
7465
7586
  //#region src/hooks.ts
7466
7587
  const OPENSPECUI_DOCUMENT_HOOK_VERSION = 1;
@@ -7597,13 +7718,23 @@ function snapshotHasAbsolutePath(snapshot) {
7597
7718
  //#endregion
7598
7719
  //#region src/cli-projection-sequence.ts
7599
7720
  /**
7600
- * Orthogonal intents (created 2026-07-31 Asia/Shanghai):
7721
+ * Orthogonal intents (updated 2026-08-28 Asia/Shanghai):
7601
7722
  * 1. Submit aggregate CLI projection entities lazily while preserving source order.
7602
7723
  * 2. Prevent one aggregate read from pre-filling the shared buffered CLI admission queue.
7724
+ * 3. Document that the capability-gated OpenSpec 1.11 batch status command satisfies the
7725
+ * same one-admission-slot constraint by construction: it is exactly one spawn, so the
7726
+ * status-list aggregates never need a per-entity series for transport admission.
7603
7727
  *
7604
7728
  * Original request (2026-07-31): "系统性地进行修复,因为List页面也有类似的问题。所有可能其它页面都有类似的问题。"
7729
+ * Original request (2026-08-28): "直接将 0.10.0 和 0.11.0 一起适配,然后发布 v11。"
7730
+ */
7731
+ /**
7732
+ * Map CLI-backed projection entities in order, admitting only the current entity.
7733
+ *
7734
+ * A capability-gated single-spawn batch command (see `OpsxKernel`'s `status --all`
7735
+ * transport) is its own serial admission unit and bypasses this helper legitimately;
7736
+ * every transport that still spawns per entity must keep submitting through it.
7605
7737
  */
7606
- /** Map CLI-backed projection entities in order, admitting only the current entity. */
7607
7738
  async function mapCliProjectionSeries(inputs, project) {
7608
7739
  const outputs = [];
7609
7740
  for (const [index, input] of inputs.entries()) outputs.push(await project(input, index));
@@ -7613,16 +7744,20 @@ async function mapCliProjectionSeries(inputs, project) {
7613
7744
  //#endregion
7614
7745
  //#region src/opsx-kernel.ts
7615
7746
  /**
7616
- * Orthogonal intents (updated 2026-08-15 Asia/Shanghai):
7747
+ * Orthogonal intents (updated 2026-08-28 Asia/Shanghai):
7617
7748
  * 1. Maintain reactive CLI-backed projections and their direct typed Projection Work readers.
7618
7749
  * 2. Share and release per-entity streams through one planning-root kernel lifecycle.
7619
7750
  * 3. Keep OpenSpec configuration ownership outside the workflow cache while tracking both YAML filename variants.
7620
7751
  * 4. Preserve typed Status and Artifact/Apply/Archive Instructions provenance with the resolved root selector.
7621
7752
  * 5. Resolve per-command CLI capabilities once per lifetime and gate version-only selectors behind admission.
7753
+ * 6. Serve the status-list projections through the capability-gated OpenSpec 1.11 batch transport
7754
+ * (one `status --all` spawn) with projections, per-change dependencies, and failure evidence
7755
+ * identical to the per-change serial transport; 1.10 sessions keep the serial path.
7622
7756
  *
7623
7757
  * Original request (2026-07-15): "Planning-root adapters and services consume the CLI-resolved root."
7624
7758
  * Original request (2026-07-31): "系统性地进行修复,因为List页面也有类似的问题。所有可能其它页面都有类似的问题。"
7625
7759
  * Original request (2026-08-15): "v9的适配需要同时适配 1.8和1.9。"
7760
+ * Original request (2026-08-28): "直接将 0.10.0 和 0.11.0 一起适配,然后发布 v11。"
7626
7761
  */
7627
7762
  function toRelativePath(root, absolutePath) {
7628
7763
  return relative(root, absolutePath).split(sep).join("/");
@@ -7770,6 +7905,40 @@ function createOpsxCliEvidence(result, command$1, rootSelector) {
7770
7905
  function createOpsxStatusEvidence(result, rootSelector) {
7771
7906
  return OpsxStatusEvidenceSchema.parse(createOpsxCliEvidence(result, "status", rootSelector));
7772
7907
  }
7908
+ /**
7909
+ * Project one CLI Status success payload into the retained ChangeStatus shape.
7910
+ *
7911
+ * Shared by the per-change serial transport and the OpenSpec 1.11 batch transport so both
7912
+ * publish byte-identical projection semantics; only the command evidence differs because
7913
+ * it honestly records the transport that produced the payload.
7914
+ */
7915
+ function projectWorkflowStatus(data, evidence) {
7916
+ return ChangeStatusSchema.parse({
7917
+ changeName: data.changeName,
7918
+ schemaName: data.schemaName,
7919
+ isPlanningComplete: data.isPlanningComplete,
7920
+ applyRequires: data.applyRequires,
7921
+ artifacts: data.artifacts,
7922
+ provenance: {
7923
+ kind: "cli",
7924
+ planningHome: data.planningHome,
7925
+ changeRoot: data.changeRoot,
7926
+ artifactPaths: data.artifactPaths,
7927
+ nextSteps: data.nextSteps,
7928
+ actionContext: data.actionContext,
7929
+ root: data.root,
7930
+ evidence
7931
+ }
7932
+ });
7933
+ }
7934
+ /** Publish artifact relative paths and register the same reactive deps as the serial transport. */
7935
+ async function settleStatusArtifactDeps(projectDir, changeId, status) {
7936
+ const changeRelDir = `openspec/changes/${changeId}`;
7937
+ for (const artifact of status.artifacts) if (artifact.status !== "skipped") {
7938
+ artifact.relativePath = `${changeRelDir}/${artifact.outputPath}`;
7939
+ await touchArtifactOutputDeps(projectDir, changeId, artifact.outputPath);
7940
+ }
7941
+ }
7773
7942
  var OpsxKernel = class {
7774
7943
  projectDir;
7775
7944
  cliExecutor;
@@ -8148,36 +8317,99 @@ var OpsxKernel = class {
8148
8317
  ...schema ? { schema } : {}
8149
8318
  });
8150
8319
  const evidence = createOpsxStatusEvidence(result, this.rootSelector);
8151
- const data = requireCommandData("openspec status", result, CliWorkflowStatusSuccessSchema);
8152
- const status = ChangeStatusSchema.parse({
8153
- changeName: data.changeName,
8154
- schemaName: data.schemaName,
8155
- isPlanningComplete: data.isPlanningComplete,
8156
- applyRequires: data.applyRequires,
8157
- artifacts: data.artifacts,
8158
- provenance: {
8159
- kind: "cli",
8160
- planningHome: data.planningHome,
8161
- changeRoot: data.changeRoot,
8162
- artifactPaths: data.artifactPaths,
8163
- nextSteps: data.nextSteps,
8164
- actionContext: data.actionContext,
8165
- root: data.root,
8166
- evidence
8167
- }
8320
+ const status = projectWorkflowStatus(requireCommandData("openspec status", result, CliWorkflowStatusSuccessSchema), evidence);
8321
+ await settleStatusArtifactDeps(this.projectDir, changeId, status);
8322
+ return status;
8323
+ }
8324
+ /**
8325
+ * Capability-gated OpenSpec 1.11 batch Status transport for the status-list projections.
8326
+ *
8327
+ * Returns `null` when the admitted session cannot run `status --all` (OpenSpec 1.10, an
8328
+ * unverifiable CLI, or a typed capability refusal) so callers keep the per-change serial
8329
+ * transport. One spawn replaces the per-change spawns; healthy entries reuse the exact
8330
+ * per-change projection (shared decoder plus shared reactive dependency touching), a
8331
+ * per-change failure entry stays that change's own evidence, and only an unparseable
8332
+ * envelope or the root-selection null shape rejects the aggregate. The single spawn
8333
+ * occupies one buffered-admission slot by construction, so the serial aggregate
8334
+ * submission constraint holds without mapCliProjectionSeries.
8335
+ */
8336
+ async fetchBatchStatusListProjection(changeIds) {
8337
+ const capabilities = await this.resolveCliCapabilities();
8338
+ if (!capabilities.batchStatus) return null;
8339
+ await touchOpsxProjectDeps(this.projectDir);
8340
+ for (const changeId of changeIds) await touchOpsxChangeDeps(this.projectDir, changeId);
8341
+ const gated = await this.cliExecutor.contracts.workflowStatusAll({
8342
+ ...this.rootSelector,
8343
+ capabilities: { batchStatus: capabilities.batchStatus }
8168
8344
  });
8169
- const changeRelDir = `openspec/changes/${changeId}`;
8170
- for (const artifact of status.artifacts) if (artifact.status !== "skipped") {
8171
- artifact.relativePath = `${changeRelDir}/${artifact.outputPath}`;
8172
- await touchArtifactOutputDeps(this.projectDir, changeId, artifact.outputPath);
8345
+ if (gated.kind === "unavailable") return null;
8346
+ const result = gated.result;
8347
+ const batch = result.data;
8348
+ if (!batch) throw new CliProjectionCommandError(result.contractError || result.stderr.trim() || result.diagnostics.map((diagnostic) => diagnostic.message).join("\n") || `openspec status --all failed (exit ${result.exitCode ?? "null"})`, result);
8349
+ if (batch.root === null) throw new CliProjectionCommandError((batch.status ?? []).map((diagnostic) => diagnostic.message).join("\n") || "openspec status --all failed to select a Root.", result);
8350
+ const statusEvidence = createOpsxStatusEvidence(result, this.rootSelector);
8351
+ const entries = /* @__PURE__ */ new Map();
8352
+ for (const entry of batch.changes) entries.set(entry.changeName, entry);
8353
+ const resolutions = /* @__PURE__ */ new Map();
8354
+ for (const changeId of changeIds) {
8355
+ const entry = entries.get(changeId);
8356
+ if (!entry) {
8357
+ resolutions.set(changeId, { kind: "missing" });
8358
+ continue;
8359
+ }
8360
+ if (isCliBatchStatusEntryFailure(entry)) {
8361
+ resolutions.set(changeId, { kind: "per-change-failure" });
8362
+ continue;
8363
+ }
8364
+ const parsed = CliWorkflowStatusSuccessSchema.safeParse({
8365
+ ...entry,
8366
+ root: batch.root
8367
+ });
8368
+ if (!parsed.success) throw new CliProjectionCommandError(`openspec status --all entry "${changeId}" drifted from the Status contract: ${parsed.error.issues.map((issue) => `${issue.path.join(".") || "<root>"}: ${issue.message}`).join("; ")}`, result);
8369
+ const status = projectWorkflowStatus(parsed.data, statusEvidence);
8370
+ await settleStatusArtifactDeps(this.projectDir, changeId, status);
8371
+ resolutions.set(changeId, {
8372
+ kind: "status",
8373
+ status
8374
+ });
8173
8375
  }
8174
- return status;
8376
+ return {
8377
+ resolutions,
8378
+ evidence: toCliProjectionCommandEvidence(result)
8379
+ };
8175
8380
  }
8176
8381
  async fetchStatusList() {
8177
8382
  await this.ensureChangeIds();
8178
8383
  const changeIds = this._changeIds.get();
8179
- await mapCliProjectionSeries(changeIds, (id) => this.ensureStatus(id));
8180
- return changeIds.map((id) => this.getStatus(id));
8384
+ const batch = await this.fetchBatchStatusListProjection(changeIds);
8385
+ if (!batch) {
8386
+ await mapCliProjectionSeries(changeIds, (id) => this.ensureStatus(id));
8387
+ return changeIds.map((id) => this.getStatus(id));
8388
+ }
8389
+ const statuses = [];
8390
+ for (const changeId of changeIds) {
8391
+ const resolution = batch.resolutions.get(changeId);
8392
+ if (resolution?.kind === "status") {
8393
+ this.retainStatusState(changeId, resolution.status);
8394
+ statuses.push(resolution.status);
8395
+ continue;
8396
+ }
8397
+ try {
8398
+ await this.ensureStatus(changeId);
8399
+ statuses.push(this.getStatus(changeId));
8400
+ } catch {}
8401
+ }
8402
+ return statuses;
8403
+ }
8404
+ /** Publish one batch-projected Status into the existing per-change status cache. */
8405
+ retainStatusState(changeId, status, schema) {
8406
+ const key = `${requireCanonicalOpenSpecEntityId(changeId, "changeId")}:${schema ?? ""}`;
8407
+ let state = this._statuses.get(key);
8408
+ if (!state) {
8409
+ state = new ReactiveState(null);
8410
+ this._statuses.set(key, state);
8411
+ }
8412
+ state.set(status);
8181
8413
  }
8182
8414
  async fetchInstructions(changeId, artifact, schema) {
8183
8415
  await touchOpsxProjectDeps(this.projectDir);
@@ -8333,10 +8565,25 @@ var OpsxKernel = class {
8333
8565
  /** Execute the current Change Status list without joining the Kernel's retained entity streams. */
8334
8566
  async readStatusListProjection() {
8335
8567
  const changeList = await this.fetchChangeListProjection();
8336
- return {
8568
+ const batch = await this.fetchBatchStatusListProjection(changeList.value);
8569
+ if (!batch) return {
8337
8570
  value: await mapCliProjectionSeries(changeList.value, (changeId) => this.fetchStatus(changeId)),
8338
8571
  evidence: changeList.evidence
8339
8572
  };
8573
+ const value = [];
8574
+ for (const changeId of changeList.value) {
8575
+ const resolution = batch.resolutions.get(changeId);
8576
+ if (resolution?.kind === "status") {
8577
+ value.push(resolution.status);
8578
+ continue;
8579
+ }
8580
+ if (resolution?.kind === "per-change-failure") continue;
8581
+ value.push(await this.fetchStatus(changeId));
8582
+ }
8583
+ return {
8584
+ value,
8585
+ evidence: batch.evidence
8586
+ };
8340
8587
  }
8341
8588
  /** Execute one artifact-instructions projection in the caller-owned Work generation. */
8342
8589
  readInstructionsProjection(changeId, artifact, schema) {
@@ -8678,4 +8925,4 @@ const PtyServerMessageSchema = z.discriminatedUnion("type", [
8678
8925
  ]);
8679
8926
 
8680
8927
  //#endregion
8681
- export { ACCESS_GATE_CREDENTIAL_BYTES, AI_TOOLS, ActiveRootMutationSchema, ActiveRootOfficialConfigSchema, ActiveRootRevisionSchema, ActiveRootStructuredUpdateSchema, AgentDeliveryModeSchema, AgentDeliveryPolicyUpdateSchema, AgentDeliveryProfileSchema, AgentDeliveryWorkflowSchema, ApplyInstructionsContextFilesSchema, ApplyInstructionsProjectionSchema, ApplyInstructionsSchema, ApplyTaskSchema, ArchiveInstructionsSchema, ArtifactInstructionsSchema, ArtifactStatusSchema, BUILTIN_SOUND_IDS, BUILTIN_SOUND_OPTIONS, BUILTIN_TERMINAL_SPAWN_COMMANDS, BatchTranslateEventSchema, BatchTranslateInputSchema, BuiltinSoundIdSchema, CODE_EDITOR_THEME_VALUES, CUSTOM_SOUND_ADD_VALUE, ChangeFileSchema, ChangeSchema, ChangeStatusSchema, CliApplyInstructionsSchema, CliArchiveInstructionsSchema, CliArchiveSchema, CliArtifactInstructionsSchema, CliChangeListSchema, CliCommandTransportSchema, CliContextSchema, CliDiagnosticFailureSchema, CliDiagnosticSchema, CliDoctorReferenceEntrySchema, CliDoctorSchema, CliExecutor, CliJsonValueSchema, CliProjectionCommandError, CliProjectionCommandEvidenceSchema, CliProjectionFailureSchema, CliProjectionInvalidationCauseSchema, CliProjectionNoticeSchema, CliProjectionStateNameSchema, CliReferenceIndexEntrySchema, CliRootSchema, CliRootSourceSchema, CliShowSpecDocumentSchema, CliShowSpecSchema, CliSpecListSchema, CliStoreCleanupSchema, CliStoreDoctorEntrySchema, CliStoreDoctorSchema, CliStoreListSchema, CliStoreMutationSchema, CliStoreSchema, CliStreamTerminationError, CliValidateReportSchema, CliValidateSchema, CliWorkflowStatusSchema, CodeEditorThemeSchema, ConfigManager, CustomSoundHashSchema, CustomSoundIdSchema, CustomSoundMetadataFileSchema, CustomSoundMetadataSchema, DASHBOARD_METRIC_KEYS, DEFAULT_BELL_SOUND_ID, DEFAULT_CONFIG, DEFAULT_GIT_DIFF_EAGER_LINE_BUDGET, DEFAULT_GLOBAL_SETTINGS, DEFAULT_NOTIFICATION_SOUND_ID, DEFAULT_TERMINAL_DARK_THEME, DEFAULT_TERMINAL_LIGHT_THEME, DEFAULT_TERMINAL_THEME_MODE, DEFAULT_TRANSLATION_CACHE_ENTRY_LIMIT, DEFAULT_TRANSLATION_ENGINE_ID, DOCUMENT_TRANSLATION_DISPLAY_MODES, DashboardConfigSchema, DashboardGitSnapshotSchema, DashboardOverviewSchema, DashboardSummaryIdentitySchema, DashboardSummaryInvalidationCauseSchema, DashboardSummaryInvalidationSchema, DashboardSummaryProjectionSchema, DashboardSummaryProjectionStateSchema, DashboardTrendsProjectionSchema, DeltaOperationType, DeltaSchema, DeltaSpecSchema, DependencyInfoSchema, DocumentTranslationConfigSchema, DocumentTranslationConfigUpdateSchema, DocumentTranslationDisplayModeSchema, DocumentTranslationGlobalSettingsUpdateSchema, EnvironmentDefaultStoreUpdateSchema, EnvironmentGlobalConfigValueSchema, EnvironmentGlobalFileProjectionDataSchema, EnvironmentGlobalFileProjectionStateSchema, EnvironmentGlobalProjectionDataSchema, EnvironmentGlobalProjectionStateSchema, FILE_PREVIEW_KINDS, GitConfigSchema, GlobalSettingsManager, HOSTED_SHELL_PROTOCOL_VERSION, LEGACY_SOUND_ID_MAP, LOCAL_MODEL_PROFILE_DEFINITIONS, LocalModelAssetLogSchema, LocalModelAssetPlanSnapshotSchema, LocalModelAssetStateSchema, LocalModelDownloadStatusSchema, LocalModelLifecycleFileStateSchema, LocalModelLifecycleGroupStateSchema, LocalModelProfileLoadStateSchema, LocalModelProfileManifestFileSchema, LocalModelProfileManifestGroupSchema, LocalModelProfileManifestSchema, LocalModelProfileStatusSchema, MAX_ACTIVE_ROOT_CONTEXT_BYTES, MAX_TRANSLATION_CACHE_ENTRY_LIMIT, MIN_TRANSLATION_CACHE_ENTRY_LIMIT, ManagedLocalCatalogSourceSchema, MarkdownParser, MarkdownReadingPluginRegistry, NOTIFICATION_SOUND_OPTIONS, NOTIFICATION_SOUND_VALUES, NotificationActionSchema, NotificationGroupKeySchema, NotificationPublishInputSchema, NotificationRecordSchema, NotificationSettingsSchema, NotificationSoundSchema, NotificationSourceSchema, OFFICIAL_APP_BASE_URL, OPENSPECUI_DOCUMENT_HOOK_VERSION, OPENSPECUI_RUNTIME_CAPABILITIES, OPENSPECUI_WORKFLOW_HOOK_VERSION, OPENSPEC_SPAWN_MODE_ENV, OPEN_SPEC_DATA_DIRECTORY_NAME, OPEN_SPEC_DATA_HOME_OBSERVATION_TARGETS, OPEN_SPEC_READING_SECTIONS_PROJECTION_ID, OPEN_SPEC_SPEC_PROJECTION_ID, OPSX_AGENT_INVOCATION_MODE_VALUES, OPSX_ALL_WORKFLOWS, OPSX_ARTIFACT_INPUT_ACTIONS, OPSX_CHANGE_INPUT_ACTIONS, OPSX_COMMAND_CAPABLE_WORKFLOWS, OPSX_CORE_PROFILE_WORKFLOWS, OPSX_TEXT_INPUT_ACTIONS, OPSX_WORKFLOW_LABELS, OPSX_WORKFLOW_TO_SKILL_DIR, OPSX_WORKFLOW_TO_SKILL_DIR as TOOL_WORKFLOW_TO_SKILL_DIR, OpenSpecAdapter, OpenSpecCliContractExecutor, OpenSpecDataHomeObserver, OpenSpecUIConfigSchema, OpenSpecUIGlobalSettingsSchema, OpenSpecUIGlobalSettingsUpdateSchema, OpenSpecWatcher, OpsxAgentInvocationModeSchema, OpsxCliEvidenceSchema, OpsxConfigBundleSchema, OpsxConfigSchema, OpsxKernel, OpsxStatusEvidenceSchema, OwnedSpecIdentitySchema, PINNED_AGENT_GENERATOR_VERSION, PlanningCliProjectionDataSchema, PlanningCliProjectionSelectorSchema, PlanningCliProjectionStateSchema, PlanningConfigJsonValueSchema, PlanningConfigReferenceSchema, ProjectBindingUpdateSchema, ProjectWatcher, PtyAttachMessageSchema, PtyBellResponseSchema, PtyBufferResponseSchema, PtyClientMessageSchema, PtyCloseMessageSchema, PtyCreateMessageSchema, PtyCreatedResponseSchema, PtyErrorCodeSchema, PtyErrorResponseSchema, PtyExitResponseSchema, PtyInputMessageSchema, PtyListMessageSchema, PtyListResponseSchema, PtyOutputResponseSchema, PtyPlatformSchema, PtyProcessTitleResponseSchema, PtyResizeMessageSchema, PtyServerMessageSchema, PtyTitleResponseSchema, RUNTIME_INVALIDATION_FACETS, ReactiveContext, ReactiveObservationEnvironment, ReactiveState, ReferencedSpecIdentitySchema, RequirementSchema, RuntimeInvalidationIndex, RuntimeRootInvalidationRegistry, SERVE_PRESENTATION_MODES, SERVICE_TRANSLATION_ENGINE_IDS, SILENT_SOUND_ID, ScenarioStepKeywordSchema, ScenarioStepSchema, SchemaArtifactSchema, SchemaDetailSchema, SchemaInfoSchema, SchemaResolutionSchema, ServePresentationModeSchema, ServiceTranslationEngineIdSchema, SoundConfigIdSchema, SoundIdSchema, SpecCatalogSchema, SpecCommandEvidenceSchema, SpecDocumentProjectionSchema, SpecIdentitySchema, SpecSchema, StoreDoctorResultSchema, StoreListResultSchema, StoreMutationLifecycleEventSchema, StoreMutationResultSchema, StoreMutationSchema, StoreMutationStartResponseSchema, TERMINAL_BELL_SOUND_OPTIONS, TERMINAL_BELL_SOUND_VALUES, TERMINAL_COMMAND_FIELD_TYPE_VALUES, TERMINAL_SHELL_QUOTE_STYLE_VALUES, TERMINAL_THEME_MODE_VALUES, TERMINAL_THEME_VALUES, TRANSLATION_CACHE_POLICY_VERSION, TRANSLATION_ENGINE_IDS, TRANSLATION_ENGINE_MANIFESTS, TRANSLATOR_CONTRACT_VERSION, TaskSchema, TemplateContentMapSchema, TemplateContentSchema, TemplatesSchema, TerminalBellSoundSchema, TerminalCommandFieldSchema, TerminalConfigSchema, TerminalControlParser, TerminalCwdTargetSchema, TerminalInvocationSettingsSchema, TerminalNotificationParser, TerminalRendererEngineSchema, TerminalShellProfileSchema, TerminalShellQuoteStyleSchema, TerminalSpawnCommandSchema, TerminalThemeModeSchema, TerminalThemeSchema, TrackedTaskProgressSchema, TranslationCacheEntrySchema, TranslationCacheReadInputSchema, TranslationCacheSettingsSchema, TranslationCacheSettingsUpdateSchema, TranslationCacheStatsSchema, TranslationCacheWriteInputSchema, TranslationDownloadFilePlanSchema, TranslationDownloadGroupPlanSchema, TranslationEngineAssetStateSchema, TranslationEngineAssetStatusSchema, TranslationEngineDependencyStateSchema, TranslationEngineDependencyStatusSchema, TranslationEngineGlobalSettingsSchema, TranslationEngineGlobalSettingsUpdateSchema, TranslationEngineIdSchema, TranslationEngineInstallLogEventSchema, TranslationEngineInstallLogStreamSchema, TranslationEngineLifecycleEventSchema, TranslationEngineLifecycleStatusSchema, TranslationEngineProjectSettingsSchema, TranslationEngineProjectSettingsUpdateSchema, TranslationEngineRuntimeStateSchema, TranslationEngineRuntimeStatusSchema, TranslationLocalCt2SettingsSchema, TranslationLocalCt2SettingsUpdateSchema, TranslationLocalLlamaSettingsSchema, TranslationLocalLlamaSettingsUpdateSchema, TranslationLocalSettingsSchema, TranslationLocalSettingsUpdateSchema, TranslationOpenAISettingsSchema, TranslationOpenAISettingsUpdateSchema, VIRTUAL_PROJECT_DIRNAME, Validator, accessGateFingerprint, acquireWatcher, acquireWatcherRoot, annotateOpenSpecFacts, annotateOpenSpecMarkdown, applyAgentDeliveryPolicy, asEnvUri, buildBackendHealthPayload, buildCliRunnerCandidates, buildEmbeddedUiLaunchUrl, buildHostedLaunchUrl, buildLocalDownloadPlanFromRepositoryFiles, buildLocalDownloadPlanFromRuntimeProfileFiles, buildMarkdownParentMap, buildOpsxEntityDetail, buildRuntimePackageInstallCommand, buildSpecCatalog, builtinOpenSpecReadingPlugin, checkLocalDirectionalModelLanguagePair, classifyStoreCliResult, clearCache, cliProjectionStates, closeAllProjectWatchers, closeAllWatchers, compareAndWriteAtomicPhysicalReactiveFile, computeEnvUri, constantTimeEqual, contextStorage, createApplyInstructionProgress, createCleanCliEnv, createCliProjectionStateSchema, createDocumentChecklistSummary, createFileChangeObservable, createMarkdownReadingDocument, createMarkdownReadingDocumentFromFacts, createOpenSpecReadingPlugin, createPhysicalReactiveDirectory, createStaticSpecCatalogOwnedProjection, createStaticSpecCatalogReferenceProjection, createStaticSpecCatalogReferenceSource, createToolInitStateProjection, createTrackedTaskProgress, createTranslationEngineLifecycleStatus, customHashFromSoundId, deriveTrackedTaskPhase, detectRuntimePackageManager, generateAccessGateCredential, getActiveWatcherCount, getAllToolIds, getAllTools, getAvailableToolIds, getAvailableTools, getBuiltinSoundUrl, getCacheSize, getConfiguredTools, getDefaultCliCommand, getDefaultCliCommandString, getDefaultGlobalSettingsPath, getDetectedProjectTools, getExternalAgentSkillsObservationRoots, getExternalCodexCommandObservationRoot, getManagedLocalTranslationEngineManifest, getMarkdownAnnotation, getMarkdownAnnotationsForFact, getMarkdownFactSpan, getMarkdownHeadingEnd, getMarkdownHeadingFacts, getNotificationGroupKey, getNotificationGroupLabel, getOpenSpecAnnotation, getOpenSpecAnnotationsForFact, getOpenSpecProjectionAnnotation, getOpenSpecReadingSections, getOpsxEntityMetadataPath, getOpsxEntityRootRelativePath, getProjectWatcher, getRootContextCliSelector, getSpecCatalogEntry, getTerminalCommandDefaultValues, getToolById, getToolInitStates, getTranslationEngineLifecycleMessage, getTranslationEngineManifest, getWatcherRuntimeStatus, groupNotifications, hasCapability, inferFileMime, inferFilePreviewKind, inferLocalDirectionalModelLanguagePair, inspectActiveRootOfficialConfig, inspectEnvironmentDefaultStore, inspectProjectBinding, isBackendHealthRuntimeMetadata, isBatchTranslationAbort, isDirectionalManagedLocalTranslationEngineId, isGlobPattern, isHostedBackendHealthResponse, isManagedLocalTranslationEngineId, isMarkdownTaskSourcePath, isOpsxCoreWorkflowSelection, isOpsxGlobPattern, isPreviewableFile, isReferencedSpecIdentity, isSupportedEmbeddedUiUrl, isTerminalMutationStatus, isTerminalRendererEngine, isTextLikeFile, isTextLikeMime, isToolConfigured, isTranslationEngineDependencyReady, isTranslationEngineRuntimeReady, isWatcherPoolInitialized, loadOpenSpecAgentCommandContents, mergeSpecCatalog, normalizeAccessGatePassword, normalizeAgentDeliveryPolicy, normalizeBatchTranslationError, normalizeEmbeddedUiUrl, normalizeHostedAppBaseUrl, normalizeLegacySoundId, normalizeOpsxEntityPath, openSpecAnnotationRules, opsxGlobToRegex, opsxPathMatchesPattern, parseCliCommand, parseCliCommandResult, parseMarkdownFacts, parseMarkdownTasks, parseOpenSpecMarkdownToSpec, parseOpsxEntityMetadata, parseOpsxSchemaDetail, patchActiveRootOfficialFields, projectAnnotatedOpenSpecToSpec, projectOpenSpecMarkdown, projectTaskProjectionsFromMarkdownFiles, quoteTerminalShellArg, reactiveExists, reactiveReadDir, reactiveReadFile, reactiveStat, redactSnapshotForPublication, removePhysicalReactivePath, renderTerminalCommandArgs, renderTerminalSpawnCommandLine, replaceFileAtomically, requireCanonicalOpenSpecEntityId, requireCanonicalOpenSpecSpecId, requireOpenSpecEntityRelativePath, resolveCommandInvocation, resolveGlobalSkillsInventoryDir, resolveHostedAppBaseUrl, resolveOpenSpecDataScope, resolveOpenSpecSpawnMode, resolveRootContext, resolveRuntimePackageInstallStrategy, resolveTerminalShellDefaults, resolveToolSkillsScope, resolveWindowsCommandInvocation, runControlledTranslationTask, runPhysicalReactivePathMutation, selectAgentDeliveryRegistry, selectLocalDownloadGroup, shouldShowTranslationEngineInstallGate, snapshotHasAbsolutePath, sniffGlobalCli, sortMarkdownReadingPlugins, soundIdFromCustomHash, spawnSafe, specDocumentDisplayPath, specIdentityFromRoute, specIdentityKey, specRoutePath, subscribeWatcherRuntimeStatus, terminalNotificationEventToPublishInput, terminateChildProcessTree, terminateWindowsProcessTreeByIdentity, toCliProjectionCommandEvidence, toCliProjectionFailure, toCliProjectionNotice, toMarkdownFactKind, toOpsxDisplayPath, toPersistedGlobalSettings, toStoreFeatureResult, toggleMarkdownTask, trimMarkdownSlice, updateProjectBindingContent, updateReactiveFileCache, validateActiveRootRawYaml, writeAtomicPhysicalReactiveFile, writePhysicalReactiveFile };
8928
+ export { ACCESS_GATE_CREDENTIAL_BYTES, AI_TOOLS, ActiveRootMutationSchema, ActiveRootOfficialConfigSchema, ActiveRootRevisionSchema, ActiveRootStructuredUpdateSchema, AgentDeliveryModeSchema, AgentDeliveryPolicyUpdateSchema, AgentDeliveryProfileSchema, AgentDeliveryWorkflowSchema, ApplyInstructionsContextFilesSchema, ApplyInstructionsProjectionSchema, ApplyInstructionsSchema, ApplyTaskSchema, ArchiveInstructionsSchema, ArtifactInstructionsSchema, ArtifactStatusSchema, BUILTIN_SOUND_IDS, BUILTIN_SOUND_OPTIONS, BUILTIN_TERMINAL_SPAWN_COMMANDS, BatchTranslateEventSchema, BatchTranslateInputSchema, BuiltinSoundIdSchema, CODE_EDITOR_THEME_VALUES, CUSTOM_SOUND_ADD_VALUE, ChangeFileSchema, ChangeSchema, ChangeStatusSchema, CliApplyInstructionsSchema, CliArchiveInstructionsSchema, CliArchiveSchema, CliArtifactInstructionsSchema, CliChangeListSchema, CliCommandTransportSchema, CliContextSchema, CliDiagnosticFailureSchema, CliDiagnosticSchema, CliDoctorReferenceEntrySchema, CliDoctorSchema, CliExecutor, CliJsonValueSchema, CliProjectionCommandError, CliProjectionCommandEvidenceSchema, CliProjectionFailureSchema, CliProjectionInvalidationCauseSchema, CliProjectionNoticeSchema, CliProjectionStateNameSchema, CliReferenceIndexEntrySchema, CliRootSchema, CliRootSourceSchema, CliShowSpecDocumentSchema, CliShowSpecSchema, CliSpecListSchema, CliStoreCleanupSchema, CliStoreDoctorEntrySchema, CliStoreDoctorSchema, CliStoreListSchema, CliStoreMutationSchema, CliStoreSchema, CliStreamTerminationError, CliValidateReportSchema, CliValidateSchema, CliWorkflowStatusSchema, CodeEditorThemeSchema, ConfigManager, CustomSoundHashSchema, CustomSoundIdSchema, CustomSoundMetadataFileSchema, CustomSoundMetadataSchema, DASHBOARD_METRIC_KEYS, DEFAULT_BELL_SOUND_ID, DEFAULT_CONFIG, DEFAULT_GIT_DIFF_EAGER_LINE_BUDGET, DEFAULT_GLOBAL_SETTINGS, DEFAULT_NOTIFICATION_SOUND_ID, DEFAULT_TERMINAL_DARK_THEME, DEFAULT_TERMINAL_LIGHT_THEME, DEFAULT_TERMINAL_THEME_MODE, DEFAULT_TRANSLATION_CACHE_ENTRY_LIMIT, DEFAULT_TRANSLATION_ENGINE_ID, DOCUMENT_TRANSLATION_DISPLAY_MODES, DashboardConfigSchema, DashboardGitSnapshotSchema, DashboardOverviewSchema, DashboardSummaryIdentitySchema, DashboardSummaryInvalidationCauseSchema, DashboardSummaryInvalidationSchema, DashboardSummaryProjectionSchema, DashboardSummaryProjectionStateSchema, DashboardTrendsProjectionSchema, DeltaOperationType, DeltaSchema, DeltaSpecSchema, DependencyInfoSchema, DocumentTranslationConfigSchema, DocumentTranslationConfigUpdateSchema, DocumentTranslationDisplayModeSchema, DocumentTranslationGlobalSettingsUpdateSchema, EnvironmentDefaultStoreUpdateSchema, EnvironmentGlobalConfigValueSchema, EnvironmentGlobalFileProjectionDataSchema, EnvironmentGlobalFileProjectionStateSchema, EnvironmentGlobalProjectionDataSchema, EnvironmentGlobalProjectionStateSchema, FILE_PREVIEW_KINDS, GitConfigSchema, GlobalSettingsManager, HOSTED_SHELL_PROTOCOL_VERSION, LEGACY_SOUND_ID_MAP, LOCAL_MODEL_PROFILE_DEFINITIONS, LocalModelAssetLogSchema, LocalModelAssetPlanSnapshotSchema, LocalModelAssetStateSchema, LocalModelDownloadStatusSchema, LocalModelLifecycleFileStateSchema, LocalModelLifecycleGroupStateSchema, LocalModelProfileLoadStateSchema, LocalModelProfileManifestFileSchema, LocalModelProfileManifestGroupSchema, LocalModelProfileManifestSchema, LocalModelProfileStatusSchema, MAX_ACTIVE_ROOT_CONTEXT_BYTES, MAX_TRANSLATION_CACHE_ENTRY_LIMIT, MIN_TRANSLATION_CACHE_ENTRY_LIMIT, ManagedLocalCatalogSourceSchema, MarkdownParser, MarkdownReadingPluginRegistry, NOTIFICATION_SOUND_OPTIONS, NOTIFICATION_SOUND_VALUES, NotificationActionSchema, NotificationGroupKeySchema, NotificationPublishInputSchema, NotificationRecordSchema, NotificationSettingsSchema, NotificationSoundSchema, NotificationSourceSchema, OFFICIAL_APP_BASE_URL, OPENCODE_PROVIDED_ARGUMENTS_LINE, OPENSPECUI_DOCUMENT_HOOK_VERSION, OPENSPECUI_RUNTIME_CAPABILITIES, OPENSPECUI_WORKFLOW_HOOK_VERSION, OPENSPEC_SPAWN_MODE_ENV, OPEN_SPEC_DATA_DIRECTORY_NAME, OPEN_SPEC_DATA_HOME_OBSERVATION_TARGETS, OPEN_SPEC_READING_SECTIONS_PROJECTION_ID, OPEN_SPEC_SPEC_PROJECTION_ID, OPSX_AGENT_INVOCATION_MODE_VALUES, OPSX_ALL_WORKFLOWS, OPSX_ARTIFACT_INPUT_ACTIONS, OPSX_CHANGE_INPUT_ACTIONS, OPSX_COMMAND_CAPABLE_WORKFLOWS, OPSX_CORE_PROFILE_WORKFLOWS, OPSX_TEXT_INPUT_ACTIONS, OPSX_WORKFLOW_LABELS, OPSX_WORKFLOW_TO_SKILL_DIR, OPSX_WORKFLOW_TO_SKILL_DIR as TOOL_WORKFLOW_TO_SKILL_DIR, OpenSpecAdapter, OpenSpecCliContractExecutor, OpenSpecDataHomeObserver, OpenSpecUIConfigSchema, OpenSpecUIGlobalSettingsSchema, OpenSpecUIGlobalSettingsUpdateSchema, OpenSpecWatcher, OpsxAgentInvocationModeSchema, OpsxCliEvidenceSchema, OpsxConfigBundleSchema, OpsxConfigSchema, OpsxKernel, OpsxStatusEvidenceSchema, OwnedSpecIdentitySchema, PINNED_AGENT_GENERATOR_VERSION, PlanningCliProjectionDataSchema, PlanningCliProjectionSelectorSchema, PlanningCliProjectionStateSchema, PlanningConfigJsonValueSchema, PlanningConfigReferenceSchema, ProjectBindingUpdateSchema, ProjectWatcher, PtyAttachMessageSchema, PtyBellResponseSchema, PtyBufferResponseSchema, PtyClientMessageSchema, PtyCloseMessageSchema, PtyCreateMessageSchema, PtyCreatedResponseSchema, PtyErrorCodeSchema, PtyErrorResponseSchema, PtyExitResponseSchema, PtyInputMessageSchema, PtyListMessageSchema, PtyListResponseSchema, PtyOutputResponseSchema, PtyPlatformSchema, PtyProcessTitleResponseSchema, PtyResizeMessageSchema, PtyServerMessageSchema, PtyTitleResponseSchema, RUNTIME_INVALIDATION_FACETS, ReactiveContext, ReactiveObservationEnvironment, ReactiveState, ReferencedSpecIdentitySchema, RequirementSchema, RuntimeInvalidationIndex, RuntimeRootInvalidationRegistry, SERVE_PRESENTATION_MODES, SERVICE_TRANSLATION_ENGINE_IDS, SHARED_AGENTS_SKILLS_OWNER_CANDIDATES, SHARED_AGENTS_SKILLS_ROOT, SHARED_SKILLS_TARGET_MARKER, SILENT_SOUND_ID, ScenarioStepKeywordSchema, ScenarioStepSchema, SchemaArtifactSchema, SchemaDetailSchema, SchemaInfoSchema, SchemaResolutionSchema, ServePresentationModeSchema, ServiceTranslationEngineIdSchema, SoundConfigIdSchema, SoundIdSchema, SpecCatalogSchema, SpecCommandEvidenceSchema, SpecDocumentProjectionSchema, SpecIdentitySchema, SpecSchema, StoreDoctorResultSchema, StoreListResultSchema, StoreMutationLifecycleEventSchema, StoreMutationResultSchema, StoreMutationSchema, StoreMutationStartResponseSchema, TERMINAL_BELL_SOUND_OPTIONS, TERMINAL_BELL_SOUND_VALUES, TERMINAL_COMMAND_FIELD_TYPE_VALUES, TERMINAL_SHELL_QUOTE_STYLE_VALUES, TERMINAL_THEME_MODE_VALUES, TERMINAL_THEME_VALUES, TRANSLATION_CACHE_POLICY_VERSION, TRANSLATION_ENGINE_IDS, TRANSLATION_ENGINE_MANIFESTS, TRANSLATOR_CONTRACT_VERSION, TaskSchema, TemplateContentMapSchema, TemplateContentSchema, TemplatesSchema, TerminalBellSoundSchema, TerminalCommandFieldSchema, TerminalConfigSchema, TerminalControlParser, TerminalCwdTargetSchema, TerminalInvocationSettingsSchema, TerminalNotificationParser, TerminalRendererEngineSchema, TerminalShellProfileSchema, TerminalShellQuoteStyleSchema, TerminalSpawnCommandSchema, TerminalThemeModeSchema, TerminalThemeSchema, TrackedTaskProgressSchema, TranslationCacheEntrySchema, TranslationCacheReadInputSchema, TranslationCacheSettingsSchema, TranslationCacheSettingsUpdateSchema, TranslationCacheStatsSchema, TranslationCacheWriteInputSchema, TranslationDownloadFilePlanSchema, TranslationDownloadGroupPlanSchema, TranslationEngineAssetStateSchema, TranslationEngineAssetStatusSchema, TranslationEngineDependencyStateSchema, TranslationEngineDependencyStatusSchema, TranslationEngineGlobalSettingsSchema, TranslationEngineGlobalSettingsUpdateSchema, TranslationEngineIdSchema, TranslationEngineInstallLogEventSchema, TranslationEngineInstallLogStreamSchema, TranslationEngineLifecycleEventSchema, TranslationEngineLifecycleStatusSchema, TranslationEngineProjectSettingsSchema, TranslationEngineProjectSettingsUpdateSchema, TranslationEngineRuntimeStateSchema, TranslationEngineRuntimeStatusSchema, TranslationLocalCt2SettingsSchema, TranslationLocalCt2SettingsUpdateSchema, TranslationLocalLlamaSettingsSchema, TranslationLocalLlamaSettingsUpdateSchema, TranslationLocalSettingsSchema, TranslationLocalSettingsUpdateSchema, TranslationOpenAISettingsSchema, TranslationOpenAISettingsUpdateSchema, VIRTUAL_PROJECT_DIRNAME, Validator, accessGateFingerprint, acquireWatcher, acquireWatcherRoot, annotateOpenSpecFacts, annotateOpenSpecMarkdown, applyAgentDeliveryPolicy, asEnvUri, buildBackendHealthPayload, buildCliRunnerCandidates, buildEmbeddedUiLaunchUrl, buildHostedLaunchUrl, buildLocalDownloadPlanFromRepositoryFiles, buildLocalDownloadPlanFromRuntimeProfileFiles, buildMarkdownParentMap, buildOpsxEntityDetail, buildRuntimePackageInstallCommand, buildSpecCatalog, builtinOpenSpecReadingPlugin, checkLocalDirectionalModelLanguagePair, classifyStoreCliResult, clearCache, cliProjectionStates, closeAllProjectWatchers, closeAllWatchers, compareAndWriteAtomicPhysicalReactiveFile, computeEnvUri, constantTimeEqual, contextStorage, createApplyInstructionProgress, createCleanCliEnv, createCliProjectionStateSchema, createDocumentChecklistSummary, createFileChangeObservable, createMarkdownReadingDocument, createMarkdownReadingDocumentFromFacts, createOpenSpecReadingPlugin, createPhysicalReactiveDirectory, createStaticSpecCatalogOwnedProjection, createStaticSpecCatalogReferenceProjection, createStaticSpecCatalogReferenceSource, createToolInitStateProjection, createTrackedTaskProgress, createTranslationEngineLifecycleStatus, customHashFromSoundId, deriveTrackedTaskPhase, detectRuntimePackageManager, generateAccessGateCredential, getActiveWatcherCount, getAllToolIds, getAllTools, getAvailableToolIds, getAvailableTools, getBuiltinSoundUrl, getCacheSize, getConfiguredTools, getDefaultCliCommand, getDefaultCliCommandString, getDefaultGlobalSettingsPath, getDetectedProjectTools, getExternalAgentSkillsObservationRoots, getExternalCodexCommandObservationRoot, getManagedLocalTranslationEngineManifest, getMarkdownAnnotation, getMarkdownAnnotationsForFact, getMarkdownFactSpan, getMarkdownHeadingEnd, getMarkdownHeadingFacts, getNotificationGroupKey, getNotificationGroupLabel, getOpenSpecAnnotation, getOpenSpecAnnotationsForFact, getOpenSpecProjectionAnnotation, getOpenSpecReadingSections, getOpsxEntityMetadataPath, getOpsxEntityRootRelativePath, getProjectWatcher, getRootContextCliSelector, getSpecCatalogEntry, getTerminalCommandDefaultValues, getToolById, getToolInitStates, getTranslationEngineLifecycleMessage, getTranslationEngineManifest, getWatcherRuntimeStatus, groupNotifications, hasCapability, inferFileMime, inferFilePreviewKind, inferLocalDirectionalModelLanguagePair, inspectActiveRootOfficialConfig, inspectEnvironmentDefaultStore, inspectProjectBinding, isBackendHealthRuntimeMetadata, isBatchTranslationAbort, isDirectionalManagedLocalTranslationEngineId, isEquivalentAgentCommandContent, isGlobPattern, isHostedBackendHealthResponse, isManagedLocalTranslationEngineId, isMarkdownTaskSourcePath, isOpsxCoreWorkflowSelection, isOpsxGlobPattern, isPreviewableFile, isReferencedSpecIdentity, isSupportedEmbeddedUiUrl, isTerminalMutationStatus, isTerminalRendererEngine, isTextLikeFile, isTextLikeMime, isToolConfigured, isTranslationEngineDependencyReady, isTranslationEngineRuntimeReady, isWatcherPoolInitialized, loadOpenSpecAgentCommandContents, mergeSpecCatalog, normalizeAccessGatePassword, normalizeAgentDeliveryPolicy, normalizeBatchTranslationError, normalizeEmbeddedUiUrl, normalizeHostedAppBaseUrl, normalizeLegacySoundId, normalizeOpsxEntityPath, openSpecAnnotationRules, opsxGlobToRegex, opsxPathMatchesPattern, parseCliCommand, parseCliCommandResult, parseMarkdownFacts, parseMarkdownTasks, parseOpenSpecCliSeries, parseOpenSpecMarkdownToSpec, parseOpsxEntityMetadata, parseOpsxSchemaDetail, patchActiveRootOfficialFields, projectAnnotatedOpenSpecToSpec, projectOpenSpecMarkdown, projectTaskProjectionsFromMarkdownFiles, quoteTerminalShellArg, reactiveExists, reactiveReadDir, reactiveReadFile, reactiveStat, redactSnapshotForPublication, removePhysicalReactivePath, renderTerminalCommandArgs, renderTerminalSpawnCommandLine, replaceFileAtomically, requireCanonicalOpenSpecEntityId, requireCanonicalOpenSpecSpecId, requireOpenSpecEntityRelativePath, resolveCommandInvocation, resolveGlobalSkillsInventoryDir, resolveHostedAppBaseUrl, resolveOpenSpecDataScope, resolveOpenSpecSpawnMode, resolveRootContext, resolveRuntimePackageInstallStrategy, resolveTerminalShellDefaults, resolveToolSkillsScope, resolveWindowsCommandInvocation, runControlledTranslationTask, runPhysicalReactivePathMutation, selectAgentDeliveryRegistry, selectLocalDownloadGroup, shouldShowTranslationEngineInstallGate, snapshotHasAbsolutePath, sniffGlobalCli, sortMarkdownReadingPlugins, soundIdFromCustomHash, spawnSafe, specDocumentDisplayPath, specIdentityFromRoute, specIdentityKey, specRoutePath, subscribeWatcherRuntimeStatus, terminalNotificationEventToPublishInput, terminateChildProcessTree, terminateWindowsProcessTreeByIdentity, toCliProjectionCommandEvidence, toCliProjectionFailure, toCliProjectionNotice, toMarkdownFactKind, toOpsxDisplayPath, toPersistedGlobalSettings, toStoreFeatureResult, toggleMarkdownTask, trimMarkdownSlice, updateProjectBindingContent, updateReactiveFileCache, validateActiveRootRawYaml, writeAtomicPhysicalReactiveFile, writePhysicalReactiveFile };