@12ui/design 0.2.85 → 0.2.87

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 (138) hide show
  1. package/README.md +37 -6
  2. package/SKILL.md +1 -1
  3. package/codex-plugin/assets/12ui-icon-dark.png +0 -0
  4. package/codex-plugin/assets/12ui-icon.png +0 -0
  5. package/codex-plugin/marketplace.json +20 -0
  6. package/codex-plugin/mcp.json +7 -0
  7. package/codex-plugin/plugin.json +157 -0
  8. package/dist/agent-command-runner.d.ts +41 -0
  9. package/dist/agent-command-runner.d.ts.map +1 -0
  10. package/dist/agent-command-runner.js +90 -0
  11. package/dist/agent-command-runner.js.map +1 -0
  12. package/dist/agent-plugin-step.d.ts +47 -0
  13. package/dist/agent-plugin-step.d.ts.map +1 -0
  14. package/dist/agent-plugin-step.js +190 -0
  15. package/dist/agent-plugin-step.js.map +1 -0
  16. package/dist/claude-plugin-installer.d.ts +61 -0
  17. package/dist/claude-plugin-installer.d.ts.map +1 -0
  18. package/dist/claude-plugin-installer.js +178 -0
  19. package/dist/claude-plugin-installer.js.map +1 -0
  20. package/dist/cli-run.d.ts.map +1 -1
  21. package/dist/cli-run.js +9 -1
  22. package/dist/cli-run.js.map +1 -1
  23. package/dist/cli-skill-command.d.ts +6 -0
  24. package/dist/cli-skill-command.d.ts.map +1 -1
  25. package/dist/cli-skill-command.js +39 -9
  26. package/dist/cli-skill-command.js.map +1 -1
  27. package/dist/cli-update-command.d.ts +22 -0
  28. package/dist/cli-update-command.d.ts.map +1 -0
  29. package/dist/cli-update-command.js +39 -0
  30. package/dist/cli-update-command.js.map +1 -0
  31. package/dist/cli-usage.d.ts.map +1 -1
  32. package/dist/cli-usage.js +1 -0
  33. package/dist/cli-usage.js.map +1 -1
  34. package/dist/codex-plugin-installer.d.ts +56 -0
  35. package/dist/codex-plugin-installer.d.ts.map +1 -0
  36. package/dist/codex-plugin-installer.js +239 -0
  37. package/dist/codex-plugin-installer.js.map +1 -0
  38. package/dist/codex-skill-config.d.ts +22 -0
  39. package/dist/codex-skill-config.d.ts.map +1 -1
  40. package/dist/codex-skill-config.js +84 -2
  41. package/dist/codex-skill-config.js.map +1 -1
  42. package/dist/mcp-slate-tool-defs.d.ts.map +1 -1
  43. package/dist/mcp-slate-tool-defs.js +2 -1
  44. package/dist/mcp-slate-tool-defs.js.map +1 -1
  45. package/dist/mcp-slate-ui-copy.d.ts +6 -0
  46. package/dist/mcp-slate-ui-copy.d.ts.map +1 -1
  47. package/dist/mcp-slate-ui-copy.js +3 -0
  48. package/dist/mcp-slate-ui-copy.js.map +1 -1
  49. package/dist/mcp-slate-ui-locales/de-DE.d.ts.map +1 -1
  50. package/dist/mcp-slate-ui-locales/de-DE.js +2 -0
  51. package/dist/mcp-slate-ui-locales/de-DE.js.map +1 -1
  52. package/dist/mcp-slate-ui-locales/es-419.d.ts.map +1 -1
  53. package/dist/mcp-slate-ui-locales/es-419.js +2 -0
  54. package/dist/mcp-slate-ui-locales/es-419.js.map +1 -1
  55. package/dist/mcp-slate-ui-locales/es-ES.d.ts.map +1 -1
  56. package/dist/mcp-slate-ui-locales/es-ES.js +2 -0
  57. package/dist/mcp-slate-ui-locales/es-ES.js.map +1 -1
  58. package/dist/mcp-slate-ui-locales/fr-FR.d.ts.map +1 -1
  59. package/dist/mcp-slate-ui-locales/fr-FR.js +2 -0
  60. package/dist/mcp-slate-ui-locales/fr-FR.js.map +1 -1
  61. package/dist/mcp-slate-ui-locales/hi-IN.d.ts.map +1 -1
  62. package/dist/mcp-slate-ui-locales/hi-IN.js +2 -0
  63. package/dist/mcp-slate-ui-locales/hi-IN.js.map +1 -1
  64. package/dist/mcp-slate-ui-locales/it-IT.d.ts.map +1 -1
  65. package/dist/mcp-slate-ui-locales/it-IT.js +2 -0
  66. package/dist/mcp-slate-ui-locales/it-IT.js.map +1 -1
  67. package/dist/mcp-slate-ui-locales/ja-JP.d.ts.map +1 -1
  68. package/dist/mcp-slate-ui-locales/ja-JP.js +2 -0
  69. package/dist/mcp-slate-ui-locales/ja-JP.js.map +1 -1
  70. package/dist/mcp-slate-ui-locales/ko-KR.d.ts.map +1 -1
  71. package/dist/mcp-slate-ui-locales/ko-KR.js +2 -0
  72. package/dist/mcp-slate-ui-locales/ko-KR.js.map +1 -1
  73. package/dist/mcp-slate-ui-locales/pt-BR.d.ts.map +1 -1
  74. package/dist/mcp-slate-ui-locales/pt-BR.js +2 -0
  75. package/dist/mcp-slate-ui-locales/pt-BR.js.map +1 -1
  76. package/dist/mcp-slate-ui-locales/zh-CN.d.ts.map +1 -1
  77. package/dist/mcp-slate-ui-locales/zh-CN.js +2 -0
  78. package/dist/mcp-slate-ui-locales/zh-CN.js.map +1 -1
  79. package/dist/mcp-slate-ui-locales/zh-TW.d.ts.map +1 -1
  80. package/dist/mcp-slate-ui-locales/zh-TW.js +2 -0
  81. package/dist/mcp-slate-ui-locales/zh-TW.js.map +1 -1
  82. package/dist/mcp-slate-ui-script-designs.d.ts.map +1 -1
  83. package/dist/mcp-slate-ui-script-designs.js +21 -0
  84. package/dist/mcp-slate-ui-script-designs.js.map +1 -1
  85. package/dist/mcp-slate-ui-script-remote.d.ts.map +1 -1
  86. package/dist/mcp-slate-ui-script-remote.js +1 -0
  87. package/dist/mcp-slate-ui-script-remote.js.map +1 -1
  88. package/dist/mcp-slate-ui-styles-designs.d.ts.map +1 -1
  89. package/dist/mcp-slate-ui-styles-designs.js +3 -0
  90. package/dist/mcp-slate-ui-styles-designs.js.map +1 -1
  91. package/dist/run-journal-commands.d.ts.map +1 -1
  92. package/dist/run-journal-commands.js +5 -0
  93. package/dist/run-journal-commands.js.map +1 -1
  94. package/dist/server.d.ts.map +1 -1
  95. package/dist/server.js +2 -1
  96. package/dist/server.js.map +1 -1
  97. package/dist/skill-clients.d.ts +2 -1
  98. package/dist/skill-clients.d.ts.map +1 -1
  99. package/dist/skill-clients.js +58 -1
  100. package/dist/skill-clients.js.map +1 -1
  101. package/dist/slate-captions-local.d.ts +2 -0
  102. package/dist/slate-captions-local.d.ts.map +1 -1
  103. package/dist/slate-captions-local.js +9 -3
  104. package/dist/slate-captions-local.js.map +1 -1
  105. package/dist/slate-ledger.d.ts +1 -1
  106. package/dist/slate-ledger.d.ts.map +1 -1
  107. package/dist/slate-retry.d.ts +22 -0
  108. package/dist/slate-retry.d.ts.map +1 -0
  109. package/dist/slate-retry.js +49 -0
  110. package/dist/slate-retry.js.map +1 -0
  111. package/dist/slate-round-runner.d.ts.map +1 -1
  112. package/dist/slate-round-runner.js +2 -1
  113. package/dist/slate-round-runner.js.map +1 -1
  114. package/dist/slate-run-action.d.ts.map +1 -1
  115. package/dist/slate-run-action.js +29 -1
  116. package/dist/slate-run-action.js.map +1 -1
  117. package/dist/slate-runtime.d.ts +3 -0
  118. package/dist/slate-runtime.d.ts.map +1 -1
  119. package/dist/slate-runtime.js +1 -0
  120. package/dist/slate-runtime.js.map +1 -1
  121. package/dist/slate-view-contract.d.ts +1 -1
  122. package/dist/slate-view-contract.d.ts.map +1 -1
  123. package/dist/slate-view-contract.js +1 -1
  124. package/dist/slate-view-contract.js.map +1 -1
  125. package/dist/slate-workspace-parse.d.ts.map +1 -1
  126. package/dist/slate-workspace-parse.js +1 -0
  127. package/dist/slate-workspace-parse.js.map +1 -1
  128. package/dist/slate-workspace-types.d.ts +2 -0
  129. package/dist/slate-workspace-types.d.ts.map +1 -1
  130. package/dist/workspace-draw-branch.d.ts.map +1 -1
  131. package/dist/workspace-draw-branch.js +2 -2
  132. package/dist/workspace-draw-branch.js.map +1 -1
  133. package/dist/workspace-draw-messages.d.ts +2 -0
  134. package/dist/workspace-draw-messages.d.ts.map +1 -1
  135. package/dist/workspace-draw-messages.js +3 -0
  136. package/dist/workspace-draw-messages.js.map +1 -1
  137. package/open-design.json +2 -2
  138. package/package.json +2 -1
