@girardmedia/bootspring 2.5.6 → 2.5.7

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.
@@ -6,6 +6,66 @@ import { z } from 'zod';
6
6
  *
7
7
  * Manages authentication tokens stored in ~/.bootspring/
8
8
  */
9
+ interface UserProfile {
10
+ id?: string;
11
+ email?: string;
12
+ name?: string;
13
+ tier?: string;
14
+ [key: string]: unknown;
15
+ }
16
+ interface Credentials {
17
+ token?: string;
18
+ refreshToken?: string;
19
+ apiKey?: string;
20
+ expiresAt?: string;
21
+ user?: UserProfile;
22
+ }
23
+ interface LoginResponse {
24
+ token: string;
25
+ refreshToken?: string;
26
+ expiresIn?: string;
27
+ user?: UserProfile;
28
+ }
29
+ interface DeviceInfo {
30
+ deviceId: string;
31
+ fingerprint: string;
32
+ createdAt: string;
33
+ platform: string;
34
+ arch: string;
35
+ hostname: string;
36
+ }
37
+ interface DeviceContext {
38
+ deviceId: string;
39
+ platform: string;
40
+ arch: string;
41
+ hostname: string;
42
+ cliVersion: string;
43
+ nodeVersion: string;
44
+ timezone: string;
45
+ cwd: string;
46
+ cwdFull: string;
47
+ }
48
+ interface ProjectAuth {
49
+ token: string;
50
+ expiresAt: string;
51
+ issuedAt: string;
52
+ source: string;
53
+ migratedFromLegacyApiKey: boolean;
54
+ }
55
+ interface ProjectConfig {
56
+ apiKey?: string;
57
+ projectAuth?: ProjectAuth;
58
+ [key: string]: unknown;
59
+ }
60
+ interface SessionOptions {
61
+ expiresAt?: string;
62
+ expiresIn?: number | string;
63
+ source?: string;
64
+ migratedFromLegacyApiKey?: boolean;
65
+ }
66
+ interface BootspringConfig {
67
+ [key: string]: unknown;
68
+ }
9
69
  declare const BOOTSPRING_DIR: string;
10
70
  declare const CREDENTIALS_FILE: string;
11
71
  declare const CONFIG_FILE: string;
@@ -20,26 +80,25 @@ interface EncryptedData {
20
80
  v: number;
21
81
  }
22
82
  /**
23
- * Encrypt data
83
+ * Encrypt data — always uses v2 (scrypt) key derivation
24
84
  * @throws {Error} If encryption fails - never falls back to plaintext
25
85
  */
26
- declare function encrypt(data: any): EncryptedData;
86
+ declare function encrypt(data: Credentials): EncryptedData;
27
87
  /**
28
- * Decrypt data
29
- * @throws {Error} If decryption fails - indicates corrupted or tampered credentials
88
+ * Decrypt data — tries v2 key first, falls back to v1 for migration
89
+ * @throws {Error} If decryption fails with both key versions
30
90
  */
31
- declare function decrypt(encrypted: any): any;
91
+ declare function decrypt(encrypted: unknown): Credentials;
32
92
  /**
33
93
  * Get stored credentials
34
- * @returns {object|null} Decrypted credentials or null if not available
94
+ * @returns Decrypted credentials or null if not available
35
95
  */
36
- declare function getCredentials(): any | null;
96
+ declare function getCredentials(): Credentials | null;
37
97
  /**
38
- * Save credentials (encrypted)
39
- * @param {object} credentials - Credentials to save
98
+ * Save credentials (encrypted with v2 scrypt key)
40
99
  * @throws {Error} If encryption or file write fails
41
100
  */
42
- declare function saveCredentials(credentials: any): void;
101
+ declare function saveCredentials(credentials: Credentials): void;
43
102
  /**
44
103
  * Clear credentials (logout)
45
104
  */
@@ -61,10 +120,10 @@ declare function getTokenExpiryStatus(thresholdMs?: number): ExpiryStatus;
61
120
  declare function findNearestProjectConfigPath(): string | null;
62
121
  declare function readNearestProjectConfig(): {
63
122
  path: string;
64
- config: any;
123
+ config: ProjectConfig;
65
124
  } | null;
66
- declare function writeNearestProjectConfig(configPath: string, config: any): boolean;
67
- declare function getProjectScopedSessionState(): any | null;
125
+ declare function writeNearestProjectConfig(configPath: string, config: ProjectConfig): boolean;
126
+ declare function getProjectScopedSessionState(): ProjectAuth | null;
68
127
  declare function getLegacyProjectApiKey(): string | null;
69
128
  declare function getProjectScopedToken(): string | null;
70
129
  declare function getStoredApiKey(): string | null;
@@ -72,30 +131,39 @@ declare function getApiKey(): string | null;
72
131
  declare function isApiKeyAuth(): boolean;
73
132
  declare function getRefreshToken(): string | null;
74
133
  declare function isAuthenticated(): boolean;
75
- declare function getUser(): any | null;
134
+ declare function getUser(): UserProfile | null;
76
135
  declare function getTier$1(): string;
77
- declare function login(response: any): void;
136
+ declare function login(response: LoginResponse): void;
78
137
  declare function saveApiKeyToProject(apiKey: string): boolean;
79
138
  declare function clearProjectApiKey(): boolean;
80
- declare function loginWithApiKey(apiKey: string, user: any): void;
81
- declare function updateTokens(response: any): void;
82
- declare function saveProjectScopedSession(token: string, options?: any): boolean;
139
+ declare function loginWithApiKey(apiKey: string, user?: UserProfile): void;
140
+ declare function updateTokens(response: LoginResponse): void;
141
+ declare function saveProjectScopedSession(token: string, options?: SessionOptions): boolean;
83
142
  declare function clearProjectScopedSession(): boolean;
