@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 +19 -3
- package/dist/commands/analytics.d.ts +8 -0
- package/dist/commands/analytics.d.ts.map +1 -0
- package/dist/commands/analytics.js +136 -0
- package/dist/commands/analytics.js.map +1 -0
- package/dist/commands/docs.d.ts.map +1 -1
- package/dist/commands/docs.js +16 -0
- package/dist/commands/docs.js.map +1 -1
- package/dist/commands/insights.d.ts +9 -0
- package/dist/commands/insights.d.ts.map +1 -0
- package/dist/commands/insights.js +175 -0
- package/dist/commands/insights.js.map +1 -0
- package/dist/commands/llms.d.ts +12 -0
- package/dist/commands/llms.d.ts.map +1 -0
- package/dist/commands/llms.js +227 -0
- package/dist/commands/llms.js.map +1 -0
- package/dist/commands/seo.d.ts +8 -0
- package/dist/commands/seo.d.ts.map +1 -0
- package/dist/commands/seo.js +220 -0
- package/dist/commands/seo.js.map +1 -0
- package/dist/index.js +24 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/platform-docs/ai.txt +3 -0
- package/platform-docs/llms.txt +1 -1
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.
|
|
114
|
-
3.
|
|
115
|
-
4. solid
|
|
128
|
+
2. solid context → Give your AI full company knowledge
|
|
129
|
+
3. Edit files → VS Code, Cursor, any editor (AI-assisted)
|
|
130
|
+
4. solid push → Deploy changes instantly
|
|
131
|
+
5. solid vibe → "Add a hero section" (natural language)
|
|
116
132
|
```
|
|
117
133
|
|
|
118
134
|
## File Formats
|
|
@@ -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":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yCAAoC;AACpC,kDAA0B;AAC1B,0CAAuC;AACvC,kDAA8D;AAC9D,kCAA+B;AAElB,QAAA,gBAAgB,GAAG,IAAI,mBAAO,CAAC,WAAW,CAAC;KACrD,WAAW,CAAC,iCAAiC,CAAC;KAC9C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,wBAAgB,CAAC,UAAU,EAAE,CAAC;AAChC,CAAC,CAAC,CAAC;AAEL,wBAAgB;KACb,OAAO,CAAC,WAAW,CAAC;KACpB,WAAW,CAAC,2CAA2C,CAAC;KACxD,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,IAAI,CAAC;KACjD,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;KAC/B,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC,eAAM,CAAC,UAAU,EAAE,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,wDAAa,KAAK,GAAC,CAAC,CAAC,OAAO,CAAC;IAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEpD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,sBAAS,CAAC,GAAG,CAAC,2BAA2B,EAAE;YAChE,MAAM,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;SACnC,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAW,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,OAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAE7C,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,OAAE,CAAC,KAAK,CAAC,SAAS,EAAE,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACpH,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,OAAE,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrG,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,OAAE,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,CAAC,aAAa,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,OAAE,CAAC,KAAK,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACxG,IAAI,CAAC,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,OAAE,CAAC,KAAK,CAAC,iBAAiB,EAAE,eAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,KAAK,CAAC,IAAA,2BAAc,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,wBAAgB;KACb,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,+CAA+C,CAAC;KAC5D,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC;KAC/B,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,IAAI,CAAC,eAAM,CAAC,UAAU,EAAE,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,GAAG,GAAG,CAAC,wDAAa,KAAK,GAAC,CAAC,CAAC,OAAO,CAAC;IAC1C,MAAM,OAAO,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEtD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,sBAAS,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,EAAE,CAAC;QAEf,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACpD,OAAO;QACT,CAAC;QAED,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAW,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,OAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAE7C,IAAI,CAAC,CAAC,UAAU,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,OAAE,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1F,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,OAAE,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,OAAE,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACrF,IAAI,CAAC,CAAC,YAAY,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,OAAE,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC3F,IAAI,CAAC,CAAC,WAAW,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,OAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACxF,IAAI,CAAC,CAAC,eAAe,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,OAAE,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACpG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACtD,OAAO,CAAC,KAAK,CAAC,IAAA,2BAAc,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -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;
|
|
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"}
|
package/dist/commands/docs.js
CHANGED
|
@@ -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":";AAAA;;;;;;;;;;;;;GAaG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yCAAoC;AACpC,8CAAsB;AACtB,kDAA0B;AAC1B,uCAAyB;AACzB,2CAA6B;AAG7B,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,MAAM,IAAI,GAAyE;IACjF,iBAAiB,EAAE;QACjB,QAAQ,EAAE,oBAAoB;QAC9B,KAAK,EAAE,6BAA6B;QACpC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4HZ;KACE;IAED,eAAe,EAAE;QACf,QAAQ,EAAE,kBAAkB;QAC5B,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuHZ;KACE;IAED,kBAAkB,EAAE;QAClB,QAAQ,EAAE,qBAAqB;QAC/B,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4JZ;KACE;IAED,UAAU,EAAE;QACV,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,oCAAoC;QAC3C,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiIZ;KACE;IAED,YAAY,EAAE;QACZ,QAAQ,EAAE,eAAe;QACzB,KAAK,EAAE,kCAAkC;QACzC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6EZ;KACE;IAED,eAAe,EAAE;QACf,QAAQ,EAAE,kBAAkB;QAC5B,KAAK,EAAE,uBAAuB;QAC9B,OAAO,EAAE
|
|
1
|
+
{"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,yCAAoC;AACpC,8CAAsB;AACtB,kDAA0B;AAC1B,uCAAyB;AACzB,2CAA6B;AAG7B,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,MAAM,IAAI,GAAyE;IACjF,iBAAiB,EAAE;QACjB,QAAQ,EAAE,oBAAoB;QAC9B,KAAK,EAAE,6BAA6B;QACpC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4HZ;KACE;IAED,eAAe,EAAE;QACf,QAAQ,EAAE,kBAAkB;QAC5B,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuHZ;KACE;IAED,kBAAkB,EAAE;QAClB,QAAQ,EAAE,qBAAqB;QAC/B,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4JZ;KACE;IAED,UAAU,EAAE;QACV,QAAQ,EAAE,aAAa;QACvB,KAAK,EAAE,oCAAoC;QAC3C,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiIZ;KACE;IAED,YAAY,EAAE;QACZ,QAAQ,EAAE,eAAe;QACzB,KAAK,EAAE,kCAAkC;QACzC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6EZ;KACE;IAED,eAAe,EAAE;QACf,QAAQ,EAAE,kBAAkB;QAC5B,KAAK,EAAE,uBAAuB;QAC9B,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqLZ;KACE;CACF,CAAC;AAEW,QAAA,WAAW,GAAG,IAAI,mBAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,GAAG,CAAC;KACzD,MAAM,CAAC,SAAS,EAAE,yBAAyB,CAAC;KAC5C,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAE3C,8BAA8B;IAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7C,MAAM,aAAa,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/E,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,iDAAiD,CAAC,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC;YACvC,OAAO;QACT,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;IAEzD,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QAChE,KAAK,EAAE,CAAC;IACV,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,KAAK,iBAAiB,CAAC,CAAC,CAAC;IAExD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC,CAAC;IAC/F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -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 @@
|
|
|
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: '
|
|
170
|
-
{ cmd: 'solid context --
|
|
171
|
-
{ cmd: 'solid
|
|
172
|
-
{ cmd: 'solid
|
|
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
package/platform-docs/ai.txt
CHANGED
|
@@ -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
|
# ============================================
|
package/platform-docs/llms.txt
CHANGED
|
@@ -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
|