@callidescope/output 0.0.78 → 0.0.80

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/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ ## 0.0.80 (2026-11-12)
2
+
3
+ ### 🧱 Updated Dependencies
4
+
5
+ - Updated callidescope-configuration to 0.0.81
6
+ - Updated callidescope-graph to 0.0.80
7
+ - Updated callidescope-core to 0.0.80
8
+
9
+ ## 0.0.79 (2026-11-11)
10
+
11
+ ### 🚀 Features
12
+
13
+ - **codometer:** ✨ tighten the comment budgets and shorten every comment over them ([#2262](https://github.com/organizzolini/codebase/pull/2262), [#2261](https://github.com/organizzolini/codebase/issues/2261))
14
+
15
+ ### 🧱 Updated Dependencies
16
+
17
+ - Updated callidescope-configuration to 0.0.80
18
+ - Updated callidescope-graph to 0.0.79
19
+ - Updated callidescope-core to 0.0.79
20
+
1
21
  ## 0.0.78 (2026-11-10)
2
22
 
3
23
  ### 🚀 Features
@@ -37,10 +37,9 @@ export declare class AddressReportModule {
37
37
  /**
38
38
  * Renders `depth` and `breadth`'s findings for a terminal.
39
39
  *
40
- * Markdown by default and mermaid on request, the same two renderings
41
- * `callidescope` itself prints — a diagram at a prompt is source someone can
42
- * paste somewhere that draws it, and markdown is what reads well as terminal
43
- * text. JSON carries the same data with nothing rendered.
40
+ * Markdown by default, mermaid on request, as `callidescope` prints them.
41
+ * Mermaid is paste-ready source; markdown reads well as terminal text.
42
+ * JSON carries the same data unrendered.
44
43
  */
45
44
  export declare class AddressReportService {
46
45
  private readonly mermaidReportService;
@@ -128,12 +127,10 @@ export declare interface FindOwnedFindingsArguments {
128
127
  readonly reports: readonly ProjectReport[];
129
128
  }
130
129
 
131
- /** Start marker of any anchored block this convention recognizes. Where a corrupted block must stop being replaced: at another block's territory. */
130
+ /** Start marker of an anchored block. Replacement stops at other blocks. */
132
131
  export declare const FOREIGN_ANCHOR_PATTERN: RegExp;
133
132
 
134
- /**
135
- * Anything holding a frame list, such as a full `CallStack` or a path with no depth of its own.
136
- */
133
+ /** Anything holding a frame list, such as a `CallStack`. */
137
134
  export declare interface FramedStack {
138
135
  readonly frames: readonly StackFrame[];
139
136
  }
@@ -147,7 +144,7 @@ export declare const HEADROOM_BUCKET_FOUR_PLUS = "4+";
147
144
  /** Bucket holding the projects one frame from their own limit. */
148
145
  export declare const HEADROOM_BUCKET_ONE = "1";
149
146
 
150
- /** The order the scoreboard prints buckets, tightest first. Fixed, so an empty bucket still prints as zero. */
147
+ /** Scoreboard bucket order, tightest first. Fixed, so empty ones still print. */
151
148
  export declare const HEADROOM_BUCKET_ORDER: readonly ["over limit", "0 — at limit", "1", "2–3", "4+", "no stacks"];
152
149
 
153
150
  /** Bucket holding the projects whose deepest stack broke their own limit. */
@@ -156,13 +153,10 @@ export declare const HEADROOM_BUCKET_OVER_LIMIT = "over limit";
156
153
  /** Bucket holding the projects two or three frames from their own limit. */
157
154
  export declare const HEADROOM_BUCKET_TWO_TO_THREE = "2\u20133";
158
155
 
159
- /** Bucket for projects measuring no stack. Not the widest headroom bucket: such a limit gates nothing, the opposite finding. */
156
+ /** Bucket for projects with no stack. Such a limit gates nothing. */
160
157
  export declare const HEADROOM_BUCKET_UNMEASURED = "no stacks";
161
158
 
162
- /**
163
- * Values beside a log line rather than inside it: counts and durations change
164
- * per occurrence, so they stay queryable fields.
165
- */
159
+ /** Values beside the log line, kept as queryable fields. */
166
160
  declare interface LogData {
167
161
  [key: string]: unknown;
168
162
  /** How many things the operation handled. */
@@ -176,11 +170,10 @@ declare interface LogData {
176
170
  }
177
171
 
178
172
  /**
179
- * Transient logger, so each injecting class gets its own instance. Each
180
- * consumer calls `setContext(ClassName.name)`. Backed by pino: JSON in
181
- * production, pretty-printed in development. Messages start with an emoji
182
- * naming the subject, then a verb in present progressive or past tense.
183
- * Varying values such as counts go in `data`, so messages stay groupable.
173
+ * Transient logger, so each injecting class gets its own instance. Consumers
174
+ * call `setContext(ClassName.name)`. Backed by pino: JSON in production,
175
+ * pretty-printed in development. Messages start with an emoji naming the subject,
176
+ * then a present or past-tense verb. Varying values such as counts go in `data`.
184
177
  */
185
178
  declare @Injectable({ scope: Scope.TRANSIENT })
186
179
  class LoggerService
@@ -198,7 +191,7 @@ implements LoggerServiceContract
198
191
  private static readonly isProduction =
199
192
  process.env["NODE_ENV"] === "production";
200
193
 
201
- /** Built on first use, so `logToStandardError` can still choose the destination after import. */
194
+ /** Built lazily, so `logToStandardError` can still set the destination. */
202
195
  private static rootLogger: pino.Logger | undefined;
203
196
 
204
197
  /** Whether lines go to standard error instead of standard output. */
@@ -458,7 +451,7 @@ implements LoggerServiceContract
458
451
  }
459
452
  }
460
453
 
461
- /** The public logger shape used to type test doubles without importing its service. */
454
+ /** Public logger shape, for test doubles without the service. */
462
455
  declare interface LoggerServiceContract extends ConsoleLogger {
463
456
  /** Normalizes unknown errors into a stable message and timestamped log line. */
464
457
  buildErrorLogEntry(
@@ -473,10 +466,10 @@ declare interface LoggerServiceContract extends ConsoleLogger {
473
466
  info(message: unknown, context?: string, data?: LogData): void;
474
467
  }
475
468
 
476
- /** Heading over stacks deeper than their project allows. A constant, so a reader grepping a failed run finds the same text in both renderings. */
469
+ /** Heading for stacks deeper than allowed, identical in both renderings. */
477
470
  export declare const MARKDOWN_DEEP_STACKS_HEADING = "Call stacks over the depth limit";
478
471
 
479
- /** How each anchored destination draws its stacks. One list, so `mermaid` can never start printing trees by accident. */
472
+ /** How each anchored destination draws stacks. Keeps `mermaid` from printing trees. */
480
473
  export declare const MARKDOWN_DESTINATION_RENDERINGS: readonly [readonly ["markdown", "tree"], readonly ["mermaid", "diagram"]];
481
474
 
482
475
  /** Header of the depth-headroom scoreboard. */
@@ -497,9 +490,8 @@ export declare const MARKDOWN_WIDE_CALLABLES_HEADING = "Callables over the bread
497
490
  /**
498
491
  * Renders a run, or one project's slice of it, as markdown.
499
492
  *
500
- * Markdown rather than a bespoke text format because the same rendering has to
501
- * serve three places — a terminal, a report file, and a section spliced into a
502
- * project's own README — and only one of those can read anything else.
493
+ * Markdown serves a terminal, a report file, and a section spliced into a
494
+ * project's README alike. Only markdown reads well in all three.
503
495
  */
504
496
  export declare class MarkdownReportService {
505
497
  private readonly mermaidReportService;
@@ -558,19 +550,16 @@ export declare class MarkdownReportService {
558
550
  renderStacks(args: RenderStacksArguments): string;
559
551
  }
560
552
 
561
- /** Callables a diagram draws before it stops accepting stacks. GitHub refuses mermaid blocks past 50,000 characters; whole stacks drop, never trimmed. */
553
+ /** Callables a diagram draws, since GitHub caps mermaid at 50,000 characters. */
562
554
  export declare const MAXIMUM_DIAGRAM_NODES = 300;
563
555
 
564
- /** Opens every diagram, left to right: the direction a stack reads and a wide, shallow graph fits a page. */
556
+ /** Opens every diagram left to right, the way a stack reads. */
565
557
  export declare const MERMAID_FLOWCHART_HEADER = "flowchart LR";
566
558
 
567
559
  /** What mermaid would read as syntax inside a node label. */
568
560
  export declare const MERMAID_LABEL_ESCAPES: ReadonlyMap<string, string>;
569
561
 
570
- /**
571
- * A diagram under construction. Mutable on purpose, since nodes and edges accumulate across every
572
- * stack drawn.
573
- */
562
+ /** A diagram under construction. Mutable, since stacks add nodes and edges. */
574
563
  export declare interface MermaidDiagram {
575
564
  readonly edges: Set<string>;
576
565
  readonly identifiersByCallable: Map<CallableId, string>;
@@ -606,7 +595,7 @@ export declare class MermaidReportService {
606
595
  }): string;
607
596
  }
608
597
 
609
- /** Frames a stack needs before a report carries it. A single frame is a callable that calls nothing, not a call stack. */
598
+ /** Fewest frames a reported stack needs; one frame is a callable. */
610
599
  export declare const MINIMUM_STACK_FRAMES = 2;
611
600
 
612
601
  /** Raised when the anchor helper is asked to write a file nothing named. */
@@ -656,10 +645,9 @@ export declare class OutputMarkdownModule {
656
645
  /**
657
646
  * Splices a generated block into a markdown file, between two anchors.
658
647
  *
659
- * Staleness is decided by comparing the extracted block against the
660
- * regenerated one, byte for byte. A file with no anchors, or no file at all,
661
- * counts as stale rather than as an error, so check mode reports the same thing
662
- * whether the block drifted or was never written.
648
+ * Staleness compares the extracted block with the regenerated one, byte for byte.
649
+ * A missing file or anchor counts as stale, not as an error, so check mode
650
+ * reports drift and absence alike.
663
651
  */
664
652
  export declare class OutputMarkdownService {
665
653
  private readonly logger;
@@ -701,13 +689,13 @@ export declare interface OwnedFindings {
701
689
  readonly wideCallables: readonly WideCallableFinding[];
702
690
  }
703
691
 
704
- /** A message split into the emoji the console shows and the prose telemetry stores. */
692
+ /** Message split into emoji and the prose telemetry stores. */
705
693
  declare interface ParsedLogMessage {
706
694
  emoji: string | undefined;
707
695
  text: string;
708
696
  }
709
697
 
710
- /** One project's row in the index, and the numbers the scoreboard buckets it by. */
698
+ /** One project's index row and the scoreboard's bucketing numbers. */
711
699
  export declare interface ProjectIndexRow {
712
700
  readonly deepest: number;
713
701
  readonly headroom: number;
@@ -725,9 +713,8 @@ export declare class ProjectReportsModule {
725
713
  /**
726
714
  * Scopes a run's findings to the project each one came from.
727
715
  *
728
- * A section embedded in a project's README should describe that project, not
729
- * the workspace it happens to sit in, so everything here is keyed on the
730
- * project the entry point — or the reported callable — belongs to.
716
+ * A project's README section should describe that project, not the workspace it
717
+ * sits in, so everything is keyed on the owning project of the entry point or callable.
731
718
  */
732
719
  export declare class ProjectReportsService {
733
720
  private readonly pathsService;
@@ -806,9 +793,7 @@ declare interface RenderDepthReportsArguments {
806
793
  readonly reports: readonly DepthReport[];
807
794
  }
808
795
 
809
- /**
810
- * Arguments for rendering only the findings a gate weighs, not the whole run it measured.
811
- */
796
+ /** Arguments for rendering only the findings a gate weighs. */
812
797
  export declare interface RenderFindingsArguments extends OwnedFindings {
813
798
  readonly previewCount: number;
814
799
  }
@@ -864,13 +849,11 @@ export declare class ReportFindingsModule {
864
849
  }
865
850
 
866
851
  /**
867
- * Weighs every finding a run can produce, and fails on the ones it was asked
868
- * to gate.
852
+ * Weighs every finding a run produces, failing on the ones it gates.
869
853
  *
870
- * Kept away from `CallidescopeCommand` itself, the same reason `RunPlanService`
871
- * is: what a run does with what it found is a question this service answers on
872
- * its own — through `this.logger` alone — leaving the command to orchestrate
873
- * the trace rather than weigh its output.
854
+ * Kept apart from `CallidescopeCommand`, as `RunPlanService` is: this service
855
+ * decides on its own what a run does with its findings, through `this.logger`,
856
+ * leaving the command to orchestrate the trace.
874
857
  */
875
858
  export declare class ReportFindingsService {
876
859
  private readonly logger;
@@ -938,19 +921,19 @@ export declare class ReportService {
938
921
  }): string;
939
922
  }
940
923
 
941
- /** Stands in for the workspace root when it is itself a traced project. */
924
+ /** Names the workspace root when it is a traced project. */
942
925
  export declare const ROOT_PROJECT_LABEL = ".";
943
926
 
944
- /** Ends a sentence when the next one starts. The capital after the space tells a break from `e.g.` or a dotted identifier. */
927
+ /** Sentence break: a capital must follow, so `e.g.` does not split. */
945
928
  export declare const SENTENCE_END_PATTERN: RegExp;
946
929
 
947
- /** Characters of signature a frame prints before collapsing the parameters. Long injected constructors would otherwise break the stack's shape. */
930
+ /** Signature characters a frame prints before parameters collapse. */
948
931
  export declare const SIGNATURE_LIMIT = 80;
949
932
 
950
- /** How a report draws its stacks. Narrower than the output format: `json` is a different report, not a drawing of this one. */
933
+ /** How a report draws stacks. Excludes `json`, which is no drawing. */
951
934
  export declare type StackRendering = "diagram" | "tree";
952
935
 
953
- /** Characters of documentation prose a printed frame keeps. The tree orients a reader; the JSON report keeps the whole comment. */
936
+ /** Documentation characters a printed frame keeps. JSON keeps all of it. */
954
937
  export declare const SUMMARY_LIMIT = 120;
955
938
 
956
939
  /** Introduces the documentation line printed under a frame. */
@@ -982,10 +965,7 @@ export declare interface SyncJsonArguments extends BuildReportArguments {
982
965
  readonly check: boolean;
983
966
  }
984
967
 
985
- /**
986
- * Arguments for syncing the configured markdown destination. The markdown arrives already
987
- * rendered; this only decides where it lands.
988
- */
968
+ /** Arguments for syncing the markdown destination, already rendered. */
989
969
  export declare interface SyncMarkdownArguments {
990
970
  readonly check: boolean;
991
971
  readonly content: string;
@@ -1010,10 +990,11 @@ export declare interface SyncProjectSectionsArguments {
1010
990
  export declare const TRUNCATION_SUFFIX = "\u2026";
1011
991
 
1012
992
  /**
1013
- * Renders what a whole run says about the projects in it, rather than one callable or stack.
993
+ * Renders what a whole run says about the projects in it.
1014
994
  *
1015
- * Its two sections are the index and the scoreboard: which project holds what, and how much room
1016
- * each has before its own limit stops it. Both key on each project's resolved limit.
995
+ * Two sections: the index and the scoreboard, showing which project holds what
996
+ * and how much room each has before its own limit stops it. Both key on each
997
+ * project's resolved limit.
1017
998
  */
1018
999
  export declare class WorkspaceReportService {
1019
1000
  constructor();
package/package.json CHANGED
@@ -4,9 +4,9 @@
4
4
  "url": "https://github.com/organizzolini/codebase/issues"
5
5
  },
6
6
  "dependencies": {
7
- "@callidescope/configuration": "0.0.79",
8
- "@callidescope/core": "0.0.78",
9
- "@callidescope/graph": "0.0.78",
7
+ "@callidescope/configuration": "0.0.81",
8
+ "@callidescope/core": "0.0.80",
9
+ "@callidescope/graph": "0.0.80",
10
10
  "@nestjs/common": "^11.1.21 || ^12.0.1",
11
11
  "pino": "^10.3.1",
12
12
  "pino-pretty": "^13.1.3",
@@ -63,5 +63,5 @@
63
63
  "strict": true
64
64
  },
65
65
  "types": "./dist/src/index.d.ts",
66
- "version": "0.0.78"
66
+ "version": "0.0.80"
67
67
  }