loadouts 0.2.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (244) hide show
  1. package/bundled/embedded/opencode/loadouts-runtime.tsx +14461 -0
  2. package/bundled/embedded/pi/loadouts-runtime.ts +14638 -0
  3. package/bundled/extensions/loadouts-runtime/index.ts +14638 -0
  4. package/bundled/extensions/loadouts-runtime/package.json +6 -0
  5. package/bundled/loadouts/opencode-runtime.yaml +7 -0
  6. package/bundled/loadouts/pi-runtime.yaml +5 -0
  7. package/bundled/opencode/commands/loadouts.md +3 -0
  8. package/bundled/opencode/plugins/loadouts-runtime-tui.tsx +14461 -0
  9. package/bundled/opencode/plugins/loadouts-runtime.ts +533 -0
  10. package/bundled/opencode/tui.jsonc +5 -0
  11. package/dist/builtins/agent-transforms.d.ts +9 -0
  12. package/dist/builtins/agent-transforms.d.ts.map +1 -0
  13. package/dist/builtins/agent-transforms.js +232 -0
  14. package/dist/builtins/agent-transforms.js.map +1 -0
  15. package/dist/builtins/index.d.ts.map +1 -1
  16. package/dist/builtins/index.js +13 -0
  17. package/dist/builtins/index.js.map +1 -1
  18. package/dist/builtins/kinds/agent.d.ts +3 -0
  19. package/dist/builtins/kinds/agent.d.ts.map +1 -0
  20. package/dist/builtins/kinds/agent.js +8 -0
  21. package/dist/builtins/kinds/agent.js.map +1 -0
  22. package/dist/builtins/kinds/extension-dir.d.ts +3 -0
  23. package/dist/builtins/kinds/extension-dir.d.ts.map +1 -0
  24. package/dist/builtins/kinds/extension-dir.js +8 -0
  25. package/dist/builtins/kinds/extension-dir.js.map +1 -0
  26. package/dist/builtins/kinds/opencode-command.d.ts +3 -0
  27. package/dist/builtins/kinds/opencode-command.d.ts.map +1 -0
  28. package/dist/builtins/kinds/opencode-command.js +8 -0
  29. package/dist/builtins/kinds/opencode-command.js.map +1 -0
  30. package/dist/builtins/kinds/opencode-plugin.js +1 -1
  31. package/dist/builtins/kinds/opencode-plugin.js.map +1 -1
  32. package/dist/builtins/kinds/opencode-tui-config.d.ts +3 -0
  33. package/dist/builtins/kinds/opencode-tui-config.d.ts.map +1 -0
  34. package/dist/builtins/kinds/opencode-tui-config.js +8 -0
  35. package/dist/builtins/kinds/opencode-tui-config.js.map +1 -0
  36. package/dist/builtins/tools/claude-code.d.ts.map +1 -1
  37. package/dist/builtins/tools/claude-code.js +7 -1
  38. package/dist/builtins/tools/claude-code.js.map +1 -1
  39. package/dist/builtins/tools/codex.d.ts.map +1 -1
  40. package/dist/builtins/tools/codex.js +10 -1
  41. package/dist/builtins/tools/codex.js.map +1 -1
  42. package/dist/builtins/tools/cursor.d.ts.map +1 -1
  43. package/dist/builtins/tools/cursor.js +7 -1
  44. package/dist/builtins/tools/cursor.js.map +1 -1
  45. package/dist/builtins/tools/opencode.d.ts.map +1 -1
  46. package/dist/builtins/tools/opencode.js +16 -0
  47. package/dist/builtins/tools/opencode.js.map +1 -1
  48. package/dist/builtins/tools/pi.d.ts.map +1 -1
  49. package/dist/builtins/tools/pi.js +2 -1
  50. package/dist/builtins/tools/pi.js.map +1 -1
  51. package/dist/cli/commands/activate.d.ts.map +1 -1
  52. package/dist/cli/commands/activate.js +9 -0
  53. package/dist/cli/commands/activate.js.map +1 -1
  54. package/dist/cli/commands/diff.d.ts +10 -0
  55. package/dist/cli/commands/diff.d.ts.map +1 -1
  56. package/dist/cli/commands/diff.js +71 -30
  57. package/dist/cli/commands/diff.js.map +1 -1
  58. package/dist/cli/commands/docs.d.ts.map +1 -1
  59. package/dist/cli/commands/docs.js +2 -1
  60. package/dist/cli/commands/docs.js.map +1 -1
  61. package/dist/cli/commands/doctor.d.ts.map +1 -1
  62. package/dist/cli/commands/doctor.js +10 -0
  63. package/dist/cli/commands/doctor.js.map +1 -1
  64. package/dist/cli/commands/info.d.ts +10 -0
  65. package/dist/cli/commands/info.d.ts.map +1 -1
  66. package/dist/cli/commands/info.js +45 -1
  67. package/dist/cli/commands/info.js.map +1 -1
  68. package/dist/cli/commands/init.d.ts.map +1 -1
  69. package/dist/cli/commands/init.js +5 -0
  70. package/dist/cli/commands/init.js.map +1 -1
  71. package/dist/cli/commands/install.d.ts.map +1 -1
  72. package/dist/cli/commands/install.js +15 -3
  73. package/dist/cli/commands/install.js.map +1 -1
  74. package/dist/cli/commands/list.d.ts +18 -0
  75. package/dist/cli/commands/list.d.ts.map +1 -1
  76. package/dist/cli/commands/list.js +27 -0
  77. package/dist/cli/commands/list.js.map +1 -1
  78. package/dist/cli/commands/migrate.d.ts +31 -0
  79. package/dist/cli/commands/migrate.d.ts.map +1 -0
  80. package/dist/cli/commands/migrate.js +223 -0
  81. package/dist/cli/commands/migrate.js.map +1 -0
  82. package/dist/cli/commands/render-engine.d.ts +1 -0
  83. package/dist/cli/commands/render-engine.d.ts.map +1 -1
  84. package/dist/cli/commands/render-engine.js +10 -35
  85. package/dist/cli/commands/render-engine.js.map +1 -1
  86. package/dist/cli/commands/runtime.d.ts +21 -0
  87. package/dist/cli/commands/runtime.d.ts.map +1 -0
  88. package/dist/cli/commands/runtime.js +100 -0
  89. package/dist/cli/commands/runtime.js.map +1 -0
  90. package/dist/cli/commands/status.d.ts +10 -0
  91. package/dist/cli/commands/status.d.ts.map +1 -1
  92. package/dist/cli/commands/status.js +100 -2
  93. package/dist/cli/commands/status.js.map +1 -1
  94. package/dist/cli/commands/sync.d.ts.map +1 -1
  95. package/dist/cli/commands/sync.js +6 -0
  96. package/dist/cli/commands/sync.js.map +1 -1
  97. package/dist/cli/commands/tui.d.ts +3 -0
  98. package/dist/cli/commands/tui.d.ts.map +1 -0
  99. package/dist/cli/commands/tui.js +20 -0
  100. package/dist/cli/commands/tui.js.map +1 -0
  101. package/dist/cli/index.d.ts.map +1 -1
  102. package/dist/cli/index.js +6 -0
  103. package/dist/cli/index.js.map +1 -1
  104. package/dist/core/agent-migration.d.ts +13 -0
  105. package/dist/core/agent-migration.d.ts.map +1 -0
  106. package/dist/core/agent-migration.js +397 -0
  107. package/dist/core/agent-migration.js.map +1 -0
  108. package/dist/core/import-discovery.d.ts.map +1 -1
  109. package/dist/core/import-discovery.js +27 -0
  110. package/dist/core/import-discovery.js.map +1 -1
  111. package/dist/core/kindLoader.d.ts +10 -4
  112. package/dist/core/kindLoader.d.ts.map +1 -1
  113. package/dist/core/kindLoader.js +22 -10
  114. package/dist/core/kindLoader.js.map +1 -1
  115. package/dist/core/registry.d.ts +4 -2
  116. package/dist/core/registry.d.ts.map +1 -1
  117. package/dist/core/registry.js.map +1 -1
  118. package/dist/core/render.d.ts.map +1 -1
  119. package/dist/core/render.js +62 -13
  120. package/dist/core/render.js.map +1 -1
  121. package/dist/core/resolve.d.ts +18 -2
  122. package/dist/core/resolve.d.ts.map +1 -1
  123. package/dist/core/resolve.js +50 -27
  124. package/dist/core/resolve.js.map +1 -1
  125. package/dist/core/runtime.d.ts +79 -0
  126. package/dist/core/runtime.d.ts.map +1 -0
  127. package/dist/core/runtime.js +345 -0
  128. package/dist/core/runtime.js.map +1 -0
  129. package/dist/core/types.d.ts.map +1 -1
  130. package/dist/integrations/opencode-runtime/bridge.d.ts +17 -0
  131. package/dist/integrations/opencode-runtime/bridge.d.ts.map +1 -0
  132. package/dist/integrations/opencode-runtime/bridge.js +60 -0
  133. package/dist/integrations/opencode-runtime/bridge.js.map +1 -0
  134. package/dist/integrations/opencode-runtime/command.d.ts +4 -0
  135. package/dist/integrations/opencode-runtime/command.d.ts.map +1 -0
  136. package/dist/integrations/opencode-runtime/command.js +200 -0
  137. package/dist/integrations/opencode-runtime/command.js.map +1 -0
  138. package/dist/integrations/opencode-runtime/index.d.ts +6 -0
  139. package/dist/integrations/opencode-runtime/index.d.ts.map +1 -0
  140. package/dist/integrations/opencode-runtime/index.js +5 -0
  141. package/dist/integrations/opencode-runtime/index.js.map +1 -0
  142. package/dist/integrations/opencode-runtime/plugin.d.ts +59 -0
  143. package/dist/integrations/opencode-runtime/plugin.d.ts.map +1 -0
  144. package/dist/integrations/opencode-runtime/plugin.js +238 -0
  145. package/dist/integrations/opencode-runtime/plugin.js.map +1 -0
  146. package/dist/integrations/opencode-runtime/state.d.ts +8 -0
  147. package/dist/integrations/opencode-runtime/state.d.ts.map +1 -0
  148. package/dist/integrations/opencode-runtime/state.js +27 -0
  149. package/dist/integrations/opencode-runtime/state.js.map +1 -0
  150. package/dist/integrations/opencode-runtime/types.d.ts +38 -0
  151. package/dist/integrations/opencode-runtime/types.d.ts.map +1 -0
  152. package/dist/integrations/opencode-runtime/types.js +2 -0
  153. package/dist/integrations/opencode-runtime/types.js.map +1 -0
  154. package/dist/lib/artifact-paths.d.ts.map +1 -1
  155. package/dist/lib/artifact-paths.js +4 -0
  156. package/dist/lib/artifact-paths.js.map +1 -1
  157. package/dist/lib/artifact-table.d.ts.map +1 -1
  158. package/dist/lib/artifact-table.js +13 -1
  159. package/dist/lib/artifact-table.js.map +1 -1
  160. package/dist/lib/gitignore.d.ts.map +1 -1
  161. package/dist/lib/gitignore.js +4 -0
  162. package/dist/lib/gitignore.js.map +1 -1
  163. package/dist/tui/core/actions.d.ts +9 -0
  164. package/dist/tui/core/actions.d.ts.map +1 -0
  165. package/dist/tui/core/actions.js +70 -0
  166. package/dist/tui/core/actions.js.map +1 -0
  167. package/dist/tui/core/data.d.ts +41 -0
  168. package/dist/tui/core/data.d.ts.map +1 -0
  169. package/dist/tui/core/data.js +150 -0
  170. package/dist/tui/core/data.js.map +1 -0
  171. package/dist/tui/core/host.d.ts +21 -0
  172. package/dist/tui/core/host.d.ts.map +1 -0
  173. package/dist/tui/core/host.js +2 -0
  174. package/dist/tui/core/host.js.map +1 -0
  175. package/dist/tui/core/intent.d.ts +80 -0
  176. package/dist/tui/core/intent.d.ts.map +1 -0
  177. package/dist/tui/core/intent.js +2 -0
  178. package/dist/tui/core/intent.js.map +1 -0
  179. package/dist/tui/core/keymap.d.ts +15 -0
  180. package/dist/tui/core/keymap.d.ts.map +1 -0
  181. package/dist/tui/core/keymap.js +36 -0
  182. package/dist/tui/core/keymap.js.map +1 -0
  183. package/dist/tui/core/model.d.ts +53 -0
  184. package/dist/tui/core/model.d.ts.map +1 -0
  185. package/dist/tui/core/model.js +33 -0
  186. package/dist/tui/core/model.js.map +1 -0
  187. package/dist/tui/core/theme.d.ts +15 -0
  188. package/dist/tui/core/theme.d.ts.map +1 -0
  189. package/dist/tui/core/theme.js +11 -0
  190. package/dist/tui/core/theme.js.map +1 -0
  191. package/dist/tui/core/update.d.ts +8 -0
  192. package/dist/tui/core/update.d.ts.map +1 -0
  193. package/dist/tui/core/update.js +192 -0
  194. package/dist/tui/core/update.js.map +1 -0
  195. package/dist/tui/core/view.d.ts +4 -0
  196. package/dist/tui/core/view.d.ts.map +1 -0
  197. package/dist/tui/core/view.js +150 -0
  198. package/dist/tui/core/view.js.map +1 -0
  199. package/dist/tui/core/viewspec.d.ts +44 -0
  200. package/dist/tui/core/viewspec.d.ts.map +1 -0
  201. package/dist/tui/core/viewspec.js +2 -0
  202. package/dist/tui/core/viewspec.js.map +1 -0
  203. package/dist/tui/hosts/_probe/embed-entry.d.ts +5 -0
  204. package/dist/tui/hosts/_probe/embed-entry.d.ts.map +1 -0
  205. package/dist/tui/hosts/_probe/embed-entry.js +8 -0
  206. package/dist/tui/hosts/_probe/embed-entry.js.map +1 -0
  207. package/dist/tui/hosts/pi/embed-entry.d.ts +3 -0
  208. package/dist/tui/hosts/pi/embed-entry.d.ts.map +1 -0
  209. package/dist/tui/hosts/pi/embed-entry.js +219 -0
  210. package/dist/tui/hosts/pi/embed-entry.js.map +1 -0
  211. package/dist/tui/hosts/pi/inject.d.ts +32 -0
  212. package/dist/tui/hosts/pi/inject.d.ts.map +1 -0
  213. package/dist/tui/hosts/pi/inject.js +53 -0
  214. package/dist/tui/hosts/pi/inject.js.map +1 -0
  215. package/dist/tui/hosts/standalone.d.ts +2 -0
  216. package/dist/tui/hosts/standalone.d.ts.map +1 -0
  217. package/dist/tui/hosts/standalone.js +145 -0
  218. package/dist/tui/hosts/standalone.js.map +1 -0
  219. package/dist/tui/skins/pi-tui/input.d.ts +5 -0
  220. package/dist/tui/skins/pi-tui/input.d.ts.map +1 -0
  221. package/dist/tui/skins/pi-tui/input.js +38 -0
  222. package/dist/tui/skins/pi-tui/input.js.map +1 -0
  223. package/dist/tui/skins/pi-tui/pi-theme-adapter.d.ts +4 -0
  224. package/dist/tui/skins/pi-tui/pi-theme-adapter.d.ts.map +1 -0
  225. package/dist/tui/skins/pi-tui/pi-theme-adapter.js +27 -0
  226. package/dist/tui/skins/pi-tui/pi-theme-adapter.js.map +1 -0
  227. package/dist/tui/skins/pi-tui/render.d.ts +35 -0
  228. package/dist/tui/skins/pi-tui/render.d.ts.map +1 -0
  229. package/dist/tui/skins/pi-tui/render.js +154 -0
  230. package/dist/tui/skins/pi-tui/render.js.map +1 -0
  231. package/dist/tui/skins/pi-tui/theme.d.ts +10 -0
  232. package/dist/tui/skins/pi-tui/theme.d.ts.map +1 -0
  233. package/dist/tui/skins/pi-tui/theme.js +58 -0
  234. package/dist/tui/skins/pi-tui/theme.js.map +1 -0
  235. package/docs/authoring.md +119 -2
  236. package/docs/commands.md +34 -0
  237. package/docs/compatibility.md +15 -8
  238. package/docs/concepts.md +10 -7
  239. package/docs/examples/opencode-runtime-plugin.ts +143 -0
  240. package/docs/index.md +1 -0
  241. package/docs/runtime.md +107 -0
  242. package/docs/troubleshooting.md +18 -1
  243. package/docs/tui-architecture.md +501 -0
  244. package/package.json +11 -2
