@solidnumber/cli 1.4.0 → 1.4.1

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
@@ -33,6 +33,11 @@ solid pull
33
33
  # Push changes to production
34
34
  solid push
35
35
 
36
+ # Give your AI full context about this company
37
+ solid context --claude # Claude Code
38
+ solid context --cursor # Cursor
39
+ solid context --save # Any AI (paste into project)
40
+
36
41
  # Talk to your AI agent
37
42
  solid train chat sarah
38
43
 
@@ -76,6 +81,16 @@ solid agent mission "Create a Valentine's campaign for VIP customers"
76
81
  | `solid pages list` | List CMS pages |
77
82
  | `solid services list` | List services |
78
83
 
84
+ ### AI Context
85
+ | Command | Description |
86
+ |---------|-------------|
87
+ | `solid context` | Generate AI context package (stdout) |
88
+ | `solid context --claude` | Save to `.claude/CLAUDE.md` (auto-read by Claude Code) |
89
+ | `solid context --cursor` | Save to `.cursorrules` (auto-read by Cursor) |
90
+ | `solid context --save` | Save to `SOLID-CONTEXT.md` |
91
+ | `solid context --watch` | Auto-refresh when data changes |
92
+ | `solid context --json` | JSON output |
93
+
79
94
  ### Platform
80
95
  | Command | Description |
81
96
  |---------|-------------|
@@ -110,9 +125,10 @@ solid agent mission "Create a Valentine's campaign for VIP customers"
110
125
 
111
126
  ```
112
127
  1. solid pull → Download pages, KB, services
113
- 2. Edit files VS Code, Cursor, any editor
114
- 3. solid pushDeploy changes instantly
115
- 4. solid vibe"Add a hero section" (natural language)
128
+ 2. solid context Give your AI full company knowledge
129
+ 3. Edit filesVS Code, Cursor, any editor (AI-assisted)
130
+ 4. solid pushDeploy changes instantly
131
+ 5. solid vibe → "Add a hero section" (natural language)
116
132
  ```
117
133
 
118
134
  ## File Formats
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Analytics command for Solid CLI
3
+ *
4
+ * Surface business analytics from the terminal.
5
+ */
6
+ import { Command } from 'commander';
7
+ export declare const analyticsCommand: Command;
8
+ //# sourceMappingURL=analytics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/commands/analytics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,gBAAgB,SAIzB,CAAC"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ /**
3
+ * Analytics command for Solid CLI
4
+ *
5
+ * Surface business analytics from the terminal.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ var __importDefault = (this && this.__importDefault) || function (mod) {
41
+ return (mod && mod.__esModule) ? mod : { "default": mod };
42
+ };
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.analyticsCommand = void 0;
45
+ const commander_1 = require("commander");
46
+ const chalk_1 = __importDefault(require("chalk"));
47
+ const config_1 = require("../lib/config");
48
+ const api_client_1 = require("../lib/api-client");
49
+ const ui_1 = require("../lib/ui");
50
+ exports.analyticsCommand = new commander_1.Command('analytics')
51
+ .description('Business analytics and insights')
52
+ .action(async () => {
53
+ exports.analyticsCommand.outputHelp();
54
+ });
55
+ exports.analyticsCommand
56
+ .command('dashboard')
57
+ .description('Revenue, customers, transactions overview')
58
+ .option('--period <days>', 'Period in days', '30')
59
+ .option('--json', 'JSON output')
60
+ .action(async (options) => {
61
+ if (!config_1.config.isLoggedIn()) {
62
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
63
+ process.exit(1);
64
+ }
65
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
66
+ const spinner = ora('Loading analytics...').start();
67
+ try {
68
+ const response = await api_client_1.apiClient.get('/api/v1/dashboard/summary', {
69
+ params: { period: options.period },
70
+ });
71
+ spinner.stop();
72
+ if (options.json) {
73
+ console.log(JSON.stringify(response.data, null, 2));
74
+ return;
75
+ }
76
+ const d = response.data;
77
+ console.log('');
78
+ console.log(ui_1.ui.header('Business Analytics'));
79
+ if (d.revenue !== undefined)
80
+ console.log(ui_1.ui.label('Revenue', chalk_1.default.green(`$${(d.revenue || 0).toLocaleString()}`)));
81
+ if (d.transactions !== undefined)
82
+ console.log(ui_1.ui.label('Transactions', String(d.transactions || 0)));
83
+ if (d.customers !== undefined)
84
+ console.log(ui_1.ui.label('Customers', String(d.customers || 0)));
85
+ if (d.new_customers !== undefined)
86
+ console.log(ui_1.ui.label('New Customers', String(d.new_customers || 0)));
87
+ if (d.avg_transaction !== undefined)
88
+ console.log(ui_1.ui.label('Avg Transaction', chalk_1.default.green(`$${(d.avg_transaction || 0).toFixed(2)}`)));
89
+ console.log('');
90
+ }
91
+ catch (error) {
92
+ spinner.fail(chalk_1.default.red('Failed to load analytics'));
93
+ console.error((0, api_client_1.handleApiError)(error).message);
94
+ }
95
+ });
96
+ exports.analyticsCommand
97
+ .command('mcp-traffic')
98
+ .description('AI crawler traffic — who is reading your site')
99
+ .option('--json', 'JSON output')
100
+ .action(async (options) => {
101
+ if (!config_1.config.isLoggedIn()) {
102
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
103
+ process.exit(1);
104
+ }
105
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
106
+ const spinner = ora('Loading MCP traffic...').start();
107
+ try {
108
+ const response = await api_client_1.apiClient.get('/api/v1/analytics/mcp/traffic');
109
+ spinner.stop();
110
+ if (options.json) {
111
+ console.log(JSON.stringify(response.data, null, 2));
112
+ return;
113
+ }
114
+ const d = response.data;
115
+ console.log('');
116
+ console.log(ui_1.ui.header('AI Crawler Traffic'));
117
+ if (d.total_hits !== undefined)
118
+ console.log(ui_1.ui.label('Total Hits', String(d.total_hits)));
119
+ if (d.google_hits !== undefined)
120
+ console.log(ui_1.ui.label('Google AI', String(d.google_hits)));
121
+ if (d.bing_hits !== undefined)
122
+ console.log(ui_1.ui.label('Bing AI', String(d.bing_hits)));
123
+ if (d.chatgpt_hits !== undefined)
124
+ console.log(ui_1.ui.label('ChatGPT', String(d.chatgpt_hits)));
125
+ if (d.claude_hits !== undefined)
126
+ console.log(ui_1.ui.label('Claude', String(d.claude_hits)));
127
+ if (d.perplexity_hits !== undefined)
128
+ console.log(ui_1.ui.label('Perplexity', String(d.perplexity_hits)));
129
+ console.log('');
130
+ }
131
+ catch (error) {
132
+ spinner.fail(chalk_1.default.red('Failed to load MCP traffic'));
133
+ console.error((0, api_client_1.handleApiError)(error).message);
134
+ }
135
+ });
136
+ //# sourceMappingURL=analytics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/commands/analytics.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqzBpC,eAAO,MAAM,WAAW,SAuCpB,CAAC"}
1
+ {"version":3,"file":"docs.d.ts","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAq0BpC,eAAO,MAAM,WAAW,SAuCpB,CAAC"}
@@ -825,6 +825,22 @@ solid integrations deploy <id> # Deploy integration
825
825
  solid integrations logs <id> # View integration logs
