@elaraai/east-plugin 1.0.89 → 1.0.90
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/README.md +27 -10
- package/dist/lib/args.d.ts +10 -0
- package/dist/lib/args.d.ts.map +1 -0
- package/dist/lib/args.js +19 -0
- package/dist/lib/args.js.map +1 -0
- package/dist/lib/codex-skills.d.ts +13 -2
- package/dist/lib/codex-skills.d.ts.map +1 -1
- package/dist/lib/codex-skills.js +24 -7
- package/dist/lib/codex-skills.js.map +1 -1
- package/dist/lib/package.d.ts +76 -0
- package/dist/lib/package.d.ts.map +1 -0
- package/dist/lib/package.js +180 -0
- package/dist/lib/package.js.map +1 -0
- package/dist/scripts/generate-index.d.ts.map +1 -1
- package/dist/scripts/generate-index.js +1 -10
- package/dist/scripts/generate-index.js.map +1 -1
- package/dist/scripts/package.d.ts +3 -0
- package/dist/scripts/package.d.ts.map +1 -0
- package/dist/scripts/package.js +93 -0
- package/dist/scripts/package.js.map +1 -0
- package/package.json +6 -5
package/README.md
CHANGED
|
@@ -2,26 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
The common implementation used by [`east-claude-plugin`](../east-claude-plugin) and [`east-codex-plugin`](../east-codex-plugin), published as `@elaraai/east-plugin` for a Claude Code or Codex plugin that builds on East's (see [Building on East's plugin](#building-on-easts-plugin)). It is not an agent plugin itself.
|
|
4
4
|
|
|
5
|
-
- `lib/`: project detection, search, review and deduplication, daemon client, Python diagnostics, status, transcript helpers, the stdio LSP client, the search-first guidance and hooks (Claude Code's in `search-hooks.ts`, Codex's in `codex-hook.ts`),
|
|
5
|
+
- `lib/`: project detection, search, review and deduplication, daemon client, Python diagnostics, status, transcript helpers, the stdio LSP client, the search-first guidance and hooks (Claude Code's in `search-hooks.ts`, Codex's in `codex-hook.ts`), the Codex skill adapter (`codex-skills.ts`), and the plugin assembler (`package.ts`).
|
|
6
6
|
- `hooks/`: common lifecycle and Claude tool adapters. Codex's one tool hook is `east-codex-plugin/hooks/codex-tools.ts`, over `lib/codex-hook.ts` and `lib/codex-tools.ts` (patch and shell normalization).
|
|
7
7
|
- `daemon/`: TypeScript/TSX LSP, Python LSP launcher and resident diagnostics server.
|
|
8
8
|
- `mcp/`: example search, retrieval, status and the real LSP bridge; the search and retrieval tools are `example-tools.ts`'s, for any server.
|
|
9
|
-
- `skills/`: the four plugin-native skills plus symlinks to package-owned skills.
|
|
10
|
-
- `scripts/`: the sole index generator, Python renderer,
|
|
11
|
-
- `index.json`: canonical generated corpus
|
|
9
|
+
- `skills/`: the one skill catalog — the four plugin-native skills plus symlinks to the package-owned skills.
|
|
10
|
+
- `scripts/`: the sole index generator, Python renderer, the assembler driver (`package.ts`) and CLI installation/update implementations.
|
|
11
|
+
- `index.json`: the canonical generated corpus, the one committed artifact. Each assembled plugin ships a copy, and the published package ships it for a plugin that serves East's corpus beside its own.
|
|
12
|
+
- `marketplace/` (ignored): both plugins assembled as the hosts install them, `east-claude-plugin/` and `east-codex-plugin/`, with marketplace files naming them — a local marketplace for Claude Code and Codex under the catalog's names (`elaraai`, `elaraai-codex`), so a maintainer points either name at the checkout or at the catalog.
|
|
12
13
|
|
|
13
|
-
Host runtime files are thin package re-exports, inlined by esbuild. They must not grow independent copies of shared behavior. `hostText` translates host-facing tool and skill names at the output boundary.
|
|
14
|
+
Host runtime files are thin package re-exports, inlined by esbuild. They must not grow independent copies of shared behavior. `hostText` translates host-facing tool and skill names at the output boundary. The assembled plugins intentionally contain duplicated bytes so an installed plugin does not depend on this workspace package.
|
|
14
15
|
|
|
15
16
|
```bash
|
|
16
17
|
pnpm --filter @elaraai/east-plugin run build
|
|
17
|
-
pnpm --filter @elaraai/east-plugin run generate-index
|
|
18
|
-
|
|
19
|
-
pnpm --filter @elaraai/east-codex-plugin run bundle
|
|
18
|
+
pnpm --filter @elaraai/east-plugin run generate-index # → index.json (commit it)
|
|
19
|
+
make -C libs/east-plugin package # both hosts' bundles + the assembled plugins under marketplace/
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
-
Index generation requires built examples and the Python environment, as documented in either host README. After runtime changes, build this package before bundling hosts. Codex `build` and Claude `build` do that automatically; a root recursive build follows the workspace dependency graph.
|
|
22
|
+
Index generation requires built examples and the Python environment, as documented in either host README. After runtime changes, build this package before bundling hosts. Codex `build` and Claude `build` do that automatically, and assemble their own plugin; a root recursive build follows the workspace dependency graph.
|
|
23
23
|
|
|
24
|
-
Edit the skill's owning library, or its native source here. Claude
|
|
24
|
+
Edit the skill's owning library, or its native source here. Claude Code's plugin copies the catalog through its links at package time; Codex's materializes and adapts the same sources then. Nothing generated is committed under either host. Run both host test suites after changes to shared behavior: they run over the assembled plugins.
|
|
25
|
+
|
|
26
|
+
### Publishing
|
|
27
|
+
|
|
28
|
+
The release publishes the assembled directories as they are — `@elaraai/east-claude-plugin` and `@elaraai/east-codex-plugin` on the lockstep version, with `scripts/publish-plugins.mjs` — and the public catalog [elaraai/plugins](https://github.com/elaraai/plugins) lists each as an `npm` source pinned at its released version, for both hosts. A new package name is bootstrapped once by hand (`scripts/bootstrap-plugins-npm.mjs`) before trusted publishing can be configured for it.
|
|
25
29
|
|
|
26
30
|
## Building on East's plugin
|
|
27
31
|
|
|
@@ -73,6 +77,19 @@ The search and fetch tools register on any MCP server with `registerExampleTools
|
|
|
73
77
|
|
|
74
78
|
`EAST_INDEX_PATH` names the installed package's `index.json`. A bundled server, as East's plugins bundle theirs, copies that file into the plugin at build time and reads it from there.
|
|
75
79
|
|
|
80
|
+
### The package
|
|
81
|
+
|
|
82
|
+
A plugin a host installs is one directory with every file real and nothing depended on. `assemblePlugin` (`@elaraai/east-plugin/lib/package`) writes it from your plugin's source — its manifest directory, its esbuild `.build/`, and each of `hooks/hooks.json`, `.mcp.json`, `.lsp.json`, README, LICENSE and (Claude Code) `commands/` and `agents/` it has — your skills catalog (symlinks followed, a linked skill directory's included; adapted in your names for Codex), and your index, with a generated `package.json` that has no dependency. It is staged beside `out` and moved into place once complete, so a failure leaves an earlier assembly as it was; an `out` holding anything but an earlier assembly, or overlapping the source, is refused:
|
|
83
|
+
|
|
84
|
+
```ts
|
|
85
|
+
import { assemblePlugin } from "@elaraai/east-plugin/lib/package";
|
|
86
|
+
|
|
87
|
+
await assemblePlugin({ host: "claude", source: "packages/acme-claude-plugin", skills: "packages/acme-plugin/skills", index: "packages/acme-plugin/index.json", out: "marketplace/acme-claude-plugin" });
|
|
88
|
+
await assemblePlugin({ host: "codex", source: "packages/acme-codex-plugin", skills: "packages/acme-plugin/skills", index: "packages/acme-plugin/index.json", out: "marketplace/acme-codex-plugin", names: ACME });
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Publish each directory with `npm publish <dir> --access public` on your release, and list the packages in the [elaraai/plugins](https://github.com/elaraai/plugins) catalog, which pins each at its released version for both hosts. The same directories, beside a `.claude-plugin/marketplace.json` and `.agents/plugins/marketplace.json` with relative sources, are a local marketplace for development, as East's `scripts/package.ts` writes one.
|
|
92
|
+
|
|
76
93
|
### The hooks
|
|
77
94
|
|
|
78
95
|
Claude Code runs a hook per event. Each is the shared function, configured with your names:
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The value after `flag` in `args`, if the flag is given.
|
|
3
|
+
*
|
|
4
|
+
* @param args - The command line, without the program
|
|
5
|
+
* @param flag - The flag, `--out` say
|
|
6
|
+
* @returns The value after the flag, or undefined when the flag is absent
|
|
7
|
+
* @throws {Error} When the flag is given with no value after it
|
|
8
|
+
*/
|
|
9
|
+
export declare function argument(args: string[], flag: string): string | undefined;
|
|
10
|
+
//# sourceMappingURL=args.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../lib/args.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMzE"}
|
package/dist/lib/args.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
// The one command-line convention of this package's scripts: `--flag value`.
|
|
2
|
+
/**
|
|
3
|
+
* The value after `flag` in `args`, if the flag is given.
|
|
4
|
+
*
|
|
5
|
+
* @param args - The command line, without the program
|
|
6
|
+
* @param flag - The flag, `--out` say
|
|
7
|
+
* @returns The value after the flag, or undefined when the flag is absent
|
|
8
|
+
* @throws {Error} When the flag is given with no value after it
|
|
9
|
+
*/
|
|
10
|
+
export function argument(args, flag) {
|
|
11
|
+
const idx = args.indexOf(flag);
|
|
12
|
+
if (idx === -1)
|
|
13
|
+
return undefined;
|
|
14
|
+
const value = args[idx + 1];
|
|
15
|
+
if (value === undefined)
|
|
16
|
+
throw new Error(`${flag} needs a value`);
|
|
17
|
+
return value;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=args.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../lib/args.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E;;;;;;;GAOG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAc,EAAE,IAAY;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC5B,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,gBAAgB,CAAC,CAAC;IAClE,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
|
@@ -26,8 +26,8 @@ export declare const EAST_SKILL_NAMES: SkillNames;
|
|
|
26
26
|
export declare function adaptSkill(text: string, names?: SkillNames): string;
|
|
27
27
|
/**
|
|
28
28
|
* Writes a Codex plugin's skills as real files: every skill directory under
|
|
29
|
-
* `sources
|
|
30
|
-
* symlink.
|
|
29
|
+
* `sources` (a linked one included), its Markdown adapted and every other
|
|
30
|
+
* file copied through any symlink.
|
|
31
31
|
*
|
|
32
32
|
* @param sources - The directory of skill directories, as written for Claude Code
|
|
33
33
|
* @param target - The Codex plugin's `skills` directory
|
|
@@ -35,4 +35,15 @@ export declare function adaptSkill(text: string, names?: SkillNames): string;
|
|
|
35
35
|
* @returns The skills written, by directory name
|
|
36
36
|
*/
|
|
37
37
|
export declare function materializeSkills(sources: string, target: string, names?: SkillNames): Promise<string[]>;
|
|
38
|
+
/**
|
|
39
|
+
* Writes a Claude Code plugin's skills as real files: every skill directory
|
|
40
|
+
* under `sources` (a linked one included), every file copied as it is through
|
|
41
|
+
* any symlink — a plugin is installed by copying, and a link that leaves it
|
|
42
|
+
* is dropped.
|
|
43
|
+
*
|
|
44
|
+
* @param sources - The directory of skill directories, as written for Claude Code
|
|
45
|
+
* @param target - The plugin's `skills` directory
|
|
46
|
+
* @returns The skills written, by directory name
|
|
47
|
+
*/
|
|
48
|
+
export declare function copySkills(sources: string, target: string): Promise<string[]>;
|
|
38
49
|
//# sourceMappingURL=codex-skills.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-skills.d.ts","sourceRoot":"","sources":["../../lib/codex-skills.ts"],"names":[],"mappings":"AASA,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACzB,uGAAuG;IACvG,gBAAgB,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,oBAAoB;AACpB,eAAO,MAAM,gBAAgB,EAAE,UAM9B,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,UAA6B,GAAG,MAAM,CA0BrF;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,UAA6B,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"codex-skills.d.ts","sourceRoot":"","sources":["../../lib/codex-skills.ts"],"names":[],"mappings":"AASA,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACzB,uGAAuG;IACvG,gBAAgB,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,CAAC;IACzB,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IACrB,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,oBAAoB;AACpB,eAAO,MAAM,gBAAgB,EAAE,UAM9B,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,UAA6B,GAAG,MAAM,CA0BrF;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAE,UAA6B,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAEhI;AAED;;;;;;;;;GASG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnF"}
|
package/dist/lib/codex-skills.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { readdir, readFile, mkdir, writeFile, cp } from "node:fs/promises";
|
|
1
|
+
import { readdir, readFile, mkdir, writeFile, cp, stat } from "node:fs/promises";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
/** East's names. */
|
|
4
4
|
export const EAST_SKILL_NAMES = {
|
|
@@ -49,8 +49,8 @@ export function adaptSkill(text, names = EAST_SKILL_NAMES) {
|
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* Writes a Codex plugin's skills as real files: every skill directory under
|
|
52
|
-
* `sources
|
|
53
|
-
* symlink.
|
|
52
|
+
* `sources` (a linked one included), its Markdown adapted and every other
|
|
53
|
+
* file copied through any symlink.
|
|
54
54
|
*
|
|
55
55
|
* @param sources - The directory of skill directories, as written for Claude Code
|
|
56
56
|
* @param target - The Codex plugin's `skills` directory
|
|
@@ -58,18 +58,35 @@ export function adaptSkill(text, names = EAST_SKILL_NAMES) {
|
|
|
58
58
|
* @returns The skills written, by directory name
|
|
59
59
|
*/
|
|
60
60
|
export async function materializeSkills(sources, target, names = EAST_SKILL_NAMES) {
|
|
61
|
+
return writeSkills(sources, target, (text) => adaptSkill(text, names));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Writes a Claude Code plugin's skills as real files: every skill directory
|
|
65
|
+
* under `sources` (a linked one included), every file copied as it is through
|
|
66
|
+
* any symlink — a plugin is installed by copying, and a link that leaves it
|
|
67
|
+
* is dropped.
|
|
68
|
+
*
|
|
69
|
+
* @param sources - The directory of skill directories, as written for Claude Code
|
|
70
|
+
* @param target - The plugin's `skills` directory
|
|
71
|
+
* @returns The skills written, by directory name
|
|
72
|
+
*/
|
|
73
|
+
export async function copySkills(sources, target) {
|
|
74
|
+
return writeSkills(sources, target, null);
|
|
75
|
+
}
|
|
76
|
+
async function writeSkills(sources, target, adapt) {
|
|
61
77
|
const written = [];
|
|
62
78
|
for (const entry of await readdir(sources, { withFileTypes: true })) {
|
|
63
|
-
if (!entry.isDirectory())
|
|
64
|
-
continue;
|
|
65
79
|
const source = join(sources, entry.name);
|
|
80
|
+
// Through a link: a catalog may link a whole skill directory, not only its files.
|
|
81
|
+
if (!(await stat(source)).isDirectory())
|
|
82
|
+
continue;
|
|
66
83
|
const skill = join(target, entry.name);
|
|
67
84
|
await mkdir(skill, { recursive: true });
|
|
68
85
|
for (const file of await readdir(source, { withFileTypes: true })) {
|
|
69
86
|
const input = join(source, file.name);
|
|
70
87
|
const output = join(skill, file.name);
|
|
71
|
-
if (file.name.endsWith('.md'))
|
|
72
|
-
await writeFile(output,
|
|
88
|
+
if (adapt !== null && file.name.endsWith('.md'))
|
|
89
|
+
await writeFile(output, adapt(await readFile(input, 'utf8')));
|
|
73
90
|
else
|
|
74
91
|
await cp(input, output, { recursive: true, dereference: true });
|
|
75
92
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-skills.js","sourceRoot":"","sources":["../../lib/codex-skills.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"codex-skills.js","sourceRoot":"","sources":["../../lib/codex-skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { type SkillNames } from "./codex-skills.js";
|
|
2
|
+
/** The host a plugin is assembled for. */
|
|
3
|
+
export type PluginHost = "claude" | "codex";
|
|
4
|
+
/** The `package.json` written into an assembled plugin. */
|
|
5
|
+
export interface AssembledManifest {
|
|
6
|
+
name: string;
|
|
7
|
+
version: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
license?: string;
|
|
10
|
+
type: "module";
|
|
11
|
+
author?: unknown;
|
|
12
|
+
homepage?: string;
|
|
13
|
+
repository?: {
|
|
14
|
+
type: "git";
|
|
15
|
+
url: string;
|
|
16
|
+
directory?: string;
|
|
17
|
+
};
|
|
18
|
+
keywords?: string[];
|
|
19
|
+
engines: {
|
|
20
|
+
node: string;
|
|
21
|
+
};
|
|
22
|
+
files: string[];
|
|
23
|
+
}
|
|
24
|
+
/** How a plugin is assembled. */
|
|
25
|
+
export interface AssembleOptions {
|
|
26
|
+
/** The host the plugin is for: which manifest directory it has, and how its skills are written. */
|
|
27
|
+
host: PluginHost;
|
|
28
|
+
/**
|
|
29
|
+
* The plugin's source directory: its manifest directory (`.claude-plugin`
|
|
30
|
+
* or `.codex-plugin`), its bundled `.build/`, the `package.json` whose
|
|
31
|
+
* `name` the package takes, and — each when it has one — `hooks/hooks.json`,
|
|
32
|
+
* `.mcp.json`, `.lsp.json`, `README.md`, `LICENSE.md`, and for Claude Code
|
|
33
|
+
* its `commands/` and `agents/`.
|
|
34
|
+
*/
|
|
35
|
+
source: string;
|
|
36
|
+
/** The directory of skill directories, as written for Claude Code (symlinks into the owning packages allowed, a whole skill directory's included). */
|
|
37
|
+
skills: string;
|
|
38
|
+
/** The example index to ship as the plugin's `index.json`, when it serves one. */
|
|
39
|
+
index?: string;
|
|
40
|
+
/**
|
|
41
|
+
* The directory written. An earlier assembly there is replaced, anything
|
|
42
|
+
* else is refused, and so is a directory that overlaps the source, the
|
|
43
|
+
* skills or the index. It is written whole or not at all: the plugin is
|
|
44
|
+
* staged beside it and moved into place once complete.
|
|
45
|
+
*/
|
|
46
|
+
out: string;
|
|
47
|
+
/** The names a Codex plugin's skills are adapted in (default East's). Ignored for Claude Code. */
|
|
48
|
+
names?: SkillNames;
|
|
49
|
+
/** The npm package name (default the source `package.json`'s). */
|
|
50
|
+
packageName?: string;
|
|
51
|
+
}
|
|
52
|
+
/** The manifest directory of each host. */
|
|
53
|
+
export declare const MANIFEST_DIR: Record<PluginHost, string>;
|
|
54
|
+
/**
|
|
55
|
+
* Every path under `dir` that is a symbolic link, relative to it — an
|
|
56
|
+
* assembled plugin must hold none, since a host copies it without following
|
|
57
|
+
* links that leave it.
|
|
58
|
+
*
|
|
59
|
+
* @param dir - The directory walked
|
|
60
|
+
* @returns The links found, relative paths, in walk order
|
|
61
|
+
*/
|
|
62
|
+
export declare function symlinksUnder(dir: string): Promise<string[]>;
|
|
63
|
+
/**
|
|
64
|
+
* Assembles a plugin directory a host installs: the source's manifests and
|
|
65
|
+
* bundles, the skills as real files (adapted for Codex), the index, and a
|
|
66
|
+
* generated `package.json` with no dependency, so the directory publishes to
|
|
67
|
+
* npm as it is and serves from a local marketplace as it is. The plugin is
|
|
68
|
+
* staged beside `out` and moved into place once complete, so a failure
|
|
69
|
+
* leaves the earlier assembly as it was and nothing half-written.
|
|
70
|
+
*
|
|
71
|
+
* @param options - The plugin's source, skills, index and destination
|
|
72
|
+
* @returns The `package.json` written
|
|
73
|
+
* @throws {Error} When the source lacks its manifest or its `.build/`, when `out` holds something that is not an earlier assembly, or when `out` overlaps the source, the skills or the index
|
|
74
|
+
*/
|
|
75
|
+
export declare function assemblePlugin(options: AssembleOptions): Promise<AssembledManifest>;
|
|
76
|
+
//# sourceMappingURL=package.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../lib/package.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiC,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAQnF,0CAA0C;AAC1C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC;AAqB5C,2DAA2D;AAC3D,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,KAAK,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,iCAAiC;AACjC,MAAM,WAAW,eAAe;IAC9B,mGAAmG;IACnG,IAAI,EAAE,UAAU,CAAC;IACjB;;;;;;OAMG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,sJAAsJ;IACtJ,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,kGAAkG;IAClG,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAYD,2CAA2C;AAC3C,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAGnD,CAAC;AAYF;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAWlE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAyCzF"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import { cp, mkdir, readdir, readFile, rename, rm, writeFile } from "node:fs/promises";
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
|
+
import { isAbsolute, join, relative, resolve } from "node:path";
|
|
4
|
+
import { copySkills, materializeSkills } from "./codex-skills.js";
|
|
5
|
+
/**
|
|
6
|
+
* What a host's plugin directory may hold beyond its manifest directory, its
|
|
7
|
+
* bundles and its skills, each copied when the source has it: a file at the
|
|
8
|
+
* root, or a directory of the host's own content.
|
|
9
|
+
*/
|
|
10
|
+
const OPTIONAL_PARTS = {
|
|
11
|
+
claude: [".mcp.json", ".lsp.json", "commands", "agents"],
|
|
12
|
+
codex: [".mcp.json", ".lsp.json"],
|
|
13
|
+
};
|
|
14
|
+
/** The manifest directory of each host. */
|
|
15
|
+
export const MANIFEST_DIR = {
|
|
16
|
+
claude: ".claude-plugin",
|
|
17
|
+
codex: ".codex-plugin",
|
|
18
|
+
};
|
|
19
|
+
async function readJson(path) {
|
|
20
|
+
return JSON.parse(await readFile(path, "utf8"));
|
|
21
|
+
}
|
|
22
|
+
/** Whether `child` is `parent` or lies under it. */
|
|
23
|
+
function within(parent, child) {
|
|
24
|
+
const rel = relative(parent, child);
|
|
25
|
+
return rel === "" || (!rel.startsWith("..") && !isAbsolute(rel));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Every path under `dir` that is a symbolic link, relative to it — an
|
|
29
|
+
* assembled plugin must hold none, since a host copies it without following
|
|
30
|
+
* links that leave it.
|
|
31
|
+
*
|
|
32
|
+
* @param dir - The directory walked
|
|
33
|
+
* @returns The links found, relative paths, in walk order
|
|
34
|
+
*/
|
|
35
|
+
export async function symlinksUnder(dir) {
|
|
36
|
+
const found = [];
|
|
37
|
+
const walk = async (at) => {
|
|
38
|
+
for (const entry of await readdir(at, { withFileTypes: true })) {
|
|
39
|
+
const path = join(at, entry.name);
|
|
40
|
+
if (entry.isSymbolicLink())
|
|
41
|
+
found.push(relative(dir, path));
|
|
42
|
+
else if (entry.isDirectory())
|
|
43
|
+
await walk(path);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
await walk(dir);
|
|
47
|
+
return found;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Assembles a plugin directory a host installs: the source's manifests and
|
|
51
|
+
* bundles, the skills as real files (adapted for Codex), the index, and a
|
|
52
|
+
* generated `package.json` with no dependency, so the directory publishes to
|
|
53
|
+
* npm as it is and serves from a local marketplace as it is. The plugin is
|
|
54
|
+
* staged beside `out` and moved into place once complete, so a failure
|
|
55
|
+
* leaves the earlier assembly as it was and nothing half-written.
|
|
56
|
+
*
|
|
57
|
+
* @param options - The plugin's source, skills, index and destination
|
|
58
|
+
* @returns The `package.json` written
|
|
59
|
+
* @throws {Error} When the source lacks its manifest or its `.build/`, when `out` holds something that is not an earlier assembly, or when `out` overlaps the source, the skills or the index
|
|
60
|
+
*/
|
|
61
|
+
export async function assemblePlugin(options) {
|
|
62
|
+
const { host, skills, index } = options;
|
|
63
|
+
const source = resolve(options.source);
|
|
64
|
+
const out = resolve(options.out);
|
|
65
|
+
const manifestDir = MANIFEST_DIR[host];
|
|
66
|
+
const manifestPath = join(source, manifestDir, "plugin.json");
|
|
67
|
+
if (!existsSync(manifestPath))
|
|
68
|
+
throw new Error(`${source} has no ${manifestDir}/plugin.json`);
|
|
69
|
+
if (!existsSync(join(source, ".build")))
|
|
70
|
+
throw new Error(`${source} has no .build/ — bundle the plugin first (pnpm run bundle)`);
|
|
71
|
+
for (const [what, path] of [["source", source], ["skills", resolve(skills)], ...(index === undefined ? [] : [["index", resolve(index)]])]) {
|
|
72
|
+
if (within(out, path) || within(path, out))
|
|
73
|
+
throw new Error(`Refusing to assemble into ${out}: it overlaps the ${what} ${path}`);
|
|
74
|
+
}
|
|
75
|
+
const plugin = await readJson(manifestPath);
|
|
76
|
+
const sourcePkg = existsSync(join(source, "package.json")) ? await readJson(join(source, "package.json")) : {};
|
|
77
|
+
const name = options.packageName ?? sourcePkg.name;
|
|
78
|
+
if (name === undefined)
|
|
79
|
+
throw new Error(`${source}: no package name — give packageName or a package.json with a name`);
|
|
80
|
+
if (plugin.version === undefined)
|
|
81
|
+
throw new Error(`${manifestPath} has no version`);
|
|
82
|
+
// Refused before anything is written, so a wrong `out` loses nothing.
|
|
83
|
+
if (existsSync(out)) {
|
|
84
|
+
const earlier = join(out, "package.json");
|
|
85
|
+
const assembled = existsSync(earlier) && (await readJson(earlier)).name === name;
|
|
86
|
+
if (!assembled && (await readdir(out)).length > 0) {
|
|
87
|
+
throw new Error(`Refusing to replace ${out}: it is not an earlier assembly of ${name}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Staged beside `out` (the same file system, so the move is a rename); a
|
|
91
|
+
// run that died mid-way left its staging directory, which is ours to drop.
|
|
92
|
+
const staging = `${out}.assembling`;
|
|
93
|
+
await rm(staging, { recursive: true, force: true });
|
|
94
|
+
await mkdir(staging, { recursive: true });
|
|
95
|
+
let manifest;
|
|
96
|
+
try {
|
|
97
|
+
manifest = await writePlugin(options, source, staging, name, plugin.version, plugin, sourcePkg);
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
await rm(staging, { recursive: true, force: true });
|
|
101
|
+
throw error;
|
|
102
|
+
}
|
|
103
|
+
await rm(out, { recursive: true, force: true });
|
|
104
|
+
await rename(staging, out);
|
|
105
|
+
return manifest;
|
|
106
|
+
}
|
|
107
|
+
/** Writes the plugin into `out` (the staging directory) and returns its manifest. */
|
|
108
|
+
async function writePlugin(options, source, out, name, version, plugin, sourcePkg) {
|
|
109
|
+
const { host, skills, index } = options;
|
|
110
|
+
const manifestDir = MANIFEST_DIR[host];
|
|
111
|
+
const files = [manifestDir, ".build"];
|
|
112
|
+
await cp(join(source, manifestDir), join(out, manifestDir), { recursive: true, dereference: true });
|
|
113
|
+
await cp(join(source, ".build"), join(out, ".build"), { recursive: true, dereference: true });
|
|
114
|
+
if (existsSync(join(source, "hooks", "hooks.json"))) {
|
|
115
|
+
await mkdir(join(out, "hooks"));
|
|
116
|
+
await cp(join(source, "hooks", "hooks.json"), join(out, "hooks", "hooks.json"), { dereference: true });
|
|
117
|
+
files.push("hooks");
|
|
118
|
+
}
|
|
119
|
+
files.push("skills");
|
|
120
|
+
if (host === "codex")
|
|
121
|
+
await materializeSkills(skills, join(out, "skills"), options.names);
|
|
122
|
+
else
|
|
123
|
+
await copySkills(skills, join(out, "skills"));
|
|
124
|
+
for (const part of OPTIONAL_PARTS[host]) {
|
|
125
|
+
if (!existsSync(join(source, part)))
|
|
126
|
+
continue;
|
|
127
|
+
await cp(join(source, part), join(out, part), { recursive: true, dereference: true });
|
|
128
|
+
files.push(part);
|
|
129
|
+
}
|
|
130
|
+
for (const file of ["README.md", "LICENSE.md"]) {
|
|
131
|
+
if (existsSync(join(source, file)))
|
|
132
|
+
await cp(join(source, file), join(out, file), { dereference: true });
|
|
133
|
+
}
|
|
134
|
+
if (index !== undefined) {
|
|
135
|
+
await cp(index, join(out, "index.json"), { dereference: true });
|
|
136
|
+
files.push("index.json");
|
|
137
|
+
}
|
|
138
|
+
const repository = plugin.repository ?? sourcePkg.repository;
|
|
139
|
+
const manifest = {
|
|
140
|
+
name,
|
|
141
|
+
version,
|
|
142
|
+
...(plugin.description !== undefined && { description: plugin.description }),
|
|
143
|
+
...((sourcePkg.license ?? plugin.license) !== undefined && { license: sourcePkg.license ?? plugin.license }),
|
|
144
|
+
type: "module",
|
|
145
|
+
...(plugin.author !== undefined && { author: plugin.author }),
|
|
146
|
+
...(plugin.homepage !== undefined && { homepage: plugin.homepage }),
|
|
147
|
+
...(repository !== undefined && { repository: gitRepository(repository) }),
|
|
148
|
+
...(plugin.keywords !== undefined && { keywords: plugin.keywords }),
|
|
149
|
+
engines: { node: ">=22.0.0" },
|
|
150
|
+
files,
|
|
151
|
+
};
|
|
152
|
+
await writeFile(join(out, "package.json"), `${JSON.stringify(manifest, null, 2)}\n`);
|
|
153
|
+
const links = await symlinksUnder(out);
|
|
154
|
+
if (links.length > 0)
|
|
155
|
+
throw new Error(`${options.out} would hold symbolic links: ${links.join(", ")}`);
|
|
156
|
+
return manifest;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* A manifest's repository as npm expects it: a GitHub shorthand
|
|
160
|
+
* (`owner/repo`, `github:owner/repo`) and an `https` URL become the
|
|
161
|
+
* `git+https://github.com/owner/repo.git` form npm's provenance matches
|
|
162
|
+
* against; any other form (`git+ssh://`, `git@host:`, `gitlab:`) is npm's
|
|
163
|
+
* own and passes through as written.
|
|
164
|
+
*/
|
|
165
|
+
function gitRepository(repository) {
|
|
166
|
+
if (typeof repository === "string") {
|
|
167
|
+
const shorthand = /^(?:github:)?([\w.-]+\/[\w.-]+?)(?:\.git)?$/.exec(repository);
|
|
168
|
+
if (shorthand)
|
|
169
|
+
return { type: "git", url: `git+https://github.com/${shorthand[1]}.git` };
|
|
170
|
+
if (/^(git\+)?https?:\/\//.test(repository)) {
|
|
171
|
+
const url = repository.startsWith("git+") ? repository : `git+${repository}`;
|
|
172
|
+
return { type: "git", url: `${url.replace(/\.git$/, "")}.git` };
|
|
173
|
+
}
|
|
174
|
+
return { type: "git", url: repository };
|
|
175
|
+
}
|
|
176
|
+
if (repository.url === undefined)
|
|
177
|
+
throw new Error("a repository object needs a url");
|
|
178
|
+
return { type: "git", url: repository.url, ...(repository.directory !== undefined && { directory: repository.directory }) };
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../../lib/package.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAmB,MAAM,mBAAmB,CAAC;AA0EnF;;;;GAIG;AACH,MAAM,cAAc,GAAiC;IACnD,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC;IACxD,KAAK,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;CAClC,CAAC;AAEF,2CAA2C;AAC3C,MAAM,CAAC,MAAM,YAAY,GAA+B;IACtD,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,eAAe;CACvB,CAAC;AAEF,KAAK,UAAU,QAAQ,CAAI,IAAY;IACrC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAM,CAAC;AACvD,CAAC;AAED,oDAAoD;AACpD,SAAS,MAAM,CAAC,MAAc,EAAE,KAAa;IAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpC,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACnE,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,KAAK,EAAE,EAAU,EAAiB,EAAE;QAC/C,KAAK,MAAM,KAAK,IAAI,MAAM,OAAO,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,KAAK,CAAC,cAAc,EAAE;gBAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;iBACvD,IAAI,KAAK,CAAC,WAAW,EAAE;gBAAE,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,CAAC;IACF,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAwB;IAC3D,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;IAC9D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,WAAW,WAAW,cAAc,CAAC,CAAC;IAC9F,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,6DAA6D,CAAC,CAAC;IACjI,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAU,EAAE,CAAC;QACnJ,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,qBAAqB,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;IACnI,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAiB,YAAY,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAiB,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/H,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,IAAI,SAAS,CAAC,IAAI,CAAC;IACnD,IAAI,IAAI,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,oEAAoE,CAAC,CAAC;IACvH,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,YAAY,iBAAiB,CAAC,CAAC;IAEpF,sEAAsE;IACtE,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAoB,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;QACpG,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,sCAAsC,IAAI,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,2EAA2E;IAC3E,MAAM,OAAO,GAAG,GAAG,GAAG,aAAa,CAAC;IACpC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,IAAI,QAA2B,CAAC;IAChC,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAClG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,MAAM,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC3B,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,qFAAqF;AACrF,KAAK,UAAU,WAAW,CACxB,OAAwB,EACxB,MAAc,EACd,GAAW,EACX,IAAY,EACZ,OAAe,EACf,MAAsB,EACtB,SAAyB;IAEzB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IACxC,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,KAAK,GAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAChD,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACpG,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9F,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;QAChC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACvG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrB,IAAI,IAAI,KAAK,OAAO;QAAE,MAAM,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;;QACrF,MAAM,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnD,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAAE,SAAS;QAC9C,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACtF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;QAC/C,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAAE,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3G,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,CAAC;IAC7D,MAAM,QAAQ,GAAsB;QAClC,IAAI;QACJ,OAAO;QACP,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;QAC5E,GAAG,CAAC,CAAC,SAAS,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC5G,IAAI,EAAE,QAAQ;QACd,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC7D,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnE,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnE,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QAC7B,KAAK;KACN,CAAC;IACF,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAErF,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,+BAA+B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACvG,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,aAAa,CAAC,UAAwE;IAC7F,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,6CAA6C,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACjF,IAAI,SAAS;YAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,0BAA0B,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACzF,IAAI,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,UAAU,EAAE,CAAC;YAC7E,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC;QAClE,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,UAAU,CAAC,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrF,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;AAC9H,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-index.d.ts","sourceRoot":"","sources":["../../scripts/generate-index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;
|
|
1
|
+
{"version":3,"file":"generate-index.d.ts","sourceRoot":"","sources":["../../scripts/generate-index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAaH,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B,6EAA6E;IAC7E,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,2IAA2I;IAC3I,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wDAAwD;AACxD,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,qJAAqJ;IACrJ,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC;AAED,sJAAsJ;AACtJ,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB;;;;;OAKG;IACH,SAAS,EAAE,KAAK,CAAC,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC,CAAC;IAClD,wDAAwD;IACxD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0DAA0D;IAC1D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,0FAA0F;IAC1F,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,qFAAqF;IACrF,SAAS,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IACjE,wGAAwG;IACxG,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,6DAA6D;AAC7D,MAAM,WAAW,UAAU;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED,sCAAsC;AACtC,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;CACzB;AAqHD,oCAAoC;AACpC,MAAM,WAAW,oBAAoB;IACjC,sFAAsF;IACtF,OAAO,EAAE,MAAM,CAAC;IAChB,mGAAmG;IACnG,MAAM,EAAE,WAAW,CAAC;IACpB,sFAAsF;IACtF,aAAa,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,8CAA8C;IAC9C,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,CAyGvF"}
|
|
@@ -41,6 +41,7 @@ import * as path from "node:path";
|
|
|
41
41
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
42
42
|
import { Expr, IRType, toJSONFor, toEastTypeValue, toSource, typeSource } from "@elaraai/east";
|
|
43
43
|
import { parseExamplesFile } from "./examples-file.js";
|
|
44
|
+
import { argument } from "../lib/args.js";
|
|
44
45
|
// ---------------------------------------------------------------------------
|
|
45
46
|
// Glob-style pattern matching (minimal, supports * and **)
|
|
46
47
|
// ---------------------------------------------------------------------------
|
|
@@ -264,16 +265,6 @@ export async function generateIndex(options) {
|
|
|
264
265
|
// ---------------------------------------------------------------------------
|
|
265
266
|
// CLI
|
|
266
267
|
// ---------------------------------------------------------------------------
|
|
267
|
-
/** The value after `flag`, if given. */
|
|
268
|
-
function argument(args, flag) {
|
|
269
|
-
const idx = args.indexOf(flag);
|
|
270
|
-
if (idx === -1)
|
|
271
|
-
return undefined;
|
|
272
|
-
const value = args[idx + 1];
|
|
273
|
-
if (value === undefined)
|
|
274
|
-
throw new Error(`${flag} needs a value`);
|
|
275
|
-
return value;
|
|
276
|
-
}
|
|
277
268
|
async function main() {
|
|
278
269
|
const args = process.argv.slice(2);
|
|
279
270
|
const baseDir = argument(args, "--base-dir");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-index.js","sourceRoot":"","sources":["../../scripts/generate-index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generate-index.js","sourceRoot":"","sources":["../../scripts/generate-index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../scripts/package.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Assembles East's plugins as the hosts install them — the directories a
|
|
4
|
+
* release publishes as `@elaraai/east-claude-plugin` and
|
|
5
|
+
* `@elaraai/east-codex-plugin` — under `libs/east-plugin/marketplace/`, and
|
|
6
|
+
* writes that directory's marketplace files, so a checkout is a local
|
|
7
|
+
* marketplace for both hosts, under the catalog's names — a maintainer swaps
|
|
8
|
+
* the source of `elaraai` between the catalog and a checkout with one
|
|
9
|
+
* `marketplace add`, and `east@elaraai` stays the plugin (#1309):
|
|
10
|
+
*
|
|
11
|
+
* claude plugin marketplace add <checkout>/libs/east-plugin/marketplace
|
|
12
|
+
* codex plugin marketplace add <checkout>/libs/east-plugin/marketplace
|
|
13
|
+
*
|
|
14
|
+
* Usage: node dist/scripts/package.js [--host claude|codex] [--out <dir>]
|
|
15
|
+
* --host assemble one host's plugin (default both)
|
|
16
|
+
* --out the marketplace directory (default libs/east-plugin/marketplace);
|
|
17
|
+
* a directory this script wrote before, or an empty or absent one —
|
|
18
|
+
* anything else there is refused, since the plugins and the
|
|
19
|
+
* marketplace files replace what they find
|
|
20
|
+
*
|
|
21
|
+
* Each host's `.build/` must exist (pnpm --filter <host> run bundle).
|
|
22
|
+
*/
|
|
23
|
+
import { existsSync } from "node:fs";
|
|
24
|
+
import { mkdir, readdir, writeFile } from "node:fs/promises";
|
|
25
|
+
import { dirname, join, resolve } from "node:path";
|
|
26
|
+
import { fileURLToPath } from "node:url";
|
|
27
|
+
import { argument } from "../lib/args.js";
|
|
28
|
+
import { assemblePlugin } from "../lib/package.js";
|
|
29
|
+
// dist/scripts/package.js → libs/east-plugin
|
|
30
|
+
const root = resolve(dirname(fileURLToPath(import.meta.url)), "..", "..");
|
|
31
|
+
const libs = resolve(root, "..");
|
|
32
|
+
/** East's plugins: the host, its source package, and the package it is published as. */
|
|
33
|
+
const PLUGINS = {
|
|
34
|
+
claude: { source: join(libs, "east-claude-plugin"), dir: "east-claude-plugin", plugin: "east" },
|
|
35
|
+
codex: { source: join(libs, "east-codex-plugin"), dir: "east-codex-plugin", plugin: "east-codex-plugin" },
|
|
36
|
+
};
|
|
37
|
+
/** What this script writes under the marketplace directory: the plugins and the marketplace files, and nothing else may be there. */
|
|
38
|
+
const WRITTEN = new Set([PLUGINS.claude.dir, PLUGINS.codex.dir, `${PLUGINS.claude.dir}.assembling`, `${PLUGINS.codex.dir}.assembling`, ".claude-plugin", ".agents"]);
|
|
39
|
+
const OWNER = { name: "Elara AI", email: "support@elara.ai", url: "https://elaraai.com" };
|
|
40
|
+
const DESCRIPTION = "East programming language ecosystem - types, expressions, Node.js/Python runtimes, UI components, and durable execution";
|
|
41
|
+
const args = process.argv.slice(2);
|
|
42
|
+
const host = argument(args, "--host");
|
|
43
|
+
if (host !== undefined && host !== "claude" && host !== "codex") {
|
|
44
|
+
console.error(`--host takes claude or codex, not ${host}`);
|
|
45
|
+
process.exit(2);
|
|
46
|
+
}
|
|
47
|
+
const out = resolve(argument(args, "--out") ?? join(root, "marketplace"));
|
|
48
|
+
const hosts = host === undefined ? ["claude", "codex"] : [host];
|
|
49
|
+
// Refused before anything is written: a plugin source, a package, the repo
|
|
50
|
+
// root — each holds what no assembly wrote, and would lose it.
|
|
51
|
+
if (existsSync(out)) {
|
|
52
|
+
const foreign = (await readdir(out)).filter((name) => !WRITTEN.has(name));
|
|
53
|
+
if (foreign.length > 0) {
|
|
54
|
+
console.error(`Refusing to write a marketplace into ${out}: it holds ${foreign.join(", ")}, which no assembly wrote`);
|
|
55
|
+
process.exit(2);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
for (const which of hosts) {
|
|
59
|
+
const { source, dir } = PLUGINS[which];
|
|
60
|
+
const manifest = await assemblePlugin({
|
|
61
|
+
host: which,
|
|
62
|
+
source,
|
|
63
|
+
skills: join(root, "skills"),
|
|
64
|
+
index: join(root, "index.json"),
|
|
65
|
+
out: join(out, dir),
|
|
66
|
+
});
|
|
67
|
+
console.log(`assembled ${manifest.name}@${manifest.version} → ${join(out, dir)}`);
|
|
68
|
+
}
|
|
69
|
+
// The marketplace files name every plugin assembled here, so a host added to
|
|
70
|
+
// this directory installs what is on disk, under the published catalog's
|
|
71
|
+
// names (elaraai, elaraai-codex): one name registers once, and a maintainer
|
|
72
|
+
// points it at a checkout or at the catalog.
|
|
73
|
+
const present = (which) => existsSync(join(out, PLUGINS[which].dir, "package.json"));
|
|
74
|
+
await mkdir(join(out, ".claude-plugin"), { recursive: true });
|
|
75
|
+
await writeFile(join(out, ".claude-plugin", "marketplace.json"), `${JSON.stringify({
|
|
76
|
+
name: "elaraai",
|
|
77
|
+
description: "East's agent plugins, assembled from this checkout",
|
|
78
|
+
owner: OWNER,
|
|
79
|
+
plugins: present("claude") ? [{ name: PLUGINS.claude.plugin, source: `./${PLUGINS.claude.dir}`, description: DESCRIPTION }] : [],
|
|
80
|
+
}, null, 2)}\n`);
|
|
81
|
+
await mkdir(join(out, ".agents", "plugins"), { recursive: true });
|
|
82
|
+
await writeFile(join(out, ".agents", "plugins", "marketplace.json"), `${JSON.stringify({
|
|
83
|
+
name: "elaraai-codex",
|
|
84
|
+
interface: { displayName: "Elara AI (this checkout)" },
|
|
85
|
+
plugins: present("codex") ? [{
|
|
86
|
+
name: PLUGINS.codex.plugin,
|
|
87
|
+
source: { source: "local", path: `./${PLUGINS.codex.dir}` },
|
|
88
|
+
policy: { installation: "AVAILABLE", authentication: "ON_INSTALL" },
|
|
89
|
+
category: "Productivity",
|
|
90
|
+
}] : [],
|
|
91
|
+
}, null, 2)}\n`);
|
|
92
|
+
console.log(`marketplace: ${out} (elaraai, elaraai-codex)`);
|
|
93
|
+
//# sourceMappingURL=package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../../scripts/package.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elaraai/east-plugin",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.90",
|
|
4
4
|
"license": "AGPL-3.0-or-later",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "East's agent plugin runtime — the example index generator, the example search and its MCP tools, the search-first hooks and the Codex skill adapter — for a Claude Code or Codex plugin that builds on East's.",
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
44
44
|
"minisearch": "^7.1.2",
|
|
45
45
|
"zod": "^3.0.0",
|
|
46
|
-
"@elaraai/east": "1.0.
|
|
47
|
-
"@elaraai/east-diagnostics": "1.0.
|
|
46
|
+
"@elaraai/east": "1.0.90",
|
|
47
|
+
"@elaraai/east-diagnostics": "1.0.90"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@types/node": "^22.18.1",
|
|
@@ -62,7 +62,8 @@
|
|
|
62
62
|
},
|
|
63
63
|
"scripts": {
|
|
64
64
|
"build": "tsc",
|
|
65
|
-
"generate-index": "npm run build && node dist/scripts/generate-index.js --base-dir .. && uv run --project ../east-py python scripts/render-python.py index.json
|
|
66
|
-
"test": "npm run build && node --enable-source-maps --test dist/test/*.spec.js"
|
|
65
|
+
"generate-index": "npm run build && node dist/scripts/generate-index.js --base-dir .. && uv run --project ../east-py python scripts/render-python.py index.json",
|
|
66
|
+
"test": "npm run build && node --enable-source-maps --test dist/test/*.spec.js",
|
|
67
|
+
"package": "node dist/scripts/package.js"
|
|
67
68
|
}
|
|
68
69
|
}
|