@sellable/install 0.1.21 → 0.1.23

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.
@@ -15,7 +15,7 @@ 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.21";
18
+ const CODEX_PLUGIN_VERSION = "0.1.23";
19
19
  const CODEX_PLUGIN_COMPAT_VERSIONS = [
20
20
  "0.1.8",
21
21
  "0.1.9",
@@ -30,6 +30,8 @@ const CODEX_PLUGIN_COMPAT_VERSIONS = [
30
30
  "0.1.18",
31
31
  "0.1.19",
32
32
  "0.1.20",
33
+ "0.1.21",
34
+ "0.1.22",
33
35
  ];
34
36
  const INSTALL_PACKAGE_SPEC = `@sellable/install@${CODEX_PLUGIN_VERSION}`;
35
37
 
@@ -858,9 +860,16 @@ for inspection, not a replacement for showing the content in chat.
858
860
 
859
861
  This applies especially to message approvals. Never ask someone to approve a
860
862
  message they cannot see. Show the subject, tokenized template, a filled sample
861
- prospect version, omit example, token notes, your take, and suggested adjustment
862
- first. The user should be able to compare "here is the template" against "here
863
- is what one real prospect would receive" before approving.
863
+ prospect version, good fill example, good omit example, bad fill example, why
864
+ the bad fill is wrong, token notes, your take, and suggested adjustment first.
865
+ The user should be able to compare "here is the template" against "here is what
866
+ one real prospect would receive" before approving, and understand exactly how
867
+ the tokens should and should not be filled.
868
+
869
+ Approved token guidance is part of the campaign, not just the review. When a
870
+ campaign is minted, the approved brief should carry forward the token fill
871
+ rules and examples: good fills, good omits, bad fills, and why the bad fills are
872
+ blocked.
864
873
 
865
874
  For lead-source decisions, confidence comes from concrete counts. Do not say
866
875
  "strong sample", "73% match", or "meaningful concentration" without showing the
@@ -1172,6 +1181,14 @@ function writeAuth(opts) {
1172
1181
  writeJson(sellablePath, config, opts);
1173
1182
  }
1174
1183
 
1184
+ function installSelfShim(opts) {
1185
+ const binPath = join(homedir(), ".local", "bin", "sellable");
1186
+ const shim = `#!/usr/bin/env sh
1187
+ exec npx -y ${INSTALL_PACKAGE_SPEC} "$@"
1188
+ `;
1189
+ writeFile(binPath, shim, opts, 0o755);
1190
+ }
1191
+
1175
1192
  function mcpCommand(opts) {
1176
1193
  if (opts.server === "package") {
1177
1194
  return ["npx", ["-y", opts.mcpPackage]];
@@ -1345,6 +1362,7 @@ async function main() {
1345
1362
  if (!opts.verifyOnly) {
1346
1363
  await promptForMissingAuth(opts);
1347
1364
  writeAuth(opts);
1365
+ installSelfShim(opts);
1348
1366
  if (opts.host === "claude" || opts.host === "all") {
1349
1367
  if (installClaude(opts)) installedHosts.push("Claude Code");
1350
1368
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/install",
3
- "version": "0.1.21",
3
+ "version": "0.1.23",
4
4
  "type": "module",
5
5
  "description": "One-command installer for Sellable MCP in Claude Code and Codex",
6
6
  "bin": {