826
826
  \`\`\`
827
827
 
828
+ ## AI Context
829
+
830
+ \`\`\`bash
831
+ solid context # Generate AI context package (stdout)
832
+ solid context --claude # Save to .claude/CLAUDE.md (Claude Code auto-reads)
833
+ solid context --cursor # Save to .cursorrules (Cursor auto-reads)
834
+ solid context --save # Save to SOLID-CONTEXT.md (paste into any AI)
835
+ solid context --json # JSON output
836
+ solid context --minimal # Compact version (no command reference)
837
+ solid context --watch # Auto-refresh when data changes (30s default)
838
+ solid context --watch --interval 60 # Custom interval
839
+ \`\`\`
840
+
841
+ Includes: company details, full KB, pages, services, products, agents, CLI commands, file structure.
842
+ Any AI that ingests this file has complete knowledge of the business and the Solid# platform.
843
+
828
844
  ## Health & Diagnostics
829
845
 
830
846
  \`\`\`bash
@@ -1 +1 @@
1
- {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Insights command for Solid CLI
3
+ *
4
+ * AI-generated conversation insights — patterns, suggestions,
5
+ * and KB recommendations from customer interactions.
6
+ */
7
+ import { Command } from 'commander';
8
+ export declare const insightsCommand: Command;
9
+ //# sourceMappingURL=insights.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insights.d.ts","sourceRoot":"","sources":["../../src/commands/insights.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,eAAe,SAIxB,CAAC"}
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ /**
3
+ * Insights command for Solid CLI
4
+ *
5
+ * AI-generated conversation insights — patterns, suggestions,
6
+ * and KB recommendations from customer interactions.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __importDefault = (this && this.__importDefault) || function (mod) {
42
+ return (mod && mod.__esModule) ? mod : { "default": mod };
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.insightsCommand = void 0;
46
+ const commander_1 = require("commander");
47
+ const chalk_1 = __importDefault(require("chalk"));
48
+ const config_1 = require("../lib/config");
49
+ const api_client_1 = require("../lib/api-client");
50
+ const ui_1 = require("../lib/ui");
51
+ exports.insightsCommand = new commander_1.Command('insights')
52
+ .description('AI-generated conversation insights')
53
+ .action(async () => {
54
+ exports.insightsCommand.outputHelp();
55
+ });
56
+ exports.insightsCommand
57
+ .command('list')
58
+ .description('List pending conversation insights')
59
+ .option('--json', 'JSON output')
60
+ .action(async (options) => {
61
+ if (!config_1.config.isLoggedIn()) {
62
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
63
+ process.exit(1);
64
+ }
65
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
66
+ const spinner = ora('Loading insights...').start();
67
+ try {
68
+ const response = await api_client_1.apiClient.get('/api/v1/insights/pending');
69
+ spinner.stop();
70
+ if (options.json) {
71
+ console.log(JSON.stringify(response.data, null, 2));
72
+ return;
73
+ }
74
+ const d = response.data;
75
+ const insights = d.insights || d.items || [];
76
+ console.log('');
77
+ console.log(ui_1.ui.header(`Pending Insights (${insights.length})`));
78
+ if (insights.length === 0) {
79
+ console.log(chalk_1.default.dim(' No pending insights. Your AI agents are learning!'));
80
+ }
81
+ else {
82
+ for (const insight of insights) {
83
+ const type = insight.insight_type || insight.type || 'suggestion';
84
+ const color = type === 'kb_gap' ? chalk_1.default.yellow : type === 'pattern' ? chalk_1.default.cyan : chalk_1.default.white;
85
+ console.log(` ${color('●')} [${type}] ${insight.title || insight.summary}`);
86
+ if (insight.recommendation) {
87
+ console.log(chalk_1.default.dim(` → ${insight.recommendation}`));
88
+ }
89
+ }
90
+ }
91
+ console.log('');
92
+ }
93
+ catch (error) {
94
+ spinner.fail(chalk_1.default.red('Failed to load insights'));
95
+ console.error((0, api_client_1.handleApiError)(error).message);
96
+ }
97
+ });
98
+ exports.insightsCommand
99
+ .command('stats')
100
+ .description('Insight statistics overview')
101
+ .option('--json', 'JSON output')
102
+ .action(async (options) => {
103
+ if (!config_1.config.isLoggedIn()) {
104
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
105
+ process.exit(1);
106
+ }
107
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
108
+ const spinner = ora('Loading insight stats...').start();
109
+ try {
110
+ const response = await api_client_1.apiClient.get('/api/v1/insights/stats');
111
+ spinner.stop();
112
+ if (options.json) {
113
+ console.log(JSON.stringify(response.data, null, 2));
114
+ return;
115
+ }
116
+ const d = response.data;
117
+ console.log('');
118
+ console.log(ui_1.ui.header('Insight Statistics'));
119
+ if (d.total !== undefined)
120
+ console.log(ui_1.ui.label('Total', String(d.total)));
121
+ if (d.pending !== undefined)
122
+ console.log(ui_1.ui.label('Pending', chalk_1.default.yellow(String(d.pending))));
123
+ if (d.applied !== undefined)
124
+ console.log(ui_1.ui.label('Applied', chalk_1.default.green(String(d.applied))));
125
+ if (d.rejected !== undefined)
126
+ console.log(ui_1.ui.label('Rejected', chalk_1.default.dim(String(d.rejected))));
127
+ console.log('');
128
+ }
129
+ catch (error) {
130
+ spinner.fail(chalk_1.default.red('Failed to load insight stats'));
131
+ console.error((0, api_client_1.handleApiError)(error).message);
132
+ }
133
+ });
134
+ exports.insightsCommand
135
+ .command('approve <id>')
136
+ .description('Approve an insight (optionally apply to KB)')
137
+ .option('--apply', 'Also apply the insight to knowledge base')
138
+ .action(async (id, options) => {
139
+ if (!config_1.config.isLoggedIn()) {
140
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
141
+ process.exit(1);
142
+ }
143
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
144
+ const spinner = ora('Approving insight...').start();
145
+ try {
146
+ await api_client_1.apiClient.post(`/api/v1/insights/${id}/approve`, {
147
+ apply_to_kb: !!options.apply,
148
+ });
149
+ spinner.succeed(chalk_1.default.green(`Insight ${id} approved${options.apply ? ' and applied to KB' : ''}`));
150
+ }
151
+ catch (error) {
152
+ spinner.fail(chalk_1.default.red('Failed to approve insight'));
153
+ console.error((0, api_client_1.handleApiError)(error).message);
154
+ }
155
+ });
156
+ exports.insightsCommand
157
+ .command('reject <id>')
158
+ .description('Reject an insight')
159
+ .action(async (id) => {
160
+ if (!config_1.config.isLoggedIn()) {
161
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
162
+ process.exit(1);
163
+ }
164
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
165
+ const spinner = ora('Rejecting insight...').start();
166
+ try {
167
+ await api_client_1.apiClient.post(`/api/v1/insights/${id}/reject`);
168
+ spinner.succeed(chalk_1.default.green(`Insight ${id} rejected`));
169
+ }
170
+ catch (error) {
171
+ spinner.fail(chalk_1.default.red('Failed to reject insight'));
172
+ console.error((0, api_client_1.handleApiError)(error).message);
173
+ }
174
+ });
175
+ //# sourceMappingURL=insights.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"insights.js","sourceRoot":"","sources":["../../src/commands/insights.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * LLMs command for Solid CLI
3
+ *
4
+ * Manage and preview the llms.txt AI discovery file for your company.
5
+ * This file tells AI shopping agents (ChatGPT, Alexa, Perplexity, Claude)
6
+ * what your business sells, current prices, and how to book/purchase.
7
+ *
8
+ * Every Solid# company gets llms.txt at {slug}.solidnumber.com/llms.txt
9
+ */
10
+ import { Command } from 'commander';
11
+ export declare const llmsCommand: Command;
12
+ //# sourceMappingURL=llms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llms.d.ts","sourceRoot":"","sources":["../../src/commands/llms.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,WAAW,SAIpB,CAAC"}
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ /**
3
+ * LLMs command for Solid CLI
4
+ *
5
+ * Manage and preview the llms.txt AI discovery file for your company.
6
+ * This file tells AI shopping agents (ChatGPT, Alexa, Perplexity, Claude)
7
+ * what your business sells, current prices, and how to book/purchase.
8
+ *
9
+ * Every Solid# company gets llms.txt at {slug}.solidnumber.com/llms.txt
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.llmsCommand = void 0;
49
+ const commander_1 = require("commander");
50
+ const chalk_1 = __importDefault(require("chalk"));
51
+ const config_1 = require("../lib/config");
52
+ const api_client_1 = require("../lib/api-client");
53
+ const ui_1 = require("../lib/ui");
54
+ exports.llmsCommand = new commander_1.Command('llms')
55
+ .description('AI discovery — manage your llms.txt for AI shopping agents')
56
+ .action(async () => {
57
+ exports.llmsCommand.outputHelp();
58
+ });
59
+ exports.llmsCommand
60
+ .command('preview')
61
+ .description('Preview your llms.txt (what AI agents see)')
62
+ .option('--json', 'Output the raw data instead of llms.txt')
63
+ .action(async (options) => {
64
+ if (!config_1.config.isLoggedIn()) {
65
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
66
+ process.exit(1);
67
+ }
68
+ const companyId = config_1.config.companyId;
69
+ if (!companyId) {
70
+ console.error(chalk_1.default.red('No company selected.'));
71
+ process.exit(1);
72
+ }
73
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
74
+ const spinner = ora('Fetching llms.txt...').start();
75
+ try {
76
+ const response = await api_client_1.apiClient.get(`/api/v1/cms/pages/public/llms.txt`, {
77
+ params: { company_id: companyId },
78
+ });
79
+ spinner.stop();
80
+ if (options.json) {
81
+ console.log(JSON.stringify(response.data, null, 2));
82
+ return;
83
+ }
84
+ const content = typeof response.data === 'string' ? response.data : JSON.stringify(response.data, null, 2);
85
+ console.log('');
86
+ console.log(ui_1.ui.header('llms.txt Preview'));
87
+ console.log(chalk_1.default.dim(' This is what AI agents see when they crawl your site.'));
88
+ console.log('');
89
+ console.log(chalk_1.default.dim(' ─'.repeat(36)));
90
+ console.log('');
91
+ // Print with indentation
92
+ for (const line of content.split('\n')) {
93
+ if (line.startsWith('# ')) {
94
+ console.log(chalk_1.default.bold.hex('#818cf8')(` ${line}`));
95
+ }
96
+ else if (line.startsWith('## ')) {
97
+ console.log(chalk_1.default.bold(` ${line}`));
98
+ }
99
+ else if (line.startsWith('- ')) {
100
+ console.log(` ${line}`);
101
+ }
102
+ else {
103
+ console.log(chalk_1.default.dim(` ${line}`));
104
+ }
105
+ }
106
+ console.log('');
107
+ console.log(chalk_1.default.dim(' ─'.repeat(36)));
108
+ console.log('');
109
+ // Show the URL
110
+ const infoRes = await api_client_1.apiClient.companyInfo();
111
+ const company = infoRes.data.company;
112
+ const slug = company?.slug;
113
+ if (slug) {
114
+ console.log(ui_1.ui.label('Live URL', chalk_1.default.cyan(`https://${slug}.solidnumber.com/llms.txt`)));
115
+ }
116
+ console.log(ui_1.ui.label('Backend', chalk_1.default.dim(`/api/v1/cms/pages/public/llms.txt?company_id=${companyId}`)));
117
+ console.log('');
118
+ }
119
+ catch (error) {
120
+ spinner.fail(chalk_1.default.red('Failed to fetch llms.txt'));
121
+ console.error((0, api_client_1.handleApiError)(error).message);
122
+ }
123
+ });
124
+ exports.llmsCommand
125
+ .command('check')
126
+ .description('Check what AI crawlers can see — products, services, actions')
127
+ .action(async () => {
128
+ if (!config_1.config.isLoggedIn()) {
129
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
130
+ process.exit(1);
131
+ }
132
+ const companyId = config_1.config.companyId;
133
+ if (!companyId) {
134
+ console.error(chalk_1.default.red('No company selected.'));
135
+ process.exit(1);
136
+ }
137
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
138
+ const spinner = ora('Checking AI discoverability...').start();
139
+ try {
140
+ // Fetch products, services, and company info in parallel
141
+ const [prodRes, svcRes, infoRes] = await Promise.allSettled([
142
+ api_client_1.apiClient.productsList(),
143
+ api_client_1.apiClient.servicesList(),
144
+ api_client_1.apiClient.companyInfo(),
145
+ ]);
146
+ spinner.stop();
147
+ const products = prodRes.status === 'fulfilled' ? (prodRes.value.data.items || []) : [];
148
+ const services = svcRes.status === 'fulfilled' ? (svcRes.value.data.items || []) : [];
149
+ const company = infoRes.status === 'fulfilled' ? infoRes.value.data.company : null;
150
+ console.log('');
151
+ console.log(ui_1.ui.header('AI Commerce Readiness'));
152
+ // Company basics
153
+ const hasPhone = !!company?.contact_phone;
154
+ const hasEmail = !!company?.contact_email;
155
+ const hasAddress = !!company?.location;
156
+ const hasHours = !!company?.business_hours;
157
+ const hasSlug = !!company?.slug;
158
+ console.log(ui_1.ui.label('Phone', hasPhone ? chalk_1.default.green('✓') : chalk_1.default.red('✗ Missing — AI can\'t tell users how to call')));
159
+ console.log(ui_1.ui.label('Email', hasEmail ? chalk_1.default.green('✓') : chalk_1.default.yellow('○ Optional')));
160
+ console.log(ui_1.ui.label('Address', hasAddress ? chalk_1.default.green('✓') : chalk_1.default.red('✗ Missing — AI can\'t show location')));
161
+ console.log(ui_1.ui.label('Hours', hasHours ? chalk_1.default.green('✓') : chalk_1.default.yellow('○ Optional')));
162
+ console.log(ui_1.ui.label('Website Slug', hasSlug ? chalk_1.default.green(`✓ ${company.slug}.solidnumber.com`) : chalk_1.default.red('✗ Missing — no llms.txt URL')));
163
+ // Products
164
+ console.log('');
165
+ console.log(ui_1.ui.header('Products'));
166
+ if (products.length === 0) {
167
+ console.log(chalk_1.default.yellow(' ○ No products — AI shopping agents have nothing to recommend'));
168
+ }
169
+ else {
170
+ const withPrice = products.filter((p) => p.price).length;
171
+ const withDesc = products.filter((p) => p.description).length;
172
+ console.log(ui_1.ui.label('Total', chalk_1.default.green(String(products.length))));
173
+ console.log(ui_1.ui.label('With Price', withPrice === products.length ? chalk_1.default.green(`${withPrice}/${products.length}`) : chalk_1.default.yellow(`${withPrice}/${products.length}`)));
174
+ console.log(ui_1.ui.label('With Desc', withDesc === products.length ? chalk_1.default.green(`${withDesc}/${products.length}`) : chalk_1.default.yellow(`${withDesc}/${products.length}`)));
175
+ }
176
+ // Services
177
+ console.log('');
178
+ console.log(ui_1.ui.header('Services'));
179
+ if (services.length === 0) {
180
+ console.log(chalk_1.default.yellow(' ○ No services — AI can\'t tell users what you offer'));
181
+ }
182
+ else {
183
+ const withPrice = services.filter((s) => s.price).length;
184
+ console.log(ui_1.ui.label('Total', chalk_1.default.green(String(services.length))));
185
+ console.log(ui_1.ui.label('With Price', withPrice === services.length ? chalk_1.default.green(`${withPrice}/${services.length}`) : chalk_1.default.yellow(`${withPrice}/${services.length}`)));
186
+ }
187
+ // Score
188
+ let score = 0;
189
+ if (hasPhone)
190
+ score += 15;
191
+ if (hasAddress)
192
+ score += 15;
193
+ if (hasSlug)
194
+ score += 10;
195
+ if (hasHours)
196
+ score += 5;
197
+ if (hasEmail)
198
+ score += 5;
199
+ if (products.length > 0)
200
+ score += 20;
201
+ if (services.length > 0)
202
+ score += 20;
203
+ if (products.filter((p) => p.price).length === products.length && products.length > 0)
204
+ score += 10;
205
+ console.log('');
206
+ const scoreColor = score >= 80 ? chalk_1.default.green : score >= 50 ? chalk_1.default.yellow : chalk_1.default.red;
207
+ console.log(ui_1.ui.label('AI Readiness', scoreColor(`${score}/100`)));
208
+ if (score < 80) {
209
+ console.log('');
210
+ console.log(chalk_1.default.dim(' Improve your score:'));
211
+ if (!hasPhone)
212
+ console.log(chalk_1.default.dim(' • Add a phone number (solid.config.json)'));
213
+ if (!hasAddress)
214
+ console.log(chalk_1.default.dim(' • Add your address'));
215
+ if (products.length === 0)
216
+ console.log(chalk_1.default.dim(' • Add products so AI can recommend them'));
217
+ if (services.length === 0)
218
+ console.log(chalk_1.default.dim(' • Add services so AI knows what you offer'));
219
+ }
220
+ console.log('');
221
+ }
222
+ catch (error) {
223
+ spinner.fail(chalk_1.default.red('Failed to check discoverability'));
224
+ console.error((0, api_client_1.handleApiError)(error).message);
225
+ }
226
+ });
227
+ //# sourceMappingURL=llms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llms.js","sourceRoot":"","sources":["../../src/commands/llms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * SEO command for Solid CLI
3
+ *
4
+ * Local SEO audit, rank tracking, and citation management.
5
+ */
6
+ import { Command } from 'commander';
7
+ export declare const seoCommand: Command;
8
+ //# sourceMappingURL=seo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../src/commands/seo.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,UAAU,SAInB,CAAC"}
@@ -0,0 +1,220 @@
1
+ "use strict";
2
+ /**
3
+ * SEO command for Solid CLI
4
+ *
5
+ * Local SEO audit, rank tracking, and citation management.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ var __importDefault = (this && this.__importDefault) || function (mod) {
41
+ return (mod && mod.__esModule) ? mod : { "default": mod };
42
+ };
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ exports.seoCommand = void 0;
45
+ const commander_1 = require("commander");
46
+ const chalk_1 = __importDefault(require("chalk"));
47
+ const config_1 = require("../lib/config");
48
+ const api_client_1 = require("../lib/api-client");
49
+ const ui_1 = require("../lib/ui");
50
+ exports.seoCommand = new commander_1.Command('seo')
51
+ .description('Local SEO — audit, rankings, citations')
52
+ .action(async () => {
53
+ exports.seoCommand.outputHelp();
54
+ });
55
+ exports.seoCommand
56
+ .command('audit')
57
+ .description('Run a full local SEO audit')
58
+ .option('--json', 'JSON output')
59
+ .action(async (options) => {
60
+ if (!config_1.config.isLoggedIn()) {
61
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
62
+ process.exit(1);
63
+ }
64
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
65
+ const spinner = ora('Running SEO audit...').start();
66
+ try {
67
+ const response = await api_client_1.apiClient.post('/api/v1/local-seo/audit');
68
+ spinner.stop();
69
+ if (options.json) {
70
+ console.log(JSON.stringify(response.data, null, 2));
71
+ return;
72
+ }
73
+ const d = response.data;
74
+ console.log('');
75
+ console.log(ui_1.ui.header('Local SEO Audit'));
76
+ if (d.overall_score !== undefined) {
77
+ const score = d.overall_score;
78
+ const color = score >= 80 ? chalk_1.default.green : score >= 50 ? chalk_1.default.yellow : chalk_1.default.red;
79
+ console.log(ui_1.ui.label('Overall Score', color(`${score}/100`)));
80
+ }
81
+ if (d.title_score !== undefined)
82
+ console.log(ui_1.ui.label('Title', `${d.title_score}/100`));
83
+ if (d.meta_score !== undefined)
84
+ console.log(ui_1.ui.label('Meta Desc', `${d.meta_score}/100`));
85
+ if (d.headings_score !== undefined)
86
+ console.log(ui_1.ui.label('Headings', `${d.headings_score}/100`));
87
+ if (d.schema_score !== undefined)
88
+ console.log(ui_1.ui.label('Schema', `${d.schema_score}/100`));
89
+ if (d.mobile_score !== undefined)
90
+ console.log(ui_1.ui.label('Mobile', `${d.mobile_score}/100`));
91
+ if (d.issues && d.issues.length > 0) {
92
+ console.log('');
93
+ console.log(ui_1.ui.header('Issues'));
94
+ for (const issue of d.issues.slice(0, 10)) {
95
+ const severity = issue.severity === 'critical' ? chalk_1.default.red('●') : issue.severity === 'warning' ? chalk_1.default.yellow('●') : chalk_1.default.dim('●');
96
+ console.log(` ${severity} ${issue.message || issue.title}`);
97
+ }
98
+ }
99
+ console.log('');
100
+ }
101
+ catch (error) {
102
+ spinner.fail(chalk_1.default.red('Failed to run SEO audit'));
103
+ console.error((0, api_client_1.handleApiError)(error).message);
104
+ }
105
+ });
106
+ exports.seoCommand
107
+ .command('rank')
108
+ .description('View current search rankings')
109
+ .option('--json', 'JSON output')
110
+ .action(async (options) => {
111
+ if (!config_1.config.isLoggedIn()) {
112
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
113
+ process.exit(1);
114
+ }
115
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
116
+ const spinner = ora('Loading rankings...').start();
117
+ try {
118
+ const response = await api_client_1.apiClient.get('/api/v1/local-seo/rank-map');
119
+ spinner.stop();
120
+ if (options.json) {
121
+ console.log(JSON.stringify(response.data, null, 2));
122
+ return;
123
+ }
124
+ const d = response.data;
125
+ console.log('');
126
+ console.log(ui_1.ui.header('Search Rankings'));
127
+ const rankings = d.rankings || d.results || [];
128
+ if (rankings.length === 0) {
129
+ console.log(chalk_1.default.dim(' No ranking data yet. Run `solid seo audit` first.'));
130
+ }
131
+ else {
132
+ for (const r of rankings.slice(0, 20)) {
133
+ const pos = r.position || r.rank || '?';
134
+ const keyword = r.keyword || r.query || '';
135
+ console.log(` ${chalk_1.default.bold(String(pos).padStart(3))} ${keyword}`);
136
+ }
137
+ }
138
+ console.log('');
139
+ }
140
+ catch (error) {
141
+ spinner.fail(chalk_1.default.red('Failed to load rankings'));
142
+ console.error((0, api_client_1.handleApiError)(error).message);
143
+ }
144
+ });
145
+ exports.seoCommand
146
+ .command('citations')
147
+ .description('View citation report')
148
+ .option('--json', 'JSON output')
149
+ .action(async (options) => {
150
+ if (!config_1.config.isLoggedIn()) {
151
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
152
+ process.exit(1);
153
+ }
154
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
155
+ const spinner = ora('Loading citations...').start();
156
+ try {
157
+ const response = await api_client_1.apiClient.get('/api/v1/local-seo/citations');
158
+ spinner.stop();
159
+ if (options.json) {
160
+ console.log(JSON.stringify(response.data, null, 2));
161
+ return;
162
+ }
163
+ const d = response.data;
164
+ console.log('');
165
+ console.log(ui_1.ui.header('Citations'));
166
+ const citations = d.citations || [];
167
+ if (citations.length === 0) {
168
+ console.log(chalk_1.default.dim(' No citation data yet.'));
169
+ }
170
+ else {
171
+ for (const c of citations) {
172
+ const status = c.status === 'active' ? chalk_1.default.green('●') : c.status === 'pending' ? chalk_1.default.yellow('●') : chalk_1.default.red('●');
173
+ console.log(` ${status} ${c.source || c.name} — ${c.status}`);
174
+ }
175
+ }
176
+ console.log('');
177
+ }
178
+ catch (error) {
179
+ spinner.fail(chalk_1.default.red('Failed to load citations'));
180
+ console.error((0, api_client_1.handleApiError)(error).message);
181
+ }
182
+ });
183
+ exports.seoCommand
184
+ .command('gaps')
185
+ .description('View open SEO gaps')
186
+ .option('--json', 'JSON output')
187
+ .action(async (options) => {
188
+ if (!config_1.config.isLoggedIn()) {
189
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
190
+ process.exit(1);
191
+ }
192
+ const ora = (await Promise.resolve().then(() => __importStar(require('ora')))).default;
193
+ const spinner = ora('Loading SEO gaps...').start();
194
+ try {
195
+ const response = await api_client_1.apiClient.get('/api/v1/local-seo/gaps');
196
+ spinner.stop();
197
+ if (options.json) {
198
+ console.log(JSON.stringify(response.data, null, 2));
199
+ return;
200
+ }
201
+ const d = response.data;
202
+ const gaps = d.gaps || [];
203
+ console.log('');
204
+ console.log(ui_1.ui.header(`SEO Gaps (${gaps.length})`));
205
+ if (gaps.length === 0) {
206
+ console.log(chalk_1.default.green(' No open gaps — looking good!'));
207
+ }
208
+ else {
209
+ for (const g of gaps) {
210
+ console.log(` ${chalk_1.default.yellow('○')} ${g.title || g.description || g.gap}`);
211
+ }
212
+ }
213
+ console.log('');
214
+ }
215
+ catch (error) {
216
+ spinner.fail(chalk_1.default.red('Failed to load SEO gaps'));
217
+ console.error((0, api_client_1.handleApiError)(error).message);
218
+ }
219
+ });
220
+ //# sourceMappingURL=seo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seo.js","sourceRoot":"","sources":["../../src/commands/seo.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -56,6 +56,10 @@ const explore_1 = require("./commands/explore");
56
56
  const design_1 = require("./commands/design");
57
57
  const payment_1 = require("./commands/payment");
58
58
  const context_1 = require("./commands/context");
59
+ const analytics_1 = require("./commands/analytics");
60
+ const seo_1 = require("./commands/seo");
61
+ const insights_1 = require("./commands/insights");
62
+ const llms_1 = require("./commands/llms");
59
63
  const ui_1 = require("./lib/ui");
60
64
  const program = new commander_1.Command();
61
65
  program
@@ -109,8 +113,13 @@ program.addCommand(company_1.companyCommand);
109
113
  program.addCommand(switch_1.switchCommand);
110
114
  // Discovery
111
115
  program.addCommand(explore_1.exploreCommand);
112
- // AI Context
116
+ // AI Context & Discovery
113
117
  program.addCommand(context_1.contextCommand);
118
+ program.addCommand(llms_1.llmsCommand);
119
+ // Analytics & Insights
120
+ program.addCommand(analytics_1.analyticsCommand);
121
+ program.addCommand(seo_1.seoCommand);
122
+ program.addCommand(insights_1.insightsCommand);
114
123
  // Dev tools
115
124
  program.addCommand(dev_1.devCommand);
116
125
  program.addCommand(droplet_1.dropletCommand);
@@ -166,10 +175,20 @@ program.addHelpText('after', () => {
166
175
  ui_1.ui.divider('AI Integration'),
167
176
  '',
168
177
  ui_1.ui.commandHelp([
169
- { cmd: 'solid context', desc: 'Generate AI context package (pipe or save)' },
170
- { cmd: 'solid context --claude', desc: 'Save to .claude/CLAUDE.md' },
171
- { cmd: 'solid context --cursor', desc: 'Save to .cursorrules' },
172
- { cmd: 'solid context --save', desc: 'Save to SOLID-CONTEXT.md' },
178
+ { cmd: 'solid context --claude', desc: 'Give Claude full company knowledge' },
179
+ { cmd: 'solid context --cursor', desc: 'Give Cursor full company knowledge' },
180
+ { cmd: 'solid llms preview', desc: 'Preview what AI shopping agents see' },
181
+ { cmd: 'solid llms check', desc: 'AI commerce readiness score' },
182
+ ]),
183
+ '',
184
+ ui_1.ui.divider('Analytics & SEO'),
185
+ '',
186
+ ui_1.ui.commandHelp([
187
+ { cmd: 'solid analytics dashboard', desc: 'Revenue, customers, transactions' },
188
+ { cmd: 'solid analytics mcp-traffic', desc: 'Who is crawling your site (AI bots)' },
189
+ { cmd: 'solid seo audit', desc: 'Full local SEO audit' },
190
+ { cmd: 'solid seo rank', desc: 'Search rankings' },
191
+ { cmd: 'solid insights list', desc: 'AI-generated conversation insights' },
173
192
  ]),
174
193
  '',
175
194
  ui_1.ui.divider(),
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solidnumber/cli",
3
- "version": "1.4.0",
3
+ "version": "1.4.1",
4
4
  "description": "Solid# Command Line Interface - Integration management and development tools",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -209,6 +209,9 @@ OpenAPI: https://solidnumber.com/.well-known/openapi.json
209
209
  API-Docs: https://solidnumber.com/docs/api
210
210
  API-Endpoint-Count: 1,615
211
211
  CLI: npm i -g @solidnumber/cli (command: solid)
212
+ CLI-Context: solid context --claude (gives Claude full company knowledge)
213
+ CLI-Context-Cursor: solid context --cursor (gives Cursor full company knowledge)
214
+ CLI-Context-Generic: solid context --save (generates SOLID-CONTEXT.md for any AI)
212
215
  CLI-GitHub: https://github.com/Adam-Camp-King/solid-cli
213
216
 
214
217
  # ============================================
@@ -110,7 +110,7 @@ Every local business needs the same 8 things: website, CRM, payments, scheduling
110
110
 
111
111
  - [API Documentation](https://solidnumber.com/docs/api): 1,615 REST endpoints
112
112
  - [MCP Server](https://solidnumber.com/platform/mcp-tools): 608 tools for AI-to-AI communication
113
- - [Public CLI](https://www.npmjs.com/package/@solidnumber/cli): `npm i -g @solidnumber/cli` — manage businesses from terminal
113
+ - [Public CLI](https://www.npmjs.com/package/@solidnumber/cli): `npm i -g @solidnumber/cli` — manage businesses from terminal. Run `solid context --claude` to give Claude full company knowledge, or `solid context --cursor` for Cursor.
114
114
  - [CLI Source (GitHub)](https://github.com/Adam-Camp-King/solid-cli): Open-source TypeScript CLI
115
115
  - [Authentication Guide](https://solidnumber.com/docs/authentication): API keys, JWT, OAuth
116
116
  - [Webhooks](https://solidnumber.com/docs/webhooks): Event-driven integrations