airpilot 0.0.2 → 0.7.8

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.
Files changed (67) hide show
  1. package/README.md +32 -18
  2. package/dist/airpilot/builders/config.d.ts +3 -0
  3. package/dist/airpilot/builders/config.d.ts.map +1 -0
  4. package/dist/airpilot/builders/config.js +168 -0
  5. package/dist/airpilot/builders/config.js.map +1 -0
  6. package/dist/airpilot/builders/content.d.ts +6 -0
  7. package/dist/airpilot/builders/content.d.ts.map +1 -0
  8. package/dist/airpilot/builders/content.js +276 -0
  9. package/dist/airpilot/builders/content.js.map +1 -0
  10. package/dist/airpilot/builders/domains.d.ts +2 -0
  11. package/dist/airpilot/builders/domains.d.ts.map +1 -0
  12. package/dist/airpilot/builders/domains.js +212 -0
  13. package/dist/airpilot/builders/domains.js.map +1 -0
  14. package/dist/airpilot/builders/scaffold.d.ts +2 -0
  15. package/dist/airpilot/builders/scaffold.d.ts.map +1 -0
  16. package/dist/airpilot/builders/scaffold.js +218 -0
  17. package/dist/airpilot/builders/scaffold.js.map +1 -0
  18. package/dist/airpilot/cli.d.ts +4 -0
  19. package/dist/airpilot/cli.d.ts.map +1 -0
  20. package/dist/airpilot/cli.js +87 -0
  21. package/dist/airpilot/cli.js.map +1 -0
  22. package/dist/airpilot/commands/init.d.ts +2 -0
  23. package/dist/airpilot/commands/init.d.ts.map +1 -0
  24. package/dist/airpilot/commands/init.js +257 -0
  25. package/dist/airpilot/commands/init.js.map +1 -0
  26. package/dist/airpilot/commands/license.d.ts +2 -0
  27. package/dist/airpilot/commands/license.d.ts.map +1 -0
  28. package/dist/airpilot/commands/license.js +213 -0
  29. package/dist/airpilot/commands/license.js.map +1 -0
  30. package/dist/airpilot/commands/sync.d.ts +3 -0
  31. package/dist/airpilot/commands/sync.d.ts.map +1 -0
  32. package/dist/airpilot/commands/sync.js +42 -0
  33. package/dist/airpilot/commands/sync.js.map +1 -0
  34. package/dist/airpilot/license.d.ts +26 -0
  35. package/dist/airpilot/license.d.ts.map +1 -0
  36. package/dist/airpilot/license.js +249 -0
  37. package/dist/airpilot/license.js.map +1 -0
  38. package/dist/airpilot/types.d.ts +69 -0
  39. package/dist/airpilot/types.d.ts.map +1 -0
  40. package/dist/airpilot/types.js +3 -0
  41. package/dist/airpilot/types.js.map +1 -0
  42. package/dist/airpilot/ui/panels.d.ts +27 -0
  43. package/dist/airpilot/ui/panels.d.ts.map +1 -0
  44. package/dist/airpilot/ui/panels.js +425 -0
  45. package/dist/airpilot/ui/panels.js.map +1 -0
  46. package/dist/airpilot/ui/prompts.d.ts +4 -0
  47. package/dist/airpilot/ui/prompts.d.ts.map +1 -0
  48. package/dist/airpilot/ui/prompts.js +52 -0
  49. package/dist/airpilot/ui/prompts.js.map +1 -0
  50. package/dist/airpilot/ui/textFormatter.d.ts +25 -0
  51. package/dist/airpilot/ui/textFormatter.d.ts.map +1 -0
  52. package/dist/airpilot/ui/textFormatter.js +174 -0
  53. package/dist/airpilot/ui/textFormatter.js.map +1 -0
  54. package/dist/airpilot/utils/backup.d.ts +4 -0
  55. package/dist/airpilot/utils/backup.d.ts.map +1 -0
  56. package/dist/airpilot/utils/backup.js +73 -0
  57. package/dist/airpilot/utils/backup.js.map +1 -0
  58. package/dist/airpilot/utils/git.d.ts +2 -0
  59. package/dist/airpilot/utils/git.d.ts.map +1 -0
  60. package/dist/airpilot/utils/git.js +74 -0
  61. package/dist/airpilot/utils/git.js.map +1 -0
  62. package/dist/airpilot/utils/version.d.ts +2 -0
  63. package/dist/airpilot/utils/version.d.ts.map +1 -0
  64. package/dist/airpilot/utils/version.js +59 -0
  65. package/dist/airpilot/utils/version.js.map +1 -0
  66. package/package.json +59 -19
  67. package/index.js +0 -44
