@amsterdamdatalabs/enact-extensions 0.1.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/.agents/plugins/marketplace.json +20 -0
- package/README.md +88 -0
- package/catalog/enact-context.json +9 -0
- package/catalog/enact-factory.json +7 -0
- package/catalog/enact-operator.json +7 -0
- package/catalog/enact-wiki.json +7 -0
- package/catalog/net-revenue-management.json +8 -0
- package/dist/create/claude.d.ts +3 -0
- package/dist/create/claude.d.ts.map +1 -0
- package/dist/create/claude.js +12 -0
- package/dist/create/claude.js.map +1 -0
- package/dist/create/codex.d.ts +3 -0
- package/dist/create/codex.d.ts.map +1 -0
- package/dist/create/codex.js +14 -0
- package/dist/create/codex.js.map +1 -0
- package/dist/create/cursor.d.ts +3 -0
- package/dist/create/cursor.d.ts.map +1 -0
- package/dist/create/cursor.js +20 -0
- package/dist/create/cursor.js.map +1 -0
- package/dist/create/enact.d.ts +3 -0
- package/dist/create/enact.d.ts.map +1 -0
- package/dist/create/enact.js +32 -0
- package/dist/create/enact.js.map +1 -0
- package/dist/create/index.d.ts +18 -0
- package/dist/create/index.d.ts.map +1 -0
- package/dist/create/index.js +54 -0
- package/dist/create/index.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/install.d.ts +60 -0
- package/dist/install.d.ts.map +1 -0
- package/dist/install.js +250 -0
- package/dist/install.js.map +1 -0
- package/dist/internal/claude.d.ts +16 -0
- package/dist/internal/claude.d.ts.map +1 -0
- package/dist/internal/claude.js +35 -0
- package/dist/internal/claude.js.map +1 -0
- package/dist/internal/codex.d.ts +43 -0
- package/dist/internal/codex.d.ts.map +1 -0
- package/dist/internal/codex.js +205 -0
- package/dist/internal/codex.js.map +1 -0
- package/dist/internal/cursor.d.ts +2 -0
- package/dist/internal/cursor.d.ts.map +1 -0
- package/dist/internal/cursor.js +6 -0
- package/dist/internal/cursor.js.map +1 -0
- package/dist/internal/io.d.ts +3 -0
- package/dist/internal/io.d.ts.map +1 -0
- package/dist/internal/io.js +11 -0
- package/dist/internal/io.js.map +1 -0
- package/dist/internal/pick.d.ts +4 -0
- package/dist/internal/pick.d.ts.map +1 -0
- package/dist/internal/pick.js +17 -0
- package/dist/internal/pick.js.map +1 -0
- package/dist/internal/platform.d.ts +21 -0
- package/dist/internal/platform.d.ts.map +1 -0
- package/dist/internal/platform.js +120 -0
- package/dist/internal/platform.js.map +1 -0
- package/dist/internal/schema.d.ts +5 -0
- package/dist/internal/schema.d.ts.map +1 -0
- package/dist/internal/schema.js +37 -0
- package/dist/internal/schema.js.map +1 -0
- package/dist/internal/types.d.ts +49 -0
- package/dist/internal/types.d.ts.map +1 -0
- package/dist/internal/types.js +2 -0
- package/dist/internal/types.js.map +1 -0
- package/dist/validate/claude.d.ts +3 -0
- package/dist/validate/claude.d.ts.map +1 -0
- package/dist/validate/claude.js +11 -0
- package/dist/validate/claude.js.map +1 -0
- package/dist/validate/codex.d.ts +3 -0
- package/dist/validate/codex.d.ts.map +1 -0
- package/dist/validate/codex.js +11 -0
- package/dist/validate/codex.js.map +1 -0
- package/dist/validate/cursor.d.ts +3 -0
- package/dist/validate/cursor.d.ts.map +1 -0
- package/dist/validate/cursor.js +11 -0
- package/dist/validate/cursor.js.map +1 -0
- package/dist/validate/enact.d.ts +4 -0
- package/dist/validate/enact.d.ts.map +1 -0
- package/dist/validate/enact.js +18 -0
- package/dist/validate/enact.js.map +1 -0
- package/dist/validate/index.d.ts +17 -0
- package/dist/validate/index.d.ts.map +1 -0
- package/dist/validate/index.js +99 -0
- package/dist/validate/index.js.map +1 -0
- package/package.json +58 -0
- package/plugins/net-revenue-management/.codex-plugin/plugin.json +35 -0
- package/plugins/net-revenue-management/.mcp.json +9 -0
- package/plugins/net-revenue-management/skills/net-revenue-risks/SKILL.md +30 -0
- package/plugins/net-revenue-management/skills/net-revenue-scenario/SKILL.md +31 -0
- package/scripts/enact-extensions.mjs +105 -0
- package/scripts/install.sh +70 -0
- package/scripts/lib/resolve-plugin-root.mjs +9 -0
- package/scripts/lib/run-install.mjs +66 -0
- package/scripts/lib/run-sync.mjs +24 -0
- package/scripts/lib/run-validate.mjs +36 -0
- package/scripts/rename-supervisor-to-operator.pl +66 -0
- package/scripts/setup-enact-context.sh +23 -0
- package/scripts/sync-manifests.mjs +23 -0
- package/scripts/validate-catalog.mjs +37 -0
- package/scripts/validate-plugin.mjs +10 -0
- package/spec/claude.json +99 -0
- package/spec/claude.md +485 -0
- package/spec/codex.json +154 -0
- package/spec/codex.md +145 -0
- package/spec/cursor.json +88 -0
- package/spec/cursor.md +175 -0
- package/spec/enact.json +211 -0
- package/spec/enact.md +204 -0
package/dist/install.js
ADDED
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { cpSync, existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { dirname, join, resolve } from "node:path";
|
|
3
|
+
import { defaultCodexHome, ensureMarketplace, readCodexConfig, resolveCodexInstallHomes, setPluginEnabled, writeCodexConfig, } from "./internal/codex.js";
|
|
4
|
+
import { syncPlatformManifests } from "./create/index.js";
|
|
5
|
+
import { checkPluginBundleComponentPaths, readManifestFile, validateClaudeManifest, validateCodexManifest, validateCursorManifest, } from "./validate/index.js";
|
|
6
|
+
import { defaultClaudeHome, registerLocalMarketplace } from "./internal/claude.js";
|
|
7
|
+
import { defaultCursorHome } from "./internal/cursor.js";
|
|
8
|
+
function readJson(path, fallback) {
|
|
9
|
+
if (!existsSync(path))
|
|
10
|
+
return fallback;
|
|
11
|
+
return JSON.parse(readFileSync(path, "utf8"));
|
|
12
|
+
}
|
|
13
|
+
function writeJson(path, value) {
|
|
14
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
15
|
+
writeFileSync(path, `${JSON.stringify(value, null, 2)}\n`, "utf8");
|
|
16
|
+
}
|
|
17
|
+
function pathFieldsFromManifest(manifest) {
|
|
18
|
+
const fields = ["skills", "mcpServers", "apps", "commands", "hooks", "agents", "_agents", "rules"];
|
|
19
|
+
const results = [];
|
|
20
|
+
for (const field of fields) {
|
|
21
|
+
const value = manifest[field];
|
|
22
|
+
if (typeof value === "string" && value.trim())
|
|
23
|
+
results.push(value);
|
|
24
|
+
}
|
|
25
|
+
const iface = manifest.interface;
|
|
26
|
+
if (iface && typeof iface === "object" && !Array.isArray(iface)) {
|
|
27
|
+
for (const field of ["composerIcon", "logo"]) {
|
|
28
|
+
const value = iface[field];
|
|
29
|
+
if (typeof value === "string" && value.trim())
|
|
30
|
+
results.push(value);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return results;
|
|
34
|
+
}
|
|
35
|
+
function normalizedProjectionEntries(manifest, platformDir) {
|
|
36
|
+
const entries = new Set([platformDir, "README.md"]);
|
|
37
|
+
for (const raw of pathFieldsFromManifest(manifest)) {
|
|
38
|
+
const cleaned = raw.replace(/^\.\//, "").replace(/\/+$/, "");
|
|
39
|
+
if (!cleaned || cleaned.startsWith("../"))
|
|
40
|
+
continue;
|
|
41
|
+
entries.add(cleaned);
|
|
42
|
+
}
|
|
43
|
+
if (typeof manifest.hooks === "string" && manifest.hooks.trim()) {
|
|
44
|
+
const cleaned = manifest.hooks.replace(/^\.\//, "").replace(/\/+$/, "");
|
|
45
|
+
if (cleaned.endsWith("/hooks.json")) {
|
|
46
|
+
const parentDir = dirname(cleaned);
|
|
47
|
+
if (parentDir !== ".")
|
|
48
|
+
entries.add(parentDir);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return [...entries];
|
|
52
|
+
}
|
|
53
|
+
function projectBundle(sourceRoot, targetRoot, manifest, platformDir) {
|
|
54
|
+
rmSync(targetRoot, { recursive: true, force: true });
|
|
55
|
+
mkdirSync(targetRoot, { recursive: true });
|
|
56
|
+
for (const entry of normalizedProjectionEntries(manifest, platformDir)) {
|
|
57
|
+
const sourcePath = resolve(sourceRoot, entry);
|
|
58
|
+
if (!existsSync(sourcePath))
|
|
59
|
+
continue;
|
|
60
|
+
cpSync(sourcePath, join(targetRoot, entry), { recursive: true, force: true });
|
|
61
|
+
}
|
|
62
|
+
writeJson(join(targetRoot, platformDir, "plugin.json"), manifest);
|
|
63
|
+
}
|
|
64
|
+
function maybeSync(pluginRoot, platform) {
|
|
65
|
+
const enactManifestPath = join(pluginRoot, ".agents", "plugin.json");
|
|
66
|
+
if (!existsSync(enactManifestPath))
|
|
67
|
+
return [];
|
|
68
|
+
const enact = readManifestFile(pluginRoot, "enact");
|
|
69
|
+
return syncPlatformManifests(pluginRoot, enact, [platform]);
|
|
70
|
+
}
|
|
71
|
+
function stringField(manifest, key) {
|
|
72
|
+
const value = manifest[key];
|
|
73
|
+
return typeof value === "string" && value.trim() ? value : undefined;
|
|
74
|
+
}
|
|
75
|
+
function marketplaceRoot(codexHome, marketplaceName) {
|
|
76
|
+
return join(codexHome, "marketplaces", marketplaceName);
|
|
77
|
+
}
|
|
78
|
+
function marketplacePath(codexHome, marketplaceName) {
|
|
79
|
+
return join(marketplaceRoot(codexHome, marketplaceName), ".agents", "plugins", "marketplace.json");
|
|
80
|
+
}
|
|
81
|
+
function marketplacePluginPath(codexHome, marketplaceName, pluginName) {
|
|
82
|
+
return join(marketplaceRoot(codexHome, marketplaceName), "plugins", pluginName);
|
|
83
|
+
}
|
|
84
|
+
function installedPluginPath(codexHome, pluginName) {
|
|
85
|
+
return join(codexHome, "plugins", pluginName);
|
|
86
|
+
}
|
|
87
|
+
function cachePluginPath(codexHome, marketplaceName, pluginName, version) {
|
|
88
|
+
return join(codexHome, "plugins", "cache", marketplaceName, pluginName, version);
|
|
89
|
+
}
|
|
90
|
+
function marketplaceDisplayName(marketplaceName) {
|
|
91
|
+
return marketplaceName
|
|
92
|
+
.split("-")
|
|
93
|
+
.filter(Boolean)
|
|
94
|
+
.map((part) => part[0]?.toUpperCase() + part.slice(1))
|
|
95
|
+
.join(" ");
|
|
96
|
+
}
|
|
97
|
+
function categoryFrom(manifest) {
|
|
98
|
+
const iface = manifest.interface;
|
|
99
|
+
if (iface && typeof iface === "object" && !Array.isArray(iface)) {
|
|
100
|
+
const category = iface.category;
|
|
101
|
+
if (typeof category === "string" && category.trim())
|
|
102
|
+
return category;
|
|
103
|
+
}
|
|
104
|
+
return "Developer Tools";
|
|
105
|
+
}
|
|
106
|
+
function manifestForCodexInstall(manifest) {
|
|
107
|
+
const name = stringField(manifest, "name");
|
|
108
|
+
if (name !== "enact-operator" && name !== "enact-extensions")
|
|
109
|
+
return manifest;
|
|
110
|
+
const clone = { ...manifest };
|
|
111
|
+
delete clone.hooks;
|
|
112
|
+
return clone;
|
|
113
|
+
}
|
|
114
|
+
function upsertMarketplaceEntry(codexHome, marketplaceName, manifest, pluginName) {
|
|
115
|
+
const path = marketplacePath(codexHome, marketplaceName);
|
|
116
|
+
const current = readJson(path, {
|
|
117
|
+
name: marketplaceName,
|
|
118
|
+
interface: { displayName: marketplaceDisplayName(marketplaceName) },
|
|
119
|
+
plugins: [],
|
|
120
|
+
});
|
|
121
|
+
const entry = {
|
|
122
|
+
name: pluginName,
|
|
123
|
+
source: { source: "local", path: `./plugins/${pluginName}` },
|
|
124
|
+
policy: { installation: "AVAILABLE", authentication: "ON_INSTALL" },
|
|
125
|
+
category: categoryFrom(manifest),
|
|
126
|
+
};
|
|
127
|
+
const plugins = (current.plugins ?? []).filter((plugin) => plugin.name !== pluginName);
|
|
128
|
+
plugins.push(entry);
|
|
129
|
+
writeJson(path, {
|
|
130
|
+
name: current.name || marketplaceName,
|
|
131
|
+
interface: {
|
|
132
|
+
displayName: current.interface?.displayName || marketplaceDisplayName(marketplaceName),
|
|
133
|
+
},
|
|
134
|
+
plugins,
|
|
135
|
+
});
|
|
136
|
+
return path;
|
|
137
|
+
}
|
|
138
|
+
export function installCodexPluginBundle(options) {
|
|
139
|
+
const codexHome = options.codexHome ?? defaultCodexHome();
|
|
140
|
+
const marketplaceName = options.marketplaceName ?? "enact-os-plugins";
|
|
141
|
+
const syncResults = options.sync !== false ? maybeSync(options.pluginRoot, "codex") : [];
|
|
142
|
+
const codexManifest = readManifestFile(options.pluginRoot, "codex");
|
|
143
|
+
const validation = validateCodexManifest(codexManifest);
|
|
144
|
+
if (!validation.ok) {
|
|
145
|
+
throw new Error(`Invalid Codex plugin manifest:\n${validation.errors.join("\n")}`);
|
|
146
|
+
}
|
|
147
|
+
const componentIssues = checkPluginBundleComponentPaths(options.pluginRoot, ["codex"]);
|
|
148
|
+
if (componentIssues.length > 0) {
|
|
149
|
+
throw new Error(`Plugin component paths are not installable:\n${componentIssues.join("\n")}`);
|
|
150
|
+
}
|
|
151
|
+
const name = stringField(codexManifest, "name");
|
|
152
|
+
if (!name) {
|
|
153
|
+
throw new Error("Codex plugin manifest is missing name");
|
|
154
|
+
}
|
|
155
|
+
const installManifest = manifestForCodexInstall(codexManifest);
|
|
156
|
+
const version = stringField(codexManifest, "version") ?? "0.0.0";
|
|
157
|
+
const pluginConfigKey = `${name}@${marketplaceName}`;
|
|
158
|
+
const config = readCodexConfig(codexHome);
|
|
159
|
+
ensureMarketplace(config, marketplaceName, {
|
|
160
|
+
source: marketplaceRoot(codexHome, marketplaceName),
|
|
161
|
+
source_type: "local",
|
|
162
|
+
});
|
|
163
|
+
if (options.enable !== false) {
|
|
164
|
+
setPluginEnabled(config, pluginConfigKey, true);
|
|
165
|
+
}
|
|
166
|
+
const configPath = writeCodexConfig(codexHome, config);
|
|
167
|
+
const mktPath = upsertMarketplaceEntry(codexHome, marketplaceName, installManifest, name);
|
|
168
|
+
const mktPluginPath = marketplacePluginPath(codexHome, marketplaceName, name);
|
|
169
|
+
const installedPath = installedPluginPath(codexHome, name);
|
|
170
|
+
const cachePath = cachePluginPath(codexHome, marketplaceName, name, version);
|
|
171
|
+
projectBundle(options.pluginRoot, mktPluginPath, installManifest, ".codex-plugin");
|
|
172
|
+
projectBundle(options.pluginRoot, installedPath, installManifest, ".codex-plugin");
|
|
173
|
+
projectBundle(options.pluginRoot, cachePath, installManifest, ".codex-plugin");
|
|
174
|
+
return {
|
|
175
|
+
name,
|
|
176
|
+
version,
|
|
177
|
+
marketplaceName,
|
|
178
|
+
pluginConfigKey,
|
|
179
|
+
configPath,
|
|
180
|
+
marketplacePath: mktPath,
|
|
181
|
+
marketplacePluginPath: mktPluginPath,
|
|
182
|
+
installedPluginPath: installedPath,
|
|
183
|
+
cachePluginPath: cachePath,
|
|
184
|
+
refreshedPaths: [mktPluginPath, installedPath, cachePath],
|
|
185
|
+
syncResults,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
export function installPluginBundle(options) {
|
|
189
|
+
const codexHomes = resolveCodexInstallHomes({
|
|
190
|
+
cwd: options.cwd ?? options.pluginRoot,
|
|
191
|
+
codexHome: options.codexHome,
|
|
192
|
+
});
|
|
193
|
+
const results = codexHomes.map((codexHome) => installCodexPluginBundle({
|
|
194
|
+
...options,
|
|
195
|
+
codexHome,
|
|
196
|
+
}));
|
|
197
|
+
return { codexHomes, results };
|
|
198
|
+
}
|
|
199
|
+
export function installClaudePluginBundle(options) {
|
|
200
|
+
const claudeHome = options.claudeHome ?? defaultClaudeHome();
|
|
201
|
+
const marketplaceName = options.marketplaceName ?? "enact-os-plugins";
|
|
202
|
+
const syncResults = options.sync !== false ? maybeSync(options.pluginRoot, "claude") : [];
|
|
203
|
+
const claudeManifest = readManifestFile(options.pluginRoot, "claude");
|
|
204
|
+
const validation = validateClaudeManifest(claudeManifest);
|
|
205
|
+
if (!validation.ok) {
|
|
206
|
+
throw new Error(`Invalid Claude plugin manifest:\n${validation.errors.join("\n")}`);
|
|
207
|
+
}
|
|
208
|
+
const name = stringField(claudeManifest, "name");
|
|
209
|
+
if (!name) {
|
|
210
|
+
throw new Error("Claude plugin manifest is missing name");
|
|
211
|
+
}
|
|
212
|
+
const version = stringField(claudeManifest, "version") ?? "0.0.0";
|
|
213
|
+
const marketplaceDir = join(claudeHome, "plugins", "marketplaces", marketplaceName);
|
|
214
|
+
const installedPath = join(marketplaceDir, "plugins", name);
|
|
215
|
+
projectBundle(options.pluginRoot, installedPath, claudeManifest, ".claude-plugin");
|
|
216
|
+
registerLocalMarketplace(claudeHome, marketplaceName, marketplaceDir);
|
|
217
|
+
return {
|
|
218
|
+
name,
|
|
219
|
+
version,
|
|
220
|
+
marketplaceName,
|
|
221
|
+
marketplaceDir,
|
|
222
|
+
installedPluginPath: installedPath,
|
|
223
|
+
refreshedPaths: [installedPath],
|
|
224
|
+
syncResults,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
export function installCursorPluginBundle(options) {
|
|
228
|
+
const cursorHome = options.cursorHome ?? defaultCursorHome();
|
|
229
|
+
const syncResults = options.sync !== false ? maybeSync(options.pluginRoot, "cursor") : [];
|
|
230
|
+
const cursorManifest = readManifestFile(options.pluginRoot, "cursor");
|
|
231
|
+
const validation = validateCursorManifest(cursorManifest);
|
|
232
|
+
if (!validation.ok) {
|
|
233
|
+
throw new Error(`Invalid Cursor plugin manifest:\n${validation.errors.join("\n")}`);
|
|
234
|
+
}
|
|
235
|
+
const name = stringField(cursorManifest, "name");
|
|
236
|
+
if (!name) {
|
|
237
|
+
throw new Error("Cursor plugin manifest is missing name");
|
|
238
|
+
}
|
|
239
|
+
const version = stringField(cursorManifest, "version") ?? "0.0.0";
|
|
240
|
+
const installedPath = join(cursorHome, "plugins", "local", name);
|
|
241
|
+
projectBundle(options.pluginRoot, installedPath, cursorManifest, ".cursor-plugin");
|
|
242
|
+
return {
|
|
243
|
+
name,
|
|
244
|
+
version,
|
|
245
|
+
installedPluginPath: installedPath,
|
|
246
|
+
refreshedPaths: [installedPath],
|
|
247
|
+
syncResults,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare function defaultClaudeHome(): string;
|
|
2
|
+
interface KnownMarketplaceEntry {
|
|
3
|
+
source: {
|
|
4
|
+
source: string;
|
|
5
|
+
path?: string;
|
|
6
|
+
repo?: string;
|
|
7
|
+
};
|
|
8
|
+
installLocation: string;
|
|
9
|
+
lastUpdated: string;
|
|
10
|
+
}
|
|
11
|
+
type KnownMarketplaces = Record<string, KnownMarketplaceEntry>;
|
|
12
|
+
export declare function readKnownMarketplaces(claudeHome: string): KnownMarketplaces;
|
|
13
|
+
export declare function writeKnownMarketplaces(claudeHome: string, data: KnownMarketplaces): void;
|
|
14
|
+
export declare function registerLocalMarketplace(claudeHome: string, marketplaceName: string, marketplaceDir: string): void;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=claude.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/internal/claude.ts"],"names":[],"mappings":"AAIA,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,UAAU,qBAAqB;IAC7B,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,KAAK,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAM/D,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,CAQ3E;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,CAIxF;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM,GACrB,IAAI,CAQN"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { homedir } from "node:os";
|
|
4
|
+
export function defaultClaudeHome() {
|
|
5
|
+
return join(homedir(), ".claude");
|
|
6
|
+
}
|
|
7
|
+
function knownMarketplacesPath(claudeHome) {
|
|
8
|
+
return join(claudeHome, "plugins", "known_marketplaces.json");
|
|
9
|
+
}
|
|
10
|
+
export function readKnownMarketplaces(claudeHome) {
|
|
11
|
+
const path = knownMarketplacesPath(claudeHome);
|
|
12
|
+
if (!existsSync(path))
|
|
13
|
+
return {};
|
|
14
|
+
try {
|
|
15
|
+
return JSON.parse(readFileSync(path, "utf8"));
|
|
16
|
+
}
|
|
17
|
+
catch {
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export function writeKnownMarketplaces(claudeHome, data) {
|
|
22
|
+
const path = knownMarketplacesPath(claudeHome);
|
|
23
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
24
|
+
writeFileSync(path, `${JSON.stringify(data, null, 2)}\n`, "utf8");
|
|
25
|
+
}
|
|
26
|
+
export function registerLocalMarketplace(claudeHome, marketplaceName, marketplaceDir) {
|
|
27
|
+
const current = readKnownMarketplaces(claudeHome);
|
|
28
|
+
current[marketplaceName] = {
|
|
29
|
+
source: { source: "local", path: marketplaceDir },
|
|
30
|
+
installLocation: marketplaceDir,
|
|
31
|
+
lastUpdated: new Date().toISOString(),
|
|
32
|
+
};
|
|
33
|
+
writeKnownMarketplaces(claudeHome, current);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=claude.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/internal/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACpC,CAAC;AAUD,SAAS,qBAAqB,CAAC,UAAkB;IAC/C,OAAO,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,yBAAyB,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,UAAkB;IACtD,MAAM,IAAI,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAsB,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,UAAkB,EAAE,IAAuB;IAChF,MAAM,IAAI,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAC/C,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,UAAkB,EAClB,eAAuB,EACvB,cAAsB;IAEtB,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAClD,OAAO,CAAC,eAAe,CAAC,GAAG;QACzB,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE;QACjD,eAAe,EAAE,cAAc;QAC/B,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;IACF,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export interface CodexFeatureStatus {
|
|
2
|
+
name: string;
|
|
3
|
+
maturity: string;
|
|
4
|
+
enabled: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface CodexConfigProbe {
|
|
7
|
+
path: string;
|
|
8
|
+
exists: boolean;
|
|
9
|
+
mcpServers: string[];
|
|
10
|
+
marketplaces: string[];
|
|
11
|
+
plugins: string[];
|
|
12
|
+
}
|
|
13
|
+
export interface CodexInstallHomesOptions {
|
|
14
|
+
cwd?: string;
|
|
15
|
+
codexHome?: string;
|
|
16
|
+
includeDefaultHome?: boolean;
|
|
17
|
+
}
|
|
18
|
+
export type CodexConfig = Record<string, unknown>;
|
|
19
|
+
export declare function resolveCodexInstallHomes(options?: CodexInstallHomesOptions): string[];
|
|
20
|
+
export declare function defaultCodexHome(): string;
|
|
21
|
+
export declare function defaultEnactHome(): string;
|
|
22
|
+
export declare function readCodexConfig(codexHome?: string): CodexConfig;
|
|
23
|
+
export declare function writeCodexConfig(codexHome: string, config: CodexConfig): string;
|
|
24
|
+
export declare function ensureMcpServer(config: CodexConfig, name: string, server: {
|
|
25
|
+
command: string;
|
|
26
|
+
args: string[];
|
|
27
|
+
env_vars?: string[];
|
|
28
|
+
startup_timeout_sec?: number;
|
|
29
|
+
tool_timeout_sec?: number;
|
|
30
|
+
}): CodexConfig;
|
|
31
|
+
export declare function removeMcpServer(config: CodexConfig, name: string): CodexConfig;
|
|
32
|
+
export declare function ensureMarketplace(config: CodexConfig, name: string, marketplace: {
|
|
33
|
+
source: string;
|
|
34
|
+
source_type?: "local" | "remote";
|
|
35
|
+
last_updated?: string;
|
|
36
|
+
}): CodexConfig;
|
|
37
|
+
export declare function setPluginEnabled(config: CodexConfig, name: string, enabled: boolean): CodexConfig;
|
|
38
|
+
export declare function removePluginConfig(config: CodexConfig, name: string): CodexConfig;
|
|
39
|
+
export declare function isPluginEnabled(config: CodexConfig, name: string): boolean;
|
|
40
|
+
export declare function readCodexConfigProbe(codexHome?: string): CodexConfigProbe;
|
|
41
|
+
export declare function readCodexFeatures(): CodexFeatureStatus[];
|
|
42
|
+
export declare function codexFeatureEnabled(features: CodexFeatureStatus[], name: string): boolean;
|
|
43
|
+
//# sourceMappingURL=codex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/internal/codex.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAkDlD,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,wBAA6B,GAAG,MAAM,EAAE,CAQzF;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAOzC;AAED,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED,wBAAgB,eAAe,CAAC,SAAS,SAAqB,GAAG,WAAW,CAU3E;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAK/E;AAYD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;IACN,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GACA,WAAW,CAUb;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAI9E;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACvF,WAAW,CAQb;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,WAAW,CASjG;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAIjF;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAU1E;AASD,wBAAgB,oBAAoB,CAAC,SAAS,SAAqB,GAAG,gBAAgB,CAarF;AAED,wBAAgB,iBAAiB,IAAI,kBAAkB,EAAE,CA0BxD;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzF"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { execFileSync } from "node:child_process";
|
|
3
|
+
import { dirname, join, resolve } from "node:path";
|
|
4
|
+
import { homedir } from "node:os";
|
|
5
|
+
import * as TOML from "@iarna/toml";
|
|
6
|
+
function expandHome(path) {
|
|
7
|
+
if (path === "~")
|
|
8
|
+
return homedir();
|
|
9
|
+
if (path.startsWith("~/"))
|
|
10
|
+
return join(homedir(), path.slice(2));
|
|
11
|
+
return path;
|
|
12
|
+
}
|
|
13
|
+
function walkUpFindConfigToml(startDir = process.cwd()) {
|
|
14
|
+
let current = resolve(startDir);
|
|
15
|
+
for (let i = 0; i < 20; i++) {
|
|
16
|
+
const candidate = join(current, "config.toml");
|
|
17
|
+
if (existsSync(candidate))
|
|
18
|
+
return candidate;
|
|
19
|
+
const parent = dirname(current);
|
|
20
|
+
if (parent === current)
|
|
21
|
+
break;
|
|
22
|
+
current = parent;
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
function resolveHomeLikeValue(raw, configPath) {
|
|
27
|
+
if (typeof raw !== "string" || !raw.trim())
|
|
28
|
+
return null;
|
|
29
|
+
const expanded = expandHome(raw.trim());
|
|
30
|
+
if (expanded.startsWith("/"))
|
|
31
|
+
return expanded;
|
|
32
|
+
return resolve(dirname(configPath), expanded);
|
|
33
|
+
}
|
|
34
|
+
function readDeclaredCodexHomesFromConfig(startDir = process.cwd()) {
|
|
35
|
+
const configPath = walkUpFindConfigToml(startDir);
|
|
36
|
+
if (!configPath)
|
|
37
|
+
return [];
|
|
38
|
+
try {
|
|
39
|
+
const raw = readFileSync(configPath, "utf8");
|
|
40
|
+
const parsed = TOML.parse(raw);
|
|
41
|
+
const resolved = [];
|
|
42
|
+
for (const sectionName of ["agent", "operator"]) {
|
|
43
|
+
const section = parsed[sectionName];
|
|
44
|
+
if (!section || typeof section !== "object" || Array.isArray(section))
|
|
45
|
+
continue;
|
|
46
|
+
const val = resolveHomeLikeValue(section["codex_home"], configPath);
|
|
47
|
+
if (val && !resolved.includes(val))
|
|
48
|
+
resolved.push(val);
|
|
49
|
+
}
|
|
50
|
+
return resolved;
|
|
51
|
+
}
|
|
52
|
+
catch { /* fall through */ }
|
|
53
|
+
return [];
|
|
54
|
+
}
|
|
55
|
+
function readCodexHomeFromConfig(startDir = process.cwd()) {
|
|
56
|
+
return readDeclaredCodexHomesFromConfig(startDir)[0] ?? null;
|
|
57
|
+
}
|
|
58
|
+
export function resolveCodexInstallHomes(options = {}) {
|
|
59
|
+
if (options.codexHome)
|
|
60
|
+
return [resolve(expandHome(options.codexHome))];
|
|
61
|
+
const declaredHomes = readDeclaredCodexHomesFromConfig(options.cwd ?? process.cwd());
|
|
62
|
+
if (declaredHomes.length > 0) {
|
|
63
|
+
return declaredHomes;
|
|
64
|
+
}
|
|
65
|
+
const includeDefaultHome = options.includeDefaultHome ?? true;
|
|
66
|
+
return includeDefaultHome ? [join(homedir(), ".codex")] : [];
|
|
67
|
+
}
|
|
68
|
+
export function defaultCodexHome() {
|
|
69
|
+
const features = readCodexFeatures();
|
|
70
|
+
if (codexFeatureEnabled(features, "enact")) {
|
|
71
|
+
const fromConfig = readCodexHomeFromConfig();
|
|
72
|
+
if (fromConfig)
|
|
73
|
+
return fromConfig;
|
|
74
|
+
}
|
|
75
|
+
return join(homedir(), ".codex");
|
|
76
|
+
}
|
|
77
|
+
export function defaultEnactHome() {
|
|
78
|
+
return join(homedir(), ".enact");
|
|
79
|
+
}
|
|
80
|
+
export function readCodexConfig(codexHome = defaultCodexHome()) {
|
|
81
|
+
const path = join(codexHome, "config.toml");
|
|
82
|
+
if (!existsSync(path)) {
|
|
83
|
+
return {};
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
return TOML.parse(readFileSync(path, "utf8"));
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
return {};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
export function writeCodexConfig(codexHome, config) {
|
|
93
|
+
const path = join(codexHome, "config.toml");
|
|
94
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
95
|
+
writeFileSync(path, TOML.stringify(config), "utf8");
|
|
96
|
+
return path;
|
|
97
|
+
}
|
|
98
|
+
function objectValue(parent, key) {
|
|
99
|
+
const existing = parent[key];
|
|
100
|
+
if (existing && typeof existing === "object" && !Array.isArray(existing)) {
|
|
101
|
+
return existing;
|
|
102
|
+
}
|
|
103
|
+
const created = {};
|
|
104
|
+
parent[key] = created;
|
|
105
|
+
return created;
|
|
106
|
+
}
|
|
107
|
+
export function ensureMcpServer(config, name, server) {
|
|
108
|
+
const root = objectValue(config, "mcp_servers");
|
|
109
|
+
root[name] = {
|
|
110
|
+
command: server.command,
|
|
111
|
+
args: server.args,
|
|
112
|
+
...(server.env_vars && server.env_vars.length > 0 ? { env_vars: server.env_vars } : {}),
|
|
113
|
+
startup_timeout_sec: server.startup_timeout_sec ?? 20,
|
|
114
|
+
tool_timeout_sec: server.tool_timeout_sec ?? 120,
|
|
115
|
+
};
|
|
116
|
+
return config;
|
|
117
|
+
}
|
|
118
|
+
export function removeMcpServer(config, name) {
|
|
119
|
+
const root = objectValue(config, "mcp_servers");
|
|
120
|
+
delete root[name];
|
|
121
|
+
return config;
|
|
122
|
+
}
|
|
123
|
+
export function ensureMarketplace(config, name, marketplace) {
|
|
124
|
+
const root = objectValue(config, "marketplaces");
|
|
125
|
+
root[name] = {
|
|
126
|
+
source_type: marketplace.source_type ?? "local",
|
|
127
|
+
source: marketplace.source,
|
|
128
|
+
last_updated: marketplace.last_updated ?? new Date().toISOString(),
|
|
129
|
+
};
|
|
130
|
+
return config;
|
|
131
|
+
}
|
|
132
|
+
export function setPluginEnabled(config, name, enabled) {
|
|
133
|
+
const plugins = objectValue(config, "plugins");
|
|
134
|
+
const entry = plugins[name] && typeof plugins[name] === "object" && !Array.isArray(plugins[name])
|
|
135
|
+
? plugins[name]
|
|
136
|
+
: {};
|
|
137
|
+
entry.enabled = enabled;
|
|
138
|
+
plugins[name] = entry;
|
|
139
|
+
return config;
|
|
140
|
+
}
|
|
141
|
+
export function removePluginConfig(config, name) {
|
|
142
|
+
const plugins = objectValue(config, "plugins");
|
|
143
|
+
delete plugins[name];
|
|
144
|
+
return config;
|
|
145
|
+
}
|
|
146
|
+
export function isPluginEnabled(config, name) {
|
|
147
|
+
const plugins = config.plugins;
|
|
148
|
+
if (!plugins || typeof plugins !== "object" || Array.isArray(plugins)) {
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
const entry = plugins[name];
|
|
152
|
+
if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
|
|
153
|
+
return false;
|
|
154
|
+
}
|
|
155
|
+
return Boolean(entry.enabled);
|
|
156
|
+
}
|
|
157
|
+
function parseTableNames(text, prefix) {
|
|
158
|
+
const escaped = prefix.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
159
|
+
return Array.from(text.matchAll(new RegExp(`^\\[${escaped}\\.(\"?)([^\\]\"\\n]+)\\1\\]$`, "gm"))).map((match) => match[2]);
|
|
160
|
+
}
|
|
161
|
+
export function readCodexConfigProbe(codexHome = defaultCodexHome()) {
|
|
162
|
+
const path = join(codexHome, "config.toml");
|
|
163
|
+
if (!existsSync(path)) {
|
|
164
|
+
return { path, exists: false, mcpServers: [], marketplaces: [], plugins: [] };
|
|
165
|
+
}
|
|
166
|
+
const text = readFileSync(path, "utf8");
|
|
167
|
+
return {
|
|
168
|
+
path,
|
|
169
|
+
exists: true,
|
|
170
|
+
mcpServers: parseTableNames(text, "mcp_servers"),
|
|
171
|
+
marketplaces: parseTableNames(text, "marketplaces"),
|
|
172
|
+
plugins: parseTableNames(text, "plugins"),
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
export function readCodexFeatures() {
|
|
176
|
+
try {
|
|
177
|
+
const output = execFileSync("codex", ["features", "list"], {
|
|
178
|
+
encoding: "utf8",
|
|
179
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
180
|
+
});
|
|
181
|
+
return output
|
|
182
|
+
.split("\n")
|
|
183
|
+
.map((line) => line.trim())
|
|
184
|
+
.filter(Boolean)
|
|
185
|
+
.map((line) => {
|
|
186
|
+
const match = line.match(/^(\S+)\s+(.+?)\s+(true|false)$/);
|
|
187
|
+
if (!match) {
|
|
188
|
+
return null;
|
|
189
|
+
}
|
|
190
|
+
return {
|
|
191
|
+
name: match[1],
|
|
192
|
+
maturity: match[2].trim(),
|
|
193
|
+
enabled: match[3] === "true",
|
|
194
|
+
};
|
|
195
|
+
})
|
|
196
|
+
.filter((feature) => Boolean(feature));
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
return [];
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
export function codexFeatureEnabled(features, name) {
|
|
203
|
+
return features.find((feature) => feature.name === name)?.enabled ?? false;
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=codex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/internal/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/internal/cursor.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../src/internal/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../../src/internal/io.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGvE,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,cAAc,GACvB,UAAU,CAMZ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { manifestRelPath } from "./platform.js";
|
|
4
|
+
export function writePlatformManifest(pluginRoot, platform, manifest) {
|
|
5
|
+
const rel = manifestRelPath(platform);
|
|
6
|
+
const abs = join(pluginRoot, rel);
|
|
7
|
+
mkdirSync(dirname(abs), { recursive: true });
|
|
8
|
+
writeFileSync(abs, `${JSON.stringify(manifest, null, 2)}\n`, "utf8");
|
|
9
|
+
return { platform, manifestPath: rel, written: true };
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=io.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"io.js","sourceRoot":"","sources":["../../src/internal/io.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,UAAU,qBAAqB,CACnC,UAAkB,EAClB,QAAkB,EAClB,QAAwB;IAExB,MAAM,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAClC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,aAAa,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACrE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { PluginManifest } from "./types.js";
|
|
2
|
+
export declare function pickManifestFields(source: PluginManifest, allowed: readonly string[]): PluginManifest;
|
|
3
|
+
export declare function withPlatformKeyword(keywords: string[] | undefined, platform: string): string[];
|
|
4
|
+
//# sourceMappingURL=pick.d.ts.map
|