84
143
  declare function logout(): void;
85
- declare function getConfig(): any;
86
- declare function saveConfig(config: any): void;
144
+ declare function getConfig(): BootspringConfig;
145
+ declare function saveConfig(config: BootspringConfig): void;
87
146
  declare function getCredentialsPath(): string;
88
147
  declare function generateDeviceFingerprint(): string;
89
- declare function getDeviceInfo(): any;
148
+ declare function getDeviceInfo(): DeviceInfo;
90
149
  declare function getDeviceId(): string;
91
- declare function getDeviceContext(cliVersion?: string): any;
150
+ declare function getDeviceContext(cliVersion?: string): DeviceContext;
92
151
  declare function clearDeviceInfo(): void;
93
152
 
94
153
  declare const auth_BOOTSPRING_DIR: typeof BOOTSPRING_DIR;
154
+ type auth_BootspringConfig = BootspringConfig;
95
155
  declare const auth_CONFIG_FILE: typeof CONFIG_FILE;
96
156
  declare const auth_CREDENTIALS_FILE: typeof CREDENTIALS_FILE;
157
+ type auth_Credentials = Credentials;
97
158
  declare const auth_DEVICE_FILE: typeof DEVICE_FILE;
159
+ type auth_DeviceContext = DeviceContext;
160
+ type auth_DeviceInfo = DeviceInfo;
98
161
  type auth_ExpiryStatus = ExpiryStatus;
162
+ type auth_LoginResponse = LoginResponse;
163
+ type auth_ProjectAuth = ProjectAuth;
164
+ type auth_ProjectConfig = ProjectConfig;
165
+ type auth_SessionOptions = SessionOptions;
166
+ type auth_UserProfile = UserProfile;
99
167
  declare const auth_clearCredentials: typeof clearCredentials;
100
168
  declare const auth_clearDeviceInfo: typeof clearDeviceInfo;
101
169
  declare const auth_clearProjectApiKey: typeof clearProjectApiKey;
@@ -133,7 +201,7 @@ declare const auth_saveProjectScopedSession: typeof saveProjectScopedSession;
133
201
  declare const auth_updateTokens: typeof updateTokens;
134
202
  declare const auth_writeNearestProjectConfig: typeof writeNearestProjectConfig;
135
203
  declare namespace auth {
136
- export { auth_BOOTSPRING_DIR as BOOTSPRING_DIR, auth_CONFIG_FILE as CONFIG_FILE, auth_CREDENTIALS_FILE as CREDENTIALS_FILE, auth_DEVICE_FILE as DEVICE_FILE, type auth_ExpiryStatus as ExpiryStatus, auth_clearCredentials as clearCredentials, auth_clearDeviceInfo as clearDeviceInfo, auth_clearProjectApiKey as clearProjectApiKey, auth_clearProjectScopedSession as clearProjectScopedSession, auth_decrypt as decrypt, auth_encrypt as encrypt, auth_ensureBootspringDir as ensureBootspringDir, auth_findNearestProjectConfigPath as findNearestProjectConfigPath, auth_generateDeviceFingerprint as generateDeviceFingerprint, auth_getApiKey as getApiKey, auth_getConfig as getConfig, auth_getCredentials as getCredentials, auth_getCredentialsPath as getCredentialsPath, auth_getDeviceContext as getDeviceContext, auth_getDeviceId as getDeviceId, auth_getDeviceInfo as getDeviceInfo, auth_getLegacyProjectApiKey as getLegacyProjectApiKey, auth_getProjectScopedSessionState as getProjectScopedSessionState, auth_getProjectScopedToken as getProjectScopedToken, auth_getRefreshToken as getRefreshToken, auth_getStoredApiKey as getStoredApiKey, getTier$1 as getTier, auth_getToken as getToken, auth_getTokenExpiryStatus as getTokenExpiryStatus, auth_getUser as getUser, auth_isApiKeyAuth as isApiKeyAuth, auth_isAuthenticated as isAuthenticated, auth_login as login, auth_loginWithApiKey as loginWithApiKey, auth_logout as logout, auth_readNearestProjectConfig as readNearestProjectConfig, auth_saveApiKeyToProject as saveApiKeyToProject, auth_saveConfig as saveConfig, auth_saveCredentials as saveCredentials, auth_saveProjectScopedSession as saveProjectScopedSession, auth_updateTokens as updateTokens, auth_writeNearestProjectConfig as writeNearestProjectConfig };
204
+ export { auth_BOOTSPRING_DIR as BOOTSPRING_DIR, type auth_BootspringConfig as BootspringConfig, auth_CONFIG_FILE as CONFIG_FILE, auth_CREDENTIALS_FILE as CREDENTIALS_FILE, type auth_Credentials as Credentials, auth_DEVICE_FILE as DEVICE_FILE, type auth_DeviceContext as DeviceContext, type auth_DeviceInfo as DeviceInfo, type auth_ExpiryStatus as ExpiryStatus, type auth_LoginResponse as LoginResponse, type auth_ProjectAuth as ProjectAuth, type auth_ProjectConfig as ProjectConfig, type auth_SessionOptions as SessionOptions, type auth_UserProfile as UserProfile, auth_clearCredentials as clearCredentials, auth_clearDeviceInfo as clearDeviceInfo, auth_clearProjectApiKey as clearProjectApiKey, auth_clearProjectScopedSession as clearProjectScopedSession, auth_decrypt as decrypt, auth_encrypt as encrypt, auth_ensureBootspringDir as ensureBootspringDir, auth_findNearestProjectConfigPath as findNearestProjectConfigPath, auth_generateDeviceFingerprint as generateDeviceFingerprint, auth_getApiKey as getApiKey, auth_getConfig as getConfig, auth_getCredentials as getCredentials, auth_getCredentialsPath as getCredentialsPath, auth_getDeviceContext as getDeviceContext, auth_getDeviceId as getDeviceId, auth_getDeviceInfo as getDeviceInfo, auth_getLegacyProjectApiKey as getLegacyProjectApiKey, auth_getProjectScopedSessionState as getProjectScopedSessionState, auth_getProjectScopedToken as getProjectScopedToken, auth_getRefreshToken as getRefreshToken, auth_getStoredApiKey as getStoredApiKey, getTier$1 as getTier, auth_getToken as getToken, auth_getTokenExpiryStatus as getTokenExpiryStatus, auth_getUser as getUser, auth_isApiKeyAuth as isApiKeyAuth, auth_isAuthenticated as isAuthenticated, auth_login as login, auth_loginWithApiKey as loginWithApiKey, auth_logout as logout, auth_readNearestProjectConfig as readNearestProjectConfig, auth_saveApiKeyToProject as saveApiKeyToProject, auth_saveConfig as saveConfig, auth_saveCredentials as saveCredentials, auth_saveProjectScopedSession as saveProjectScopedSession, auth_updateTokens as updateTokens, auth_writeNearestProjectConfig as writeNearestProjectConfig };
137
205
  }
