@sellable/install 0.1.22 → 0.1.24
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/bin/sellable-install.mjs +19 -3
- package/package.json +1 -1
package/bin/sellable-install.mjs
CHANGED
|
@@ -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.
|
|
18
|
+
const CODEX_PLUGIN_VERSION = "0.1.24";
|
|
19
19
|
const CODEX_PLUGIN_COMPAT_VERSIONS = [
|
|
20
20
|
"0.1.8",
|
|
21
21
|
"0.1.9",
|
|
@@ -31,6 +31,8 @@ const CODEX_PLUGIN_COMPAT_VERSIONS = [
|
|
|
31
31
|
"0.1.19",
|
|
32
32
|
"0.1.20",
|
|
33
33
|
"0.1.21",
|
|
34
|
+
"0.1.22",
|
|
35
|
+
"0.1.23",
|
|
34
36
|
];
|
|
35
37
|
const INSTALL_PACKAGE_SPEC = `@sellable/install@${CODEX_PLUGIN_VERSION}`;
|
|
36
38
|
|
|
@@ -865,10 +867,15 @@ The user should be able to compare "here is the template" against "here is what
|
|
|
865
867
|
one real prospect would receive" before approving, and understand exactly how
|
|
866
868
|
the tokens should and should not be filled.
|
|
867
869
|
|
|
870
|
+
Every token needs a fallback. If the row does not have clean data for a token,
|
|
871
|
+
the approval view should say whether to use a safe segment-level phrase, omit
|
|
872
|
+
the sentence, or revise the message. Missing data should never produce robotic
|
|
873
|
+
or creepy copy.
|
|
874
|
+
|
|
868
875
|
Approved token guidance is part of the campaign, not just the review. When a
|
|
869
876
|
campaign is minted, the approved brief should carry forward the token fill
|
|
870
|
-
rules and examples: good fills, good omits, bad fills, and why
|
|
871
|
-
blocked.
|
|
877
|
+
rules and examples: good fills, good omits, bad fills, fallback rules, and why
|
|
878
|
+
the bad fills are blocked.
|
|
872
879
|
|
|
873
880
|
For lead-source decisions, confidence comes from concrete counts. Do not say
|
|
874
881
|
"strong sample", "73% match", or "meaningful concentration" without showing the
|
|
@@ -1180,6 +1187,14 @@ function writeAuth(opts) {
|
|
|
1180
1187
|
writeJson(sellablePath, config, opts);
|
|
1181
1188
|
}
|
|
1182
1189
|
|
|
1190
|
+
function installSelfShim(opts) {
|
|
1191
|
+
const binPath = join(homedir(), ".local", "bin", "sellable");
|
|
1192
|
+
const shim = `#!/usr/bin/env sh
|
|
1193
|
+
exec npx -y ${INSTALL_PACKAGE_SPEC} "$@"
|
|
1194
|
+
`;
|
|
1195
|
+
writeFile(binPath, shim, opts, 0o755);
|
|
1196
|
+
}
|
|
1197
|
+
|
|
1183
1198
|
function mcpCommand(opts) {
|
|
1184
1199
|
if (opts.server === "package") {
|
|
1185
1200
|
return ["npx", ["-y", opts.mcpPackage]];
|
|
@@ -1353,6 +1368,7 @@ async function main() {
|
|
|
1353
1368
|
if (!opts.verifyOnly) {
|
|
1354
1369
|
await promptForMissingAuth(opts);
|
|
1355
1370
|
writeAuth(opts);
|
|
1371
|
+
installSelfShim(opts);
|
|
1356
1372
|
if (opts.host === "claude" || opts.host === "all") {
|
|
1357
1373
|
if (installClaude(opts)) installedHosts.push("Claude Code");
|
|
1358
1374
|
}
|