@@ -0,0 +1,232 @@
1
+ import * as path from "node:path";
2
+ import { parseMarkdownFrontmatter, serializeMarkdownFrontmatter, } from "../core/config.js";
3
+ import { readFile } from "../lib/fs.js";
4
+ const MARKDOWN_NATIVE_KEYS = {
5
+ opencode: new Set([
6
+ "description",
7
+ "mode",
8
+ "model",
9
+ "variant",
10
+ "reasoningEffort",
11
+ "temperature",
12
+ "top_p",
13
+ "steps",
14
+ "disable",
15
+ "hidden",
16
+ "color",
17
+ "permission",
18
+ ]),
19
+ cursor: new Set([
20
+ "name",
21
+ "description",
22
+ "model",
23
+ "readonly",
24
+ "is_background",
25
+ ]),
26
+ "claude-code": new Set([
27
+ "name",
28
+ "description",
29
+ "tools",
30
+ "disallowedTools",
31
+ "model",
32
+ "permissionMode",
33
+ "maxTurns",
34
+ "skills",
35
+ "mcpServers",
36
+ "hooks",
37
+ "memory",
38
+ "background",
39
+ "effort",
40
+ "isolation",
41
+ "color",
42
+ "initialPrompt",
43
+ ]),
44
+ };
45
+ function isRecord(value) {
46
+ return !!value && typeof value === "object" && !Array.isArray(value);
47
+ }
48
+ function cloneRecord(value) {
49
+ return { ...value };
50
+ }
51
+ function getAgentName(item) {
52
+ if (!item)
53
+ return "agent";
54
+ return path.basename(item.sourcePath, path.extname(item.sourcePath));
55
+ }
56
+ function getTargets(frontmatter) {
57
+ return isRecord(frontmatter.targets) ? frontmatter.targets : {};
58
+ }
59
+ function getTargetOverlay(frontmatter, target) {
60
+ const targets = getTargets(frontmatter);
61
+ const overlay = targets[target];
62
+ return isRecord(overlay) ? overlay : {};
63
+ }
64
+ function omitLoadoutsOnlyFields(frontmatter) {
65
+ const result = cloneRecord(frontmatter);
66
+ delete result.targets;
67
+ return result;
68
+ }
69
+ function mergePermission(frontmatter, permission) {
70
+ const existing = isRecord(frontmatter.permission) ? frontmatter.permission : {};
71
+ frontmatter.permission = { ...existing, ...permission };
72
+ }
73
+ function removeUndefined(frontmatter) {
74
+ return Object.fromEntries(Object.entries(frontmatter).filter(([, value]) => value !== undefined));
75
+ }
76
+ function filterKnownKeys(frontmatter, target) {
77
+ const allowed = MARKDOWN_NATIVE_KEYS[target];
78
+ return Object.fromEntries(Object.entries(frontmatter).filter(([key]) => allowed.has(key)));
79
+ }
80
+ function canSymlinkMarkdownAgent(raw, target) {
81
+ const { frontmatter } = parseMarkdownFrontmatter(raw);
82
+ if (Object.keys(getTargets(frontmatter)).length > 0)
83
+ return false;
84
+ const allowed = MARKDOWN_NATIVE_KEYS[target];
85
+ if (!Object.keys(frontmatter).every((key) => allowed.has(key)))
86
+ return false;
87
+ if (target === "opencode") {
88
+ return typeof frontmatter.description === "string" && frontmatter.description.length > 0;
89
+ }
90
+ if (target === "claude-code") {
91
+ return (typeof frontmatter.name === "string" &&
92
+ frontmatter.name.length > 0 &&
93
+ typeof frontmatter.description === "string" &&
94
+ frontmatter.description.length > 0);
95
+ }
96
+ return true;
97
+ }
98
+ export function selectAgentMarkdownMode(target) {
99
+ return (item) => {
100
+ const raw = readFile(item.sourcePath);
101
+ return canSymlinkMarkdownAgent(raw, target) ? "symlink" : "copy";
102
+ };
103
+ }
104
+ function buildOpenCodeFrontmatter(frontmatter, item) {
105
+ const overlay = getTargetOverlay(frontmatter, "opencode");
106
+ const result = filterKnownKeys(omitLoadoutsOnlyFields(frontmatter), "opencode");
107
+ if (result.model === "inherit")
108
+ delete result.model;
109
+ if (typeof result.description !== "string" || result.description.length === 0) {
110
+ result.description = `${getAgentName(item)} agent`;
111
+ }
112
+ const merged = { ...result, ...overlay };
113
+ if (frontmatter.readonly === true) {
114
+ mergePermission(merged, { edit: "deny" });
115
+ }
116
+ return removeUndefined(merged);
117
+ }
118
+ function buildCursorFrontmatter(frontmatter, item) {
119
+ const overlay = getTargetOverlay(frontmatter, "cursor");
120
+ const result = filterKnownKeys(omitLoadoutsOnlyFields(frontmatter), "cursor");
121
+ result.name = typeof result.name === "string" ? result.name : getAgentName(item);
122
+ if (typeof result.description !== "string" || result.description.length === 0) {
123
+ result.description = `${result.name} agent`;
124
+ }
125
+ if (frontmatter.background !== undefined && result.is_background === undefined) {
126
+ result.is_background = frontmatter.background;
127
+ }
128
+ return removeUndefined({ ...result, ...overlay });
129
+ }
130
+ function buildClaudeFrontmatter(frontmatter, item) {
131
+ const overlay = getTargetOverlay(frontmatter, "claude-code");
132
+ const result = filterKnownKeys(omitLoadoutsOnlyFields(frontmatter), "claude-code");
133
+ result.name = typeof result.name === "string" ? result.name : getAgentName(item);
134
+ if (typeof result.description !== "string" || result.description.length === 0) {
135
+ result.description = `${result.name} agent`;
136
+ }
137
+ if (frontmatter.readonly === true && result.permissionMode === undefined) {
138
+ result.permissionMode = "plan";
139
+ }
140
+ if (frontmatter.background !== undefined && result.background === undefined) {
141
+ result.background = frontmatter.background;
142
+ }
143
+ return removeUndefined({ ...result, ...overlay });
144
+ }
145
+ export function renderOpenCodeAgent(raw, item) {
146
+ const { frontmatter, body } = parseMarkdownFrontmatter(raw);
147
+ return serializeMarkdownFrontmatter(buildOpenCodeFrontmatter(frontmatter, item), body);
148
+ }
149
+ export function renderCursorAgent(raw, item) {
150
+ const { frontmatter, body } = parseMarkdownFrontmatter(raw);
151
+ return serializeMarkdownFrontmatter(buildCursorFrontmatter(frontmatter, item), body);
152
+ }
153
+ export function renderClaudeAgent(raw, item) {
154
+ const { frontmatter, body } = parseMarkdownFrontmatter(raw);
155
+ return serializeMarkdownFrontmatter(buildClaudeFrontmatter(frontmatter, item), body);
156
+ }
157
+ function buildCodexConfig(frontmatter, body, item) {
158
+ const overlay = getTargetOverlay(frontmatter, "codex");
159
+ const result = {
160
+ name: typeof frontmatter.name === "string" ? frontmatter.name : getAgentName(item),
161
+ description: typeof frontmatter.description === "string" && frontmatter.description.length > 0
162
+ ? frontmatter.description
163
+ : `${getAgentName(item)} agent`,
164
+ developer_instructions: body.trim(),
165
+ };
166
+ if (typeof frontmatter.model === "string" && frontmatter.model !== "inherit") {
167
+ result.model = frontmatter.model;
168
+ }
169
+ if (frontmatter.readonly === true) {
170
+ result.sandbox_mode = "read-only";
171
+ }
172
+ return removeUndefined({ ...result, ...overlay });
173
+ }
174
+ function isScalar(value) {
175
+ return value === null || ["string", "number", "boolean"].includes(typeof value);
176
+ }
177
+ function formatTomlString(value) {
178
+ if (value.includes("\n")) {
179
+ return `"""\n${value.replaceAll('"""', '\\"\\"\\"')}\n"""`;
180
+ }
181
+ return JSON.stringify(value);
182
+ }
183
+ function formatTomlValue(value) {
184
+ if (typeof value === "string")
185
+ return formatTomlString(value);
186
+ if (typeof value === "number" || typeof value === "boolean")
187
+ return String(value);
188
+ if (value === null)
189
+ return '""';
190
+ if (Array.isArray(value) && value.every(isScalar)) {
191
+ return `[${value.map(formatTomlValue).join(", ")}]`;
192
+ }
193
+ throw new Error("Unsupported TOML value in agent config.");
194
+ }
195
+ function renderTomlObject(value, prefix = []) {
196
+ const lines = [];
197
+ const nested = [];
198
+ const objectArrays = [];
199
+ for (const [key, entry] of Object.entries(value)) {
200
+ if (isScalar(entry) || (Array.isArray(entry) && entry.every(isScalar))) {
201
+ lines.push(`${key} = ${formatTomlValue(entry)}`);
202
+ continue;
203
+ }
204
+ if (Array.isArray(entry) && entry.every(isRecord)) {
205
+ objectArrays.push([key, entry]);
206
+ continue;
207
+ }
208
+ if (isRecord(entry)) {
209
+ nested.push([key, entry]);
210
+ continue;
211
+ }
212
+ throw new Error(`Unsupported TOML value for key "${key}" in agent config.`);
213
+ }
214
+ for (const [key, entry] of nested) {
215
+ lines.push("");
216
+ lines.push(`[${[...prefix, key].join(".")}]`);
217
+ lines.push(...renderTomlObject(entry, [...prefix, key]));
218
+ }
219
+ for (const [key, entries] of objectArrays) {
220
+ for (const entry of entries) {
221
+ lines.push("");
222
+ lines.push(`[[${[...prefix, key].join(".")}]]`);
223
+ lines.push(...renderTomlObject(entry, [...prefix, key]));
224
+ }
225
+ }
226
+ return lines;
227
+ }
228
+ export function renderCodexAgent(raw, item) {
229
+ const { frontmatter, body } = parseMarkdownFrontmatter(raw);
230
+ return `${renderTomlObject(buildCodexConfig(frontmatter, body, item)).join("\n")}\n`;
231
+ }
232
+ //# sourceMappingURL=agent-transforms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-transforms.js","sourceRoot":"","sources":["../../src/builtins/agent-transforms.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/builtins/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAmBnD,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,+DAMrB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAgClE,uDAAuD;AACvD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CAsBrD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/builtins/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AA6BnD,oEAAoE;AACpE,eAAO,MAAM,kBAAkB,+DAMrB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAgClE,uDAAuD;AACvD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CA8BrD"}
@@ -9,16 +9,21 @@ import { parseMarkdownFrontmatter, serializeMarkdownFrontmatter, } from "../core
9
9
  import { ruleKind } from "./kinds/rule.js";