@@ -1,5 +1,7 @@
1
+ import { existsSync } from 'node:fs';
1
2
  import os from 'node:os';
2
3
  import path from 'node:path';
4
+ import { installAgentPlugins, planAgentPlugins, pluginInstalled, removeAgentPlugins, } from './agent-plugin-step.js';
3
5
  import { booleanFlag, stringFlag } from './cli-arguments.js';
4
6
  import { persistCurrentCli } from './cli-persistence.js';
5
7
  import { cliPersistenceLines } from './cli-persistence-report.js';
@@ -54,15 +56,17 @@ const resolveTargets = async (flags, skills) => {
54
56
  };
55
57
  };
56
58
  const skippedClientLines = (skipped) => skipped.map((client) => (`${client}: not installed on this machine; skipped.`));
57
- const printStatus = async (skills, targets, skipped, json) => {
59
+ const printStatus = async (skills, targets, skipped, json, withPlugins) => {
58
60
  const [installations, credentials] = await Promise.all([
59
61
  Promise.all(targets.map(async (target) => {
60
62
  const status = await inspectSkillInstallation(target.destination, target.client);
63
+ const plugin = withPlugins ? await pluginInstalled(target) : undefined;
61
64
  return {
62
65
  client: target.client,
63
66
  destination: target.destination,
64
67
  skillName: target.skill,
65
68
  status,
69
+ ...(plugin === undefined ? {} : { plugin: plugin ? 'installed' : 'not_installed' }),
66
70
  ...(target.client === 'codex' && status !== 'not_installed'
67
71
  ? { enabled: await isCodexSkillEnabled(target.destination) }
68
72
  : {}),
@@ -86,7 +90,8 @@ const printStatus = async (skills, targets, skipped, json) => {
86
90
  const enabled = 'enabled' in installation
87
91
  ? `, ${installation.enabled ? 'enabled' : 'disabled'}`
88
92
  : '';
89
- console.log(`${installation.client}: ${installation.skillName} ${installation.status}${enabled}`
93
+ const plugin = 'plugin' in installation ? `; plugin ${installation.plugin}` : '';
94
+ console.log(`${installation.client}: ${installation.skillName} ${installation.status}${enabled}${plugin}`
90
95
  + ` (${installation.destination})`);
91
96
  }
92
97
  for (const line of skippedClientLines(skipped))
@@ -103,10 +108,15 @@ export const runSkillCommand = async (action, flags, dependencies = {}) => {
103
108
  }
104
109
  const { targets, skipped } = await resolveTargets(flags, skills);
105
110
  if (action === 'status') {
106
- await printStatus(skills, targets, skipped, booleanFlag(flags, 'json'));
111
+ await printStatus(skills, targets, skipped, booleanFlag(flags, 'json'), Boolean(dependencies.agentPlugins));
107
112
  return;
108
113
  }
109
- if (action === 'remove') {
114
+ if (action === 'remove' || action === 'uninstall') {
115
+ const pluginLines = dependencies.agentPlugins
116
+ ? await removeAgentPlugins(targets, dependencies.agentPlugins)
117
+ : [];
118
+ for (const line of pluginLines)
119
+ console.log(line);
110
120
  const removed = await Promise.all(targets.map(async (target) => ({
111
121
  ...target,
112
122
  removed: await removeSkill(target.destination),
@@ -118,13 +128,15 @@ export const runSkillCommand = async (action, flags, dependencies = {}) => {
118
128
  }
119
129
  for (const line of skippedClientLines(skipped))
120
130
  console.log(line);
121
- console.log(`Credentials were retained at ${resolveCredentialFile()}.`);
131
+ const credentialFile = resolveCredentialFile();
132
+ if (existsSync(credentialFile))
133
+ console.log(`Credentials were retained at ${credentialFile}.`);
122
134
  return;
123
135
  }
124
136
  if (action !== 'install') {
125
137
  throw usageRefusal({
126
138
  reason: `${action ? `\`${action}\` is not` : 'No action was given, and'}`
127
- + ' a `12ui skill` action. The actions are install, status, print, and remove.',
139
+ + ' a `12ui skill` action. The actions are install, status, print, and remove (or uninstall).',
128
140
  code: 'skill_usage',
129
141
  verb: ['skill'],
130
142
  });
@@ -133,7 +145,10 @@ export const runSkillCommand = async (action, flags, dependencies = {}) => {
133
145
  if (booleanFlag(flags, 'skip-auth') && authRequested) {
134
146
  throw new Error('--skip-auth cannot be combined with --api-key, --login-origin, or --key-name');
135
147
  }
136
- const inspected = await Promise.all(targets.map(async (target) => ({
148
+ const plan = dependencies.agentPlugins
149
+ ? await planAgentPlugins(targets, dependencies.agentPlugins)
150
+ : { pluginTargets: [], skillTargets: targets, notes: [] };
151
+ const inspected = await Promise.all(plan.skillTargets.map(async (target) => ({
137
152
  target,
138
153
  status: await inspectSkillInstallation(target.destination, target.client),
139
154
  })));
@@ -161,14 +176,21 @@ export const runSkillCommand = async (action, flags, dependencies = {}) => {
161
176
  }
162
177
  let persistence;
163
178
  let results;
179
+ let plugins = [];
164
180
  let legacy;
165
181
  let retiredCodexSkillConfigs;
166
182
  let codexCleanup;
167
183
  let credentials = null;
168
184
  try {
169
185
  persistence = await (dependencies.persistCli ?? (() => persistCurrentCli()))();
186
+ plugins = dependencies.agentPlugins && plan.pluginTargets.length > 0
187
+ ? await installAgentPlugins(plan.pluginTargets, dependencies.agentPlugins)
188
+ : [];
170
189
  results = await installSkillsTransaction({
171
- targets,
190
+ targets: [
191
+ ...plan.skillTargets,
192
+ ...plugins.filter((outcome) => !outcome.installed).map((outcome) => outcome.target),
193
+ ],
172
194
  force: booleanFlag(flags, 'force'),
173
195
  });
174
196
  const codexTargets = results.filter(({ target }) => target.client === 'codex');
@@ -212,6 +234,10 @@ export const runSkillCommand = async (action, flags, dependencies = {}) => {
212
234
  console.log(`${result.target.client}: ${result.target.skill} ${result.result.replace('_', ' ')}${enabled}`
213
235
  + ` at ${result.target.destination}.`);
214
236
  }
237
+ for (const outcome of plugins)
238
+ console.log(outcome.line);
239
+ for (const note of plan.notes)
240
+ console.log(note);
215
241
  for (const line of skippedClientLines(skipped))
216
242
  console.log(line);
217
243
  for (const line of cliPersistenceLines(persistence))
@@ -245,6 +271,10 @@ export const runSkillCommand = async (action, flags, dependencies = {}) => {
245
271
  else {
246
272
  console.log('Skill installed; no 12ui API account is required to install. Run 12ui auth login when using hosted features.');
247
273
  }
248
- console.log(`Legacy codex-design workspace data is preserved at ${codexCleanup?.workspaceData ?? path.join(os.homedir(), '.12ui', 'codex-design')}.`);
274
+ const legacyWorkspaceData = codexCleanup?.workspaceData
275
+ ?? path.join(os.homedir(), '.12ui', 'codex-design');
276
+ if (existsSync(legacyWorkspaceData)) {
277
+ console.log(`Legacy codex-design workspace data is preserved at ${legacyWorkspaceData}.`);
278
+ }
249
279
  };
250
280
  //# sourceMappingURL=cli-skill-command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-skill-command.js","sourceRoot":"","sources":["../src/cli-skill-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-skill-command.js","sourceRoot":"","sources":["../src/cli-skill-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { type AgentPluginContext } from './agent-plugin-step.js';
2
+ /** The one update path: the newest release's own `skill install`. */
3
+ export declare const UPDATE_COMMAND: readonly ["-y", "@12ui/design@latest", "skill", "install"];
4
+ export type UpdateSpawner = (command: string, args: readonly string[], environment: NodeJS.ProcessEnv) => Promise<number | null>;
5
+ /**
6
+ * `12ui update` runs `npx -y @12ui/design@latest skill install`: the newest
7
+ * release pins itself as the `12ui` on PATH (the same `persistCurrentCli` every
8
+ * install uses), refreshes every skill copy, rewrites the Codex plugin folder
9
+ * and re-adds the plugin wherever its bytes changed, and re-checks the Claude
10
+ * Code plugin. Its output is that install's own lines; it never prompts and
11
+ * never reads `OPENAI_API_KEY`. Then every Claude Code home with the plugin
12
+ * from 12ui-plugin runs `claude plugin marketplace update 12ui-plugin` and
13
+ * `claude plugin update 12ui-design@12ui-plugin` (the CLI entry passes the
14
+ * plugin context; without it this step is skipped). Between updates Claude
15
+ * Code refreshes the plugin by itself: its marketplace is set to auto-update.
16
+ */
17
+ export declare const runUpdateCommand: (dependencies?: {
18
+ spawner?: UpdateSpawner;
19
+ environment?: NodeJS.ProcessEnv;
20
+ agentPlugins?: AgentPluginContext;
21
+ }) => Promise<void>;
22
+ //# sourceMappingURL=cli-update-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-update-command.d.ts","sourceRoot":"","sources":["../src/cli-update-command.ts"],"names":[],"mappings":"AAGA,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGtF,qEAAqE;AACrE,eAAO,MAAM,cAAc,4DAA6D,CAAC;AAEzF,MAAM,MAAM,aAAa,GAAG,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,WAAW,EAAE,MAAM,CAAC,UAAU,KAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAY5B;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,GAC3B,eAAc;IAAE,OAAO,CAAC,EAAE,aAAa,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,YAAY,CAAC,EAAE,kBAAkB,CAAA;CAAO,KACjH,OAAO,CAAC,IAAI,CAad,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { spawn } from 'node:child_process';
2
+ import { agentCommandEnvironment } from './agent-command-runner.js';
3
+ import { refreshAgentPlugins } from './agent-plugin-step.js';
4
+ import { packageIdentity } from './client-version.js';
5
+ /** The one update path: the newest release's own `skill install`. */
6
+ export const UPDATE_COMMAND = ['-y', '@12ui/design@latest', 'skill', 'install'];
7
+ const spawnInherited = (command, args, environment) => new Promise((resolve) => {
8
+ const child = spawn(command, [...args], {
9
+ env: environment,
10
+ shell: process.platform === 'win32',
11
+ stdio: ['ignore', 'inherit', 'inherit'],
12
+ });
13
+ child.on('error', () => resolve(null));
14
+ child.on('close', (code) => resolve(code));
15
+ });
16
+ /**
17
+ * `12ui update` runs `npx -y @12ui/design@latest skill install`: the newest
18
+ * release pins itself as the `12ui` on PATH (the same `persistCurrentCli` every
19
+ * install uses), refreshes every skill copy, rewrites the Codex plugin folder
20
+ * and re-adds the plugin wherever its bytes changed, and re-checks the Claude
21
+ * Code plugin. Its output is that install's own lines; it never prompts and
22
+ * never reads `OPENAI_API_KEY`. Then every Claude Code home with the plugin
23
+ * from 12ui-plugin runs `claude plugin marketplace update 12ui-plugin` and
24
+ * `claude plugin update 12ui-design@12ui-plugin` (the CLI entry passes the
25
+ * plugin context; without it this step is skipped). Between updates Claude
26
+ * Code refreshes the plugin by itself: its marketplace is set to auto-update.
27
+ */
28
+ export const runUpdateCommand = async (dependencies = {}) => {
29
+ console.log(`Updating 12ui ${packageIdentity().version} to the newest release: npx ${UPDATE_COMMAND.join(' ')}`);
30
+ const exitCode = await (dependencies.spawner ?? spawnInherited)('npx', UPDATE_COMMAND, agentCommandEnvironment(dependencies.environment ?? process.env));
31
+ if (exitCode !== 0) {
32
+ throw new Error(`npx ${UPDATE_COMMAND.join(' ')} exited with ${exitCode ?? 'no exit code'}; the installed 12ui is unchanged`);
33
+ }
34
+ if (dependencies.agentPlugins) {
35
+ for (const line of await refreshAgentPlugins(dependencies.agentPlugins))
36
+ console.log(line);
37
+ }
38
+ };
39
+ //# sourceMappingURL=cli-update-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-update-command.js","sourceRoot":"","sources":["../src/cli-update-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAA2B,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,qEAAqE;AACrE,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,SAAS,CAAU,CAAC;AAQzF,MAAM,cAAc,GAAkB,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;IAC5F,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;QACtC,GAAG,EAAE,WAAW;QAChB,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO;QACnC,KAAK,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;KACxC,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACvC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,eAAgH,EAAE,EACnG,EAAE;IACjB,OAAO,CAAC,GAAG,CAAC,iBAAiB,eAAe,EAAE,CAAC,OAAO,+BAA+B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjH,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,IAAI,cAAc,CAAC,CAC7D,KAAK,EACL,cAAc,EACd,uBAAuB,CAAC,YAAY,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,CACjE,CAAC;IACF,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,QAAQ,IAAI,cAAc,mCAAmC,CAAC,CAAC;IAChI,CAAC;IACD,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;QAC9B,KAAK,MAAM,IAAI,IAAI,MAAM,mBAAmB,CAAC,YAAY,CAAC,YAAY,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7F,CAAC;AACH,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cli-usage.d.ts","sourceRoot":"","sources":["../src/cli-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAkD9C,eAAO,MAAM,SAAS,QAsGsC,CAAC;AAE7D,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAER,CAAC;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAIhD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAgB9C,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAI5C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAA2C,CAAC;AAEzF,gFAAgF;AAChF,eAAO,MAAM,eAAe,GAAI,QAAO,SAAS,MAAM,EAAoB,KAAG,GAAG,CAAC,MAAM,CAMtF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,SAAS,MAAM,EAAE,KAAG,SAAS,MAAM,EAczE,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,YAAY,GAAI,GAAG,MAAM,SAAS,MAAM,EAAE,KAAG,MAEzD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,SAAS,MAAM,EAAE,KAAG,MAaxD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB,KAAG,UAGH,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,WAAW,GAAI,MAAM;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB,KAAG,KAEH,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,UAAU,GAAI,UAAS,SAAS,MAAM,EAAO,KAAG,IAE5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,KAAK,QAAO,KAExB,CAAC"}
1
+ {"version":3,"file":"cli-usage.d.ts","sourceRoot":"","sources":["../src/cli-usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAkD9C,eAAO,MAAM,SAAS,QAuGsC,CAAC;AAE7D,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAER,CAAC;AAE9C;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAIhD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAgB9C,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAI5C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAA2C,CAAC;AAEzF,gFAAgF;AAChF,eAAO,MAAM,eAAe,GAAI,QAAO,SAAS,MAAM,EAAoB,KAAG,GAAG,CAAC,MAAM,CAMtF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GAAI,GAAG,MAAM,SAAS,MAAM,EAAE,KAAG,SAAS,MAAM,EAczE,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,YAAY,GAAI,GAAG,MAAM,SAAS,MAAM,EAAE,KAAG,MAEzD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAI,GAAG,MAAM,SAAS,MAAM,EAAE,KAAG,MAaxD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB,KAAG,UAGH,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,WAAW,GAAI,MAAM;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;CACzB,KAAG,KAEH,CAAC;AAEF,2FAA2F;AAC3F,eAAO,MAAM,UAAU,GAAI,UAAS,SAAS,MAAM,EAAO,KAAG,IAE5D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,KAAK,QAAO,KAExB,CAAC"}
package/dist/cli-usage.js CHANGED
@@ -72,6 +72,7 @@ export const CLI_USAGE = `Usage:
72
72
  12ui auth logout [--login-origin <url>]
73
73
  12ui cli install
74
74
  12ui cli status [--json]
75
+ 12ui update
75
76
  12ui skill install [--skill 12ui-design] [--client codex|claude-code|grok|cursor|antigravity|copilot] [--home <client-home>] [--login-origin <url>] [--key-name <name>] [--force] [--skip-auth]
76
77
  12ui skill status [--skill 12ui-design] [--client codex|claude-code|grok|cursor|antigravity|copilot] [--home <client-home>] [--json]
77
78
  12ui corpus status
@@ -1 +1 @@
1
- {"version":3,"file":"cli-usage.js","sourceRoot":"","sources":["../src/cli-usage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli-usage.js","sourceRoot":"","sources":["../src/cli-usage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import { type AgentCommandRunner } from './agent-command-runner.js';
2
+ /**
3
+ * The 12ui plugin for Codex: the shared 12ui-design skill plus the hosted
4
+ * `12ui-workspace` server at design.12ui.com/mcp, which draws the Design
5
+ * workspace inline in a Codex thread. It is the plugin submitted to OpenAI
6
+ * (scripts/public-plugin/remote), installed under its proof identity
7
+ * `12ui@12ui-local` from a local marketplace the CLI writes.
8
+ */
9
+ export declare const CODEX_PLUGIN_NAME = "12ui";
10
+ export declare const CODEX_MARKETPLACE_NAME = "12ui-local";
11
+ export declare const CODEX_PLUGIN_ID = "12ui@12ui-local";
12
+ /** The one folder every Codex home's marketplace points at. */
13
+ export declare const codexPluginSource: (dataRoot: string) => string;
14
+ /**
15
+ * Writes the plugin from the package's template and its own skill bytes, and
16
+ * replaces the folder only when the bytes changed, so a re-run touches nothing
17
+ * and a newer CLI's skill reaches every home through `codex plugin add`.
18
+ */
19
+ export declare const materializeCodexPluginSource: (dataRoot: string) => Promise<{
20
+ source: string;
21
+ changed: boolean;
22
+ }>;
23
+ /** Whether the `codex` on PATH has `codex plugin marketplace add` (a capability probe, not a version). */
24
+ export declare const codexSupportsPlugins: (runner: AgentCommandRunner, environment: NodeJS.ProcessEnv) => Promise<boolean>;
25
+ export type CodexPluginStatus = {
26
+ status: 'installed' | 'current';
27
+ adopted: boolean;
28
+ listedSkillsDisabled: number;
29
+ } | {
30
+ status: 'other';
31
+ pluginId: string;
32
+ };
33
+ /**
34
+ * Installs 12ui@12ui-local into one Codex home. A `12ui-local` marketplace
35
+ * that points somewhere else (the owner's hand-made test install) is the same
36
+ * plugin: it is re-pointed at the CLI's folder so updates reach it. A `12ui`
37
+ * plugin enabled from any other marketplace (a future directory listing) is
38
+ * left alone and nothing is added beside it.
39
+ */
40
+ export declare const installCodexPlugin: (args: {
41
+ home: string;
42
+ source: string;
43
+ runner: AgentCommandRunner;
44
+ environment: NodeJS.ProcessEnv;
45
+ }) => Promise<CodexPluginStatus>;
46
+ /** Whether this home's config.toml still has the 12ui-local marketplace, wherever it points. */
47
+ export declare const isCodexMarketplaceConfigured: (home: string) => Promise<boolean>;
48
+ /** Whether this home enables the plugin (status reporting; no process runs). */
49
+ export declare const isCodexPluginInstalled: (home: string) => Promise<boolean>;
50
+ /** Removes what `installCodexPlugin` added: the plugin, its marketplace and the marked disable blocks. */
51
+ export declare const removeCodexPlugin: (args: {
52
+ home: string;
53
+ runner: AgentCommandRunner;
54
+ environment: NodeJS.ProcessEnv;
55
+ }) => Promise<boolean>;
56
+ //# sourceMappingURL=codex-plugin-installer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-plugin-installer.d.ts","sourceRoot":"","sources":["../src/codex-plugin-installer.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,2BAA2B,CAAC;AAGnC;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,SAAS,CAAC;AACxC,eAAO,MAAM,sBAAsB,eAAe,CAAC;AACnD,eAAO,MAAM,eAAe,oBAAmD,CAAC;AAQhF,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,GAAI,UAAU,MAAM,KAAG,MAAgE,CAAC;AA+BtH;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAwBjH,CAAC;AAEF,0GAA0G;AAC1G,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,kBAAkB,EAC1B,aAAa,MAAM,CAAC,UAAU,KAC7B,OAAO,CAAC,OAAO,CAKjB,CAAC;AAsFF,MAAM,MAAM,iBAAiB,GACzB;IAAE,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,oBAAoB,EAAE,MAAM,CAAA;CAAE,GACnF;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAAU,MAAM;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;CAChC,KAAG,OAAO,CAAC,iBAAiB,CA2B5B,CAAC;AAEF,gGAAgG;AAChG,eAAO,MAAM,4BAA4B,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,OAAO,CAEhF,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,sBAAsB,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,OAAO,CAE1E,CAAC;AAEF,0GAA0G;AAC1G,eAAO,MAAM,iBAAiB,GAAU,MAAM;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;CAChC,KAAG,OAAO,CAAC,OAAO,CAelB,CAAC"}
@@ -0,0 +1,239 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { cp, mkdir, readdir, readFile, rename, rm, stat, writeFile } from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { agentCommandEnvironment, commandFailure, } from './agent-command-runner.js';
6
+ import { disableCodexSkillFiles, removeMarkedCodexSkillBlocks } from './codex-skill-config.js';
7
+ /**
8
+ * The 12ui plugin for Codex: the shared 12ui-design skill plus the hosted
9
+ * `12ui-workspace` server at design.12ui.com/mcp, which draws the Design
10
+ * workspace inline in a Codex thread. It is the plugin submitted to OpenAI
11
+ * (scripts/public-plugin/remote), installed under its proof identity
12
+ * `12ui@12ui-local` from a local marketplace the CLI writes.
13
+ */
14
+ export const CODEX_PLUGIN_NAME = '12ui';
15
+ export const CODEX_MARKETPLACE_NAME = '12ui-local';
16
+ export const CODEX_PLUGIN_ID = `${CODEX_PLUGIN_NAME}@${CODEX_MARKETPLACE_NAME}`;
17
+ /** The old directory-listed skills-only plugin, whose skill shares the name 12ui-design. */
18
+ const LISTED_SKILL_PLUGIN_CACHE = path.join('plugins', 'cache', 'openai-curated-remote', '12ui-design');
19
+ const templateRoot = () => fileURLToPath(new URL('../codex-plugin/', import.meta.url));
20
+ const bundledSkillRoot = () => fileURLToPath(new URL('../skills/12ui-design/', import.meta.url));
21
+ /** The one folder every Codex home's marketplace points at. */
22
+ export const codexPluginSource = (dataRoot) => path.join(dataRoot, 'codex-plugin', CODEX_PLUGIN_NAME);
23
+ const exists = async (target) => {
24
+ try {
25
+ await stat(target);
26
+ return true;
27
+ }
28
+ catch (error) {
29
+ if (error.code === 'ENOENT')
30
+ return false;
31
+ throw error;
32
+ }
33
+ };
34
+ const listFiles = async (root, relative = '') => {
35
+ const entries = await readdir(path.join(root, relative), { withFileTypes: true });
36
+ const nested = await Promise.all(entries.map(async (entry) => {
37
+ const child = path.join(relative, entry.name);
38
+ return entry.isDirectory() ? listFiles(root, child) : [child];
39
+ }));
40
+ return nested.flat().sort();
41
+ };
42
+ const sameTree = async (left, right) => {
43
+ if (!(await exists(left)) || !(await exists(right)))
44
+ return false;
45
+ const [leftFiles, rightFiles] = await Promise.all([listFiles(left), listFiles(right)]);
46
+ if (leftFiles.join('\n') !== rightFiles.join('\n'))
47
+ return false;
48
+ const same = await Promise.all(leftFiles.map(async (file) => ((await readFile(path.join(left, file))).equals(await readFile(path.join(right, file))))));
49
+ return same.every(Boolean);
50
+ };
51
+ /**
52
+ * Writes the plugin from the package's template and its own skill bytes, and
53
+ * replaces the folder only when the bytes changed, so a re-run touches nothing
54
+ * and a newer CLI's skill reaches every home through `codex plugin add`.
55
+ */
56
+ export const materializeCodexPluginSource = async (dataRoot) => {
57
+ const source = codexPluginSource(dataRoot);
58
+ const parent = path.dirname(source);
59
+ await mkdir(parent, { recursive: true });
60
+ const staging = path.join(parent, `.${CODEX_PLUGIN_NAME}-${randomUUID()}.tmp`);
61
+ try {
62
+ const template = templateRoot();
63
+ await mkdir(path.join(staging, '.codex-plugin'), { recursive: true });
64
+ await mkdir(path.join(staging, '.agents', 'plugins'), { recursive: true });
65
+ await cp(path.join(template, 'plugin.json'), path.join(staging, '.codex-plugin', 'plugin.json'));
66
+ await cp(path.join(template, 'mcp.json'), path.join(staging, '.mcp.json'));
67
+ await cp(path.join(template, 'marketplace.json'), path.join(staging, '.agents', 'plugins', 'marketplace.json'));
68
+ await cp(path.join(template, 'assets'), path.join(staging, 'assets'), { recursive: true });
69
+ await cp(bundledSkillRoot(), path.join(staging, 'skills', '12ui-design'), { recursive: true });
70
+ if (await sameTree(staging, source))
71
+ return { source, changed: false };
72
+ const previous = `${source}.${randomUUID()}.old`;
73
+ const hadPrevious = await exists(source);
74
+ if (hadPrevious)
75
+ await rename(source, previous);
76
+ await rename(staging, source);
77
+ if (hadPrevious)
78
+ await rm(previous, { recursive: true, force: true });
79
+ return { source, changed: true };
80
+ }
81
+ finally {
82
+ await rm(staging, { recursive: true, force: true });
83
+ }
84
+ };
85
+ /** Whether the `codex` on PATH has `codex plugin marketplace add` (a capability probe, not a version). */
86
+ export const codexSupportsPlugins = async (runner, environment) => ((await runner('codex', ['plugin', 'marketplace', 'add', '--help'], {
87
+ environment: agentCommandEnvironment(environment),
88
+ timeoutMs: 30_000,
89
+ })).exitCode === 0);
90
+ /** The two facts the installer needs from config.toml, read the way Codex writes them. */
91
+ const readCodexConfig = async (home) => {
92
+ let source = '';
93
+ try {
94
+ source = await readFile(path.join(home, 'config.toml'), 'utf8');
95
+ }
96
+ catch (error) {
97
+ if (error.code !== 'ENOENT')
98
+ throw error;
99
+ }
100
+ const state = { marketplaceSource: null, enabledPlugins: [] };
101
+ let table = '';
102
+ for (const raw of source.split(/\r?\n/)) {
103
+ const line = raw.trim();
104
+ // `[table]` and `[[array.of.tables]]` both start a new table: a key under
105
+ // `[[skills.config]]` never belongs to the `[plugins."…"]` table above it.
106
+ const header = /^\[(\[?)\s*([^[\]]+?)\s*\](\]?)\s*(?:#.*)?$/.exec(line);
107
+ if (header) {
108
+ table = header[1] === '[' && header[3] === ']' ? `[[${header[2]}]]` : header[2];
109
+ continue;
110
+ }
111
+ const entry = /^([A-Za-z_]+)\s*=\s*(.+)$/.exec(line);
112
+ if (!entry)
113
+ continue;
114
+ if (table === `marketplaces.${CODEX_MARKETPLACE_NAME}` && entry[1] === 'source') {
115
+ try {
116
+ state.marketplaceSource = JSON.parse(entry[2]);
117
+ }
118
+ catch {
119
+ state.marketplaceSource = entry[2];
120
+ }
121
+ }
122
+ const plugin = /^plugins\."([^"]+)"$/.exec(table);
123
+ if (plugin && entry[1] === 'enabled' && entry[2] === 'true')
124
+ state.enabledPlugins.push(plugin[1]);
125
+ }
126
+ return state;
127
+ };
128
+ /** The SKILL.md of every cached version of the old listed plugin. */
129
+ const listedSkillFiles = async (home) => {
130
+ const root = path.join(home, LISTED_SKILL_PLUGIN_CACHE);
131
+ if (!(await exists(root)))
132
+ return [];
133
+ const versions = (await readdir(root)).filter((name) => !name.startsWith('.')).sort();
134
+ const files = versions.map((version) => path.join(root, version, 'skills', '12ui-design', 'SKILL.md'));
135
+ const present = await Promise.all(files.map(exists));
136
+ return files.filter((_, index) => present[index]);
137
+ };
138
+ const pluginCache = async (home) => {
139
+ const root = path.join(home, 'plugins', 'cache', CODEX_MARKETPLACE_NAME, CODEX_PLUGIN_NAME);
140
+ if (!(await exists(root)))
141
+ return null;
142
+ const versions = (await readdir(root)).filter((name) => !name.startsWith('.')).sort();
143
+ return versions.length > 0 ? path.join(root, versions[versions.length - 1]) : null;
144
+ };
145
+ /**
146
+ * Codex rewrites config.toml with LF line endings: measured with codex-cli
147
+ * 0.159.3, `codex plugin marketplace add` turns a CRLF file into LF. A file
148
+ * that used CRLF throughout gets CRLF back after every Codex command, so an
149
+ * install and an uninstall leave the user's line endings as they found them.
150
+ */
151
+ const keepingLineEndings = async (home, run) => {
152
+ const file = path.join(home, 'config.toml');
153
+ const before = await readFile(file, 'utf8').catch((error) => {
154
+ if (error.code === 'ENOENT')
155
+ return '';
156
+ throw error;
157
+ });
158
+ const crlf = before.includes('\r\n') && !/(^|[^\r])\n/.test(before);
159
+ try {
160
+ return await run();
161
+ }
162
+ finally {
163
+ if (crlf) {
164
+ const after = await readFile(file, 'utf8').catch(() => null);
165
+ const restored = after === null ? null : after.replace(/\r?\n/g, '\r\n');
166
+ if (restored !== null && restored !== after)
167
+ await writeFile(file, restored);
168
+ }
169
+ }
170
+ };
171
+ /** One `codex` command against one home, keeping that home's config.toml line endings. */
172
+ const codexCommand = (args, commandArgs) => keepingLineEndings(args.home, () => args.runner('codex', commandArgs, {
173
+ environment: agentCommandEnvironment(args.environment, { CODEX_HOME: args.home }),
174
+ }));
175
+ /**
176
+ * Installs 12ui@12ui-local into one Codex home. A `12ui-local` marketplace
177
+ * that points somewhere else (the owner's hand-made test install) is the same
178
+ * plugin: it is re-pointed at the CLI's folder so updates reach it. A `12ui`
179
+ * plugin enabled from any other marketplace (a future directory listing) is
180
+ * left alone and nothing is added beside it.
181
+ */
182
+ export const installCodexPlugin = async (args) => {
183
+ const before = await readCodexConfig(args.home);
184
+ const other = before.enabledPlugins.find((id) => id.startsWith(`${CODEX_PLUGIN_NAME}@`) && id !== CODEX_PLUGIN_ID);
185
+ if (other)
186
+ return { status: 'other', pluginId: other };
187
+ let changed = false;
188
+ const adopted = before.marketplaceSource !== null && path.resolve(before.marketplaceSource) !== path.resolve(args.source);
189
+ if (adopted) {
190
+ const removed = await codexCommand(args, ['plugin', 'marketplace', 'remove', CODEX_MARKETPLACE_NAME]);
191
+ if (removed.exitCode !== 0)
192
+ throw commandFailure(`codex plugin marketplace remove ${CODEX_MARKETPLACE_NAME}`, removed);
193
+ }
194
+ if (before.marketplaceSource === null || adopted) {
195
+ const added = await codexCommand(args, ['plugin', 'marketplace', 'add', args.source, '--json']);
196
+ if (added.exitCode !== 0)
197
+ throw commandFailure(`codex plugin marketplace add ${args.source}`, added);
198
+ changed = true;
199
+ }
200
+ const cache = await pluginCache(args.home);
201
+ if (!before.enabledPlugins.includes(CODEX_PLUGIN_ID) || !cache || !(await sameTree(cache, args.source))) {
202
+ const added = await codexCommand(args, ['plugin', 'add', CODEX_PLUGIN_ID, '--json']);
203
+ if (added.exitCode !== 0)
204
+ throw commandFailure(`codex plugin add ${CODEX_PLUGIN_ID}`, added);
205
+ changed = true;
206
+ }
207
+ if (!(await readCodexConfig(args.home)).enabledPlugins.includes(CODEX_PLUGIN_ID)) {
208
+ throw new Error(`codex plugin add ${CODEX_PLUGIN_ID} reported success, but ${args.home}/config.toml does not enable it`);
209
+ }
210
+ const disabled = await disableCodexSkillFiles(args.home, await listedSkillFiles(args.home));
211
+ if (disabled.length > 0)
212
+ changed = true;
213
+ return { status: changed ? 'installed' : 'current', adopted, listedSkillsDisabled: disabled.length };
214
+ };
215
+ /** Whether this home's config.toml still has the 12ui-local marketplace, wherever it points. */
216
+ export const isCodexMarketplaceConfigured = async (home) => ((await readCodexConfig(home)).marketplaceSource !== null);
217
+ /** Whether this home enables the plugin (status reporting; no process runs). */
218
+ export const isCodexPluginInstalled = async (home) => ((await readCodexConfig(home)).enabledPlugins.includes(CODEX_PLUGIN_ID));
219
+ /** Removes what `installCodexPlugin` added: the plugin, its marketplace and the marked disable blocks. */
220
+ export const removeCodexPlugin = async (args) => {
221
+ const state = await readCodexConfig(args.home);
222
+ let removed = false;
223
+ if (state.enabledPlugins.includes(CODEX_PLUGIN_ID) || await pluginCache(args.home)) {
224
+ const result = await codexCommand(args, ['plugin', 'remove', CODEX_PLUGIN_ID]);
225
+ if (result.exitCode !== 0)
226
+ throw commandFailure(`codex plugin remove ${CODEX_PLUGIN_ID}`, result);
227
+ removed = true;
228
+ }
229
+ if (state.marketplaceSource !== null) {
230
+ const result = await codexCommand(args, ['plugin', 'marketplace', 'remove', CODEX_MARKETPLACE_NAME]);
231
+ if (result.exitCode !== 0)
232
+ throw commandFailure(`codex plugin marketplace remove ${CODEX_MARKETPLACE_NAME}`, result);
233
+ removed = true;
234
+ }
235
+ if (await removeMarkedCodexSkillBlocks(args.home) > 0)
236
+ removed = true;
237
+ return removed;
238
+ };
239
+ //# sourceMappingURL=codex-plugin-installer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-plugin-installer.js","sourceRoot":"","sources":["../src/codex-plugin-installer.ts"],"names":[],"mappings":"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"}