138
206
 
139
207
  /**
@@ -150,17 +218,29 @@ declare function healthCheck(): Promise<any>;
150
218
  declare function apiLogin(email: string, password: string): Promise<any>;
151
219
  declare function startDeviceFlow(): Promise<any>;
152
220
  declare function pollDeviceToken(deviceCode: string): Promise<any>;
221
+ declare function refreshSession(): Promise<any>;
222
+ declare function remoteLogout(): Promise<any>;
223
+ declare function listMcpTools(): Promise<any>;
224
+ declare function callMcpTool(tool: string, args: unknown): Promise<any>;
225
+ declare function listMcpResources(): Promise<any>;
226
+ declare function getMcpResource(uri: string): Promise<any>;
153
227
 
154
228
  declare const apiClient_API_BASE: typeof API_BASE;
155
229
  declare const apiClient_API_VERSION: typeof API_VERSION;
156
230
  declare const apiClient_apiLogin: typeof apiLogin;
231
+ declare const apiClient_callMcpTool: typeof callMcpTool;
232
+ declare const apiClient_getMcpResource: typeof getMcpResource;
157
233
  declare const apiClient_healthCheck: typeof healthCheck;
234
+ declare const apiClient_listMcpResources: typeof listMcpResources;
235
+ declare const apiClient_listMcpTools: typeof listMcpTools;
158
236
  declare const apiClient_pollDeviceToken: typeof pollDeviceToken;
237
+ declare const apiClient_refreshSession: typeof refreshSession;
238
+ declare const apiClient_remoteLogout: typeof remoteLogout;
159
239
  declare const apiClient_request: typeof request;
160
240
  declare const apiClient_setAuthFailureHandler: typeof setAuthFailureHandler;
161
241
  declare const apiClient_startDeviceFlow: typeof startDeviceFlow;
162
242
  declare namespace apiClient {
163
- export { apiClient_API_BASE as API_BASE, apiClient_API_VERSION as API_VERSION, apiClient_apiLogin as apiLogin, apiClient_healthCheck as healthCheck, apiClient_pollDeviceToken as pollDeviceToken, apiClient_request as request, apiClient_setAuthFailureHandler as setAuthFailureHandler, apiClient_startDeviceFlow as startDeviceFlow };
243
+ export { apiClient_API_BASE as API_BASE, apiClient_API_VERSION as API_VERSION, apiClient_apiLogin as apiLogin, apiClient_callMcpTool as callMcpTool, apiClient_getMcpResource as getMcpResource, apiClient_healthCheck as healthCheck, apiClient_listMcpResources as listMcpResources, apiClient_listMcpTools as listMcpTools, apiClient_pollDeviceToken as pollDeviceToken, apiClient_refreshSession as refreshSession, apiClient_remoteLogout as remoteLogout, apiClient_request as request, apiClient_setAuthFailureHandler as setAuthFailureHandler, apiClient_startDeviceFlow as startDeviceFlow };
164
244
  }
165
245
 
166
246
  /**
@@ -390,7 +470,7 @@ interface InstallContext {
390
470
  scriptPath: string;
391
471
  }
392
472
  declare const PACKAGE_NAME = "@girardmedia/bootspring";
393
- declare const CURRENT_VERSION = "2.5.3";
473
+ declare const CURRENT_VERSION = "2.5.7";
394
474
  declare const DEFAULT_INTERVAL_MS: number;
395
475
  declare const STATE_PATH: string;
396
476
  declare function compareVersions(a: string, b: string): number;
@@ -730,24 +810,20 @@ declare namespace entitlements {
730
810
  }
731
811
 
732
812
  /**
733
- * Bootspring Configuration
734
- * Handles loading and validating bootspring.config.js
813
+ * Bootspring Configuration — Zod Schemas & Types
814
+ *
815
+ * All Zod schema definitions and their inferred TypeScript types.
816
+ * Imported by config.ts and config-presets.ts.
735
817
  *
736
818
  * @package bootspring
737
- * @module core/config
819
+ * @module core/config-schemas
738
820
  */
