forgesmith 0.6.0 → 0.7.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.
package/dist/index.d.ts CHANGED
@@ -25,7 +25,7 @@ interface PrismData {
25
25
  toDate?: string;
26
26
  }
27
27
  interface ReleaseNotesOpts {
28
- tone?: "professional" | "casual" | "technical";
28
+ tone?: "professional" | "casual" | "technical" | "executive";
29
29
  length?: "short" | "medium" | "long";
30
30
  format?: "markdown" | "plain";
31
31
  }
@@ -60,7 +60,7 @@ interface BlueprintData {
60
60
  };
61
61
  }
62
62
  interface ArchitectureWalkthroughOpts {
63
- tone?: "technical" | "casual" | "onboarding";
63
+ tone?: "professional" | "casual" | "technical" | "executive";
64
64
  length?: "short" | "medium" | "long";
65
65
  format?: "markdown" | "plain";
66
66
  }
@@ -70,12 +70,12 @@ interface ChangesSinceOpts {
70
70
  format?: "markdown" | "plain";
71
71
  }
72
72
  interface OnboardingDocOpts {
73
- tone?: "friendly" | "formal" | "technical";
73
+ tone?: "professional" | "casual" | "technical" | "executive";
74
74
  length?: "short" | "medium" | "long";
75
75
  format?: "markdown" | "plain";
76
76
  }
77
77
  interface RefactoringReportOpts {
78
- tone?: "analytical" | "casual" | "executive";
78
+ tone?: "professional" | "casual" | "technical" | "executive";
79
79
  length?: "short" | "medium" | "long";
80
80
  format?: "markdown" | "plain";
81
81
  }
@@ -112,21 +112,417 @@ interface LlmProvider {
112
112
  complete(request: LlmRequest): Promise<LlmResponse>;
113
113
  }
114
114
 
115
- declare function generateReleaseNotes(data: PrismData, opts: ReleaseNotesOpts, provider: LlmProvider): Promise<GenerationResult>;
115
+ interface AmberCapabilityContext {
116
+ id: string;
117
+ name: string;
118
+ criticality: "critical" | "high" | "medium" | "low";
119
+ lifecycle: "active" | "experimental" | "deprecated" | "sunset";
120
+ description?: string;
121
+ /** Files tagged with this capability in state.json */
122
+ files: string[];
123
+ /** Files tagged with this capability that have no doc_hash (outdated @amber-doc) */
124
+ driftCount: number;
125
+ /** Whether any file in this capability's set has a doc_hash (proxy for test coverage) */
126
+ hasTests: boolean;
127
+ }
128
+ interface AmberLayerContext {
129
+ capabilities: AmberCapabilityContext[];
130
+ totalFiles: number;
131
+ taggedFiles: number;
132
+ taggedPercent: number;
133
+ driftedCapabilities: number;
134
+ orphanedFiles: string[];
135
+ /** Human-readable summary for prompt injection */
136
+ summary: string;
137
+ }
116
138
 
117
- declare function generateArchitectureWalkthrough(blueprint: BlueprintData | null, opts: ArchitectureWalkthroughOpts, provider: LlmProvider): Promise<GenerationResult>;
139
+ interface GreenInsightContext {
140
+ id: string;
141
+ title: string;
142
+ body: string;
143
+ category: string;
144
+ severity?: string;
145
+ }
146
+ interface GreenLayerContext {
147
+ insights: GreenInsightContext[];
148
+ coherenceScore: number | null;
149
+ coherenceGrade: string | null;
150
+ topRisks: Array<{
151
+ capabilityId: string;
152
+ name: string;
153
+ reason: string;
154
+ impact: number;
155
+ }>;
156
+ /** Human-readable summary for prompt injection */
157
+ summary: string;
158
+ }
159
+
160
+ declare function generateReleaseNotes(data: PrismData, opts: ReleaseNotesOpts, provider: LlmProvider, amberContext?: AmberLayerContext, greenContext?: GreenLayerContext): Promise<GenerationResult>;
161
+
162
+ declare function generateArchitectureWalkthrough(blueprint: BlueprintData | null, opts: ArchitectureWalkthroughOpts, provider: LlmProvider, amberContext?: AmberLayerContext): Promise<GenerationResult>;
118
163
 
119
164
  declare function generateChangesSince(current: BlueprintData | null, previous: BlueprintData | null, opts: ChangesSinceOpts, provider: LlmProvider): Promise<GenerationResult>;
120
165
 
121
166
  declare function generateOnboardingDoc(blueprint: BlueprintData | null, opts: OnboardingDocOpts, provider: LlmProvider): Promise<GenerationResult>;
122
167
 
123
- declare function generateRefactoringReport(blueprint: BlueprintData | null, opts: RefactoringReportOpts, provider: LlmProvider): Promise<GenerationResult>;
124
-
125
- declare function readPrismDirectory(prismPath: string): Promise<PrismData>;
126
- declare function readBlueprintData(targetPath: string): Promise<BlueprintData | null>;
168
+ declare function generateRefactoringReport(blueprint: BlueprintData | null, opts: RefactoringReportOpts, provider: LlmProvider, amberContext?: AmberLayerContext, greenContext?: GreenLayerContext): Promise<GenerationResult>;
127
169
 
