@openvulcan/dsh-vulcancode 0.0.0-stage → 0.4.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.
Files changed (171) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +86 -2
  3. package/assets/openvulcan-icon.svg +33 -0
  4. package/cordis.patch.yml +17 -0
  5. package/node_modules/@openvulcan/dsh-decision-guard/LICENSE +21 -0
  6. package/node_modules/@openvulcan/dsh-decision-guard/README.md +14 -0
  7. package/node_modules/@openvulcan/dsh-decision-guard/assets/decision-guard-icon.png +0 -0
  8. package/node_modules/@openvulcan/dsh-decision-guard/lib/calls.d.ts +40 -0
  9. package/node_modules/@openvulcan/dsh-decision-guard/lib/calls.js +150 -0
  10. package/node_modules/@openvulcan/dsh-decision-guard/lib/client.js +2193 -0
  11. package/node_modules/@openvulcan/dsh-decision-guard/lib/decide.d.ts +90 -0
  12. package/node_modules/@openvulcan/dsh-decision-guard/lib/decide.js +108 -0
  13. package/node_modules/@openvulcan/dsh-decision-guard/lib/index.d.ts +129 -0
  14. package/node_modules/@openvulcan/dsh-decision-guard/lib/index.js +572 -0
  15. package/node_modules/@openvulcan/dsh-decision-guard/lib/intent.d.ts +22 -0
  16. package/node_modules/@openvulcan/dsh-decision-guard/lib/intent.js +77 -0
  17. package/node_modules/@openvulcan/dsh-decision-guard/lib/panel.d.ts +158 -0
  18. package/node_modules/@openvulcan/dsh-decision-guard/lib/panel.js +340 -0
  19. package/node_modules/@openvulcan/dsh-decision-guard/lib/records.d.ts +133 -0
  20. package/node_modules/@openvulcan/dsh-decision-guard/lib/records.js +186 -0
  21. package/node_modules/@openvulcan/dsh-decision-guard/lib/review.d.ts +55 -0
  22. package/node_modules/@openvulcan/dsh-decision-guard/lib/review.js +202 -0
  23. package/node_modules/@openvulcan/dsh-decision-guard/lib/session-state.d.ts +62 -0
  24. package/node_modules/@openvulcan/dsh-decision-guard/lib/session-state.js +155 -0
  25. package/node_modules/@openvulcan/dsh-decision-guard/lib/version.d.ts +2 -0
  26. package/node_modules/@openvulcan/dsh-decision-guard/lib/version.js +4 -0
  27. package/node_modules/@openvulcan/dsh-decision-guard/package.json +68 -0
  28. package/node_modules/@openvulcan/dsh-vulcan-account/LICENSE +21 -0
  29. package/node_modules/@openvulcan/dsh-vulcan-account/assets/account-icon.png +0 -0
  30. package/node_modules/@openvulcan/dsh-vulcan-account/lib/client.js +565 -0
  31. package/node_modules/@openvulcan/dsh-vulcan-account/lib/index.d.ts +92 -0
  32. package/node_modules/@openvulcan/dsh-vulcan-account/lib/index.js +194 -0
  33. package/node_modules/@openvulcan/dsh-vulcan-account/package.json +57 -0
  34. package/node_modules/@openvulcan/dsh-vulcan-answers/LICENSE +21 -0
  35. package/node_modules/@openvulcan/dsh-vulcan-answers/assets/answers-icon.png +0 -0
  36. package/node_modules/@openvulcan/dsh-vulcan-answers/assets/prompts/answer-mode-interactive.md +79 -0
  37. package/node_modules/@openvulcan/dsh-vulcan-answers/assets/prompts/answer-mode-standard.md +1 -0
  38. package/node_modules/@openvulcan/dsh-vulcan-answers/lib/answer-model.d.ts +258 -0
  39. package/node_modules/@openvulcan/dsh-vulcan-answers/lib/answer-model.js +698 -0
  40. package/node_modules/@openvulcan/dsh-vulcan-answers/lib/client.js +671 -0
  41. package/node_modules/@openvulcan/dsh-vulcan-answers/lib/fences.d.ts +29 -0
  42. package/node_modules/@openvulcan/dsh-vulcan-answers/lib/fences.js +70 -0
  43. package/node_modules/@openvulcan/dsh-vulcan-answers/lib/index.d.ts +19 -0
  44. package/node_modules/@openvulcan/dsh-vulcan-answers/lib/index.js +52 -0
  45. package/node_modules/@openvulcan/dsh-vulcan-answers/lib/limits.d.ts +9 -0
  46. package/node_modules/@openvulcan/dsh-vulcan-answers/lib/limits.js +9 -0
  47. package/node_modules/@openvulcan/dsh-vulcan-answers/lib/prompt.d.ts +22 -0
  48. package/node_modules/@openvulcan/dsh-vulcan-answers/lib/prompt.js +39 -0
  49. package/node_modules/@openvulcan/dsh-vulcan-answers/lib/reply-format.d.ts +20 -0
  50. package/node_modules/@openvulcan/dsh-vulcan-answers/lib/reply-format.js +17 -0
  51. package/node_modules/@openvulcan/dsh-vulcan-answers/lib/session-state.d.ts +66 -0
  52. package/node_modules/@openvulcan/dsh-vulcan-answers/lib/session-state.js +118 -0
  53. package/node_modules/@openvulcan/dsh-vulcan-answers/package.json +59 -0
  54. package/node_modules/@openvulcan/dsh-vulcan-luaskills/LICENSE +21 -0
  55. package/node_modules/@openvulcan/dsh-vulcan-luaskills/assets/luaskills-icon.svg +1 -0
  56. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/client.js +940 -0
  57. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/constants.d.ts +46 -0
  58. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/constants.js +51 -0
  59. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/engine.d.ts +55 -0
  60. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/engine.js +149 -0
  61. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/hub.d.ts +49 -0
  62. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/hub.js +116 -0
  63. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/index.d.ts +26 -0
  64. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/index.js +276 -0
  65. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/protocol.d.ts +65 -0
  66. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/protocol.js +2 -0
  67. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/runtime.d.ts +111 -0
  68. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/runtime.js +281 -0
  69. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/sdk-install.d.ts +26 -0
  70. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/sdk-install.js +87 -0
  71. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/settings.d.ts +79 -0
  72. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/settings.js +165 -0
  73. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/skills.d.ts +34 -0
  74. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/skills.js +61 -0
  75. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/tools.d.ts +59 -0
  76. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/tools.js +107 -0
  77. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/worker.d.ts +10 -0
  78. package/node_modules/@openvulcan/dsh-vulcan-luaskills/lib/worker.js +140 -0
  79. package/node_modules/@openvulcan/dsh-vulcan-luaskills/package.json +57 -0
  80. package/node_modules/@openvulcan/dsh-vulcan-memory/LICENSE +21 -0
  81. package/node_modules/@openvulcan/dsh-vulcan-memory/assets/markdown-memory-guide.md +21 -0
  82. package/node_modules/@openvulcan/dsh-vulcan-memory/assets/memory-curator/SKILL.md +31 -0
  83. package/node_modules/@openvulcan/dsh-vulcan-memory/assets/memory-icon.png +0 -0
  84. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/client.js +1090 -0
  85. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/index.d.ts +30 -0
  86. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/index.js +240 -0
  87. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/inject.d.ts +30 -0
  88. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/inject.js +46 -0
  89. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/constants.d.ts +23 -0
  90. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/constants.js +25 -0
  91. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/document.d.ts +108 -0
  92. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/document.js +373 -0
  93. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/errors.d.ts +14 -0
  94. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/errors.js +31 -0
  95. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/index.d.ts +196 -0
  96. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/index.js +204 -0
  97. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/operations.d.ts +92 -0
  98. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/operations.js +472 -0
  99. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/package.d.ts +126 -0
  100. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/package.js +553 -0
  101. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/registry.d.ts +56 -0
  102. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/registry.js +182 -0
  103. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/scope.d.ts +13 -0
  104. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/scope.js +24 -0
  105. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/search.d.ts +65 -0
  106. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/search.js +227 -0
  107. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/snapshot.d.ts +34 -0
  108. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/snapshot.js +171 -0
  109. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/store.d.ts +72 -0
  110. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/store.js +250 -0
  111. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/timestamp.d.ts +6 -0
  112. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/timestamp.js +12 -0
  113. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/tokens.d.ts +8 -0
  114. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/markdown/tokens.js +38 -0
  115. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/page.d.ts +132 -0
  116. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/page.js +235 -0
  117. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/project.d.ts +14 -0
  118. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/project.js +27 -0
  119. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/settings.d.ts +29 -0
  120. package/node_modules/@openvulcan/dsh-vulcan-memory/lib/settings.js +62 -0
  121. package/node_modules/@openvulcan/dsh-vulcan-memory/package.json +63 -0
  122. package/node_modules/@openvulcan/dsh-vulcan-style/LICENSE +21 -0
  123. package/node_modules/@openvulcan/dsh-vulcan-style/assets/style-icon.png +0 -0
  124. package/node_modules/@openvulcan/dsh-vulcan-style/lib/client.js +1061 -0
  125. package/node_modules/@openvulcan/dsh-vulcan-style/lib/index.d.ts +34 -0
  126. package/node_modules/@openvulcan/dsh-vulcan-style/lib/index.js +42 -0
  127. package/node_modules/@openvulcan/dsh-vulcan-style/package.json +51 -0
  128. package/node_modules/@openvulcan/openvulcan-account/LICENSE +21 -0
  129. package/node_modules/@openvulcan/openvulcan-account/lib/account.d.ts +140 -0
  130. package/node_modules/@openvulcan/openvulcan-account/lib/account.js +347 -0
  131. package/node_modules/@openvulcan/openvulcan-account/lib/index.d.ts +1 -0
  132. package/node_modules/@openvulcan/openvulcan-account/lib/index.js +1 -0
  133. package/node_modules/@openvulcan/openvulcan-account/package.json +29 -0
  134. package/node_modules/@openvulcan/vulcan-decision/LICENSE +21 -0
  135. package/node_modules/@openvulcan/vulcan-decision/README.md +23 -0
  136. package/node_modules/@openvulcan/vulcan-decision/bin/vulcan-decision.js +4 -0
  137. package/node_modules/@openvulcan/vulcan-decision/lib/cli.d.ts +5 -0
  138. package/node_modules/@openvulcan/vulcan-decision/lib/cli.js +267 -0
  139. package/node_modules/@openvulcan/vulcan-decision/lib/cloud/edge.d.ts +211 -0
  140. package/node_modules/@openvulcan/vulcan-decision/lib/cloud/edge.js +594 -0
  141. package/node_modules/@openvulcan/vulcan-decision/lib/download.d.ts +36 -0
  142. package/node_modules/@openvulcan/vulcan-decision/lib/download.js +99 -0
  143. package/node_modules/@openvulcan/vulcan-decision/lib/engine.d.ts +37 -0
  144. package/node_modules/@openvulcan/vulcan-decision/lib/engine.js +39 -0
  145. package/node_modules/@openvulcan/vulcan-decision/lib/hardware.d.ts +105 -0
  146. package/node_modules/@openvulcan/vulcan-decision/lib/hardware.js +207 -0
  147. package/node_modules/@openvulcan/vulcan-decision/lib/home.d.ts +26 -0
  148. package/node_modules/@openvulcan/vulcan-decision/lib/home.js +54 -0
  149. package/node_modules/@openvulcan/vulcan-decision/lib/index.d.ts +17 -0
  150. package/node_modules/@openvulcan/vulcan-decision/lib/index.js +17 -0
  151. package/node_modules/@openvulcan/vulcan-decision/lib/local/engine.d.ts +54 -0
  152. package/node_modules/@openvulcan/vulcan-decision/lib/local/engine.js +157 -0
  153. package/node_modules/@openvulcan/vulcan-decision/lib/local/models.d.ts +126 -0
  154. package/node_modules/@openvulcan/vulcan-decision/lib/local/models.js +261 -0
  155. package/node_modules/@openvulcan/vulcan-decision/lib/local/packs.d.ts +102 -0
  156. package/node_modules/@openvulcan/vulcan-decision/lib/local/packs.js +195 -0
  157. package/node_modules/@openvulcan/vulcan-decision/lib/local/worker.d.ts +61 -0
  158. package/node_modules/@openvulcan/vulcan-decision/lib/local/worker.js +123 -0
  159. package/node_modules/@openvulcan/vulcan-decision/lib/protocol.d.ts +74 -0
  160. package/node_modules/@openvulcan/vulcan-decision/lib/protocol.js +31 -0
  161. package/node_modules/@openvulcan/vulcan-decision/lib/render.d.ts +15 -0
  162. package/node_modules/@openvulcan/vulcan-decision/lib/render.js +33 -0
  163. package/node_modules/@openvulcan/vulcan-decision/lib/version.d.ts +2 -0
  164. package/node_modules/@openvulcan/vulcan-decision/lib/version.js +4 -0
  165. package/node_modules/@openvulcan/vulcan-decision/package.json +40 -0
  166. package/node_modules/@openvulcan/vulcan-decision/python/vulcan_decision_worker.py +363 -0
  167. package/node_modules/@openvulcan/vulcan-decision/runtime-packs/onnx-cpu.json +627 -0
  168. package/node_modules/@openvulcan/vulcan-decision/runtime-packs/onnx-cuda.json +423 -0
  169. package/node_modules/@openvulcan/vulcan-decision/runtime-packs/torch-cpu.json +1047 -0
  170. package/node_modules/@openvulcan/vulcan-decision/runtime-packs/torch-cu128.json +647 -0
  171. package/package.json +53 -4
