grok-bot-cli 0.7.0 → 0.9.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.
- package/CHANGELOG.md +16 -0
- package/README.md +12 -0
- package/dist/.claude-plugin/marketplace.json +1 -1
- package/dist/.claude-plugin/plugin.json +1 -1
- package/dist/.codex-plugin/plugin.json +1 -1
- package/dist/.cursor-plugin/plugin.json +1 -1
- package/dist/INSTALL.md +14 -9
- package/dist/README.md +12 -0
- package/dist/agent-bundle.compile-evidence.json +1 -1
- package/dist/agent-bundle.manifest.json +1 -1
- package/dist/agent-bundle.package-compile-evidence.json +1 -1
- package/dist/bin/gbot-flight.mjs +474 -106
- package/dist/bin/gbot-install.js +10 -5
- package/dist/bin/gbot.mjs +894 -229
- package/dist/install.mjs +21 -14
- package/dist/mcp/mcp-grok-bot-b8c2461e-flight.mjs +223 -32
- package/dist/mcp/mcp-grok-bot-b8c2461e.mjs +529 -156
- package/dist/package.json +3 -3
- package/dist/plugin.json +1 -1
- package/dist/scripts/gbot-relay.mjs +2132 -12
- package/dist/skills/talk-to-grok-bot/SKILL.md +8 -0
- package/package.json +3 -3
package/dist/bin/gbot-install.js
CHANGED
|
@@ -29873,13 +29873,13 @@ const collectDoctorHost = (value, previous)=>[
|
|
|
29873
29873
|
const registerLifecycleCommands = (program, options)=>{
|
|
29874
29874
|
const { from: pinned, lifecycle, machine, setExitCode, show } = options;
|
|
29875
29875
|
const fromOption = (command, help, defaultToCwd = false)=>void 0 === pinned ? command.option('--from <bundle-dir>', help, defaultToCwd ? process.cwd() : void 0) : command;
|
|
29876
|
-
const installCommand = fromOption(program.command('install').description('Install a built bundle into a supported host').argument('<host>', 'Destination host: amp, claude, codex, or cursor', installHost), 'Target bundle directory or artifact root', true).option('--scope <scope>', 'Host install scope', installScope, 'user').option('--replace', "Replace an existing agent-bundle install of this plugin even when its version differs; same-version content drift is replaced automatically and foreign installs are always refused").option('--mode <mode>', 'Cursor delivery mode: local (default) or marketplace', installMode).option('--json', 'Write one machine-readable JSON document');
|
|
29876
|
+
const installCommand = fromOption(program.command('install').description('Install a built bundle into a supported host').argument('<host>', 'Destination host: amp, claude, codex, or cursor', installHost), 'Target bundle directory or artifact root', true).option('--scope <scope>', 'Host install scope', installScope, 'user').option('--replace', "Replace an existing agent-bundle install of this plugin even when its version differs; same-version content drift is replaced automatically and foreign installs are always refused").option('--force', 'Alias for --replace').option('--mode <mode>', 'Cursor delivery mode: local (default) or marketplace', installMode).option('--json', 'Write one machine-readable JSON document');
|
|
29877
29877
|
installCommand.action(async (host, commandOptions)=>{
|
|
29878
29878
|
const { installBundle: install } = await lifecycle();
|
|
29879
29879
|
const result = await install({
|
|
29880
29880
|
from: pinned ?? commandOptions.from ?? process.cwd(),
|
|
29881
29881
|
host,
|
|
29882
|
-
replace: true === commandOptions.replace,
|
|
29882
|
+
replace: true === commandOptions.replace || true === commandOptions.force,
|
|
29883
29883
|
...void 0 === commandOptions.mode ? {} : {
|
|
29884
29884
|
mode: commandOptions.mode
|
|
29885
29885
|
},
|
|
@@ -39391,8 +39391,13 @@ const installPublicCli = async (options, identity, host, scope)=>{
|
|
|
39391
39391
|
previousContentHash = installed?.hash ?? previousReceipt?.contentHash;
|
|
39392
39392
|
}
|
|
39393
39393
|
}
|
|
39394
|
+
if (replaced && 'codex' === host && entry?.enabled !== true) {
|
|
39395
|
+
const reason = entry?.enabled === false ? 'plugin list reports enabled: false' : 'plugin list omits enabled';
|
|
39396
|
+
throw identity_failure('AB7004', `Cannot replace the Codex install of ${id}: ${reason}. The native plugin CLI has no qualified settings-preserving update API, and native \`plugin add\` resets plugin-level enabled to true. Enable the plugin in Codex before replacing, or leave this install unchanged.`, host);
|
|
39397
|
+
}
|
|
39394
39398
|
const recorded = await receiptIdentity();
|
|
39395
|
-
|
|
39399
|
+
const replaceRemovesPlugin = replaced && 'codex' !== host;
|
|
39400
|
+
if (replaceRemovesPlugin) await runHostCommand(runner, identity, host, publicHostUninstallArguments(host, id, scope), 'removal');
|
|
39396
39401
|
await runHostCommand(runner, identity, host, [
|
|
39397
39402
|
'plugin',
|
|
39398
39403
|
'marketplace',
|
|
@@ -39438,7 +39443,7 @@ const installPublicCli = async (options, identity, host, scope)=>{
|
|
|
39438
39443
|
} catch (error) {
|
|
39439
39444
|
if (void 0 !== stateRollback) await stateRollback();
|
|
39440
39445
|
const rollbacks = [
|
|
39441
|
-
...pluginInstalled ? [
|
|
39446
|
+
...pluginInstalled && !('codex' === host && replaced) ? [
|
|
39442
39447
|
publicHostUninstallArguments(host, id, scope)
|
|
39443
39448
|
] : [],
|
|
39444
39449
|
...createdMarketplace ? [
|
|
@@ -41647,7 +41652,7 @@ const doctor_readPublicHostInventory = (host, identity, listing, environment, ho
|
|
|
41647
41652
|
marketplace: identity.marketplace ?? '',
|
|
41648
41653
|
plugin: identity.plugin
|
|
41649
41654
|
});
|
|
41650
|
-
const publicHostReplaceRecipe = (host, scopeArguments = '')=>'claude' === host ? `Rerun \`agent-bundle install claude --from <bundle-dir>${scopeArguments}\`; same-version content drift is replaced through \`claude plugin uninstall --keep-data\` + \`claude plugin install\` because Claude\'s \`plugin update\` is version-gated.` : "Rerun `agent-bundle install codex --from <bundle-dir>`; same-version content drift is replaced through `codex plugin
|
|
41655
|
+
const publicHostReplaceRecipe = (host, scopeArguments = '')=>'claude' === host ? `Rerun \`agent-bundle install claude --from <bundle-dir>${scopeArguments}\`; same-version content drift is replaced through \`claude plugin uninstall --keep-data\` + \`claude plugin install\` because Claude\'s \`plugin update\` is version-gated.` : "Rerun `agent-bundle install codex --from <bundle-dir>`; same-version content drift is replaced through `codex plugin add` so plugin settings and nested MCP overrides in config.toml survive. Replacement is refused (`AB7004`) when plugin list reports `enabled: false` or omits `enabled`, because the native plugin CLI has no qualified settings-preserving update API.";
|
|
41651
41656
|
const hostLoadFailureDiagnostic = (host, copy, errors, replaceHint = '')=>doctor_diagnostic('AB7325', `${host} refused to load ${copy}: ${errors.join(' | ')}`, `Fix the artifact so \`${host} plugin list --json\` reports no \`errors\` for it, rebuild, and rerun \`agent-bundle install ${host} --from <bundle-dir>${replaceHint} --replace\`.`, 'error', host);
|
|
41652
41657
|
const disabledInstallDiagnostic = (identity, version, installPath, scope)=>doctor_diagnostic('AB7327', `claude lists ${identity.plugin}@${version} at ${installPath}${void 0 === scope ? '' : ` (scope ${scope})`} as disabled (\`enabled: false\`): the copy is installed but none of it loads in a session.`, `Run \`claude plugin enable ${identity.plugin}${void 0 === identity.marketplace ? '' : `@${identity.marketplace}`}${void 0 === scope ? '' : ` --scope ${scope}`}\` (or \`/plugin\` in a session), then rerun Doctor; reinstalling does not enable a disabled plugin.`, 'warning', 'claude');
|
|
41653
41658
|
const publicHostInstallComparison = async (host, identity, artifact, inventory)=>{
|