monora-ai 2.0.0 → 2.1.3

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 (202) hide show
  1. package/README.md +441 -150
  2. package/dist/aims_governance.d.ts +238 -0
  3. package/dist/aims_governance.d.ts.map +1 -0
  4. package/dist/aims_governance.js +922 -0
  5. package/dist/alerts.d.ts +16 -0
  6. package/dist/alerts.d.ts.map +1 -1
  7. package/dist/alerts.js +16 -0
  8. package/dist/api.d.ts +6 -0
  9. package/dist/api.d.ts.map +1 -1
  10. package/dist/api.js +6 -0
  11. package/dist/assessment.d.ts +269 -0
  12. package/dist/assessment.d.ts.map +1 -0
  13. package/dist/assessment.js +1232 -0
  14. package/dist/attestation.js +23 -1
  15. package/dist/attribution.d.ts +349 -0
  16. package/dist/attribution.d.ts.map +1 -0
  17. package/dist/attribution.js +987 -0
  18. package/dist/autodetect.d.ts +69 -1
  19. package/dist/autodetect.d.ts.map +1 -1
  20. package/dist/autodetect.js +644 -1
  21. package/dist/bias.d.ts +130 -0
  22. package/dist/bias.d.ts.map +1 -0
  23. package/dist/bias.js +223 -0
  24. package/dist/circuit_breaker.js +3 -3
  25. package/dist/cli/diagnostics.d.ts +5 -1
  26. package/dist/cli/diagnostics.d.ts.map +1 -1
  27. package/dist/cli/diagnostics.js +31 -8
  28. package/dist/cli/doctor.d.ts +25 -0
  29. package/dist/cli/doctor.d.ts.map +1 -0
  30. package/dist/cli/doctor.js +381 -0
  31. package/dist/cli/fix.d.ts +16 -0
  32. package/dist/cli/fix.d.ts.map +1 -0
  33. package/dist/cli/fix.js +284 -0
  34. package/dist/cli/init.d.ts +57 -0
  35. package/dist/cli/init.d.ts.map +1 -0
  36. package/dist/cli/init.js +205 -0
  37. package/dist/cli.js +1611 -126
  38. package/dist/complianceTargets.d.ts +111 -0
  39. package/dist/complianceTargets.d.ts.map +1 -0
  40. package/dist/complianceTargets.js +521 -0
  41. package/dist/config.d.ts +301 -17
  42. package/dist/config.d.ts.map +1 -1
  43. package/dist/config.js +428 -36
  44. package/dist/config_migrations.d.ts +41 -0
  45. package/dist/config_migrations.d.ts.map +1 -1
  46. package/dist/config_migrations.js +205 -0
  47. package/dist/config_schema.d.ts +2900 -731
  48. package/dist/config_schema.d.ts.map +1 -1
  49. package/dist/config_schema.js +257 -55
  50. package/dist/context.d.ts +34 -0
  51. package/dist/context.d.ts.map +1 -1
  52. package/dist/context.js +118 -7
  53. package/dist/control_backbone.d.ts +122 -0
  54. package/dist/control_backbone.d.ts.map +1 -0
  55. package/dist/control_backbone.js +698 -0
  56. package/dist/data-governance.d.ts +187 -0
  57. package/dist/data-governance.d.ts.map +1 -0
  58. package/dist/data-governance.js +424 -0
  59. package/dist/dataResidency.d.ts +44 -0
  60. package/dist/dataResidency.d.ts.map +1 -0
  61. package/dist/dataResidency.js +203 -0
  62. package/dist/dispatcher.d.ts +32 -0
  63. package/dist/dispatcher.d.ts.map +1 -1
  64. package/dist/dispatcher.js +91 -4
  65. package/dist/events.d.ts.map +1 -1
  66. package/dist/events.js +38 -0
  67. package/dist/evidence_store.d.ts +103 -0
  68. package/dist/evidence_store.d.ts.map +1 -0
  69. package/dist/evidence_store.js +459 -0
  70. package/dist/executiveSummary.d.ts +65 -8
  71. package/dist/executiveSummary.d.ts.map +1 -1
  72. package/dist/executiveSummary.js +289 -26
  73. package/dist/identity.d.ts +143 -0
  74. package/dist/identity.d.ts.map +1 -0
  75. package/dist/identity.js +231 -0
  76. package/dist/impact-assessment.d.ts +350 -0
  77. package/dist/impact-assessment.d.ts.map +1 -0
  78. package/dist/impact-assessment.js +580 -0
  79. package/dist/index.d.ts +25 -5
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.js +300 -4
  82. package/dist/instrumentation.d.ts +1 -1
  83. package/dist/instrumentation.d.ts.map +1 -1
  84. package/dist/instrumentation.js +243 -27
  85. package/dist/integrations/anthropic.d.ts +3 -0
  86. package/dist/integrations/anthropic.d.ts.map +1 -1
  87. package/dist/integrations/anthropic.js +284 -79
  88. package/dist/integrations/governance.d.ts +33 -0
  89. package/dist/integrations/governance.d.ts.map +1 -0
  90. package/dist/integrations/governance.js +208 -0
  91. package/dist/integrations/langchain.d.ts +7 -0
  92. package/dist/integrations/langchain.d.ts.map +1 -1
  93. package/dist/integrations/langchain.js +387 -143
  94. package/dist/integrations/openai.d.ts +9 -0
  95. package/dist/integrations/openai.d.ts.map +1 -1
  96. package/dist/integrations/openai.js +673 -73
  97. package/dist/iso42001_consolidation.d.ts +16 -0
  98. package/dist/iso42001_consolidation.d.ts.map +1 -0
  99. package/dist/iso42001_consolidation.js +413 -0
  100. package/dist/iso42001_workflows.d.ts +263 -0
  101. package/dist/iso42001_workflows.d.ts.map +1 -0
  102. package/dist/iso42001_workflows.js +781 -0
  103. package/dist/lifecycle.d.ts +299 -0
  104. package/dist/lifecycle.d.ts.map +1 -0
  105. package/dist/lifecycle.js +624 -0
  106. package/dist/lineage.d.ts +2 -2
  107. package/dist/lineage.d.ts.map +1 -1
  108. package/dist/lineage.js +12 -17
  109. package/dist/middleware/express.d.ts.map +1 -1
  110. package/dist/middleware/express.js +33 -3
  111. package/dist/middleware/nextjs.d.ts.map +1 -1
  112. package/dist/middleware/nextjs.js +42 -68
  113. package/dist/model.d.ts +143 -0
  114. package/dist/model.d.ts.map +1 -0
  115. package/dist/model.js +371 -0
  116. package/dist/onboarding.d.ts +42 -0
  117. package/dist/onboarding.d.ts.map +1 -0
  118. package/dist/onboarding.js +1022 -0
  119. package/dist/oversight.d.ts +264 -0
  120. package/dist/oversight.d.ts.map +1 -0
  121. package/dist/oversight.js +497 -0
  122. package/dist/pdf_report.d.ts.map +1 -1
  123. package/dist/pdf_report.js +42 -21
  124. package/dist/presets.d.ts +88 -0
  125. package/dist/presets.d.ts.map +1 -0
  126. package/dist/presets.js +520 -0
  127. package/dist/propagation.d.ts.map +1 -1
  128. package/dist/propagation.js +34 -2
  129. package/dist/quotas.d.ts +171 -0
  130. package/dist/quotas.d.ts.map +1 -0
  131. package/dist/quotas.js +259 -0
  132. package/dist/register.d.ts +13 -0
  133. package/dist/register.d.ts.map +1 -0
  134. package/dist/register.js +99 -0
  135. package/dist/registry.d.ts +1 -0
  136. package/dist/registry.d.ts.map +1 -1
  137. package/dist/registry.js +7 -0
  138. package/dist/registryData.json +43 -6
  139. package/dist/report.d.ts +2 -1
  140. package/dist/report.d.ts.map +1 -1
  141. package/dist/report.js +189 -2
  142. package/dist/reporting.d.ts +125 -0
  143. package/dist/reporting.d.ts.map +1 -1
  144. package/dist/reporting.js +196 -5
  145. package/dist/resources.d.ts +285 -0
  146. package/dist/resources.d.ts.map +1 -0
  147. package/dist/resources.js +643 -0
  148. package/dist/risk.d.ts +120 -0
  149. package/dist/risk.d.ts.map +1 -0
  150. package/dist/risk.js +220 -0
  151. package/dist/runtime.d.ts +74 -1
  152. package/dist/runtime.d.ts.map +1 -1
  153. package/dist/runtime.js +598 -22
  154. package/dist/schemaInference.d.ts +92 -0
  155. package/dist/schemaInference.d.ts.map +1 -0
  156. package/dist/schemaInference.js +466 -0
  157. package/dist/schema_validation.js +2 -2
  158. package/dist/schemas/config.schema.json +169 -6
  159. package/dist/schemas/event.schema.json +4 -0
  160. package/dist/security_report.js +4 -4
  161. package/dist/signing.d.ts +1 -1
  162. package/dist/signing.d.ts.map +1 -1
  163. package/dist/signing.js +4 -0
  164. package/dist/sinks/file.d.ts +19 -1
  165. package/dist/sinks/file.d.ts.map +1 -1
  166. package/dist/sinks/file.js +82 -13
  167. package/dist/sinks/https.d.ts +10 -0
  168. package/dist/sinks/https.d.ts.map +1 -1
  169. package/dist/sinks/https.js +76 -16
  170. package/dist/sinks/stdout.d.ts +1 -0
  171. package/dist/sinks/stdout.d.ts.map +1 -1
  172. package/dist/sinks/stdout.js +12 -1
  173. package/dist/spec.d.ts +159 -0
  174. package/dist/spec.d.ts.map +1 -0
  175. package/dist/spec.js +391 -0
  176. package/dist/stakeholders.d.ts +199 -0
  177. package/dist/stakeholders.d.ts.map +1 -0
  178. package/dist/stakeholders.js +398 -0
  179. package/dist/standards.d.ts.map +1 -1
  180. package/dist/standards.js +160 -2
  181. package/dist/standards_ingest.d.ts +2 -2
  182. package/dist/standards_ingest.d.ts.map +1 -1
  183. package/dist/standards_ingest.js +105 -23
  184. package/dist/streaming.d.ts.map +1 -1
  185. package/dist/streaming.js +7 -2
  186. package/dist/telemetry.d.ts +16 -2
  187. package/dist/telemetry.d.ts.map +1 -1
  188. package/dist/telemetry.js +79 -14
  189. package/dist/templates/controls/iso42001_control_catalog.json +1443 -0
  190. package/dist/traced_emitter.d.ts +3 -0
  191. package/dist/traced_emitter.d.ts.map +1 -1
  192. package/dist/traced_emitter.js +142 -25
  193. package/dist/trust_package.d.ts +21 -1
  194. package/dist/trust_package.d.ts.map +1 -1
  195. package/dist/trust_package.js +101 -4
  196. package/dist/verify.d.ts.map +1 -1
  197. package/dist/verify.js +9 -2
  198. package/dist/wal.d.ts.map +1 -1
  199. package/dist/wal.js +2 -1
  200. package/package.json +14 -1
  201. package/scripts/postinstall.js +119 -97
  202. package/templates/controls/iso42001_control_catalog.json +1443 -0
