@radkode/neo 0.15.0 → 0.16.0

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 (46) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +14 -16
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/config/index.d.ts.map +1 -1
  5. package/dist/commands/config/index.js +6 -1
  6. package/dist/commands/config/index.js.map +1 -1
  7. package/dist/commands/config/profile/index.d.ts +3 -0
  8. package/dist/commands/config/profile/index.d.ts.map +1 -0
  9. package/dist/commands/config/profile/index.js +306 -0
  10. package/dist/commands/config/profile/index.js.map +1 -0
  11. package/dist/commands/gh/index.d.ts +3 -0
  12. package/dist/commands/gh/index.d.ts.map +1 -0
  13. package/dist/commands/gh/index.js +8 -0
  14. package/dist/commands/gh/index.js.map +1 -0
  15. package/dist/commands/gh/pr/create/index.d.ts +6 -0
  16. package/dist/commands/gh/pr/create/index.d.ts.map +1 -0
  17. package/dist/commands/gh/pr/create/index.js +328 -0
  18. package/dist/commands/gh/pr/create/index.js.map +1 -0
  19. package/dist/commands/gh/pr/index.d.ts +3 -0
  20. package/dist/commands/gh/pr/index.d.ts.map +1 -0
  21. package/dist/commands/gh/pr/index.js +8 -0
  22. package/dist/commands/gh/pr/index.js.map +1 -0
  23. package/dist/commands/index.d.ts +2 -0
  24. package/dist/commands/index.d.ts.map +1 -1
  25. package/dist/commands/index.js +6 -0
  26. package/dist/commands/index.js.map +1 -1
  27. package/dist/commands/pr/index.d.ts +3 -0
  28. package/dist/commands/pr/index.d.ts.map +1 -0
  29. package/dist/commands/pr/index.js +41 -0
  30. package/dist/commands/pr/index.js.map +1 -0
  31. package/dist/types/schemas.d.ts +40 -0
  32. package/dist/types/schemas.d.ts.map +1 -1
  33. package/dist/types/schemas.js +27 -0
  34. package/dist/types/schemas.js.map +1 -1
  35. package/dist/utils/banner.d.ts.map +1 -1
  36. package/dist/utils/banner.js +4 -1
  37. package/dist/utils/banner.js.map +1 -1
  38. package/dist/utils/config.d.ts +6 -0
  39. package/dist/utils/config.d.ts.map +1 -1
  40. package/dist/utils/config.js +10 -0
  41. package/dist/utils/config.js.map +1 -1
  42. package/dist/utils/profiles.d.ts +25 -0
  43. package/dist/utils/profiles.d.ts.map +1 -0
  44. package/dist/utils/profiles.js +256 -0
  45. package/dist/utils/profiles.js.map +1 -0
  46. package/package.json +1 -1
@@ -1,9 +1,11 @@
1
1
  import type { BannerType } from './banner.js';
