@kwonye/mcpx 0.1.104 → 0.1.105

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/dist/cli.js CHANGED
@@ -11,6 +11,7 @@ import {
11
11
  clearOAuthCredentials,
12
12
  defaultAuthSecretName,
13
13
  durationBucket,
14
+ exportEnvironment,
14
15
  extractRequiredInputs,
15
16
  fetchRegistryServerDetail,
16
17
  flushTelemetry,
@@ -19,6 +20,7 @@ import {
19
20
  getStagedCliPath,
20
21
  getStagedUpdate,
21
22
  getTelemetryStatus,
23
+ importEnvironment,
22
24
  initializeTelemetry,
23
25
  isOAuthReference,
24
26
  listAuthBindings,
@@ -49,30 +51,36 @@ import {
49
51
  stopDaemon,
50
52
  toSecretRef,
51
53
  updateTelemetryPreferences
52
- } from "./chunk-941dqsx2.js";
53
- import"./chunk-s9v1epnk.js";
54
+ } from "./chunk-t4hqf6yh.js";
55
+ import"./chunk-btbww96n.js";
54
56
  import {
55
57
  APP_VERSION,
58
+ customizeSkill,
56
59
  deleteSkill,
57
60
  getAdapters,
58
61
  getGatewayUrl,
59
62
  getSkill,
63
+ installSkillFromSource,
60
64
  listSkills,
61
65
  loadManagedIndex,
62
66
  mutateActiveConfig,
63
67
  mutateConfig,
64
68
  mutateProjectConfig,
65
69
  persistSyncState,
70
+ pinSkill,
71
+ rollbackSkill,
66
72
  saveSkill,
67
- syncAllClients
68
- } from "./chunk-z1k63fa3.js";
73
+ syncAllClients,
74
+ unpinSkill,
75
+ updateSkill
76
+ } from "./chunk-56whm3hm.js";
69
77
  import {
70
78
  ConfigLoadError,
71
79
  loadConfig,
72
80
  loadMergedConfig,
73
81
  loadProjectConfig,
74
82
  resolveActiveConfig
75
- } from "./chunk-wq4zd3t7.js";
83
+ } from "./chunk-01s7rhx3.js";
76
84
  import {
77
85
  SecretsManager,
78
86
  addServer,
@@ -82,12 +90,12 @@ import {
82
90
  removeServer,
83
91
  rotateGatewayToken,
84
92
  setServerEnabled
85
- } from "./chunk-cz8cdmw1.js";
93
+ } from "./chunk-fw8dyt89.js";
86
94
  import {
87
95
  getConfigPath,
88
96
  getManagedIndexPath,
89
97
  getSecretsStorePath
90
- } from "./chunk-cqenqnxk.js";
98
+ } from "./chunk-4y0t0tfj.js";
91
99
  import {
92
100
  isServerEnabled
93
101
  } from "./chunk-bjw71y54.js";
@@ -35545,7 +35553,10 @@ function registerSkillsCommands(program) {
35545
35553
  process.exitCode = 1;
35546
35554
  return;
35547
35555
  }
35548
- saveSkill(id, `# ${id}
35556
+ saveSkill(id, `---
35557
+ name: ${id}
35558
+ description: Instructions for using ${id}.
35559
+ ---
35549
35560
 
35550
35561
  Add your instructions here.`);
35551
35562
  const summary = syncAllClients(loadConfig(), new SecretsManager);
@@ -35576,6 +35587,84 @@ Add your instructions here.`);
35576
35587
  properties: { operation: "skill_remove", outcome: "success", durationBucket: durationBucket(Date.now() - startedAt) }
35577
35588
  });
35578
35589
  });
