mindsim 0.1.5 → 0.1.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.
package/dist/config.js CHANGED
@@ -6,39 +6,375 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getApiBaseUrl = exports.getDeviceAuthConfig = exports.saveApiKey = exports.loadApiKey = void 0;
7
7
  exports.getConfigDir = getConfigDir;
8
8
  exports.getConfigFile = getConfigFile;
9
+ exports.validateServiceJson = validateServiceJson;
10
+ exports.loadServiceJsonFromFile = loadServiceJsonFromFile;
11
+ exports.loadServiceJsonFromBase64 = loadServiceJsonFromBase64;
12
+ exports.loadServiceJson = loadServiceJson;
9
13
  const node_fs_1 = __importDefault(require("node:fs"));
10
14
  const node_os_1 = __importDefault(require("node:os"));
11
15
  const node_path_1 = __importDefault(require("node:path"));
16
+ const logger_1 = require("./logger");
17
+ // =============================================================================
18
+ // Gap 7 Fix: Browser Environment Detection
19
+ // =============================================================================
20
+ /**
21
+ * Check if we're running in a Node.js environment.
22
+ * Returns false in browsers to prevent process.env access errors.
23
+ */
24
+ function isNodeEnvironment() {
25
+ return (typeof process !== "undefined" && process.versions != null && process.versions.node != null);
26
+ }
27
+ /**
28
+ * Safely get an environment variable.
29
+ * Returns undefined in browser environments.
30
+ */
31
+ function getEnvVar(name) {
32
+ if (!isNodeEnvironment()) {
33
+ return undefined;
34
+ }
35
+ return process.env[name];
36
+ }
12
37
  const API_BASE_URL = "https://api.reasoner.com/api/mindsim";
13
38
  const WORKOS_DEVICE_AUTH_URL = "https://auth.reasoner.com/user_management/authorize/device";
14
39
  const WORKOS_TOKEN_URL = "https://auth.reasoner.com/user_management/authenticate";
15
40
  const WORKOS_CLIENT_ID = "client_01GPECHM1J9DMY7WQNKTJ195P6";
16
41
  const SDK_KEYS_API_URL = "https://api.reasoner.com/api/sdk/keys";
42
+ // Valid scopes for validation (must match rainmaker's ALL_SCOPES)
43
+ const VALID_SCOPES = [
44
+ "minds:read",
45
+ "minds:write",
46
+ "simulate:run",
47
+ "simulate:read",
48
+ "users:read",
49
+ "users:write",
50
+ "org:admin",
51
+ ];
52
+ // Valid use cases for validation
53
+ const VALID_USE_CASES = ["internal-workflow", "customer-facing", "agentic-ai"];
54
+ // =============================================================================
55
+ // Gap 12-14 Fix: Validation Helpers
56
+ // =============================================================================
57
+ /**
58
+ * UUID v4 validation regex
59
+ */
60
+ const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
61
+ /**
62
+ * Validate a UUID string
63
+ */
64
+ function isValidUUID(value) {
65
+ return typeof value === "string" && UUID_REGEX.test(value);
66
+ }
67
+ /**
68
+ * Validate a URL string (must be HTTPS for production)
69
+ */
70
+ function isValidHttpsUrl(value) {
71
+ if (typeof value !== "string")
72
+ return false;
73
+ try {
74
+ const url = new URL(value);
75
+ return url.protocol === "https:";
76
+ }
77
+ catch {
78
+ return false;
79
+ }
80
+ }
81
+ /**
82
+ * Validate an ISO 8601 timestamp string
83
+ */
84
+ function isValidISOTimestamp(value) {
85
+ if (typeof value !== "string")
86
+ return false;
87
+ const date = new Date(value);
88
+ return !Number.isNaN(date.getTime()) && value.includes("T");
89
+ }
90
+ /**
91
+ * Gap 8 Fix: Validate an email address format
92
+ */
93
+ const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
94
+ function isValidEmail(value) {
95
+ return typeof value === "string" && EMAIL_REGEX.test(value);
96
+ }
97
+ /**
98
+ * Get the MindSim config directory path.
99
+ * @returns Path to ~/.mindsim directory
100
+ */
17
101
  function getConfigDir() {
18
102
  return node_path_1.default.join(node_os_1.default.homedir(), ".mindsim");
19
103
  }