128
170
  declare function generateAskDrivenAsset(blueprint: BlueprintData | null, question: string, opts: AskDrivenAssetOpts, provider: LlmProvider): Promise<GenerationResult>;
129
171
 
172
+ type PresentationSlideType = "title" | "executive" | "architecture" | "capabilities" | "health" | "risks" | "recommendations" | "metrics" | "closing";
173
+ interface PresentationSlide {
174
+ type: PresentationSlideType;
175
+ title: string;
176
+ subtitle?: string;
177
+ bullets?: string[];
178
+ highlight?: string;
179
+ highlightLabel?: string;
180
+ speakerNotes?: string;
181
+ visualHint?: string;
182
+ }
183
+ interface PresentationOutput {
184
+ title: string;
185
+ subtitle: string;
186
+ slideCount: number;
187
+ slides: PresentationSlide[];
188
+ theme: "dark" | "light" | "corporate";
189
+ generatedAt: string;
190
+ }
191
+ interface GeneratePresentationOpts {
192
+ blueprint: BlueprintData;
193
+ audience: "technical" | "executive" | "mixed";
194
+ slideCount: 5 | 8 | 10 | 12;
195
+ theme: "dark" | "light" | "corporate";
196
+ focusArea?: "architecture" | "health" | "risks" | "all";
197
+ tone: "professional" | "casual" | "executive";
198
+ projectName?: string;
199
+ llm: LlmProvider;
200
+ }
201
+ declare function generatePresentation(opts: GeneratePresentationOpts): Promise<PresentationOutput>;
202
+
203
+ type ComplianceFramework = "SOX" | "ISO27001" | "GDPR" | "SOC2" | "CUSTOM";
204
+ interface ComplianceCapabilityRecord {
205
+ id: string;
206
+ name: string;
207
+ criticality: "critical" | "high" | "medium" | "low";
208
+ lifecycle: "active" | "experimental" | "deprecated" | "sunset";
209
+ files: string[];
210
+ testCoverage: boolean;
211
+ driftCount: number;
212
+ description?: string;
213
+ dataProcessing?: boolean;
214
+ accessControl?: boolean;
215
+ auditTrail?: boolean;
216
+ }
217
+ interface ComplianceContext {
218
+ framework: string;
219
+ projectName: string;
220
+ generatedAt: string;
221
+ totalCapabilities: number;
222
+ criticalCapabilities: ComplianceCapabilityRecord[];
223
+ riskSummary: {
224
+ high: number;
225
+ medium: number;
226
+ low: number;
227
+ };
228
+ sox?: {
229
+ financialCapabilities: string[];
230
+ accessControlled: string[];
231
+ };
232
+ gdpr?: {
233
+ dataProcessingCapabilities: string[];
234
+ retentionCapabilities: string[];
235
+ };
236
+ iso27001?: {
237
+ informationAssets: string[];
238
+ securityControls: string[];
239
+ };
240
+ soc2?: {
241
+ securityCapabilities: string[];
242
+ availabilityCapabilities: string[];
243
+ };
244
+ }
245
+ interface GenerateComplianceDocOpts {
246
+ blueprint: BlueprintData;
247
+ amberContext?: AmberLayerContext;
248
+ complianceContext?: ComplianceContext;
249
+ framework: ComplianceFramework;
250
+ customFramework?: string;
251
+ projectName: string;
252
+ organizationName?: string;
253
+ tone: "formal" | "technical" | "executive";
254
+ includeRecommendations: boolean;
255
+ llm: LlmProvider;
256
+ }
257
+ interface ComplianceSection {
258
+ title: string;
259
+ content: string;
260
+ capabilities: string[];
261
+ riskLevel?: "high" | "medium" | "low";
262
+ status?: "compliant" | "partial" | "gap";
263
+ }
264
+ interface ComplianceDocOutput {
265
+ framework: ComplianceFramework;
266
+ documentTitle: string;
267
+ sections: ComplianceSection[];
268
+ executiveSummary: string;
269
+ complianceGaps: string[];
270
+ recommendations: string[];
271
+ generatedAt: string;
272
+ confidentiality: "INTERNAL" | "CONFIDENTIAL" | "PUBLIC";
273
+ }
274
+ declare function generateComplianceDoc(opts: GenerateComplianceDocOpts): Promise<ComplianceDocOutput>;
275
+
276
+ interface AdrContext {
277
+ importCycles: Array<{
278
+ files: string[];
279
+ severity: "tight" | "chain" | "web";
280
+ }>;
281
+ capabilityBoundaries: Array<{
282
+ from: string;
283
+ to: string;
284
+ edgeCount: number;
285
+ }>;
286
+ highChurnFiles: Array<{
287
+ path: string;
288
+ commits: number;
289
+ capabilities: string[];
290
+ }>;
291
+ orphanedFiles: string[];
292
+ coherenceScore: number | null;
293
+ topRisks: Array<{
294
+ capabilityId: string;
295
+ name: string;
296
+ reason: string;
297
+ }>;
298
+ architecturalPatterns: string[];
299
+ }
300
+ interface GenerateADROpts {
301
+ blueprint: BlueprintData;
302
+ amberContext?: AmberLayerContext;
303
+ adrContext?: AdrContext;
304
+ focus: "cycles" | "capabilities" | "dependencies" | "overall";
305
+ selectedCycle?: string[];
306
+ selectedCapability?: string;
307
+ projectName: string;
308
+ llm: LlmProvider;
309
+ }
310
+ interface ADRDocument {
311
+ id: string;
312
+ title: string;
313
+ date: string;
314
+ status: "Proposed" | "Accepted" | "Deprecated" | "Superseded";
315
+ context: string;
316
+ decision: string;
317
+ consequences: {
318
+ positive: string[];
319
+ negative: string[];
320
+ neutral: string[];
321
+ };
322
+ alternatives: string[];
323
+ relatedCapabilities: string[];
324
+ relatedFiles: string[];
325
+ }
326
+ interface ADROutput {
327
+ adrs: ADRDocument[];
328
+ summary: string;
329
+ technicalDebt: string;
330
+ }
331
+ declare function generateADR(opts: GenerateADROpts): Promise<ADROutput>;
332
+
333
+ interface GitRangeContext {
334
+ commits: Array<{
335
+ hash: string;
336
+ subject: string;
337
+ author?: string;
338
+ date?: string;
339
+ files?: string[];
340
+ }>;
341
+ fromRef: string;
342
+ toRef: string;
343
+ filesChanged: number;
344
+ }
345
+ interface GenerateSprintRetroOpts {
346
+ gitContext?: GitRangeContext;
347
+ amberContext?: AmberLayerContext;
348
+ greenContext?: GreenLayerContext;
349
+ scoreBefore?: number;
350
+ scoreAfter?: number;
351
+ sprintName?: string;
352
+ teamSize?: number;
353
+ projectName: string;
354
+ tone: "professional" | "casual" | "team-friendly";
355
+ llm: LlmProvider;
356
+ }
357
+ interface SprintRetroOutput {
358
+ sprintName: string;
359
+ period: string;
360
+ summary: string;
361
+ delivered: Array<{
362
+ item: string;
363
+ capability?: string;
364
+ type: "feature" | "fix" | "refactor" | "chore";
365
+ }>;
366
+ healthDelta: {
367
+ scoreBefore: number | null;
368
+ scoreAfter: number | null;
369
+ delta: number | null;
370
+ verdict: "improved" | "stable" | "degraded";
371
+ degradedCapabilities: string[];
372
+ };
373
+ wentWell: string[];
374
+ improvements: string[];
375
+ puzzles: string[];
376
+ actions: string[];
377
+ debtIncurred: string[];
378
+ slideTitle: string;
379
+ slidePoints: string[];
380
+ }
381
+ declare function generateSprintRetro(opts: GenerateSprintRetroOpts): Promise<SprintRetroOutput>;
382
+
383
+ /**
384
+ * WeeklyDigestContext — shared type for the 7-day engineering digest.
385
+ *
386
+ * Produced by PRISM's /api/green/weekly-digest route and consumed by the
387
+ * generateNewsletter generator. Kept here as a pure type module so that
388
+ * both the generator and the dashboard API route can import it without
389
+ * a circular dependency.
390
+ */
391
+ interface WeeklyDigestContext {
392
+ /** Human-readable period, e.g. "May 13–20, 2026" */
393
+ period: string;
394
+ /** Total commits in the window */
395
+ commitCount: number;
396
+ /** Total files touched (from git diff) */
397
+ filesChanged: number;
398
+ /** Coherence score at the start of the window */
399
+ scoreStart: number | null;
400
+ /** Coherence score at the end of the window */
401
+ scoreEnd: number | null;
402
+ /** scoreEnd - scoreStart (null if either is missing) */
403
+ scoreDelta: number | null;
404
+ /** Architecture grade letter, e.g. "A", "B+" */
405
+ grade: string | null;
406
+ /** Capabilities that newly drifted (doc hash mismatch) */
407
+ newDrifts: string[];
408
+ /** Capabilities where drift was resolved */
409
+ resolvedDrifts: string[];
410
+ /** New critical-severity risks from GREEN predictions */
411
+ newRisks: string[];
412
+ /** Top 5 commit subjects (non-technical filter applied) */
413
+ topCommits: string[];
414
+ /** Short human-readable health summary sentence */
415
+ healthSummary: string;
416
+ }
417
+
418
+ interface GenerateNewsletterOpts {
419
+ digestContext: WeeklyDigestContext;
420
+ amberContext?: AmberLayerContext;
421
+ targetAudience: "product-team" | "management" | "stakeholders" | "all-hands";
422
+ tone: "professional" | "casual" | "accessible";
423
+ includeMetrics: boolean;
424
+ projectName: string;
425
+ teamName?: string;
426
+ llm: LlmProvider;
427
+ }
428
+ interface NewsletterSection {
429
+ heading: string;
430
+ body: string;
431
+ type: "highlight" | "metrics" | "risk" | "shoutout" | "upcoming";
432
+ }
433
+ interface NewsletterMetric {
434
+ label: string;
435
+ value: string;
436
+ trend: "up" | "down" | "stable";
437
+ }
438
+ interface NewsletterOutput {
439
+ subject: string;
440
+ preview: string;
441
+ greeting: string;
442
+ headline: string;
443
+ sections: NewsletterSection[];
444
+ metrics: NewsletterMetric[];
445
+ closing: string;
446
+ unsubscribeNote: string;
447
+ slackVersion: string;
448
+ teamsVersion: string;
449
+ htmlVersion: string;
450
+ }
451
+ declare function generateNewsletter(opts: GenerateNewsletterOpts): Promise<NewsletterOutput>;
452
+
453
+ interface RadioOptions {
454
+ digestContext: WeeklyDigestContext;
455
+ amberContext?: AmberLayerContext;
456
+ audience: "technical" | "executive";
457
+ projectName: string;
458
+ llm: LlmProvider;
459
+ }
460
+ interface RadioResult {
461
+ headline: string;
462
+ slackVersion: string;
463
+ emailVersion: string;
464
+ twitterVersion: string;
465
+ }
466
+ declare function generateRadio(options: RadioOptions): Promise<RadioResult>;
467
+
468
+ /**
469
+ * arc42 Documentation Generator
470
+ *
471
+ * Generates complete arc42 architecture documentation.
472
+ *
473
+ * arc42 is published under Creative Commons Attribution 4.0 International.
474
+ * Required attribution: arc42 template © arc42.org, CC-BY 4.0
475
+ * See: https://arc42.org/license
476
+ *
477
+ * This module generates content for all 12 arc42 sections using a mix of:
478
+ * - PRISM data (no LLM needed) → sections 5, 9, 10, 11, 12
479
+ * - LLM generation → sections 1, 3, 4, 8
480
+ * - Template with placeholders → sections 2, 6, 7
481
+ */
482
+
483
+ interface Arc42Options {
484
+ digestContext: WeeklyDigestContext;
485
+ amberContext?: AmberLayerContext;
486
+ projectName: string;
487
+ projectDescription?: string;
488
+ teamSize?: number;
489
+ techStack?: string[];
490
+ llm: LlmProvider;
491
+ }
492
+ interface Arc42Section {
493
+ number: number;
494
+ title: string;
495
+ content: string;
496
+ dataSource: "prism" | "llm" | "template";
497
+ }
498
+ interface Arc42Document {
499
+ sections: Arc42Section[];
500
+ fullMarkdown: string;
501
+ attribution: string;
502
+ generatedAt: string;
503
+ }
504
+ declare function generateArc42(opts: Arc42Options): Promise<Arc42Document>;
505
+
506
+ interface KnowledgeCaptureOptions {
507
+ departingDeveloper?: string;
508
+ focusCapabilities?: string[];
509
+ digestContext: WeeklyDigestContext;
510
+ amberContext?: AmberLayerContext;
511
+ projectName: string;
512
+ llm: LlmProvider;
513
+ }
514
+ interface KnowledgeCaptureSection {
515
+ title: string;
516
+ content: string;
517
+ }
518
+ interface KnowledgeCaptureResult {
519
+ markdownDoc: string;
520
+ sections: KnowledgeCaptureSection[];
521
+ criticalKnowledge: string[];
522
+ onboardingChecklist: string[];
523
+ }
524
+ declare function generateKnowledgeCapture(options: KnowledgeCaptureOptions): Promise<KnowledgeCaptureResult>;
525
+
130
526
  type ScopeKind = "framework" | "app" | "tenant";
