@amsterdamdatalabs/enact-extensions 0.1.54 → 0.1.55
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 +33 -11
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/agents.d.ts +31 -6
- package/dist/internal/agents.d.ts.map +1 -1
- package/dist/internal/agents.js +234 -4
- package/dist/internal/agents.js.map +1 -1
- package/extensions/enact-repo/.agents/plugin.json +1 -1
- package/extensions/enact-repo/README.md +16 -9
- package/package.json +1 -1
- package/scripts/lib/run-repo-doctor.mjs +55 -34
- package/scripts/lib/run-repo-install.mjs +111 -285
package/README.md
CHANGED
|
@@ -19,7 +19,12 @@ This package owns the manifest tooling and a set of self-contained plugin bundle
|
|
|
19
19
|
|
|
20
20
|
## Surface contract
|
|
21
21
|
|
|
22
|
-
Each `extensions/<plugin>/.agents/plugin.json` is the canonical source. `sync`
|
|
22
|
+
Each `extensions/<plugin>/.agents/plugin.json` is the canonical source. `sync` derives
|
|
23
|
+
the generated plugin-root projections (`.claude-plugin/`, `.codex-plugin/`,
|
|
24
|
+
`.cursor-plugin/`, and `.kimi-plugin/`) in the bundle source for the explicit global
|
|
25
|
+
plugin path owned by `enact-vps`. Repo-local `install --repo` does **not** derive,
|
|
26
|
+
register, or write any plugin root or marketplace; it writes only the native project
|
|
27
|
+
files below.
|
|
23
28
|
|
|
24
29
|
Author skills so they are valid on **all projected surfaces by default**. Use surface-neutral workflow language, treat `.agents/plugin.json` as the source of truth, and isolate host-specific details only when required.
|
|
25
30
|
|
|
@@ -75,28 +80,45 @@ enact-extensions doctor enact-repo --repo <path> [--json] # read-only healt
|
|
|
75
80
|
|
|
76
81
|
`--dry-run` prints exactly what would be written, merged, removed, or restored — one line per file, naming the action and the reason (including a drift/conflict refusal, if the real run would refuse) — and exits with the same success/failure a real run would, without touching the filesystem.
|
|
77
82
|
|
|
78
|
-
`doctor enact-repo --repo <path>` is
|
|
83
|
+
`doctor enact-repo --repo <path>` is read-only. It reports the installed and current
|
|
84
|
+
bundle versions, lock integrity and drift, and each host's lock-owned native paths.
|
|
85
|
+
It also reports Codex and Kimi trust notes, Cursor MCP approval, Kimi's global-hook
|
|
86
|
+
status, required global binaries, the root `enact-config.toml` `[extensions]` marker,
|
|
87
|
+
an optional `enact-hook doctor --repo` result, and the per-repo hook logs. It never
|
|
88
|
+
writes; it exits non-zero only for a hard requirement such as a missing install,
|
|
89
|
+
lock-integrity failure, missing required binary, or invalid/missing `[extensions]`
|
|
90
|
+
marker.
|
|
79
91
|
|
|
80
92
|
| Host | Files written in the repo |
|
|
81
93
|
| --- | --- |
|
|
82
|
-
| Claude Code | `.claude
|
|
83
|
-
| Codex | `.codex/config.toml`
|
|
84
|
-
| Cursor | `.cursor/
|
|
85
|
-
| Kimi Code | `.kimi-code/mcp.json`. Kimi hooks
|
|
86
|
-
| OpenCode | `.opencode/
|
|
94
|
+
| Claude Code | `.claude/agents/*.md`, `.claude/skills/<skill>/`, root `.mcp.json`, and hook entries merged into `.claude/settings.json`. Trust the folder before loading the project configuration. |
|
|
95
|
+
| Codex | `.codex/agents/*.toml`, `.agents/skills/<skill>/`, `.codex/config.toml` MCP tables, and `.codex/hooks.json`. Trust the exact project path and review hooks with `/hooks`. |
|
|
96
|
+
| Cursor | `.cursor/agents/*.md`, `.cursor/skills/<skill>/`, `.cursor/mcp.json`, and `.cursor/hooks.json`. |
|
|
97
|
+
| Kimi Code | `.kimi-code/agents/*.md`, `.kimi-code/skills/<skill>/`, and `.kimi-code/mcp.json`. Kimi hooks remain global-only and are installed by `enact-vps`, never by this repo-local command. |
|
|
98
|
+
| OpenCode | A hook-free bundle writes `.opencode/agents/*.md`, `.opencode/skills/<skill>/`, and root `opencode.json` MCP entries. `enact-repo` declares hooks, so its repo-local OpenCode install is refused before any write; install its explicit global OpenCode plugin through `enact-vps`. |
|
|
87
99
|
|
|
88
|
-
Skills
|
|
100
|
+
Skills are installed at each host's native project discovery path: `.agents/skills/` for
|
|
101
|
+
Codex and `.claude/skills/`, `.cursor/skills/`, `.kimi-code/skills/`, or
|
|
102
|
+
`.opencode/skills/` for the other hosts. An existing same-named skill directory that
|
|
103
|
+
the bundle does not manage is never overwritten, even with `--force`.
|
|
89
104
|
|
|
90
105
|
`lean-ctx` config: regardless of `--host`, the bundle's baseline `lean-ctx/config.toml` and `lean-ctx/layout.toml` are installed as managed whole files at `.agents/lean-ctx/config/lean-ctx/` — every host's `.mcp.json`/hooks equivalent runs `enact-hook lean-ctx ...`, which resolves its config from this repo-local path. Managed like any other whole file: drift is detected, `--force` takes over and records a pre-existing user `config.toml`/`layout.toml` for byte-exact restore on uninstall.
|
|
91
106
|
|
|
92
|
-
Always written:
|
|
107
|
+
Always written: root `enact-config.toml`'s `[extensions]` marker and the bare
|
|
108
|
+
`[extensions.<name>]` declaration for the installed bundle. The shared file's tables
|
|
109
|
+
have one owner: `version`/`[hooks]`/`[rules]`/`[repo]` are `enact-hook`,
|
|
110
|
+
`[extensions]` is enact-extensions, and `[controls]` is enact-repo-controls. The
|
|
111
|
+
installer edits only its own block, removes the legacy marker-only `[skills]` block,
|
|
112
|
+
and never writes `[hooks]`. It also manages the baseline `lean-ctx` config,
|
|
113
|
+
`.agents/.gitignore` runtime entries, and `.agents/enact-repo.lock.json`. Commit all
|
|
114
|
+
of it except what `.gitignore` excludes.
|
|
93
115
|
|
|
94
116
|
The lock records every managed file (sha256), every entry merged into a user file, and the plugin version, all as relative paths:
|
|
95
117
|
|
|
96
118
|
- **Re-runs are idempotent.** An unchanged bundle produces no diff. Narrowing `--host` removes the dropped hosts' managed content.
|
|
97
119
|
- **Merged user files are edited surgically.** `.claude/settings.json`, `.cursor/hooks.json`, `.cursor/mcp.json`, `.kimi-code/mcp.json`, `.codex/hooks.json`, and `.codex/config.toml` only gain or lose the bundle's own entries. Key order and indentation are preserved.
|
|
98
|
-
- **Refusals (override with `--force`).** Install stops if a managed file or entry was edited since the last install, or if a same-named
|
|
99
|
-
- **Uninstall removes exactly what the lock records.** It deletes a merged file only if install created it and it is now empty, then deletes the lock. `enact-config.toml` stays unless you pass `--purge`. `--purge` cuts only the `[
|
|
120
|
+
- **Refusals (override with `--force`).** Install stops if a managed file or entry was edited since the last install, or if a same-named native agent, skill, or MCP entry exists that the bundle does not own. The error names each file.
|
|
121
|
+
- **Uninstall removes exactly what the lock records.** It deletes a merged file only if install created it and it is now empty, then deletes the lock. `enact-config.toml` stays unless you pass `--purge`. `--purge` cuts only the `[extensions]` block install wrote, at text level; it refuses if that block was edited (with `--force`, it keeps the block). It deletes the file only if install created it and nothing but `version = 1` remains.
|
|
100
122
|
|
|
101
123
|
Install the CLI itself globally (the CLI binary only — no plugins, no host config):
|
|
102
124
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type { OpenCodeHookFallback, OpenCodeLocalMcpServer, OpenCodePluginSource, ScaffoldOptions, } from "./create/index.js";
|
|
2
2
|
export { createEnactManifest, deriveClaudeManifest, deriveCodexManifest, deriveCursorManifest, deriveKimiManifest, deriveManifest, deriveOpenCodeManifest, deriveOpenCodeMcp, deriveOpenCodePlugin, fallbackOpenCodeHookEvents, manifestForPlatform, resolveProjectionTargets, resolveTargets, scaffoldPlugin, syncPlatformManifests, unmappedOpenCodeHookEvents, } from "./create/index.js";
|
|
3
3
|
export type { AgentDef, MarkdownAgentPlatform } from "./internal/agents.js";
|
|
4
|
-
export { emitMarkdownAgent, parseTomlAgent, projectAgentsDir, projectCursorHooks, unmappedCursorHookEvents, unmappedCursorHookMatchers, writeCursorHooksFile, } from "./internal/agents.js";
|
|
4
|
+
export { emitKimiAgent, emitMarkdownAgent, emitOpenCodeAgent, emitTomlAgent, parseMarkdownAgent, parseTomlAgent, projectAgentsDir, projectCursorHooks, projectNativeAgentsDir, unmappedCursorHookEvents, unmappedCursorHookMatchers, writeCursorHooksFile, } from "./internal/agents.js";
|
|
5
5
|
export { cutExtensionsBlock, cutLegacySkillsBlock, declaredExtensionsFrom, declareExtension, EXTENSIONS_BLOCK, extensionBlock, removeExtensionBlock, } from "./internal/extensions-table.js";
|
|
6
6
|
export { makeFileOps } from "./internal/file-ops.js";
|
|
7
7
|
export { applyHostFlagToHooksDoc, clampHookTimeoutsForHost, withHostFlag, writeHostFlaggedHooksFile, } from "./internal/hooks.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,SAAS,GACV,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,0BAA0B,EAC1B,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC5G,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACnH,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,+BAA+B,EAC/B,4CAA4C,EAC5C,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,iCAAiC,EACjC,sBAAsB,GACvB,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,SAAS,GACV,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,0BAA0B,EAC1B,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,cAAc,EACd,gBAAgB,GACjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC5G,YAAY,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACnH,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,+BAA+B,EAC/B,4CAA4C,EAC5C,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,iCAAiC,EACjC,sBAAsB,GACvB,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { createEnactManifest, deriveClaudeManifest, deriveCodexManifest, deriveCursorManifest, deriveKimiManifest, deriveManifest, deriveOpenCodeManifest, deriveOpenCodeMcp, deriveOpenCodePlugin, fallbackOpenCodeHookEvents, manifestForPlatform, resolveProjectionTargets, resolveTargets, scaffoldPlugin, syncPlatformManifests, unmappedOpenCodeHookEvents, } from "./create/index.js";
|
|
2
|
-
export { emitMarkdownAgent, parseTomlAgent, projectAgentsDir, projectCursorHooks, unmappedCursorHookEvents, unmappedCursorHookMatchers, writeCursorHooksFile, } from "./internal/agents.js";
|
|
2
|
+
export { emitKimiAgent, emitMarkdownAgent, emitOpenCodeAgent, emitTomlAgent, parseMarkdownAgent, parseTomlAgent, projectAgentsDir, projectCursorHooks, projectNativeAgentsDir, unmappedCursorHookEvents, unmappedCursorHookMatchers, writeCursorHooksFile, } from "./internal/agents.js";
|
|
3
3
|
export { cutExtensionsBlock, cutLegacySkillsBlock, declaredExtensionsFrom, declareExtension, EXTENSIONS_BLOCK, extensionBlock, removeExtensionBlock, } from "./internal/extensions-table.js";
|
|
4
4
|
export { makeFileOps } from "./internal/file-ops.js";
|
|
5
5
|
export { applyHostFlagToHooksDoc, clampHookTimeoutsForHost, withHostFlag, writeHostFlaggedHooksFile, } from "./internal/hooks.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,SAAS,GACV,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,0BAA0B,EAC1B,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAUlC,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE5G,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,+BAA+B,EAC/B,4CAA4C,EAC5C,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,iCAAiC,EACjC,sBAAsB,GACvB,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,0BAA0B,EAC1B,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,oBAAoB,GACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,YAAY,EACZ,yBAAyB,GAC1B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,eAAe,EACf,YAAY,EACZ,KAAK,EACL,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,SAAS,GACV,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,0BAA0B,EAC1B,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAUlC,OAAO,EAAE,6BAA6B,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE5G,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,+BAA+B,EAC/B,4CAA4C,EAC5C,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,wBAAwB,EACxB,oBAAoB,EACpB,iCAAiC,EACjC,sBAAsB,GACvB,MAAM,qBAAqB,CAAC"}
|
|
@@ -3,9 +3,10 @@ import type { Platform } from "./types.js";
|
|
|
3
3
|
* Agent transformation. Canonical agents are authored in enact-native `.toml`
|
|
4
4
|
* (enact ≡ codex). On install we project per surface:
|
|
5
5
|
* - codex / enact : copy the canonical `.toml` as-is.
|
|
6
|
-
* - claude / cursor
|
|
7
|
-
*
|
|
8
|
-
*
|
|
6
|
+
* - claude / cursor / kimi / opencode: emit their native Markdown profile.
|
|
7
|
+
* - a canonical Markdown profile is converted to native Codex TOML.
|
|
8
|
+
* Non-agent files (for example README files without frontmatter) are copied
|
|
9
|
+
* verbatim, so mixed-format bundles keep working.
|
|
9
10
|
*/
|
|
10
11
|
export type MarkdownAgentPlatform = "claude" | "cursor";
|
|
11
12
|
export interface AgentDef {
|
|
@@ -18,13 +19,31 @@ export interface AgentDef {
|
|
|
18
19
|
claudeModel?: string;
|
|
19
20
|
/** Cursor model alias projected into Markdown `model:` frontmatter. */
|
|
20
21
|
cursorModel?: string;
|
|
22
|
+
/** Kimi model aliases have no portable direct-agent equivalent. */
|
|
23
|
+
kimiModel?: string;
|
|
24
|
+
/** OpenCode model aliases have no portable direct-agent equivalent. */
|
|
25
|
+
openCodeModel?: string;
|
|
26
|
+
sandboxMode?: string;
|
|
27
|
+
modelReasoningEffort?: string;
|
|
21
28
|
tools?: string;
|
|
22
29
|
disallowedTools?: string;
|
|
23
30
|
color?: string;
|
|
24
31
|
skills?: string[];
|
|
32
|
+
whenToUse?: string;
|
|
33
|
+
override?: boolean;
|
|
34
|
+
/** Cursor's native read-only switch. */
|
|
35
|
+
readonly?: boolean;
|
|
25
36
|
}
|
|
26
37
|
export declare function parseTomlAgent(content: string): AgentDef;
|
|
38
|
+
/** Parse a canonical Markdown agent with YAML frontmatter. */
|
|
39
|
+
export declare function parseMarkdownAgent(content: string): AgentDef;
|
|
27
40
|
export declare function emitMarkdownAgent(def: AgentDef, platform?: MarkdownAgentPlatform): string;
|
|
41
|
+
/** Emit Kimi's native Markdown agent format from an enact canonical agent. */
|
|
42
|
+
export declare function emitKimiAgent(def: AgentDef): string;
|
|
43
|
+
/** Emit OpenCode's native Markdown subagent format from an enact canonical agent. */
|
|
44
|
+
export declare function emitOpenCodeAgent(def: AgentDef): string;
|
|
45
|
+
/** Emit Codex's native TOML agent format from an enact canonical agent. */
|
|
46
|
+
export declare function emitTomlAgent(def: AgentDef): string;
|
|
28
47
|
interface CursorFlatHookEntry {
|
|
29
48
|
command: string;
|
|
30
49
|
matcher?: string;
|
|
@@ -54,9 +73,15 @@ export declare function projectCursorHooks(canonical: Record<string, unknown>):
|
|
|
54
73
|
*/
|
|
55
74
|
export declare function writeCursorHooksFile(sourcePath: string, targetPath: string): boolean;
|
|
56
75
|
/**
|
|
57
|
-
* Project a source agents/ dir into
|
|
58
|
-
*
|
|
59
|
-
*
|
|
76
|
+
* Project a source agents/ dir into a direct native host target. TOML and
|
|
77
|
+
* frontmatter-bearing Markdown agents are always transformed for a different
|
|
78
|
+
* host; only canonical Codex TOML is copied unchanged to Codex/enact.
|
|
79
|
+
*/
|
|
80
|
+
export declare function projectNativeAgentsDir(sourceDir: string, targetDir: string, platform: Platform): void;
|
|
81
|
+
/**
|
|
82
|
+
* Legacy plugin-root projection. Keep this behavior isolated from direct repo
|
|
83
|
+
* installation: plugin surfaces own their Markdown agents and may accept
|
|
84
|
+
* plugin-specific frontmatter that a native host cannot represent.
|
|
60
85
|
*/
|
|
61
86
|
export declare function projectAgentsDir(sourceDir: string, targetDir: string, platform: Platform): void;
|
|
62
87
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/internal/agents.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/internal/agents.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;GAQG;AAEH,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAyBD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CAqBxD;AAED,8DAA8D;AAC9D,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,CA6B5D;AAgBD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAiBzF;AAgCD,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAgBnD;AA2BD,qFAAqF;AACrF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CASvD;AAED,2EAA2E;AAC3E,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAyBnD;AAuFD,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAerF;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAuBvF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACtE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;CAC9C,CA2BA;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAyBpF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAsDrG;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAkB/F"}
|
package/dist/internal/agents.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { cpSync, mkdirSync, readdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import * as TOML from "@iarna/toml";
|
|
4
|
+
import { parse as parseYaml } from "yaml";
|
|
4
5
|
import { withHostFlag } from "./hooks.js";
|
|
5
6
|
function str(v) {
|
|
6
7
|
if (typeof v === "string" && v.trim())
|
|
@@ -12,6 +13,17 @@ function list(v) {
|
|
|
12
13
|
return v.map(String).join(", ");
|
|
13
14
|
return str(v);
|
|
14
15
|
}
|
|
16
|
+
function stringList(value) {
|
|
17
|
+
return value
|
|
18
|
+
? value
|
|
19
|
+
.split(",")
|
|
20
|
+
.map((item) => item.trim())
|
|
21
|
+
.filter(Boolean)
|
|
22
|
+
: [];
|
|
23
|
+
}
|
|
24
|
+
function bool(v) {
|
|
25
|
+
return typeof v === "boolean" ? v : undefined;
|
|
26
|
+
}
|
|
15
27
|
export function parseTomlAgent(content) {
|
|
16
28
|
const t = TOML.parse(content);
|
|
17
29
|
return {
|
|
@@ -21,10 +33,49 @@ export function parseTomlAgent(content) {
|
|
|
21
33
|
model: str(t.model),
|
|
22
34
|
claudeModel: str(t.claude_model) ?? str(t.claudeModel),
|
|
23
35
|
cursorModel: str(t.cursor_model) ?? str(t.cursorModel),
|
|
36
|
+
kimiModel: str(t.kimi_model) ?? str(t.kimiModel),
|
|
37
|
+
openCodeModel: str(t.opencode_model) ?? str(t.opencodeModel),
|
|
38
|
+
sandboxMode: str(t.sandbox_mode) ?? str(t.sandboxMode),
|
|
39
|
+
modelReasoningEffort: str(t.model_reasoning_effort) ?? str(t.modelReasoningEffort),
|
|
40
|
+
tools: list(t.tools),
|
|
41
|
+
disallowedTools: list(t.disallowed_tools) ?? list(t.disallowedTools),
|
|
42
|
+
color: str(t.color),
|
|
43
|
+
skills: Array.isArray(t.skills) ? t.skills.map(String) : undefined,
|
|
44
|
+
whenToUse: str(t.when_to_use) ?? str(t.whenToUse),
|
|
45
|
+
override: bool(t.override),
|
|
46
|
+
readonly: bool(t.readonly),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/** Parse a canonical Markdown agent with YAML frontmatter. */
|
|
50
|
+
export function parseMarkdownAgent(content) {
|
|
51
|
+
const match = /^---\s*\n([\s\S]*?)\n---\s*\n?([\s\S]*)$/u.exec(content);
|
|
52
|
+
if (!match)
|
|
53
|
+
throw new Error("Canonical Markdown agent must start with YAML frontmatter delimited by ---");
|
|
54
|
+
const raw = parseYaml(match[1]);
|
|
55
|
+
if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
|
|
56
|
+
throw new Error("Canonical Markdown agent frontmatter must be a mapping");
|
|
57
|
+
}
|
|
58
|
+
const t = raw;
|
|
59
|
+
return {
|
|
60
|
+
name: str(t.name) ?? "",
|
|
61
|
+
description: str(t.description) ?? "",
|
|
62
|
+
body: match[2].trimEnd(),
|
|
63
|
+
// `model` in canonical Markdown is the long-standing Claude field. A
|
|
64
|
+
// Codex model must be declared as codex_model; names share no namespace.
|
|
65
|
+
claudeModel: str(t.claude_model) ?? str(t.claudeModel) ?? str(t.model),
|
|
66
|
+
cursorModel: str(t.cursor_model) ?? str(t.cursorModel),
|
|
67
|
+
kimiModel: str(t.kimi_model) ?? str(t.kimiModel),
|
|
68
|
+
openCodeModel: str(t.opencode_model) ?? str(t.opencodeModel),
|
|
69
|
+
model: str(t.codex_model) ?? str(t.codexModel),
|
|
70
|
+
sandboxMode: str(t.sandbox_mode) ?? str(t.sandboxMode),
|
|
71
|
+
modelReasoningEffort: str(t.model_reasoning_effort) ?? str(t.modelReasoningEffort),
|
|
24
72
|
tools: list(t.tools),
|
|
25
73
|
disallowedTools: list(t.disallowed_tools) ?? list(t.disallowedTools),
|
|
26
74
|
color: str(t.color),
|
|
27
75
|
skills: Array.isArray(t.skills) ? t.skills.map(String) : undefined,
|
|
76
|
+
whenToUse: str(t.when_to_use) ?? str(t.whenToUse),
|
|
77
|
+
override: bool(t.override),
|
|
78
|
+
readonly: bool(t.readonly),
|
|
28
79
|
};
|
|
29
80
|
}
|
|
30
81
|
/** Emit a YAML scalar that round-trips arbitrary text safely. */
|
|
@@ -52,6 +103,11 @@ export function emitMarkdownAgent(def, platform) {
|
|
|
52
103
|
fm.push(`model: ${surfaceModel}`);
|
|
53
104
|
if (def.color)
|
|
54
105
|
fm.push(`color: ${def.color}`);
|
|
106
|
+
if (platform === "cursor") {
|
|
107
|
+
const readonly = def.readonly ?? (def.sandboxMode === "read-only" ? true : def.sandboxMode ? false : undefined);
|
|
108
|
+
if (readonly !== undefined)
|
|
109
|
+
fm.push(`readonly: ${readonly}`);
|
|
110
|
+
}
|
|
55
111
|
if (def.skills?.length) {
|
|
56
112
|
fm.push("skills:");
|
|
57
113
|
for (const s of def.skills)
|
|
@@ -60,6 +116,118 @@ export function emitMarkdownAgent(def, platform) {
|
|
|
60
116
|
fm.push("---", "");
|
|
61
117
|
return `${fm.join("\n")}\n${def.body.trimEnd()}\n`;
|
|
62
118
|
}
|
|
119
|
+
function assertNoTargetOnlyModel(def, platform) {
|
|
120
|
+
const field = platform === "Kimi" ? "kimiModel" : "openCodeModel";
|
|
121
|
+
const label = platform === "Kimi" ? "kimi_model" : "opencode_model";
|
|
122
|
+
if (def[field]) {
|
|
123
|
+
throw new Error(`${platform} agent projection cannot represent explicit ${label}: ${def[field]}`);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function assertNoUnsupportedKimiFields(def) {
|
|
127
|
+
assertNoTargetOnlyModel(def, "Kimi");
|
|
128
|
+
const disallowed = stringList(def.disallowedTools);
|
|
129
|
+
const allowed = new Set(stringList(def.tools));
|
|
130
|
+
if (disallowed.length > 0 && allowed.size === 0) {
|
|
131
|
+
throw new Error(`Kimi agent projection cannot represent explicit disallowed_tools without tools: ${def.disallowedTools}. ` +
|
|
132
|
+
"Use a Kimi tools allowlist instead.");
|
|
133
|
+
}
|
|
134
|
+
const conflicts = disallowed.filter((tool) => allowed.has(tool));
|
|
135
|
+
if (conflicts.length > 0) {
|
|
136
|
+
throw new Error(`Kimi agent projection has tools/disallowed_tools conflict for: ${conflicts.join(", ")}.`);
|
|
137
|
+
}
|
|
138
|
+
if ((def.sandboxMode === "read-only" || def.readonly === true) && !def.tools) {
|
|
139
|
+
throw new Error("Kimi agent projection cannot represent a read-only profile without an explicit tools allowlist.");
|
|
140
|
+
}
|
|
141
|
+
// `color` is presentation-only, `skills` are discovered from the native
|
|
142
|
+
// repo skill directory, and model reasoning is a Codex-only setting. These
|
|
143
|
+
// are deliberate no-ops, not dropped authority.
|
|
144
|
+
}
|
|
145
|
+
/** Emit Kimi's native Markdown agent format from an enact canonical agent. */
|
|
146
|
+
export function emitKimiAgent(def) {
|
|
147
|
+
assertNoUnsupportedKimiFields(def);
|
|
148
|
+
const fm = [
|
|
149
|
+
"---",
|
|
150
|
+
`name: ${yamlScalar(def.name)}`,
|
|
151
|
+
`description: ${yamlScalar(def.description)}`,
|
|
152
|
+
`whenToUse: ${yamlScalar(def.whenToUse ?? def.description)}`,
|
|
153
|
+
`override: ${def.override ?? false}`,
|
|
154
|
+
];
|
|
155
|
+
const tools = stringList(def.tools);
|
|
156
|
+
if (tools.length > 0) {
|
|
157
|
+
fm.push("tools:");
|
|
158
|
+
for (const tool of tools)
|
|
159
|
+
fm.push(` - ${yamlScalar(tool)}`);
|
|
160
|
+
}
|
|
161
|
+
fm.push("---", "");
|
|
162
|
+
return `${fm.join("\n")}\n${def.body.trimEnd()}\n`;
|
|
163
|
+
}
|
|
164
|
+
function openCodeDeniedActions(def) {
|
|
165
|
+
assertNoTargetOnlyModel(def, "OpenCode");
|
|
166
|
+
// `color` is presentation-only; native skills are auto-discovered; Kimi's
|
|
167
|
+
// routing fields and Codex reasoning are host-scoped configuration. None
|
|
168
|
+
// changes an OpenCode subagent's authority, so omission is intentional.
|
|
169
|
+
const disallowed = new Set(stringList(def.disallowedTools));
|
|
170
|
+
const allowed = new Set(stringList(def.tools));
|
|
171
|
+
const deny = new Set();
|
|
172
|
+
if (def.sandboxMode === "read-only" || def.readonly === true) {
|
|
173
|
+
deny.add("edit");
|
|
174
|
+
deny.add("bash");
|
|
175
|
+
}
|
|
176
|
+
if (disallowed.has("Write") || disallowed.has("Edit") || disallowed.has("MultiEdit"))
|
|
177
|
+
deny.add("edit");
|
|
178
|
+
if (disallowed.has("Bash") || disallowed.has("Shell"))
|
|
179
|
+
deny.add("bash");
|
|
180
|
+
if (allowed.size > 0) {
|
|
181
|
+
if (!["Write", "Edit", "MultiEdit"].some((tool) => allowed.has(tool)))
|
|
182
|
+
deny.add("edit");
|
|
183
|
+
if (!["Bash", "Shell"].some((tool) => allowed.has(tool)))
|
|
184
|
+
deny.add("bash");
|
|
185
|
+
}
|
|
186
|
+
const unsupported = [...disallowed].filter((tool) => !["Write", "Edit", "MultiEdit", "Bash", "Shell"].includes(tool));
|
|
187
|
+
if (unsupported.length > 0) {
|
|
188
|
+
throw new Error(`OpenCode agent projection cannot represent explicit disallowed_tools: ${unsupported.join(", ")}`);
|
|
189
|
+
}
|
|
190
|
+
return [...deny];
|
|
191
|
+
}
|
|
192
|
+
/** Emit OpenCode's native Markdown subagent format from an enact canonical agent. */
|
|
193
|
+
export function emitOpenCodeAgent(def) {
|
|
194
|
+
const denied = openCodeDeniedActions(def);
|
|
195
|
+
const fm = ["---", `description: ${yamlScalar(def.description)}`, "mode: subagent"];
|
|
196
|
+
if (denied.length > 0) {
|
|
197
|
+
fm.push("permission:");
|
|
198
|
+
for (const action of denied)
|
|
199
|
+
fm.push(` ${action}: deny`);
|
|
200
|
+
}
|
|
201
|
+
fm.push("---", "");
|
|
202
|
+
return `${fm.join("\n")}\n${def.body.trimEnd()}\n`;
|
|
203
|
+
}
|
|
204
|
+
/** Emit Codex's native TOML agent format from an enact canonical agent. */
|
|
205
|
+
export function emitTomlAgent(def) {
|
|
206
|
+
const allowed = new Set(stringList(def.tools));
|
|
207
|
+
const disallowed = new Set(stringList(def.disallowedTools));
|
|
208
|
+
const grantsWrite = ["Write", "Edit", "MultiEdit"].some((tool) => allowed.has(tool));
|
|
209
|
+
const deniesWrite = ["Write", "Edit", "MultiEdit"].some((tool) => disallowed.has(tool));
|
|
210
|
+
if (grantsWrite && deniesWrite) {
|
|
211
|
+
throw new Error("Codex agent projection has tools/disallowed_tools conflict for write authority.");
|
|
212
|
+
}
|
|
213
|
+
// Claude tool names have no Codex frontmatter equivalent. They do, however,
|
|
214
|
+
// express whether an agent may edit: derive the native sandbox when no
|
|
215
|
+
// explicit Codex mapping already exists. Presentation/routing metadata and
|
|
216
|
+
// skills are host-scoped; skills remain auto-discovered under `.agents`.
|
|
217
|
+
const derivedSandbox = def.tools || def.disallowedTools ? (grantsWrite ? "workspace-write" : "read-only") : undefined;
|
|
218
|
+
const output = {
|
|
219
|
+
name: def.name,
|
|
220
|
+
description: def.description,
|
|
221
|
+
...(def.model ? { model: def.model } : {}),
|
|
222
|
+
...(def.modelReasoningEffort ? { model_reasoning_effort: def.modelReasoningEffort } : {}),
|
|
223
|
+
...(def.sandboxMode ? { sandbox_mode: def.sandboxMode } : derivedSandbox ? { sandbox_mode: derivedSandbox } : {}),
|
|
224
|
+
...(!def.sandboxMode && def.readonly !== undefined
|
|
225
|
+
? { sandbox_mode: def.readonly ? "read-only" : "workspace-write" }
|
|
226
|
+
: {}),
|
|
227
|
+
developer_instructions: def.body,
|
|
228
|
+
};
|
|
229
|
+
return TOML.stringify(output);
|
|
230
|
+
}
|
|
63
231
|
// ---------------------------------------------------------------------------
|
|
64
232
|
// Cursor hooks projection
|
|
65
233
|
// ---------------------------------------------------------------------------
|
|
@@ -249,9 +417,72 @@ export function writeCursorHooksFile(sourcePath, targetPath) {
|
|
|
249
417
|
return true;
|
|
250
418
|
}
|
|
251
419
|
/**
|
|
252
|
-
* Project a source agents/ dir into
|
|
253
|
-
*
|
|
254
|
-
*
|
|
420
|
+
* Project a source agents/ dir into a direct native host target. TOML and
|
|
421
|
+
* frontmatter-bearing Markdown agents are always transformed for a different
|
|
422
|
+
* host; only canonical Codex TOML is copied unchanged to Codex/enact.
|
|
423
|
+
*/
|
|
424
|
+
export function projectNativeAgentsDir(sourceDir, targetDir, platform) {
|
|
425
|
+
mkdirSync(targetDir, { recursive: true });
|
|
426
|
+
for (const entry of readdirSync(sourceDir, { withFileTypes: true })) {
|
|
427
|
+
const src = join(sourceDir, entry.name);
|
|
428
|
+
if (entry.isDirectory()) {
|
|
429
|
+
projectNativeAgentsDir(src, join(targetDir, entry.name), platform);
|
|
430
|
+
continue;
|
|
431
|
+
}
|
|
432
|
+
if (entry.name.endsWith(".toml")) {
|
|
433
|
+
const def = parseTomlAgent(readFileSync(src, "utf8"));
|
|
434
|
+
const base = entry.name.slice(0, -".toml".length);
|
|
435
|
+
if (platform === "codex" || platform === "enact") {
|
|
436
|
+
cpSync(src, join(targetDir, entry.name), { force: true });
|
|
437
|
+
}
|
|
438
|
+
else if (platform === "claude" || platform === "cursor") {
|
|
439
|
+
const mdPlatform = platform === "cursor" ? "cursor" : "claude";
|
|
440
|
+
writeFileSync(join(targetDir, `${base}.md`), emitMarkdownAgent(def, mdPlatform), "utf8");
|
|
441
|
+
}
|
|
442
|
+
else if (platform === "kimi") {
|
|
443
|
+
writeFileSync(join(targetDir, `${base}.md`), emitKimiAgent(def), "utf8");
|
|
444
|
+
}
|
|
445
|
+
else {
|
|
446
|
+
writeFileSync(join(targetDir, `${base}.md`), emitOpenCodeAgent(def), "utf8");
|
|
447
|
+
}
|
|
448
|
+
continue;
|
|
449
|
+
}
|
|
450
|
+
if (entry.name.endsWith(".md")) {
|
|
451
|
+
const content = readFileSync(src, "utf8");
|
|
452
|
+
if (!content.startsWith("---")) {
|
|
453
|
+
cpSync(src, join(targetDir, entry.name), { force: true });
|
|
454
|
+
continue;
|
|
455
|
+
}
|
|
456
|
+
const def = parseMarkdownAgent(content);
|
|
457
|
+
const base = entry.name.slice(0, -".md".length);
|
|
458
|
+
if (platform === "codex" || platform === "enact") {
|
|
459
|
+
writeFileSync(join(targetDir, `${base}.toml`), emitTomlAgent(def), "utf8");
|
|
460
|
+
}
|
|
461
|
+
else if (platform === "claude" || platform === "cursor") {
|
|
462
|
+
const mdPlatform = platform === "cursor" ? "cursor" : "claude";
|
|
463
|
+
if (platform === "cursor" && def.claudeModel && def.claudeModel !== "inherit" && !def.cursorModel) {
|
|
464
|
+
throw new Error(`Cursor agent projection cannot represent explicit claude_model without cursor_model: ${def.claudeModel}`);
|
|
465
|
+
}
|
|
466
|
+
const cursorDef = platform === "cursor" && !def.cursorModel && def.claudeModel === "inherit"
|
|
467
|
+
? { ...def, cursorModel: "inherit" }
|
|
468
|
+
: def;
|
|
469
|
+
writeFileSync(join(targetDir, entry.name), emitMarkdownAgent(cursorDef, mdPlatform), "utf8");
|
|
470
|
+
}
|
|
471
|
+
else if (platform === "kimi") {
|
|
472
|
+
writeFileSync(join(targetDir, entry.name), emitKimiAgent(def), "utf8");
|
|
473
|
+
}
|
|
474
|
+
else {
|
|
475
|
+
writeFileSync(join(targetDir, entry.name), emitOpenCodeAgent(def), "utf8");
|
|
476
|
+
}
|
|
477
|
+
continue;
|
|
478
|
+
}
|
|
479
|
+
cpSync(src, join(targetDir, entry.name), { force: true });
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* Legacy plugin-root projection. Keep this behavior isolated from direct repo
|
|
484
|
+
* installation: plugin surfaces own their Markdown agents and may accept
|
|
485
|
+
* plugin-specific frontmatter that a native host cannot represent.
|
|
255
486
|
*/
|
|
256
487
|
export function projectAgentsDir(sourceDir, targetDir, platform) {
|
|
257
488
|
mkdirSync(targetDir, { recursive: true });
|
|
@@ -269,7 +500,6 @@ export function projectAgentsDir(sourceDir, targetDir, platform) {
|
|
|
269
500
|
writeFileSync(join(targetDir, `${base}.md`), emitMarkdownAgent(def, mdPlatform), "utf8");
|
|
270
501
|
continue;
|
|
271
502
|
}
|
|
272
|
-
// codex/enact: copy .toml as-is. Any surface: copy non-.toml verbatim.
|
|
273
503
|
cpSync(src, join(targetDir, entry.name), { force: true });
|
|
274
504
|
}
|
|
275
505
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/internal/agents.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/internal/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAyC1C,SAAS,GAAG,CAAC,CAAU;IACrB,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,CAAC;IAChD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,IAAI,CAAC,CAAU;IACtB,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,UAAU,CAAC,KAAyB;IAC3C,OAAO,KAAK;QACV,CAAC,CAAC,KAAK;aACF,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC1B,MAAM,CAAC,OAAO,CAAC;QACpB,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,IAAI,CAAC,CAAU;IACtB,OAAO,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;IACzD,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;QACvB,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;QACrC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;QACxD,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACnB,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;QACtD,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;QACtD,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAChD,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC;QAC5D,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;QACtD,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC;QAClF,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACpB,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;QACpE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACnB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAClE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QACjD,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1B,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;KAC3B,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,KAAK,GAAG,2CAA2C,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxE,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;IAC1G,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;QACvB,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;QACrC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;QACxB,qEAAqE;QACrE,yEAAyE;QACzE,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACtE,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;QACtD,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAChD,aAAa,EAAE,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC;QAC5D,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC;QAC9C,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC;QACtD,oBAAoB,EAAE,GAAG,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,oBAAoB,CAAC;QAClF,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACpB,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC;QACpE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;QACnB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;QAClE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QACjD,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC1B,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;KAC3B,CAAC;AACJ,CAAC;AAED,iEAAiE;AACjE,SAAS,UAAU,CAAC,CAAS;IAC3B,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,QAAQ,GAAG,CAAC;aACf,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aAC/B,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,OAAO,QAAQ,EAAE,CAAC;IAC3B,CAAC;IACD,kFAAkF;IAClF,IAAI,6BAA6B,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAa,EAAE,QAAgC;IAC/E,MAAM,EAAE,GAAa,CAAC,KAAK,EAAE,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE,gBAAgB,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACjG,IAAI,GAAG,CAAC,KAAK;QAAE,EAAE,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1D,IAAI,GAAG,CAAC,eAAe;QAAE,EAAE,CAAC,IAAI,CAAC,oBAAoB,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IACxF,MAAM,YAAY,GAAG,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;IAC/E,IAAI,YAAY;QAAE,EAAE,CAAC,IAAI,CAAC,UAAU,YAAY,EAAE,CAAC,CAAC;IACpD,IAAI,GAAG,CAAC,KAAK;QAAE,EAAE,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9C,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAChH,IAAI,QAAQ,KAAK,SAAS;YAAE,EAAE,CAAC,IAAI,CAAC,aAAa,QAAQ,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QACvB,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACnB,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM;YAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAClD,CAAC;IACD,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,uBAAuB,CAAC,GAAa,EAAE,QAA6B;IAC3E,MAAM,KAAK,GAAG,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC;IAClE,MAAM,KAAK,GAAG,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACpE,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,+CAA+C,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpG,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CAAC,GAAa;IAClD,uBAAuB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CACb,mFAAmF,GAAG,CAAC,eAAe,IAAI;YACxG,qCAAqC,CACxC,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,kEAAkE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7G,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,WAAW,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;IACrH,CAAC;IACD,wEAAwE;IACxE,2EAA2E;IAC3E,gDAAgD;AAClD,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,aAAa,CAAC,GAAa;IACzC,6BAA6B,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,EAAE,GAAG;QACT,KAAK;QACL,SAAS,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QAC/B,gBAAgB,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QAC7C,cAAc,UAAU,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,WAAW,CAAC,EAAE;QAC5D,aAAa,GAAG,CAAC,QAAQ,IAAI,KAAK,EAAE;KACrC,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,KAAK;YAAE,EAAE,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/D,CAAC;IACD,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;AACrD,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAa;IAC1C,uBAAuB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACzC,0EAA0E;IAC1E,yEAAyE;IACzE,wEAAwE;IACxE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,GAAG,CAAC,WAAW,KAAK,WAAW,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC7D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IACD,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC;QAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxE,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxF,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,WAAW,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACtH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yEAAyE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrH,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;AACnB,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,iBAAiB,CAAC,GAAa;IAC7C,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,gBAAgB,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IACpF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvB,KAAK,MAAM,MAAM,IAAI,MAAM;YAAE,EAAE,CAAC,IAAI,CAAC,KAAK,MAAM,QAAQ,CAAC,CAAC;IAC5D,CAAC;IACD,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;AACrD,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,aAAa,CAAC,GAAa;IACzC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACrF,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACxF,IAAI,WAAW,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,iFAAiF,CAAC,CAAC;IACrG,CAAC;IACD,4EAA4E;IAC5E,uEAAuE;IACvE,2EAA2E;IAC3E,yEAAyE;IACzE,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtH,MAAM,MAAM,GAA4B;QACtC,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,sBAAsB,EAAE,GAAG,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzF,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjH,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS;YAChD,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,EAAE;YAClE,CAAC,CAAC,EAAE,CAAC;QACP,sBAAsB,EAAE,GAAG,CAAC,IAAI;KACjC,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAsB,CAAC,CAAC;AAChD,CAAC;AAED,8EAA8E;AAC9E,0BAA0B;AAC1B,8EAA8E;AAC9E,EAAE;AACF,wEAAwE;AACxE,sEAAsE;AACtE,uEAAuE;AACvE,2DAA2D;AAC3D,uEAAuE;AACvE,gCAAgC;AAChC,gDAAgD;AAEhD,uEAAuE;AACvE,MAAM,qBAAqB,GAA2B;IACpD,YAAY,EAAE,cAAc;IAC5B,UAAU,EAAE,YAAY;IACxB,IAAI,EAAE,MAAM;IACZ,gBAAgB,EAAE,oBAAoB;IACtC,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,aAAa,EAAE,eAAe;IAC9B,YAAY,EAAE,cAAc;CAC7B,CAAC;AAEF,mDAAmD;AACnD,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC;IACpC,cAAc;IACd,YAAY;IACZ,MAAM;IACN,YAAY;IACZ,eAAe;IACf,cAAc;CACf,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,kBAAkB,GAA2B;IACjD,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,OAAO;IACnB,kBAAkB,EAAE,OAAO;IAC3B,SAAS,EAAE,OAAO;IAClB,WAAW,EAAE,OAAO;IACpB,eAAe,EAAE,OAAO;IACxB,WAAW,EAAE,OAAO;IACpB,UAAU,EAAE,OAAO;IACnB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;CACb,CAAC;AAEF;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,MAAM,GAAG,OAAO;SACnB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;gBAAE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC;AAC5F,CAAC;AAaD;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAkC;IACzE,MAAM,WAAW,GACf,SAAS,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,KAAK;QACjE,CAAC,CAAE,SAAS,CAAC,KAA8C;QAC3D,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3D,IAAI,qBAAqB,CAAC,KAAK,CAAC;YAAE,SAAS;QAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACzC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAC/F,CAAC;QACF,IAAI,WAAW;YAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,SAAkC;IAC3E,MAAM,WAAW,GACf,SAAS,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,KAAK;QACjE,CAAC,CAAE,SAAS,CAAC,KAA8C;QAC3D,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3D,MAAM,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,IAAI,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,SAAS;QAChG,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAClH,IAAI,CAAC,UAAU;gBAAE,SAAS;YAC1B,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC/D,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,QAAQ,CAAC,IAAI,CACX,GAAG,KAAK,cAAc,OAAO,6CAA6C,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtG,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAAkC;IAGnE,MAAM,WAAW,GACf,SAAS,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ,IAAI,SAAS,CAAC,KAAK;QACjE,CAAC,CAAE,SAAS,CAAC,KAA8C;QAC3D,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,GAAG,GAA0C,EAAE,CAAC;IACtD,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3D,MAAM,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAAE,SAAS;QACtD,MAAM,IAAI,GAA0B,EAAE,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC9E,IAAI,CAAC,OAAO;oBAAE,SAAS;gBACvB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;gBACtD,MAAM,SAAS,GAAwB,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;gBAC7F,IAAI,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;oBACvD,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;oBAC7C,IAAI,MAAM;wBAAE,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;gBACzC,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;IAC/C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB,EAAE,UAAkB;IACzE,IAAI,SAAkC,CAAC;IACvC,IAAI,CAAC;QACH,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAA4B,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,mEAAmE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACvF,iFAAiF,CACpF,CAAC;IACJ,CAAC;IACD,MAAM,gBAAgB,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAC;IAC/D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CACb,2EAA2E,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACxG,8EAA8E,CACjF,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAChD,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,aAAa,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7E,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAiB,EAAE,SAAiB,EAAE,QAAkB;IAC7F,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;YACnE,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,MAAM,GAAG,GAAG,cAAc,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACjD,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5D,CAAC;iBAAM,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC1D,MAAM,UAAU,GAA0B,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACtF,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;YAC3F,CAAC;iBAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC/B,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC3E,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC/E,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/B,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1D,SAAS;YACX,CAAC;YACD,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;gBACjD,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,OAAO,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7E,CAAC;iBAAM,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC1D,MAAM,UAAU,GAA0B,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;gBACtF,IAAI,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;oBAClG,MAAM,IAAI,KAAK,CACb,wFAAwF,GAAG,CAAC,WAAW,EAAE,CAC1G,CAAC;gBACJ,CAAC;gBACD,MAAM,SAAS,GACb,QAAQ,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,WAAW,KAAK,SAAS;oBACxE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,WAAW,EAAE,SAAS,EAAE;oBACpC,CAAC,CAAC,GAAG,CAAC;gBACV,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;YAC/F,CAAC;iBAAM,IAAI,QAAQ,KAAK,MAAM,EAAE,CAAC;gBAC/B,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7E,CAAC;YACD,SAAS;QACX,CAAC;QACD,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,SAAiB,EAAE,QAAkB;IACvF,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,CAAC;IAC9D,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC7D,SAAS;QACX,CAAC;QACD,IAAI,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,MAAM,GAAG,GAAG,cAAc,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;YACtD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,UAAU,GAA0B,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtF,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,KAAK,CAAC,EAAE,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAC;YACzF,SAAS;QACX,CAAC;QACD,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "enact-repo",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.7",
|
|
4
4
|
"description": "Baseline agent setup for any repository: the full Enact skill catalog plus guard, briefing, and code-review-graph hooks and MCP tooling, installed at repo scope.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "amsterdamdatalabs"
|
|
@@ -70,12 +70,19 @@ host, with no `--host` appended.
|
|
|
70
70
|
## Repo-local install
|
|
71
71
|
|
|
72
72
|
Install into a repository with `enact-extensions install enact-repo --repo <repo-root>` (see the
|
|
73
|
-
top-level README, "Repo-local install").
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
73
|
+
top-level README, "Repo-local install"). The command writes direct native project files only:
|
|
74
|
+
`.claude/agents` and `.claude/skills`; `.codex/agents` and `.agents/skills`;
|
|
75
|
+
`.cursor/agents` and `.cursor/skills`; `.kimi-code/agents` and `.kimi-code/skills`; and,
|
|
76
|
+
for hook-free bundles, `.opencode/agents` and `.opencode/skills`. It also writes each host's
|
|
77
|
+
native MCP and hook configuration where supported. It never writes a plugin root, marketplace,
|
|
78
|
+
or plugin registration.
|
|
79
|
+
Kimi hooks are global-only and are installed by `enact-vps`, not by this bundle. OpenCode has no
|
|
80
|
+
repo-local hook carrier: an OpenCode install of a hook-bearing bundle fails before writing anything
|
|
81
|
+
and requires the explicit global OpenCode plugin through `enact-vps`. The installer also marks the
|
|
82
|
+
repo as managed through root `enact-config.toml` (the file `enact-hook` checks): it creates the
|
|
83
|
+
file with `version = 1` when missing, manages the `[extensions]` declaration for this bundle by
|
|
84
|
+
text-level surgery only, removes the legacy marker-only `[skills]` block, and never writes
|
|
85
|
+
`[hooks]`; installs the baseline `lean-ctx/config.toml` and
|
|
79
86
|
`lean-ctx/layout.toml` as managed whole files at `.agents/lean-ctx/config/lean-ctx/` (tracked by
|
|
80
87
|
the lock like any other managed file — drift detection, `--force` takeover with originals
|
|
81
88
|
restore on uninstall, all reused from the existing managed-file machinery); and ignores
|
|
@@ -85,6 +92,6 @@ committed).
|
|
|
85
92
|
|
|
86
93
|
## Canonical install path
|
|
87
94
|
|
|
88
|
-
The canonical install entrypoint is `extensions/enact-repo/.agents/plugin.json`.
|
|
89
|
-
|
|
90
|
-
|
|
95
|
+
The canonical install entrypoint is `extensions/enact-repo/.agents/plugin.json`. `enact-extensions
|
|
96
|
+
sync` generates host plugin-root projections in this bundle for the explicit global plugin path;
|
|
97
|
+
repo-local `install --repo` never writes them.
|