10
10
  import { skillKind } from "./kinds/skill.js";
11
11
  import { instructionKind } from "./kinds/instruction.js";
12
+ import { agentKind } from "./kinds/agent.js";
12
13
  import { promptKind } from "./kinds/prompt.js";
13
14
  import { extensionKind } from "./kinds/extension.js";
15
+ import { extensionDirKind } from "./kinds/extension-dir.js";
14
16
  import { themeKind } from "./kinds/theme.js";
15
17
  import { opencodeConfigKind } from "./kinds/opencode-config.js";
18
+ import { opencodeTuiConfigKind } from "./kinds/opencode-tui-config.js";
16
19
  import { opencodePluginKind } from "./kinds/opencode-plugin.js";
20
+ import { opencodeCommandKind } from "./kinds/opencode-command.js";
17
21
  import { claudeCodeTool } from "./tools/claude-code.js";
18
22
  import { cursorTool } from "./tools/cursor.js";
19
23
  import { opencodeTool } from "./tools/opencode.js";
20
24
  import { codexTool } from "./tools/codex.js";
21
25
  import { piTool } from "./tools/pi.js";
26
+ import { renderClaudeAgent, renderCodexAgent, renderCursorAgent, renderOpenCodeAgent, } from "./agent-transforms.js";
22
27
  /** Names of the built-in tools, for use in defaults and display. */
