snow-flow 8.30.11 → 8.30.13

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.
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Partner CLI Commands for Snow-Flow
3
+ *
4
+ * Handles partner authentication, license validation, and partner-specific operations
5
+ *
6
+ * Two partner tracks:
7
+ * - RESELLER: Wholesale pricing, buy seats and resell
8
+ * - SOLUTION: Referral model, earn commission on referrals
9
+ */
10
+ import { type ParsedPartnerLicense } from '../partners/license-parser.js';
11
+ interface PartnerAuthData {
12
+ licenseKey: string;
13
+ parsedLicense: ParsedPartnerLicense;
14
+ authenticatedAt: string;
15
+ partnerId: string;
16
+ partnerName: string;
17
+ }
18
+ /**
19
+ * Partner login command
20
+ * Validates partner license key and stores authentication
21
+ */
22
+ export declare function partnerLogin(): Promise<void>;
23
+ /**
24
+ * Partner logout command
25
+ * Removes partner authentication
26
+ */
27
+ export declare function partnerLogout(): Promise<void>;
28
+ /**
29
+ * Partner status command
30
+ * Shows current partner authentication status
31
+ */
32
+ export declare function partnerStatus(): Promise<void>;
33
+ /**
34
+ * Get current partner authentication data
35
+ * Used by other commands to access partner context
36
+ */
37
+ export declare function getPartnerAuth(): PartnerAuthData | null;
38
+ /**
39
+ * Check if user is authenticated as a partner
40
+ */
41
+ export declare function isPartnerAuthenticated(): boolean;
42
+ /**
43
+ * Register partner commands with Commander
44
+ */
45
+ export declare function registerPartnerCommands(program: any): void;
46
+ export {};
47
+ //# sourceMappingURL=partners.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partners.d.ts","sourceRoot":"","sources":["../../src/cli/partners.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,EAA4E,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAKpJ,UAAU,eAAe;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,oBAAoB,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CA8GlD;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAiCnD;AAED;;;GAGG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA0EnD;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,eAAe,GAAG,IAAI,CASvD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAEhD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CA4B1D"}
@@ -0,0 +1,283 @@
1
+ "use strict";
2
+ /**
3
+ * Partner CLI Commands for Snow-Flow
4
+ *
5
+ * Handles partner authentication, license validation, and partner-specific operations
6
+ *
7
+ * Two partner tracks:
8
+ * - RESELLER: Wholesale pricing, buy seats and resell
9
+ * - SOLUTION: Referral model, earn commission on referrals
10
+ */
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.partnerLogin = partnerLogin;
16
+ exports.partnerLogout = partnerLogout;
17
+ exports.partnerStatus = partnerStatus;
18
+ exports.getPartnerAuth = getPartnerAuth;
19
+ exports.isPartnerAuthenticated = isPartnerAuthenticated;
20
+ exports.registerPartnerCommands = registerPartnerCommands;
21
+ const prompts_1 = require("@clack/prompts");
22
+ const chalk_1 = __importDefault(require("chalk"));
23
+ const fs_1 = __importDefault(require("fs"));
24
+ const path_1 = __importDefault(require("path"));
25
+ const os_1 = __importDefault(require("os"));
26
+ const license_parser_js_1 = require("../partners/license-parser.js");
27
+ const types_js_1 = require("../partners/types.js");
28
+ const AUTH_FILE = path_1.default.join(os_1.default.homedir(), '.snow-flow', 'partner-auth.json');
29
+ /**
30
+ * Partner login command
31
+ * Validates partner license key and stores authentication
32
+ */
33
+ async function partnerLogin() {
34
+ (0, prompts_1.intro)(chalk_1.default.cyan('Snow-Flow Partner Login'));
35
+ const s = (0, prompts_1.spinner)();
36
+ try {
37
+ // Prompt for license key
38
+ const licenseKey = await (0, prompts_1.text)({
39
+ message: 'Enter your partner license key',
40
+ placeholder: 'SNOW-RESELLER-ACME-100-20261231-ABC123 or SNOW-SOLUTION-ACME-20261231-ABC123',
41
+ validate: (value) => {
42
+ if (!value || value.length === 0) {
43
+ return 'License key is required';
44
+ }
45
+ if (!value.startsWith('SNOW-RESELLER-') && !value.startsWith('SNOW-SOLUTION-')) {
46
+ return 'Invalid partner license key format (must start with SNOW-RESELLER- or SNOW-SOLUTION-)';
47
+ }
48
+ return undefined;
49
+ }
50
+ });
51
+ if ((0, prompts_1.isCancel)(licenseKey)) {
52
+ (0, prompts_1.cancel)('Partner login cancelled');
53
+ process.exit(0);
54
+ }
55
+ // Parse and validate license
56
+ s.start('Validating partner license');
57
+ let parsedLicense;
58
+ try {
59
+ parsedLicense = (0, license_parser_js_1.parsePartnerLicenseKey)(licenseKey);
60
+ }
61
+ catch (error) {
62
+ s.stop('License validation failed');
63
+ prompts_1.log.error(`Invalid license key: ${error instanceof Error ? error.message : 'Unknown error'}`);
64
+ process.exit(1);
65
+ }
66
+ // Validate license
67
+ const validation = (0, license_parser_js_1.validatePartnerLicense)(parsedLicense);
68
+ if (!validation.isValid) {
69
+ s.stop('License validation failed');
70
+ prompts_1.log.error('License validation errors:');
71
+ validation.errors.forEach(err => prompts_1.log.error(` - ${err}`));
72
+ process.exit(1);
73
+ }
74
+ s.stop('License validated successfully');
75
+ // Show license info
76
+ prompts_1.log.info('\n' + chalk_1.default.cyan('Partner License Information:'));
77
+ const info = (0, license_parser_js_1.formatPartnerLicenseInfo)(parsedLicense);
78
+ info.split('\n').forEach(line => prompts_1.log.info(` ${line}`));
79
+ // Confirm login
80
+ const shouldLogin = await (0, prompts_1.confirm)({
81
+ message: 'Authenticate with this partner license?',
82
+ initialValue: true
83
+ });
84
+ if ((0, prompts_1.isCancel)(shouldLogin) || !shouldLogin) {
85
+ (0, prompts_1.cancel)('Partner login cancelled');
86
+ process.exit(0);
87
+ }
88
+ // Generate partner ID from organization name
89
+ const partnerId = `${parsedLicense.partnerType}_${parsedLicense.organization.toLowerCase().replace(/[^a-z0-9]/g, '_')}`;
90
+ // Store authentication
91
+ const authData = {
92
+ licenseKey: licenseKey,
93
+ parsedLicense,
94
+ authenticatedAt: new Date().toISOString(),
95
+ partnerId,
96
+ partnerName: parsedLicense.organization
97
+ };
98
+ // Ensure directory exists
99
+ const authDir = path_1.default.dirname(AUTH_FILE);
100
+ if (!fs_1.default.existsSync(authDir)) {
101
+ fs_1.default.mkdirSync(authDir, { recursive: true });
102
+ }
103
+ // Write auth file
104
+ fs_1.default.writeFileSync(AUTH_FILE, JSON.stringify(authData, null, 2));
105
+ prompts_1.log.success(`\nAuthenticated as partner: ${chalk_1.default.cyan(parsedLicense.organization)}`);
106
+ prompts_1.log.info(`Partner type: ${chalk_1.default.cyan(parsedLicense.partnerType.toUpperCase())}`);
107
+ // Type-specific info
108
+ if (parsedLicense.partnerType === types_js_1.PartnerType.RESELLER) {
109
+ prompts_1.log.info(`Purchased seats: ${chalk_1.default.cyan(parsedLicense.purchasedSeats?.toString() || '0')}`);
110
+ // Calculate wholesale cost with volume discount
111
+ const seats = parsedLicense.purchasedSeats || 0;
112
+ let pricePerSeat = 69;
113
+ if (seats >= 500)
114
+ pricePerSeat = 49;
115
+ else if (seats >= 100)
116
+ pricePerSeat = 59;
117
+ prompts_1.log.info(`Wholesale cost: ${chalk_1.default.cyan('$' + (pricePerSeat * seats) + '/year')}`);
118
+ }
119
+ else if (parsedLicense.partnerType === types_js_1.PartnerType.SOLUTION) {
120
+ prompts_1.log.info(`Referral code: ${chalk_1.default.cyan(parsedLicense.referralCode || 'N/A')}`);
121
+ prompts_1.log.info(`Commission: ${chalk_1.default.cyan('15% Year 1, 10% Year 2+')}`);
122
+ }
123
+ (0, prompts_1.outro)(chalk_1.default.green('Partner authentication successful!'));
124
+ }
125
+ catch (error) {
126
+ prompts_1.log.error(`Login error: ${error instanceof Error ? error.message : 'Unknown error'}`);
127
+ process.exit(1);
128
+ }
129
+ }
130
+ /**
131
+ * Partner logout command
132
+ * Removes partner authentication
133
+ */
134
+ async function partnerLogout() {
135
+ (0, prompts_1.intro)(chalk_1.default.cyan('Snow-Flow Partner Logout'));
136
+ try {
137
+ if (!fs_1.default.existsSync(AUTH_FILE)) {
138
+ prompts_1.log.warning('Not authenticated as a partner');
139
+ (0, prompts_1.outro)(chalk_1.default.yellow('No partner session to logout'));
140
+ return;
141
+ }
142
+ // Read current auth
143
+ const authData = JSON.parse(fs_1.default.readFileSync(AUTH_FILE, 'utf-8'));
144
+ // Confirm logout
145
+ const shouldLogout = await (0, prompts_1.confirm)({
146
+ message: `Logout from partner account: ${authData.partnerName}?`,
147
+ initialValue: true
148
+ });
149
+ if ((0, prompts_1.isCancel)(shouldLogout) || !shouldLogout) {
150
+ (0, prompts_1.cancel)('Logout cancelled');
151
+ return;
152
+ }
153
+ // Remove auth file
154
+ fs_1.default.unlinkSync(AUTH_FILE);
155
+ prompts_1.log.success(`Logged out from partner: ${chalk_1.default.cyan(authData.partnerName)}`);
156
+ (0, prompts_1.outro)(chalk_1.default.green('Partner logout successful'));
157
+ }
158
+ catch (error) {
159
+ prompts_1.log.error(`Logout error: ${error instanceof Error ? error.message : 'Unknown error'}`);
160
+ process.exit(1);
161
+ }
162
+ }
163
+ /**
164
+ * Partner status command
165
+ * Shows current partner authentication status
166
+ */
167
+ async function partnerStatus() {
168
+ (0, prompts_1.intro)(chalk_1.default.cyan('Snow-Flow Partner Status'));
169
+ try {
170
+ if (!fs_1.default.existsSync(AUTH_FILE)) {
171
+ prompts_1.log.warning('Not authenticated as a partner');
172
+ prompts_1.log.info('\nTo authenticate:');
173
+ prompts_1.log.info(` ${chalk_1.default.cyan('snow-flow partner login')}`);
174
+ (0, prompts_1.outro)(chalk_1.default.yellow('No active partner session'));
175
+ return;
176
+ }
177
+ // Read auth data
178
+ const authData = JSON.parse(fs_1.default.readFileSync(AUTH_FILE, 'utf-8'));
179
+ // Re-validate license (check expiry)
180
+ const validation = (0, license_parser_js_1.validatePartnerLicense)(authData.parsedLicense);
181
+ prompts_1.log.info('\n' + chalk_1.default.cyan('Partner Authentication Status:'));
182
+ prompts_1.log.info(` Partner: ${chalk_1.default.green(authData.partnerName)}`);
183
+ prompts_1.log.info(` Partner ID: ${chalk_1.default.gray(authData.partnerId)}`);
184
+ prompts_1.log.info(` Type: ${chalk_1.default.cyan(authData.parsedLicense.partnerType.toUpperCase())}`);
185
+ prompts_1.log.info(` Authenticated: ${chalk_1.default.gray(new Date(authData.authenticatedAt).toLocaleString())}`);
186
+ // Type-specific info
187
+ if (authData.parsedLicense.partnerType === types_js_1.PartnerType.RESELLER) {
188
+ prompts_1.log.info(` Purchased Seats: ${chalk_1.default.cyan(authData.parsedLicense.purchasedSeats?.toString() || '0')}`);
189
+ // Calculate wholesale cost with volume discount
190
+ const seats = authData.parsedLicense.purchasedSeats || 0;
191
+ let pricePerSeat = 69;
192
+ if (seats >= 500)
193
+ pricePerSeat = 49;
194
+ else if (seats >= 100)
195
+ pricePerSeat = 59;
196
+ prompts_1.log.info(` Wholesale Price: ${chalk_1.default.cyan('$' + pricePerSeat + '/seat')}`);
197
+ prompts_1.log.info(` Total Cost: ${chalk_1.default.cyan('$' + (pricePerSeat * seats) + '/year')}`);
198
+ prompts_1.log.info(` Suggested Retail: ${chalk_1.default.cyan('$99/seat')}`);
199
+ const margin = 99 - pricePerSeat;
200
+ const marginPercent = Math.round((margin / 99) * 100);
201
+ prompts_1.log.info(` Potential Margin: ${chalk_1.default.green('$' + (margin * seats) + '/year (' + marginPercent + '%)')}`);
202
+ }
203
+ else if (authData.parsedLicense.partnerType === types_js_1.PartnerType.SOLUTION) {
204
+ prompts_1.log.info(` Referral Code: ${chalk_1.default.cyan(authData.parsedLicense.referralCode || 'N/A')}`);
205
+ prompts_1.log.info(` Commission Rates:`);
206
+ prompts_1.log.info(` Year 1: ${chalk_1.default.green('15%')}`);
207
+ prompts_1.log.info(` Year 2+: ${chalk_1.default.green('10%')}`);
208
+ }
209
+ // Expiry status
210
+ const daysUntilExpiry = Math.floor((authData.parsedLicense.expiresAt.getTime() - Date.now()) / (1000 * 60 * 60 * 24));
211
+ if (daysUntilExpiry < 0) {
212
+ prompts_1.log.error(` Status: ${chalk_1.default.red('EXPIRED')} (${Math.abs(daysUntilExpiry)} days ago)`);
213
+ }
214
+ else if (daysUntilExpiry < 30) {
215
+ prompts_1.log.warning(` Status: ${chalk_1.default.yellow('ACTIVE')} (expires in ${daysUntilExpiry} days)`);
216
+ }
217
+ else {
218
+ prompts_1.log.success(` Status: ${chalk_1.default.green('ACTIVE')} (${daysUntilExpiry} days remaining)`);
219
+ }
220
+ prompts_1.log.info(` Expires: ${chalk_1.default.gray(authData.parsedLicense.expiresAt.toLocaleDateString())}`);
221
+ // Validation errors
222
+ if (!validation.isValid) {
223
+ prompts_1.log.warning('\n' + chalk_1.default.yellow('License Validation Issues:'));
224
+ validation.errors.forEach(err => prompts_1.log.warning(` - ${err}`));
225
+ }
226
+ (0, prompts_1.outro)(validation.isValid ? chalk_1.default.green('Partner license is valid') : chalk_1.default.yellow('Please renew your partner license'));
227
+ }
228
+ catch (error) {
229
+ prompts_1.log.error(`Status error: ${error instanceof Error ? error.message : 'Unknown error'}`);
230
+ process.exit(1);
231
+ }
232
+ }
233
+ /**
234
+ * Get current partner authentication data
235
+ * Used by other commands to access partner context
236
+ */
237
+ function getPartnerAuth() {
238
+ try {
239
+ if (!fs_1.default.existsSync(AUTH_FILE)) {
240
+ return null;
241
+ }
242
+ return JSON.parse(fs_1.default.readFileSync(AUTH_FILE, 'utf-8'));
243
+ }
244
+ catch (error) {
245
+ return null;
246
+ }
247
+ }
248
+ /**
249
+ * Check if user is authenticated as a partner
250
+ */
251
+ function isPartnerAuthenticated() {
252
+ return getPartnerAuth() !== null;
253
+ }
254
+ /**
255
+ * Register partner commands with Commander
256
+ */
257
+ function registerPartnerCommands(program) {
258
+ const partnerCommand = program
259
+ .command('partner')
260
+ .description('Snow-Flow Partner Program commands');
261
+ // Partner login
262
+ partnerCommand
263
+ .command('login')
264
+ .description('Authenticate with a Snow-Flow Partner license key (RESELLER or SOLUTION)')
265
+ .action(async () => {
266
+ await partnerLogin();
267
+ });
268
+ // Partner status
269
+ partnerCommand
270
+ .command('status')
271
+ .description('Show current partner authentication status')
272
+ .action(async () => {
273
+ await partnerStatus();
274
+ });
275
+ // Partner logout
276
+ partnerCommand
277
+ .command('logout')
278
+ .description('Logout from partner account')
279
+ .action(async () => {
280
+ await partnerLogout();
281
+ });
282
+ }
283
+ //# sourceMappingURL=partners.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partners.js","sourceRoot":"","sources":["../../src/cli/partners.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;GAEG;AA+jHH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,OAAe,GACrB,OAAO,CAAC,IAAI,CAAC,CAgTf"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;GAEG;AAqkHH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,KAAK,GAAE,OAAe,GACrB,OAAO,CAAC,IAAI,CAAC,CAgTf"}
package/dist/cli.js CHANGED
@@ -70,6 +70,7 @@ if (currentCommand && commandsNeedingMCP.includes(currentCommand) && !commandsNo
70
70
  const auth_js_1 = require("./cli/auth.js");
71
71
  const session_js_1 = require("./cli/session.js");
72
72
  const enterprise_js_1 = require("./cli/enterprise.js");
73
+ const partners_js_1 = require("./cli/partners.js");
73
74
  // Load environment variables
74
75
  dotenv_1.default.config();
75
76
  // Create CLI logger instance
@@ -120,6 +121,8 @@ program
120
121
  (0, session_js_1.registerSessionCommands)(program);
121
122
  // Register enterprise commands (login, status, portal, logout)
122
123
  (0, enterprise_js_1.registerEnterpriseCommands)(program);
124
+ // Register partner commands (partner login, status, logout)
125
+ (0, partners_js_1.registerPartnerCommands)(program);
123
126
  // Flow deprecation handler - check for flow-related commands
124
127
  function checkFlowDeprecation(command, objective) {
125
128
  const flowKeywords = ['flow', 'create-flow', 'xml-flow', 'flow-designer'];
@@ -1954,6 +1957,7 @@ program
1954
1957
  monitor Real-time monitoring dashboard
1955
1958
  memory <action> Memory operations
1956
1959
  auth <action> Authentication management
1960
+ partner <action> Partner Program commands (login, status, logout)
1957
1961
  mcp <action> Manage ServiceNow MCP servers
1958
1962
  help Show this help
1959
1963
 
@@ -1961,6 +1965,8 @@ program
1961
1965
  snow-flow init # Initialize project (auto-configures SnowCode)
1962
1966
  snow-flow auth login # Authenticate (handles LLM + ServiceNow)
1963
1967
  snow-flow auth status # Check authentication status
1968
+ snow-flow partner login # Authenticate as Snow-Flow Partner
1969
+ snow-flow partner status # Check partner license status
1964
1970
  snow-flow swarm "create a widget for incident management"
1965
1971
  snow-flow swarm "create business rule for auto-assignment"
1966
1972
  snow-flow swarm "generate 5000 incidents" --auto-confirm # 📝 Auto-confirm background scripts