@@ -208,12 +208,34 @@ function extractComplianceSummary(report) {
208
208
  const tokenUsage = report.token_usage || {};
209
209
  return {
210
210
  policy_violations: Array.isArray(violations) ? violations.length : 0,
211
- data_handling_issues: 0, // TODO: Extract from data handling events
211
+ data_handling_issues: countDataHandlingIssues(violations),
212
212
  unknown_models: modelCompliance.unknown_models_used || [],
213
213
  forbidden_models_blocked: (modelCompliance.forbidden_models_blocked || []).length,
214
214
  total_tokens: tokenUsage.total_tokens || 0,
215
215
  };
216
216
  }
217
+ function countDataHandlingIssues(violations) {
218
+ if (!Array.isArray(violations)) {
219
+ return 0;
220
+ }
221
+ let count = 0;
222
+ for (const violation of violations) {
223
+ if (!violation || typeof violation !== 'object') {
224
+ continue;
225
+ }
226
+ const policy = violation.policy ||
227
+ violation.policy_name ||
228
+ violation.policyId ||
229
+ violation.policy_id;
230
+ if (!policy) {
231
+ continue;
232
+ }
233
+ if (String(policy).toLowerCase().startsWith('data_handling')) {
234
+ count += 1;
235
+ }
236
+ }
237
+ return count;
238
+ }
217
239
  function findGpg() {
218
240
  const candidates = ['gpg', 'gpg2'];
219
241
  for (const candidate of candidates) {
@@ -0,0 +1,349 @@
1
+ /**
2
+ * Attribution and project registration for Monora SDK.
3
+ *
4
+ * This module provides opt-in attribution and telemetry features to help
5
+ * improve the SDK and understand usage patterns.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { registerProject, reportUsage, enableTelemetry } from 'monora-ai';
10
+ *
11
+ * // Register your project (optional but encouraged)
12
+ * registerProject({
13
+ * company: 'Acme Corp',
14
+ * role: 'ML Engineer',
15
+ * email: 'dev@acme.com',
16
+ * source: 'npm',
17
+ * useCase: 'Customer Support AI',
18
+ * });
19
+ *
20
+ * // Enable and report usage (opt-in)
21
+ * enableTelemetry({ sendData: true });
22
+ * reportUsage({ framework: 'nextjs', environment: 'production' });
23
+ * ```
24
+ */
25
+ /**
26
+ * Project registration data.
27
+ */
28
+ export interface ProjectRegistration {
29
+ /** Company or organization name */
30
+ company?: string;
31
+ /** Your role (e.g., "ML Engineer", "DevOps", "CTO") */
32
+ role?: string;
33
+ /** Work email for best practices updates (included in registration payload when enabled) */
34
+ email?: string;
35
+ /** How you found Monora (npm, pypi, github, blog, referral) */
36
+ source?: string;
37
+ /** Brief description of your use case */
38
+ useCase?: string;
39
+ /** Team size (solo, small, medium, large) */
40
+ teamSize?: 'solo' | 'small' | 'medium' | 'large' | string;
41
+ /** Business owner for compliance/audit purposes */
42
+ businessOwner?: string;
43
+ /** Data categories touched (e.g., ["PII", "financial"]) */
44
+ dataCategories?: string[];
45
+ /** Additional metadata tags */
46
+ tags?: Record<string, string>;
47
+ /** Registration timestamp */
48
+ registeredAt?: string;
49
+ }
50
+ /**
51
+ * Anonymous usage report data.
52
+ */
53
+ export interface UsageReport {
54
+ /** Anonymous installation ID */
55
+ installId: string;
56
+ /** SDK version */
57
+ sdkVersion: string;
58
+ /** Node.js version */
59
+ nodeVersion: string;
60
+ /** Operating system name */
61
+ osName: string;
62
+ /** Operating system version */
63
+ osVersion: string;
64
+ /** Framework being used */
65
+ framework?: string;
66
+ /** Features used in this session */
67
+ featuresUsed: string[];
68
+ /** Deployment environment */
69
+ environment: string;
70
+ /** Report timestamp */
71
+ reportedAt?: string;
72
+ }
73
+ /**
74
+ * Audit metadata for compliance purposes.
75
+ */
76
+ export interface AuditMetadata {
77
+ /** Name of the AI use case */
78
+ useCaseName?: string;
79
+ /** Business owner responsible for this use case */
80
+ businessOwner?: string;
81
+ /** Categories of data processed */
82
+ dataCategories?: string[];
83
+ /** Risk level */
84
+ riskLevel?: 'low' | 'medium' | 'high' | 'critical';
85
+ /** Applicable compliance frameworks */
86
+ complianceFrameworks?: string[];
87
+ /** Date of last compliance review */
88
+ reviewDate?: string;
89
+ /** Name of reviewer */
90
+ reviewer?: string;
91
+ /** Additional notes */
92
+ notes?: string;
93
+ }
94
+ /**
95
+ * Attribution event data.
96
+ */
97
+ export interface AttributionEvent {
98
+ type: 'project_registered' | 'usage_reported';
99
+ data: ProjectRegistration | UsageReport;
100
+ }
101
+ /**
102
+ * Attribution event callback.
103
+ */
104
+ export type AttributionCallback = (event: AttributionEvent) => void;
105
+ /**
106
+ * Get or create a persistent anonymous installation ID.
107
+ *
108
+ * The ID is a hash of a random UUID, stored locally.
109
+ * No personally identifiable information is included.
110
+ *
111
+ * @returns Anonymous installation ID string.
112
+ */
113
+ export declare function getInstallId(): string;
114
+ /**
115
+ * Register your project with Monora (optional but encouraged).
116
+ *
117
+ * This helps us understand who is using the SDK and improve the product.
118
+ * All fields are optional. Data is only sent if telemetry is enabled.
119
+ *
120
+ * @param options - Registration options.
121
+ * @returns ProjectRegistration object.
122
+ *
123
+ * @example
124
+ * ```typescript
125
+ * registerProject({
126
+ * company: 'Acme Corp',
127
+ * role: 'ML Engineer',
128
+ * useCase: 'Customer Support AI',
129
+ * dataCategories: ['customer_data'],
130
+ * });
131
+ * ```
132
+ */
133
+ export declare function registerProject(options: Omit<ProjectRegistration, 'registeredAt'>): ProjectRegistration;
134
+ /**
135
+ * Get the current project registration.
136
+ *
137
+ * @returns Current ProjectRegistration or null if not registered.
138
+ */
139
+ export declare function getRegistration(): ProjectRegistration | null;
140
+ /**
141
+ * Telemetry options.
142
+ */
143
+ export interface TelemetryOptions {
144
+ /** Whether to send anonymous data to Monora */
145
+ sendData?: boolean;
146
+ /** Data residency region ("us", "eu", or null) */
147
+ dataResidency?: string | null;
148
+ }
149
+ /**
150
+ * Enable anonymous usage telemetry.
151
+ *
152
+ * By default, telemetry data stays local. Set sendData=true to
153
+ * share anonymous usage data with Monora to help improve the SDK.
154
+ *
155
+ * @param options - Telemetry options.
156
+ *
157
+ * @example
158
+ * ```typescript
159
+ * enableTelemetry({ sendData: true, dataResidency: 'eu' });
160
+ * ```
161
+ */
162
+ export declare function enableTelemetry(options?: TelemetryOptions): void;
163
+ /**
164
+ * Disable usage telemetry.
165
+ *
166
+ * No data will be collected or sent after this call.
167
+ */
168
+ export declare function disableTelemetry(): void;
169
+ /**
170
+ * Check if telemetry is enabled.
171
+ *
172
+ * @returns True if telemetry is enabled.
173
+ */
174
+ export declare function isTelemetryEnabled(): boolean;
175
+ /**
176
+ * Record that a feature was used (internal).
177
+ *
178
+ * This is called internally by SDK components to track which
179
+ * features are being used. No sensitive data is recorded.
180
+ *
181
+ * @param feature - Feature name (e.g., "signing", "wal", "circuit_breaker").
182
+ */
183
+ export declare function recordFeatureUsage(feature: string): void;
184
+ /**
185
+ * Get list of features used in this session.
186
+ *
187
+ * @returns Sorted list of feature names.
188
+ */
189
+ export declare function getFeaturesUsed(): string[];
190
+ /**
191
+ * Usage report options.
192
+ */
193
+ export interface UsageReportOptions {
194
+ /** Framework being used (e.g., "nextjs", "express") */
195
+ framework?: string;
196
+ /** Deployment environment */
197
+ environment?: string;
198
+ }
199
+ /**
200
+ * Build an anonymous usage report.
201
+ *
202
+ * @param options - Report options.
203
+ * @returns UsageReport object with anonymous data.
204
+ */
205
+ export declare function buildUsageReport(options?: UsageReportOptions): UsageReport;
206
+ /**
207
+ * Report anonymous usage data (if telemetry enabled).
208
+ *
209
+ * This sends anonymous usage data to help improve the SDK.
210
+ * Only called if telemetry is enabled with sendData=true.
211
+ *
212
+ * @param options - Report options.
213
+ * @returns UsageReport object.
214
+ *
215
+ * @example
216
+ * ```typescript
217
+ * enableTelemetry({ sendData: true });
218
+ * reportUsage({ framework: 'nextjs', environment: 'production' });
219
+ * ```
220
+ */
221
+ export declare function reportUsage(options?: UsageReportOptions): UsageReport;
222
+ /**
223
+ * Register a callback for attribution events.
224
+ *
225
+ * Use this to hook into attribution events for your own logging
226
+ * or monitoring stack.
227
+ *
228
+ * @param callback - Function called with event data.
229
+ * @returns Unsubscribe function.
230
+ *
231
+ * @example
232
+ * ```typescript
233
+ * const unsubscribe = onAttributionEvent((event) => {
234
+ * console.log(`Attribution event: ${event.type}`);
235
+ * });
236
+ * // Later: unsubscribe();
237
+ * ```
238
+ */
239
+ export declare function onAttributionEvent(callback: AttributionCallback): () => void;
240
+ /**
241
+ * Set data residency region.
242
+ *
243
+ * @param region - Region code ("us", "eu", or "none" to disable sending).
244
+ */
245
+ export declare function setDataResidency(region: string): void;
246
+ /**
247
+ * Get current data residency setting.
248
+ *
249
+ * @returns Region code or null.
250
+ */
251
+ export declare function getDataResidency(): string | null;
252
+ /**
253
+ * Configure HTTP settings from Monora config (internal).
254
+ *
255
+ * Called by runtime.init() to pass endpoint configuration.
256
+ */
257
+ export declare function configureHttp(config: {
258
+ endpoints?: {
259
+ us?: string;
260
+ eu?: string;
261
+ };
262
+ apiKeyEnv?: string;
263
+ timeoutSec?: number;
264
+ retryAttempts?: number;
265
+ backoffBaseSec?: number;
266
+ }): void;
267
+ /**
268
+ * Send a telemetry event (e.g., startup, shutdown, error).
269
+ *
270
+ * This is called internally by the SDK to track usage patterns.
271
+ * Only sends if telemetry is enabled with sendData=true.
272
+ *
273
+ * @param options - Event options.
274
+ */
275
+ export declare function sendTelemetryEvent(options: {
276
+ eventType: 'startup' | 'shutdown' | 'heartbeat' | 'error';
277
+ eventData?: Record<string, unknown>;
278
+ framework?: string;
279
+ environment?: string;
280
+ }): void;
281
+ /**
282
+ * Set audit metadata for compliance purposes.
283
+ *
284
+ * This metadata is included in compliance reports and can be used
285
+ * to satisfy audit requirements for SOC 2, GDPR, ISO 27001, etc.
286
+ *
287
+ * @param metadata - Audit metadata.
288
+ * @returns AuditMetadata object.
289
+ *
290
+ * @example
291
+ * ```typescript
292
+ * setAuditMetadata({
293
+ * useCaseName: 'Customer Support AI',
294
+ * businessOwner: 'Jane Smith',
295
+ * dataCategories: ['customer_data', 'PII'],
296
+ * riskLevel: 'medium',
297
+ * complianceFrameworks: ['SOC2', 'GDPR'],
298
+ * });
299
+ * ```
300
+ */
301
+ export declare function setAuditMetadata(metadata: AuditMetadata): AuditMetadata;
302
+ /**
303
+ * Get current audit metadata.
304
+ *
305
+ * @returns AuditMetadata object or null.
306
+ */
307
+ export declare function getAuditMetadata(): AuditMetadata | null;
308
+ /**
309
+ * Check if first-run registration prompt has been shown.
310
+ *
311
+ * @returns True if already prompted, false otherwise.
312
+ */
313
+ export declare function hasShownFirstRunPrompt(): boolean;
314
+ /**
315
+ * Check if user has registered (either via postinstall or programmatically).
316
+ *
317
+ * @returns True if registered, false otherwise.
318
+ */
319
+ export declare function hasRegistration(): boolean;
320
+ /**
321
+ * Prompt the user to register their project (interactive, optional).
322
+ *
323
+ * @param options - Optional context about the environment.
324
+ * @returns True if registration was completed, false otherwise.
325
+ */
326
+ export declare function promptForRegistration(options?: {
327
+ environment?: string;
328
+ force?: boolean;
329
+ silent?: boolean;
330
+ }): Promise<boolean>;
331
+ /**
332
+ * Show first-run registration prompt if needed.
333
+ *
334
+ * This logs a one-time message suggesting the user run `npx monora init`
335
+ * to register their project for best practices updates. The message is
336
+ * only shown once per installation.
337
+ *
338
+ * @param options - Optional context about the environment.
339
+ * @returns True if prompt was shown, false if skipped.
340
+ */
341
+ export declare function showFirstRunPromptIfNeeded(options?: {
342
+ environment?: string;
343
+ silent?: boolean;
344
+ }): boolean;
345
+ /**
346
+ * Reset the first-run prompt state (for testing).
347
+ */
348
+ export declare function resetFirstRunPrompt(): void;
349
+ //# sourceMappingURL=attribution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attribution.d.ts","sourceRoot":"","sources":["../src/attribution.ts"],"names":[],"mappings":"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"}