23
28
  export const BUILTIN_TOOL_NAMES = [
24
29
  "claude-code",
@@ -56,15 +61,23 @@ export function registerBuiltins(api) {
56
61
  api.registerKind(ruleKind);
57
62
  api.registerKind(skillKind);
58
63
  api.registerKind(instructionKind);
64
+ api.registerKind(agentKind);
59
65
  api.registerKind(promptKind);
60
66
  api.registerKind(extensionKind);
67
+ api.registerKind(extensionDirKind);
61
68
  api.registerKind(themeKind);
62
69
  api.registerKind(opencodeConfigKind);
70
+ api.registerKind(opencodeTuiConfigKind);
63
71
  api.registerKind(opencodePluginKind);
72
+ api.registerKind(opencodeCommandKind);
64
73
  // Named transforms — referenced by name in tool target specs.
65
74
  api.registerTransform("cursor-rule-frontmatter", translateRuleFrontmatter);
66
75
  api.registerTransform("opencode-rule-frontmatter", translateRuleFrontmatter);
67
76
  api.registerTransform("opencode-skill-frontmatter", translateOpenCodeSkillFrontmatter);
77
+ api.registerTransform("opencode-agent-frontmatter", renderOpenCodeAgent);
78
+ api.registerTransform("cursor-agent-frontmatter", renderCursorAgent);
79
+ api.registerTransform("claude-agent-frontmatter", renderClaudeAgent);
80
+ api.registerTransform("codex-agent-toml", renderCodexAgent);
68
81
  // Tools
69
82
  api.registerTool(claudeCodeTool);
70
83
  api.registerTool(cursorTool);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/builtins/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/builtins/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { KindSpec } from "../../core/registry.js";
2
+ export declare const agentKind: KindSpec;
3
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/builtins/kinds/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,eAAO,MAAM,SAAS,EAAE,QAMvB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export const agentKind = {
2
+ id: "agent",
3
+ description: "Specialized agent and subagent definitions.",
4
+ detect: (rel) => rel.startsWith("agents/") && rel.endsWith(".md"),
5
+ layout: "file",
6
+ defaultTargets: {},
7
+ };
8
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../src/builtins/kinds/agent.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAa;IACjC,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,6CAA6C;IAC1D,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;IACjE,MAAM,EAAE,MAAM;IACd,cAAc,EAAE,EAAE;CACnB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { KindSpec } from "../../core/registry.js";
2
+ export declare const extensionDirKind: KindSpec;
3
+ //# sourceMappingURL=extension-dir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-dir.d.ts","sourceRoot":"","sources":["../../../src/builtins/kinds/extension-dir.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,eAAO,MAAM,gBAAgB,EAAE,QAM9B,CAAC"}
@@ -0,0 +1,8 @@
1
+ export const extensionDirKind = {
2
+ id: "extension-dir",
3
+ description: "Directory-based runtime extensions with package metadata.",
4
+ detect: (rel) => rel.startsWith("extensions/") && !rel.endsWith(".ts") && !rel.endsWith(".js"),
5
+ layout: "dir",
6
+ defaultTargets: {},
7
+ };
8
+ //# sourceMappingURL=extension-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-dir.js","sourceRoot":"","sources":["../../../src/builtins/kinds/extension-dir.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAa;IACxC,EAAE,EAAE,eAAe;IACnB,WAAW,EAAE,2DAA2D;IACxE,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC9F,MAAM,EAAE,KAAK;IACb,cAAc,EAAE,EAAE;CACnB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { KindSpec } from "../../core/registry.js";
2
+ export declare const opencodeCommandKind: KindSpec;
3
+ //# sourceMappingURL=opencode-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-command.d.ts","sourceRoot":"","sources":["../../../src/builtins/kinds/opencode-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,eAAO,MAAM,mBAAmB,EAAE,QAMjC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export const opencodeCommandKind = {
2
+ id: "opencode-command",
3
+ description: "OpenCode slash command markdown files.",
4
+ detect: (rel) => rel.startsWith("opencode/commands/") && rel.endsWith(".md"),
5
+ layout: "file",
6
+ defaultTargets: {},
7
+ };
8
+ //# sourceMappingURL=opencode-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-command.js","sourceRoot":"","sources":["../../../src/builtins/kinds/opencode-command.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,mBAAmB,GAAa;IAC3C,EAAE,EAAE,kBAAkB;IACtB,WAAW,EAAE,wCAAwC;IACrD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC5E,MAAM,EAAE,MAAM;IACd,cAAc,EAAE,EAAE;CACnB,CAAC"}
@@ -2,7 +2,7 @@ export const opencodePluginKind = {
2
2
  id: "opencode-plugin",
3
3
  description: "Local OpenCode plugin modules.",
4
4
  detect: (rel) => rel.startsWith("opencode/plugins/") &&
5
- (rel.endsWith(".ts") || rel.endsWith(".js")),
5
+ (rel.endsWith(".ts") || rel.endsWith(".tsx") || rel.endsWith(".js")),
6
6
  layout: "file",
7
7
  defaultTargets: {},
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"opencode-plugin.js","sourceRoot":"","sources":["../../../src/builtins/kinds/opencode-plugin.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAa;IAC1C,EAAE,EAAE,iBAAiB;IACrB,WAAW,EAAE,gCAAgC;IAC7C,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CACd,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC;QACnC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,EAAE,MAAM;IACd,cAAc,EAAE,EAAE;CACnB,CAAC"}
1
+ {"version":3,"file":"opencode-plugin.js","sourceRoot":"","sources":["../../../src/builtins/kinds/opencode-plugin.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,kBAAkB,GAAa;IAC1C,EAAE,EAAE,iBAAiB;IACrB,WAAW,EAAE,gCAAgC;IAC7C,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CACd,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC;QACnC,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtE,MAAM,EAAE,MAAM;IACd,cAAc,EAAE,EAAE;CACnB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { KindSpec } from "../../core/registry.js";
2
+ export declare const opencodeTuiConfigKind: KindSpec;
3
+ //# sourceMappingURL=opencode-tui-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-tui-config.d.ts","sourceRoot":"","sources":["../../../src/builtins/kinds/opencode-tui-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,eAAO,MAAM,qBAAqB,EAAE,QAMnC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export const opencodeTuiConfigKind = {
2
+ id: "opencode-tui-config",
3
+ description: "Whole-file OpenCode TUI configuration.",
4
+ detect: (rel) => rel === "opencode/tui.json" || rel === "opencode/tui.jsonc",
5
+ layout: "file",
6
+ defaultTargets: {},
7
+ };
8
+ //# sourceMappingURL=opencode-tui-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-tui-config.js","sourceRoot":"","sources":["../../../src/builtins/kinds/opencode-tui-config.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAa;IAC7C,EAAE,EAAE,qBAAqB;IACzB,WAAW,EAAE,wCAAwC;IACrD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,mBAAmB,IAAI,GAAG,KAAK,oBAAoB;IAC5E,MAAM,EAAE,MAAM;IACd,cAAc,EAAE,EAAE;CACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/builtins/tools/claude-code.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAavD,eAAO,MAAM,cAAc,EAAE,QAgB5B,CAAC"}
1
+ {"version":3,"file":"claude-code.d.ts","sourceRoot":"","sources":["../../../src/builtins/tools/claude-code.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAcvD,eAAO,MAAM,cAAc,EAAE,QAqB5B,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import * as path from "node:path";
2
2
  import * as os from "node:os";
3
+ import { selectAgentMarkdownMode } from "../agent-transforms.js";
3
4
  /**
4
5
  * Claude Code reads CLAUDE.md (not AGENTS.md). We generate a thin wrapper
5
6
  * that references the canonical AGENTS.md so both files stay in sync.
@@ -16,7 +17,7 @@ export const claudeCodeTool = {
16
17
  global: path.join(os.homedir(), ".claude"),
17
18
  project: ".claude",
18
19
  },
19
- supports: ["rule", "skill", "instruction"],
20
+ supports: ["rule", "skill", "instruction", "agent"],
20
21
  targets: {
21
22
  rule: { path: "{base}/rules/{stem}.md" },
22
23
  skill: { path: "{base}/skills/{name}" },
@@ -25,6 +26,11 @@ export const claudeCodeTool = {
25
26
  mode: "generate",
26
27
  generate: () => CLAUDE_WRAPPER,
27
28
  },
29
+ agent: {
30
+ path: "{base}/agents/{stem}.md",
31
+ mode: selectAgentMarkdownMode("claude-code"),
32
+ transform: "claude-agent-frontmatter",
33
+ },
28
34
  },
29
35
  };
30
36
  //# sourceMappingURL=claude-code.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/builtins/tools/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9B;;;GAGG;AACH,MAAM,cAAc,GAAG;;;;;CAKtB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAa;IACtC,IAAI,EAAE,aAAa;IACnB,QAAQ,EAAE;QACR,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC;QAC1C,OAAO,EAAE,SAAS;KACnB;IACD,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC;IAC1C,OAAO,EAAE;QACP,IAAI,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE;QACxC,KAAK,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE;QACvC,WAAW,EAAE;YACX,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE;YAC1D,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc;SAC/B;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../../src/builtins/tools/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE;;;GAGG;AACH,MAAM,cAAc,GAAG;;;;;CAKtB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAa;IACtC,IAAI,EAAE,aAAa;IACnB,QAAQ,EAAE;QACR,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC;QAC1C,OAAO,EAAE,SAAS;KACnB;IACD,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC;IACnD,OAAO,EAAE;QACP,IAAI,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE;QACxC,KAAK,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE;QACvC,WAAW,EAAE;YACX,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE;YAC1D,IAAI,EAAE,UAAU;YAChB,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc;SAC/B;QACD,KAAK,EAAE;YACL,IAAI,EAAE,yBAAyB;YAC/B,IAAI,EAAE,uBAAuB,CAAC,aAAa,CAAC;YAC5C,SAAS,EAAE,0BAA0B;SACtC;KACF;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/builtins/tools/codex.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,eAAO,MAAM,SAAS,EAAE,QAavB,CAAC"}
1
+ {"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../../src/builtins/tools/codex.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,eAAO,MAAM,SAAS,EAAE,QAsBvB,CAAC"}
@@ -6,12 +6,21 @@ export const codexTool = {
6
6
  global: path.join(os.homedir(), ".agents"),
7
7
  project: ".agents",
8
8
  },
9
- supports: ["skill", "instruction"],
9
+ supports: ["skill", "instruction", "agent"],
10
10
  targets: {
11
11
  skill: { path: "{base}/skills/{name}" },
12
12
  instruction: {
13
13
  path: { project: "AGENTS.md", global: "{home}/AGENTS.md" },
14
14
  },
15
+ agent: {
16
+ path: {
17
+ project: ".codex/agents/{stem}.toml",
18
+ global: "{home}/.codex/agents/{stem}.toml",
19
+ },
20
+ ext: ".toml",
21
+ mode: "copy",
22
+ transform: "codex-agent-toml",
23
+ },
15
24
  },
16
25
  };
17
26
  //# sourceMappingURL=codex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/builtins/tools/codex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9B,MAAM,CAAC,MAAM,SAAS,GAAa;IACjC,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE;QACR,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC;QAC1C,OAAO,EAAE,SAAS;KACnB;IACD,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC;IAClC,OAAO,EAAE;QACP,KAAK,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE;QACvC,WAAW,EAAE;YACX,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE;SAC3D;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../../src/builtins/tools/codex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9B,MAAM,CAAC,MAAM,SAAS,GAAa;IACjC,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE;QACR,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC;QAC1C,OAAO,EAAE,SAAS;KACnB;IACD,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC;IAC3C,OAAO,EAAE;QACP,KAAK,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE;QACvC,WAAW,EAAE;YACX,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE;SAC3D;QACD,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,OAAO,EAAE,2BAA2B;gBACpC,MAAM,EAAE,kCAAkC;aAC3C;YACD,GAAG,EAAE,OAAO;YACZ,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,kBAAkB;SAC9B;KACF;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../src/builtins/tools/cursor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,eAAO,MAAM,UAAU,EAAE,QAkBxB,CAAC"}
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../src/builtins/tools/cursor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGvD,eAAO,MAAM,UAAU,EAAE,QAuBxB,CAAC"}
@@ -1,12 +1,13 @@
1
1
  import * as path from "node:path";
2
2
  import * as os from "node:os";
3
+ import { selectAgentMarkdownMode } from "../agent-transforms.js";
3
4
  export const cursorTool = {
4
5
  name: "cursor",
5
6
  basePath: {
6
7
  global: path.join(os.homedir(), ".cursor"),
7
8
  project: ".cursor",
8
9
  },
9
- supports: ["rule", "skill", "instruction"],
10
+ supports: ["rule", "skill", "instruction", "agent"],
10
11
  targets: {
11
12
  // Cursor rules render canonical paths/activation with native aliases.
12
13
  rule: {
@@ -17,6 +18,11 @@ export const cursorTool = {
17
18
  instruction: {
18
19
  path: { project: "AGENTS.md", global: "{home}/AGENTS.md" },
19
20
  },
21
+ agent: {
22
+ path: "{base}/agents/{stem}.md",
23
+ mode: selectAgentMarkdownMode("cursor"),
24
+ transform: "cursor-agent-frontmatter",
25
+ },
20
26
  },
21
27
  };
22
28
  //# sourceMappingURL=cursor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../src/builtins/tools/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9B,MAAM,CAAC,MAAM,UAAU,GAAa;IAClC,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE;QACR,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC;QAC1C,OAAO,EAAE,SAAS;KACnB;IACD,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC;IAC1C,OAAO,EAAE;QACP,sEAAsE;QACtE,IAAI,EAAE;YACJ,IAAI,EAAE,yBAAyB;YAC/B,SAAS,EAAE,yBAAyB;SACrC;QACD,KAAK,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE;QACvC,WAAW,EAAE;YACX,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE;SAC3D;KACF;CACF,CAAC"}
1
+ {"version":3,"file":"cursor.js","sourceRoot":"","sources":["../../../src/builtins/tools/cursor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,CAAC,MAAM,UAAU,GAAa;IAClC,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE;QACR,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC;QAC1C,OAAO,EAAE,SAAS;KACnB;IACD,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC;IACnD,OAAO,EAAE;QACP,sEAAsE;QACtE,IAAI,EAAE;YACJ,IAAI,EAAE,yBAAyB;YAC/B,SAAS,EAAE,yBAAyB;SACrC;QACD,KAAK,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE;QACvC,WAAW,EAAE;YACX,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE;SAC3D;QACD,KAAK,EAAE;YACL,IAAI,EAAE,yBAAyB;YAC/B,IAAI,EAAE,uBAAuB,CAAC,QAAQ,CAAC;YACvC,SAAS,EAAE,0BAA0B;SACtC;KACF;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/builtins/tools/opencode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,eAAO,MAAM,YAAY,EAAE,QAiC1B,CAAC"}
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/builtins/tools/opencode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGvD,eAAO,MAAM,YAAY,EAAE,QAgD1B,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import * as path from "node:path";
2
2
  import * as os from "node:os";
3
+ import { selectAgentMarkdownMode } from "../agent-transforms.js";
3
4
  export const opencodeTool = {
4
5
  name: "opencode",
5
6
  basePath: {
@@ -10,8 +11,11 @@ export const opencodeTool = {
10
11
  "rule",
11
12
  "skill",
12
13
  "instruction",
14
+ "agent",
13
15
  "opencode-config",
16
+ "opencode-tui-config",
14
17
  "opencode-plugin",
18
+ "opencode-command",
15
19
  ],
16
20
  targets: {
17
21
  rule: {
@@ -25,13 +29,25 @@ export const opencodeTool = {
25
29
  instruction: {
26
30
  path: { project: "AGENTS.md", global: "{home}/AGENTS.md" },
27
31
  },
32
+ agent: {
33
+ path: "{base}/agents/{stem}.md",
34
+ mode: selectAgentMarkdownMode("opencode"),
35
+ transform: "opencode-agent-frontmatter",
36
+ },
28
37
  "opencode-config": {
29
38
  path: {
30
39
  project: "opencode{ext}",
31
40
  global: "{base}/opencode{ext}",
32
41
  },
33
42
  },
43
+ "opencode-tui-config": {
44
+ path: {
45
+ project: "{base}/tui{ext}",
46
+ global: "{base}/tui{ext}",
47
+ },
48
+ },
34
49
  "opencode-plugin": { path: "{base}/plugins/{stem}{ext}" },
50
+ "opencode-command": { path: "{base}/commands/{stem}.md" },
35
51
  },
36
52
  };
37
53
  //# sourceMappingURL=opencode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../src/builtins/tools/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9B,MAAM,CAAC,MAAM,YAAY,GAAa;IACpC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC;QACtD,OAAO,EAAE,WAAW;KACrB;IACD,QAAQ,EAAE;QACR,MAAM;QACN,OAAO;QACP,aAAa;QACb,iBAAiB;QACjB,iBAAiB;KAClB;IACD,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,IAAI,EAAE,wBAAwB;YAC9B,SAAS,EAAE,2BAA2B;SACvC;QACD,KAAK,EAAE;YACL,IAAI,EAAE,sBAAsB;YAC5B,SAAS,EAAE,4BAA4B;SACxC;QACD,WAAW,EAAE;YACX,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE;SAC3D;QACD,iBAAiB,EAAE;YACjB,IAAI,EAAE;gBACJ,OAAO,EAAE,eAAe;gBACxB,MAAM,EAAE,sBAAsB;aAC/B;SACF;QACD,iBAAiB,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE;KAC1D;CACF,CAAC"}
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../src/builtins/tools/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,CAAC,MAAM,YAAY,GAAa;IACpC,IAAI,EAAE,UAAU;IAChB,QAAQ,EAAE;QACR,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC;QACtD,OAAO,EAAE,WAAW;KACrB;IACD,QAAQ,EAAE;QACR,MAAM;QACN,OAAO;QACP,aAAa;QACb,OAAO;QACP,iBAAiB;QACjB,qBAAqB;QACrB,iBAAiB;QACjB,kBAAkB;KACnB;IACD,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,IAAI,EAAE,wBAAwB;YAC9B,SAAS,EAAE,2BAA2B;SACvC;QACD,KAAK,EAAE;YACL,IAAI,EAAE,sBAAsB;YAC5B,SAAS,EAAE,4BAA4B;SACxC;QACD,WAAW,EAAE;YACX,IAAI,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE;SAC3D;QACD,KAAK,EAAE;YACL,IAAI,EAAE,yBAAyB;YAC/B,IAAI,EAAE,uBAAuB,CAAC,UAAU,CAAC;YACzC,SAAS,EAAE,4BAA4B;SACxC;QACD,iBAAiB,EAAE;YACjB,IAAI,EAAE;gBACJ,OAAO,EAAE,eAAe;gBACxB,MAAM,EAAE,sBAAsB;aAC/B;SACF;QACD,qBAAqB,EAAE;YACrB,IAAI,EAAE;gBACJ,OAAO,EAAE,iBAAiB;gBAC1B,MAAM,EAAE,iBAAiB;aAC1B;SACF;QACD,iBAAiB,EAAE,EAAE,IAAI,EAAE,4BAA4B,EAAE;QACzD,kBAAkB,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE;KAC1D;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../../src/builtins/tools/pi.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,eAAO,MAAM,MAAM,EAAE,QAkBpB,CAAC"}
1
+ {"version":3,"file":"pi.d.ts","sourceRoot":"","sources":["../../../src/builtins/tools/pi.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,eAAO,MAAM,MAAM,EAAE,QAmBpB,CAAC"}
@@ -8,7 +8,7 @@ export const piTool = {
8
8
  },
9
9
  // Note: "rule" intentionally omitted - pi has no native rules concept.
10
10
  // Users can map rules to prompts if needed, or use a compatibility extension.
11
- supports: ["skill", "instruction", "prompt", "extension", "theme"],
11
+ supports: ["skill", "instruction", "prompt", "extension", "extension-dir", "theme"],
12
12
  targets: {
13
13
  skill: { path: "{base}/skills/{name}" },
14
14
  instruction: {
@@ -16,6 +16,7 @@ export const piTool = {
16
16
  },
17
17
  prompt: { path: "{base}/prompts/{stem}.md" },
18
18
  extension: { path: "{base}/extensions/{stem}.ts" },
19
+ "extension-dir": { path: "{base}/extensions/{stem}", mode: "copy" },
19
20
  theme: { path: "{base}/themes/{stem}.json" },
20
21
  },
21
22
  };