@openspecui/core 2.3.7 → 3.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/hosted-app.d.mts +1 -1
- package/dist/hosted-app.mjs +1 -1
- package/dist/index.d.mts +48 -44
- package/dist/index.mjs +109 -48
- package/dist/openspec-compat.d.mts +32 -0
- package/dist/openspec-compat.mjs +75 -0
- package/dist/opsx-display-path.d.mts +1 -1
- package/dist/opsx-display-path.mjs +1 -1
- package/package.json +7 -3
- /package/dist/{hosted-app-C1JDznip.mjs → hosted-app-Bv10mEdq.mjs} +0 -0
- /package/dist/{hosted-app-BP6Xje0B.d.mts → hosted-app-Dy4D7wV9.d.mts} +0 -0
- /package/dist/{opsx-display-path-Cb-CVa6h.d.mts → opsx-display-path-C1H1ryBL.d.mts} +0 -0
- /package/dist/{opsx-display-path-DDK7QA5y.mjs → opsx-display-path-Cja3Bt1P.mjs} +0 -0
package/dist/hosted-app.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as HostedBackendHealthResponse, c as buildHostedVersionManifestUrl, d as normalizeHostedAppBaseUrl, f as resolveHostedAppBaseUrl, i as HostedAppVersionManifest, l as isHostedAppVersionManifest, n as HostedAppChannelManifest, o as OFFICIAL_APP_BASE_URL, p as resolveHostedChannelForVersion, r as HostedAppCompatibilityEntry, s as buildHostedLaunchUrl, t as HostedAppChannelKind, u as isHostedBackendHealthResponse } from "./hosted-app-
|
|
1
|
+
import { a as HostedBackendHealthResponse, c as buildHostedVersionManifestUrl, d as normalizeHostedAppBaseUrl, f as resolveHostedAppBaseUrl, i as HostedAppVersionManifest, l as isHostedAppVersionManifest, n as HostedAppChannelManifest, o as OFFICIAL_APP_BASE_URL, p as resolveHostedChannelForVersion, r as HostedAppCompatibilityEntry, s as buildHostedLaunchUrl, t as HostedAppChannelKind, u as isHostedBackendHealthResponse } from "./hosted-app-Dy4D7wV9.mjs";
|
|
2
2
|
export { HostedAppChannelKind, HostedAppChannelManifest, HostedAppCompatibilityEntry, HostedAppVersionManifest, HostedBackendHealthResponse, OFFICIAL_APP_BASE_URL, buildHostedLaunchUrl, buildHostedVersionManifestUrl, isHostedAppVersionManifest, isHostedBackendHealthResponse, normalizeHostedAppBaseUrl, resolveHostedAppBaseUrl, resolveHostedChannelForVersion };
|
package/dist/hosted-app.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as isHostedBackendHealthResponse, c as resolveHostedChannelForVersion, i as isHostedAppVersionManifest, n as buildHostedLaunchUrl, o as normalizeHostedAppBaseUrl, r as buildHostedVersionManifestUrl, s as resolveHostedAppBaseUrl, t as OFFICIAL_APP_BASE_URL } from "./hosted-app-
|
|
1
|
+
import { a as isHostedBackendHealthResponse, c as resolveHostedChannelForVersion, i as isHostedAppVersionManifest, n as buildHostedLaunchUrl, o as normalizeHostedAppBaseUrl, r as buildHostedVersionManifestUrl, s as resolveHostedAppBaseUrl, t as OFFICIAL_APP_BASE_URL } from "./hosted-app-Bv10mEdq.mjs";
|
|
2
2
|
|
|
3
3
|
export { OFFICIAL_APP_BASE_URL, buildHostedLaunchUrl, buildHostedVersionManifestUrl, isHostedAppVersionManifest, isHostedBackendHealthResponse, normalizeHostedAppBaseUrl, resolveHostedAppBaseUrl, resolveHostedChannelForVersion };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as HostedBackendHealthResponse, c as buildHostedVersionManifestUrl, d as normalizeHostedAppBaseUrl, f as resolveHostedAppBaseUrl, i as HostedAppVersionManifest, l as isHostedAppVersionManifest, n as HostedAppChannelManifest, o as OFFICIAL_APP_BASE_URL, p as resolveHostedChannelForVersion, r as HostedAppCompatibilityEntry, s as buildHostedLaunchUrl, t as HostedAppChannelKind, u as isHostedBackendHealthResponse } from "./hosted-app-
|
|
2
|
-
import { n as toOpsxDisplayPath, t as VIRTUAL_PROJECT_DIRNAME } from "./opsx-display-path-
|
|
1
|
+
import { a as HostedBackendHealthResponse, c as buildHostedVersionManifestUrl, d as normalizeHostedAppBaseUrl, f as resolveHostedAppBaseUrl, i as HostedAppVersionManifest, l as isHostedAppVersionManifest, n as HostedAppChannelManifest, o as OFFICIAL_APP_BASE_URL, p as resolveHostedChannelForVersion, r as HostedAppCompatibilityEntry, s as buildHostedLaunchUrl, t as HostedAppChannelKind, u as isHostedBackendHealthResponse } from "./hosted-app-Dy4D7wV9.mjs";
|
|
2
|
+
import { n as toOpsxDisplayPath, t as VIRTUAL_PROJECT_DIRNAME } from "./opsx-display-path-C1H1ryBL.mjs";
|
|
3
3
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
import { EventEmitter } from "events";
|
|
@@ -19,13 +19,13 @@ declare const ChangeFileSchema: z.ZodObject<{
|
|
|
19
19
|
/** Optional byte size for files */
|
|
20
20
|
size: z.ZodOptional<z.ZodNumber>;
|
|
21
21
|
}, "strip", z.ZodTypeAny, {
|
|
22
|
-
type: "file" | "directory";
|
|
23
22
|
path: string;
|
|
23
|
+
type: "file" | "directory";
|
|
24
24
|
content?: string | undefined;
|
|
25
25
|
size?: number | undefined;
|
|
26
26
|
}, {
|
|
27
|
-
type: "file" | "directory";
|
|
28
27
|
path: string;
|
|
28
|
+
type: "file" | "directory";
|
|
29
29
|
content?: string | undefined;
|
|
30
30
|
size?: number | undefined;
|
|
31
31
|
}>;
|
|
@@ -1763,6 +1763,8 @@ interface AIToolOption {
|
|
|
1763
1763
|
successLabel?: string;
|
|
1764
1764
|
/** 技能目录(相对项目根目录) */
|
|
1765
1765
|
skillsDir?: string;
|
|
1766
|
+
/** 自动检测路径;存在任一路径即表示项目已有该工具配置 */
|
|
1767
|
+
detectionPaths?: string[];
|
|
1766
1768
|
}
|
|
1767
1769
|
/**
|
|
1768
1770
|
* 完整的工具配置(元信息 + skills 目录)
|
|
@@ -1841,6 +1843,7 @@ interface ToolInitState {
|
|
|
1841
1843
|
missingCommandWorkflows: ToolWorkflowId[];
|
|
1842
1844
|
unexpectedSkillWorkflows: ToolWorkflowId[];
|
|
1843
1845
|
unexpectedCommandWorkflows: ToolWorkflowId[];
|
|
1846
|
+
legacyCommandWorkflows: ToolWorkflowId[];
|
|
1844
1847
|
}
|
|
1845
1848
|
declare function getToolInitStates(projectDir: string, options: {
|
|
1846
1849
|
delivery: ToolInitDelivery;
|
|
@@ -1954,14 +1957,14 @@ declare const ArtifactStatusSchema: z.ZodObject<{
|
|
|
1954
1957
|
missingDeps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1955
1958
|
relativePath: z.ZodOptional<z.ZodString>;
|
|
1956
1959
|
}, "strip", z.ZodTypeAny, {
|
|
1957
|
-
status: "done" | "ready" | "blocked";
|
|
1958
1960
|
id: string;
|
|
1961
|
+
status: "done" | "ready" | "blocked";
|
|
1959
1962
|
outputPath: string;
|
|
1960
1963
|
missingDeps?: string[] | undefined;
|
|
1961
1964
|
relativePath?: string | undefined;
|
|
1962
1965
|
}, {
|
|
1963
|
-
status: "done" | "ready" | "blocked";
|
|
1964
1966
|
id: string;
|
|
1967
|
+
status: "done" | "ready" | "blocked";
|
|
1965
1968
|
outputPath: string;
|
|
1966
1969
|
missingDeps?: string[] | undefined;
|
|
1967
1970
|
relativePath?: string | undefined;
|
|
@@ -1979,14 +1982,14 @@ declare const ChangeStatusSchema: z.ZodObject<{
|
|
|
1979
1982
|
missingDeps: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1980
1983
|
relativePath: z.ZodOptional<z.ZodString>;
|
|
1981
1984
|
}, "strip", z.ZodTypeAny, {
|
|
1982
|
-
status: "done" | "ready" | "blocked";
|
|
1983
1985
|
id: string;
|
|
1986
|
+
status: "done" | "ready" | "blocked";
|
|
1984
1987
|
outputPath: string;
|
|
1985
1988
|
missingDeps?: string[] | undefined;
|
|
1986
1989
|
relativePath?: string | undefined;
|
|
1987
1990
|
}, {
|
|
1988
|
-
status: "done" | "ready" | "blocked";
|
|
1989
1991
|
id: string;
|
|
1992
|
+
status: "done" | "ready" | "blocked";
|
|
1990
1993
|
outputPath: string;
|
|
1991
1994
|
missingDeps?: string[] | undefined;
|
|
1992
1995
|
relativePath?: string | undefined;
|
|
@@ -1997,8 +2000,8 @@ declare const ChangeStatusSchema: z.ZodObject<{
|
|
|
1997
2000
|
isComplete: boolean;
|
|
1998
2001
|
applyRequires: string[];
|
|
1999
2002
|
artifacts: {
|
|
2000
|
-
status: "done" | "ready" | "blocked";
|
|
2001
2003
|
id: string;
|
|
2004
|
+
status: "done" | "ready" | "blocked";
|
|
2002
2005
|
outputPath: string;
|
|
2003
2006
|
missingDeps?: string[] | undefined;
|
|
2004
2007
|
relativePath?: string | undefined;
|
|
@@ -2009,8 +2012,8 @@ declare const ChangeStatusSchema: z.ZodObject<{
|
|
|
2009
2012
|
isComplete: boolean;
|
|
2010
2013
|
applyRequires: string[];
|
|
2011
2014
|
artifacts: {
|
|
2012
|
-
status: "done" | "ready" | "blocked";
|
|
2013
2015
|
id: string;
|
|
2016
|
+
status: "done" | "ready" | "blocked";
|
|
2014
2017
|
outputPath: string;
|
|
2015
2018
|
missingDeps?: string[] | undefined;
|
|
2016
2019
|
relativePath?: string | undefined;
|
|
@@ -2023,13 +2026,13 @@ declare const DependencyInfoSchema: z.ZodObject<{
|
|
|
2023
2026
|
path: z.ZodString;
|
|
2024
2027
|
description: z.ZodString;
|
|
2025
2028
|
}, "strip", z.ZodTypeAny, {
|
|
2026
|
-
path: string;
|
|
2027
2029
|
id: string;
|
|
2030
|
+
path: string;
|
|
2028
2031
|
description: string;
|
|
2029
2032
|
done: boolean;
|
|
2030
2033
|
}, {
|
|
2031
|
-
path: string;
|
|
2032
2034
|
id: string;
|
|
2035
|
+
path: string;
|
|
2033
2036
|
description: string;
|
|
2034
2037
|
done: boolean;
|
|
2035
2038
|
}>;
|
|
@@ -2048,11 +2051,12 @@ declare const ApplyTaskSchema: z.ZodObject<{
|
|
|
2048
2051
|
done: boolean;
|
|
2049
2052
|
}>;
|
|
2050
2053
|
type ApplyTask = z.infer<typeof ApplyTaskSchema>;
|
|
2054
|
+
declare const ApplyInstructionsContextFilesSchema: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>, string[], string | string[]>>;
|
|
2051
2055
|
declare const ApplyInstructionsSchema: z.ZodObject<{
|
|
2052
2056
|
changeName: z.ZodString;
|
|
2053
2057
|
changeDir: z.ZodString;
|
|
2054
2058
|
schemaName: z.ZodString;
|
|
2055
|
-
contextFiles: z.ZodRecord<z.ZodString, z.ZodString
|
|
2059
|
+
contextFiles: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>, string[], string | string[]>>;
|
|
2056
2060
|
progress: z.ZodObject<{
|
|
2057
2061
|
total: z.ZodNumber;
|
|
2058
2062
|
complete: z.ZodNumber;
|
|
@@ -2096,7 +2100,7 @@ declare const ApplyInstructionsSchema: z.ZodObject<{
|
|
|
2096
2100
|
changeName: string;
|
|
2097
2101
|
schemaName: string;
|
|
2098
2102
|
changeDir: string;
|
|
2099
|
-
contextFiles: Record<string, string>;
|
|
2103
|
+
contextFiles: Record<string, string[]>;
|
|
2100
2104
|
state: "ready" | "blocked" | "all_done";
|
|
2101
2105
|
instruction: string;
|
|
2102
2106
|
missingArtifacts?: string[] | undefined;
|
|
@@ -2114,7 +2118,7 @@ declare const ApplyInstructionsSchema: z.ZodObject<{
|
|
|
2114
2118
|
changeName: string;
|
|
2115
2119
|
schemaName: string;
|
|
2116
2120
|
changeDir: string;
|
|
2117
|
-
contextFiles: Record<string, string>;
|
|
2121
|
+
contextFiles: Record<string, string | string[]>;
|
|
2118
2122
|
state: "ready" | "blocked" | "all_done";
|
|
2119
2123
|
instruction: string;
|
|
2120
2124
|
missingArtifacts?: string[] | undefined;
|
|
@@ -2137,13 +2141,13 @@ declare const ArtifactInstructionsSchema: z.ZodObject<{
|
|
|
2137
2141
|
path: z.ZodString;
|
|
2138
2142
|
description: z.ZodString;
|
|
2139
2143
|
}, "strip", z.ZodTypeAny, {
|
|
2140
|
-
path: string;
|
|
2141
2144
|
id: string;
|
|
2145
|
+
path: string;
|
|
2142
2146
|
description: string;
|
|
2143
2147
|
done: boolean;
|
|
2144
2148
|
}, {
|
|
2145
|
-
path: string;
|
|
2146
2149
|
id: string;
|
|
2150
|
+
path: string;
|
|
2147
2151
|
description: string;
|
|
2148
2152
|
done: boolean;
|
|
2149
2153
|
}>, "many">;
|
|
@@ -2157,8 +2161,8 @@ declare const ArtifactInstructionsSchema: z.ZodObject<{
|
|
|
2157
2161
|
artifactId: string;
|
|
2158
2162
|
template: string;
|
|
2159
2163
|
dependencies: {
|
|
2160
|
-
path: string;
|
|
2161
2164
|
id: string;
|
|
2165
|
+
path: string;
|
|
2162
2166
|
description: string;
|
|
2163
2167
|
done: boolean;
|
|
2164
2168
|
}[];
|
|
@@ -2175,8 +2179,8 @@ declare const ArtifactInstructionsSchema: z.ZodObject<{
|
|
|
2175
2179
|
artifactId: string;
|
|
2176
2180
|
template: string;
|
|
2177
2181
|
dependencies: {
|
|
2178
|
-
path: string;
|
|
2179
2182
|
id: string;
|
|
2183
|
+
path: string;
|
|
2180
2184
|
description: string;
|
|
2181
2185
|
done: boolean;
|
|
2182
2186
|
}[];
|
|
@@ -2222,8 +2226,8 @@ declare const SchemaResolutionSchema: z.ZodObject<{
|
|
|
2222
2226
|
displayPath?: string | undefined;
|
|
2223
2227
|
}>, "many">;
|
|
2224
2228
|
}, "strip", z.ZodTypeAny, {
|
|
2225
|
-
path: string;
|
|
2226
2229
|
name: string;
|
|
2230
|
+
path: string;
|
|
2227
2231
|
source: "project" | "user" | "package";
|
|
2228
2232
|
shadows: {
|
|
2229
2233
|
path: string;
|
|
@@ -2232,8 +2236,8 @@ declare const SchemaResolutionSchema: z.ZodObject<{
|
|
|
2232
2236
|
}[];
|
|
2233
2237
|
displayPath?: string | undefined;
|
|
2234
2238
|
}, {
|
|
2235
|
-
path: string;
|
|
2236
2239
|
name: string;
|
|
2240
|
+
path: string;
|
|
2237
2241
|
source: "project" | "user" | "package";
|
|
2238
2242
|
shadows: {
|
|
2239
2243
|
path: string;
|
|
@@ -2662,22 +2666,22 @@ declare const PtySessionInfoSchema: z.ZodObject<{
|
|
|
2662
2666
|
closeTip: z.ZodOptional<z.ZodString>;
|
|
2663
2667
|
closeCallbackUrl: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
|
|
2664
2668
|
}, "strip", z.ZodTypeAny, {
|
|
2669
|
+
id: string;
|
|
2665
2670
|
command: string;
|
|
2666
2671
|
args: string[];
|
|
2667
2672
|
platform: "windows" | "macos" | "common";
|
|
2668
2673
|
exitCode: number | null;
|
|
2669
2674
|
title: string;
|
|
2670
|
-
id: string;
|
|
2671
2675
|
isExited: boolean;
|
|
2672
2676
|
closeTip?: string | undefined;
|
|
2673
2677
|
closeCallbackUrl?: string | Record<string, string> | undefined;
|
|
2674
2678
|
}, {
|
|
2679
|
+
id: string;
|
|
2675
2680
|
command: string;
|
|
2676
2681
|
args: string[];
|
|
2677
2682
|
platform: "windows" | "macos" | "common";
|
|
2678
2683
|
exitCode: number | null;
|
|
2679
2684
|
title: string;
|
|
2680
|
-
id: string;
|
|
2681
2685
|
isExited: boolean;
|
|
2682
2686
|
closeTip?: string | undefined;
|
|
2683
2687
|
closeCallbackUrl?: string | Record<string, string> | undefined;
|
|
@@ -2694,19 +2698,19 @@ declare const PtyCreateMessageSchema: z.ZodObject<{
|
|
|
2694
2698
|
}, "strip", z.ZodTypeAny, {
|
|
2695
2699
|
type: "create";
|
|
2696
2700
|
requestId: string;
|
|
2697
|
-
cols?: number | undefined;
|
|
2698
|
-
rows?: number | undefined;
|
|
2699
2701
|
command?: string | undefined;
|
|
2700
2702
|
args?: string[] | undefined;
|
|
2703
|
+
cols?: number | undefined;
|
|
2704
|
+
rows?: number | undefined;
|
|
2701
2705
|
closeTip?: string | undefined;
|
|
2702
2706
|
closeCallbackUrl?: string | Record<string, string> | undefined;
|
|
2703
2707
|
}, {
|
|
2704
2708
|
type: "create";
|
|
2705
2709
|
requestId: string;
|
|
2706
|
-
cols?: number | undefined;
|
|
2707
|
-
rows?: number | undefined;
|
|
2708
2710
|
command?: string | undefined;
|
|
2709
2711
|
args?: string[] | undefined;
|
|
2712
|
+
cols?: number | undefined;
|
|
2713
|
+
rows?: number | undefined;
|
|
2710
2714
|
closeTip?: string | undefined;
|
|
2711
2715
|
closeCallbackUrl?: string | Record<string, string> | undefined;
|
|
2712
2716
|
}>;
|
|
@@ -2784,19 +2788,19 @@ declare const PtyClientMessageSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
|
|
|
2784
2788
|
}, "strip", z.ZodTypeAny, {
|
|
2785
2789
|
type: "create";
|
|
2786
2790
|
requestId: string;
|
|
2787
|
-
cols?: number | undefined;
|
|
2788
|
-
rows?: number | undefined;
|
|
2789
2791
|
command?: string | undefined;
|
|
2790
2792
|
args?: string[] | undefined;
|
|
2793
|
+
cols?: number | undefined;
|
|
2794
|
+
rows?: number | undefined;
|
|
2791
2795
|
closeTip?: string | undefined;
|
|
2792
2796
|
closeCallbackUrl?: string | Record<string, string> | undefined;
|
|
2793
2797
|
}, {
|
|
2794
2798
|
type: "create";
|
|
2795
2799
|
requestId: string;
|
|
2796
|
-
cols?: number | undefined;
|
|
2797
|
-
rows?: number | undefined;
|
|
2798
2800
|
command?: string | undefined;
|
|
2799
2801
|
args?: string[] | undefined;
|
|
2802
|
+
cols?: number | undefined;
|
|
2803
|
+
rows?: number | undefined;
|
|
2800
2804
|
closeTip?: string | undefined;
|
|
2801
2805
|
closeCallbackUrl?: string | Record<string, string> | undefined;
|
|
2802
2806
|
}>, z.ZodObject<{
|
|
@@ -2938,22 +2942,22 @@ declare const PtyListResponseSchema: z.ZodObject<{
|
|
|
2938
2942
|
closeTip: z.ZodOptional<z.ZodString>;
|
|
2939
2943
|
closeCallbackUrl: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
|
|
2940
2944
|
}, "strip", z.ZodTypeAny, {
|
|
2945
|
+
id: string;
|
|
2941
2946
|
command: string;
|
|
2942
2947
|
args: string[];
|
|
2943
2948
|
platform: "windows" | "macos" | "common";
|
|
2944
2949
|
exitCode: number | null;
|
|
2945
2950
|
title: string;
|
|
2946
|
-
id: string;
|
|
2947
2951
|
isExited: boolean;
|
|
2948
2952
|
closeTip?: string | undefined;
|
|
2949
2953
|
closeCallbackUrl?: string | Record<string, string> | undefined;
|
|
2950
2954
|
}, {
|
|
2955
|
+
id: string;
|
|
2951
2956
|
command: string;
|
|
2952
2957
|
args: string[];
|
|
2953
2958
|
platform: "windows" | "macos" | "common";
|
|
2954
2959
|
exitCode: number | null;
|
|
2955
2960
|
title: string;
|
|
2956
|
-
id: string;
|
|
2957
2961
|
isExited: boolean;
|
|
2958
2962
|
closeTip?: string | undefined;
|
|
2959
2963
|
closeCallbackUrl?: string | Record<string, string> | undefined;
|
|
@@ -2961,12 +2965,12 @@ declare const PtyListResponseSchema: z.ZodObject<{
|
|
|
2961
2965
|
}, "strip", z.ZodTypeAny, {
|
|
2962
2966
|
type: "list";
|
|
2963
2967
|
sessions: {
|
|
2968
|
+
id: string;
|
|
2964
2969
|
command: string;
|
|
2965
2970
|
args: string[];
|
|
2966
2971
|
platform: "windows" | "macos" | "common";
|
|
2967
2972
|
exitCode: number | null;
|
|
2968
2973
|
title: string;
|
|
2969
|
-
id: string;
|
|
2970
2974
|
isExited: boolean;
|
|
2971
2975
|
closeTip?: string | undefined;
|
|
2972
2976
|
closeCallbackUrl?: string | Record<string, string> | undefined;
|
|
@@ -2974,12 +2978,12 @@ declare const PtyListResponseSchema: z.ZodObject<{
|
|
|
2974
2978
|
}, {
|
|
2975
2979
|
type: "list";
|
|
2976
2980
|
sessions: {
|
|
2981
|
+
id: string;
|
|
2977
2982
|
command: string;
|
|
2978
2983
|
args: string[];
|
|
2979
2984
|
platform: "windows" | "macos" | "common";
|
|
2980
2985
|
exitCode: number | null;
|
|
2981
2986
|
title: string;
|
|
2982
|
-
id: string;
|
|
2983
2987
|
isExited: boolean;
|
|
2984
2988
|
closeTip?: string | undefined;
|
|
2985
2989
|
closeCallbackUrl?: string | Record<string, string> | undefined;
|
|
@@ -2992,14 +2996,14 @@ declare const PtyErrorResponseSchema: z.ZodObject<{
|
|
|
2992
2996
|
message: z.ZodString;
|
|
2993
2997
|
sessionId: z.ZodOptional<z.ZodString>;
|
|
2994
2998
|
}, "strip", z.ZodTypeAny, {
|
|
2995
|
-
type: "error";
|
|
2996
2999
|
code: "INVALID_JSON" | "INVALID_MESSAGE" | "SESSION_NOT_FOUND" | "PTY_CREATE_FAILED";
|
|
2997
3000
|
message: string;
|
|
3001
|
+
type: "error";
|
|
2998
3002
|
sessionId?: string | undefined;
|
|
2999
3003
|
}, {
|
|
3000
|
-
type: "error";
|
|
3001
3004
|
code: "INVALID_JSON" | "INVALID_MESSAGE" | "SESSION_NOT_FOUND" | "PTY_CREATE_FAILED";
|
|
3002
3005
|
message: string;
|
|
3006
|
+
type: "error";
|
|
3003
3007
|
sessionId?: string | undefined;
|
|
3004
3008
|
}>;
|
|
3005
3009
|
declare const PtyServerMessageSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
@@ -3078,22 +3082,22 @@ declare const PtyServerMessageSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
|
|
|
3078
3082
|
closeTip: z.ZodOptional<z.ZodString>;
|
|
3079
3083
|
closeCallbackUrl: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
|
|
3080
3084
|
}, "strip", z.ZodTypeAny, {
|
|
3085
|
+
id: string;
|
|
3081
3086
|
command: string;
|
|
3082
3087
|
args: string[];
|
|
3083
3088
|
platform: "windows" | "macos" | "common";
|
|
3084
3089
|
exitCode: number | null;
|
|
3085
3090
|
title: string;
|
|
3086
|
-
id: string;
|
|
3087
3091
|
isExited: boolean;
|
|
3088
3092
|
closeTip?: string | undefined;
|
|
3089
3093
|
closeCallbackUrl?: string | Record<string, string> | undefined;
|
|
3090
3094
|
}, {
|
|
3095
|
+
id: string;
|
|
3091
3096
|
command: string;
|
|
3092
3097
|
args: string[];
|
|
3093
3098
|
platform: "windows" | "macos" | "common";
|
|
3094
3099
|
exitCode: number | null;
|
|
3095
3100
|
title: string;
|
|
3096
|
-
id: string;
|
|
3097
3101
|
isExited: boolean;
|
|
3098
3102
|
closeTip?: string | undefined;
|
|
3099
3103
|
closeCallbackUrl?: string | Record<string, string> | undefined;
|
|
@@ -3101,12 +3105,12 @@ declare const PtyServerMessageSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
|
|
|
3101
3105
|
}, "strip", z.ZodTypeAny, {
|
|
3102
3106
|
type: "list";
|
|
3103
3107
|
sessions: {
|
|
3108
|
+
id: string;
|
|
3104
3109
|
command: string;
|
|
3105
3110
|
args: string[];
|
|
3106
3111
|
platform: "windows" | "macos" | "common";
|
|
3107
3112
|
exitCode: number | null;
|
|
3108
3113
|
title: string;
|
|
3109
|
-
id: string;
|
|
3110
3114
|
isExited: boolean;
|
|
3111
3115
|
closeTip?: string | undefined;
|
|
3112
3116
|
closeCallbackUrl?: string | Record<string, string> | undefined;
|
|
@@ -3114,12 +3118,12 @@ declare const PtyServerMessageSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
|
|
|
3114
3118
|
}, {
|
|
3115
3119
|
type: "list";
|
|
3116
3120
|
sessions: {
|
|
3121
|
+
id: string;
|
|
3117
3122
|
command: string;
|
|
3118
3123
|
args: string[];
|
|
3119
3124
|
platform: "windows" | "macos" | "common";
|
|
3120
3125
|
exitCode: number | null;
|
|
3121
3126
|
title: string;
|
|
3122
|
-
id: string;
|
|
3123
3127
|
isExited: boolean;
|
|
3124
3128
|
closeTip?: string | undefined;
|
|
3125
3129
|
closeCallbackUrl?: string | Record<string, string> | undefined;
|
|
@@ -3130,14 +3134,14 @@ declare const PtyServerMessageSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
|
|
|
3130
3134
|
message: z.ZodString;
|
|
3131
3135
|
sessionId: z.ZodOptional<z.ZodString>;
|
|
3132
3136
|
}, "strip", z.ZodTypeAny, {
|
|
3133
|
-
type: "error";
|
|
3134
3137
|
code: "INVALID_JSON" | "INVALID_MESSAGE" | "SESSION_NOT_FOUND" | "PTY_CREATE_FAILED";
|
|
3135
3138
|
message: string;
|
|
3139
|
+
type: "error";
|
|
3136
3140
|
sessionId?: string | undefined;
|
|
3137
3141
|
}, {
|
|
3138
|
-
type: "error";
|
|
3139
3142
|
code: "INVALID_JSON" | "INVALID_MESSAGE" | "SESSION_NOT_FOUND" | "PTY_CREATE_FAILED";
|
|
3140
3143
|
message: string;
|
|
3144
|
+
type: "error";
|
|
3141
3145
|
sessionId?: string | undefined;
|
|
3142
3146
|
}>]>;
|
|
3143
3147
|
type PtyClientMessage = z.infer<typeof PtyClientMessageSchema>;
|
|
@@ -3145,4 +3149,4 @@ type PtyServerMessage = z.infer<typeof PtyServerMessageSchema>;
|
|
|
3145
3149
|
type PtySessionInfo = z.infer<typeof PtySessionInfoSchema>;
|
|
3146
3150
|
type PtyPlatform = z.infer<typeof PtyPlatformSchema>;
|
|
3147
3151
|
//#endregion
|
|
3148
|
-
export { type AIToolOption, AI_TOOLS, type ApplyInstructions, ApplyInstructionsSchema, type ApplyTask, ApplyTaskSchema, type ArchiveMeta, type ArtifactInstructions, ArtifactInstructionsSchema, type ArtifactStatus, ArtifactStatusSchema, CODE_EDITOR_THEME_VALUES, type Change, type ChangeFile, ChangeFileSchema, type ChangeMeta, ChangeSchema, type ChangeStatus, ChangeStatusSchema, CliExecutor, type CliResult, type CliRunnerAttempt, type CliSniffResult, type CliStreamEvent, type CodeEditorTheme, CodeEditorThemeSchema, ConfigManager, DASHBOARD_METRIC_KEYS, DEFAULT_CONFIG, DEFAULT_GIT_DIFF_EAGER_LINE_BUDGET, type DashboardCardAvailability, type DashboardConfig, DashboardConfigSchema, type DashboardGitCommitEntry, type DashboardGitDiffStats, type DashboardGitEntry, type DashboardGitSnapshot, type DashboardGitUncommittedEntry, type DashboardGitWorktree, type DashboardMetricKey, type DashboardOverview, type DashboardSummary, type DashboardTrendKind, type DashboardTrendMeta, type DashboardTrendPoint, type DashboardTriColorTrendPoint, type Delta, type DeltaOperation, DeltaOperationType, DeltaSchema, type DeltaSpec, DeltaSpecSchema, type DependencyInfo, DependencyInfoSchema, type ExportSnapshot, type FileChangeEvent, type FileChangeType, type GitConfig, GitConfigSchema, type GitEntriesPage, type GitEntryCursor, type GitEntryDetail, type GitEntryFileDiff, type GitEntryFilePatch, type GitEntryFileSource, type GitEntryFileSummary, type GitEntryFiles, type GitEntryPatch, type GitEntrySelector, type GitEntryShell, type GitFileChangeType, type GitPatchFile, type GitPatchState, type GitWorktreeHandoff, type GitWorktreeOverview, type GitWorktreeSummary, type HostedAppChannelKind, type HostedAppChannelManifest, type HostedAppCompatibilityEntry, type HostedAppVersionManifest, type HostedBackendHealthResponse, MarkdownParser, OFFICIAL_APP_BASE_URL, OpenSpecAdapter, type OpenSpecUIConfig, OpenSpecUIConfigSchema, type OpenSpecUIConfigUpdate, OpenSpecWatcher, OpsxKernel, type PathCallback, type ProjectRecoveryStatus, type ProjectResidencyEvictionReason, type ProjectResidencyStatus, ProjectWatcher, type ProjectWatcherReinitializeReason, type ProjectWatcherRuntimeStatus, type ProjectWatcherRuntimeStatusListener, PtyAttachMessageSchema, PtyBufferResponseSchema, type PtyClientMessage, PtyClientMessageSchema, PtyCloseMessageSchema, PtyCreateMessageSchema, PtyCreatedResponseSchema, PtyErrorCodeSchema, PtyErrorResponseSchema, PtyExitResponseSchema, PtyInputMessageSchema, PtyListMessageSchema, PtyListResponseSchema, PtyOutputResponseSchema, type PtyPlatform, PtyPlatformSchema, PtyResizeMessageSchema, type PtyServerMessage, PtyServerMessageSchema, type PtySessionInfo, PtyTitleResponseSchema, ReactiveContext, ReactiveState, type ReactiveStateOptions, type Requirement, RequirementSchema, type ResolvedCliRunner, type SchemaArtifact, SchemaArtifactSchema, type SchemaDetail, SchemaDetailSchema, type SchemaInfo, SchemaInfoSchema, type SchemaResolution, SchemaResolutionSchema, type Spec, type SpecMeta, SpecSchema, TOOL_WORKFLOW_TO_SKILL_DIR, type Task, TaskSchema, type TemplateContentMap, type TemplatesMap, TemplatesSchema, type TerminalConfig, TerminalConfigSchema, type TerminalRendererEngine, TerminalRendererEngineSchema, type ToolConfig, type ToolInitDelivery, type ToolInitState, type ToolInitStatus, type ToolWorkflowId, VIRTUAL_PROJECT_DIRNAME, type ValidationIssue, type ValidationResult, Validator, type WatchEvent, type WatchEventType, type WatcherRuntimeStatus, acquireWatcher, buildCliRunnerCandidates, buildHostedLaunchUrl, buildHostedVersionManifestUrl, clearCache, closeAllProjectWatchers, closeAllWatchers, contextStorage, createCleanCliEnv, createFileChangeObservable, getActiveWatcherCount, getAllToolIds, getAllTools, getAvailableToolIds, getAvailableTools, getCacheSize, getConfiguredTools, getDefaultCliCommand, getDefaultCliCommandString, getDetectedProjectTools, getProjectWatcher, getToolById, getToolInitStates, getWatchedProjectDir, getWatcherRuntimeStatus, initWatcherPool, isGlobPattern, isHostedAppVersionManifest, isHostedBackendHealthResponse, isTerminalRendererEngine, isToolConfigured, isWatcherPoolInitialized, normalizeHostedAppBaseUrl, parseCliCommand, reactiveExists, reactiveReadDir, reactiveReadFile, reactiveStat, resolveHostedAppBaseUrl, resolveHostedChannelForVersion, sniffGlobalCli, subscribeWatcherRuntimeStatus, toOpsxDisplayPath };
|
|
3152
|
+
export { type AIToolOption, AI_TOOLS, type ApplyInstructions, ApplyInstructionsContextFilesSchema, ApplyInstructionsSchema, type ApplyTask, ApplyTaskSchema, type ArchiveMeta, type ArtifactInstructions, ArtifactInstructionsSchema, type ArtifactStatus, ArtifactStatusSchema, CODE_EDITOR_THEME_VALUES, type Change, type ChangeFile, ChangeFileSchema, type ChangeMeta, ChangeSchema, type ChangeStatus, ChangeStatusSchema, CliExecutor, type CliResult, type CliRunnerAttempt, type CliSniffResult, type CliStreamEvent, type CodeEditorTheme, CodeEditorThemeSchema, ConfigManager, DASHBOARD_METRIC_KEYS, DEFAULT_CONFIG, DEFAULT_GIT_DIFF_EAGER_LINE_BUDGET, type DashboardCardAvailability, type DashboardConfig, DashboardConfigSchema, type DashboardGitCommitEntry, type DashboardGitDiffStats, type DashboardGitEntry, type DashboardGitSnapshot, type DashboardGitUncommittedEntry, type DashboardGitWorktree, type DashboardMetricKey, type DashboardOverview, type DashboardSummary, type DashboardTrendKind, type DashboardTrendMeta, type DashboardTrendPoint, type DashboardTriColorTrendPoint, type Delta, type DeltaOperation, DeltaOperationType, DeltaSchema, type DeltaSpec, DeltaSpecSchema, type DependencyInfo, DependencyInfoSchema, type ExportSnapshot, type FileChangeEvent, type FileChangeType, type GitConfig, GitConfigSchema, type GitEntriesPage, type GitEntryCursor, type GitEntryDetail, type GitEntryFileDiff, type GitEntryFilePatch, type GitEntryFileSource, type GitEntryFileSummary, type GitEntryFiles, type GitEntryPatch, type GitEntrySelector, type GitEntryShell, type GitFileChangeType, type GitPatchFile, type GitPatchState, type GitWorktreeHandoff, type GitWorktreeOverview, type GitWorktreeSummary, type HostedAppChannelKind, type HostedAppChannelManifest, type HostedAppCompatibilityEntry, type HostedAppVersionManifest, type HostedBackendHealthResponse, MarkdownParser, OFFICIAL_APP_BASE_URL, OpenSpecAdapter, type OpenSpecUIConfig, OpenSpecUIConfigSchema, type OpenSpecUIConfigUpdate, OpenSpecWatcher, OpsxKernel, type PathCallback, type ProjectRecoveryStatus, type ProjectResidencyEvictionReason, type ProjectResidencyStatus, ProjectWatcher, type ProjectWatcherReinitializeReason, type ProjectWatcherRuntimeStatus, type ProjectWatcherRuntimeStatusListener, PtyAttachMessageSchema, PtyBufferResponseSchema, type PtyClientMessage, PtyClientMessageSchema, PtyCloseMessageSchema, PtyCreateMessageSchema, PtyCreatedResponseSchema, PtyErrorCodeSchema, PtyErrorResponseSchema, PtyExitResponseSchema, PtyInputMessageSchema, PtyListMessageSchema, PtyListResponseSchema, PtyOutputResponseSchema, type PtyPlatform, PtyPlatformSchema, PtyResizeMessageSchema, type PtyServerMessage, PtyServerMessageSchema, type PtySessionInfo, PtyTitleResponseSchema, ReactiveContext, ReactiveState, type ReactiveStateOptions, type Requirement, RequirementSchema, type ResolvedCliRunner, type SchemaArtifact, SchemaArtifactSchema, type SchemaDetail, SchemaDetailSchema, type SchemaInfo, SchemaInfoSchema, type SchemaResolution, SchemaResolutionSchema, type Spec, type SpecMeta, SpecSchema, TOOL_WORKFLOW_TO_SKILL_DIR, type Task, TaskSchema, type TemplateContentMap, type TemplatesMap, TemplatesSchema, type TerminalConfig, TerminalConfigSchema, type TerminalRendererEngine, TerminalRendererEngineSchema, type ToolConfig, type ToolInitDelivery, type ToolInitState, type ToolInitStatus, type ToolWorkflowId, VIRTUAL_PROJECT_DIRNAME, type ValidationIssue, type ValidationResult, Validator, type WatchEvent, type WatchEventType, type WatcherRuntimeStatus, acquireWatcher, buildCliRunnerCandidates, buildHostedLaunchUrl, buildHostedVersionManifestUrl, clearCache, closeAllProjectWatchers, closeAllWatchers, contextStorage, createCleanCliEnv, createFileChangeObservable, getActiveWatcherCount, getAllToolIds, getAllTools, getAvailableToolIds, getAvailableTools, getCacheSize, getConfiguredTools, getDefaultCliCommand, getDefaultCliCommandString, getDetectedProjectTools, getProjectWatcher, getToolById, getToolInitStates, getWatchedProjectDir, getWatcherRuntimeStatus, initWatcherPool, isGlobPattern, isHostedAppVersionManifest, isHostedBackendHealthResponse, isTerminalRendererEngine, isToolConfigured, isWatcherPoolInitialized, normalizeHostedAppBaseUrl, parseCliCommand, reactiveExists, reactiveReadDir, reactiveReadFile, reactiveStat, resolveHostedAppBaseUrl, resolveHostedChannelForVersion, sniffGlobalCli, subscribeWatcherRuntimeStatus, toOpsxDisplayPath };
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as isHostedBackendHealthResponse, c as resolveHostedChannelForVersion, i as isHostedAppVersionManifest, n as buildHostedLaunchUrl, o as normalizeHostedAppBaseUrl, r as buildHostedVersionManifestUrl, s as resolveHostedAppBaseUrl, t as OFFICIAL_APP_BASE_URL } from "./hosted-app-
|
|
2
|
-
import { n as toOpsxDisplayPath, t as VIRTUAL_PROJECT_DIRNAME } from "./opsx-display-path-
|
|
1
|
+
import { a as isHostedBackendHealthResponse, c as resolveHostedChannelForVersion, i as isHostedAppVersionManifest, n as buildHostedLaunchUrl, o as normalizeHostedAppBaseUrl, r as buildHostedVersionManifestUrl, s as resolveHostedAppBaseUrl, t as OFFICIAL_APP_BASE_URL } from "./hosted-app-Bv10mEdq.mjs";
|
|
2
|
+
import { n as toOpsxDisplayPath, t as VIRTUAL_PROJECT_DIRNAME } from "./opsx-display-path-Cja3Bt1P.mjs";
|
|
3
3
|
import { mkdir, readFile, rename, writeFile } from "fs/promises";
|
|
4
4
|
import { dirname, join } from "path";
|
|
5
5
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
@@ -3213,6 +3213,13 @@ const AI_TOOLS = [
|
|
|
3213
3213
|
successLabel: "Auggie",
|
|
3214
3214
|
skillsDir: ".augment"
|
|
3215
3215
|
},
|
|
3216
|
+
{
|
|
3217
|
+
name: "Bob Shell",
|
|
3218
|
+
value: "bob",
|
|
3219
|
+
available: true,
|
|
3220
|
+
successLabel: "Bob Shell",
|
|
3221
|
+
skillsDir: ".bob"
|
|
3222
|
+
},
|
|
3216
3223
|
{
|
|
3217
3224
|
name: "Claude Code",
|
|
3218
3225
|
value: "claude",
|
|
@@ -3234,6 +3241,13 @@ const AI_TOOLS = [
|
|
|
3234
3241
|
successLabel: "Codex",
|
|
3235
3242
|
skillsDir: ".codex"
|
|
3236
3243
|
},
|
|
3244
|
+
{
|
|
3245
|
+
name: "ForgeCode",
|
|
3246
|
+
value: "forgecode",
|
|
3247
|
+
available: true,
|
|
3248
|
+
successLabel: "ForgeCode",
|
|
3249
|
+
skillsDir: ".forge"
|
|
3250
|
+
},
|
|
3237
3251
|
{
|
|
3238
3252
|
name: "CodeBuddy Code (CLI)",
|
|
3239
3253
|
value: "codebuddy",
|
|
@@ -3288,7 +3302,16 @@ const AI_TOOLS = [
|
|
|
3288
3302
|
value: "github-copilot",
|
|
3289
3303
|
available: true,
|
|
3290
3304
|
successLabel: "GitHub Copilot",
|
|
3291
|
-
skillsDir: ".github"
|
|
3305
|
+
skillsDir: ".github",
|
|
3306
|
+
detectionPaths: [
|
|
3307
|
+
".github/copilot-instructions.md",
|
|
3308
|
+
".github/instructions",
|
|
3309
|
+
".github/workflows/copilot-setup-steps.yml",
|
|
3310
|
+
".github/prompts",
|
|
3311
|
+
".github/agents",
|
|
3312
|
+
".github/skills",
|
|
3313
|
+
".github/.mcp.json"
|
|
3314
|
+
]
|
|
3292
3315
|
},
|
|
3293
3316
|
{
|
|
3294
3317
|
name: "iFlow",
|
|
@@ -3297,6 +3320,13 @@ const AI_TOOLS = [
|
|
|
3297
3320
|
successLabel: "iFlow",
|
|
3298
3321
|
skillsDir: ".iflow"
|
|
3299
3322
|
},
|
|
3323
|
+
{
|
|
3324
|
+
name: "Junie",
|
|
3325
|
+
value: "junie",
|
|
3326
|
+
available: true,
|
|
3327
|
+
successLabel: "Junie",
|
|
3328
|
+
skillsDir: ".junie"
|
|
3329
|
+
},
|
|
3300
3330
|
{
|
|
3301
3331
|
name: "Kilo Code",
|
|
3302
3332
|
value: "kilocode",
|
|
@@ -3332,6 +3362,13 @@ const AI_TOOLS = [
|
|
|
3332
3362
|
successLabel: "Qoder",
|
|
3333
3363
|
skillsDir: ".qoder"
|
|
3334
3364
|
},
|
|
3365
|
+
{
|
|
3366
|
+
name: "Lingma",
|
|
3367
|
+
value: "lingma",
|
|
3368
|
+
available: true,
|
|
3369
|
+
successLabel: "Lingma",
|
|
3370
|
+
skillsDir: ".lingma"
|
|
3371
|
+
},
|
|
3335
3372
|
{
|
|
3336
3373
|
name: "Qwen Code",
|
|
3337
3374
|
value: "qwen",
|
|
@@ -3388,7 +3425,8 @@ function getAllTools() {
|
|
|
3388
3425
|
async function getDetectedProjectTools(projectDir) {
|
|
3389
3426
|
return (await Promise.all(AI_TOOLS.map(async (tool) => {
|
|
3390
3427
|
if (!tool.skillsDir) return null;
|
|
3391
|
-
|
|
3428
|
+
const detectionPaths = tool.detectionPaths && tool.detectionPaths.length > 0 ? tool.detectionPaths : [tool.skillsDir];
|
|
3429
|
+
return (await Promise.all(detectionPaths.map((path) => reactiveExists(join$1(projectDir, path))))).some(Boolean) ? tool : null;
|
|
3392
3430
|
}))).filter((tool) => tool !== null);
|
|
3393
3431
|
}
|
|
3394
3432
|
/**
|
|
@@ -3494,33 +3532,45 @@ function resolveCodexHome() {
|
|
|
3494
3532
|
const configuredHome = process.env.CODEX_HOME?.trim();
|
|
3495
3533
|
return resolve(configuredHome ? configuredHome : join$1(homedir(), ".codex"));
|
|
3496
3534
|
}
|
|
3497
|
-
|
|
3498
|
-
|
|
3499
|
-
|
|
3500
|
-
|
|
3501
|
-
|
|
3502
|
-
|
|
3503
|
-
|
|
3504
|
-
|
|
3505
|
-
|
|
3506
|
-
|
|
3507
|
-
|
|
3508
|
-
|
|
3509
|
-
|
|
3510
|
-
|
|
3511
|
-
|
|
3512
|
-
|
|
3513
|
-
|
|
3514
|
-
|
|
3515
|
-
|
|
3516
|
-
|
|
3517
|
-
|
|
3518
|
-
|
|
3519
|
-
|
|
3520
|
-
|
|
3521
|
-
|
|
3522
|
-
|
|
3523
|
-
}
|
|
3535
|
+
const TOOL_COMMAND_PATHS = {
|
|
3536
|
+
"amazon-q": { primary: (projectDir, workflow) => resolve(projectDir, ".amazonq", "prompts", `opsx-${workflow}.md`) },
|
|
3537
|
+
antigravity: { primary: (projectDir, workflow) => resolve(projectDir, ".agent", "workflows", `opsx-${workflow}.md`) },
|
|
3538
|
+
auggie: { primary: (projectDir, workflow) => resolve(projectDir, ".augment", "commands", `opsx-${workflow}.md`) },
|
|
3539
|
+
bob: { primary: (projectDir, workflow) => resolve(projectDir, ".bob", "commands", `opsx-${workflow}.md`) },
|
|
3540
|
+
claude: { primary: (projectDir, workflow) => resolve(projectDir, ".claude", "commands", "opsx", `${workflow}.md`) },
|
|
3541
|
+
cline: { primary: (projectDir, workflow) => resolve(projectDir, ".clinerules", "workflows", `opsx-${workflow}.md`) },
|
|
3542
|
+
codebuddy: { primary: (projectDir, workflow) => resolve(projectDir, ".codebuddy", "commands", "opsx", `${workflow}.md`) },
|
|
3543
|
+
codex: { primary: (_projectDir, workflow) => resolve(resolveCodexHome(), "prompts", `opsx-${workflow}.md`) },
|
|
3544
|
+
continue: { primary: (projectDir, workflow) => resolve(projectDir, ".continue", "prompts", `opsx-${workflow}.prompt`) },
|
|
3545
|
+
costrict: { primary: (projectDir, workflow) => resolve(projectDir, ".cospec", "openspec", "commands", `opsx-${workflow}.md`) },
|
|
3546
|
+
crush: { primary: (projectDir, workflow) => resolve(projectDir, ".crush", "commands", "opsx", `${workflow}.md`) },
|
|
3547
|
+
cursor: { primary: (projectDir, workflow) => resolve(projectDir, ".cursor", "commands", `opsx-${workflow}.md`) },
|
|
3548
|
+
factory: { primary: (projectDir, workflow) => resolve(projectDir, ".factory", "commands", `opsx-${workflow}.md`) },
|
|
3549
|
+
gemini: { primary: (projectDir, workflow) => resolve(projectDir, ".gemini", "commands", "opsx", `${workflow}.toml`) },
|
|
3550
|
+
"github-copilot": { primary: (projectDir, workflow) => resolve(projectDir, ".github", "prompts", `opsx-${workflow}.prompt.md`) },
|
|
3551
|
+
iflow: { primary: (projectDir, workflow) => resolve(projectDir, ".iflow", "commands", `opsx-${workflow}.md`) },
|
|
3552
|
+
junie: { primary: (projectDir, workflow) => resolve(projectDir, ".junie", "commands", `opsx-${workflow}.md`) },
|
|
3553
|
+
kilocode: { primary: (projectDir, workflow) => resolve(projectDir, ".kilocode", "workflows", `opsx-${workflow}.md`) },
|
|
3554
|
+
kiro: { primary: (projectDir, workflow) => resolve(projectDir, ".kiro", "prompts", `opsx-${workflow}.prompt.md`) },
|
|
3555
|
+
lingma: { primary: (projectDir, workflow) => resolve(projectDir, ".lingma", "commands", "opsx", `${workflow}.md`) },
|
|
3556
|
+
opencode: {
|
|
3557
|
+
primary: (projectDir, workflow) => resolve(projectDir, ".opencode", "commands", `opsx-${workflow}.md`),
|
|
3558
|
+
legacy: [(projectDir, workflow) => resolve(projectDir, ".opencode", "command", `opsx-${workflow}.md`)]
|
|
3559
|
+
},
|
|
3560
|
+
pi: { primary: (projectDir, workflow) => resolve(projectDir, ".pi", "prompts", `opsx-${workflow}.md`) },
|
|
3561
|
+
qoder: { primary: (projectDir, workflow) => resolve(projectDir, ".qoder", "commands", "opsx", `${workflow}.md`) },
|
|
3562
|
+
qwen: { primary: (projectDir, workflow) => resolve(projectDir, ".qwen", "commands", `opsx-${workflow}.toml`) },
|
|
3563
|
+
roocode: { primary: (projectDir, workflow) => resolve(projectDir, ".roo", "commands", `opsx-${workflow}.md`) },
|
|
3564
|
+
windsurf: { primary: (projectDir, workflow) => resolve(projectDir, ".windsurf", "workflows", `opsx-${workflow}.md`) }
|
|
3565
|
+
};
|
|
3566
|
+
function resolveToolCommandArtifact(projectDir, toolId, workflow) {
|
|
3567
|
+
const config = TOOL_COMMAND_PATHS[toolId];
|
|
3568
|
+
if (!config) return null;
|
|
3569
|
+
return {
|
|
3570
|
+
workflow,
|
|
3571
|
+
path: config.primary(projectDir, workflow),
|
|
3572
|
+
legacyPaths: config.legacy?.map((resolvePath) => resolvePath(projectDir, workflow))
|
|
3573
|
+
};
|
|
3524
3574
|
}
|
|
3525
3575
|
function getSkillArtifacts(projectDir, skillsDir) {
|
|
3526
3576
|
return ALL_TOOL_WORKFLOWS.map((workflow) => ({
|
|
@@ -3530,39 +3580,46 @@ function getSkillArtifacts(projectDir, skillsDir) {
|
|
|
3530
3580
|
}
|
|
3531
3581
|
function getCommandArtifacts(projectDir, toolId) {
|
|
3532
3582
|
return ALL_TOOL_WORKFLOWS.flatMap((workflow) => {
|
|
3533
|
-
const
|
|
3534
|
-
return
|
|
3535
|
-
workflow,
|
|
3536
|
-
path
|
|
3537
|
-
}] : [];
|
|
3583
|
+
const artifact = resolveToolCommandArtifact(projectDir, toolId, workflow);
|
|
3584
|
+
return artifact ? [artifact] : [];
|
|
3538
3585
|
});
|
|
3539
3586
|
}
|
|
3540
3587
|
function invalidateToolInitCaches(projectDir) {
|
|
3541
3588
|
const cacheRoots = /* @__PURE__ */ new Set();
|
|
3542
3589
|
for (const tool of AI_TOOLS) {
|
|
3543
3590
|
if (tool.skillsDir) cacheRoots.add(resolve(projectDir, tool.skillsDir));
|
|
3544
|
-
for (const
|
|
3545
|
-
|
|
3546
|
-
|
|
3591
|
+
for (const commandArtifact of getCommandArtifacts(projectDir, tool.value)) {
|
|
3592
|
+
cacheRoots.add(dirname$1(commandArtifact.path));
|
|
3593
|
+
for (const legacyPath of commandArtifact.legacyPaths ?? []) cacheRoots.add(dirname$1(legacyPath));
|
|
3547
3594
|
}
|
|
3548
3595
|
}
|
|
3549
3596
|
for (const root of cacheRoots) clearCache(root);
|
|
3550
3597
|
}
|
|
3551
3598
|
async function getExistingArtifactPaths(entries) {
|
|
3552
|
-
const
|
|
3553
|
-
|
|
3554
|
-
|
|
3599
|
+
const paths = entries.flatMap((entry) => [entry.path, ...entry.legacyPaths ?? []]);
|
|
3600
|
+
const presence = await Promise.all(paths.map(async (path) => ({
|
|
3601
|
+
path,
|
|
3602
|
+
exists: await reactiveExists(path)
|
|
3555
3603
|
})));
|
|
3556
3604
|
return new Set(presence.filter((entry) => entry.exists).map((entry) => entry.path));
|
|
3557
3605
|
}
|
|
3606
|
+
function hasExistingArtifact(entry, existingPaths) {
|
|
3607
|
+
return existingPaths.has(entry.path) || (entry.legacyPaths?.some((legacyPath) => existingPaths.has(legacyPath)) ?? false);
|
|
3608
|
+
}
|
|
3609
|
+
function hasLegacyArtifact(entry, existingPaths) {
|
|
3610
|
+
return entry.legacyPaths?.some((legacyPath) => existingPaths.has(legacyPath)) ?? false;
|
|
3611
|
+
}
|
|
3558
3612
|
function countExisting(entries, existingPaths) {
|
|
3559
|
-
return entries.reduce((count, entry) => count + (
|
|
3613
|
+
return entries.reduce((count, entry) => count + (hasExistingArtifact(entry, existingPaths) ? 1 : 0), 0);
|
|
3560
3614
|
}
|
|
3561
3615
|
function collectMissingWorkflows(entries, existingPaths) {
|
|
3562
|
-
return entries.filter((entry) => !
|
|
3616
|
+
return entries.filter((entry) => !hasExistingArtifact(entry, existingPaths)).map((entry) => entry.workflow);
|
|
3563
3617
|
}
|
|
3564
3618
|
function collectUnexpectedWorkflows(entries, desiredWorkflowSet, existingPaths) {
|
|
3565
|
-
return entries.filter((entry) => !desiredWorkflowSet.has(entry.workflow) &&
|
|
3619
|
+
return entries.filter((entry) => !desiredWorkflowSet.has(entry.workflow) && hasExistingArtifact(entry, existingPaths)).map((entry) => entry.workflow);
|
|
3620
|
+
}
|
|
3621
|
+
function collectLegacyWorkflows(entries, existingPaths) {
|
|
3622
|
+
return entries.filter((entry) => hasLegacyArtifact(entry, existingPaths)).map((entry) => entry.workflow);
|
|
3566
3623
|
}
|
|
3567
3624
|
async function getToolInitStates(projectDir, options) {
|
|
3568
3625
|
invalidateToolInitCaches(projectDir);
|
|
@@ -3581,6 +3638,7 @@ async function getToolInitStates(projectDir, options) {
|
|
|
3581
3638
|
const missingCommandWorkflows = collectMissingWorkflows(expectedCommandArtifacts, existingCommandPaths);
|
|
3582
3639
|
const unexpectedSkillWorkflows = collectUnexpectedWorkflows(shouldGenerateSkills ? skillArtifacts : skillArtifacts, shouldGenerateSkills ? desiredWorkflowSet : /* @__PURE__ */ new Set(), existingSkillPaths);
|
|
3583
3640
|
const unexpectedCommandWorkflows = collectUnexpectedWorkflows(shouldGenerateCommands ? commandArtifacts : commandArtifacts, shouldGenerateCommands ? desiredWorkflowSet : /* @__PURE__ */ new Set(), existingCommandPaths);
|
|
3641
|
+
const legacyCommandWorkflows = collectLegacyWorkflows(commandArtifacts, existingCommandPaths);
|
|
3584
3642
|
const expectedSkillCount = expectedSkillArtifacts.length;
|
|
3585
3643
|
const presentExpectedSkillCount = expectedSkillCount - missingSkillWorkflows.length;
|
|
3586
3644
|
const detectedSkillCount = countExisting(skillArtifacts, existingSkillPaths);
|
|
@@ -3603,7 +3661,8 @@ async function getToolInitStates(projectDir, options) {
|
|
|
3603
3661
|
missingSkillWorkflows,
|
|
3604
3662
|
missingCommandWorkflows,
|
|
3605
3663
|
unexpectedSkillWorkflows,
|
|
3606
|
-
unexpectedCommandWorkflows
|
|
3664
|
+
unexpectedCommandWorkflows,
|
|
3665
|
+
legacyCommandWorkflows
|
|
3607
3666
|
};
|
|
3608
3667
|
}));
|
|
3609
3668
|
}
|
|
@@ -3654,11 +3713,13 @@ const ApplyTaskSchema = z.object({
|
|
|
3654
3713
|
description: z.string(),
|
|
3655
3714
|
done: z.boolean()
|
|
3656
3715
|
});
|
|
3716
|
+
const ApplyInstructionsContextFilePathsSchema = z.union([z.string(), z.array(z.string())]).transform((paths) => Array.isArray(paths) ? paths : [paths]);
|
|
3717
|
+
const ApplyInstructionsContextFilesSchema = z.record(ApplyInstructionsContextFilePathsSchema);
|
|
3657
3718
|
const ApplyInstructionsSchema = z.object({
|
|
3658
3719
|
changeName: z.string(),
|
|
3659
3720
|
changeDir: z.string(),
|
|
3660
3721
|
schemaName: z.string(),
|
|
3661
|
-
contextFiles:
|
|
3722
|
+
contextFiles: ApplyInstructionsContextFilesSchema,
|
|
3662
3723
|
progress: z.object({
|
|
3663
3724
|
total: z.number(),
|
|
3664
3725
|
complete: z.number(),
|
|
@@ -4514,4 +4575,4 @@ const PtyServerMessageSchema = z.discriminatedUnion("type", [
|
|
|
4514
4575
|
]);
|
|
4515
4576
|
|
|
4516
4577
|
//#endregion
|
|
4517
|
-
export { AI_TOOLS, ApplyInstructionsSchema, ApplyTaskSchema, ArtifactInstructionsSchema, ArtifactStatusSchema, CODE_EDITOR_THEME_VALUES, ChangeFileSchema, ChangeSchema, ChangeStatusSchema, CliExecutor, CodeEditorThemeSchema, ConfigManager, DASHBOARD_METRIC_KEYS, DEFAULT_CONFIG, DEFAULT_GIT_DIFF_EAGER_LINE_BUDGET, DashboardConfigSchema, DeltaOperationType, DeltaSchema, DeltaSpecSchema, DependencyInfoSchema, GitConfigSchema, MarkdownParser, OFFICIAL_APP_BASE_URL, OpenSpecAdapter, OpenSpecUIConfigSchema, OpenSpecWatcher, OpsxKernel, ProjectWatcher, PtyAttachMessageSchema, PtyBufferResponseSchema, PtyClientMessageSchema, PtyCloseMessageSchema, PtyCreateMessageSchema, PtyCreatedResponseSchema, PtyErrorCodeSchema, PtyErrorResponseSchema, PtyExitResponseSchema, PtyInputMessageSchema, PtyListMessageSchema, PtyListResponseSchema, PtyOutputResponseSchema, PtyPlatformSchema, PtyResizeMessageSchema, PtyServerMessageSchema, PtyTitleResponseSchema, ReactiveContext, ReactiveState, RequirementSchema, SchemaArtifactSchema, SchemaDetailSchema, SchemaInfoSchema, SchemaResolutionSchema, SpecSchema, TOOL_WORKFLOW_TO_SKILL_DIR, TaskSchema, TemplatesSchema, TerminalConfigSchema, TerminalRendererEngineSchema, VIRTUAL_PROJECT_DIRNAME, Validator, acquireWatcher, buildCliRunnerCandidates, buildHostedLaunchUrl, buildHostedVersionManifestUrl, clearCache, closeAllProjectWatchers, closeAllWatchers, contextStorage, createCleanCliEnv, createFileChangeObservable, getActiveWatcherCount, getAllToolIds, getAllTools, getAvailableToolIds, getAvailableTools, getCacheSize, getConfiguredTools, getDefaultCliCommand, getDefaultCliCommandString, getDetectedProjectTools, getProjectWatcher, getToolById, getToolInitStates, getWatchedProjectDir, getWatcherRuntimeStatus, initWatcherPool, isGlobPattern, isHostedAppVersionManifest, isHostedBackendHealthResponse, isTerminalRendererEngine, isToolConfigured, isWatcherPoolInitialized, normalizeHostedAppBaseUrl, parseCliCommand, reactiveExists, reactiveReadDir, reactiveReadFile, reactiveStat, resolveHostedAppBaseUrl, resolveHostedChannelForVersion, sniffGlobalCli, subscribeWatcherRuntimeStatus, toOpsxDisplayPath };
|
|
4578
|
+
export { AI_TOOLS, ApplyInstructionsContextFilesSchema, ApplyInstructionsSchema, ApplyTaskSchema, ArtifactInstructionsSchema, ArtifactStatusSchema, CODE_EDITOR_THEME_VALUES, ChangeFileSchema, ChangeSchema, ChangeStatusSchema, CliExecutor, CodeEditorThemeSchema, ConfigManager, DASHBOARD_METRIC_KEYS, DEFAULT_CONFIG, DEFAULT_GIT_DIFF_EAGER_LINE_BUDGET, DashboardConfigSchema, DeltaOperationType, DeltaSchema, DeltaSpecSchema, DependencyInfoSchema, GitConfigSchema, MarkdownParser, OFFICIAL_APP_BASE_URL, OpenSpecAdapter, OpenSpecUIConfigSchema, OpenSpecWatcher, OpsxKernel, ProjectWatcher, PtyAttachMessageSchema, PtyBufferResponseSchema, PtyClientMessageSchema, PtyCloseMessageSchema, PtyCreateMessageSchema, PtyCreatedResponseSchema, PtyErrorCodeSchema, PtyErrorResponseSchema, PtyExitResponseSchema, PtyInputMessageSchema, PtyListMessageSchema, PtyListResponseSchema, PtyOutputResponseSchema, PtyPlatformSchema, PtyResizeMessageSchema, PtyServerMessageSchema, PtyTitleResponseSchema, ReactiveContext, ReactiveState, RequirementSchema, SchemaArtifactSchema, SchemaDetailSchema, SchemaInfoSchema, SchemaResolutionSchema, SpecSchema, TOOL_WORKFLOW_TO_SKILL_DIR, TaskSchema, TemplatesSchema, TerminalConfigSchema, TerminalRendererEngineSchema, VIRTUAL_PROJECT_DIRNAME, Validator, acquireWatcher, buildCliRunnerCandidates, buildHostedLaunchUrl, buildHostedVersionManifestUrl, clearCache, closeAllProjectWatchers, closeAllWatchers, contextStorage, createCleanCliEnv, createFileChangeObservable, getActiveWatcherCount, getAllToolIds, getAllTools, getAvailableToolIds, getAvailableTools, getCacheSize, getConfiguredTools, getDefaultCliCommand, getDefaultCliCommandString, getDetectedProjectTools, getProjectWatcher, getToolById, getToolInitStates, getWatchedProjectDir, getWatcherRuntimeStatus, initWatcherPool, isGlobPattern, isHostedAppVersionManifest, isHostedBackendHealthResponse, isTerminalRendererEngine, isToolConfigured, isWatcherPoolInitialized, normalizeHostedAppBaseUrl, parseCliCommand, reactiveExists, reactiveReadDir, reactiveReadFile, reactiveStat, resolveHostedAppBaseUrl, resolveHostedChannelForVersion, sniffGlobalCli, subscribeWatcherRuntimeStatus, toOpsxDisplayPath };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
//#region src/openspec-compat.d.ts
|
|
2
|
+
declare const OPENSPECUI_TARGET_MAJOR = 3;
|
|
3
|
+
declare const OPENSPEC_CLI_TARGET_SERIES = "1.3";
|
|
4
|
+
declare const OPENSPEC_CLI_LEGACY_SERIES = "1.2";
|
|
5
|
+
declare const OPENSPEC_CLI_MIN_VERSION = "1.2.0";
|
|
6
|
+
declare const OPENSPEC_CLI_TARGET_MIN_VERSION = "1.3.0";
|
|
7
|
+
declare const OPENSPEC_CLI_NEXT_SERIES_MIN_VERSION = "1.4.0";
|
|
8
|
+
declare const OPENSPEC_CLI_ACCEPTED_RANGE = ">=1.2.0 <1.4.0";
|
|
9
|
+
declare const OPENSPEC_CLI_RECOMMENDED_RANGE = ">=1.3.0 <1.4.0";
|
|
10
|
+
declare const OPENSPEC_CLI_LEGACY_RANGE = ">=1.2.0 <1.3.0";
|
|
11
|
+
declare const OPENSPEC_CLI_REFERENCE_TAG_PATTERN = "v1.3.*";
|
|
12
|
+
interface OpenSpecCliVersion {
|
|
13
|
+
major: number;
|
|
14
|
+
minor: number;
|
|
15
|
+
patch: number;
|
|
16
|
+
}
|
|
17
|
+
type OpenSpecCliCompatibilityStatus = 'current' | 'legacy-compatible' | 'unsupported' | 'unknown';
|
|
18
|
+
interface OpenSpecCliCompatibility {
|
|
19
|
+
rawVersion: string | undefined;
|
|
20
|
+
version: OpenSpecCliVersion | null;
|
|
21
|
+
status: OpenSpecCliCompatibilityStatus;
|
|
22
|
+
supported: boolean;
|
|
23
|
+
recommended: boolean;
|
|
24
|
+
blocksCoreInteractions: boolean;
|
|
25
|
+
message: string;
|
|
26
|
+
}
|
|
27
|
+
declare function parseOpenSpecCliVersion(raw: string | undefined): OpenSpecCliVersion | null;
|
|
28
|
+
declare function formatOpenSpecCliVersion(version: OpenSpecCliVersion): string;
|
|
29
|
+
declare function compareOpenSpecCliVersions(left: OpenSpecCliVersion, right: OpenSpecCliVersion): number;
|
|
30
|
+
declare function classifyOpenSpecCliVersion(rawVersion: string | undefined): OpenSpecCliCompatibility;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { OPENSPECUI_TARGET_MAJOR, OPENSPEC_CLI_ACCEPTED_RANGE, OPENSPEC_CLI_LEGACY_RANGE, OPENSPEC_CLI_LEGACY_SERIES, OPENSPEC_CLI_MIN_VERSION, OPENSPEC_CLI_NEXT_SERIES_MIN_VERSION, OPENSPEC_CLI_RECOMMENDED_RANGE, OPENSPEC_CLI_REFERENCE_TAG_PATTERN, OPENSPEC_CLI_TARGET_MIN_VERSION, OPENSPEC_CLI_TARGET_SERIES, OpenSpecCliCompatibility, OpenSpecCliCompatibilityStatus, OpenSpecCliVersion, classifyOpenSpecCliVersion, compareOpenSpecCliVersions, formatOpenSpecCliVersion, parseOpenSpecCliVersion };
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
//#region src/openspec-compat.ts
|
|
2
|
+
const OPENSPECUI_TARGET_MAJOR = 3;
|
|
3
|
+
const OPENSPEC_CLI_TARGET_SERIES = "1.3";
|
|
4
|
+
const OPENSPEC_CLI_LEGACY_SERIES = "1.2";
|
|
5
|
+
const OPENSPEC_CLI_MIN_VERSION = "1.2.0";
|
|
6
|
+
const OPENSPEC_CLI_TARGET_MIN_VERSION = "1.3.0";
|
|
7
|
+
const OPENSPEC_CLI_NEXT_SERIES_MIN_VERSION = "1.4.0";
|
|
8
|
+
const OPENSPEC_CLI_ACCEPTED_RANGE = ">=1.2.0 <1.4.0";
|
|
9
|
+
const OPENSPEC_CLI_RECOMMENDED_RANGE = ">=1.3.0 <1.4.0";
|
|
10
|
+
const OPENSPEC_CLI_LEGACY_RANGE = ">=1.2.0 <1.3.0";
|
|
11
|
+
const OPENSPEC_CLI_REFERENCE_TAG_PATTERN = "v1.3.*";
|
|
12
|
+
function parseOpenSpecCliVersion(raw) {
|
|
13
|
+
if (!raw) return null;
|
|
14
|
+
const match = raw.match(/(\d+)\.(\d+)\.(\d+)/);
|
|
15
|
+
if (!match) return null;
|
|
16
|
+
return {
|
|
17
|
+
major: Number(match[1]),
|
|
18
|
+
minor: Number(match[2]),
|
|
19
|
+
patch: Number(match[3])
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function formatOpenSpecCliVersion(version) {
|
|
23
|
+
return `${version.major}.${version.minor}.${version.patch}`;
|
|
24
|
+
}
|
|
25
|
+
function compareOpenSpecCliVersions(left, right) {
|
|
26
|
+
if (left.major !== right.major) return left.major - right.major;
|
|
27
|
+
if (left.minor !== right.minor) return left.minor - right.minor;
|
|
28
|
+
return left.patch - right.patch;
|
|
29
|
+
}
|
|
30
|
+
function isSeries(version, series) {
|
|
31
|
+
const [major, minor] = series.split(".").map((part) => Number(part));
|
|
32
|
+
return version.major === major && version.minor === minor;
|
|
33
|
+
}
|
|
34
|
+
function classifyOpenSpecCliVersion(rawVersion) {
|
|
35
|
+
const version = parseOpenSpecCliVersion(rawVersion);
|
|
36
|
+
if (!version) return {
|
|
37
|
+
rawVersion,
|
|
38
|
+
version: null,
|
|
39
|
+
status: "unknown",
|
|
40
|
+
supported: false,
|
|
41
|
+
recommended: false,
|
|
42
|
+
blocksCoreInteractions: true,
|
|
43
|
+
message: "Unable to parse OpenSpec CLI version."
|
|
44
|
+
};
|
|
45
|
+
if (isSeries(version, OPENSPEC_CLI_TARGET_SERIES)) return {
|
|
46
|
+
rawVersion,
|
|
47
|
+
version,
|
|
48
|
+
status: "current",
|
|
49
|
+
supported: true,
|
|
50
|
+
recommended: true,
|
|
51
|
+
blocksCoreInteractions: false,
|
|
52
|
+
message: `OpenSpec CLI ${formatOpenSpecCliVersion(version)} matches the OpenSpecUI ${OPENSPECUI_TARGET_MAJOR}.x target line.`
|
|
53
|
+
};
|
|
54
|
+
if (isSeries(version, OPENSPEC_CLI_LEGACY_SERIES)) return {
|
|
55
|
+
rawVersion,
|
|
56
|
+
version,
|
|
57
|
+
status: "legacy-compatible",
|
|
58
|
+
supported: true,
|
|
59
|
+
recommended: false,
|
|
60
|
+
blocksCoreInteractions: false,
|
|
61
|
+
message: `OpenSpec CLI ${formatOpenSpecCliVersion(version)} is legacy-compatible with OpenSpecUI ${OPENSPECUI_TARGET_MAJOR}.x. Upgrade to ${OPENSPEC_CLI_RECOMMENDED_RANGE} for the current line.`
|
|
62
|
+
};
|
|
63
|
+
return {
|
|
64
|
+
rawVersion,
|
|
65
|
+
version,
|
|
66
|
+
status: "unsupported",
|
|
67
|
+
supported: false,
|
|
68
|
+
recommended: false,
|
|
69
|
+
blocksCoreInteractions: true,
|
|
70
|
+
message: `Detected OpenSpec CLI ${formatOpenSpecCliVersion(version)}, but OpenSpecUI ${OPENSPECUI_TARGET_MAJOR}.x accepts ${OPENSPEC_CLI_ACCEPTED_RANGE}.`
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
//#endregion
|
|
75
|
+
export { OPENSPECUI_TARGET_MAJOR, OPENSPEC_CLI_ACCEPTED_RANGE, OPENSPEC_CLI_LEGACY_RANGE, OPENSPEC_CLI_LEGACY_SERIES, OPENSPEC_CLI_MIN_VERSION, OPENSPEC_CLI_NEXT_SERIES_MIN_VERSION, OPENSPEC_CLI_RECOMMENDED_RANGE, OPENSPEC_CLI_REFERENCE_TAG_PATTERN, OPENSPEC_CLI_TARGET_MIN_VERSION, OPENSPEC_CLI_TARGET_SERIES, classifyOpenSpecCliVersion, compareOpenSpecCliVersions, formatOpenSpecCliVersion, parseOpenSpecCliVersion };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as toOpsxDisplayPath, t as VIRTUAL_PROJECT_DIRNAME } from "./opsx-display-path-
|
|
1
|
+
import { n as toOpsxDisplayPath, t as VIRTUAL_PROJECT_DIRNAME } from "./opsx-display-path-C1H1ryBL.mjs";
|
|
2
2
|
export { VIRTUAL_PROJECT_DIRNAME, toOpsxDisplayPath };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openspecui/core",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Core OpenSpec adapter and parser",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.mjs",
|
|
@@ -18,6 +18,10 @@
|
|
|
18
18
|
"import": "./dist/hosted-app.mjs",
|
|
19
19
|
"types": "./dist/hosted-app.d.mts"
|
|
20
20
|
},
|
|
21
|
+
"./openspec-compat": {
|
|
22
|
+
"import": "./dist/openspec-compat.mjs",
|
|
23
|
+
"types": "./dist/openspec-compat.d.mts"
|
|
24
|
+
},
|
|
21
25
|
"./opsx-display-path": {
|
|
22
26
|
"import": "./dist/opsx-display-path.mjs",
|
|
23
27
|
"types": "./dist/opsx-display-path.d.mts"
|
|
@@ -27,8 +31,8 @@
|
|
|
27
31
|
"dist"
|
|
28
32
|
],
|
|
29
33
|
"scripts": {
|
|
30
|
-
"build": "tsdown src/index.ts src/dashboard-display.ts src/opsx-display-path.ts src/hosted-app.ts --format esm --dts",
|
|
31
|
-
"dev": "tsdown src/index.ts src/dashboard-display.ts src/opsx-display-path.ts src/hosted-app.ts --format esm --dts --watch",
|
|
34
|
+
"build": "tsdown src/index.ts src/dashboard-display.ts src/opsx-display-path.ts src/hosted-app.ts src/openspec-compat.ts --format esm --dts",
|
|
35
|
+
"dev": "tsdown src/index.ts src/dashboard-display.ts src/opsx-display-path.ts src/hosted-app.ts src/openspec-compat.ts --format esm --dts --watch",
|
|
32
36
|
"test": "vitest run",
|
|
33
37
|
"test:watch": "vitest",
|
|
34
38
|
"typecheck": "tsc --noEmit"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|