104
+ /**
105
+ * Get the MindSim config file path.
106
+ * @returns Path to ~/.mindsim/config file
107
+ */
20
108
  function getConfigFile() {
21
109
  return node_path_1.default.join(getConfigDir(), "config");
22
110
  }
111
+ /**
112
+ * Validate a service JSON object has all required fields with correct types.
113
+ * This provides detailed error messages for debugging.
114
+ *
115
+ * @param json - The parsed JSON object to validate
116
+ * @returns Validation result with errors if invalid
117
+ */
118
+ function validateServiceJson(json) {
119
+ const errors = [];
120
+ if (!json || typeof json !== "object") {
121
+ return { valid: false, errors: ["Service JSON must be a valid object"] };
122
+ }
123
+ const obj = json;
124
+ // Required string fields
125
+ const requiredStrings = [
126
+ { key: "type", name: "type" },
127
+ { key: "version", name: "version" },
128
+ { key: "project_id", name: "project_id" },
129
+ { key: "project_name", name: "project_name" },
130
+ { key: "environment", name: "environment" },
131
+ { key: "client_email", name: "client_email" },
132
+ { key: "client_id", name: "client_id" },
133
+ { key: "api_key", name: "api_key" },
134
+ { key: "api_base_url", name: "api_base_url" },
135
+ { key: "created_at", name: "created_at" },
136
+ ];
137
+ for (const { key, name } of requiredStrings) {
138
+ if (typeof obj[key] !== "string" || obj[key] === "") {
139
+ errors.push(`Missing or invalid required field: ${name}`);
140
+ }
141
+ }
142
+ // Validate type field value
143
+ if (obj.type !== "mindsim_service_account") {
144
+ errors.push('type field must be "mindsim_service_account"');
145
+ }
146
+ // Validate environment field value
147
+ if (obj.environment !== "production") {
148
+ errors.push('environment field must be "production"');
149
+ }
150
+ // Validate scopes array
151
+ if (!Array.isArray(obj.scopes)) {
152
+ errors.push("scopes must be an array");
153
+ }
154
+ else if (obj.scopes.length === 0) {
155
+ errors.push("scopes array cannot be empty");
156
+ }
157
+ else {
158
+ for (const scope of obj.scopes) {
159
+ if (!VALID_SCOPES.includes(scope)) {
160
+ errors.push(`Invalid scope: ${scope}. Valid scopes: ${VALID_SCOPES.join(", ")}`);
161
+ }
162
+ }
163
+ }
164
+ // Validate app_metadata object
165
+ if (!obj.app_metadata || typeof obj.app_metadata !== "object") {
166
+ errors.push("app_metadata must be an object");
167
+ }
168
+ else {
169
+ const metadata = obj.app_metadata;
170
+ const metadataFields = ["app_id", "workspace_id", "mindsim_org_id"];
171
+ for (const field of metadataFields) {
172
+ if (typeof metadata[field] !== "string" || metadata[field] === "") {
173
+ errors.push(`Missing or invalid app_metadata.${field}`);
174
+ }
175
+ }
176
+ // Validate use_case
177
+ if (!VALID_USE_CASES.includes(metadata.use_case)) {
178
+ errors.push(`Invalid app_metadata.use_case: ${metadata.use_case}. Valid values: ${VALID_USE_CASES.join(", ")}`);
179
+ }
180
+ // Gap 12 Fix: Validate UUID format for ID fields
181
+ const uuidFields = ["app_id", "workspace_id", "mindsim_org_id"];
182
+ for (const field of uuidFields) {
183
+ if (metadata[field] && !isValidUUID(metadata[field])) {
184
+ errors.push(`Invalid UUID format for app_metadata.${field}`);
185
+ }
186
+ }
187
+ }
188
+ // Gap 12 Fix: Validate client_id as UUID
189
+ if (obj.client_id && !isValidUUID(obj.client_id)) {
190
+ errors.push("client_id must be a valid UUID");
191
+ }
192
+ // Gap 8 Fix: Validate client_email as valid email format
193
+ if (obj.client_email && !isValidEmail(obj.client_email)) {
194
+ errors.push("client_email must be a valid email address");
195
+ }
196
+ // Gap 13 Fix: Validate api_base_url as HTTPS URL
197
+ if (obj.api_base_url && !isValidHttpsUrl(obj.api_base_url)) {
198
+ errors.push("api_base_url must be a valid HTTPS URL");
199
+ }
200
+ // Gap 14 Fix: Validate timestamps as ISO 8601
201
+ if (obj.created_at && !isValidISOTimestamp(obj.created_at)) {
202
+ errors.push("created_at must be a valid ISO 8601 timestamp");
203
+ }
204
+ if (obj.expires_at && !isValidISOTimestamp(obj.expires_at)) {
205
+ errors.push("expires_at must be a valid ISO 8601 timestamp");
206
+ }
207
+ if (obj.issued_at && !isValidISOTimestamp(obj.issued_at)) {
208
+ errors.push("issued_at must be a valid ISO 8601 timestamp");
209
+ }
210
+ if (errors.length > 0) {
211
+ return { valid: false, errors };
212
+ }
213
+ return { valid: true, errors: [], serviceJson: obj };
214
+ }
215
+ // =============================================================================
216
+ // Service JSON Loading Functions
217
+ // =============================================================================
218
+ /**
219
+ * Load service JSON from a file path.
220
+ *
221
+ * @param filePath - Path to the service JSON file
222
+ * @returns MindsimServiceJson object or null if invalid/not found
223
+ */
224
+ function loadServiceJsonFromFile(filePath) {
225
+ try {
226
+ if (!node_fs_1.default.existsSync(filePath)) {
227
+ return null;
228
+ }
229
+ const content = node_fs_1.default.readFileSync(filePath, "utf-8");
230
+ let json;
231
+ try {
232
+ json = JSON.parse(content);
233
+ }
234
+ catch (parseError) {
235
+ (0, logger_1.getLogger)().error("Failed to parse service JSON file (invalid JSON syntax):", parseError);
236
+ return null;
237
+ }
238
+ // Validate all required fields
239
+ const validation = validateServiceJson(json);
240
+ if (!validation.valid) {
241
+ (0, logger_1.getLogger)().error("Invalid service JSON:", validation.errors.join("; "));
242
+ return null;
243
+ }
244
+ return validation.serviceJson;
245
+ }
246
+ catch (error) {
247
+ // Distinguish between different error types
248
+ if (error instanceof Error && "code" in error) {
249
+ const nodeError = error;
250
+ if (nodeError.code === "EACCES") {
251
+ (0, logger_1.getLogger)().error("Permission denied reading service JSON file:", filePath);
252
+ }
253
+ else if (nodeError.code === "ENOENT") {
254
+ // File doesn't exist - this is handled above, but just in case
255
+ return null;
256
+ }
257
+ else {
258
+ (0, logger_1.getLogger)().error(`Failed to read service JSON file (${nodeError.code}):`, error);
259
+ }
260
+ }
261
+ else {
262
+ (0, logger_1.getLogger)().error("Failed to load service JSON:", error);
263
+ }
264
+ return null;
265
+ }
266
+ }
267
+ /**
268
+ * Load service JSON from a base64-encoded string.
269
+ * Useful for environment variables in containerized environments.
270
+ *
271
+ * @param base64 - Base64-encoded service JSON string
272
+ * @returns MindsimServiceJson object or null if invalid
273
+ */
274
+ function loadServiceJsonFromBase64(base64) {
275
+ try {
276
+ if (!base64 || base64.trim() === "") {
277
+ (0, logger_1.getLogger)().error("Empty base64 string provided");
278
+ return null;
279
+ }
280
+ const decoded = Buffer.from(base64, "base64").toString("utf-8");
281
+ if (!decoded || decoded.trim() === "") {
282
+ (0, logger_1.getLogger)().error("Base64 decoded to empty string");
283
+ return null;
284
+ }
285
+ let json;
286
+ try {
287
+ json = JSON.parse(decoded);
288
+ }
289
+ catch (parseError) {
290
+ (0, logger_1.getLogger)().error("Failed to parse decoded service JSON (invalid JSON syntax):", parseError);
291
+ return null;
292
+ }
293
+ // Validate all required fields
294
+ const validation = validateServiceJson(json);
295
+ if (!validation.valid) {
296
+ (0, logger_1.getLogger)().error("Invalid service JSON:", validation.errors.join("; "));
297
+ return null;
298
+ }
299
+ return validation.serviceJson;
300
+ }
301
+ catch (error) {
302
+ (0, logger_1.getLogger)().error("Failed to decode service JSON from base64:", error);
303
+ return null;
304
+ }
305
+ }
306
+ /**
307
+ * Load service JSON from environment variables.
308
+ * Priority: MINDSIM_SERVICE_JSON (file path) > MINDSIM_SERVICE_JSON_BASE64 (inline)
309
+ *
310
+ * @returns MindsimServiceJson object or null if not configured
311
+ */
312
+ function loadServiceJson() {
313
+ // Gap 7 Fix: Check Node environment before accessing env vars
314
+ if (!isNodeEnvironment()) {
315
+ return null;
316
+ }
317
+ // Try file path first
318
+ const filePath = getEnvVar("MINDSIM_SERVICE_JSON");
319
+ if (filePath) {
320
+ const serviceJson = loadServiceJsonFromFile(filePath);
321
+ if (serviceJson) {
322
+ return serviceJson;
323
+ }
324
+ (0, logger_1.getLogger)().warn(`MINDSIM_SERVICE_JSON set but file not found or invalid: ${filePath}`);
325
+ }
326
+ // Try base64 encoded
327
+ const base64 = getEnvVar("MINDSIM_SERVICE_JSON_BASE64");
328
+ if (base64) {
329
+ const serviceJson = loadServiceJsonFromBase64(base64);
330
+ if (serviceJson) {
331
+ return serviceJson;
332
+ }
333
+ (0, logger_1.getLogger)().warn("MINDSIM_SERVICE_JSON_BASE64 set but failed to decode");
334
+ }
335
+ return null;
336
+ }
337
+ // =============================================================================
338
+ // API Key Loading
339
+ // =============================================================================
340
+ /**
341
+ * Load API key with priority:
342
+ * 1. Service JSON (env vars)
343
+ * 2. MINDSIM_API_KEY env var
344
+ * 3. Config file (~/.mindsim/config)
345
+ */
23
346
  const loadApiKey = () => {
24
347
  try {
25
- if (process.env.MINDSIM_API_KEY) {
26
- return process.env.MINDSIM_API_KEY;
348
+ // Priority 1: Service JSON
349
+ const serviceJson = loadServiceJson();
350
+ if (serviceJson?.api_key) {
351
+ return serviceJson.api_key;
352
+ }
353
+ // Priority 2: Direct API key env var
354
+ const envApiKey = getEnvVar("MINDSIM_API_KEY");
355
+ if (envApiKey) {
356
+ return envApiKey;
27
357
  }
28
- const configFile = getConfigFile();
29
- if (node_fs_1.default.existsSync(configFile)) {
30
- const config = JSON.parse(node_fs_1.default.readFileSync(configFile, "utf-8"));
31
- return config.apiKey || null;
358
+ // Priority 3: Config file (only in Node environment)
359
+ if (isNodeEnvironment()) {
360
+ const configFile = getConfigFile();
361
+ if (node_fs_1.default.existsSync(configFile)) {
362
+ const config = JSON.parse(node_fs_1.default.readFileSync(configFile, "utf-8"));
363
+ return config.apiKey || null;
364
+ }
32
365
  }
33
366
  }
34
367
  catch (error) {
35
- // TODO: define logging interface so users can control where they are written to
36
- console.error(error);
368
+ (0, logger_1.getLogger)().error("Failed to load API key:", error);
37
369
  }
38
370
  return null;
39
371
  };
40
372
  exports.loadApiKey = loadApiKey;
41
373
  const saveApiKey = (apiKey) => {
374
+ // Gap 9 Fix: Check Node environment before accessing fs
375
+ if (!isNodeEnvironment()) {
376
+ throw new Error("saveApiKey is only available in Node.js environments");
377
+ }
42
378
  const configDir = getConfigDir();
43
379
  const configFile = getConfigFile();
44
380
  if (!node_fs_1.default.existsSync(configDir)) {
@@ -49,15 +385,23 @@ const saveApiKey = (apiKey) => {
49
385
  exports.saveApiKey = saveApiKey;
50
386
  const getDeviceAuthConfig = () => {
51
387
  return {
52
- deviceAuthUrl: process.env.MINDSIM_WORKOS_DEVICE_AUTH_URL || WORKOS_DEVICE_AUTH_URL,
53
- tokenUrl: process.env.MINDSIM_WORKOS_TOKEN_URL || WORKOS_TOKEN_URL,
54
- clientId: process.env.MINDSIM_WORKOS_CLIENT_ID || WORKOS_CLIENT_ID,
55
- sdkKeysApiUrl: process.env.MINDSIM_SDK_KEYS_API_URL || SDK_KEYS_API_URL,
388
+ deviceAuthUrl: getEnvVar("MINDSIM_WORKOS_DEVICE_AUTH_URL") || WORKOS_DEVICE_AUTH_URL,
389
+ tokenUrl: getEnvVar("MINDSIM_WORKOS_TOKEN_URL") || WORKOS_TOKEN_URL,
390
+ clientId: getEnvVar("MINDSIM_WORKOS_CLIENT_ID") || WORKOS_CLIENT_ID,
391
+ sdkKeysApiUrl: getEnvVar("MINDSIM_SDK_KEYS_API_URL") || SDK_KEYS_API_URL,
56
392
  };
57
393
  };
58
394
  exports.getDeviceAuthConfig = getDeviceAuthConfig;
395
+ /**
396
+ * Get the API base URL.
397
+ * Priority: MINDSIM_API_BASE_URL > MIND_SIM_API_BASE_URL (deprecated) > default
398
+ * @returns API base URL
399
+ */
59
400
  const getApiBaseUrl = () => {
60
- return process.env.MIND_SIM_API_BASE_URL || API_BASE_URL;
401
+ // Gap 12 Fix: Use consistent naming (MINDSIM_*) with backwards compatibility
402
+ return (getEnvVar("MINDSIM_API_BASE_URL") ||
403
+ getEnvVar("MIND_SIM_API_BASE_URL") || // Deprecated, for backwards compatibility
404
+ API_BASE_URL);
61
405
  };
62
406
  exports.getApiBaseUrl = getApiBaseUrl;
63
407
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAWA,oCAEC;AAED,sCAEC;AAjBD,sDAAyB;AACzB,sDAAyB;AACzB,0DAA6B;AAG7B,MAAM,YAAY,GAAG,sCAAsC,CAAC;AAC5D,MAAM,sBAAsB,GAAG,4DAA4D,CAAC;AAC5F,MAAM,gBAAgB,GAAG,wDAAwD,CAAC;AAClF,MAAM,gBAAgB,GAAG,mCAAmC,CAAC;AAC7D,MAAM,gBAAgB,GAAG,uCAAuC,CAAC;AAEjE,SAAgB,YAAY;IAC1B,OAAO,mBAAI,CAAC,IAAI,CAAC,iBAAE,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AAC7C,CAAC;AAED,SAAgB,aAAa;IAC3B,OAAO,mBAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAEM,MAAM,UAAU,GAAG,GAAkB,EAAE;IAC5C,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QACrC,CAAC;QAED,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QAEnC,IAAI,iBAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YAChE,OAAO,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gFAAgF;QAChF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAjBW,QAAA,UAAU,cAiBrB;AAEK,MAAM,UAAU,GAAG,CAAC,MAAc,EAAQ,EAAE;IACjD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IAEnC,IAAI,CAAC,iBAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,iBAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,iBAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACpE,CAAC,CAAC;AARW,QAAA,UAAU,cAQrB;AAEK,MAAM,mBAAmB,GAAG,GAAqB,EAAE;IACxD,OAAO;QACL,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,sBAAsB;QACnF,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,gBAAgB;QAClE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,gBAAgB;QAClE,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,gBAAgB;KACxE,CAAC;AACJ,CAAC,CAAC;AAPW,QAAA,mBAAmB,uBAO9B;AAEK,MAAM,aAAa,GAAG,GAAG,EAAE;IAChC,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,YAAY,CAAC;AAC3D,CAAC,CAAC;AAFW,QAAA,aAAa,iBAExB"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,8 +5,33 @@ import { PsychometricsResource } from "./resources/psychometrics";
5
5
  import { SimulationsResource } from "./resources/simulations";
6
6
  import { SnapshotsResource } from "./resources/snapshots";
7
7
  import { TagsResource } from "./resources/tags";
8
+ import type { MindsimServiceJson } from "./types";
9
+ /**
10
+ * Check if the SDK is running in a Node.js environment.
11
+ * Some features (like file-based service JSON loading) only work in Node.js.
12
+ */
13
+ export declare function isNodeEnvironment(): boolean;
14
+ /**
15
+ * Check if the SDK is running in a browser environment.
16
+ */
17
+ export declare function isBrowserEnvironment(): boolean;
18
+ /**
19
+ * Authentication method used by the MindSim client.
20
+ */
21
+ export type AuthMethod = "service_json" | "api_key_env" | "api_key_constructor" | "config_file";
22
+ /**
23
+ * Options for initializing the MindSim client.
24
+ */
25
+ export interface MindSimOptions {
26
+ /** Custom API base URL (overrides default and service JSON) */
27
+ apiBaseUrl?: string;
28
+ /** Service JSON credentials (alternative to API key) */
29
+ serviceJson?: MindsimServiceJson;
30
+ }
8
31
  export declare class MindSim {
9
32
  private client;
33
+ private serviceJson;
34
+ private authMethod;
10
35
  artifacts: ArtifactsResource;
11
36
  minds: MindsResource;
12
37
  mindTopics: MindTopicsResource;
@@ -14,9 +39,41 @@ export declare class MindSim {
14
39
  snapshots: SnapshotsResource;
15
40
  simulations: SimulationsResource;
16
41
  tags: TagsResource;
17
- constructor(apiKey?: string, options?: {
18
- apiBaseUrl?: string;
19
- });
42
+ constructor(apiKey?: string, options?: MindSimOptions);
43
+ /**
44
+ * Get the loaded service JSON (if any).
45
+ * Useful for debugging or accessing project metadata.
46
+ *
47
+ * @returns The service JSON object or null if not using service JSON auth
48
+ */
49
+ getServiceJson(): MindsimServiceJson | null;
50
+ /**
51
+ * Check if the client is using service JSON authentication.
52
+ *
53
+ * @returns true if using service JSON, false otherwise
54
+ */
55
+ isUsingServiceJsonAuth(): boolean;
56
+ /**
57
+ * Get the authentication method used by this client.
58
+ *
59
+ * @returns The auth method: 'service_json', 'api_key_env', 'api_key_constructor', or 'config_file'
60
+ */
61
+ getAuthMethod(): AuthMethod;
62
+ /**
63
+ * Get authentication info for debugging.
64
+ * Does NOT expose the actual API key.
65
+ *
66
+ * @returns Object with auth details (method, project info if service JSON)
67
+ */
68
+ getAuthInfo(): {
69
+ method: AuthMethod;
70
+ isServiceJson: boolean;
71
+ projectId: string | null;
72
+ projectName: string | null;
73
+ environment: string | null;
74
+ };
20
75
  }
76
+ export { type ServiceJsonValidationResult, validateServiceJson } from "./config";
77
+ export { createSilentLogger, createVerboseLogger, defaultLogger, getLogger, type MindSimLogger, setLogger, } from "./logger";
21
78
  export * from "./types";
22
79
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAgB;IAEvB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,aAAa,EAAE,qBAAqB,CAAC;IACrC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,WAAW,EAAE,mBAAmB,CAAC;IACjC,IAAI,EAAE,YAAY,CAAC;gBAEd,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;CAoC/D;AAGD,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAOlD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAI3C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAI9C;AAMD;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,cAAc,GACd,aAAa,GACb,qBAAqB,GACrB,aAAa,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wDAAwD;IACxD,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,WAAW,CAAmC;IAEtD,OAAO,CAAC,UAAU,CAA6B;IAExC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,EAAE,aAAa,CAAC;IACrB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,aAAa,EAAE,qBAAqB,CAAC;IACrC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,WAAW,EAAE,mBAAmB,CAAC;IACjC,IAAI,EAAE,YAAY,CAAC;gBAEd,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc;IA6FrD;;;;;OAKG;IACI,cAAc,IAAI,kBAAkB,GAAG,IAAI;IAQlD;;;;OAIG;IACI,sBAAsB,IAAI,OAAO;IAIxC;;;;OAIG;IACI,aAAa,IAAI,UAAU;IAIlC;;;;;OAKG;IACI,WAAW,IAAI;QACpB,MAAM,EAAE,UAAU,CAAC;QACnB,aAAa,EAAE,OAAO,CAAC;QACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B;CASF;AAGD,OAAO,EAAE,KAAK,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGjF,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,KAAK,aAAa,EAClB,SAAS,GACV,MAAM,UAAU,CAAC;AAElB,cAAc,SAAS,CAAC"}