@openspecui/core 9.0.3 → 11.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.
- package/dist/{active-root-config-CDH9K5lV.d.mts → active-root-config-B-ZjoeVr.d.mts} +19 -19
- package/dist/active-root-config.d.mts +5 -5
- package/dist/app-daemon-control.d.mts +18 -18
- package/dist/{cli-projection-C1ZYzYMm.d.mts → cli-projection-CpEtZ-tN.d.mts} +7 -7
- package/dist/cli-projection.d.mts +5 -5
- package/dist/{workflow-CmQ4pFYC.mjs → command-result-DWMmDl6I.mjs} +91 -80
- package/dist/{dashboard-summary-transport-Bys0g-UT.d.mts → dashboard-summary-transport-Cv-UaYcc.d.mts} +3992 -3895
- package/dist/dashboard-summary-transport.d.mts +18 -18
- package/dist/document-translation.d.mts +1 -1
- package/dist/hosted-app.d.mts +18 -18
- package/dist/hosted-contract.d.mts +18 -18
- package/dist/{index-C7jJcSdH.d.mts → index-BXSLb96t.d.mts} +12277 -7316
- package/dist/index.d.mts +19 -19
- package/dist/index.mjs +385 -138
- package/dist/{local-download-profiles-CyAhZwxA.d.mts → local-download-profiles-C9LmIa9_.d.mts} +1 -1
- package/dist/local-download-profiles.d.mts +2 -2
- package/dist/{notifications-Be5ltQeN.d.mts → notifications-C_Dvqaej.d.mts} +3 -3
- package/dist/notifications.d.mts +2 -2
- package/dist/{openspec-compat-DidEO359.mjs → openspec-compat-DctIDxRM.mjs} +23 -17
- package/dist/openspec-compat.d.mts +4 -76
- package/dist/openspec-compat.mjs +2 -2
- package/dist/{openspec-projection-Bymnjuf9.d.mts → openspec-projection-DTu73p25.d.mts} +1 -1
- package/dist/openspec-projection.d.mts +2 -2
- package/dist/{opsx-entity-NFWGsreJ.d.mts → opsx-entity-Cq5yqzjd.d.mts} +2 -2
- package/dist/opsx-entity.d.mts +7 -7
- package/dist/{opsx-schema-detail-ChaSoC8S.d.mts → opsx-schema-detail-DwKh5cRx.d.mts} +2 -2
- package/dist/opsx-schema-detail.d.mts +8 -8
- package/dist/{opsx-types-C2lUEACZ.d.mts → opsx-types-Dxq7Yyjz.d.mts} +259 -259
- package/dist/{planning-cli-projection-BTkiQ7PG.mjs → planning-cli-projection-pq8vZC1r.mjs} +2 -2
- package/dist/planning-cli-projection.d.mts +18 -18
- package/dist/planning-cli-projection.mjs +3 -3
- package/dist/{schemas-BG7Tcs8J.d.mts → schemas-7hc46y5c.d.mts} +152 -152
- package/dist/{sounds-DdPTMYMa.d.mts → sounds-B0GiWqBN.d.mts} +4 -4
- package/dist/sounds.d.mts +1 -1
- package/dist/{spec-catalog-Ce3uSLSc.mjs → spec-catalog-BkX0tZp9.mjs} +149 -2
- package/dist/spec-catalog.d.mts +18 -18
- package/dist/spec-catalog.mjs +2 -2
- package/dist/{store-mutation-protocol-DXeWtAvN.d.mts → store-mutation-protocol-BriXl_0I.d.mts} +24 -24
- package/dist/store-mutation-protocol.d.mts +1 -1
- package/dist/{store-types-X35XKl10.d.mts → store-types-C4d1cqYC.d.mts} +1 -1
- package/dist/store-types.d.mts +5 -5
- package/dist/task-progress.d.mts +6 -6
- package/dist/{terminal-audio-Csuw114f.d.mts → terminal-audio-BpfUW_eB.d.mts} +1 -1
- package/dist/terminal-audio.d.mts +2 -2
- package/dist/terminal-control.d.mts +2 -2
- package/dist/{terminal-invocation-C5AN93a9.d.mts → terminal-invocation-B2F24Dw6.d.mts} +122 -122
- package/dist/terminal-invocation.d.mts +1 -1
- package/dist/{translator-4wvacuAX.d.mts → translator-CLbxLmcj.d.mts} +66 -66
- package/dist/translator.d.mts +1 -1
- package/package.json +3 -2
- /package/dist/{document-translation-CBqubtWC.d.mts → document-translation-CGMD0RLA.d.mts} +0 -0
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as
|
|
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
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
6291
|
-
* 1. Preserve the complete pinned OpenSpec 1.
|
|
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.
|
|
6295
|
-
*
|
|
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
|
-
|
|
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.
|
|
6307
|
-
* an inventory. Unsupported forms (prereleases, >=1.
|
|
6308
|
-
*
|
|
6309
|
-
*
|
|
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
|
-
|
|
6320
|
-
|
|
6321
|
-
|
|
6322
|
-
|
|
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.
|
|
6333
|
-
* form: prereleases, >=1.
|
|
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 ===
|
|
6339
|
-
if (version.major === 1 && version.minor ===
|
|
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.
|
|
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: ".
|
|
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(".
|
|
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-
|
|
6854
|
-
* 1. Project the unified OpenSpec 1.
|
|
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.
|
|
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 ||
|
|
7207
|
+
if (actualContent === null || !isEquivalentAgentCommandContent(toolId, actualContent, expectedContent)) return false;
|
|
7027
7208
|
}
|
|
7028
7209
|
return true;
|
|
7029
7210
|
}
|
|
7030
|
-
|
|
7031
|
-
|
|
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.
|
|
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,
|
|
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 (
|
|
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-
|
|
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
|
|
8152
|
-
|
|
8153
|
-
|
|
8154
|
-
|
|
8155
|
-
|
|
8156
|
-
|
|
8157
|
-
|
|
8158
|
-
|
|
8159
|
-
|
|
8160
|
-
|
|
8161
|
-
|
|
8162
|
-
|
|
8163
|
-
|
|
8164
|
-
|
|
8165
|
-
|
|
8166
|
-
|
|
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
|
-
|
|
8170
|
-
|
|
8171
|
-
|
|
8172
|
-
|
|
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
|
|
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
|
-
|
|
8180
|
-
|
|
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
|
-
|
|
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 };
|