@@ -0,0 +1,258 @@
1
+ /**
2
+ * Parsed `ui-*` answer component fences. Parsing is pure and total: a fence that does not match its
3
+ * documented syntax returns null, so the caller leaves dsh's ordinary code block in place. The syntax
4
+ * authority is `assets/prompts/answer-mode-interactive.md`.
5
+ *
6
+ * Ported from VulcanCode `apps/vulcan-code-web/src/components/conversation/answer-components/answer-component-model.ts`.
7
+ * `ui-code` (needs the host's answer-time file capture) and `ui-gallery` (needs local image access) are
8
+ * not offered in dsh, so their fences parse as null and stay ordinary code.
9
+ */
10
+ /** Tone words that may start a cell. */
11
+ export type AnswerTone = 'ok' | 'warn' | 'no';
12
+ /** Checklist status: a tone or an open item. */
13
+ export type AnswerStatus = AnswerTone | 'todo';
14
+ /** Finding severity. `ok` is not in the prompt; models write it for a resolved or healthy item. */
15
+ export type AnswerSeverity = 'high' | 'medium' | 'low' | 'info' | 'ok';
16
+ /** Plan step status. */
17
+ export type AnswerStepStatus = 'done' | 'now' | 'todo';
18
+ /** Callout tones. */
19
+ export type AnswerCalloutTone = 'info' | 'success' | 'warning' | 'danger';
20
+ /** Plan marker on a tree node, flow node, flow chain or sequence message. */
21
+ export type AnswerMark = 'add' | 'del' | 'chg';
22
+ /** A cell that may start with a tone word; `text` is empty when the cell is only the tone word. */
23
+ export interface AnswerTonedText {
24
+ tone?: AnswerTone | undefined;
25
+ text: string;
26
+ }
27
+ /** One metric; `maximum` enables a meter, and `over` marks a value above it. */
28
+ export interface AnswerMetric {
29
+ label: string;
30
+ value: string;
31
+ numeric?: number | undefined;
32
+ maximum?: number | undefined;
33
+ over?: boolean | undefined;
34
+ unit?: string | undefined;
35
+ tone?: AnswerTone | undefined;
36
+ }
37
+ /** Key flags of an entity field. */
38
+ export type AnswerErKey = 'PK' | 'FK' | 'UK';
39
+ /** One entity field; `target` indexes the referenced table. */
40
+ export interface AnswerErField {
41
+ name: string;
42
+ type?: string | undefined;
43
+ keys: AnswerErKey[];
44
+ target?: number | undefined;
45
+ note?: string | undefined;
46
+ mark?: AnswerMark | undefined;
47
+ }
48
+ /** One entity (table) with its fields. */
49
+ export interface AnswerErTable {
50
+ name: string;
51
+ note?: string | undefined;
52
+ mark?: AnswerMark | undefined;
53
+ fields: AnswerErField[];
54
+ }
55
+ /** One symbol of a formula legend. */
56
+ export interface AnswerMathSymbol {
57
+ symbol: string;
58
+ meaning: string;
59
+ }
60
+ /** One option of a decision; `recommended` marks the option the answer would pick. */
61
+ export interface AnswerDecisionOption {
62
+ label: string;
63
+ note?: string | undefined;
64
+ recommended: boolean;
65
+ }
66
+ /** One tree node with its nested children. */
67
+ export interface AnswerTreeNode {
68
+ label: string;
69
+ note?: string | undefined;
70
+ mark?: AnswerMark | undefined;
71
+ children: AnswerTreeNode[];
72
+ }
73
+ /**
74
+ * One changed file. Either line count may be missing when the row names only one side (`+145`); `status` is a
75
+ * change label such as `new` written in place of the counts.
76
+ */
77
+ export interface AnswerFile {
78
+ path: string;
79
+ added?: number | undefined;
80
+ removed?: number | undefined;
81
+ status?: string | undefined;
82
+ note?: string | undefined;
83
+ }
84
+ /** Chart layouts accepted after `ui-chart`. */
85
+ export type AnswerChartKind = 'bar' | 'hbar' | 'stack' | 'line' | 'area' | 'pie' | 'donut';
86
+ /** Chart data: series names and one row of values per category. */
87
+ export interface AnswerChart {
88
+ kind: AnswerChartKind;
89
+ title?: string | undefined;
90
+ categoryLabel: string;
91
+ series: string[];
92
+ rows: {
93
+ category: string;
94
+ values: number[];
95
+ }[];
96
+ }
97
+ /** Titled Markdown section of `ui-tabs` or `ui-columns`. */
98
+ export interface AnswerSection {
99
+ title: string;
100
+ body: string;
101
+ }
102
+ /** Flow node outline. */
103
+ export type AnswerFlowShape = 'box' | 'decision' | 'terminal' | 'store';
104
+ /** One distinct flow node; the same label is the same node. */
105
+ export interface AnswerFlowNode {
106
+ label: string;
107
+ shape: AnswerFlowShape;
108
+ mark?: AnswerMark | undefined;
109
+ }
110
+ /** One source line of a flow: node groups joined by hops; `label` names the last hop only. */
111
+ export interface AnswerFlowChain {
112
+ groups: number[][];
113
+ dashed: boolean[];
114
+ label?: string | undefined;
115
+ mark?: AnswerMark | undefined;
116
+ }
117
+ /** One sequence row. */
118
+ export type AnswerSequenceStep = {
119
+ kind: 'phase';
120
+ text: string;
121
+ } | {
122
+ kind: 'note';
123
+ first: number;
124
+ last: number;
125
+ text: string;
126
+ } | {
127
+ kind: 'message';
128
+ from: number;
129
+ to: number;
130
+ dashed: boolean;
131
+ text: string;
132
+ mark?: AnswerMark | undefined;
133
+ };
134
+ /** Every renderable component; row components may carry a heading written after their name. */
135
+ export type AnswerComponent = AnswerComponentBody & {
136
+ heading?: string | undefined;
137
+ };
138
+ /** Every renderable component without its heading. */
139
+ export type AnswerComponentBody = {
140
+ kind: 'kv';
141
+ rows: {
142
+ label: string;
143
+ value: string;
144
+ note?: string | undefined;
145
+ }[];
146
+ } | {
147
+ kind: 'metrics';
148
+ rows: AnswerMetric[];
149
+ } | {
150
+ kind: 'findings';
151
+ rows: {
152
+ severity: AnswerSeverity;
153
+ text: string;
154
+ location?: string | undefined;
155
+ note?: string | undefined;
156
+ }[];
157
+ } | {
158
+ kind: 'compare';
159
+ header: string[];
160
+ rows: {
161
+ criterion: string;
162
+ cells: AnswerTonedText[];
163
+ }[];
164
+ } | {
165
+ kind: 'checklist';
166
+ items: {
167
+ status: AnswerStatus;
168
+ item: string;
169
+ note?: string | undefined;
170
+ location?: string | undefined;
171
+ }[];
172
+ } | {
173
+ kind: 'steps';
174
+ steps: {
175
+ status: AnswerStepStatus;
176
+ title: string;
177
+ text?: string | undefined;
178
+ }[];
179
+ } | {
180
+ kind: 'timeline';
181
+ rows: {
182
+ time: string;
183
+ title: string;
184
+ text?: string | undefined;
185
+ }[];
186
+ } | {
187
+ kind: 'cards';
188
+ cards: {
189
+ title: string;
190
+ text: string;
191
+ tag?: AnswerTonedText | undefined;
192
+ }[];
193
+ } | {
194
+ kind: 'files';
195
+ files: AnswerFile[];
196
+ added: number;
197
+ removed: number;
198
+ } | {
199
+ kind: 'tree';
200
+ nodes: AnswerTreeNode[];
201
+ } | {
202
+ kind: 'chart';
203
+ chart: AnswerChart;
204
+ } | {
205
+ kind: 'flow';
206
+ horizontal: boolean;
207
+ nodes: AnswerFlowNode[];
208
+ chains: AnswerFlowChain[];
209
+ } | {
210
+ kind: 'sequence';
211
+ numbered: boolean;
212
+ actors: string[];
213
+ steps: AnswerSequenceStep[];
214
+ } | {
215
+ kind: 'er';
216
+ horizontal: boolean;
217
+ tables: AnswerErTable[];
218
+ } | {
219
+ kind: 'math';
220
+ title?: string | undefined;
221
+ equations: string[];
222
+ symbols: AnswerMathSymbol[];
223
+ } | {
224
+ kind: 'decision';
225
+ multiple: boolean;
226
+ question: string;
227
+ options: AnswerDecisionOption[];
228
+ } | {
229
+ kind: 'callout';
230
+ tone: AnswerCalloutTone;
231
+ title?: string | undefined;
232
+ body: string;
233
+ } | {
234
+ kind: 'details';
235
+ title: string;
236
+ body: string;
237
+ } | {
238
+ kind: 'tabs' | 'columns';
239
+ sections: AnswerSection[];
240
+ };
241
+ /** Fence languages this plugin renders; any other `ui-*` fence stays ordinary code. */
242
+ export declare const SUPPORTED_ANSWER_LANGUAGES: ReadonlySet<string>;
243
+ /**
244
+ * Parse one fence; `language` is `ui-<name>`, `meta` the rest of the info string, `body` the text.
245
+ * Returns null for unknown or unsupported names and for invalid syntax.
246
+ */
247
+ export declare function parseAnswerComponent(language: string, meta: string, body: string): AnswerComponent | null;
248
+ /**
249
+ * Split one row into trimmed cells; outer pipes are optional and `\|` is a literal pipe. `lenient` also
250
+ * keeps pipes inside balanced backtick code and pipes touching text on both sides (`fetch|iex`) as literal.
251
+ */
252
+ export declare function answerCells(line: string, lenient?: boolean): string[];
253
+ /**
254
+ * The file path of a path-shaped location such as `src/a.rs:42`, or null for prose: only a token without
255
+ * spaces or full-width punctuation and with a separator or an extension is a file. The `:line` or
256
+ * `:line:column` suffix is stripped.
257
+ */
258
+ export declare function answerLocationPath(location: string): string | null;