@sellable/install 0.1.9 → 0.1.10

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 CHANGED
@@ -65,4 +65,8 @@ It uses the phrase `quick question panel` for structured intake and approvals.
65
65
  It also tells the agent not to expose prompt-loading, MCP, plugin-cache, or tool
66
66
  names in normal customer-facing progress updates.
67
67
 
68
+ The installer writes compatibility cache aliases for recent Codex plugin
69
+ versions so stale Desktop skill links resolve to the current wrapper instead of
70
+ showing file/version debugging to the user.
71
+
68
72
  If only one host is installed, `--host all` installs the available host and tells you how to add the other one later.
@@ -15,7 +15,8 @@ import { createInterface } from "node:readline/promises";
15
15
  const DEFAULT_API_URL = "https://app.sellable.dev";
16
16
  const DEFAULT_SERVER_PACKAGE =
17
17
  process.env.SELLABLE_MCP_PACKAGE || "@sellable/mcp";
18
- const CODEX_PLUGIN_VERSION = "0.1.9";
18
+ const CODEX_PLUGIN_VERSION = "0.1.10";
19
+ const CODEX_PLUGIN_COMPAT_VERSIONS = ["0.1.8", "0.1.9"];
19
20
  const INSTALL_PACKAGE_SPEC = `@sellable/install@${CODEX_PLUGIN_VERSION}`;
20
21
 
21
22
  function usage() {
@@ -452,6 +453,22 @@ ${allowedToolsYaml(CREATE_CAMPAIGN_ALLOWED_TOOLS)}
452
453
 
453
454
  Use this as the customer-facing entrypoint for Sellable campaign creation.
454
455
 
456
+ ## Opening Turn Contract
457
+
458
+ On the first visible response after this skill is invoked, do not narrate
459
+ instruction loading, file lookup, plugin cache versions, missing linked files,
460
+ or tool discovery. Start in product language:
461
+
462
+ \`\`\`text
463
+ I’ll build this as an approval-gated Sellable campaign. First I’ll confirm the
464
+ workspace, then I’ll use the quick question panel to collect the setup choices
465
+ before anything is created.
466
+ \`\`\`
467
+
468
+ If a linked/local skill file is stale or missing, silently use the installed
469
+ \`sellable@sellable\` plugin copy. Do not tell the user about the stale link,
470
+ the old version, or the replacement path.
471
+
455
472
  ## Command Soul
456
473
 
457
474
  You are the Sellable campaign GTM engineer. The user is a founder or operator
@@ -753,6 +770,12 @@ function installCodexDesktopPlugin(opts) {
753
770
  const pluginRoot = join(marketplaceRoot, "plugins", "sellable");
754
771
  const cacheRoot = join(home, "plugins", "cache", "sellable", "sellable");
755
772
  const pluginCache = join(cacheRoot, CODEX_PLUGIN_VERSION);
773
+ const pluginCacheVersions = [
774
+ CODEX_PLUGIN_VERSION,
775
+ ...CODEX_PLUGIN_COMPAT_VERSIONS.filter(
776
+ (version) => version !== CODEX_PLUGIN_VERSION
777
+ ),
778
+ ];
756
779
 
757
780
  const marketplace = {
758
781
  name: "sellable",
@@ -794,17 +817,24 @@ function installCodexDesktopPlugin(opts) {
794
817
  if (!opts.dryRun) {
795
818
  rmSync(cacheRoot, { recursive: true, force: true });
796
819
  }
797
- writeFile(
798
- join(pluginCache, ".codex-plugin", "plugin.json"),
799
- `${JSON.stringify(manifest, null, 2)}\n`,
800
- opts
801
- );
802
- writeFile(
803
- join(pluginCache, ".mcp.json"),
804
- `${JSON.stringify(mcp, null, 2)}\n`,
805
- opts
806
- );
807
- writeCodexPluginSkills(pluginCache, opts);
820
+ for (const version of pluginCacheVersions) {
821
+ const cachePath = join(cacheRoot, version);
822
+ writeFile(
823
+ join(cachePath, ".codex-plugin", "plugin.json"),
824
+ `${JSON.stringify(
825
+ { ...manifest, version: CODEX_PLUGIN_VERSION },
826
+ null,
827
+ 2
828
+ )}\n`,
829
+ opts
830
+ );
831
+ writeFile(
832
+ join(cachePath, ".mcp.json"),
833
+ `${JSON.stringify(mcp, null, 2)}\n`,
834
+ opts
835
+ );
836
+ writeCodexPluginSkills(cachePath, opts);
837
+ }
808
838
 
809
839
  if (!opts.dryRun) {
810
840
  mkdirSync(home, { recursive: true, mode: 0o700 });
@@ -853,6 +883,7 @@ enabled = false`
853
883
  console.log(`- marketplace: ${marketplaceRoot}`);
854
884
  console.log(`- plugin: sellable@sellable`);
855
885
  console.log(`- cache: ${pluginCache}`);
886
+ console.log(`- compat: ${CODEX_PLUGIN_COMPAT_VERSIONS.join(", ")}`);
856
887
  }
857
888
 
858
889
  function writeAuth(opts) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/install",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "type": "module",
5
5
  "description": "One-command installer for Sellable MCP in Claude Code and Codex",
6
6
  "bin": {