131
527
  type SignalKind = "brief" | "knowledge_ref" | "git_range" | "app_feature_ref" | "business_capability_ref" | "amber_capability_ref" | "platform_walkthrough" | "green_insight_ref";
132
528
  type Channel = "heise" | "connect" | "linkedin" | "instagram" | "landing" | "onepager" | "internal" | "email" | "deck" | "x" | "product_hunt" | "presentation";
@@ -211,6 +607,20 @@ interface ForgeScope {
211
607
  env?: string | null;
212
608
  }
213
609
  type ForgeSubview = "signals" | "templates" | "audiences" | "outputs" | "walkthroughs";
610
+ interface Zone {
611
+ id: string;
612
+ name: string;
613
+ files: string[];
614
+ fileCount: number;
615
+ heat: number;
616
+ }
617
+ interface FileEntry {
618
+ path: string;
619
+ importCount: number;
620
+ importedByCount: number;
621
+ lineCount: number;
622
+ zone: string;
623
+ }
214
624
 
215
625
  interface BrandKitPalette {
216
626
  primary: string;
@@ -285,11 +695,15 @@ interface PrismBrandDraft {
285
695
  audienceMix: string;
286
696
  };
287
697
  }
288
- declare function extractBrandFromPrismBlueprint(targetPath: string): Promise<PrismBrandDraft>;
289
698
 