@@ -0,0 +1,257 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.initCommand = initCommand;
37
+ const fs = __importStar(require("fs-extra"));
38
+ const path = __importStar(require("path"));
39
+ const os = __importStar(require("os"));
40
+ const panels_1 = require("../ui/panels");
41
+ const prompts_1 = require("../ui/prompts");
42
+ const config_1 = require("../builders/config");
43
+ const scaffold_1 = require("../builders/scaffold");
44
+ const backup_1 = require("../utils/backup");
45
+ const git_1 = require("../utils/git");
46
+ async function initCommand(args) {
47
+ const helpFlag = args.includes('--help');
48
+ const globalInit = args.includes('--global');
49
+ const force = args.includes('--force');
50
+ const projectName = args.find(arg => !arg.startsWith('--'));
51
+ if (helpFlag) {
52
+ panels_1.PanelRenderer.showInitHelpPanel();
53
+ return;
54
+ }
55
+ try {
56
+ if (globalInit) {
57
+ await initGlobalIntelligence();
58
+ }
59
+ else if (projectName) {
60
+ await initNewProject(projectName, force);
61
+ }
62
+ else {
63
+ await initCurrentDirectory(force);
64
+ }
65
+ }
66
+ catch (error) {
67
+ if (error instanceof Error && error.message === 'CANCELLED') {
68
+ panels_1.PanelRenderer.showErrorPanel('Operation cancelled by user', 'Cancelled');
69
+ process.exit(1);
70
+ }
71
+ else {
72
+ panels_1.PanelRenderer.showErrorPanel(`Error: ${error instanceof Error ? error.message : 'Unknown error'}`, 'Error');
73
+ process.exit(1);
74
+ }
75
+ }
76
+ }
77
+ async function initGlobalIntelligence() {
78
+ const home = os.homedir();
79
+ const airpilotFile = path.join(home, '.airpilot');
80
+ const airDir = path.join(home, '.air');
81
+ const content = {
82
+ items: [
83
+ { type: 'title', content: 'Initializing System-Level Intelligence Control' },
84
+ { type: 'space' },
85
+ { type: 'header', content: 'Creating' },
86
+ { type: 'bullet', content: `${airpilotFile} (AirPilot configuration FILE)` },
87
+ { type: 'bullet', content: `${airDir} (.air standard DIRECTORY)` }
88
+ ]
89
+ };
90
+ console.log(panels_1.PanelRenderer.createRichPanel(content, 'Global Intelligence'));
91
+ const existing = [];
92
+ if (await fs.pathExists(airpilotFile)) {
93
+ existing.push(airpilotFile);
94
+ }
95
+ if (await fs.pathExists(airDir)) {
96
+ existing.push(airDir);
97
+ }
98
+ if (existing.length > 0) {
99
+ const existingContent = {
100
+ items: [
101
+ { type: 'header', content: 'Found existing files/directories' },
102
+ ...existing.map(f => ({ type: 'bullet', content: f })),
103
+ { type: 'space' },
104
+ { type: 'text', content: 'Continue and merge with existing?' }
105
+ ]
106
+ };
107
+ console.log(panels_1.PanelRenderer.createRichPanel(existingContent, 'Existing Files Found'));
108
+ const shouldContinue = await (0, prompts_1.confirmAction)('Continue and merge with existing?');
109
+ if (!shouldContinue) {
110
+ panels_1.PanelRenderer.showErrorPanel('Operation cancelled', 'Cancelled');
111
+ return;
112
+ }
113
+ }
114
+ try {
115
+ await (0, config_1.createAirPilotGlobalConfig)(home);
116
+ }
117
+ catch (error) {
118
+ const errorContent = {
119
+ items: [
120
+ { type: 'header', content: 'Failed to create AirPilot configuration' },
121
+ { type: 'text', content: `${error instanceof Error ? error.message : 'Unknown error'}` },
122
+ { type: 'space' },
123
+ { type: 'header', content: 'Possible solutions' },
124
+ { type: 'bullet', content: `Check that ${airpilotFile} is not a directory` },
125
+ { type: 'bullet', content: 'Verify you have write permissions to your home directory' },
126
+ { type: 'bullet', content: `Try removing ${airpilotFile} manually if it's corrupted` }
127
+ ]
128
+ };
129
+ console.log(panels_1.PanelRenderer.createRichPanel(errorContent, 'Configuration Error', 'red'));
130
+ return;
131
+ }
132
+ try {
133
+ await (0, scaffold_1.createAirStandard)(airDir);
134
+ }
135
+ catch (error) {
136
+ const errorContent = {
137
+ items: [
138
+ { type: 'header', content: 'Failed to create .air standard' },
139
+ { type: 'text', content: `${error instanceof Error ? error.message : 'Unknown error'}` },
140
+ { type: 'space' },
141
+ { type: 'header', content: 'Possible solutions' },
142
+ { type: 'bullet', content: `Check that ${airDir} is a directory, not a file` },
143
+ { type: 'bullet', content: 'Verify you have write permissions to your home directory' },
144
+ { type: 'bullet', content: `Try removing ${airDir} manually if it's corrupted` }
145
+ ]
146
+ };
147
+ console.log(panels_1.PanelRenderer.createRichPanel(errorContent, 'Air Standard Error', 'red'));
148
+ return;
149
+ }
150
+ const successContent = {
151
+ items: [
152
+ { type: 'title', content: 'SUCCESS: System-level intelligence control initialized!' },
153
+ { type: 'space' },
154
+ { type: 'header', content: 'Next steps' },
155
+ { type: 'bullet', content: `Configure your preferences in ${airpilotFile}` },
156
+ { type: 'bullet', content: `Add global rules and prompts to ${airDir}/` },
157
+ { type: 'bullet', content: 'Run air init in project directories to inherit from global' }
158
+ ]
159
+ };
160
+ console.log(panels_1.PanelRenderer.createRichPanel(successContent, 'Global Intelligence Control Initialized', 'green'));
161
+ }
162
+ async function initCurrentDirectory(force) {
163
+ const currentDir = process.cwd();
164
+ const content = {
165
+ items: [
166
+ { type: 'title', content: 'Initializing Intelligence Control' },
167
+ { type: 'space' },
168
+ { type: 'text', content: `Directory: ${currentDir}` }
169
+ ]
170
+ };
171
+ console.log(panels_1.PanelRenderer.createRichPanel(content, 'Project Intelligence'));
172
+ const airDir = path.join(currentDir, '.air');
173
+ if (await fs.pathExists(airDir) && !force) {
174
+ if (await (0, backup_1.detectAirStandard)(airDir)) {
175
+ const existingContent = {
176
+ items: [
177
+ { type: 'header', content: 'Found existing .air standard directory' },
178
+ { type: 'space' },
179
+ { type: 'text', content: 'Merge with existing .air directory?' }
180
+ ]
181
+ };
182
+ console.log(panels_1.PanelRenderer.createRichPanel(existingContent, 'Existing .air Directory Found'));
183
+ const shouldMerge = await (0, prompts_1.confirmAction)('Merge with existing .air directory?');
184
+ if (!shouldMerge) {
185
+ panels_1.PanelRenderer.showErrorPanel('Operation cancelled', 'Cancelled');
186
+ return;
187
+ }
188
+ }
189
+ else {
190
+ const backupPath = await (0, backup_1.backupExistingAir)(airDir);
191
+ const backupContent = {
192
+ items: [
193
+ { type: 'header', content: 'Found non-standard .air directory' },
194
+ { type: 'space' },
195
+ { type: 'header', content: 'Backup location' },
196
+ { type: 'text', content: backupPath }
197
+ ]
198
+ };
199
+ console.log(panels_1.PanelRenderer.createRichPanel(backupContent, 'Directory Backed Up'));
200
+ }
201
+ }
202
+ await (0, git_1.initGitIfNeeded)(currentDir);
203
+ await (0, backup_1.backupAiVendors)(currentDir);
204
+ await (0, scaffold_1.createAirStandard)(airDir, true);
205
+ await (0, config_1.createAirPilotProjectConfig)(currentDir);
206
+ const successContent = {
207
+ items: [
208
+ { type: 'title', content: 'SUCCESS: Project intelligence control initialized!' },
209
+ { type: 'space' },
210
+ { type: 'header', content: 'Next steps' },
211
+ { type: 'bullet', content: 'Add project rules to .air/rules/' },
212
+ { type: 'bullet', content: 'Configure vendors in .airpilot' },
213
+ { type: 'bullet', content: 'Install AirPilot VSCode extension for automatic sync' }
214
+ ]
215
+ };
216
+ console.log(panels_1.PanelRenderer.createRichPanel(successContent, 'Project Intelligence Control Initialized', 'green'));
217
+ }
218
+ async function initNewProject(projectName, force) {
219
+ const projectDir = path.join(process.cwd(), projectName);
220
+ const content = {
221
+ items: [
222
+ { type: 'title', content: 'Creating New Project with Intelligence Control' },
223
+ { type: 'space' },
224
+ { type: 'text', content: `Project: ${projectName}` },
225
+ { type: 'text', content: `Location: ${projectDir}` }
226
+ ]
227
+ };
228
+ console.log(panels_1.PanelRenderer.createRichPanel(content, 'New Project'));
229
+ if (await fs.pathExists(projectDir) && !force) {
230
+ const existsContent = {
231
+ items: [
232
+ { type: 'header', content: `Directory '${projectName}' already exists` },
233
+ { type: 'space' },
234
+ { type: 'text', content: 'Continue with existing directory?' }
235
+ ]
236
+ };
237
+ console.log(panels_1.PanelRenderer.createRichPanel(existsContent, 'Directory Exists'));
238
+ const shouldContinue = await (0, prompts_1.confirmAction)('Continue with existing directory?');
239
+ if (!shouldContinue) {
240
+ panels_1.PanelRenderer.showErrorPanel('Operation cancelled', 'Cancelled');
241
+ return;
242
+ }
243
+ }
244
+ await fs.ensureDir(projectDir);
245
+ process.chdir(projectDir);
246
+ await initCurrentDirectory(force);
247
+ const successContent = {
248
+ items: [
249
+ { type: 'title', content: `SUCCESS: New project '${projectName}' created successfully!` },
250
+ { type: 'space' },
251
+ { type: 'header', content: 'Project location' },
252
+ { type: 'text', content: projectDir }
253
+ ]
254
+ };
255
+ console.log(panels_1.PanelRenderer.createRichPanel(successContent, 'Project Created', 'green'));
256
+ }
257
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/airpilot/commands/init.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBA,kCAoCC;AAlDD,6CAA+B;AAC/B,2CAA6B;AAC7B,uCAAyB;AACzB,yCAA6C;AAC7C,2CAA8C;AAC9C,+CAA6F;AAC7F,mDAAyD;AACzD,4CAAwF;AACxF,sCAA+C;AAMxC,KAAK,UAAU,WAAW,CAAC,IAAc;IAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAGvC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAG5D,IAAI,QAAQ,EAAE,CAAC;QACb,sBAAa,CAAC,iBAAiB,EAAE,CAAC;QAClC,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QAEH,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,sBAAsB,EAAE,CAAC;QACjC,CAAC;aAAM,IAAI,WAAW,EAAE,CAAC;YACvB,MAAM,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;YAC5D,sBAAa,CAAC,cAAc,CAAC,6BAA6B,EAAE,WAAW,CAAC,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,sBAAa,CAAC,cAAc,CAC1B,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EACpE,OAAO,CACR,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC;AAUD,KAAK,UAAU,sBAAsB;IACnC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAE1B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAG;QACd,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,OAAgB,EAAE,OAAO,EAAE,gDAAgD,EAAE;YACrF,EAAE,IAAI,EAAE,OAAgB,EAAE;YAC1B,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,UAAU,EAAE;YAChD,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,GAAG,YAAY,gCAAgC,EAAE;YACrF,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,GAAG,MAAM,4BAA4B,EAAE;SAC5E;KACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,sBAAa,CAAC,eAAe,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAG3E,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACtC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG;YACtB,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,kCAAkC,EAAE;gBACxE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC/D,EAAE,IAAI,EAAE,OAAgB,EAAE;gBAC1B,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,mCAAmC,EAAE;aACxE;SACF,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,sBAAa,CAAC,eAAe,CAAC,eAAe,EAAE,sBAAsB,CAAC,CAAC,CAAC;QAEpF,MAAM,cAAc,GAAG,MAAM,IAAA,uBAAa,EAAC,mCAAmC,CAAC,CAAC;QAChF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,sBAAa,CAAC,cAAc,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;IACH,CAAC;IAGD,IAAI,CAAC;QACH,MAAM,IAAA,mCAA0B,EAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG;YACnB,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,yCAAyC,EAAE;gBAC/E,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE;gBACjG,EAAE,IAAI,EAAE,OAAgB,EAAE;gBAC1B,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,oBAAoB,EAAE;gBAC1D,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,cAAc,YAAY,qBAAqB,EAAE;gBACrF,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,0DAA0D,EAAE;gBAChG,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,gBAAgB,YAAY,6BAA6B,EAAE;aAChG;SACF,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,sBAAa,CAAC,eAAe,CAAC,YAAY,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC,CAAC;QACvF,OAAO;IACT,CAAC;IAGD,IAAI,CAAC;QACH,MAAM,IAAA,4BAAiB,EAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG;YACnB,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,gCAAgC,EAAE;gBACtE,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,EAAE;gBACjG,EAAE,IAAI,EAAE,OAAgB,EAAE;gBAC1B,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,oBAAoB,EAAE;gBAC1D,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,cAAc,MAAM,6BAA6B,EAAE;gBACvF,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,0DAA0D,EAAE;gBAChG,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,gBAAgB,MAAM,6BAA6B,EAAE;aAC1F;SACF,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,sBAAa,CAAC,eAAe,CAAC,YAAY,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC,CAAC;QACtF,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAG;QACrB,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,OAAgB,EAAE,OAAO,EAAE,yDAAyD,EAAE;YAC9F,EAAE,IAAI,EAAE,OAAgB,EAAE;YAC1B,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,YAAY,EAAE;YAClD,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,iCAAiC,YAAY,EAAE,EAAE;YACrF,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,mCAAmC,MAAM,GAAG,EAAE;YAClF,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,4DAA4D,EAAE;SACnG;KACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,sBAAa,CAAC,eAAe,CAAC,cAAc,EAAE,yCAAyC,EAAE,OAAO,CAAC,CAAC,CAAC;AACjH,CAAC;AAUD,KAAK,UAAU,oBAAoB,CAAC,KAAc;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAEjC,MAAM,OAAO,GAAG;QACd,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,OAAgB,EAAE,OAAO,EAAE,mCAAmC,EAAE;YACxE,EAAE,IAAI,EAAE,OAAgB,EAAE;YAC1B,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,cAAc,UAAU,EAAE,EAAE;SAC/D;KACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,sBAAa,CAAC,eAAe,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAG5E,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1C,IAAI,MAAM,IAAA,0BAAiB,EAAC,MAAM,CAAC,EAAE,CAAC;YACpC,MAAM,eAAe,GAAG;gBACtB,KAAK,EAAE;oBACL,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,wCAAwC,EAAE;oBAC9E,EAAE,IAAI,EAAE,OAAgB,EAAE;oBAC1B,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,qCAAqC,EAAE;iBAC1E;aACF,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,sBAAa,CAAC,eAAe,CAAC,eAAe,EAAE,+BAA+B,CAAC,CAAC,CAAC;YAE7F,MAAM,WAAW,GAAG,MAAM,IAAA,uBAAa,EAAC,qCAAqC,CAAC,CAAC;YAC/E,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,sBAAa,CAAC,cAAc,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;gBACjE,OAAO;YACT,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,MAAM,IAAA,0BAAiB,EAAC,MAAM,CAAC,CAAC;YACnD,MAAM,aAAa,GAAG;gBACpB,KAAK,EAAE;oBACL,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,mCAAmC,EAAE;oBACzE,EAAE,IAAI,EAAE,OAAgB,EAAE;oBAC1B,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,iBAAiB,EAAE;oBACvD,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,UAAU,EAAE;iBAC/C;aACF,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,sBAAa,CAAC,eAAe,CAAC,aAAa,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAGD,MAAM,IAAA,qBAAe,EAAC,UAAU,CAAC,CAAC;IAGlC,MAAM,IAAA,wBAAe,EAAC,UAAU,CAAC,CAAC;IAGlC,MAAM,IAAA,4BAAiB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAGtC,MAAM,IAAA,oCAA2B,EAAC,UAAU,CAAC,CAAC;IAE9C,MAAM,cAAc,GAAG;QACrB,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,OAAgB,EAAE,OAAO,EAAE,oDAAoD,EAAE;YACzF,EAAE,IAAI,EAAE,OAAgB,EAAE;YAC1B,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,YAAY,EAAE;YAClD,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,kCAAkC,EAAE;YACxE,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,gCAAgC,EAAE;YACtE,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,sDAAsD,EAAE;SAC7F;KACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,sBAAa,CAAC,eAAe,CAAC,cAAc,EAAE,0CAA0C,EAAE,OAAO,CAAC,CAAC,CAAC;AAClH,CAAC;AAKD,KAAK,UAAU,cAAc,CAAC,WAAmB,EAAE,KAAc;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IAEzD,MAAM,OAAO,GAAG;QACd,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,OAAgB,EAAE,OAAO,EAAE,gDAAgD,EAAE;YACrF,EAAE,IAAI,EAAE,OAAgB,EAAE;YAC1B,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,YAAY,WAAW,EAAE,EAAE;YAC7D,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,aAAa,UAAU,EAAE,EAAE;SAC9D;KACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,sBAAa,CAAC,eAAe,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAGnE,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9C,MAAM,aAAa,GAAG;YACpB,KAAK,EAAE;gBACL,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,cAAc,WAAW,kBAAkB,EAAE;gBACjF,EAAE,IAAI,EAAE,OAAgB,EAAE;gBAC1B,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,mCAAmC,EAAE;aACxE;SACF,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,sBAAa,CAAC,eAAe,CAAC,aAAa,EAAE,kBAAkB,CAAC,CAAC,CAAC;QAE9E,MAAM,cAAc,GAAG,MAAM,IAAA,uBAAa,EAAC,mCAAmC,CAAC,CAAC;QAChF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,sBAAa,CAAC,cAAc,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;YACjE,OAAO;QACT,CAAC;IACH,CAAC;IAGD,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAG/B,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAG1B,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAElC,MAAM,cAAc,GAAG;QACrB,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,OAAgB,EAAE,OAAO,EAAE,yBAAyB,WAAW,yBAAyB,EAAE;YAClG,EAAE,IAAI,EAAE,OAAgB,EAAE;YAC1B,EAAE,IAAI,EAAE,QAAiB,EAAE,OAAO,EAAE,kBAAkB,EAAE;YACxD,EAAE,IAAI,EAAE,MAAe,EAAE,OAAO,EAAE,UAAU,EAAE;SAC/C;KACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,sBAAa,CAAC,eAAe,CAAC,cAAc,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;AACzF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function licenseCommand(args: string[]): Promise<void>;
2
+ //# sourceMappingURL=license.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../../src/airpilot/commands/license.ts"],"names":[],"mappings":"AAaA,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA8ClE"}
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.licenseCommand = licenseCommand;
4
+ const license_1 = require("../license");
5
+ const panels_1 = require("../ui/panels");
6
+ const prompts_1 = require("@clack/prompts");
7
+ async function licenseCommand(args) {
8
+ if (args.length === 0) {
9
+ await showLicenseStatus();
10
+ return;
11
+ }
12
+ const subcommand = args[0];
13
+ const subArgs = args.slice(1);
14
+ if (args.includes('--help') && (!subcommand || !['install', 'remove', 'status', 'help'].includes(subcommand))) {
15
+ panels_1.PanelRenderer.showLicenseGroupHelpPanel();
16
+ return;
17
+ }
18
+ switch (subcommand) {
19
+ case 'install':
20
+ await licenseInstallCommand(subArgs);
21
+ break;
22
+ case 'remove':
23
+ await licenseRemoveCommand(subArgs);
24
+ break;
25
+ case 'status':
26
+ await licenseStatusCommand(subArgs);
27
+ break;
28
+ case 'help':
29
+ await licenseHelpCommand(subArgs);
30
+ break;
31
+ default:
32
+ const content = {
33
+ items: [
34
+ { type: 'text', content: `Unknown license subcommand '${subcommand}'` },
35
+ { type: 'space' },
36
+ { type: 'header', content: 'Available subcommands' },
37
+ { type: 'command', command: 'install <key>', description: 'Install a license key' },
38
+ { type: 'command', command: 'remove', description: 'Remove stored license' },
39
+ { type: 'command', command: 'status', description: 'Show license status' },
40
+ { type: 'command', command: 'help', description: 'Complete licensing guide' }
41
+ ]
42
+ };
43
+ console.log(panels_1.PanelRenderer.createRichPanel(content, 'Unknown Subcommand', 'red'));
44
+ process.exit(1);
45
+ }
46
+ }
47
+ async function licenseInstallCommand(args) {
48
+ if (args.includes('--help')) {
49
+ panels_1.PanelRenderer.showLicenseInstallHelpPanel();
50
+ return;
51
+ }
52
+ const key = args.find(arg => !arg.startsWith('--'));
53
+ if (!key) {
54
+ panels_1.PanelRenderer.showLicenseInstallHelpPanel();
55
+ return;
56
+ }
57
+ const licenseManager = new license_1.LicenseManager();
58
+ try {
59
+ const success = await licenseManager.installLicense(key);
60
+ if (success) {
61
+ const info = await licenseManager.getLicenseInfo();
62
+ const content = {
63
+ items: [
64
+ { type: 'success', content: 'License installed successfully!' },
65
+ { type: 'space' },
66
+ { type: 'text', content: `Plan: ${info.plan.toUpperCase()}` },
67
+ { type: 'text', content: `Features: ${info.features.join(', ')}` },
68
+ { type: 'space' },
69
+ { type: 'text', content: 'You can now use premium features like air sync' }
70
+ ]
71
+ };
72
+ console.log(panels_1.PanelRenderer.createRichPanel(content, 'License Installation Complete', 'green'));
73
+ }
74
+ else {
75
+ const content = {
76
+ items: [
77
+ { type: 'text', content: 'Invalid license key' },
78
+ { type: 'space' },
79
+ { type: 'header', content: 'To get a license' },
80
+ { type: 'bullet', content: 'Email: shaneholloman@gmail.com' },
81
+ { type: 'bullet', content: 'Subject: AirPilot License Request' },
82
+ { type: 'bullet', content: 'Include your name and use case' },
83
+ { type: 'space' },
84
+ { type: 'header', content: 'Example format' },
85
+ { type: 'text', content: 'airpilot-poc-XXXXXXXX-XXXXXXXX' }
86
+ ]
87
+ };
88
+ console.log(panels_1.PanelRenderer.createRichPanel(content, 'License Installation Failed', 'red'));
89
+ }
90
+ }
91
+ catch (error) {
92
+ const content = {
93
+ items: [
94
+ { type: 'text', content: 'An error occurred during license installation' },
95
+ { type: 'text', content: error instanceof Error ? error.message : 'Unknown error' }
96
+ ]
97
+ };
98
+ console.log(panels_1.PanelRenderer.createRichPanel(content, 'Installation Error', 'red'));
99
+ }
100
+ }
101
+ async function licenseRemoveCommand(args) {
102
+ if (args.includes('--help')) {
103
+ panels_1.PanelRenderer.showLicenseRemoveHelpPanel();
104
+ return;
105
+ }
106
+ const licenseManager = new license_1.LicenseManager();
107
+ try {
108
+ const shouldRemove = await (0, prompts_1.confirm)({
109
+ message: 'Remove license and revert to free plan?'
110
+ });
111
+ if (shouldRemove) {
112
+ const success = await licenseManager.removeLicense();
113
+ if (success) {
114
+ const content = {
115
+ items: [
116
+ { type: 'success', content: 'License removed successfully' },
117
+ { type: 'space' },
118
+ { type: 'text', content: 'Status: Reverted to free plan' },
119
+ { type: 'text', content: 'Available features: init, init_global, init_project' },
120
+ { type: 'space' },
121
+ { type: 'text', content: 'To reinstall a license, use: air license install <key>' }
122
+ ]
123
+ };
124
+ console.log(panels_1.PanelRenderer.createRichPanel(content, 'License Removed', 'green'));
125
+ }
126
+ else {
127
+ const content = {
128
+ items: [
129
+ { type: 'text', content: 'Failed to remove license' },
130
+ { type: 'space' },
131
+ { type: 'text', content: 'This may be due to file permissions or the license file being in use.' },
132
+ { type: 'space' },
133
+ { type: 'text', content: 'For help, contact: shaneholloman@gmail.com' }
134
+ ]
135
+ };
136
+ console.log(panels_1.PanelRenderer.createRichPanel(content, 'License Removal Failed', 'red'));
137
+ }
138
+ }
139
+ else {
140
+ console.log('License removal cancelled.');
141
+ }
142
+ }
143
+ catch (error) {
144
+ const content = {
145
+ items: [
146
+ { type: 'text', content: 'An error occurred during license removal' },
147
+ { type: 'text', content: error instanceof Error ? error.message : 'Unknown error' }
148
+ ]
149
+ };
150
+ console.log(panels_1.PanelRenderer.createRichPanel(content, 'Removal Error', 'red'));
151
+ }
152
+ }
153
+ async function licenseStatusCommand(args) {
154
+ if (args.includes('--help')) {
155
+ panels_1.PanelRenderer.showLicenseStatusHelpPanel();
156
+ return;
157
+ }
158
+ await showLicenseStatus();
159
+ }
160
+ async function licenseHelpCommand(args) {
161
+ panels_1.PanelRenderer.showLicenseHelpPanel();
162
+ }
163
+ async function showLicenseStatus() {
164
+ const licenseManager = new license_1.LicenseManager();
165
+ try {
166
+ const licenseInfo = await licenseManager.getLicenseInfo();
167
+ const content = {
168
+ items: [
169
+ { type: 'text', content: `Plan: ${licenseInfo.plan.toUpperCase()}` },
170
+ { type: 'text', content: `Licensed: ${licenseInfo.plan !== 'free' ? 'Yes' : 'No'}` },
171
+ { type: 'text', content: `Features: ${licenseInfo.features.join(', ')}` },
172
+ { type: 'space' },
173
+ { type: 'header', content: 'Free Features' },
174
+ { type: 'command', command: '• air init', description: 'Initialize .air in current directory' },
175
+ { type: 'command', command: '• air init --global', description: 'Initialize system-level intelligence' },
176
+ { type: 'command', command: '• air init <project>', description: 'Create new project with .air' },
177
+ { type: 'space' },
178
+ { type: 'header', content: 'Premium Features' },
179
+ { type: 'command', command: '• air sync', description: 'Real-time vendor synchronization' },
180
+ { type: 'command', command: '• air cloud', description: 'Cloud backup and sync (coming soon)' }
181
+ ]
182
+ };
183
+ console.log(panels_1.PanelRenderer.createRichPanel(content, 'AirPilot License Status'));
184
+ if (licenseInfo.plan === 'free') {
185
+ const premiumContent = {
186
+ items: [
187
+ { type: 'header', content: 'Premium Features Available' },
188
+ { type: 'bullet', content: 'air sync - Real-time vendor synchronization' },
189
+ { type: 'bullet', content: 'air cloud - Cloud backup and sync (coming soon)' },
190
+ { type: 'space' },
191
+ { type: 'header', content: 'To get a license' },
192
+ { type: 'text', content: '1. Email: shaneholloman@gmail.com' },
193
+ { type: 'text', content: '2. Subject: AirPilot License Request' },
194
+ { type: 'text', content: '3. Include your name and use case' },
195
+ { type: 'space' },
196
+ { type: 'header', content: 'Once you have your key' },
197
+ { type: 'command', command: 'air license install <your-license-key>', description: '' }
198
+ ]
199
+ };
200
+ console.log(panels_1.PanelRenderer.createRichPanel(premiumContent, 'Premium Features', 'cyan'));
201
+ }
202
+ }
203
+ catch (error) {
204
+ const content = {
205
+ items: [
206
+ { type: 'text', content: 'Error retrieving license status' },
207
+ { type: 'text', content: error instanceof Error ? error.message : 'Unknown error' }
208
+ ]
209
+ };
210
+ console.log(panels_1.PanelRenderer.createRichPanel(content, 'Status Error', 'red'));
211
+ }
212
+ }
213
+ //# sourceMappingURL=license.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license.js","sourceRoot":"","sources":["../../../src/airpilot/commands/license.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function syncCommand(args: string[]): Promise<void>;
2
+ export declare function sync(helpFlag?: boolean): void;
3
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/airpilot/commands/sync.ts"],"names":[],"mappings":"AA0BA,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAY/D;AAGD,wBAAgB,IAAI,CAAC,QAAQ,GAAE,OAAe,GAAG,IAAI,CAEpD"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.syncCommand = syncCommand;
13
+ exports.sync = sync;
14
+ const license_1 = require("../license");
15
+ const panels_1 = require("../ui/panels");
16
+ class SyncCommands {
17
+ static sync(helpFlag = false) {
18
+ if (helpFlag) {
19
+ panels_1.PanelRenderer.showSyncHelpPanel();
20
+ return;
21
+ }
22
+ panels_1.PanelRenderer.showSyncPanel();
23
+ }
24
+ }
25
+ __decorate([
26
+ (0, license_1.requireLicense)('sync'),
27
+ __metadata("design:type", Function),
28
+ __metadata("design:paramtypes", [Boolean]),
29
+ __metadata("design:returntype", void 0)
30
+ ], SyncCommands, "sync", null);
31
+ async function syncCommand(args) {
32
+ const helpFlag = args.includes('--help');
33
+ if (helpFlag) {
34
+ panels_1.PanelRenderer.showSyncHelpPanel();
35
+ return;
36
+ }
37
+ SyncCommands.sync();
38
+ }
39
+ function sync(helpFlag = false) {
40
+ return SyncCommands.sync(helpFlag);
41
+ }
42
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/airpilot/commands/sync.ts"],"names":[],"mappings":";;;;;;;;;;;AA0BA,kCAYC;AAGD,oBAEC;AArCD,wCAA4C;AAC5C,yCAA6C;AAG7C,MAAM,YAAY;IAET,AAAP,MAAM,CAAC,IAAI,CAAC,WAAoB,KAAK;QACnC,IAAI,QAAQ,EAAE,CAAC;YACb,sBAAa,CAAC,iBAAiB,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,sBAAa,CAAC,aAAa,EAAE,CAAC;IAChC,CAAC;CACF;AARQ;IADN,IAAA,wBAAc,EAAC,MAAM,CAAC;;;;8BAQtB;AAOI,KAAK,UAAU,WAAW,CAAC,IAAc;IAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAGzC,IAAI,QAAQ,EAAE,CAAC;QACb,sBAAa,CAAC,iBAAiB,EAAE,CAAC;QAClC,OAAO;IACT,CAAC;IAGD,YAAY,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAGD,SAAgB,IAAI,CAAC,WAAoB,KAAK;IAC5C,OAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,26 @@
1
+ export declare class LicenseManager {
2
+ private readonly configFile;
3
+ private readonly pocLicenseKey;
4
+ private readonly planFeatures;
5
+ constructor();
6
+ private _loadConfig;
7
+ private _saveConfig;
8
+ private _validateKeyFormat;
9
+ private _validateLicense;
10
+ private _extractPlanFromKey;
11
+ installLicense(licenseKey: string): Promise<boolean>;
12
+ removeLicense(): Promise<boolean>;
13
+ getCurrentPlan(): Promise<string>;
14
+ getFeatures(): Promise<string[]>;
15
+ hasFeature(feature: string): Promise<boolean>;
16
+ isLicensed(): Promise<boolean>;
17
+ getLicenseInfo(): Promise<Record<string, any>>;
18
+ generatePocKey(): string;
19
+ private _loadConfigSync;
20
+ getCurrentPlanSync(): string;
21
+ getFeaturesSync(): string[];
22
+ hasFeatureSync(feature: string): boolean;
23
+ }
24
+ export declare function requireLicense(feature: string): (target: any, propertyName: string, descriptor: PropertyDescriptor) => void;
25
+ export declare function getLicenseManager(): LicenseManager;
26
+ //# sourceMappingURL=license.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../src/airpilot/license.ts"],"names":[],"mappings":"AAWA,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;;YAkB9B,WAAW;YAgBX,WAAW;IAazB,OAAO,CAAC,kBAAkB;IAyC1B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,mBAAmB;IAYrB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuBpD,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAejC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IASjC,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAShC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQ7C,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAQ9B,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAuBpD,cAAc,IAAI,MAAM;IAOxB,OAAO,CAAC,eAAe;IAgBvB,kBAAkB,IAAI,MAAM;IAS5B,eAAe,IAAI,MAAM,EAAE;IAS3B,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAKzC;AAKD,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,IAC3B,QAAQ,GAAG,EAAE,cAAc,MAAM,EAAE,YAAY,kBAAkB,UAuCnF;AAKD,wBAAgB,iBAAiB,IAAI,cAAc,CAElD"}