@12ui/design 0.2.84 → 0.2.86
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 +37 -6
- package/SKILL.md +1 -1
- package/codex-plugin/assets/12ui-icon-dark.png +0 -0
- package/codex-plugin/assets/12ui-icon.png +0 -0
- package/codex-plugin/marketplace.json +20 -0
- package/codex-plugin/mcp.json +7 -0
- package/codex-plugin/plugin.json +157 -0
- package/dist/agent-command-runner.d.ts +41 -0
- package/dist/agent-command-runner.d.ts.map +1 -0
- package/dist/agent-command-runner.js +90 -0
- package/dist/agent-command-runner.js.map +1 -0
- package/dist/agent-plugin-step.d.ts +47 -0
- package/dist/agent-plugin-step.d.ts.map +1 -0
- package/dist/agent-plugin-step.js +190 -0
- package/dist/agent-plugin-step.js.map +1 -0
- package/dist/claude-plugin-installer.d.ts +61 -0
- package/dist/claude-plugin-installer.d.ts.map +1 -0
- package/dist/claude-plugin-installer.js +178 -0
- package/dist/claude-plugin-installer.js.map +1 -0
- package/dist/cli-run.d.ts.map +1 -1
- package/dist/cli-run.js +9 -1
- package/dist/cli-run.js.map +1 -1
- package/dist/cli-skill-command.d.ts +6 -0
- package/dist/cli-skill-command.d.ts.map +1 -1
- package/dist/cli-skill-command.js +30 -7
- package/dist/cli-skill-command.js.map +1 -1
- package/dist/cli-update-command.d.ts +22 -0
- package/dist/cli-update-command.d.ts.map +1 -0
- package/dist/cli-update-command.js +39 -0
- package/dist/cli-update-command.js.map +1 -0
- package/dist/cli-usage.d.ts.map +1 -1
- package/dist/cli-usage.js +1 -0
- package/dist/cli-usage.js.map +1 -1
- package/dist/codex-plugin-installer.d.ts +56 -0
- package/dist/codex-plugin-installer.d.ts.map +1 -0
- package/dist/codex-plugin-installer.js +239 -0
- package/dist/codex-plugin-installer.js.map +1 -0
- package/dist/codex-skill-config.d.ts +22 -0
- package/dist/codex-skill-config.d.ts.map +1 -1
- package/dist/codex-skill-config.js +84 -2
- package/dist/codex-skill-config.js.map +1 -1
- package/dist/mcp-slate-tool-defs.d.ts.map +1 -1
- package/dist/mcp-slate-tool-defs.js +2 -1
- package/dist/mcp-slate-tool-defs.js.map +1 -1
- package/dist/mcp-slate-ui-copy.d.ts +4 -0
- package/dist/mcp-slate-ui-copy.d.ts.map +1 -1
- package/dist/mcp-slate-ui-copy.js +2 -0
- package/dist/mcp-slate-ui-copy.js.map +1 -1
- package/dist/mcp-slate-ui-locales/de-DE.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/de-DE.js +1 -0
- package/dist/mcp-slate-ui-locales/de-DE.js.map +1 -1
- package/dist/mcp-slate-ui-locales/es-419.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/es-419.js +1 -0
- package/dist/mcp-slate-ui-locales/es-419.js.map +1 -1
- package/dist/mcp-slate-ui-locales/es-ES.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/es-ES.js +1 -0
- package/dist/mcp-slate-ui-locales/es-ES.js.map +1 -1
- package/dist/mcp-slate-ui-locales/fr-FR.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/fr-FR.js +1 -0
- package/dist/mcp-slate-ui-locales/fr-FR.js.map +1 -1
- package/dist/mcp-slate-ui-locales/hi-IN.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/hi-IN.js +1 -0
- package/dist/mcp-slate-ui-locales/hi-IN.js.map +1 -1
- package/dist/mcp-slate-ui-locales/it-IT.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/it-IT.js +1 -0
- package/dist/mcp-slate-ui-locales/it-IT.js.map +1 -1
- package/dist/mcp-slate-ui-locales/ja-JP.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/ja-JP.js +1 -0
- package/dist/mcp-slate-ui-locales/ja-JP.js.map +1 -1
- package/dist/mcp-slate-ui-locales/ko-KR.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/ko-KR.js +1 -0
- package/dist/mcp-slate-ui-locales/ko-KR.js.map +1 -1
- package/dist/mcp-slate-ui-locales/pt-BR.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/pt-BR.js +1 -0
- package/dist/mcp-slate-ui-locales/pt-BR.js.map +1 -1
- package/dist/mcp-slate-ui-locales/zh-CN.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/zh-CN.js +1 -0
- package/dist/mcp-slate-ui-locales/zh-CN.js.map +1 -1
- package/dist/mcp-slate-ui-locales/zh-TW.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/zh-TW.js +1 -0
- package/dist/mcp-slate-ui-locales/zh-TW.js.map +1 -1
- package/dist/mcp-slate-ui-script-designs.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-designs.js +21 -0
- package/dist/mcp-slate-ui-script-designs.js.map +1 -1
- package/dist/mcp-slate-ui-script-remote.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-remote.js +1 -0
- package/dist/mcp-slate-ui-script-remote.js.map +1 -1
- package/dist/mcp-slate-ui-styles-designs.d.ts.map +1 -1
- package/dist/mcp-slate-ui-styles-designs.js +3 -0
- package/dist/mcp-slate-ui-styles-designs.js.map +1 -1
- package/dist/run-journal-commands.d.ts.map +1 -1
- package/dist/run-journal-commands.js +5 -0
- package/dist/run-journal-commands.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -1
- package/dist/server.js.map +1 -1
- package/dist/skill-clients.d.ts +2 -1
- package/dist/skill-clients.d.ts.map +1 -1
- package/dist/skill-clients.js +58 -1
- package/dist/skill-clients.js.map +1 -1
- package/dist/slate-captions-local.d.ts +2 -0
- package/dist/slate-captions-local.d.ts.map +1 -1
- package/dist/slate-captions-local.js +9 -3
- package/dist/slate-captions-local.js.map +1 -1
- package/dist/slate-ledger.d.ts +1 -1
- package/dist/slate-ledger.d.ts.map +1 -1
- package/dist/slate-retry.d.ts +22 -0
- package/dist/slate-retry.d.ts.map +1 -0
- package/dist/slate-retry.js +49 -0
- package/dist/slate-retry.js.map +1 -0
- package/dist/slate-round-runner.d.ts.map +1 -1
- package/dist/slate-round-runner.js +2 -1
- package/dist/slate-round-runner.js.map +1 -1
- package/dist/slate-run-action.d.ts.map +1 -1
- package/dist/slate-run-action.js +29 -1
- package/dist/slate-run-action.js.map +1 -1
- package/dist/slate-runtime.d.ts +3 -0
- package/dist/slate-runtime.d.ts.map +1 -1
- package/dist/slate-runtime.js +1 -0
- package/dist/slate-runtime.js.map +1 -1
- package/dist/slate-workspace-parse.d.ts.map +1 -1
- package/dist/slate-workspace-parse.js +1 -0
- package/dist/slate-workspace-parse.js.map +1 -1
- package/dist/slate-workspace-types.d.ts +2 -0
- package/dist/slate-workspace-types.d.ts.map +1 -1
- package/open-design.json +2 -2
- package/package.json +2 -1
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import os from 'node:os';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { rm } from 'node:fs/promises';
|
|
4
|
+
import { runAgentCommand } from './agent-command-runner.js';
|
|
5
|
+
import { createConcurrencyLimiter } from './bounded-concurrency.js';
|
|
6
|
+
import { CLAUDE_MARKETPLACE_NAME, CLAUDE_PLUGIN_ID, CLAUDE_PLUGIN_MIN_VERSION, claudeVersionSupportsPlugin, installClaudePlugin, isClaudePluginInstalled, readClaudeVersion, refreshClaudePlugin, removeClaudePlugin, } from './claude-plugin-installer.js';
|
|
7
|
+
import { resolveCliInstallLayout } from './cli-persistence.js';
|
|
8
|
+
import { CODEX_PLUGIN_ID, codexPluginSource, codexSupportsPlugins, installCodexPlugin, isCodexMarketplaceConfigured, isCodexPluginInstalled, materializeCodexPluginSource, removeCodexPlugin, } from './codex-plugin-installer.js';
|
|
9
|
+
import { inspectRecognizedSkillDirectory } from './legacy-skill-catalog.js';
|
|
10
|
+
import { discoverClientHomes } from './skill-clients.js';
|
|
11
|
+
import { inspectSkillInstallation, removeSkill } from './skill-installer.js';
|
|
12
|
+
export const defaultAgentPluginContext = () => ({
|
|
13
|
+
runner: runAgentCommand,
|
|
14
|
+
environment: process.env,
|
|
15
|
+
homeDirectory: os.homedir(),
|
|
16
|
+
dataRoot: resolveCliInstallLayout().dataRoot,
|
|
17
|
+
});
|
|
18
|
+
/** Agent CLIs run a few homes at a time: one machine can hold dozens of Codex profiles. */
|
|
19
|
+
const mapWithConcurrency = (items, limit, task) => {
|
|
20
|
+
const limiter = createConcurrencyLimiter(limit);
|
|
21
|
+
return Promise.all(items.map((item) => limiter(() => task(item))));
|
|
22
|
+
};
|
|
23
|
+
const clientHome = (target) => path.dirname(path.dirname(target.destination));
|
|
24
|
+
/** Splits the targets into plugin homes and skill homes, once per machine per client. */
|
|
25
|
+
export const planAgentPlugins = async (targets, context) => {
|
|
26
|
+
const has = (client) => targets.some((target) => target.client === client);
|
|
27
|
+
const [claudeVersion, codexPlugins] = await Promise.all([
|
|
28
|
+
has('claude-code') ? readClaudeVersion(context.runner, context.environment) : Promise.resolve(null),
|
|
29
|
+
has('codex') ? codexSupportsPlugins(context.runner, context.environment) : Promise.resolve(false),
|
|
30
|
+
]);
|
|
31
|
+
const claudePlugins = claudeVersionSupportsPlugin(claudeVersion);
|
|
32
|
+
const usesPlugin = (target) => ((target.client === 'claude-code' && claudePlugins) || (target.client === 'codex' && codexPlugins));
|
|
33
|
+
const notes = has('claude-code') && claudeVersion !== null && !claudePlugins
|
|
34
|
+
? [`Claude Code ${claudeVersion} shows the 12ui Design workspace from ${CLAUDE_PLUGIN_MIN_VERSION}:`
|
|
35
|
+
+ ' run claude update, then 12ui skill install.']
|
|
36
|
+
: [];
|
|
37
|
+
return {
|
|
38
|
+
pluginTargets: targets.filter(usesPlugin),
|
|
39
|
+
skillTargets: targets.filter((target) => !usesPlugin(target)),
|
|
40
|
+
notes,
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* The skill-only copy the CLI wrote into a plugin home goes, so each home
|
|
45
|
+
* lists one 12ui-design skill (the plugin's). A copy someone edited stays.
|
|
46
|
+
*/
|
|
47
|
+
const retireSkillCopy = async (target) => {
|
|
48
|
+
const status = await inspectSkillInstallation(target.destination, target.client);
|
|
49
|
+
if (status === 'not_installed')
|
|
50
|
+
return '';
|
|
51
|
+
const ours = status === 'current' || await inspectRecognizedSkillDirectory(target.destination) === 'recognized';
|
|
52
|
+
if (!ours)
|
|
53
|
+
return ` Kept the locally modified skill at ${target.destination}.`;
|
|
54
|
+
await removeSkill(target.destination);
|
|
55
|
+
return ' Replaced the skill-only copy; the plugin carries the skill.';
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Installs the plugin into every plugin home, a few at a time. A home whose
|
|
59
|
+
* plugin step fails, including writing the shared Codex plugin folder, gets the
|
|
60
|
+
* skill instead (`installed: false`), its line says why, and every other home
|
|
61
|
+
* goes on as before.
|
|
62
|
+
*/
|
|
63
|
+
export const installAgentPlugins = async (targets, context) => {
|
|
64
|
+
let codexSource = null;
|
|
65
|
+
const sharedCodexSource = () => {
|
|
66
|
+
codexSource ??= materializeCodexPluginSource(context.dataRoot).then((result) => result.source);
|
|
67
|
+
return codexSource;
|
|
68
|
+
};
|
|
69
|
+
return mapWithConcurrency([...targets], 4, async (target) => {
|
|
70
|
+
const home = clientHome(target);
|
|
71
|
+
try {
|
|
72
|
+
if (target.client === 'claude-code') {
|
|
73
|
+
const result = await installClaudePlugin({ home, ...context });
|
|
74
|
+
if (result.status === 'other') {
|
|
75
|
+
return { target, installed: true, line: `claude-code: ${result.pluginId} is already installed at ${home}; left as is.` };
|
|
76
|
+
}
|
|
77
|
+
const retired = await retireSkillCopy(target);
|
|
78
|
+
return {
|
|
79
|
+
target,
|
|
80
|
+
installed: true,
|
|
81
|
+
line: result.status === 'current'
|
|
82
|
+
? `claude-code: ${CLAUDE_PLUGIN_ID} plugin already installed at ${home}.${retired}`
|
|
83
|
+
: `claude-code: ${CLAUDE_PLUGIN_ID} plugin installed at ${home}`
|
|
84
|
+
+ ` (the Design workspace pane; ${CLAUDE_MARKETPLACE_NAME} auto-updates).${retired}`,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
const result = await installCodexPlugin({ home, source: await sharedCodexSource(), ...context });
|
|
88
|
+
if (result.status === 'other') {
|
|
89
|
+
return { target, installed: true, line: `codex: ${result.pluginId} is already installed at ${home}; left as is.` };
|
|
90
|
+
}
|
|
91
|
+
const retired = await retireSkillCopy(target);
|
|
92
|
+
const adopted = result.adopted ? ' Re-pointed the existing 12ui-local marketplace at the CLI\'s copy.' : '';
|
|
93
|
+
const listed = result.listedSkillsDisabled > 0 ? ' Turned off the old listed 12ui-design skill.' : '';
|
|
94
|
+
return {
|
|
95
|
+
target,
|
|
96
|
+
installed: true,
|
|
97
|
+
line: result.status === 'current'
|
|
98
|
+
? `codex: ${CODEX_PLUGIN_ID} plugin already installed at ${home}.${retired}`
|
|
99
|
+
: `codex: ${CODEX_PLUGIN_ID} plugin installed at ${home} (the Design workspace inline).${adopted}${listed}${retired}`,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
return {
|
|
104
|
+
target,
|
|
105
|
+
installed: false,
|
|
106
|
+
line: `${target.client}: the plugin could not be installed at ${home}`
|
|
107
|
+
+ ` (${error instanceof Error ? error.message : String(error)}); installing the 12ui-design skill instead.`,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
/**
|
|
113
|
+
* The shared Codex plugin folder is deleted only when nothing can still use
|
|
114
|
+
* it: every Codex removal in this run succeeded and no Codex home on the
|
|
115
|
+
* machine (nor one named with `--home`) still has the 12ui-local marketplace.
|
|
116
|
+
*/
|
|
117
|
+
const sharedCodexSourceUnused = async (removedHomes, context) => {
|
|
118
|
+
const machineHomes = await discoverClientHomes({
|
|
119
|
+
client: 'codex',
|
|
120
|
+
environment: context.environment,
|
|
121
|
+
homeDirectory: context.homeDirectory,
|
|
122
|
+
});
|
|
123
|
+
const homes = [...new Set([...machineHomes, ...removedHomes].map((home) => path.resolve(home)))];
|
|
124
|
+
const configured = await Promise.all(homes.map(isCodexMarketplaceConfigured));
|
|
125
|
+
return !configured.some(Boolean);
|
|
126
|
+
};
|
|
127
|
+
/** One line per home whose plugin `skill remove` took out or failed to take out. */
|
|
128
|
+
export const removeAgentPlugins = async (targets, context) => {
|
|
129
|
+
const outcomes = await mapWithConcurrency(targets.filter((target) => target.client === 'claude-code' || target.client === 'codex'), 4, async (target) => {
|
|
130
|
+
const home = clientHome(target);
|
|
131
|
+
try {
|
|
132
|
+
const removed = target.client === 'claude-code'
|
|
133
|
+
? await removeClaudePlugin({ home, ...context })
|
|
134
|
+
: await removeCodexPlugin({ home, ...context });
|
|
135
|
+
const id = target.client === 'claude-code' ? CLAUDE_PLUGIN_ID : CODEX_PLUGIN_ID;
|
|
136
|
+
return { target, failed: false, line: removed ? `${target.client}: removed the ${id} plugin from ${home}.` : '' };
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
return {
|
|
140
|
+
target,
|
|
141
|
+
failed: true,
|
|
142
|
+
line: `${target.client}: the plugin could not be removed from ${home}`
|
|
143
|
+
+ ` (${error instanceof Error ? error.message : String(error)}).`,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
const codexOutcomes = outcomes.filter((outcome) => outcome.target.client === 'codex');
|
|
148
|
+
if (!codexOutcomes.some((outcome) => outcome.failed)
|
|
149
|
+
&& await sharedCodexSourceUnused(codexOutcomes.map((outcome) => clientHome(outcome.target)), context)) {
|
|
150
|
+
await rm(path.dirname(codexPluginSource(context.dataRoot)), { recursive: true, force: true });
|
|
151
|
+
}
|
|
152
|
+
return outcomes.map((outcome) => outcome.line).filter(Boolean);
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* `12ui update` for Claude Code: every config dir on the machine that has the
|
|
156
|
+
* plugin from 12ui-plugin refreshes the marketplace and updates the plugin.
|
|
157
|
+
* One line per such home; a home that fails says why and the others go on.
|
|
158
|
+
*/
|
|
159
|
+
export const refreshAgentPlugins = async (context) => {
|
|
160
|
+
const homes = await discoverClientHomes({
|
|
161
|
+
client: 'claude-code',
|
|
162
|
+
environment: context.environment,
|
|
163
|
+
homeDirectory: context.homeDirectory,
|
|
164
|
+
});
|
|
165
|
+
const lines = await mapWithConcurrency(homes, 4, async (home) => {
|
|
166
|
+
try {
|
|
167
|
+
const refreshed = await refreshClaudePlugin({ home, ...context });
|
|
168
|
+
if (!refreshed)
|
|
169
|
+
return '';
|
|
170
|
+
const version = refreshed.version ? ` ${refreshed.version}` : '';
|
|
171
|
+
return refreshed.status === 'current'
|
|
172
|
+
? `claude-code: ${CLAUDE_PLUGIN_ID}${version} is the newest at ${home}.`
|
|
173
|
+
: `claude-code: updated ${CLAUDE_PLUGIN_ID} to${version} at ${home}; restart Claude Code to load it.`;
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
return `claude-code: ${CLAUDE_PLUGIN_ID} could not be updated at ${home}`
|
|
177
|
+
+ ` (${error instanceof Error ? error.message : String(error)}).`;
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
return lines.filter(Boolean);
|
|
181
|
+
};
|
|
182
|
+
/** Whether a home has the plugin, for `skill status` (file reads only). */
|
|
183
|
+
export const pluginInstalled = async (target) => {
|
|
184
|
+
if (target.client === 'claude-code')
|
|
185
|
+
return isClaudePluginInstalled(clientHome(target));
|
|
186
|
+
if (target.client === 'codex')
|
|
187
|
+
return isCodexPluginInstalled(clientHome(target));
|
|
188
|
+
return undefined;
|
|
189
|
+
};
|
|
190
|
+
//# sourceMappingURL=agent-plugin-step.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-plugin-step.js","sourceRoot":"","sources":["../src/agent-plugin-step.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { type AgentCommandRunner } from './agent-command-runner.js';
|
|
2
|
+
/**
|
|
3
|
+
* The 12ui Design plugin for Claude Code: the shared skill, the hosted
|
|
4
|
+
* `12ui-workspace` MCP server and the Design workspace pane (a mod). It lives
|
|
5
|
+
* in `claude/` of the public repository just-every/12ui-plugin, whose root
|
|
6
|
+
* `.claude-plugin/marketplace.json` names the marketplace `12ui-plugin`.
|
|
7
|
+
*/
|
|
8
|
+
export declare const CLAUDE_MARKETPLACE_NAME = "12ui-plugin";
|
|
9
|
+
export declare const CLAUDE_PLUGIN_ID = "12ui-design@12ui-plugin";
|
|
10
|
+
export declare const CLAUDE_MARKETPLACE_SOURCE = "just-every/12ui-plugin";
|
|
11
|
+
/**
|
|
12
|
+
* The pane is a mod, and mods load from Claude Code 2.1.287. An older Claude
|
|
13
|
+
* Code gets the skill alone, plus one line asking for `claude update`.
|
|
14
|
+
*/
|
|
15
|
+
export declare const CLAUDE_PLUGIN_MIN_VERSION = "2.1.287";
|
|
16
|
+
export declare const claudeVersionSupportsPlugin: (version: string | null) => boolean;
|
|
17
|
+
/** `claude --version` → `2.1.287`, or null when there is no readable answer. */
|
|
18
|
+
export declare const readClaudeVersion: (runner: AgentCommandRunner, environment: NodeJS.ProcessEnv) => Promise<string | null>;
|
|
19
|
+
export type ClaudePluginStatus = {
|
|
20
|
+
status: 'installed' | 'current';
|
|
21
|
+
} | {
|
|
22
|
+
status: 'other';
|
|
23
|
+
pluginId: string;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Installs the plugin into one Claude config dir and leaves the marketplace on
|
|
27
|
+
* auto-update. Every step reads state first, so a second run changes nothing.
|
|
28
|
+
* A `12ui-design` plugin from another marketplace (a future directory
|
|
29
|
+
* listing) is the same plugin: it is left alone and nothing is added beside it.
|
|
30
|
+
*/
|
|
31
|
+
export declare const installClaudePlugin: (args: {
|
|
32
|
+
home: string;
|
|
33
|
+
runner: AgentCommandRunner;
|
|
34
|
+
environment: NodeJS.ProcessEnv;
|
|
35
|
+
homeDirectory: string;
|
|
36
|
+
}) => Promise<ClaudePluginStatus>;
|
|
37
|
+
/** Whether this config dir lists the plugin as installed (status reporting; no process runs). */
|
|
38
|
+
export declare const isClaudePluginInstalled: (home: string) => Promise<boolean>;
|
|
39
|
+
/** Removes what `installClaudePlugin` added: the plugin, then its marketplace. */
|
|
40
|
+
export declare const removeClaudePlugin: (args: {
|
|
41
|
+
home: string;
|
|
42
|
+
runner: AgentCommandRunner;
|
|
43
|
+
environment: NodeJS.ProcessEnv;
|
|
44
|
+
homeDirectory: string;
|
|
45
|
+
}) => Promise<boolean>;
|
|
46
|
+
export type ClaudePluginRefresh = {
|
|
47
|
+
status: 'updated' | 'current';
|
|
48
|
+
version: string | null;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* `12ui update` for one config dir that has the plugin from 12ui-plugin:
|
|
52
|
+
* refresh the marketplace from GitHub, then update the plugin to the version it
|
|
53
|
+
* lists. Returns null when this config dir does not have the plugin.
|
|
54
|
+
*/
|
|
55
|
+
export declare const refreshClaudePlugin: (args: {
|
|
56
|
+
home: string;
|
|
57
|
+
runner: AgentCommandRunner;
|
|
58
|
+
environment: NodeJS.ProcessEnv;
|
|
59
|
+
homeDirectory: string;
|
|
60
|
+
}) => Promise<ClaudePluginRefresh | null>;
|
|
61
|
+
//# sourceMappingURL=claude-plugin-installer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-plugin-installer.d.ts","sourceRoot":"","sources":["../src/claude-plugin-installer.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,2BAA2B,CAAC;AAEnC;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,gBAAgB,CAAC;AACrD,eAAO,MAAM,gBAAgB,4BAA2C,CAAC;AACzE,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAClE;;;GAGG;AACH,eAAO,MAAM,yBAAyB,YAAY,CAAC;AAOnD,eAAO,MAAM,2BAA2B,GAAI,SAAS,MAAM,GAAG,IAAI,KAAG,OAQpE,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,kBAAkB,EAC1B,aAAa,MAAM,CAAC,UAAU,KAC7B,OAAO,CAAC,MAAM,GAAG,IAAI,CAQvB,CAAC;AAwEF,MAAM,MAAM,kBAAkB,GAC1B;IAAE,MAAM,EAAE,WAAW,GAAG,SAAS,CAAA;CAAE,GACnC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAU,MAAM;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;CACvB,KAAG,OAAO,CAAC,kBAAkB,CAwB7B,CAAC;AAEF,iGAAiG;AACjG,eAAO,MAAM,uBAAuB,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,OAAO,CAE3E,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,kBAAkB,GAAU,MAAM;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;CACvB,KAAG,OAAO,CAAC,OAAO,CAclB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAAE,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE5F;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAU,MAAM;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;CACvB,KAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAUrC,CAAC"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { readFile, rename, writeFile } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { agentCommandEnvironment, commandFailure, lastJsonObject, } from './agent-command-runner.js';
|
|
4
|
+
/**
|
|
5
|
+
* The 12ui Design plugin for Claude Code: the shared skill, the hosted
|
|
6
|
+
* `12ui-workspace` MCP server and the Design workspace pane (a mod). It lives
|
|
7
|
+
* in `claude/` of the public repository just-every/12ui-plugin, whose root
|
|
8
|
+
* `.claude-plugin/marketplace.json` names the marketplace `12ui-plugin`.
|
|
9
|
+
*/
|
|
10
|
+
export const CLAUDE_MARKETPLACE_NAME = '12ui-plugin';
|
|
11
|
+
export const CLAUDE_PLUGIN_ID = `12ui-design@${CLAUDE_MARKETPLACE_NAME}`;
|
|
12
|
+
export const CLAUDE_MARKETPLACE_SOURCE = 'just-every/12ui-plugin';
|
|
13
|
+
/**
|
|
14
|
+
* The pane is a mod, and mods load from Claude Code 2.1.287. An older Claude
|
|
15
|
+
* Code gets the skill alone, plus one line asking for `claude update`.
|
|
16
|
+
*/
|
|
17
|
+
export const CLAUDE_PLUGIN_MIN_VERSION = '2.1.287';
|
|
18
|
+
const parseVersion = (value) => {
|
|
19
|
+
const match = /(\d+)\.(\d+)\.(\d+)/.exec(value);
|
|
20
|
+
return match ? [Number(match[1]), Number(match[2]), Number(match[3])] : null;
|
|
21
|
+
};
|
|
22
|
+
export const claudeVersionSupportsPlugin = (version) => {
|
|
23
|
+
const actual = version ? parseVersion(version) : null;
|
|
24
|
+
const floor = parseVersion(CLAUDE_PLUGIN_MIN_VERSION);
|
|
25
|
+
if (!actual)
|
|
26
|
+
return false;
|
|
27
|
+
for (let index = 0; index < 3; index += 1) {
|
|
28
|
+
if (actual[index] !== floor[index])
|
|
29
|
+
return actual[index] > floor[index];
|
|
30
|
+
}
|
|
31
|
+
return true;
|
|
32
|
+
};
|
|
33
|
+
/** `claude --version` → `2.1.287`, or null when there is no readable answer. */
|
|
34
|
+
export const readClaudeVersion = async (runner, environment) => {
|
|
35
|
+
const result = await runner('claude', ['--version'], {
|
|
36
|
+
environment: agentCommandEnvironment(environment),
|
|
37
|
+
timeoutMs: 30_000,
|
|
38
|
+
});
|
|
39
|
+
if (result.exitCode !== 0)
|
|
40
|
+
return null;
|
|
41
|
+
const version = parseVersion(result.stdout);
|
|
42
|
+
return version ? version.join('.') : null;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* `~/.claude` is Claude Code's default config dir, whose `.claude.json` sits
|
|
46
|
+
* beside it in the home directory: setting `CLAUDE_CONFIG_DIR` to it would move
|
|
47
|
+
* that file. Every other profile is reached only through the variable.
|
|
48
|
+
*/
|
|
49
|
+
const claudeEnvironment = (home, environment, homeDirectory) => agentCommandEnvironment(environment, {
|
|
50
|
+
CLAUDE_CONFIG_DIR: path.resolve(home) === path.resolve(homeDirectory, '.claude') ? undefined : home,
|
|
51
|
+
});
|
|
52
|
+
const readJson = async (file) => {
|
|
53
|
+
try {
|
|
54
|
+
const parsed = JSON.parse(await readFile(file, 'utf8'));
|
|
55
|
+
return parsed && typeof parsed === 'object' && !Array.isArray(parsed)
|
|
56
|
+
? parsed
|
|
57
|
+
: null;
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
if (error.code === 'ENOENT')
|
|
61
|
+
return null;
|
|
62
|
+
throw error;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
const record = (value) => (value && typeof value === 'object' && !Array.isArray(value) ? value : {});
|
|
66
|
+
/** Plugin ids Claude Code lists as installed for this config dir, from its own state files. */
|
|
67
|
+
const installedPluginIds = async (home) => {
|
|
68
|
+
const installed = await readJson(path.join(home, 'plugins', 'installed_plugins.json'));
|
|
69
|
+
return Object.keys(record(installed?.plugins));
|
|
70
|
+
};
|
|
71
|
+
/** Claude Code's own entry for the 12ui-plugin marketplace in this config dir, or null. */
|
|
72
|
+
const knownMarketplace = async (home) => {
|
|
73
|
+
const known = await readJson(path.join(home, 'plugins', 'known_marketplaces.json'));
|
|
74
|
+
return known && CLAUDE_MARKETPLACE_NAME in known ? record(known[CLAUDE_MARKETPLACE_NAME]) : null;
|
|
75
|
+
};
|
|
76
|
+
const marketplaceKnown = async (home) => (await knownMarketplace(home)) !== null;
|
|
77
|
+
/**
|
|
78
|
+
* Claude Code updates a marketplace and its plugins at startup when its
|
|
79
|
+
* `autoUpdate` is on, and third-party marketplaces start with it off. The user
|
|
80
|
+
* settings entry `extraKnownMarketplaces["12ui-plugin"].autoUpdate` is the
|
|
81
|
+
* declared source Claude Code syncs that toggle from. `marketplace add`
|
|
82
|
+
* rewrites the entry without it, so this runs after the add. A marketplace
|
|
83
|
+
* Claude Code already knows but whose settings have no entry (or no
|
|
84
|
+
* settings.json at all) gets the entry from the source Claude Code recorded.
|
|
85
|
+
*/
|
|
86
|
+
const ensureAutoUpdate = async (home) => {
|
|
87
|
+
const file = path.join(home, 'settings.json');
|
|
88
|
+
const settings = await readJson(file) ?? {};
|
|
89
|
+
const marketplaces = record(settings.extraKnownMarketplaces);
|
|
90
|
+
const entry = record(marketplaces[CLAUDE_MARKETPLACE_NAME]);
|
|
91
|
+
if (entry.autoUpdate === true)
|
|
92
|
+
return false;
|
|
93
|
+
const source = entry.source ?? (await knownMarketplace(home))?.source;
|
|
94
|
+
if (!source)
|
|
95
|
+
return false;
|
|
96
|
+
const next = {
|
|
97
|
+
...settings,
|
|
98
|
+
extraKnownMarketplaces: { ...marketplaces, [CLAUDE_MARKETPLACE_NAME]: { ...entry, source, autoUpdate: true } },
|
|
99
|
+
};
|
|
100
|
+
const temporary = `${file}.12ui-${process.pid}.tmp`;
|
|
101
|
+
await writeFile(temporary, `${JSON.stringify(next, null, 2)}\n`);
|
|
102
|
+
await rename(temporary, file);
|
|
103
|
+
return true;
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Installs the plugin into one Claude config dir and leaves the marketplace on
|
|
107
|
+
* auto-update. Every step reads state first, so a second run changes nothing.
|
|
108
|
+
* A `12ui-design` plugin from another marketplace (a future directory
|
|
109
|
+
* listing) is the same plugin: it is left alone and nothing is added beside it.
|
|
110
|
+
*/
|
|
111
|
+
export const installClaudePlugin = async (args) => {
|
|
112
|
+
const environment = claudeEnvironment(args.home, args.environment, args.homeDirectory);
|
|
113
|
+
const installed = await installedPluginIds(args.home);
|
|
114
|
+
const other = installed.find((id) => id.startsWith('12ui-design@') && id !== CLAUDE_PLUGIN_ID);
|
|
115
|
+
if (other)
|
|
116
|
+
return { status: 'other', pluginId: other };
|
|
117
|
+
let changed = false;
|
|
118
|
+
if (!(await marketplaceKnown(args.home))) {
|
|
119
|
+
const source = args.environment.TWELVE_UI_CLAUDE_MARKETPLACE?.trim() || CLAUDE_MARKETPLACE_SOURCE;
|
|
120
|
+
const added = await args.runner('claude', ['plugin', 'marketplace', 'add', source, '--json'], { environment });
|
|
121
|
+
if (added.exitCode !== 0)
|
|
122
|
+
throw commandFailure(`claude plugin marketplace add ${source}`, added);
|
|
123
|
+
changed = true;
|
|
124
|
+
}
|
|
125
|
+
if (await ensureAutoUpdate(args.home))
|
|
126
|
+
changed = true;
|
|
127
|
+
if (!installed.includes(CLAUDE_PLUGIN_ID)) {
|
|
128
|
+
const result = await args.runner('claude', ['plugin', 'install', CLAUDE_PLUGIN_ID, '--json'], { environment });
|
|
129
|
+
if (result.exitCode !== 0 || lastJsonObject(result.stdout)?.outcome !== 'ok') {
|
|
130
|
+
throw commandFailure(`claude plugin install ${CLAUDE_PLUGIN_ID}`, result);
|
|
131
|
+
}
|
|
132
|
+
changed = true;
|
|
133
|
+
}
|
|
134
|
+
if (!(await installedPluginIds(args.home)).includes(CLAUDE_PLUGIN_ID)) {
|
|
135
|
+
throw new Error(`claude plugin install ${CLAUDE_PLUGIN_ID} reported success, but ${args.home} does not list it`);
|
|
136
|
+
}
|
|
137
|
+
return { status: changed ? 'installed' : 'current' };
|
|
138
|
+
};
|
|
139
|
+
/** Whether this config dir lists the plugin as installed (status reporting; no process runs). */
|
|
140
|
+
export const isClaudePluginInstalled = async (home) => ((await installedPluginIds(home)).includes(CLAUDE_PLUGIN_ID));
|
|
141
|
+
/** Removes what `installClaudePlugin` added: the plugin, then its marketplace. */
|
|
142
|
+
export const removeClaudePlugin = async (args) => {
|
|
143
|
+
const environment = claudeEnvironment(args.home, args.environment, args.homeDirectory);
|
|
144
|
+
let removed = false;
|
|
145
|
+
if (await isClaudePluginInstalled(args.home)) {
|
|
146
|
+
const result = await args.runner('claude', ['plugin', 'uninstall', CLAUDE_PLUGIN_ID, '--json'], { environment });
|
|
147
|
+
if (result.exitCode !== 0)
|
|
148
|
+
throw commandFailure(`claude plugin uninstall ${CLAUDE_PLUGIN_ID}`, result);
|
|
149
|
+
removed = true;
|
|
150
|
+
}
|
|
151
|
+
if (await marketplaceKnown(args.home)) {
|
|
152
|
+
const result = await args.runner('claude', ['plugin', 'marketplace', 'remove', CLAUDE_MARKETPLACE_NAME], { environment });
|
|
153
|
+
if (result.exitCode !== 0)
|
|
154
|
+
throw commandFailure(`claude plugin marketplace remove ${CLAUDE_MARKETPLACE_NAME}`, result);
|
|
155
|
+
removed = true;
|
|
156
|
+
}
|
|
157
|
+
return removed;
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* `12ui update` for one config dir that has the plugin from 12ui-plugin:
|
|
161
|
+
* refresh the marketplace from GitHub, then update the plugin to the version it
|
|
162
|
+
* lists. Returns null when this config dir does not have the plugin.
|
|
163
|
+
*/
|
|
164
|
+
export const refreshClaudePlugin = async (args) => {
|
|
165
|
+
if (!(await isClaudePluginInstalled(args.home)))
|
|
166
|
+
return null;
|
|
167
|
+
const environment = claudeEnvironment(args.home, args.environment, args.homeDirectory);
|
|
168
|
+
const marketplace = await args.runner('claude', ['plugin', 'marketplace', 'update', CLAUDE_MARKETPLACE_NAME, '--json'], { environment });
|
|
169
|
+
if (marketplace.exitCode !== 0)
|
|
170
|
+
throw commandFailure(`claude plugin marketplace update ${CLAUDE_MARKETPLACE_NAME}`, marketplace);
|
|
171
|
+
const result = await args.runner('claude', ['plugin', 'update', CLAUDE_PLUGIN_ID, '--json'], { environment });
|
|
172
|
+
const outcome = lastJsonObject(result.stdout);
|
|
173
|
+
if (result.exitCode !== 0 || outcome?.outcome !== 'ok')
|
|
174
|
+
throw commandFailure(`claude plugin update ${CLAUDE_PLUGIN_ID}`, result);
|
|
175
|
+
const version = typeof outcome.newVersion === 'string' ? outcome.newVersion : null;
|
|
176
|
+
return { status: outcome.updateOutcome === 'up_to_date' ? 'current' : 'updated', version };
|
|
177
|
+
};
|
|
178
|
+
//# sourceMappingURL=claude-plugin-installer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-plugin-installer.js","sourceRoot":"","sources":["../src/claude-plugin-installer.ts"],"names":[],"mappings":"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"}
|
package/dist/cli-run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-run.d.ts","sourceRoot":"","sources":["../src/cli-run.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-run.d.ts","sourceRoot":"","sources":["../src/cli-run.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,uBAAuB,CAAC;AAsM/B,eAAO,MAAM,MAAM,GACjB,MAAM,MAAM,EAAE,EACd,UAAS;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,kBAAkB,CAAA;CAAO,KACnE,OAAO,CAAC,IAAI,CAoDd,CAAC"}
|
package/dist/cli-run.js
CHANGED
|
@@ -18,6 +18,8 @@ import { runPrototypeCommand } from './cli-prototype-command.js';
|
|
|
18
18
|
import { runRedesignCommand } from './cli-redesign-command.js';
|
|
19
19
|
import { runSceneCommand } from './cli-scene-command.js';
|
|
20
20
|
import { runSkillCommand } from './cli-skill-command.js';
|
|
21
|
+
import { defaultAgentPluginContext } from './agent-plugin-step.js';
|
|
22
|
+
import { runUpdateCommand } from './cli-update-command.js';
|
|
21
23
|
import { runSpendCommand, writeRunDirectorySpendSummary } from './cli-spend-command.js';
|
|
22
24
|
import { printUsage } from './cli-usage.js';
|
|
23
25
|
import { readConversionConfig, readCorpusConfig } from './config.js';
|
|
@@ -46,7 +48,13 @@ const printCapabilities = () => {
|
|
|
46
48
|
const dispatch = async (args) => {
|
|
47
49
|
const { command, flags, journal } = args;
|
|
48
50
|
if (command[0] === 'skill') {
|
|
49
|
-
await runSkillCommand(command[1], flags);
|
|
51
|
+
await runSkillCommand(command[1], flags, { agentPlugins: defaultAgentPluginContext() });
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (command[0] === 'update') {
|
|
55
|
+
if (command.length > 1)
|
|
56
|
+
throw new CliRefusal('12ui update takes no argument', 'update_arguments');
|
|
57
|
+
await runUpdateCommand({ agentPlugins: defaultAgentPluginContext() });
|
|
50
58
|
return;
|
|
51
59
|
}
|
|
52
60
|
if (command[0] === 'auth') {
|
package/dist/cli-run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-run.js","sourceRoot":"","sources":["../src/cli-run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAiB,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,4BAA4B,GAE7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAwB,MAAM,kBAAkB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAEtE;;;;;;;;;GASG;AAEH,MAAM,iBAAiB,GAAG,GAAS,EAAE;IACnC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,IAIvB,EAAiB,EAAE;IAClB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAC3B,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-run.js","sourceRoot":"","sources":["../src/cli-run.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
+
import { type AgentPluginContext } from './agent-plugin-step.js';
|
|
1
2
|
import { type CliFlags } from './cli-arguments.js';
|
|
2
3
|
import { type CliPersistenceResult } from './cli-persistence.js';
|
|
3
4
|
import { prepareConversionCredentials } from './credential-setup.js';
|
|
4
5
|
export type SkillCommandDependencies = {
|
|
5
6
|
persistCli?: () => Promise<CliPersistenceResult>;
|
|
6
7
|
prepareCredentials?: typeof prepareConversionCredentials;
|
|
8
|
+
/**
|
|
9
|
+
* The Claude Code and Codex plugin step. The CLI entry passes the real one;
|
|
10
|
+
* without it the command installs skills only, as it did before plugins.
|
|
11
|
+
*/
|
|
12
|
+
agentPlugins?: AgentPluginContext;
|
|
7
13
|
};
|
|
8
14
|
export declare const runSkillCommand: (action: string | undefined, flags: CliFlags, dependencies?: SkillCommandDependencies) => Promise<void>;
|
|
9
15
|
//# sourceMappingURL=cli-skill-command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-skill-command.d.ts","sourceRoot":"","sources":["../src/cli-skill-command.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAqB,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAQpF,OAAO,EACL,4BAA4B,EAG7B,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-skill-command.d.ts","sourceRoot":"","sources":["../src/cli-skill-command.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAA2B,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAqB,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAQpF,OAAO,EACL,4BAA4B,EAG7B,MAAM,uBAAuB,CAAC;AA2I/B,MAAM,MAAM,wBAAwB,GAAG;IACrC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACjD,kBAAkB,CAAC,EAAE,OAAO,4BAA4B,CAAC;IACzD;;;OAGG;IACH,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,QAAQ,MAAM,GAAG,SAAS,EAC1B,OAAO,QAAQ,EACf,eAAc,wBAA6B,KAC1C,OAAO,CAAC,IAAI,CAmLd,CAAC"}
|