35590
+ skill.command("customize <id>").option("--name <name>", "Name for the authored copy").description("Create an editable authored copy of an installed skill").action((id, options) => {
35591
+ const customized = customizeSkill(id, options.name ?? id);
35592
+ process.stdout.write(`Skill "${customized.id}" is now editable.
35593
+ `);
35594
+ });
35595
+ skill.command("install <source>").option("--skill <name>", "Skill directory name when a source contains multiple skills").description("Install an Agent Skill package from a local, Git, GitHub, or npm source").action(async (source, options) => {
35596
+ try {
35597
+ const installed = await installSkillFromSource(source, options.skill);
35598
+ const summary = syncAllClients(loadConfig(), new SecretsManager);
35599
+ await mutateConfig((freshConfig) => persistSyncState(summary, freshConfig));
35600
+ process.stdout.write(`Skill installed: ${installed.id}
35601
+ `);
35602
+ } catch (error2) {
35603
+ process.stderr.write(`Error: ${error2 instanceof Error ? error2.message : String(error2)}
35604
+ `);
35605
+ process.exitCode = 1;
35606
+ }
35607
+ });
35608
+ skill.command("pin <id>").description("Pin an installed skill at its current revision").action((id) => {
35609
+ pinSkill(id);
35610
+ process.stdout.write(`Skill pinned: ${id}
35611
+ `);
35612
+ });
35613
+ skill.command("unpin <id>").description("Allow an installed skill to update").action((id) => {
35614
+ unpinSkill(id);
35615
+ process.stdout.write(`Skill unpinned: ${id}
35616
+ `);
35617
+ });
35618
+ skill.command("update <id>").description("Update an installed skill from its source").action(async (id) => {
35619
+ const skill2 = await updateSkill(id);
35620
+ const summary = syncAllClients(loadConfig(), new SecretsManager);
35621
+ await mutateConfig((freshConfig) => persistSyncState(summary, freshConfig));
35622
+ process.stdout.write(`Skill updated: ${skill2.id}
35623
+ `);
35624
+ });
35625
+ skill.command("rollback <id>").description("Restore the previous installed skill revision").action(async (id) => {
35626
+ const skill2 = rollbackSkill(id);
35627
+ const summary = syncAllClients(loadConfig(), new SecretsManager);
35628
+ await mutateConfig((freshConfig) => persistSyncState(summary, freshConfig));
35629
+ process.stdout.write(`Skill rolled back: ${skill2.id}
35630
+ `);
35631
+ });
35632
+ }
35633
+ function registerShareCommands(program) {
35634
+ const share = program.command("share").description("Export and import portable mcpx environments");
35635
+ share.command("export <directory>").option("--skill <id>", "Only include this skill (repeatable)", (value, previous = []) => [...previous, value]).option("--plugin <id>", "Only include this plugin (repeatable)", (value, previous = []) => [...previous, value]).description("Export a Git-friendly environment folder").action((directory, options) => {
35636
+ try {
35637
+ const result = exportEnvironment(directory, { skills: options.skill, plugins: options.plugin });
35638
+ process.stdout.write(`Environment exported to ${path2.resolve(directory)}
35639
+ `);
35640
+ process.stdout.write(`${result.environment.skills.length} skill(s), ${result.environment.plugins.length} plugin(s), ${Object.keys(result.environment.servers).length} server(s)
35641
+ `);
35642
+ } catch (error2) {
35643
+ process.stderr.write(`Error: ${error2 instanceof Error ? error2.message : String(error2)}
35644
+ `);
35645
+ process.exitCode = 1;
35646
+ }
35647
+ });
35648
+ share.command("import <directory>").option("--dry-run", "Validate and preview without changing local state").option("--locked", "Require manifest and package hashes to match the lockfile").option("--input <name=value>", "Provide a recipient input", (value, previous = {}) => {
35649
+ const separator = value.indexOf("=");
35650
+ if (separator <= 0)
35651
+ throw new Error("Inputs must use name=value");
35652
+ return { ...previous, [value.slice(0, separator)]: value.slice(separator + 1) };
35653
+ }, {}).description("Import a portable environment folder").action(async (directory, options) => {
35654
+ try {
35655
+ const result = await importEnvironment(directory, { dryRun: options.dryRun, locked: options.locked, inputs: options.input });
35656
+ process.stdout.write(JSON.stringify(result, null, 2) + `
35657
+ `);
35658
+ if (!options.dryRun) {
35659
+ const summary = syncAllClients(loadConfig(), new SecretsManager);
35660
+ await mutateConfig((freshConfig) => persistSyncState(summary, freshConfig));
35661
+ }
35662
+ } catch (error2) {
35663
+ process.stderr.write(`Error: ${error2 instanceof Error ? error2.message : String(error2)}
35664
+ `);
35665
+ process.exitCode = 1;
35666
+ }
35667
+ });
35579
35668
  }
