forgesmith 0.6.1 → 0.7.1
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.cjs +3531 -133
- package/dist/index.d.cts +625 -10
- package/dist/index.d.ts +625 -10
- package/dist/index.mjs +3521 -134
- package/dist/server.cjs +3902 -171
- package/dist/server.d.cts +655 -14
- package/dist/server.d.ts +655 -14
- package/dist/server.mjs +3885 -168
- package/package.json +1 -1
package/dist/server.d.cts
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?: "
|
|
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?: "
|
|
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?: "
|
|
78
|
+
tone?: "professional" | "casual" | "technical" | "executive";
|
|
79
79
|
length?: "short" | "medium" | "long";
|
|
80
80
|
format?: "markdown" | "plain";
|
|
81
81
|
}
|
|
@@ -97,6 +97,61 @@ interface GenerationResult {
|
|
|
97
97
|
declare function readPrismDirectory(prismPath: string): Promise<PrismData>;
|
|
98
98
|
declare function readBlueprintData(targetPath: string): Promise<BlueprintData | null>;
|
|
99
99
|
|
|
100
|
+
interface AmberCapabilityContext {
|
|
101
|
+
id: string;
|
|
102
|
+
name: string;
|
|
103
|
+
criticality: "critical" | "high" | "medium" | "low";
|
|
104
|
+
lifecycle: "active" | "experimental" | "deprecated" | "sunset";
|
|
105
|
+
description?: string;
|
|
106
|
+
/** Files tagged with this capability in state.json */
|
|
107
|
+
files: string[];
|
|
108
|
+
/** Files tagged with this capability that have no doc_hash (outdated @amber-doc) */
|
|
109
|
+
driftCount: number;
|
|
110
|
+
/** Whether any file in this capability's set has a doc_hash (proxy for test coverage) */
|
|
111
|
+
hasTests: boolean;
|
|
112
|
+
}
|
|
113
|
+
interface AmberLayerContext {
|
|
114
|
+
capabilities: AmberCapabilityContext[];
|
|
115
|
+
totalFiles: number;
|
|
116
|
+
taggedFiles: number;
|
|
117
|
+
taggedPercent: number;
|
|
118
|
+
driftedCapabilities: number;
|
|
119
|
+
orphanedFiles: string[];
|
|
120
|
+
/** Human-readable summary for prompt injection */
|
|
121
|
+
summary: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Read the AMBER layer from a target project's .amber/ directory.
|
|
125
|
+
* Returns null when no .amber/ directory exists — callers degrade cleanly.
|
|
126
|
+
*/
|
|
127
|
+
declare function readAmberLayer(targetPath: string): Promise<AmberLayerContext | null>;
|
|
128
|
+
|
|
129
|
+
interface GreenInsightContext {
|
|
130
|
+
id: string;
|
|
131
|
+
title: string;
|
|
132
|
+
body: string;
|
|
133
|
+
category: string;
|
|
134
|
+
severity?: string;
|
|
135
|
+
}
|
|
136
|
+
interface GreenLayerContext {
|
|
137
|
+
insights: GreenInsightContext[];
|
|
138
|
+
coherenceScore: number | null;
|
|
139
|
+
coherenceGrade: string | null;
|
|
140
|
+
topRisks: Array<{
|
|
141
|
+
capabilityId: string;
|
|
142
|
+
name: string;
|
|
143
|
+
reason: string;
|
|
144
|
+
impact: number;
|
|
145
|
+
}>;
|
|
146
|
+
/** Human-readable summary for prompt injection */
|
|
147
|
+
summary: string;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Read the GREEN layer from a target project's .prism/green/ directory.
|
|
151
|
+
* Returns null when the directory does not exist — callers degrade cleanly.
|
|
152
|
+
*/
|
|
153
|
+
declare function readGreenLayer(targetPath: string): Promise<GreenLayerContext | null>;
|
|
154
|
+
|
|
100
155
|
type ScopeKind = "framework" | "app" | "tenant";
|
|
101
156
|
type SignalKind = "brief" | "knowledge_ref" | "git_range" | "app_feature_ref" | "business_capability_ref" | "amber_capability_ref" | "platform_walkthrough" | "green_insight_ref";
|
|
102
157
|
type Channel = "heise" | "connect" | "linkedin" | "instagram" | "landing" | "onepager" | "internal" | "email" | "deck" | "x" | "product_hunt" | "presentation";
|
|
@@ -200,10 +255,26 @@ interface FileEntry {
|
|
|
200
255
|
declare function scanForSecrets(text: string): boolean;
|
|
201
256
|
|
|
202
257
|
/**
|
|
203
|
-
*
|
|
204
|
-
*
|
|
205
|
-
*
|
|
206
|
-
*
|
|
258
|
+
* Converts a prismlens `blueprint.json` (prism0x2A on-disk format) into the
|
|
259
|
+
* canonical `BlueprintData` shape used by forgesmith's generators and UI.
|
|
260
|
+
*
|
|
261
|
+
* Mapping:
|
|
262
|
+
* prismlens.nodes[] → BlueprintData.files[]
|
|
263
|
+
* prismlens.edges[] → BlueprintData.edges[] (source/target → from/to)
|
|
264
|
+
* prismlens.summary.fileCount → BlueprintData.stats.totalFiles
|
|
265
|
+
* prismlens.summary.runtimeInternalDependencyCount → BlueprintData.stats.runtimeEdges
|
|
266
|
+
* prismlens.summary.*Count → BlueprintData.categories
|
|
267
|
+
* prismlens.heatmap / mostImportedFiles → importedByCount approximation on files
|
|
268
|
+
*/
|
|
269
|
+
declare function normalizePrismlensBlueprint(raw: unknown, targetPath?: string): BlueprintData;
|
|
270
|
+
/**
|
|
271
|
+
* Reads a blueprint from the target project and returns a canonical BlueprintData.
|
|
272
|
+
*
|
|
273
|
+
* Resolution order:
|
|
274
|
+
* 1. {targetPath}/.prism/blueprint/snapshot.json — native BlueprintData shape; no conversion needed
|
|
275
|
+
* 2. {targetPath}/.prism/blueprint.json — prismlens shape; normalized via normalizePrismlensBlueprint()
|
|
276
|
+
*
|
|
277
|
+
* Returns null if neither file exists, if the path is unsafe, or if JSON is malformed.
|
|
207
278
|
*/
|
|
208
279
|
declare function readBlueprintFromTarget(targetPath: string): BlueprintData | null;
|
|
209
280
|
|
|
@@ -340,21 +411,581 @@ interface LlmProvider {
|
|
|
340
411
|
complete(request: LlmRequest): Promise<LlmResponse>;
|
|
341
412
|
}
|
|
342
413
|
|
|
343
|
-
declare function generateReleaseNotes(data: PrismData, opts: ReleaseNotesOpts, provider: LlmProvider): Promise<GenerationResult>;
|
|
414
|
+
declare function generateReleaseNotes(data: PrismData, opts: ReleaseNotesOpts, provider: LlmProvider, amberContext?: AmberLayerContext, greenContext?: GreenLayerContext): Promise<GenerationResult>;
|
|
344
415
|
|
|
345
|
-
declare function generateArchitectureWalkthrough(blueprint: BlueprintData | null, opts: ArchitectureWalkthroughOpts, provider: LlmProvider): Promise<GenerationResult>;
|
|
416
|
+
declare function generateArchitectureWalkthrough(blueprint: BlueprintData | null, opts: ArchitectureWalkthroughOpts, provider: LlmProvider, amberContext?: AmberLayerContext): Promise<GenerationResult>;
|
|
346
417
|
|
|
347
418
|
declare function generateChangesSince(current: BlueprintData | null, previous: BlueprintData | null, opts: ChangesSinceOpts, provider: LlmProvider): Promise<GenerationResult>;
|
|
348
419
|
|
|
349
420
|
declare function generateOnboardingDoc(blueprint: BlueprintData | null, opts: OnboardingDocOpts, provider: LlmProvider): Promise<GenerationResult>;
|
|
350
421
|
|
|
351
|
-
declare function generateRefactoringReport(blueprint: BlueprintData | null, opts: RefactoringReportOpts, provider: LlmProvider): Promise<GenerationResult>;
|
|
422
|
+
declare function generateRefactoringReport(blueprint: BlueprintData | null, opts: RefactoringReportOpts, provider: LlmProvider, amberContext?: AmberLayerContext, greenContext?: GreenLayerContext): Promise<GenerationResult>;
|
|
352
423
|
|
|
353
424
|
declare function generateAskDrivenAsset(blueprint: BlueprintData | null, question: string, opts: AskDrivenAssetOpts, provider: LlmProvider): Promise<GenerationResult>;
|
|
354
425
|
|
|
355
|
-
type
|
|
426
|
+
type PresentationSlideType = "title" | "executive" | "architecture" | "capabilities" | "health" | "risks" | "recommendations" | "metrics" | "closing";
|
|
427
|
+
interface PresentationSlide {
|
|
428
|
+
type: PresentationSlideType;
|
|
429
|
+
title: string;
|
|
430
|
+
subtitle?: string;
|
|
431
|
+
bullets?: string[];
|
|
432
|
+
highlight?: string;
|
|
433
|
+
highlightLabel?: string;
|
|
434
|
+
speakerNotes?: string;
|
|
435
|
+
visualHint?: string;
|
|
436
|
+
}
|
|
437
|
+
interface PresentationOutput {
|
|
438
|
+
title: string;
|
|
439
|
+
subtitle: string;
|
|
440
|
+
slideCount: number;
|
|
441
|
+
slides: PresentationSlide[];
|
|
442
|
+
theme: "dark" | "light" | "corporate";
|
|
443
|
+
generatedAt: string;
|
|
444
|
+
}
|
|
445
|
+
interface GeneratePresentationOpts {
|
|
446
|
+
blueprint: BlueprintData;
|
|
447
|
+
audience: "technical" | "executive" | "mixed";
|
|
448
|
+
slideCount: 5 | 8 | 10 | 12;
|
|
449
|
+
theme: "dark" | "light" | "corporate";
|
|
450
|
+
focusArea?: "architecture" | "health" | "risks" | "all";
|
|
451
|
+
tone: "professional" | "casual" | "executive";
|
|
452
|
+
projectName?: string;
|
|
453
|
+
llm: LlmProvider;
|
|
454
|
+
}
|
|
455
|
+
declare function generatePresentation(opts: GeneratePresentationOpts): Promise<PresentationOutput>;
|
|
456
|
+
|
|
457
|
+
type ComplianceFramework = "SOX" | "ISO27001" | "GDPR" | "SOC2" | "CUSTOM";
|
|
458
|
+
interface ComplianceCapabilityRecord {
|
|
459
|
+
id: string;
|
|
460
|
+
name: string;
|
|
461
|
+
criticality: "critical" | "high" | "medium" | "low";
|
|
462
|
+
lifecycle: "active" | "experimental" | "deprecated" | "sunset";
|
|
463
|
+
files: string[];
|
|
464
|
+
testCoverage: boolean;
|
|
465
|
+
driftCount: number;
|
|
466
|
+
description?: string;
|
|
467
|
+
dataProcessing?: boolean;
|
|
468
|
+
accessControl?: boolean;
|
|
469
|
+
auditTrail?: boolean;
|
|
470
|
+
}
|
|
471
|
+
interface ComplianceContext {
|
|
472
|
+
framework: string;
|
|
473
|
+
projectName: string;
|
|
474
|
+
generatedAt: string;
|
|
475
|
+
totalCapabilities: number;
|
|
476
|
+
criticalCapabilities: ComplianceCapabilityRecord[];
|
|
477
|
+
riskSummary: {
|
|
478
|
+
high: number;
|
|
479
|
+
medium: number;
|
|
480
|
+
low: number;
|
|
481
|
+
};
|
|
482
|
+
sox?: {
|
|
483
|
+
financialCapabilities: string[];
|
|
484
|
+
accessControlled: string[];
|
|
485
|
+
};
|
|
486
|
+
gdpr?: {
|
|
487
|
+
dataProcessingCapabilities: string[];
|
|
488
|
+
retentionCapabilities: string[];
|
|
489
|
+
};
|
|
490
|
+
iso27001?: {
|
|
491
|
+
informationAssets: string[];
|
|
492
|
+
securityControls: string[];
|
|
493
|
+
};
|
|
494
|
+
soc2?: {
|
|
495
|
+
securityCapabilities: string[];
|
|
496
|
+
availabilityCapabilities: string[];
|
|
497
|
+
};
|
|
498
|
+
}
|
|
499
|
+
interface GenerateComplianceDocOpts {
|
|
500
|
+
blueprint: BlueprintData;
|
|
501
|
+
amberContext?: AmberLayerContext;
|
|
502
|
+
complianceContext?: ComplianceContext;
|
|
503
|
+
framework: ComplianceFramework;
|
|
504
|
+
customFramework?: string;
|
|
505
|
+
projectName: string;
|
|
506
|
+
organizationName?: string;
|
|
507
|
+
tone: "formal" | "technical" | "executive";
|
|
508
|
+
includeRecommendations: boolean;
|
|
509
|
+
llm: LlmProvider;
|
|
510
|
+
}
|
|
511
|
+
interface ComplianceSection {
|
|
512
|
+
title: string;
|
|
513
|
+
content: string;
|
|
514
|
+
capabilities: string[];
|
|
515
|
+
riskLevel?: "high" | "medium" | "low";
|
|
516
|
+
status?: "compliant" | "partial" | "gap";
|
|
517
|
+
}
|
|
518
|
+
interface ComplianceDocOutput {
|
|
519
|
+
framework: ComplianceFramework;
|
|
520
|
+
documentTitle: string;
|
|
521
|
+
sections: ComplianceSection[];
|
|
522
|
+
executiveSummary: string;
|
|
523
|
+
complianceGaps: string[];
|
|
524
|
+
recommendations: string[];
|
|
525
|
+
generatedAt: string;
|
|
526
|
+
confidentiality: "INTERNAL" | "CONFIDENTIAL" | "PUBLIC";
|
|
527
|
+
}
|
|
528
|
+
declare function generateComplianceDoc(opts: GenerateComplianceDocOpts): Promise<ComplianceDocOutput>;
|
|
529
|
+
|
|
530
|
+
interface AdrContext {
|
|
531
|
+
importCycles: Array<{
|
|
532
|
+
files: string[];
|
|
533
|
+
severity: "tight" | "chain" | "web";
|
|
534
|
+
}>;
|
|
535
|
+
capabilityBoundaries: Array<{
|
|
536
|
+
from: string;
|
|
537
|
+
to: string;
|
|
538
|
+
edgeCount: number;
|
|
539
|
+
}>;
|
|
540
|
+
highChurnFiles: Array<{
|
|
541
|
+
path: string;
|
|
542
|
+
commits: number;
|
|
543
|
+
capabilities: string[];
|
|
544
|
+
}>;
|
|
545
|
+
orphanedFiles: string[];
|
|
546
|
+
coherenceScore: number | null;
|
|
547
|
+
topRisks: Array<{
|
|
548
|
+
capabilityId: string;
|
|
549
|
+
name: string;
|
|
550
|
+
reason: string;
|
|
551
|
+
}>;
|
|
552
|
+
architecturalPatterns: string[];
|
|
553
|
+
}
|
|
554
|
+
interface GenerateADROpts {
|
|
555
|
+
blueprint: BlueprintData;
|
|
556
|
+
amberContext?: AmberLayerContext;
|
|
557
|
+
adrContext?: AdrContext;
|
|
558
|
+
focus: "cycles" | "capabilities" | "dependencies" | "overall";
|
|
559
|
+
selectedCycle?: string[];
|
|
560
|
+
selectedCapability?: string;
|
|
561
|
+
projectName: string;
|
|
562
|
+
llm: LlmProvider;
|
|
563
|
+
}
|
|
564
|
+
interface ADRDocument {
|
|
565
|
+
id: string;
|
|
566
|
+
title: string;
|
|
567
|
+
date: string;
|
|
568
|
+
status: "Proposed" | "Accepted" | "Deprecated" | "Superseded";
|
|
569
|
+
context: string;
|
|
570
|
+
decision: string;
|
|
571
|
+
consequences: {
|
|
572
|
+
positive: string[];
|
|
573
|
+
negative: string[];
|
|
574
|
+
neutral: string[];
|
|
575
|
+
};
|
|
576
|
+
alternatives: string[];
|
|
577
|
+
relatedCapabilities: string[];
|
|
578
|
+
relatedFiles: string[];
|
|
579
|
+
}
|
|
580
|
+
interface ADROutput {
|
|
581
|
+
adrs: ADRDocument[];
|
|
582
|
+
summary: string;
|
|
583
|
+
technicalDebt: string;
|
|
584
|
+
}
|
|
585
|
+
declare function generateADR(opts: GenerateADROpts): Promise<ADROutput>;
|
|
586
|
+
|
|
587
|
+
interface GitRangeContext$1 {
|
|
588
|
+
commits: Array<{
|
|
589
|
+
hash: string;
|
|
590
|
+
subject: string;
|
|
591
|
+
author?: string;
|
|
592
|
+
date?: string;
|
|
593
|
+
files?: string[];
|
|
594
|
+
}>;
|
|
595
|
+
fromRef: string;
|
|
596
|
+
toRef: string;
|
|
597
|
+
filesChanged: number;
|
|
598
|
+
}
|
|
599
|
+
interface GenerateSprintRetroOpts {
|
|
600
|
+
gitContext?: GitRangeContext$1;
|
|
601
|
+
amberContext?: AmberLayerContext;
|
|
602
|
+
greenContext?: GreenLayerContext;
|
|
603
|
+
scoreBefore?: number;
|
|
604
|
+
scoreAfter?: number;
|
|
605
|
+
sprintName?: string;
|
|
606
|
+
teamSize?: number;
|
|
607
|
+
projectName: string;
|
|
608
|
+
tone: "professional" | "casual" | "team-friendly";
|
|
609
|
+
llm: LlmProvider;
|
|
610
|
+
}
|
|
611
|
+
interface SprintRetroOutput {
|
|
612
|
+
sprintName: string;
|
|
613
|
+
period: string;
|
|
614
|
+
summary: string;
|
|
615
|
+
delivered: Array<{
|
|
616
|
+
item: string;
|
|
617
|
+
capability?: string;
|
|
618
|
+
type: "feature" | "fix" | "refactor" | "chore";
|
|
619
|
+
}>;
|
|
620
|
+
healthDelta: {
|
|
621
|
+
scoreBefore: number | null;
|
|
622
|
+
scoreAfter: number | null;
|
|
623
|
+
delta: number | null;
|
|
624
|
+
verdict: "improved" | "stable" | "degraded";
|
|
625
|
+
degradedCapabilities: string[];
|
|
626
|
+
};
|
|
627
|
+
wentWell: string[];
|
|
628
|
+
improvements: string[];
|
|
629
|
+
puzzles: string[];
|
|
630
|
+
actions: string[];
|
|
631
|
+
debtIncurred: string[];
|
|
632
|
+
slideTitle: string;
|
|
633
|
+
slidePoints: string[];
|
|
634
|
+
}
|
|
635
|
+
declare function generateSprintRetro(opts: GenerateSprintRetroOpts): Promise<SprintRetroOutput>;
|
|
636
|
+
|
|
637
|
+
/**
|
|
638
|
+
* WeeklyDigestContext — shared type for the 7-day engineering digest.
|
|
639
|
+
*
|
|
640
|
+
* Produced by PRISM's /api/green/weekly-digest route and consumed by the
|
|
641
|
+
* generateNewsletter generator. Kept here as a pure type module so that
|
|
642
|
+
* both the generator and the dashboard API route can import it without
|
|
643
|
+
* a circular dependency.
|
|
644
|
+
*/
|
|
645
|
+
interface WeeklyDigestContext {
|
|
646
|
+
/** Human-readable period, e.g. "May 13–20, 2026" */
|
|
647
|
+
period: string;
|
|
648
|
+
/** Total commits in the window */
|
|
649
|
+
commitCount: number;
|
|
650
|
+
/** Total files touched (from git diff) */
|
|
651
|
+
filesChanged: number;
|
|
652
|
+
/** Coherence score at the start of the window */
|
|
653
|
+
scoreStart: number | null;
|
|
654
|
+
/** Coherence score at the end of the window */
|
|
655
|
+
scoreEnd: number | null;
|
|
656
|
+
/** scoreEnd - scoreStart (null if either is missing) */
|
|
657
|
+
scoreDelta: number | null;
|
|
658
|
+
/** Architecture grade letter, e.g. "A", "B+" */
|
|
659
|
+
grade: string | null;
|
|
660
|
+
/** Capabilities that newly drifted (doc hash mismatch) */
|
|
661
|
+
newDrifts: string[];
|
|
662
|
+
/** Capabilities where drift was resolved */
|
|
663
|
+
resolvedDrifts: string[];
|
|
664
|
+
/** New critical-severity risks from GREEN predictions */
|
|
665
|
+
newRisks: string[];
|
|
666
|
+
/** Top 5 commit subjects (non-technical filter applied) */
|
|
667
|
+
topCommits: string[];
|
|
668
|
+
/** Short human-readable health summary sentence */
|
|
669
|
+
healthSummary: string;
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
interface GenerateNewsletterOpts {
|
|
673
|
+
digestContext: WeeklyDigestContext;
|
|
674
|
+
amberContext?: AmberLayerContext;
|
|
675
|
+
targetAudience: "product-team" | "management" | "stakeholders" | "all-hands";
|
|
676
|
+
tone: "professional" | "casual" | "accessible";
|
|
677
|
+
includeMetrics: boolean;
|
|
678
|
+
projectName: string;
|
|
679
|
+
teamName?: string;
|
|
680
|
+
llm: LlmProvider;
|
|
681
|
+
}
|
|
682
|
+
interface NewsletterSection {
|
|
683
|
+
heading: string;
|
|
684
|
+
body: string;
|
|
685
|
+
type: "highlight" | "metrics" | "risk" | "shoutout" | "upcoming";
|
|
686
|
+
}
|
|
687
|
+
interface NewsletterMetric {
|
|
688
|
+
label: string;
|
|
689
|
+
value: string;
|
|
690
|
+
trend: "up" | "down" | "stable";
|
|
691
|
+
}
|
|
692
|
+
interface NewsletterOutput {
|
|
693
|
+
subject: string;
|
|
694
|
+
preview: string;
|
|
695
|
+
greeting: string;
|
|
696
|
+
headline: string;
|
|
697
|
+
sections: NewsletterSection[];
|
|
698
|
+
metrics: NewsletterMetric[];
|
|
699
|
+
closing: string;
|
|
700
|
+
unsubscribeNote: string;
|
|
701
|
+
slackVersion: string;
|
|
702
|
+
teamsVersion: string;
|
|
703
|
+
htmlVersion: string;
|
|
704
|
+
}
|
|
705
|
+
declare function generateNewsletter(opts: GenerateNewsletterOpts): Promise<NewsletterOutput>;
|
|
706
|
+
|
|
707
|
+
interface RadioOptions {
|
|
708
|
+
digestContext: WeeklyDigestContext;
|
|
709
|
+
amberContext?: AmberLayerContext;
|
|
710
|
+
audience: "technical" | "executive";
|
|
711
|
+
projectName: string;
|
|
712
|
+
llm: LlmProvider;
|
|
713
|
+
}
|
|
714
|
+
interface RadioResult {
|
|
715
|
+
headline: string;
|
|
716
|
+
slackVersion: string;
|
|
717
|
+
emailVersion: string;
|
|
718
|
+
twitterVersion: string;
|
|
719
|
+
}
|
|
720
|
+
declare function generateRadio(options: RadioOptions): Promise<RadioResult>;
|
|
721
|
+
|
|
722
|
+
/**
|
|
723
|
+
* arc42 Documentation Generator
|
|
724
|
+
*
|
|
725
|
+
* Generates complete arc42 architecture documentation.
|
|
726
|
+
*
|
|
727
|
+
* arc42 is published under Creative Commons Attribution 4.0 International.
|
|
728
|
+
* Required attribution: arc42 template © arc42.org, CC-BY 4.0
|
|
729
|
+
* See: https://arc42.org/license
|
|
730
|
+
*
|
|
731
|
+
* This module generates content for all 12 arc42 sections using a mix of:
|
|
732
|
+
* - PRISM data (no LLM needed) → sections 5, 9, 10, 11, 12
|
|
733
|
+
* - LLM generation → sections 1, 3, 4, 8
|
|
734
|
+
* - Template with placeholders → sections 2, 6, 7
|
|
735
|
+
*/
|
|
736
|
+
|
|
737
|
+
interface Arc42Options {
|
|
738
|
+
digestContext: WeeklyDigestContext;
|
|
739
|
+
amberContext?: AmberLayerContext;
|
|
740
|
+
projectName: string;
|
|
741
|
+
projectDescription?: string;
|
|
742
|
+
teamSize?: number;
|
|
743
|
+
techStack?: string[];
|
|
744
|
+
llm: LlmProvider;
|
|
745
|
+
}
|
|
746
|
+
interface Arc42Section {
|
|
747
|
+
number: number;
|
|
748
|
+
title: string;
|
|
749
|
+
content: string;
|
|
750
|
+
dataSource: "prism" | "llm" | "template";
|
|
751
|
+
}
|
|
752
|
+
interface Arc42Document {
|
|
753
|
+
sections: Arc42Section[];
|
|
754
|
+
fullMarkdown: string;
|
|
755
|
+
attribution: string;
|
|
756
|
+
generatedAt: string;
|
|
757
|
+
}
|
|
758
|
+
declare function generateArc42(opts: Arc42Options): Promise<Arc42Document>;
|
|
759
|
+
|
|
760
|
+
interface KnowledgeCaptureOptions {
|
|
761
|
+
departingDeveloper?: string;
|
|
762
|
+
focusCapabilities?: string[];
|
|
763
|
+
digestContext: WeeklyDigestContext;
|
|
764
|
+
amberContext?: AmberLayerContext;
|
|
765
|
+
projectName: string;
|
|
766
|
+
llm: LlmProvider;
|
|
767
|
+
}
|
|
768
|
+
interface KnowledgeCaptureSection {
|
|
769
|
+
title: string;
|
|
770
|
+
content: string;
|
|
771
|
+
}
|
|
772
|
+
interface KnowledgeCaptureResult {
|
|
773
|
+
markdownDoc: string;
|
|
774
|
+
sections: KnowledgeCaptureSection[];
|
|
775
|
+
criticalKnowledge: string[];
|
|
776
|
+
onboardingChecklist: string[];
|
|
777
|
+
}
|
|
778
|
+
declare function generateKnowledgeCapture(options: KnowledgeCaptureOptions): Promise<KnowledgeCaptureResult>;
|
|
779
|
+
|
|
780
|
+
/**
|
|
781
|
+
* generateApiChangelog
|
|
782
|
+
*
|
|
783
|
+
* Generates a consumer-specific API changelog from detected API file changes.
|
|
784
|
+
* Supports three output formats: changelog, migration-guide, and release-notes.
|
|
785
|
+
* Audience-aware: internal / external / partner tone control.
|
|
786
|
+
*/
|
|
787
|
+
|
|
788
|
+
interface ApiChange {
|
|
789
|
+
endpoint: string;
|
|
790
|
+
changeType: "added" | "removed" | "modified" | "breaking";
|
|
791
|
+
file: string;
|
|
792
|
+
capability?: string;
|
|
793
|
+
capabilityName?: string;
|
|
794
|
+
description?: string;
|
|
795
|
+
}
|
|
796
|
+
interface ApiChangeContext {
|
|
797
|
+
from: string;
|
|
798
|
+
to: string;
|
|
799
|
+
changes: ApiChange[];
|
|
800
|
+
breakingChanges: ApiChange[];
|
|
801
|
+
newEndpoints: ApiChange[];
|
|
802
|
+
removedEndpoints: ApiChange[];
|
|
803
|
+
totalChanged: number;
|
|
804
|
+
}
|
|
805
|
+
interface GenerateApiChangelogOpts {
|
|
806
|
+
apiChangeContext: ApiChangeContext;
|
|
807
|
+
amberContext?: AmberLayerContext;
|
|
808
|
+
gitContext?: {
|
|
809
|
+
from: string;
|
|
810
|
+
to: string;
|
|
811
|
+
commitCount: number;
|
|
812
|
+
commitMessages: string[];
|
|
813
|
+
};
|
|
814
|
+
targetAudience: "internal" | "external" | "partner";
|
|
815
|
+
format: "changelog" | "migration-guide" | "release-notes";
|
|
816
|
+
projectName: string;
|
|
817
|
+
version?: string;
|
|
818
|
+
llm: LlmProvider;
|
|
819
|
+
}
|
|
820
|
+
interface ApiChangelogOutput {
|
|
821
|
+
version: string;
|
|
822
|
+
date: string;
|
|
823
|
+
targetAudience: string;
|
|
824
|
+
breakingChanges: Array<{
|
|
825
|
+
endpoint: string;
|
|
826
|
+
description: string;
|
|
827
|
+
migration: string;
|
|
828
|
+
}>;
|
|
829
|
+
newFeatures: Array<{
|
|
830
|
+
endpoint: string;
|
|
831
|
+
description: string;
|
|
832
|
+
example?: string;
|
|
833
|
+
}>;
|
|
834
|
+
improvements: Array<{
|
|
835
|
+
endpoint: string;
|
|
836
|
+
description: string;
|
|
837
|
+
}>;
|
|
838
|
+
deprecations: Array<{
|
|
839
|
+
endpoint: string;
|
|
840
|
+
description: string;
|
|
841
|
+
sunset?: string;
|
|
842
|
+
}>;
|
|
843
|
+
migrationGuide: string;
|
|
844
|
+
consumerImpactSummary: string;
|
|
845
|
+
}
|
|
846
|
+
declare function generateApiChangelog(opts: GenerateApiChangelogOpts): Promise<ApiChangelogOutput>;
|
|
847
|
+
|
|
848
|
+
/**
|
|
849
|
+
* generateChangeImpactBrief
|
|
850
|
+
*
|
|
851
|
+
* Generates an executive-ready 2-page change impact brief for CTO / CAB sign-off.
|
|
852
|
+
* Consumes ChangeImpactContext from PRISM, optionally enriched with AMBER and GREEN
|
|
853
|
+
* layer data from forgesmith readers.
|
|
854
|
+
*/
|
|
855
|
+
|
|
856
|
+
/** Minimal git range context — populated by callers from git log. */
|
|
857
|
+
interface GitRangeContext {
|
|
858
|
+
from: string;
|
|
859
|
+
to: string;
|
|
860
|
+
commitCount: number;
|
|
861
|
+
commitMessages: string[];
|
|
862
|
+
breakingChanges: string[];
|
|
863
|
+
}
|
|
864
|
+
/** Shape returned by PRISM /api/green/change-impact */
|
|
865
|
+
interface ChangeImpactContext {
|
|
866
|
+
from: string;
|
|
867
|
+
to: string;
|
|
868
|
+
commitCount: number;
|
|
869
|
+
filesChanged: string[];
|
|
870
|
+
affectedCapabilities: Array<{
|
|
871
|
+
id: string;
|
|
872
|
+
name: string;
|
|
873
|
+
criticality: string;
|
|
874
|
+
changedFiles: string[];
|
|
875
|
+
driftCount: number;
|
|
876
|
+
}>;
|
|
877
|
+
regulatoryCapabilities: string[];
|
|
878
|
+
coherenceScoreBefore: number | null;
|
|
879
|
+
coherenceScoreAfter: number | null;
|
|
880
|
+
coherenceDelta: number | null;
|
|
881
|
+
topRisks: string[];
|
|
882
|
+
breakingChanges: string[];
|
|
883
|
+
summary: string;
|
|
884
|
+
}
|
|
885
|
+
interface GenerateChangeImpactBriefOpts {
|
|
886
|
+
gitContext: GitRangeContext;
|
|
887
|
+
changeImpactContext: ChangeImpactContext;
|
|
888
|
+
amberContext?: AmberLayerContext;
|
|
889
|
+
greenContext?: GreenLayerContext;
|
|
890
|
+
audience: "executive" | "technical" | "cab";
|
|
891
|
+
projectName: string;
|
|
892
|
+
releaseVersion?: string;
|
|
893
|
+
llm: LlmProvider;
|
|
894
|
+
}
|
|
895
|
+
interface ChangeImpactBrief {
|
|
896
|
+
title: string;
|
|
897
|
+
releaseVersion: string;
|
|
898
|
+
date: string;
|
|
899
|
+
audience: string;
|
|
900
|
+
executiveSummary: string;
|
|
901
|
+
technicalSummary: string;
|
|
902
|
+
affectedBusinessAreas: string[];
|
|
903
|
+
riskLevel: "low" | "medium" | "high" | "critical";
|
|
904
|
+
riskJustification: string;
|
|
905
|
+
complianceImpact: string;
|
|
906
|
+
rollbackComplexity: "simple" | "moderate" | "complex";
|
|
907
|
+
rollbackGuidance: string;
|
|
908
|
+
recommendedActions: string[];
|
|
909
|
+
approvalRequired: boolean;
|
|
910
|
+
metrics: {
|
|
911
|
+
commits: number;
|
|
912
|
+
filesChanged: number;
|
|
913
|
+
capabilitiesAffected: number;
|
|
914
|
+
coherenceDelta: number | null;
|
|
915
|
+
};
|
|
916
|
+
}
|
|
917
|
+
declare function generateChangeImpactBrief(opts: GenerateChangeImpactBriefOpts): Promise<ChangeImpactBrief>;
|
|
918
|
+
|
|
919
|
+
/**
|
|
920
|
+
* generateRoiSlide.ts
|
|
921
|
+
*
|
|
922
|
+
* FORGE generator that converts a PRISM ROI estimate into a CFO-ready
|
|
923
|
+
* 5-slide executive deck. Uses LLM to craft persuasive copy; falls back
|
|
924
|
+
* to deterministic templates when the LLM is unavailable.
|
|
925
|
+
*
|
|
926
|
+
* @amber-capability forge.roi-slide
|
|
927
|
+
* @amber-doc Converts PRISM technical-debt ROI estimates into executive slide decks
|
|
928
|
+
*/
|
|
929
|
+
|
|
930
|
+
interface RoiBreakdownItem {
|
|
931
|
+
count: number;
|
|
932
|
+
hoursPerMonth: number;
|
|
933
|
+
cost: number;
|
|
934
|
+
}
|
|
935
|
+
interface RoiEstimate {
|
|
936
|
+
currentScore: number;
|
|
937
|
+
currentGrade: string;
|
|
938
|
+
estimatedMaintenanceHoursPerMonth: number;
|
|
939
|
+
maintenanceCostPerMonth: number;
|
|
940
|
+
maintenanceCostPerYear: number;
|
|
941
|
+
targetScore: number;
|
|
942
|
+
targetGrade: string;
|
|
943
|
+
savedHoursPerMonth: number;
|
|
944
|
+
savedCostPerMonth: number;
|
|
945
|
+
savedCostPerYear: number;
|
|
946
|
+
roiMultiple: number;
|
|
947
|
+
breakdown: {
|
|
948
|
+
importCycles: RoiBreakdownItem;
|
|
949
|
+
documentationDrift: RoiBreakdownItem;
|
|
950
|
+
highChurnFiles: RoiBreakdownItem;
|
|
951
|
+
orphanedCode: RoiBreakdownItem;
|
|
952
|
+
};
|
|
953
|
+
estimatedRemediationDays: number;
|
|
954
|
+
breakEvenMonths: number;
|
|
955
|
+
headline: string;
|
|
956
|
+
recommendation: string;
|
|
957
|
+
}
|
|
958
|
+
type RoiSlideType = "title" | "problem" | "cost-breakdown" | "scenarios" | "recommendation" | "cta";
|
|
959
|
+
interface RoiSlide {
|
|
960
|
+
type: RoiSlideType;
|
|
961
|
+
title: string;
|
|
962
|
+
content: string;
|
|
963
|
+
highlight?: string;
|
|
964
|
+
highlightLabel?: string;
|
|
965
|
+
bullets?: string[];
|
|
966
|
+
}
|
|
967
|
+
interface RoiSlideOutput {
|
|
968
|
+
title: string;
|
|
969
|
+
slides: RoiSlide[];
|
|
970
|
+
executiveSummary: string;
|
|
971
|
+
oneLinePitch: string;
|
|
972
|
+
}
|
|
973
|
+
interface GenerateRoiSlideOpts {
|
|
974
|
+
roiEstimate: RoiEstimate;
|
|
975
|
+
organizationName?: string;
|
|
976
|
+
currency: "EUR" | "USD" | "GBP";
|
|
977
|
+
llm: LlmProvider;
|
|
978
|
+
}
|
|
979
|
+
declare function generateRoiSlide(opts: GenerateRoiSlideOpts): Promise<RoiSlideOutput>;
|
|
980
|
+
|
|
981
|
+
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";
|
|
356
982
|
type WidgetSlotType = "text" | "number" | "color" | "url" | "image-url" | "multiline" | "select";
|
|
357
|
-
|
|
983
|
+
/** "html" = embeddable fragment (no CDN scripts).
|
|
984
|
+
* "standalone" = full <!DOCTYPE html> document with Tailwind + Anime.js + Chart.js + Lucide CDN.
|
|
985
|
+
* "markdown" = plain text/markdown.
|
|
986
|
+
* "react" = standalone TSX component string.
|
|
987
|
+
*/
|
|
988
|
+
type WidgetExportFormat = "html" | "standalone" | "markdown" | "react";
|
|
358
989
|
interface WidgetSlotDef {
|
|
359
990
|
id: string;
|
|
360
991
|
label: string;
|
|
@@ -371,6 +1002,16 @@ interface WidgetTemplate {
|
|
|
371
1002
|
slots: WidgetSlotDef[];
|
|
372
1003
|
exportFormats: WidgetExportFormat[];
|
|
373
1004
|
free_tier: boolean;
|
|
1005
|
+
/** Widget plays JS animations in standalone mode */
|
|
1006
|
+
animated?: boolean;
|
|
1007
|
+
/** Total animation settle time in ms (for video capture timing) */
|
|
1008
|
+
animDurationMs?: number;
|
|
1009
|
+
/** Recommended total video duration in ms (anim + hold) */
|
|
1010
|
+
videoDurationMs?: number;
|
|
1011
|
+
/** Recommended render viewport width in px */
|
|
1012
|
+
defaultWidth?: number;
|
|
1013
|
+
/** Recommended render viewport height in px */
|
|
1014
|
+
defaultHeight?: number;
|
|
374
1015
|
}
|
|
375
1016
|
interface WidgetInstanceSnapshot {
|
|
376
1017
|
version: number;
|
|
@@ -944,4 +1585,4 @@ declare function exportToICalendar(entries: ScheduledEntry[]): string;
|
|
|
944
1585
|
type ExportFormat = "buffer" | "hypefury" | "icalendar";
|
|
945
1586
|
declare function previewExport(entries: ScheduledEntry[], format: ExportFormat): string;
|
|
946
1587
|
|
|
947
|
-
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 };
|
|
1588
|
+
export { type ADRDocument, type ADROutput, ANIMATION_DURATION_PRESETS, type AdrContext, type AmberCapabilityContext, type AmberLayerContext, type ApiChange, type ApiChangeContext, type ApiChangelogOutput, 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 ChangeImpactBrief, type ChangeImpactContext, 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 GenerateApiChangelogOpts, type GenerateChangeImpactBriefOpts, type GenerateComplianceDocOpts, type GenerateNewsletterOpts, type GeneratePresentationOpts, type GenerateRoiSlideOpts, type GenerateSprintRetroOpts, type GenerationResult, type GitRangeContext$1 as GitRangeContext, type GreenInsightContext, type GreenLayerContext, 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, type RoiBreakdownItem, type RoiEstimate, type RoiSlide, type RoiSlideOutput, type RoiSlideType, 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, buildPrismContextPrompt, buildRevertVersion, buildScheduledEntry, buildVersion, cascadingScheduledFor, clampAnimationDuration, computeDiff, defaultBrandKit, defaultValueForField, deriveContextSummary, distill, entryInRange, exportToBufferCsv, exportToHypefuryCsv, exportToICalendar, extractBrandFromPrismBlueprint, extractDependencyHotspots, extractTopChurnFiles, extractZones, generateADR, generateApiChangelog, generateArc42, generateArchitectureWalkthrough, generateAskDrivenAsset, generateChangeImpactBrief, generateChangesSince, generateComplianceDoc, generateKnowledgeCapture, generateNewsletter, generateOnboardingDoc, generatePresentation, generateRadio, generateRefactoringReport, generateReleaseNotes, generateRoiSlide, generateSprintRetro, getDispatchChannel, getPrismTemplate, getSlotValue, getStyleById, getWidgetTemplate, initialFormValues, next7DaysRange, nextVersionNumber, normalizePrismlensBlueprint, orchestrateDispatch, parseAndValidateSchemaDefinition, parseBrandKitFromLlmResponse, parseBrandThemeContent, parseStyleFromCss, parseStyleFromTailwindConfig, parseStyleFromTokensJson, parseThemeConfigContent, previewExport, readAmberLayer, readBlueprintData, readBlueprintFromTarget, readGreenLayer, readPrismDirectory, refineAsset, refineLimitState, renderWidget, resolveAnimatedChoice, resolveAnimationDuration, resolveBrandPalette, runForgeGeneration, scanForSecrets, schemaExampleFor, schemaToForm, templateAnimatedDefault, themeEntryToPalette, tryParseJsonObject, validateAgainstTemplateSchema, validateAssetSlots, validateFormValues, validateSchemaDefinition };
|