@sellable/mcp 0.1.3 → 0.1.5

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
@@ -66,7 +66,7 @@ Install MCP server:
66
66
  claude mcp add --transport stdio sellable -- npx -y @sellable/mcp
67
67
  ```
68
68
 
69
- Create auth config at `~/.claude/sellable.json`:
69
+ Create auth config at `~/.sellable/config.json`:
70
70
 
71
71
  ```json
72
72
  {
@@ -99,14 +99,14 @@ The installer does the full local setup:
99
99
  entry per workflow
100
100
  - removes stale Personal Sellable skill copies, including
101
101
  `sellable-create-campaign-v2`
102
- - writes `~/.codex/sellable.json`
102
+ - writes `~/.sellable/config.json`
103
103
  - registers the `sellable` MCP server with Codex
104
104
  - installs the local `sellable@sellable-local` Desktop plugin so Codex
105
105
  Desktop loads the `mcp__sellable__*` tools into skill sessions
106
106
  - runs a Codex CLI smoke that must load `get_auth_status` and the
107
107
  `create-campaign-v2` prompt
108
108
 
109
- If you already have `~/.codex/sellable.json`, verify the install without
109
+ If you already have `~/.sellable/config.json`, verify the install without
110
110
  rewriting auth:
111
111
 
112
112
  ```bash
@@ -206,9 +206,10 @@ Parallel execution contract:
206
206
  Config path resolution (in order):
207
207
 
208
208
  1. `SELLABLE_CONFIG_PATH`
209
- 2. `$CODEX_HOME/sellable.json`
210
- 3. `~/.codex/sellable.json`
211
- 4. `~/.claude/sellable.json` (compatibility fallback)
209
+ 2. `~/.sellable/config.json`
210
+ 3. `$CODEX_HOME/sellable.json` (compatibility fallback)
211
+ 4. `~/.codex/sellable.json` (compatibility fallback)
212
+ 5. `~/.claude/sellable.json` (compatibility fallback)
212
213
 
213
214
  ## Hetzner Smoke / UAT
214
215
 
@@ -251,7 +252,7 @@ with outcomes, and tracked people (LinkedIn profiles), all scoped by workspace.
251
252
 
252
253
  ## Config You Can Edit (Source Of Truth)
253
254
 
254
- - Auth + active workspace: your `sellable.json` (via `SELLABLE_CONFIG_PATH`, `$CODEX_HOME/sellable.json`, `~/.codex/sellable.json`, or `~/.claude/sellable.json`)
255
+ - Auth + active workspace: `~/.sellable/config.json` (or `SELLABLE_CONFIG_PATH`; old `$CODEX_HOME/sellable.json`, `~/.codex/sellable.json`, and `~/.claude/sellable.json` files remain compatibility fallbacks)
255
256
  - Engage memory (style guide + searches + tracked people): `sellable.engage.json` (or `SELLABLE_ENGAGE_MEMORY_PATH`)
256
257
  - Team-editable, project-local configs (recommended to edit in git):
257
258
  - `./.sellable/configs/writing/styleguide.md`
@@ -340,7 +341,7 @@ Self-interview skill to capture voice + ICP + boundaries into `./.sellable/confi
340
341
 
341
342
  ### "Sellable not configured" Error
342
343
 
343
- Create `~/.claude/sellable.json` with your token. Get one at https://app.sellable.dev/settings/integrations.
344
+ Create `~/.sellable/config.json` with your token. Get one at https://app.sellable.dev/settings/integrations.
344
345
 
345
346
  ### Token Not Working
346
347
 
package/dist/auth.js CHANGED
@@ -23,6 +23,9 @@ function getConfigPathCandidates() {
23
23
  if (explicitConfigPath) {
24
24
  candidates.push(path.resolve(explicitConfigPath));
25
25
  }
26
+ if (configFileName === "sellable.json") {
27
+ candidates.push(path.join(os.homedir(), ".sellable", "config.json"));
28
+ }
26
29
  const codexHome = process.env.CODEX_HOME?.trim();
27
30
  if (codexHome) {
28
31
  candidates.push(path.resolve(codexHome, configFileName));
package/dist/index.d.ts CHANGED
@@ -2,6 +2,6 @@
2
2
  /**
3
3
  * Sellable MCP Server - Production
4
4
  *
5
- * Uses ~/.claude/sellable.json config (default prod URL: https://app.sellable.dev)
5
+ * Uses ~/.sellable/config.json config (default prod URL: https://app.sellable.dev)
6
6
  */
7
7
  import "./server.js";
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
  /**
3
3
  * Sellable MCP Server - Production
4
4
  *
5
- * Uses ~/.claude/sellable.json config (default prod URL: https://app.sellable.dev)
5
+ * Uses ~/.sellable/config.json config (default prod URL: https://app.sellable.dev)
6
6
  */
7
7
  // Uses default config (sellable.json), just import and run
8
8
  import "./server.js";
package/dist/skills.js CHANGED
@@ -1,17 +1,14 @@
1
1
  import * as fs from "fs";
2
2
  import * as path from "path";
3
- import { fileURLToPath } from "url";
4
3
  export function resolveSkillsDir() {
5
4
  const candidates = [];
6
5
  if (process.env.SELLABLE_SKILLS_DIR) {
7
6
  candidates.push(path.resolve(process.env.SELLABLE_SKILLS_DIR));
8
7
  }
9
- // Works for both source execution (src/../skills) and npm package execution
10
- // (dist/../skills), including npx bin shims.
11
- const moduleDir = path.dirname(fileURLToPath(import.meta.url));
12
- candidates.push(path.resolve(moduleDir, "../skills"));
13
8
  if (process.argv[1]) {
14
- // When running as CLI, argv[1] is typically ".../dist/index.js".
9
+ // When running as CLI, argv[1] is typically ".../dist/index.js". When
10
+ // launched by npx, it can be a node_modules/.bin shim; realpath resolves
11
+ // that shim back into the package before we look for sibling skills.
15
12
  candidates.push(path.resolve(path.dirname(process.argv[1]), "../skills"));
16
13
  try {
17
14
  const realEntryPath = fs.realpathSync(process.argv[1]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sellable/mcp",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "type": "module",
5
5
  "description": "Sellable MCP server for Claude Code and Codex campaign workflows",
6
6
  "main": "dist/index.js",