290
- type WidgetKind = "stat-card" | "feature-grid" | "testimonial" | "cta-banner" | "metric-badge" | "pricing-tier" | "changelog-row" | "social-proof";
699
+ type WidgetKind = "stat-card" | "feature-grid" | "testimonial" | "cta-banner" | "metric-badge" | "pricing-tier" | "changelog-row" | "social-proof" | "animated-stat" | "release-card" | "chart-bars" | "architecture-badge";
291
700
  type WidgetSlotType = "text" | "number" | "color" | "url" | "image-url" | "multiline" | "select";
292
- type WidgetExportFormat = "html" | "markdown" | "react";
701
+ /** "html" = embeddable fragment (no CDN scripts).
702
+ * "standalone" = full <!DOCTYPE html> document with Tailwind + Anime.js + Chart.js + Lucide CDN.
703
+ * "markdown" = plain text/markdown.
704
+ * "react" = standalone TSX component string.
705
+ */
706
+ type WidgetExportFormat = "html" | "standalone" | "markdown" | "react";
293
707
  interface WidgetSlotDef {
294
708
  id: string;
295
709
  label: string;
@@ -306,6 +720,16 @@ interface WidgetTemplate {
306
720
  slots: WidgetSlotDef[];
307
721
  exportFormats: WidgetExportFormat[];
308
722
  free_tier: boolean;
723
+ /** Widget plays JS animations in standalone mode */
724
+ animated?: boolean;
725
+ /** Total animation settle time in ms (for video capture timing) */
726
+ animDurationMs?: number;
727
+ /** Recommended total video duration in ms (anim + hold) */
728
+ videoDurationMs?: number;
729
+ /** Recommended render viewport width in px */
730
+ defaultWidth?: number;
731
+ /** Recommended render viewport height in px */
732
+ defaultHeight?: number;
309
733
  }
310
734
  interface WidgetInstanceSnapshot {
311
735
  version: number;
@@ -847,41 +1271,8 @@ declare const FORGE_AUDIENCES: ForgeAudience[];
847
1271
 
848
1272
  declare const FORGE_TEMPLATES: ForgeTemplate[];
849
1273
 
850
- /**
851
- * Reads a blueprint from the target project.
852
- * Tries: {targetPath}/.prism/blueprint/snapshot.json (preferred, legacy format)
853
- * then: {targetPath}/.prism/blueprint.json
854
- * Returns null if neither file exists or if path is unsafe.
855
- */
856
- declare function readBlueprintFromTarget(targetPath: string): BlueprintData | null;
857
- interface Zone {
858
- id: string;
859
- name: string;
860
- files: string[];
861
- fileCount: number;
862
- heat: number;
863
- }
864
- interface FileEntry {
865
- path: string;
866
- importCount: number;
867
- importedByCount: number;
868
- lineCount: number;
869
- zone: string;
870
- }
871
- /** Groups files into zones (top-level directory segments). Sorted by heat desc. */
872
- declare function extractZones(blueprint: BlueprintData): Zone[];
873
- /** Files with highest importedByCount — proxy for "most-changed / hottest" files. */
874
- declare function extractTopChurnFiles(blueprint: BlueprintData, n?: number): FileEntry[];
875
- /** Files with highest importCount — most dependency-heavy, highest coupling. */
876
- declare function extractDependencyHotspots(blueprint: BlueprintData, n?: number): FileEntry[];
877
1274
  /** Defence-in-depth: scan derived text for secret patterns before sending to LLM. */
878
1275
  declare function scanForSecrets(text: string): boolean;
879
- /**
880
- * Produces a compact LLM-ready summary of the blueprint.
881
- * Contains ONLY metrics, file paths, and category names — never raw file contents.
882
- * Scanned for secrets before return; throws if any found (should never happen).
883
- */
884
- declare function deriveContextSummary(blueprint: BlueprintData): string;
885
1276
 
886
1277
  type PrismFocus = "release" | "changelog" | "deepdive" | "summary" | `zone:${string}` | `module:${string}`;
887
1278
  interface PrismContextPrompt {
@@ -905,7 +1296,6 @@ declare const PRISM_TEMPLATE_ARCHITECTURE_OVERVIEW: PrismTemplate;
905
1296
  declare const PRISM_TEMPLATE_REFACTOR_RATIONALE: PrismTemplate;
906
1297
  declare const PRISM_TEMPLATES: PrismTemplate[];
907
1298
  declare function getPrismTemplate(id: string): PrismTemplate | undefined;
908
- declare function buildPrismContextPrompt(blueprint: BlueprintData, focus?: PrismFocus, highlight?: string): PrismContextPrompt;
909
1299
 
910
1300
  interface RefineAssetInput {
911
1301
  assetId: string;
@@ -939,4 +1329,4 @@ declare function exportToICalendar(entries: ScheduledEntry[]): string;
939
1329
  type ExportFormat = "buffer" | "hypefury" | "icalendar";
940
1330
  declare function previewExport(entries: ScheduledEntry[], format: ExportFormat): string;
941
1331
 
942
- export { ANIMATION_DURATION_PRESETS, type ArchitectureWalkthroughOpts, type ArrayField, type AskDrivenAssetFormat, type AskDrivenAssetOpts, type AssetKind, type AssetSlotsValidationErr, type AssetSlotsValidationOk, type AssetSlotsValidationResult, type AssetVersion, type AudienceId, BRAND_CONTENT_SLOT_KEYS, BUNDLED_DISPATCH_CHANNELS, BUNDLED_STYLE_PRESETS, BUNDLED_WIDGET_TEMPLATES, type BlueprintData, type BlueprintEdge, type BlueprintFile, type BooleanField, type BrandKit, type BrandKitFonts, type BrandKitLogo, type BrandKitPalette, type BrandKitSnapshot, type BrandKitVoice, type BrandPalette, type BrandThemeConfig, type ChangesSinceOpts, type Channel, type ChannelKind, type ChannelOutput, DEFAULT_ANIMATION_DURATION_SECONDS, DEFAULT_BRAND_KIT_FONTS, DEFAULT_BRAND_KIT_PALETTE, DEFAULT_BRAND_KIT_VOICE, DISPATCH_CHANNEL_BLOG, DISPATCH_CHANNEL_EMAIL, DISPATCH_CHANNEL_HN, DISPATCH_CHANNEL_INSTAGRAM, DISPATCH_CHANNEL_LINKEDIN, DISPATCH_CHANNEL_NEWSLETTER, DISPATCH_CHANNEL_REDDIT, DISPATCH_CHANNEL_SLACK, DISPATCH_CHANNEL_TWEET, type DiffEntry, type DiffResult, type DispatchAudienceContext, type DispatchBrandContext, type DispatchChannel, type DispatchRun, type ExportFormat, FORGE_AUDIENCES, FORGE_BRAND_THEME_ID, FORGE_TEMPLATES, FREE_TIER_WIDGET_IDS, type FileEntry, type ForgeAsset, type ForgeAudience, type ForgeGenerationDryRun, type ForgeGenerationError, type ForgeGenerationGenerated, type ForgeGenerationInput, type ForgeGenerationResult, type ForgeOutput, type ForgePrompt, type ForgeScope, type ForgeSignal, type ForgeStorage, type ForgeSubview, type ForgeTemplate, type ForgeThemeEntry, type FormErrors, type FormField, type FormSpec, type FormSpecOk, type FormSpecRaw, type Format, type GenerationResult, type Intent, type ListOutputsOpts, type LlmMessage, type LlmProvider, type LlmRequest, type LlmResponse, MAX_ANIMATION_DURATION_SECONDS, MIN_ANIMATION_DURATION_SECONDS, type Modality, type NumberField, type ObjectField, type OnboardingDocOpts, type OrchestrationInput, type OrchestrationResult, type OutputStatus, PRISM_TEMPLATES, PRISM_TEMPLATE_ARCHITECTURE_OVERVIEW, PRISM_TEMPLATE_REFACTOR_RATIONALE, PRISM_TEMPLATE_RELEASE_ANNOUNCEMENT, PRISM_TEMPLATE_SHIPPING_DIGEST, PRISM_TEMPLATE_ZONE_DEEPDIVE, type PrismBrandDraft, type PrismContextPrompt, type PrismData, type PrismFocus, type PrismInsight, type PrismRecommendation, type PrismSession, type PrismTemplate, type ProductTruth, type ProductTruthClaim, REFINE_COUNTDOWN_THRESHOLD, REFINE_SESSION_SOFT_CAP, REFINE_SUGGESTIONS, type ReadingLevel, type RefactoringReportOpts, type RefineAssetInput, type RefineAssetResult, type RefineLimitState, type RefineSuggestion, type ReleaseNotesOpts, type RenderWidgetInput, type ResolveBrandPaletteInput, type ResolvedTuple, STYLE_PRESET_BRUTALIST, STYLE_PRESET_DEFAULT, STYLE_PRESET_GLASSY, STYLE_PRESET_MINIMAL, type ScheduleRange, type ScheduledEntry, type ScheduledEntryMetadata, type ScheduledStatus, type SchemaDefinitionErr, type SchemaDefinitionOk, type SchemaDefinitionResult, type ScopeKind, type SignalKind, type StringField, type StyleTokens, TEMPLATE_SCHEMA_EXAMPLES, TEMPLATE_SCHEMA_GENERIC, type TokenUsage, type Tonality, type UrlBrandHints, type ValidationErr, type ValidationOk, type ValidationResult, WIDGET_TEMPLATE_CHANGELOG_ROW, WIDGET_TEMPLATE_CTA_BANNER, WIDGET_TEMPLATE_FEATURE_GRID, WIDGET_TEMPLATE_METRIC_BADGE, WIDGET_TEMPLATE_PRICING_TIER, WIDGET_TEMPLATE_SOCIAL_PROOF, WIDGET_TEMPLATE_STAT_CARD, WIDGET_TEMPLATE_TESTIMONIAL, type WidgetExportFormat, type WidgetInstance, type WidgetInstanceSnapshot, type WidgetKind, type WidgetSlotDef, type WidgetSlotType, type WidgetStyle, type WidgetStyleSnapshot, type WidgetTemplate, type Zone, applyEntryPatch, asAudienceId, assembleBrandUrlExtractionPrompt, assembleForgePrompt, brandThemeConfigToEntry, buildPrismContextPrompt, buildRevertVersion, buildScheduledEntry, buildVersion, cascadingScheduledFor, clampAnimationDuration, computeDiff, defaultBrandKit, defaultValueForField, deriveContextSummary, distill, entryInRange, exportToBufferCsv, exportToHypefuryCsv, exportToICalendar, extractBrandFromPrismBlueprint, extractDependencyHotspots, extractTopChurnFiles, extractZones, generateArchitectureWalkthrough, generateAskDrivenAsset, generateChangesSince, generateOnboardingDoc, generateRefactoringReport, generateReleaseNotes, getDispatchChannel, getPrismTemplate, getSlotValue, getStyleById, getWidgetTemplate, initialFormValues, next7DaysRange, nextVersionNumber, orchestrateDispatch, parseAndValidateSchemaDefinition, parseBrandKitFromLlmResponse, parseBrandThemeContent, parseStyleFromCss, parseStyleFromTailwindConfig, parseStyleFromTokensJson, parseThemeConfigContent, previewExport, readBlueprintData, readBlueprintFromTarget, readPrismDirectory, refineAsset, refineLimitState, renderWidget, resolveAnimatedChoice, resolveAnimationDuration, resolveBrandPalette, runForgeGeneration, scanForSecrets, schemaExampleFor, schemaToForm, templateAnimatedDefault, themeEntryToPalette, tryParseJsonObject, validateAgainstTemplateSchema, validateAssetSlots, validateFormValues, validateSchemaDefinition };
1332
+ export { type ADRDocument, type ADROutput, ANIMATION_DURATION_PRESETS, type AdrContext, type Arc42Document, type Arc42Options, type Arc42Section, type ArchitectureWalkthroughOpts, type ArrayField, type AskDrivenAssetFormat, type AskDrivenAssetOpts, type AssetKind, type AssetSlotsValidationErr, type AssetSlotsValidationOk, type AssetSlotsValidationResult, type AssetVersion, type AudienceId, BRAND_CONTENT_SLOT_KEYS, BUNDLED_DISPATCH_CHANNELS, BUNDLED_STYLE_PRESETS, BUNDLED_WIDGET_TEMPLATES, type BlueprintData, type BlueprintEdge, type BlueprintFile, type BooleanField, type BrandKit, type BrandKitFonts, type BrandKitLogo, type BrandKitPalette, type BrandKitSnapshot, type BrandKitVoice, type BrandPalette, type BrandThemeConfig, type ChangesSinceOpts, type Channel, type ChannelKind, type ChannelOutput, type ComplianceCapabilityRecord, type ComplianceContext, type ComplianceDocOutput, type ComplianceFramework, type ComplianceSection, DEFAULT_ANIMATION_DURATION_SECONDS, DEFAULT_BRAND_KIT_FONTS, DEFAULT_BRAND_KIT_PALETTE, DEFAULT_BRAND_KIT_VOICE, DISPATCH_CHANNEL_BLOG, DISPATCH_CHANNEL_EMAIL, DISPATCH_CHANNEL_HN, DISPATCH_CHANNEL_INSTAGRAM, DISPATCH_CHANNEL_LINKEDIN, DISPATCH_CHANNEL_NEWSLETTER, DISPATCH_CHANNEL_REDDIT, DISPATCH_CHANNEL_SLACK, DISPATCH_CHANNEL_TWEET, type DiffEntry, type DiffResult, type DispatchAudienceContext, type DispatchBrandContext, type DispatchChannel, type DispatchRun, type ExportFormat, FORGE_AUDIENCES, FORGE_BRAND_THEME_ID, FORGE_TEMPLATES, FREE_TIER_WIDGET_IDS, type FileEntry, type ForgeAsset, type ForgeAudience, type ForgeGenerationDryRun, type ForgeGenerationError, type ForgeGenerationGenerated, type ForgeGenerationInput, type ForgeGenerationResult, type ForgeOutput, type ForgePrompt, type ForgeScope, type ForgeSignal, type ForgeStorage, type ForgeSubview, type ForgeTemplate, type ForgeThemeEntry, type FormErrors, type FormField, type FormSpec, type FormSpecOk, type FormSpecRaw, type Format, type GenerateADROpts, type GenerateComplianceDocOpts, type GenerateNewsletterOpts, type GeneratePresentationOpts, type GenerateSprintRetroOpts, type GenerationResult, type GitRangeContext, type Intent, type KnowledgeCaptureOptions, type KnowledgeCaptureResult, type KnowledgeCaptureSection, type ListOutputsOpts, type LlmMessage, type LlmProvider, type LlmRequest, type LlmResponse, MAX_ANIMATION_DURATION_SECONDS, MIN_ANIMATION_DURATION_SECONDS, type Modality, type NewsletterOutput, type NumberField, type ObjectField, type OnboardingDocOpts, type OrchestrationInput, type OrchestrationResult, type OutputStatus, PRISM_TEMPLATES, PRISM_TEMPLATE_ARCHITECTURE_OVERVIEW, PRISM_TEMPLATE_REFACTOR_RATIONALE, PRISM_TEMPLATE_RELEASE_ANNOUNCEMENT, PRISM_TEMPLATE_SHIPPING_DIGEST, PRISM_TEMPLATE_ZONE_DEEPDIVE, type PresentationOutput, type PresentationSlide, type PresentationSlideType, type PrismBrandDraft, type PrismContextPrompt, type PrismData, type PrismFocus, type PrismInsight, type PrismRecommendation, type PrismSession, type PrismTemplate, type ProductTruth, type ProductTruthClaim, REFINE_COUNTDOWN_THRESHOLD, REFINE_SESSION_SOFT_CAP, REFINE_SUGGESTIONS, type RadioOptions, type RadioResult, type ReadingLevel, type RefactoringReportOpts, type RefineAssetInput, type RefineAssetResult, type RefineLimitState, type RefineSuggestion, type ReleaseNotesOpts, type RenderWidgetInput, type ResolveBrandPaletteInput, type ResolvedTuple, STYLE_PRESET_BRUTALIST, STYLE_PRESET_DEFAULT, STYLE_PRESET_GLASSY, STYLE_PRESET_MINIMAL, type ScheduleRange, type ScheduledEntry, type ScheduledEntryMetadata, type ScheduledStatus, type SchemaDefinitionErr, type SchemaDefinitionOk, type SchemaDefinitionResult, type ScopeKind, type SignalKind, type SprintRetroOutput, type StringField, type StyleTokens, TEMPLATE_SCHEMA_EXAMPLES, TEMPLATE_SCHEMA_GENERIC, type TokenUsage, type Tonality, type UrlBrandHints, type ValidationErr, type ValidationOk, type ValidationResult, WIDGET_TEMPLATE_CHANGELOG_ROW, WIDGET_TEMPLATE_CTA_BANNER, WIDGET_TEMPLATE_FEATURE_GRID, WIDGET_TEMPLATE_METRIC_BADGE, WIDGET_TEMPLATE_PRICING_TIER, WIDGET_TEMPLATE_SOCIAL_PROOF, WIDGET_TEMPLATE_STAT_CARD, WIDGET_TEMPLATE_TESTIMONIAL, type WeeklyDigestContext, type WidgetExportFormat, type WidgetInstance, type WidgetInstanceSnapshot, type WidgetKind, type WidgetSlotDef, type WidgetSlotType, type WidgetStyle, type WidgetStyleSnapshot, type WidgetTemplate, type Zone, applyEntryPatch, asAudienceId, assembleBrandUrlExtractionPrompt, assembleForgePrompt, brandThemeConfigToEntry, buildRevertVersion, buildScheduledEntry, buildVersion, cascadingScheduledFor, clampAnimationDuration, computeDiff, defaultBrandKit, defaultValueForField, distill, entryInRange, exportToBufferCsv, exportToHypefuryCsv, exportToICalendar, generateADR, generateArc42, generateArchitectureWalkthrough, generateAskDrivenAsset, generateChangesSince, generateComplianceDoc, generateKnowledgeCapture, generateNewsletter, generateOnboardingDoc, generatePresentation, generateRadio, generateRefactoringReport, generateReleaseNotes, generateSprintRetro, getDispatchChannel, getPrismTemplate, getSlotValue, getStyleById, getWidgetTemplate, initialFormValues, next7DaysRange, nextVersionNumber, orchestrateDispatch, parseAndValidateSchemaDefinition, parseBrandKitFromLlmResponse, parseBrandThemeContent, parseStyleFromCss, parseStyleFromTailwindConfig, parseStyleFromTokensJson, parseThemeConfigContent, previewExport, refineAsset, refineLimitState, renderWidget, resolveAnimatedChoice, resolveAnimationDuration, resolveBrandPalette, runForgeGeneration, scanForSecrets, schemaExampleFor, schemaToForm, templateAnimatedDefault, themeEntryToPalette, tryParseJsonObject, validateAgainstTemplateSchema, validateAssetSlots, validateFormValues, validateSchemaDefinition };