739
821
 
740
- /**
741
- * Base plugin schema - all plugins share these common fields
742
- */
743
822
  declare const BasePluginSchema: z.ZodObject<{
744
823
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
745
824
  provider: z.ZodOptional<z.ZodString>;
746
825
  features: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
747
826
  }, z.core.$loose>;
748
- /**
749
- * Auth plugin schema with specific provider options
750
- */
751
827
  declare const AuthPluginSchema: z.ZodObject<{
752
828
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
753
829
  provider: z.ZodOptional<z.ZodEnum<{
@@ -768,9 +844,6 @@ declare const AuthPluginSchema: z.ZodObject<{
768
844
  passwordless: "passwordless";
769
845
  }>>>>;
770
846
  }, z.core.$loose>;
771
- /**
772
- * Payments plugin schema
773
- */
774
847
  declare const PaymentsPluginSchema: z.ZodObject<{
775
848
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
776
849
  provider: z.ZodOptional<z.ZodEnum<{
@@ -789,9 +862,6 @@ declare const PaymentsPluginSchema: z.ZodObject<{
789
862
  coupons: "coupons";
790
863
  }>>>>;
791
864
  }, z.core.$loose>;
792
- /**
793
- * Database plugin schema
794
- */
795
865
  declare const DatabasePluginSchema: z.ZodObject<{
796
866
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
797
867
  provider: z.ZodOptional<z.ZodEnum<{
@@ -810,9 +880,6 @@ declare const DatabasePluginSchema: z.ZodObject<{
810
880
  soft_delete: "soft_delete";
811
881
  }>>>>;
812
882
  }, z.core.$loose>;
813
- /**
814
- * Testing plugin schema
815
- */
816
883
  declare const TestingPluginSchema: z.ZodObject<{
817
884
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
818
885
  provider: z.ZodOptional<z.ZodEnum<{
@@ -831,9 +898,6 @@ declare const TestingPluginSchema: z.ZodObject<{
831
898
  mocking: "mocking";
832
899
  }>>>>;
833
900
  }, z.core.$loose>;
834
- /**
835
- * Security plugin schema
836
- */
837
901
  declare const SecurityPluginSchema: z.ZodObject<{
838
902
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
839
903
  provider: z.ZodOptional<z.ZodString>;
@@ -849,9 +913,6 @@ declare const SecurityPluginSchema: z.ZodObject<{
849
913
  secrets_management: "secrets_management";
850
914
  }>>>>;
851
915
  }, z.core.$loose>;
852
- /**
853
- * AI plugin schema
854
- */
855
916
  declare const AIPluginSchema: z.ZodObject<{
856
917
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
857
918
  provider: z.ZodOptional<z.ZodEnum<{
@@ -870,9 +931,6 @@ declare const AIPluginSchema: z.ZodObject<{
870
931
  vision: "vision";
871
932
  }>>>>;
872
933
  }, z.core.$loose>;
873
- /**
874
- * Email plugin schema
875
- */
876
934
  declare const EmailPluginSchema: z.ZodObject<{
877
935
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
878
936
  provider: z.ZodOptional<z.ZodEnum<{
@@ -890,9 +948,6 @@ declare const EmailPluginSchema: z.ZodObject<{
890
948
  tracking: "tracking";
891
949
  }>>>>;
892
950
  }, z.core.$loose>;
893
- /**
894
- * Analytics plugin schema
895
- */
896
951
  declare const AnalyticsPluginSchema: z.ZodObject<{
897
952
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
898
953
  provider: z.ZodOptional<z.ZodEnum<{
@@ -910,9 +965,6 @@ declare const AnalyticsPluginSchema: z.ZodObject<{
910
965
  experiments: "experiments";
911
966
  }>>>>;
912
967
  }, z.core.$loose>;
913
- /**
914
- * Monitoring plugin schema
915
- */
916
968
  declare const MonitoringPluginSchema: z.ZodObject<{
917
969
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
918
970
  provider: z.ZodOptional<z.ZodEnum<{
@@ -930,9 +982,6 @@ declare const MonitoringPluginSchema: z.ZodObject<{
930
982
  apm: "apm";
931
983
  }>>>>;
932
984
  }, z.core.$loose>;
933
- /**
934
- * Combined plugins schema with specific plugin types
935
- */
936
985
  declare const PluginsSchema: z.ZodObject<{
937
986
  auth: z.ZodOptional<z.ZodObject<{
938
987
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
@@ -1102,9 +1151,6 @@ declare const PluginSchema: z.ZodObject<{
1102
1151
  provider: z.ZodOptional<z.ZodString>;
1103
1152
  features: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString>>>;
1104
1153
  }, z.core.$loose>;
1105
- /**
1106
- * Individual agent configuration
1107
- */
1108
1154
  declare const AgentConfigSchema: z.ZodObject<{
1109
1155
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1110
1156
  expertise: z.ZodOptional<z.ZodArray<z.ZodString>>;
@@ -1115,9 +1161,6 @@ declare const AgentConfigSchema: z.ZodObject<{
1115
1161
  low: "low";
1116
1162
  }>>>;
1117
1163
  }, z.core.$loose>;
1118
- /**
1119
- * Agents section configuration
1120
- */
1121
1164
  declare const AgentsConfigSchema: z.ZodObject<{
1122
1165
  enabled: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1123
1166
  custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -1137,9 +1180,6 @@ declare const AgentsConfigSchema: z.ZodObject<{
1137
1180
  verbose: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1138
1181
  }, z.core.$strip>>;
1139
1182
  }, z.core.$loose>;
1140
- /**
1141
- * Individual skill configuration
1142
- */
1143
1183
  declare const SkillConfigSchema: z.ZodObject<{
1144
1184
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1145
1185
  tier: z.ZodDefault<z.ZodOptional<z.ZodEnum<{
@@ -1150,9 +1190,6 @@ declare const SkillConfigSchema: z.ZodObject<{
1150
1190
  category: z.ZodOptional<z.ZodString>;
1151
1191
  maxChars: z.ZodOptional<z.ZodNumber>;
1152
1192
  }, z.core.$loose>;
1153
- /**
1154
- * Skills section configuration
1155
- */
1156
1193
  declare const SkillsConfigSchema: z.ZodObject<{
1157
1194
  categories: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1158
1195
  custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -1177,9 +1214,6 @@ declare const SkillsConfigSchema: z.ZodObject<{
1177
1214
  includeExternal: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1178
1215
  }, z.core.$strip>>;
1179
1216
  }, z.core.$loose>;
1180
- /**
1181
- * Workflow phase schema
1182
- */
1183
1217
  declare const WorkflowPhaseSchema: z.ZodObject<{
1184
1218
  name: z.ZodString;
1185
1219
  agents: z.ZodArray<z.ZodString>;
@@ -1187,9 +1221,6 @@ declare const WorkflowPhaseSchema: z.ZodObject<{
1187
1221
  parallel: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1188
1222
  description: z.ZodOptional<z.ZodString>;
1189
1223
  }, z.core.$loose>;
1190
- /**
1191
- * Individual workflow configuration
1192
- */
1193
1224
  declare const WorkflowConfigSchema: z.ZodObject<{
1194
1225
  name: z.ZodString;
1195
1226
  description: z.ZodOptional<z.ZodString>;
@@ -1208,9 +1239,6 @@ declare const WorkflowConfigSchema: z.ZodObject<{
1208
1239
  description: z.ZodOptional<z.ZodString>;
1209
1240
  }, z.core.$loose>>;
1210
1241
  }, z.core.$loose>;
1211
- /**
1212
- * Workflows section configuration
1213
- */
1214
1242
  declare const WorkflowsConfigSchema: z.ZodObject<{
1215
1243
  enabled: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
1216
1244
  custom: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -1239,9 +1267,6 @@ declare const WorkflowsConfigSchema: z.ZodObject<{
1239
1267
  emitTelemetry: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1240
1268
  }, z.core.$strip>>;
1241
1269
  }, z.core.$loose>;
1242
- /**
1243
- * Quality check configuration
1244
- */
1245
1270
  declare const QualityCheckSchema: z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
1246
1271
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1247
1272
  checks: z.ZodOptional<z.ZodArray<z.ZodEnum<{
@@ -1254,9 +1279,6 @@ declare const QualityCheckSchema: z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject
1254
1279
  build: "build";
1255
1280
  }>>>;
1256
1281
  }, z.core.$strip>]>;
1257
- /**
1258
- * Quality section configuration
1259
- */
1260
1282
  declare const QualityConfigSchema: z.ZodObject<{
1261
1283
  preCommit: z.ZodDefault<z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
1262
1284
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
@@ -1302,9 +1324,6 @@ declare const QualityConfigSchema: z.ZodObject<{
1302
1324
  lines: z.ZodOptional<z.ZodNumber>;
1303
1325
  }, z.core.$strip>>;
1304
1326
  }, z.core.$loose>;
1305
- /**
1306
- * Context generation configuration
1307
- */
1308
1327
  declare const ContextConfigSchema: z.ZodObject<{
1309
1328
  includeEnvVars: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1310
1329
  includeTechStack: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
@@ -1318,9 +1337,6 @@ declare const ContextConfigSchema: z.ZodObject<{
1318
1337
  }, z.core.$strip>>>>;
1319
1338
  maxSize: z.ZodOptional<z.ZodNumber>;
1320
1339
  }, z.core.$loose>;
1321
- /**
1322
- * Paths configuration
1323
- */
1324
1340
  declare const PathsConfigSchema: z.ZodObject<{
1325
1341
  context: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1326
1342
  config: z.ZodDefault<z.ZodOptional<z.ZodString>>;
@@ -1329,9 +1345,6 @@ declare const PathsConfigSchema: z.ZodObject<{
1329
1345
  changelog: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1330
1346
  state: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1331
1347
  }, z.core.$loose>;
1332
- /**
1333
- * Dashboard configuration
1334
- */
1335
1348
  declare const DashboardConfigSchema: z.ZodObject<{
1336
1349
  port: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
1337
1350
  autoOpen: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
@@ -1342,9 +1355,6 @@ declare const DashboardConfigSchema: z.ZodObject<{
1342
1355
  system: "system";
1343
1356
  }>>>;
1344
1357
  }, z.core.$loose>;
1345
- /**
1346
- * Project information schema
1347
- */
1348
1358
  declare const ProjectConfigSchema: z.ZodObject<{
1349
1359
  name: z.ZodString;
1350
1360
  description: z.ZodDefault<z.ZodOptional<z.ZodString>>;
@@ -1353,9 +1363,6 @@ declare const ProjectConfigSchema: z.ZodObject<{
1353
1363
  license: z.ZodOptional<z.ZodString>;
1354
1364
  repository: z.ZodOptional<z.ZodString>;
1355
1365
  }, z.core.$loose>;
1356
- /**
1357
- * Technology stack configuration
1358
- */
1359
1366
  declare const StackConfigSchema: z.ZodObject<{
1360
1367
  framework: z.ZodOptional<z.ZodEnum<{
1361
1368
  custom: "custom";
@@ -1394,9 +1401,6 @@ declare const StackConfigSchema: z.ZodObject<{
1394
1401
  "self-hosted": "self-hosted";
1395
1402
  }>>;
1396
1403
  }, z.core.$loose>;
1397
- /**
1398
- * Complete Bootspring configuration schema
1399
- */
1400
1404
  declare const ConfigSchema: z.ZodObject<{
1401
1405
  project: z.ZodOptional<z.ZodObject<{
1402
1406
  name: z.ZodString;
@@ -1802,9 +1806,6 @@ type DashboardConfig = z.infer<typeof DashboardConfigSchema>;
1802
1806
  type ConfigProjectConfig = z.infer<typeof ProjectConfigSchema>;
1803
1807
  type ConfigStackConfig = z.infer<typeof StackConfigSchema>;
1804
1808
  type Config = z.infer<typeof ConfigSchema>;
1805
- /**
1806
- * Loaded configuration with internal metadata
1807
- */
1808
1809
  interface LoadedConfig extends ConfigInput {
1809
1810
  _projectRoot?: string | undefined;
1810
1811
  _configPath?: string | null | undefined;
@@ -1813,9 +1814,6 @@ interface LoadedConfig extends ConfigInput {
1813
1814
  skipped: boolean;
1814
1815
  } | undefined;
1815
1816
  }
1816
- /**
1817
- * Validation result
1818
- */
1819
1817
  interface ValidationResult {
1820
1818
  valid: boolean;
1821
1819
  errors: string[];
@@ -1823,17 +1821,11 @@ interface ValidationResult {
1823
1821
  data?: Config | null | undefined;
1824
1822
  validatedAt?: string | undefined;
1825
1823
  }
1826
- /**
1827
- * Section validation result
1828
- */
1829
1824
  interface SectionValidationResult {
1830
1825
  valid: boolean;
1831
1826
  errors: string[];
1832
1827
  data: unknown;
1833
1828
  }
1834
- /**
1835
- * Preset definition
1836
- */
1837
1829
  interface PresetDefinition {
1838
1830
  name: string;
1839
1831
  description: string;
@@ -1841,9 +1833,6 @@ interface PresetDefinition {
1841
1833
  extends: string | null;
1842
1834
  config: Partial<ConfigInput>;
1843
1835
  }
1844
- /**
1845
- * Preset info for listing
1846
- */
1847
1836
  interface PresetInfo {
1848
1837
  key: string;
1849
1838
  name: string;
@@ -1851,92 +1840,80 @@ interface PresetInfo {
1851
1840
  tags?: string[] | undefined;
1852
1841
  extends?: string | null | undefined;
1853
1842
  }
1854
- /**
1855
- * List presets options
1856
- */
1857
1843
  interface ListPresetsOptions {
1858
1844
  tag?: string | undefined;
1859
1845
  verbose?: boolean | undefined;
1860
1846
  }
1861
- /**
1862
- * Validate options
1863
- */
1864
1847
  interface ValidateOptions {
1865
1848
  strict?: boolean | undefined;
1866
1849
  sections?: string[] | undefined;
1867
1850
  }
1868
- /**
1869
- * Load with validation options
1870
- */
1871
1851
  interface LoadWithValidationOptions {
1872
1852
  validate?: boolean | undefined;
1873
1853
  strict?: boolean | undefined;
1874
1854
  silent?: boolean | undefined;
1875
1855
  }
1876
- /**
1877
- * Format Zod validation errors into user-friendly messages
1878
- * Compatible with Zod 4.x
1879
- */
1880
- declare function formatValidationErrors(zodError: z.ZodError): string[];
1881
- /**
1882
- * Validate a specific config section
1883
- */
1884
- declare function validateSection(section: string, data: unknown): SectionValidationResult;
1885
1856
  declare const DEFAULT_CONFIG: ConfigInput;
1886
- declare const CONFIG_FILES: string[];
1887
- declare const CONFIG_PRESETS: Record<string, PresetDefinition>;
1888
1857
  /**
1889
1858
  * Deep merge two objects
1890
1859
  */
1891
1860
  declare function deepMerge<T extends Record<string, unknown>>(target: T, source: Partial<T>): T;
1861
+
1892
1862
  /**
1893
- * Find the project root directory
1894
- */
1895
- declare function findProjectRoot(): string;
1896
- /**
1897
- * Find config file in project
1898
- */
1899
- declare function findConfigFile(projectRoot: string): string | null;
1900
- /**
1901
- * Get a preset configuration
1863
+ * Bootspring Configuration Presets
1864
+ *
1865
+ * Static preset configurations and preset management functions.
1866
+ *
1867
+ * @package bootspring
1868
+ * @module core/config-presets
1902
1869
  */
1870
+
1871
+ declare const CONFIG_PRESETS: Record<string, PresetDefinition>;
1903
1872
  declare function getPreset(presetName: string): PresetDefinition | null;
1904
- /**
1905
- * Resolve preset inheritance chain
1906
- */
1907
1873
  declare function resolvePresetChain(presetName: string, seen?: Set<string>): ConfigInput;
1908
- /**
1909
- * Apply a preset to configuration
1910
- */
1911
1874
  declare function applyPreset(presetNames: string | string[], overrides?: Partial<ConfigInput>): ConfigInput;
1912
- /**
1913
- * Combine multiple presets
1914
- */
1915
1875
  declare function combinePresets(presetNames: string[], overrides?: Partial<ConfigInput>): ConfigInput;
1916
- /**
1917
- * Parse preset string
1918
- */
1919
1876
  declare function parsePresetString(presetString: string): string[];
1920
- /**
1921
- * Validate preset names
1922
- */
1923
1877
  declare function validatePresets(presetNames: string | string[]): {
1924
1878
  valid: boolean;
1925
1879
  errors: string[];
1926
1880
  validPresets: string[];
1927
1881
  };
1882
+ declare function getPresetsByTag(tag: string): string[];
1883
+ declare function createCustomPreset(baseName: string, newName: string, customConfig?: Partial<ConfigInput>): PresetDefinition;
1884
+ declare function listPresets(options?: ListPresetsOptions): PresetInfo[];
1885
+
1928
1886
  /**
1929
- * Get presets by tag
1887
+ * Bootspring Configuration
1888
+ * Handles loading and validating bootspring.config.js
1889
+ *
1890
+ * Split into:
1891
+ * config-schemas.ts — Zod schemas + inferred types + interfaces
1892
+ * config-presets.ts — preset data + preset functions
1893
+ * config.ts (this file) — defaults, helpers, loader, validation, re-exports
1894
+ *
1895
+ * @package bootspring
1896
+ * @module core/config
1930
1897
  */
1931
- declare function getPresetsByTag(tag: string): string[];
1898
+
1899
+ declare const CONFIG_FILES: string[];
1932
1900
  /**
1933
- * Create custom preset
1901
+ * Format Zod validation errors into user-friendly messages
1902
+ * Compatible with Zod 4.x
1934
1903
  */
1935
- declare function createCustomPreset(baseName: string, newName: string, customConfig?: Partial<ConfigInput>): PresetDefinition;
1904
+ declare function formatValidationErrors(zodError: z.ZodError): string[];
1936
1905
  /**
1937
- * List available presets
1906
+ * Validate a specific config section
1938
1907
  */
1939
- declare function listPresets(options?: ListPresetsOptions): PresetInfo[];
1908
+ declare function validateSection(section: string, data: unknown): SectionValidationResult;
1909
+ /**
1910
+ * Find the project root directory
1911
+ */
1912
+ declare function findProjectRoot(): string;
1913
+ /**
1914
+ * Find config file in project
1915
+ */
1916
+ declare function findConfigFile(projectRoot: string): string | null;
1940
1917
  /**
1941
1918
  * Load configuration from file
1942
1919
  */
@@ -2281,6 +2258,10 @@ interface UploadOptions {
2281
2258
  clearOnSuccess?: boolean | undefined;
2282
2259
  maxRetries?: number | undefined;
2283
2260
  retryDelayMs?: number | undefined;
2261
+ /** Pass directly to avoid dynamic import of auth module */
2262
+ apiKey?: string | undefined;
2263
+ /** Pass directly to avoid dynamic import of session module */
2264
+ projectId?: string | undefined;
2284
2265
  }
2285
2266
  /**
2286
2267
  * Emit event options
@@ -2422,4 +2403,4 @@ declare namespace telemetry {
2422
2403
  export { telemetry_ASSISTANTS as ASSISTANTS, telemetry_ASSISTANT_FIRST_SUCCESS_EVENT as ASSISTANT_FIRST_SUCCESS_EVENT, telemetry_ASSISTANT_RETURN_EVENT as ASSISTANT_RETURN_EVENT, telemetry_ASSISTANT_SETUP_EVENT as ASSISTANT_SETUP_EVENT, type telemetry_AssistantFunnelEntry as AssistantFunnelEntry, type telemetry_AssistantFunnelSummary as AssistantFunnelSummary, type telemetry_AssistantId as AssistantId, type telemetry_AssistantTrackOptions as AssistantTrackOptions, type telemetry_AssistantUsageTrackResult as AssistantUsageTrackResult, telemetry_BILLING_UPGRADE_STARTED_EVENT as BILLING_UPGRADE_STARTED_EVENT, type telemetry_ClearResult as ClearResult, type telemetry_EmitOptions as EmitOptions, type telemetry_FailedBatch as FailedBatch, type telemetry_ListEventsOptions as ListEventsOptions, telemetry_MAX_EVENTS_LIMIT as MAX_EVENTS_LIMIT, type telemetry_TelemetryRecord as TelemetryRecord, type telemetry_TelemetryStatus as TelemetryStatus, telemetry_UPGRADE_COMPLETED_EVENT as UPGRADE_COMPLETED_EVENT, telemetry_UPGRADE_PROMPT_EVENT as UPGRADE_PROMPT_EVENT, type telemetry_UpgradeFunnelEntry as UpgradeFunnelEntry, type telemetry_UpgradeFunnelSummary as UpgradeFunnelSummary, type telemetry_UploadOptions as UploadOptions, type telemetry_UploadResult as UploadResult, telemetry_clearEvents as clearEvents, telemetry_emitEvent as emitEvent, telemetry_ensureTelemetryDir as ensureTelemetryDir, telemetry_getAssistantActivationFunnel as getAssistantActivationFunnel, telemetry_getStatus as getStatus, telemetry_getTelemetryDir as getTelemetryDir, telemetry_getTelemetryFile as getTelemetryFile, telemetry_getUpgradeConversionFunnel as getUpgradeConversionFunnel, telemetry_inferAssistantFromEnvironment as inferAssistantFromEnvironment, telemetry_listEvents as listEvents, telemetry_track as track, telemetry_trackAssistantSetup as trackAssistantSetup, telemetry_trackAssistantUsageSuccess as trackAssistantUsageSuccess, telemetry_uploadEvents as uploadEvents };
2423
2404
  }
2424
2405
 
2425
- export { API_BASE, API_VERSION, BOOTSPRING_DIR, COMMANDS_SOURCE, CONFIG_FILE, CREDENTIALS_FILE, CURRENT_VERSION, DEFAULT_INTERVAL_MS, DEFAULT_POLICY_PROFILE, DEVICE_FILE, type DiagnosticResult, type ExpiryStatus, type HealResult, type Issue, LIMITS, LOCAL_CONFIG_NAME, PACKAGE_NAME, PATTERNS, POLICY_PROFILES, type PolicyOptions, type PolicyProfile, type ProjectContext$1 as ProjectContext, SESSION_FILE, SHELL_DANGEROUS_CHARS, STATE_PATH, type SessionData, TARGET_DIRS, type ValidationResult$1 as ValidationResult, type Workflow, addRecentProject, apiClient as api, apiLogin, applyUpdate, auth, checkForUpdates, checkInstallation, classifyError, clearCredentials, clearDeviceInfo, clearProjectApiKey, clearProjectScopedSession, clearSession, compareVersions, config, context, createLocalConfig, decrypt, encrypt, ensureBootspringDir, ensureLatestVersion, entitlements, findLocalConfig, findNearestProjectConfigPath, generateDeviceFingerprint, getApiKey, getCommandFiles, getConfig, getCredentials, getCredentialsPath, getCurrentProject, getDeviceContext, getDeviceId, getDeviceInfo, getEffectiveProject, getInstallContext, getLatestVersion, getLegacyProjectApiKey, getPolicyProfile, getProjectScopedSessionState, getProjectScopedToken, getRecentProjects, getRefreshToken, getSession, getSessionState, getStoredApiKey, getTier$1 as getTier, getToken, getTokenExpiryStatus, getUser, healthCheck, installAll, installToTarget, isApiKeyAuth, isAuthenticated, isWorkflowBlocked, login, loginWithApiKey, logout, maybeAutoUploadTelemetry, normalizeProfile, policies, pollDeviceToken, presence, readNearestProjectConfig, request, resolvePolicyProfile, runDiagnostics, saveApiKeyToProject, saveConfig, saveCredentials, saveProjectScopedSession, saveSession, selfHeal, selfUpdate, sendHealthReport, sendHeartbeat, session, setAuthFailureHandler, setCurrentProject, setupCommands, startDeviceFlow, stripUnsafeControlChars, telemetry, tierEnforcement, tryHeal, uninstallAll, updateTokens, validateNumericId, validateSlug, validateStringLength, validateTodoText, writeNearestProjectConfig };
2406
+ export { API_BASE, API_VERSION, BOOTSPRING_DIR, type BootspringConfig, COMMANDS_SOURCE, CONFIG_FILE, CREDENTIALS_FILE, CURRENT_VERSION, type Credentials, DEFAULT_INTERVAL_MS, DEFAULT_POLICY_PROFILE, DEVICE_FILE, type DeviceContext, type DeviceInfo, type DiagnosticResult, type ExpiryStatus, type HealResult, type Issue, LIMITS, LOCAL_CONFIG_NAME, type LoginResponse, PACKAGE_NAME, PATTERNS, POLICY_PROFILES, type PolicyOptions, type PolicyProfile, type ProjectAuth, type ProjectConfig, type ProjectContext$1 as ProjectContext, SESSION_FILE, SHELL_DANGEROUS_CHARS, STATE_PATH, type SessionData, type SessionOptions, TARGET_DIRS, type UserProfile, type ValidationResult$1 as ValidationResult, type Workflow, addRecentProject, apiClient as api, apiLogin, applyUpdate, auth, callMcpTool, checkForUpdates, checkInstallation, classifyError, clearCredentials, clearDeviceInfo, clearProjectApiKey, clearProjectScopedSession, clearSession, compareVersions, config, context, createLocalConfig, decrypt, encrypt, ensureBootspringDir, ensureLatestVersion, entitlements, findLocalConfig, findNearestProjectConfigPath, generateDeviceFingerprint, getApiKey, getCommandFiles, getConfig, getCredentials, getCredentialsPath, getCurrentProject, getDeviceContext, getDeviceId, getDeviceInfo, getEffectiveProject, getInstallContext, getLatestVersion, getLegacyProjectApiKey, getMcpResource, getPolicyProfile, getProjectScopedSessionState, getProjectScopedToken, getRecentProjects, getRefreshToken, getSession, getSessionState, getStoredApiKey, getTier$1 as getTier, getToken, getTokenExpiryStatus, getUser, healthCheck, installAll, installToTarget, isApiKeyAuth, isAuthenticated, isWorkflowBlocked, listMcpResources, listMcpTools, login, loginWithApiKey, logout, maybeAutoUploadTelemetry, normalizeProfile, policies, pollDeviceToken, presence, readNearestProjectConfig, refreshSession, remoteLogout, request, resolvePolicyProfile, runDiagnostics, saveApiKeyToProject, saveConfig, saveCredentials, saveProjectScopedSession, saveSession, selfHeal, selfUpdate, sendHealthReport, sendHeartbeat, session, setAuthFailureHandler, setCurrentProject, setupCommands, startDeviceFlow, stripUnsafeControlChars, telemetry, tierEnforcement, tryHeal, uninstallAll, updateTokens, validateNumericId, validateSlug, validateStringLength, validateTodoText, writeNearestProjectConfig };