35580
35669
  function registerClientsCommands(program) {
35581
35670
  const clients = program.command("clients").description("Client adapter utilities");
@@ -35703,11 +35792,11 @@ function registerProjectCommands(program, cliPath) {
35703
35792
  name: projectName,
35704
35793
  servers: {}
35705
35794
  };
35706
- const { saveProjectConfig } = await import("./chunk-31brdz5s.js");
35795
+ const { saveProjectConfig } = await import("./chunk-6mxr34tc.js");
35707
35796
  saveProjectConfig(localConfig, targetPath);
35708
35797
  process.stdout.write(`Initialized project configuration at: ${targetPath}
35709
35798
  `);
35710
- const { registerProject: registerProject2 } = await import("./chunk-z34m83m4.js");
35799
+ const { registerProject: registerProject2 } = await import("./chunk-y9a1rx7j.js");
35711
35800
  await mutateConfig((globalConfig) => {
35712
35801
  registerProject2(globalConfig, process.cwd(), projectName);
35713
35802
  });
@@ -35745,7 +35834,7 @@ function registerProjectCommands(program, cliPath) {
35745
35834
  return;
35746
35835
  }
35747
35836
  const entry = globalConfig.projects[resolvedPath];
35748
- const { unregisterProject: unregisterProject2 } = await import("./chunk-z34m83m4.js");
35837
+ const { unregisterProject: unregisterProject2 } = await import("./chunk-y9a1rx7j.js");
35749
35838
  await mutateConfig((freshConfig) => {
35750
35839
  unregisterProject2(freshConfig, resolvedPath);
35751
35840
  });
@@ -35763,7 +35852,7 @@ function registerProjectCommands(program, cliPath) {
35763
35852
  function registerPluginCommands(program, _cliPath) {
35764
35853
  const plugin = program.command("plugin").description("Manage plugins");
35765
35854
  plugin.command("inspect <source>").description("Inspect plugin manifest and components").action(async (source) => {
35766
- const { inspectPlugin } = await import("./chunk-b58zsdp4.js");
35855
+ const { inspectPlugin } = await import("./chunk-am903qjk.js");
35767
35856
  try {
35768
35857
  const info = await inspectPlugin(source);
35769
35858
  process.stdout.write(JSON.stringify(info, null, 2) + `
@@ -35781,7 +35870,7 @@ function registerPluginCommands(program, _cliPath) {
35781
35870
  const marketplaceName = source.includes("@") ? source.slice(source.lastIndexOf("@") + 1) : "";
35782
35871
  let p;
35783
35872
  if (config.marketplaces?.[marketplaceName]) {
35784
- const { inspectMarketplacePlugin, installMarketplacePlugin } = await import("./chunk-02r7k4ax.js");
35873
+ const { inspectMarketplacePlugin, installMarketplacePlugin } = await import("./chunk-d2v9rxy0.js");
35785
35874
  const detail = await inspectMarketplacePlugin(source);
35786
35875
  process.stdout.write(`${detail.displayName} (${source})
35787
35876
  `);
@@ -35809,7 +35898,7 @@ function registerPluginCommands(program, _cliPath) {
35809
35898
  }
35810
35899
  p = await installMarketplacePlugin(source);
35811
35900
  } else {
35812
- const { installPlugin } = await import("./chunk-b58zsdp4.js");
35901
+ const { installPlugin } = await import("./chunk-am903qjk.js");
35813
35902
  p = await installPlugin(source, { name: options.name, enabled: options.enable !== false });
35814
35903
  }
35815
35904
  process.stdout.write(`Plugin installed: ${p.id}
@@ -35827,14 +35916,14 @@ function registerPluginCommands(program, _cliPath) {
35827
35916
  });
35828
35917
  const marketplace = plugin.command("marketplace").description("Manage plugin marketplaces");
35829
35918
  marketplace.command("list").description("List configured plugin marketplaces").action(async () => {
35830
- const { listMarketplaces } = await import("./chunk-02r7k4ax.js");
35919
+ const { listMarketplaces } = await import("./chunk-d2v9rxy0.js");
35831
35920
  process.stdout.write(JSON.stringify(await listMarketplaces(), null, 2) + `
35832
35921
  `);
35833
35922
  });
35834
35923
  marketplace.command("add <source>").option("--manifest <path>", "Marketplace manifest path inside the source").description("Add a Claude or Codex plugin marketplace").action(async (source, options) => {
35835
35924
  const startedAt = Date.now();
35836
35925
  try {
35837
- const { addMarketplace } = await import("./chunk-02r7k4ax.js");
35926
+ const { addMarketplace } = await import("./chunk-d2v9rxy0.js");
35838
35927
  const added = await addMarketplace(source, options.manifest);
35839
35928
  process.stdout.write(`Marketplace added: ${added.name}
35840
35929
  `);
@@ -35852,7 +35941,7 @@ function registerPluginCommands(program, _cliPath) {
35852
35941
  marketplace.command("update [name]").description("Refresh one marketplace, or every configured marketplace").action(async (name) => {
35853
35942
  const startedAt = Date.now();
35854
35943
  try {
35855
- const { listMarketplaces, refreshMarketplaceWithPlugins } = await import("./chunk-02r7k4ax.js");
35944
+ const { listMarketplaces, refreshMarketplaceWithPlugins } = await import("./chunk-d2v9rxy0.js");
35856
35945
  const names = name ? [name] : (await listMarketplaces()).map((entry) => entry.name);
35857
35946
  for (const marketplaceName of names) {
35858
35947
  const result = await refreshMarketplaceWithPlugins(marketplaceName);
@@ -35888,7 +35977,7 @@ function registerPluginCommands(program, _cliPath) {
35888
35977
  rl.close();
35889
35978
  }
35890
35979
  }
35891
- const { removeMarketplace } = await import("./chunk-02r7k4ax.js");
35980
+ const { removeMarketplace } = await import("./chunk-d2v9rxy0.js");
35892
35981
  await removeMarketplace(name);
35893
35982
  process.stdout.write(`Marketplace removed: ${name}
35894
35983
  `);
@@ -35904,7 +35993,7 @@ function registerPluginCommands(program, _cliPath) {
35904
35993
  }
35905
35994
  });
35906
35995
  plugin.command("discover [query]").option("--marketplace <name>", "Filter by marketplace").option("--category <category>", "Filter by category").description("Browse available marketplace plugins").action(async (query, options) => {
35907
- const { listMarketplacePlugins } = await import("./chunk-02r7k4ax.js");
35996
+ const { listMarketplacePlugins } = await import("./chunk-d2v9rxy0.js");
35908
35997
  let listings = await listMarketplacePlugins(query);
35909
35998
  if (options.marketplace)
35910
35999
  listings = listings.filter((entry) => entry.marketplace === options.marketplace);
@@ -35915,7 +36004,7 @@ function registerPluginCommands(program, _cliPath) {
35915
36004
  });
35916
36005
  plugin.command("details <plugin>").description("Inspect a plugin@marketplace listing").action(async (qualified) => {
35917
36006
  try {
35918
- const { inspectMarketplacePlugin } = await import("./chunk-02r7k4ax.js");
36007
+ const { inspectMarketplacePlugin } = await import("./chunk-d2v9rxy0.js");
35919
36008
  process.stdout.write(JSON.stringify(await inspectMarketplacePlugin(qualified), null, 2) + `
35920
36009
  `);
35921
36010
  } catch (error2) {
@@ -35925,7 +36014,7 @@ function registerPluginCommands(program, _cliPath) {
35925
36014
  }
35926
36015
  });
35927
36016
  plugin.command("approve <name> <component>").description("Approve a plugin component (hooks, mcpServers)").action(async (name, component) => {
35928
- const { approvePluginComponent } = await import("./chunk-b58zsdp4.js");
36017
+ const { approvePluginComponent } = await import("./chunk-am903qjk.js");
35929
36018
  try {
35930
36019
  await approvePluginComponent(name, component);
35931
36020
  process.stdout.write(`Approved ${component} for plugin ${name}
@@ -35936,8 +36025,32 @@ function registerPluginCommands(program, _cliPath) {
35936
36025
  process.exit(1);
35937
36026
  }
35938
36027
  });
36028
+ plugin.command("pin <name>").description("Pin a plugin at its current revision").action(async (name) => {
36029
+ const { pinPlugin } = await import("./chunk-am903qjk.js");
36030
+ await pinPlugin(name);
36031
+ process.stdout.write(`Plugin pinned: ${name}
36032
+ `);
36033
+ });
36034
+ plugin.command("unpin <name>").description("Allow a pinned plugin to update").action(async (name) => {
36035
+ const { unpinPlugin } = await import("./chunk-am903qjk.js");
36036
+ await unpinPlugin(name);
36037
+ process.stdout.write(`Plugin unpinned: ${name}
36038
+ `);
36039
+ });
36040
+ plugin.command("rollback <name>").description("Restore the previous installed plugin revision").action(async (name) => {
36041
+ try {
36042
+ const { rollbackPlugin } = await import("./chunk-am903qjk.js");
36043
+ const plugin2 = await rollbackPlugin(name);
36044
+ process.stdout.write(`Plugin rolled back: ${plugin2.name}
36045
+ `);
36046
+ } catch (error2) {
36047
+ process.stderr.write(`Error: ${error2 instanceof Error ? error2.message : String(error2)}
36048
+ `);
36049
+ process.exitCode = 1;
36050
+ }
36051
+ });
35939
36052
  plugin.command("prepare <name>").description("Install plugin dependencies").action(async (name) => {
35940
- const { preparePlugin } = await import("./chunk-b58zsdp4.js");
36053
+ const { preparePlugin } = await import("./chunk-am903qjk.js");
35941
36054
  try {
35942
36055
  await preparePlugin(name);
35943
36056
  process.stdout.write(`Plugin ${name} prepared
@@ -35950,7 +36063,7 @@ function registerPluginCommands(program, _cliPath) {
35950
36063
  });
35951
36064
  plugin.command("update <name>").description("Update plugin to latest version").action(async (name) => {
35952
36065
  const startedAt = Date.now();
35953
- const { updatePlugin } = await import("./chunk-b58zsdp4.js");
36066
+ const { updatePlugin } = await import("./chunk-am903qjk.js");
35954
36067
  try {
35955
36068
  const p = await updatePlugin(name);
35956
36069
  process.stdout.write(`Plugin ${name} updated to ${p.version}
@@ -35968,7 +36081,7 @@ function registerPluginCommands(program, _cliPath) {
35968
36081
  });
35969
36082
  plugin.command("uninstall <name>").option("--keep-data", "Keep plugin data after uninstall").description("Uninstall plugin").action(async (name, options) => {
35970
36083
  const startedAt = Date.now();
35971
- const { uninstallPlugin } = await import("./chunk-b58zsdp4.js");
36084
+ const { uninstallPlugin } = await import("./chunk-am903qjk.js");
35972
36085
  try {
35973
36086
  await uninstallPlugin(name, options.keepData || false);
35974
36087
  process.stdout.write(`Plugin ${name} uninstalled
@@ -35988,13 +36101,13 @@ function registerPluginCommands(program, _cliPath) {
35988
36101
  const startedAt = Date.now();
35989
36102
  try {
35990
36103
  if (options.project) {
35991
- const { setPluginProjectOverride } = await import("./chunk-b58zsdp4.js");
36104
+ const { setPluginProjectOverride } = await import("./chunk-am903qjk.js");
35992
36105
  const resolvedPath = path2.resolve(options.project);
35993
36106
  await setPluginProjectOverride(name, resolvedPath, { enabled: true });
35994
36107
  process.stdout.write(`Plugin ${name} enabled for project: ${resolvedPath}
35995
36108
  `);
35996
36109
  } else {
35997
- const { enablePlugin } = await import("./chunk-b58zsdp4.js");
36110
+ const { enablePlugin } = await import("./chunk-am903qjk.js");
35998
36111
  await enablePlugin(name);
35999
36112
  process.stdout.write(`Plugin ${name} enabled
36000
36113
  `);
@@ -36014,13 +36127,13 @@ function registerPluginCommands(program, _cliPath) {
36014
36127
  const startedAt = Date.now();
36015
36128
  try {
36016
36129
  if (options.project) {
36017
- const { setPluginProjectOverride } = await import("./chunk-b58zsdp4.js");
36130
+ const { setPluginProjectOverride } = await import("./chunk-am903qjk.js");
36018
36131
  const resolvedPath = path2.resolve(options.project);
36019
36132
  await setPluginProjectOverride(name, resolvedPath, { enabled: false });
36020
36133
  process.stdout.write(`Plugin ${name} disabled for project: ${resolvedPath}
36021
36134
  `);
36022
36135
  } else {
36023
- const { disablePlugin } = await import("./chunk-b58zsdp4.js");
36136
+ const { disablePlugin } = await import("./chunk-am903qjk.js");
36024
36137
  await disablePlugin(name);
36025
36138
  process.stdout.write(`Plugin ${name} disabled
36026
36139
  `);
@@ -36037,7 +36150,7 @@ function registerPluginCommands(program, _cliPath) {
36037
36150
  }
36038
36151
  });
36039
36152
  plugin.command("status [name]").description("Show plugin status").action(async (name) => {
36040
- const { getPluginStatus, listPlugins } = await import("./chunk-b58zsdp4.js");
36153
+ const { getPluginStatus, listPlugins } = await import("./chunk-am903qjk.js");
36041
36154
  try {
36042
36155
  if (name) {
36043
36156
  const p = await getPluginStatus(name);
@@ -36062,7 +36175,7 @@ function registerPluginCommands(program, _cliPath) {
36062
36175
  }
36063
36176
  function registerPluginHostCommand(program) {
36064
36177
  program.command("plugin-host <plugin> <server>").description("Run a plugin MCP server under mcpx policy enforcement").action(async (plugin, server) => {
36065
- const { runPluginHost } = await import("./chunk-0xhdyt4z.js");
36178
+ const { runPluginHost } = await import("./chunk-h158rkts.js");
36066
36179
  runPluginHost(plugin, server);
36067
36180
  });
36068
36181
  }
@@ -36267,7 +36380,7 @@ async function runCli(argv = process.argv) {
36267
36380
  const isUpdateCommand = rawArgs[0] === "update";
36268
36381
  const runtime = rawArgs[0] === "daemon" && rawArgs[1] === "run" ? "daemon" : "cli";
36269
36382
  showCliTelemetryNotice(rawArgs);
36270
- const release2 = "mcpx@0.1.104";
36383
+ const release2 = "mcpx@0.1.105";
36271
36384
  const telemetryVersion = release2.startsWith("mcpx@") ? release2.slice("mcpx@".length) : APP_VERSION;
36272
36385
  initializeTelemetry(runtime, {
36273
36386
  release: release2,
@@ -36333,6 +36446,7 @@ async function runCli(argv = process.argv) {
36333
36446
  registerAuthCommands(program);
36334
36447
  registerClientsCommands(program);
36335
36448
  registerSkillsCommands(program);
36449
+ registerShareCommands(program);
36336
36450
  registerPluginHostCommand(program);
36337
36451
  registerProxyCommand(program);
36338
36452
  registerMcpCompat(program, cliPath);
@@ -36389,4 +36503,4 @@ export {
36389
36503
  runCli
36390
36504
  };
36391
36505
 
36392
- //# debugId=84BFD5A8A8D0CFC564756E2164756E21
36506
+ //# debugId=E339096DA1CB727464756E2164756E21
@@ -13,7 +13,9 @@ export type { DaemonStatus, DaemonStartResult } from "./daemon.js";
13
13
  export { syncAllClients, getGatewayUrl, getGatewayInternalUrl, persistSyncState } from "./sync.js";
14
14
  export type { SyncSummary } from "./sync.js";
15
15
  export { addServer, removeServer, updateServer, setServerEnabled, setProjectServerEnabled, registerProject, unregisterProject, ensureGatewayToken, rotateGatewayToken } from "./registry.js";
16
- export { listSkills, getSkill, saveSkill, deleteSkill } from "./skills.js";
16
+ export { listSkills, getSkill, saveSkill, deleteSkill, customizeSkill, installSkillFromSource, validateSkillPackage, pinSkill, unpinSkill, updateSkill, rollbackSkill } from "./skills.js";
17
+ export { exportEnvironment, importEnvironment } from "./share.js";
18
+ export type { ShareEnvironment, ShareLock } from "./share.js";
17
19
  export { SecretsManager } from "./secrets.js";
18
20
  export { applyAuthReference, removeAuthReference, listAuthBindings, resolveAuthTarget, defaultAuthSecretName, maybePrefixBearer, secretRefName, toSecretRef } from "./server-auth.js";
19
21
  export { buildStatusReport, STATUS_CLIENTS } from "./status.js";
@@ -30,8 +32,8 @@ export { parseSource } from "./plugin-source.js";
30
32
  export { readManifest, discoverComponents, hasManifest } from "./plugin-parse.js";
31
33
  export { addMarketplace, removeMarketplace, refreshMarketplace, refreshMarketplaceWithPlugins, setMarketplaceAutoUpdate, listMarketplaces, listMarketplacePlugins, inspectMarketplacePlugin, installMarketplacePlugin, updateMarketplaceInstalledPlugin, } from "./marketplace.js";
32
34
  export { startMarketplaceAutoUpdater, runMarketplaceAutoUpdate } from "./marketplace-updater.js";
33
- export { inspectPlugin, installPlugin, preparePlugin, updatePlugin, uninstallPlugin, enablePlugin, disablePlugin, setPluginProjectOverride, resetPluginProjectOverride, approvePluginComponent, getPluginStatus, listPlugins, pluginConfigSet, pluginSync, resolvePluginId } from "./plugin-manager.js";
34
- export { getConfigPath, getManagedIndexPath, getTelemetryPath } from "./paths.js";
35
+ export { inspectPlugin, installPlugin, preparePlugin, updatePlugin, pinPlugin, unpinPlugin, rollbackPlugin, uninstallPlugin, enablePlugin, disablePlugin, setPluginProjectOverride, resetPluginProjectOverride, approvePluginComponent, getPluginStatus, listPlugins, pluginConfigSet, pluginSync, resolvePluginId } from "./plugin-manager.js";
36
+ export { getConfigPath, getManagedIndexPath, getTelemetryPath, getSkillsDir, getSkillPackagesRoot } from "./paths.js";
35
37
  export { checkForUpdates, getStagedUpdate, getStagedCliPath, clearStagedUpdate, compareVersions, shouldUseStagedCli } from "./update.js";
36
38
  export type { UpdateStatus, StagedUpdateInfo } from "./update.js";
37
39
  export { startBackgroundUpdateCheck, performUpdate, performRollback } from "./update-manager.js";
@@ -19,6 +19,7 @@ import {
19
19
  defaultAuthSecretName,
20
20
  defaultTelemetryPreferences,
21
21
  durationBucket,
22
+ exportEnvironment,
22
23
  extractRequiredInputs,
23
24
  fetchRegistryServerDetail,
24
25
  flushTelemetry,
@@ -28,6 +29,7 @@ import {
28
29
  getStagedCliPath,
29
30
  getStagedUpdate,
30
31
  getTelemetryStatus,
32
+ importEnvironment,
31
33
  initializeTelemetry,
32
34
  isOAuthReference,
33
35
  isTelemetryEnvironmentDisabled,
@@ -64,7 +66,7 @@ import {
64
66
  toSecretRef,
65
67
  updateTelemetryPreferences,
66
68
  uptimeBucket
67
- } from "../chunk-941dqsx2.js";
69
+ } from "../chunk-t4hqf6yh.js";
68
70
  import {
69
71
  addMarketplace,
70
72
  inspectMarketplacePlugin,
@@ -76,13 +78,14 @@ import {
76
78
  removeMarketplace,
77
79
  setMarketplaceAutoUpdate,
78
80
  updateMarketplaceInstalledPlugin
79
- } from "../chunk-s9v1epnk.js";
81
+ } from "../chunk-btbww96n.js";
80
82
  import {
81
83
  PluginCache,
82
84
  PluginDataManager,
83
85
  PluginLifecycle,
84
86
  PluginManager,
85
87
  approvePluginComponent,
88
+ customizeSkill,
86
89
  deleteSkill,
87
90
  disablePlugin,
88
91
  discoverComponents,
@@ -94,6 +97,7 @@ import {
94
97
  hasManifest,
95
98
  inspectPlugin,
96
99
  installPlugin,
100
+ installSkillFromSource,
97
101
  listPlugins,
98
102
  listSkills,
99
103
  loadManagedIndex,
@@ -102,6 +106,8 @@ import {
102
106
  mutateProjectConfig,
103
107
  parseSource,
104
108
  persistSyncState,
109
+ pinPlugin,
110
+ pinSkill,
105
111
  pluginConfigSet,
106
112
  pluginSync,
107
113
  preparePlugin,
@@ -110,13 +116,19 @@ import {
110
116
  readManifest,
111
117
  resetPluginProjectOverride,
112
118
  resolvePluginId,
119
+ rollbackPlugin,
120
+ rollbackSkill,
113
121
  saveSkill,
114
122
  setPluginProjectOverride,
115
123
  syncAllClients,
116
124
  syncPluginsToClient,
117
125
  uninstallPlugin,
118
- updatePlugin
119
- } from "../chunk-z1k63fa3.js";
126
+ unpinPlugin,
127
+ unpinSkill,
128
+ updatePlugin,
129
+ updateSkill,
130
+ validateSkillPackage
131
+ } from "../chunk-56whm3hm.js";
120
132
  import {
121
133
  ConfigLoadError,
122
134
  defaultConfig,
@@ -128,7 +140,7 @@ import {
128
140
  saveConfig,
129
141
  saveProjectConfig,
130
142
  tokenizeCommandLine
131
- } from "../chunk-wq4zd3t7.js";
143
+ } from "../chunk-01s7rhx3.js";
132
144
  import {
133
145
  SecretNotFoundError,
134
146
  SecretsManager,
@@ -143,12 +155,14 @@ import {
143
155
  setServerEnabled,
144
156
  unregisterProject,
145
157
  updateServer
146
- } from "../chunk-cz8cdmw1.js";
158
+ } from "../chunk-fw8dyt89.js";
147
159
  import {
148
160
  getConfigPath,
149
161
  getManagedIndexPath,
162
+ getSkillPackagesRoot,
163
+ getSkillsDir,
150
164
  getTelemetryPath
151
- } from "../chunk-cqenqnxk.js";
165
+ } from "../chunk-4y0t0tfj.js";
152
166
  import"../chunk-bjw71y54.js";
153
167
  import"../chunk-wj4tjacg.js";
154
168
  export {
@@ -181,6 +195,7 @@ export {
181
195
  clearStagedUpdate,
182
196
  compareVersions,
183
197
  countBucket,
198
+ customizeSkill,
184
199
  defaultAuthSecretName,
185
200
  defaultConfig,
186
201
  defaultTelemetryPreferences,
@@ -190,6 +205,7 @@ export {
190
205
  durationBucket,
191
206
  enablePlugin,
192
207
  ensureGatewayToken,
208
+ exportEnvironment,
193
209
  extractRequiredInputs,
194
210
  fetchRegistryServerDetail,
195
211
  flushTelemetry,
@@ -202,16 +218,20 @@ export {
202
218
  getOAuthCredentialStatus,
203
219
  getPluginStatus,
204
220
  getSkill,
221
+ getSkillPackagesRoot,
222
+ getSkillsDir,
205
223
  getStagedCliPath,
206
224
  getStagedUpdate,
207
225
  getTelemetryPath,
208
226
  getTelemetryStatus,
209
227
  hasManifest,
228
+ importEnvironment,
210
229
  initializeTelemetry,
211
230
  inspectMarketplacePlugin,
212
231
  inspectPlugin,
213
232
  installMarketplacePlugin,
214
233
  installPlugin,
234
+ installSkillFromSource,
215
235
  isOAuthReference,
216
236
  isTelemetryEnvironmentDisabled,
217
237
  listAuthBindings,
@@ -238,6 +258,8 @@ export {
238
258
  performRollback,
239
259
  performUpdate,
240
260
  persistSyncState,
261
+ pinPlugin,
262
+ pinSkill,
241
263
  platformFamily,
242
264
  pluginConfigSet,
243
265
  pluginSync,
@@ -260,6 +282,8 @@ export {
260
282
  resolveAuthTarget,
261
283
  resolvePluginId,
262
284
  restartDaemon,
285
+ rollbackPlugin,
286
+ rollbackSkill,
263
287
  rotateGatewayToken,
264
288
  runDaemonForeground,
265
289
  runMarketplaceAutoUpdate,
@@ -285,12 +309,16 @@ export {
285
309
  toSecretRef,
286
310
  tokenizeCommandLine,
287
311
  uninstallPlugin,
312
+ unpinPlugin,
313
+ unpinSkill,
288
314
  unregisterProject,
289
315
  updateMarketplaceInstalledPlugin,
290
316
  updatePlugin,
291
317
  updateServer,
318
+ updateSkill,
292
319
  updateTelemetryPreferences,
293
- uptimeBucket
320
+ uptimeBucket,
321
+ validateSkillPackage
294
322
  };
295
323
 
296
- //# debugId=8B71543D4FA7999164756E2164756E21
324
+ //# debugId=AD72B7B7E74EB1E964756E2164756E21
@@ -5,6 +5,8 @@ export declare function getStateRoot(): string;
5
5
  export declare function getConfigPath(): string;
6
6
  export declare function getTelemetryPath(): string;
7
7
  export declare function getSkillsDir(): string;
8
+ export declare function getSkillPackagesRoot(): string;
9
+ export declare function getSkillStatePath(): string;
8
10
  export declare function getManagedIndexPath(): string;
9
11
  export declare function getSecretsStorePath(): string;
10
12
  export declare function getSecretsKeyPath(): string;
@@ -31,7 +31,7 @@ export declare class PluginManager {
31
31
  installResolvedPlugin(source: PluginSource, options?: InstallPluginOptions, sourceLabel?: string): Promise<ManagedPlugin>;
32
32
  updatePlugin(pluginId: string): Promise<ManagedPlugin>;
33
33
  updateResolvedPlugin(pluginId: string, source: PluginSource, sourceFingerprint: string, sync?: boolean): Promise<ManagedPlugin>;
34
- private applyPluginUpdate;
34
+ applyPluginUpdate(pluginId: string, info: Awaited<ReturnType<PluginManager["inspectSource"]>>, sourceFingerprint?: string, sync?: boolean): Promise<ManagedPlugin>;
35
35
  uninstallPlugin(pluginId: string, keepData?: boolean): Promise<void>;
36
36
  enablePlugin(pluginId: string): Promise<void>;
37
37
  disablePlugin(pluginId: string): Promise<void>;
@@ -54,6 +54,9 @@ export declare function installPlugin(source: string, options?: {
54
54
  approvals?: Partial<Record<PluginComponent, boolean>>;
55
55
  }): Promise<ManagedPlugin>;
56
56
  export declare function updatePlugin(nameOrId: string): Promise<ManagedPlugin>;
57
+ export declare function pinPlugin(nameOrId: string): Promise<void>;
58
+ export declare function unpinPlugin(nameOrId: string): Promise<void>;
59
+ export declare function rollbackPlugin(nameOrId: string): Promise<ManagedPlugin>;
57
60
  export declare function uninstallPlugin(nameOrId: string, keepData?: boolean): Promise<void>;
58
61
  export declare function enablePlugin(nameOrId: string): Promise<void>;
59
62
  export declare function disablePlugin(nameOrId: string): Promise<void>;