2
2
  export interface NeoConfig {
3
+ activeProfile?: string;
3
4
  ai: {
4
5
  enabled: boolean;
5
6
  model?: string;
6
7
  };
8
+ autoSwitch?: Record<string, string>;
7
9
  installation: {
8
10
  completionsPath?: string;
9
11
  globalPath?: string;
@@ -31,9 +33,12 @@ export interface NeoConfig {
31
33
  name?: string;
32
34
  };
33
35
  }
36
+ declare const DEFAULT_CONFIG: NeoConfig;
37
+ export { DEFAULT_CONFIG };
34
38
  export declare class ConfigManager {
35
39
  private configDir;
36
40
  private configFile;
41
+ private profilesDir;
37
42
  constructor();
38
43
  private ensureConfigDir;
39
44
  isInitialized(): Promise<boolean>;
@@ -42,6 +47,7 @@ export declare class ConfigManager {
42
47
  update(updates: Partial<NeoConfig>): Promise<void>;
43
48
  getConfigDir(): string;
44
49
  getConfigFile(): string;
50
+ getProfilesDir(): string;
45
51
  backup(): Promise<string | null>;
46
52
  }
47
53
  export declare const configManager: ConfigManager;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKpD,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE;QACF,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,YAAY,EAAE;QACZ,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,WAAW,EAAE;QACX,OAAO,EAAE;YACP,CAAC,EAAE,OAAO,CAAC;SACZ,CAAC;QAOF,MAAM,EAAE,UAAU,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;KAClC,CAAC;IACF,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC;IACF,IAAI,EAAE;QACJ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AA6BD,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;;YAUb,eAAe;IAYvB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAYjC,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC;IAkC1B,KAAK,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBvC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBxD,YAAY,IAAI,MAAM;IAOtB,aAAa,IAAI,MAAM;IAOjB,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAmBvC;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKpD,MAAM,WAAW,SAAS;IAKxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,EAAE,EAAE;QACF,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAMF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,YAAY,EAAE;QACZ,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,WAAW,EAAE;QACX,OAAO,EAAE;YACP,CAAC,EAAE,OAAO,CAAC;SACZ,CAAC;QAOF,MAAM,EAAE,UAAU,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;KAClC,CAAC;IACF,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;KAC/B,CAAC;IACF,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC;IACF,IAAI,EAAE;QACJ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,QAAA,MAAM,cAAc,EAAE,SA2BrB,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAS;;YAWd,eAAe;IAYvB,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC;IAYjC,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC;IAmC1B,KAAK,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBvC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBxD,YAAY,IAAI,MAAM;IAOtB,aAAa,IAAI,MAAM;IAOvB,cAAc,IAAI,MAAM;IAOlB,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAmBvC;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
@@ -4,10 +4,12 @@ import { homedir } from 'os';
4
4
  import { join } from 'path';
5
5
  import { logger } from './logger.js';
6
6
  const DEFAULT_CONFIG = {
7
+ activeProfile: 'default',
7
8
  ai: {
8
9
  enabled: true,
9
10
  model: 'claude-3-haiku-20240307',
10
11
  },
12
+ autoSwitch: {},
11
13
  installation: {
12
14
  installedAt: new Date().toISOString(),
13
15
  version: '0.1.0',
@@ -29,12 +31,15 @@ const DEFAULT_CONFIG = {
29
31
  },
30
32
  user: {},
31
33
  };
34
+ export { DEFAULT_CONFIG };
32
35
  export class ConfigManager {
33
36
  configDir;
34
37
  configFile;
38
+ profilesDir;
35
39
  constructor() {
36
40
  this.configDir = join(homedir(), '.config', 'neo');
37
41
  this.configFile = join(this.configDir, 'config.json');
42
+ this.profilesDir = join(this.configDir, 'profiles');
38
43
  }
39
44
  async ensureConfigDir() {
40
45
  try {
@@ -66,6 +71,7 @@ export class ConfigManager {
66
71
  ...DEFAULT_CONFIG,
67
72
  ...config,
68
73
  ai: { ...DEFAULT_CONFIG.ai, ...config.ai },
74
+ autoSwitch: { ...DEFAULT_CONFIG.autoSwitch, ...config.autoSwitch },
69
75
  installation: { ...DEFAULT_CONFIG.installation, ...config.installation },
70
76
  preferences: {
71
77
  ...DEFAULT_CONFIG.preferences,
@@ -100,6 +106,7 @@ export class ConfigManager {
100
106
  ...current,
101
107
  ...updates,
102
108
  ai: { ...current.ai, ...updates.ai },
109
+ autoSwitch: { ...current.autoSwitch, ...updates.autoSwitch },
103
110
  installation: { ...current.installation, ...updates.installation },
104
111
  preferences: {
105
112
  ...current.preferences,
@@ -118,6 +125,9 @@ export class ConfigManager {
118
125
  getConfigFile() {
119
126
  return this.configFile;
120
127
  }
128
+ getProfilesDir() {
129
+ return this.profilesDir;
130
+ }
121
131
  async backup() {
122
132
  const initialized = await this.isInitialized();
123
133
  if (!initialized) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { type NeoConfig } from './config.js';
2
+ export type ProfileConfig = Omit<NeoConfig, 'activeProfile' | 'autoSwitch' | 'installation' | 'updates'>;
3
+ export declare class ProfileManager {
4
+ private profilesDir;
5
+ constructor();
6
+ private ensureProfilesDir;
7
+ private getProfilePath;
8
+ exists(name: string): Promise<boolean>;
9
+ list(): Promise<string[]>;
10
+ create(name: string, config?: Partial<ProfileConfig>): Promise<void>;
11
+ read(name: string): Promise<ProfileConfig>;
12
+ update(name: string, updates: Partial<ProfileConfig>): Promise<void>;
13
+ delete(name: string): Promise<void>;
14
+ getActive(): Promise<string>;
15
+ setActive(name: string): Promise<void>;
16
+ getActiveConfig(): Promise<NeoConfig>;
17
+ detectProfile(cwd: string): Promise<string | null>;
18
+ export(name: string): Promise<string>;
19
+ import(filePath: string, name?: string): Promise<string>;
20
+ copy(sourceName: string, targetName: string): Promise<void>;
21
+ getProfilesDir(): string;
22
+ initialize(): Promise<void>;
23
+ }
24
+ export declare const profileManager: ProfileManager;
25
+ //# sourceMappingURL=profiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../../src/utils/profiles.ts"],"names":[],"mappings":"AAKA,OAAO,EAAiC,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAMlF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,CAAC,CAAC;AAKzG,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAS;;YASd,iBAAiB;IAY/B,OAAO,CAAC,cAAc;IAOhB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYtC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAkBzB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CpE,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAmB1C,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BpE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BnC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAQ5B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYtC,eAAe,IAAI,OAAO,CAAC,SAAS,CAAC;IAkCrC,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAyDlD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQrC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BxD,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQjE,cAAc,IAAI,MAAM;IAOlB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAelC;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -0,0 +1,256 @@
1
+ import { access, mkdir, readdir, readFile, unlink, writeFile } from 'fs/promises';
2
+ import { constants } from 'fs';
3
+ import { homedir } from 'os';
4
+ import { basename, join } from 'path';
5
+ import { logger } from './logger.js';
6
+ import { configManager, DEFAULT_CONFIG } from './config.js';
7
+ export class ProfileManager {
8
+ profilesDir;
9
+ constructor() {
10
+ this.profilesDir = join(homedir(), '.config', 'neo', 'profiles');
11
+ }
12
+ async ensureProfilesDir() {
13
+ try {
14
+ await access(this.profilesDir, constants.F_OK);
15
+ }
16
+ catch {
17
+ await mkdir(this.profilesDir, { recursive: true });
18
+ logger.debug(`Created profiles directory: ${this.profilesDir}`);
19
+ }
20
+ }
21
+ getProfilePath(name) {
22
+ return join(this.profilesDir, `${name}.json`);
23
+ }
24
+ async exists(name) {
25
+ try {
26
+ await access(this.getProfilePath(name), constants.F_OK);
27
+ return true;
28
+ }
29
+ catch {
30
+ return false;
31
+ }
32
+ }
33
+ async list() {
34
+ await this.ensureProfilesDir();
35
+ try {
36
+ const files = await readdir(this.profilesDir);
37
+ return files
38
+ .filter((f) => f.endsWith('.json'))
39
+ .map((f) => basename(f, '.json'))
40
+ .sort();
41
+ }
42
+ catch (error) {
43
+ logger.warn(`Failed to list profiles: ${error}`);
44
+ return [];
45
+ }
46
+ }
47
+ async create(name, config) {
48
+ await this.ensureProfilesDir();
49
+ const profilePath = this.getProfilePath(name);
50
+ if (await this.exists(name)) {
51
+ throw new Error(`Profile '${name}' already exists`);
52
+ }
53
+ const defaultProfileConfig = {
54
+ ai: DEFAULT_CONFIG.ai,
55
+ preferences: DEFAULT_CONFIG.preferences,
56
+ shell: DEFAULT_CONFIG.shell,
57
+ user: DEFAULT_CONFIG.user,
58
+ };
59
+ const profileConfig = config
60
+ ? {
61
+ ...defaultProfileConfig,
62
+ ...config,
63
+ ai: { ...defaultProfileConfig.ai, ...config.ai },
64
+ preferences: {
65
+ ...defaultProfileConfig.preferences,
66
+ ...config.preferences,
67
+ aliases: {
68
+ ...defaultProfileConfig.preferences.aliases,
69
+ ...config.preferences?.aliases,
70
+ },
71
+ },
72
+ shell: { ...defaultProfileConfig.shell, ...config.shell },
73
+ user: { ...defaultProfileConfig.user, ...config.user },
74
+ }
75
+ : defaultProfileConfig;
76
+ try {
77
+ const content = JSON.stringify(profileConfig, null, 2);
78
+ await writeFile(profilePath, content, 'utf-8');
79
+ logger.debug(`Created profile: ${name}`);
80
+ }
81
+ catch (error) {
82
+ logger.error(`Failed to create profile: ${error}`);
83
+ throw error;
84
+ }
85
+ }
86
+ async read(name) {
87
+ const profilePath = this.getProfilePath(name);
88
+ if (!(await this.exists(name))) {
89
+ throw new Error(`Profile '${name}' does not exist`);
90
+ }
91
+ try {
92
+ const content = await readFile(profilePath, 'utf-8');
93
+ return JSON.parse(content);
94
+ }
95
+ catch (error) {
96
+ logger.error(`Failed to read profile: ${error}`);
97
+ throw error;
98
+ }
99
+ }
100
+ async update(name, updates) {
101
+ const current = await this.read(name);
102
+ const updated = {
103
+ ...current,
104
+ ...updates,
105
+ ai: { ...current.ai, ...updates.ai },
106
+ preferences: {
107
+ ...current.preferences,
108
+ ...updates.preferences,
109
+ aliases: { ...current.preferences.aliases, ...updates.preferences?.aliases },
110
+ },
111
+ shell: { ...current.shell, ...updates.shell },
112
+ user: { ...current.user, ...updates.user },
113
+ };
114
+ const profilePath = this.getProfilePath(name);
115
+ try {
116
+ const content = JSON.stringify(updated, null, 2);
117
+ await writeFile(profilePath, content, 'utf-8');
118
+ logger.debug(`Updated profile: ${name}`);
119
+ }
120
+ catch (error) {
121
+ logger.error(`Failed to update profile: ${error}`);
122
+ throw error;
123
+ }
124
+ }
125
+ async delete(name) {
126
+ if (!(await this.exists(name))) {
127
+ throw new Error(`Profile '${name}' does not exist`);
128
+ }
129
+ const config = await configManager.read();
130
+ if (config.activeProfile === name) {
131
+ throw new Error(`Cannot delete active profile '${name}'. Switch to another profile first.`);
132
+ }
133
+ const profiles = await this.list();
134
+ if (name === 'default' && profiles.length === 1) {
135
+ throw new Error(`Cannot delete the only remaining profile 'default'`);
136
+ }
137
+ const profilePath = this.getProfilePath(name);
138
+ try {
139
+ await unlink(profilePath);
140
+ logger.debug(`Deleted profile: ${name}`);
141
+ }
142
+ catch (error) {
143
+ logger.error(`Failed to delete profile: ${error}`);
144
+ throw error;
145
+ }
146
+ }
147
+ async getActive() {
148
+ const config = await configManager.read();
149
+ return config.activeProfile || 'default';
150
+ }
151
+ async setActive(name) {
152
+ if (!(await this.exists(name))) {
153
+ throw new Error(`Profile '${name}' does not exist`);
154
+ }
155
+ await configManager.update({ activeProfile: name });
156
+ logger.debug(`Switched to profile: ${name}`);
157
+ }
158
+ async getActiveConfig() {
159
+ const baseConfig = await configManager.read();
160
+ const activeProfileName = baseConfig.activeProfile || 'default';
161
+ if (!(await this.exists(activeProfileName))) {
162
+ return baseConfig;
163
+ }
164
+ const profileConfig = await this.read(activeProfileName);
165
+ return {
166
+ ...baseConfig,
167
+ ai: { ...baseConfig.ai, ...profileConfig.ai },
168
+ preferences: {
169
+ ...baseConfig.preferences,
170
+ ...profileConfig.preferences,
171
+ aliases: { ...baseConfig.preferences.aliases, ...profileConfig.preferences?.aliases },
172
+ },
173
+ shell: { ...baseConfig.shell, ...profileConfig.shell },
174
+ user: { ...baseConfig.user, ...profileConfig.user },
175
+ };
176
+ }
177
+ async detectProfile(cwd) {
178
+ const config = await configManager.read();
179
+ const autoSwitch = config.autoSwitch;
180
+ if (!autoSwitch || Object.keys(autoSwitch).length === 0) {
181
+ return null;
182
+ }
183
+ const expandPath = (pattern) => {
184
+ if (pattern.startsWith('~/')) {
185
+ return join(homedir(), pattern.slice(2));
186
+ }
187
+ return pattern;
188
+ };
189
+ const matchesPattern = (path, pattern) => {
190
+ const expandedPattern = expandPath(pattern);
191
+ if (expandedPattern.endsWith('/*')) {
192
+ const basePattern = expandedPattern.slice(0, -2);
193
+ return path.startsWith(basePattern + '/') || path === basePattern;
194
+ }
195
+ if (expandedPattern.endsWith('/**')) {
196
+ const basePattern = expandedPattern.slice(0, -3);
197
+ return path.startsWith(basePattern + '/') || path === basePattern;
198
+ }
199
+ return path === expandedPattern;
200
+ };
201
+ const sortedPatterns = Object.entries(autoSwitch).sort(([a], [b]) => expandPath(b).length - expandPath(a).length);
202
+ for (const [pattern, profileName] of sortedPatterns) {
203
+ if (matchesPattern(cwd, pattern)) {
204
+ if (await this.exists(profileName)) {
205
+ return profileName;
206
+ }
207
+ logger.warn(`Auto-switch profile '${profileName}' for pattern '${pattern}' does not exist`);
208
+ }
209
+ }
210
+ return null;
211
+ }
212
+ async export(name) {
213
+ const profileConfig = await this.read(name);
214
+ return JSON.stringify(profileConfig, null, 2);
215
+ }
216
+ async import(filePath, name) {
217
+ try {
218
+ const content = await readFile(filePath, 'utf-8');
219
+ const profileConfig = JSON.parse(content);
220
+ const profileName = name || basename(filePath, '.json');
221
+ if (!profileConfig.preferences || !profileConfig.shell) {
222
+ throw new Error('Invalid profile format: missing required sections');
223
+ }
224
+ await this.create(profileName, profileConfig);
225
+ return profileName;
226
+ }
227
+ catch (error) {
228
+ if (error instanceof SyntaxError) {
229
+ throw new Error(`Invalid JSON in profile file: ${error.message}`);
230
+ }
231
+ throw error;
232
+ }
233
+ }
234
+ async copy(sourceName, targetName) {
235
+ const sourceConfig = await this.read(sourceName);
236
+ await this.create(targetName, sourceConfig);
237
+ }
238
+ getProfilesDir() {
239
+ return this.profilesDir;
240
+ }
241
+ async initialize() {
242
+ await this.ensureProfilesDir();
243
+ if (!(await this.exists('default'))) {
244
+ const config = await configManager.read();
245
+ await this.create('default', {
246
+ ai: config.ai,
247
+ preferences: config.preferences,
248
+ shell: config.shell,
249
+ user: config.user,
250
+ });
251
+ logger.debug('Created default profile');
252
+ }
253
+ }
254
+ }
255
+ export const profileManager = new ProfileManager();
256
+ //# sourceMappingURL=profiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/utils/profiles.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@radkode/neo",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "description": "Modern CLI toolkit with intelligent git workflows and configuration management",
5
5
  "author": "Jacek Radko",
6
6
  "license": "MIT",