@adecore/agents-react 0.23.1 → 0.24.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/README.md +14 -11
- package/dist/agents/AccountDot.js +3 -1
- package/dist/agents/accounts.d.ts +3 -2
- package/dist/agents/accounts.js +5 -6
- package/dist/chat/actions.d.ts +2 -2
- package/dist/chat/actions.js +8 -5
- package/dist/chat/bookmarks.d.ts +5 -3
- package/dist/chat/bookmarks.js +13 -14
- package/dist/chat/chat-client.d.ts +1 -0
- package/dist/chat/chat-client.js +7 -0
- package/dist/chat/composer-send.d.ts +3 -0
- package/dist/chat/composer-send.js +22 -0
- package/dist/chat/forks.js +22 -5
- package/dist/chat/index.d.ts +31 -0
- package/dist/chat/index.js +28 -0
- package/dist/chat/logic/embedded-code.d.ts +8 -0
- package/dist/chat/logic/embedded-code.js +371 -0
- package/dist/chat/logic/fork.js +1 -0
- package/dist/chat/logic/goal.d.ts +6 -0
- package/dist/chat/logic/goal.js +26 -0
- package/dist/chat/logic/scrubber.d.ts +1 -1
- package/dist/chat/logic/scrubber.js +6 -5
- package/dist/chat/logic/thought.d.ts +3 -0
- package/dist/chat/logic/thought.js +35 -0
- package/dist/chat/logic/thread-cards.js +2 -0
- package/dist/chat/logic/timeline.d.ts +5 -0
- package/dist/chat/logic/timeline.js +22 -1
- package/dist/chat/logic/tool-catalog.d.ts +1 -0
- package/dist/chat/logic/tool-catalog.js +3 -1
- package/dist/chat/logic/tools.d.ts +14 -0
- package/dist/chat/logic/tools.js +57 -0
- package/dist/chat/preferences.d.ts +6 -0
- package/dist/chat/preferences.js +19 -3
- package/dist/chat/reading-width.d.ts +9 -0
- package/dist/chat/reading-width.js +27 -0
- package/dist/chat/send-key.d.ts +10 -0
- package/dist/chat/send-key.js +24 -0
- package/dist/chat/ui/BookmarkMarker.js +4 -2
- package/dist/chat/ui/BookmarkSubmenu.js +4 -3
- package/dist/chat/ui/ChatActivity.js +14 -10
- package/dist/chat/ui/ChatReferenceChip.js +3 -4
- package/dist/chat/ui/CodeBlock.d.ts +2 -1
- package/dist/chat/ui/CodeBlock.js +14 -96
- package/dist/chat/ui/Composer.d.ts +1 -1
- package/dist/chat/ui/Composer.js +117 -906
- package/dist/chat/ui/ComposerInput.js +5 -4
- package/dist/chat/ui/EditDiff.js +3 -2
- package/dist/chat/ui/GoalDock.d.ts +9 -0
- package/dist/chat/ui/GoalDock.js +63 -0
- package/dist/chat/ui/LimitState.js +5 -3
- package/dist/chat/ui/Markdown.d.ts +2 -1
- package/dist/chat/ui/Markdown.js +70 -31
- package/dist/chat/ui/MermaidBlock.d.ts +3 -0
- package/dist/chat/ui/MermaidBlock.js +73 -0
- package/dist/chat/ui/MessageActions.js +12 -7
- package/dist/chat/ui/Pickers.js +6 -5
- package/dist/chat/ui/PromptComposer.js +4 -3
- package/dist/chat/ui/RowTime.d.ts +3 -0
- package/dist/chat/ui/RowTime.js +12 -0
- package/dist/chat/ui/RunSettings.js +5 -4
- package/dist/chat/ui/ShellCommand.d.ts +3 -0
- package/dist/chat/ui/ShellCommand.js +110 -0
- package/dist/chat/ui/SubagentInfo.js +4 -3
- package/dist/chat/ui/SubagentStopButton.js +4 -3
- package/dist/chat/ui/SubagentTimeline.js +4 -1
- package/dist/chat/ui/Timeline.js +70 -40
- package/dist/chat/ui/TimelineMenu.d.ts +2 -1
- package/dist/chat/ui/TimelineMenu.js +18 -8
- package/dist/chat/ui/UnifiedDiff.js +3 -2
- package/dist/chat/ui/VisualFrame.js +6 -7
- package/dist/chat/ui/code-theme.d.ts +2 -1
- package/dist/chat/ui/code-theme.js +4 -4
- package/dist/chat/ui/composer/ComposerControls.d.ts +27 -0
- package/dist/chat/ui/composer/ComposerControls.js +34 -0
- package/dist/chat/ui/composer/ComposerMenu.d.ts +4 -0
- package/dist/chat/ui/composer/ComposerMenu.js +46 -0
- package/dist/chat/ui/composer/DraftParts.d.ts +18 -0
- package/dist/chat/ui/composer/DraftParts.js +25 -0
- package/dist/chat/ui/composer/QueuedMessages.d.ts +10 -0
- package/dist/chat/ui/composer/QueuedMessages.js +20 -0
- package/dist/chat/ui/composer/key-handler.d.ts +20 -0
- package/dist/chat/ui/composer/key-handler.js +150 -0
- package/dist/chat/ui/composer/keys.d.ts +7 -2
- package/dist/chat/ui/composer/keys.js +19 -9
- package/dist/chat/ui/composer/placeholder.d.ts +9 -0
- package/dist/chat/ui/composer/placeholder.js +38 -0
- package/dist/chat/ui/composer/use-chat-controls.d.ts +28 -0
- package/dist/chat/ui/composer/use-chat-controls.js +112 -0
- package/dist/chat/ui/composer/use-compaction-offer.d.ts +2 -0
- package/dist/chat/ui/composer/use-compaction-offer.js +23 -0
- package/dist/chat/ui/composer/use-composer-draft.d.ts +14 -0
- package/dist/chat/ui/composer/use-composer-draft.js +39 -0
- package/dist/chat/ui/composer/use-composer-menus.d.ts +52 -0
- package/dist/chat/ui/composer/use-composer-menus.js +232 -0
- package/dist/chat/ui/composer/use-composer-submit.d.ts +32 -0
- package/dist/chat/ui/composer/use-composer-submit.js +113 -0
- package/dist/chat/ui/composer/use-draft-files.d.ts +27 -0
- package/dist/chat/ui/composer/use-draft-files.js +111 -0
- package/dist/chat/ui/composer/use-notice.d.ts +6 -0
- package/dist/chat/ui/composer/use-notice.js +18 -0
- package/dist/chat/ui/composer/use-pending-requests.d.ts +2 -0
- package/dist/chat/ui/composer/use-pending-requests.js +22 -0
- package/dist/chat/ui/composer/use-prompt-history.d.ts +8 -0
- package/dist/chat/ui/composer/use-prompt-history.js +57 -0
- package/dist/chat/ui/composer/use-prompt-hold.d.ts +6 -0
- package/dist/chat/ui/composer/use-prompt-hold.js +48 -0
- package/dist/chat/ui/composer/use-take-back.d.ts +13 -0
- package/dist/chat/ui/composer/use-take-back.js +82 -0
- package/dist/chat/ui/diff/EditorEditDiff.js +4 -3
- package/dist/chat/ui/diff/LegacyDiffPool.js +3 -2
- package/dist/chat/ui/diff/LegacyEditDiff.js +3 -2
- package/dist/chat/ui/diff/LegacyUnifiedDiff.js +3 -2
- package/dist/chat/ui/diff/syntax-runtime.d.ts +2 -1
- package/dist/chat/ui/diff/syntax-runtime.js +9 -5
- package/dist/chat/ui/diff-syntax.d.ts +2 -2
- package/dist/chat/ui/diff-syntax.js +1 -2
- package/dist/chat/ui/diff-theme.js +10 -9
- package/dist/chat/ui/file-links.d.ts +1 -1
- package/dist/chat/ui/file-links.js +7 -5
- package/dist/chat/ui/highlighter.d.ts +27 -0
- package/dist/chat/ui/highlighter.js +151 -0
- package/dist/chat/ui/index.d.ts +67 -0
- package/dist/chat/ui/index.js +64 -0
- package/dist/chat/ui/intelligent-ui/UiReply.js +3 -2
- package/dist/chat/ui/intelligent-ui/renderers/content.js +3 -2
- package/dist/chat/ui/intelligent-ui/use-ui-links.js +2 -2
- package/dist/chat/ui/intelligent-ui/use-ui-queries.js +4 -3
- package/dist/chat/ui/markdown-blocks.d.ts +8 -0
- package/dist/chat/ui/markdown-blocks.js +260 -12
- package/dist/chat/ui/mermaid.d.ts +23 -0
- package/dist/chat/ui/mermaid.js +93 -0
- package/dist/chat/ui/rows/ForksRow.js +5 -3
- package/dist/chat/ui/rows/GeneratedImageRow.js +6 -4
- package/dist/chat/ui/rows/MessageRows.d.ts +4 -0
- package/dist/chat/ui/rows/MessageRows.js +36 -13
- package/dist/chat/ui/rows/Rows.js +3 -1
- package/dist/chat/ui/rows/SubagentRow.js +3 -2
- package/dist/chat/ui/rows/VisualRow.js +3 -2
- package/dist/chat/ui/rows/WorkRows.d.ts +6 -3
- package/dist/chat/ui/rows/WorkRows.js +57 -20
- package/dist/chat/ui/rows/WorkflowRow.js +3 -2
- package/dist/chat/ui/timestamp-format.d.ts +1 -0
- package/dist/chat/ui/timestamp-format.js +2 -0
- package/dist/chat/ui/use-diff-source-tokens.js +6 -3
- package/dist/chat/ui/visual-theme.js +3 -2
- package/dist/host.d.ts +9 -6
- package/dist/host.js +19 -8
- package/dist/index.d.ts +8 -0
- package/dist/index.js +9 -0
- package/dist/locales/en/agent-chat.d.ts +658 -0
- package/dist/locales/en/agent-chat.js +657 -0
- package/dist/locales/en/agent-prompts.d.ts +44 -0
- package/dist/locales/en/agent-prompts.js +43 -0
- package/dist/locales/en/agent-providers.d.ts +132 -0
- package/dist/locales/en/agent-providers.js +131 -0
- package/dist/locales/en/agent-usage.d.ts +132 -0
- package/dist/locales/en/agent-usage.js +131 -0
- package/dist/locales/nl/agent-chat.d.ts +658 -0
- package/dist/locales/nl/agent-chat.js +657 -0
- package/dist/locales/nl/agent-prompts.d.ts +44 -0
- package/dist/locales/nl/agent-prompts.js +43 -0
- package/dist/locales/nl/agent-providers.d.ts +132 -0
- package/dist/locales/nl/agent-providers.js +131 -0
- package/dist/locales/nl/agent-usage.d.ts +132 -0
- package/dist/locales/nl/agent-usage.js +131 -0
- package/dist/locales.js +9 -8
- package/dist/prompts/index.d.ts +11 -0
- package/dist/prompts/index.js +12 -0
- package/dist/prompts/logic/subjects.d.ts +2 -1
- package/dist/prompts/logic/subjects.js +6 -4
- package/dist/prompts/ui/ApprovalBody.js +6 -4
- package/dist/prompts/ui/PromptCard.js +5 -4
- package/dist/prompts/ui/PromptView.js +3 -2
- package/dist/prompts/ui/QuestionBody.js +3 -2
- package/dist/providers/AccountColors.js +2 -2
- package/dist/providers/AccountDetail.js +7 -6
- package/dist/providers/AccountVariables.js +3 -1
- package/dist/providers/AddAccountForm.js +3 -2
- package/dist/providers/ProvidersPane.js +4 -3
- package/dist/providers/account-actions.d.ts +4 -3
- package/dist/providers/account-actions.js +6 -7
- package/dist/providers/index.d.ts +16 -0
- package/dist/providers/index.js +17 -0
- package/dist/providers/provider-abilities.d.ts +2 -1
- package/dist/providers/provider-abilities.js +4 -0
- package/dist/state/chats.js +4 -2
- package/dist/state/index.d.ts +4 -0
- package/dist/state/index.js +5 -0
- package/dist/testing/index.d.ts +1 -0
- package/dist/testing/index.js +2 -0
- package/dist/{prompts/logic/prompts.fixtures.d.ts → testing/prompts.d.ts} +1 -1
- package/dist/theme.css +13 -3
- package/dist/usage/UsageBreakdown.js +3 -2
- package/dist/usage/UsageLimits.js +4 -3
- package/dist/usage/UsagePage.js +3 -2
- package/dist/usage/index.d.ts +15 -0
- package/dist/usage/index.js +15 -0
- package/package.json +53 -1031
- package/src/agents/AccountDot.tsx +3 -1
- package/src/agents/accounts.ts +6 -6
- package/src/chat/actions.ts +8 -5
- package/src/chat/bookmarks.ts +23 -14
- package/src/chat/chat-client.ts +8 -0
- package/src/chat/composer-send.ts +27 -0
- package/src/chat/forks.ts +27 -6
- package/src/chat/index.ts +98 -0
- package/src/chat/logic/embedded-code.ts +409 -0
- package/src/chat/logic/fork.ts +1 -0
- package/src/chat/logic/goal.ts +33 -0
- package/src/chat/logic/scrubber.ts +6 -5
- package/src/chat/logic/thought.ts +40 -0
- package/src/chat/logic/thread-cards.ts +2 -0
- package/src/chat/logic/timeline.ts +25 -1
- package/src/chat/logic/tool-catalog.ts +5 -1
- package/src/chat/logic/tools.ts +76 -0
- package/src/chat/preferences.ts +26 -3
- package/src/chat/reading-width.ts +39 -0
- package/src/chat/send-key.ts +38 -0
- package/src/chat/ui/BookmarkMarker.tsx +4 -2
- package/src/chat/ui/BookmarkSubmenu.tsx +4 -3
- package/src/chat/ui/ChatActivity.tsx +14 -10
- package/src/chat/ui/ChatReferenceChip.tsx +3 -4
- package/src/chat/ui/CodeBlock.tsx +33 -124
- package/src/chat/ui/Composer.tsx +162 -1324
- package/src/chat/ui/ComposerInput.tsx +5 -4
- package/src/chat/ui/EditDiff.tsx +3 -2
- package/src/chat/ui/GoalDock.tsx +104 -0
- package/src/chat/ui/LimitState.tsx +5 -3
- package/src/chat/ui/Markdown.tsx +113 -39
- package/src/chat/ui/MermaidBlock.tsx +119 -0
- package/src/chat/ui/MessageActions.tsx +13 -8
- package/src/chat/ui/Pickers.tsx +8 -7
- package/src/chat/ui/PromptComposer.tsx +4 -3
- package/src/chat/ui/RowTime.tsx +21 -0
- package/src/chat/ui/RunSettings.tsx +9 -4
- package/src/chat/ui/ShellCommand.tsx +134 -0
- package/src/chat/ui/SubagentInfo.tsx +4 -3
- package/src/chat/ui/SubagentStopButton.tsx +4 -3
- package/src/chat/ui/SubagentTimeline.tsx +5 -1
- package/src/chat/ui/Timeline.tsx +167 -105
- package/src/chat/ui/TimelineMenu.tsx +42 -7
- package/src/chat/ui/UnifiedDiff.tsx +3 -2
- package/src/chat/ui/VisualFrame.tsx +6 -7
- package/src/chat/ui/code-theme.ts +4 -4
- package/src/chat/ui/composer/ComposerControls.tsx +147 -0
- package/src/chat/ui/composer/ComposerMenu.tsx +138 -0
- package/src/chat/ui/composer/DraftParts.tsx +86 -0
- package/src/chat/ui/composer/QueuedMessages.tsx +64 -0
- package/src/chat/ui/composer/key-handler.ts +174 -0
- package/src/chat/ui/composer/keys.ts +32 -10
- package/src/chat/ui/composer/placeholder.ts +48 -0
- package/src/chat/ui/composer/use-chat-controls.ts +134 -0
- package/src/chat/ui/composer/use-compaction-offer.ts +25 -0
- package/src/chat/ui/composer/use-composer-draft.ts +71 -0
- package/src/chat/ui/composer/use-composer-menus.ts +289 -0
- package/src/chat/ui/composer/use-composer-submit.ts +163 -0
- package/src/chat/ui/composer/use-draft-files.ts +135 -0
- package/src/chat/ui/composer/use-notice.ts +28 -0
- package/src/chat/ui/composer/use-pending-requests.ts +23 -0
- package/src/chat/ui/composer/use-prompt-history.ts +76 -0
- package/src/chat/ui/composer/use-prompt-hold.ts +58 -0
- package/src/chat/ui/composer/use-take-back.ts +91 -0
- package/src/chat/ui/diff/DiffFallbackBoundary.tsx +2 -2
- package/src/chat/ui/diff/EditorEditDiff.tsx +4 -3
- package/src/chat/ui/diff/LegacyDiffPool.tsx +3 -2
- package/src/chat/ui/diff/LegacyEditDiff.tsx +3 -2
- package/src/chat/ui/diff/LegacyUnifiedDiff.tsx +3 -2
- package/src/chat/ui/diff/syntax-runtime.ts +10 -5
- package/src/chat/ui/diff-syntax.ts +2 -2
- package/src/chat/ui/diff-theme.ts +10 -9
- package/src/chat/ui/file-links.ts +7 -5
- package/src/chat/ui/highlighter.ts +185 -0
- package/src/chat/ui/index.ts +109 -0
- package/src/chat/ui/intelligent-ui/UiReply.tsx +5 -4
- package/src/chat/ui/intelligent-ui/renderers/content.tsx +3 -2
- package/src/chat/ui/intelligent-ui/use-ui-links.ts +2 -2
- package/src/chat/ui/intelligent-ui/use-ui-queries.ts +4 -3
- package/src/chat/ui/markdown-blocks.ts +300 -12
- package/src/chat/ui/mermaid.ts +118 -0
- package/src/chat/ui/rows/ForksRow.tsx +5 -3
- package/src/chat/ui/rows/GeneratedImageRow.tsx +6 -4
- package/src/chat/ui/rows/MessageRows.tsx +73 -18
- package/src/chat/ui/rows/Rows.tsx +14 -1
- package/src/chat/ui/rows/SubagentRow.tsx +3 -2
- package/src/chat/ui/rows/VisualRow.tsx +3 -2
- package/src/chat/ui/rows/WorkRows.tsx +148 -47
- package/src/chat/ui/rows/WorkflowRow.tsx +3 -2
- package/src/chat/ui/timestamp-format.ts +2 -0
- package/src/chat/ui/use-diff-source-tokens.ts +10 -4
- package/src/chat/ui/visual-theme.ts +3 -2
- package/src/host.ts +31 -15
- package/src/index.ts +49 -0
- package/src/locales/en/agent-chat.ts +657 -0
- package/src/locales/en/agent-prompts.ts +43 -0
- package/src/locales/en/agent-providers.ts +131 -0
- package/src/locales/en/agent-usage.ts +131 -0
- package/src/locales/nl/agent-chat.ts +657 -0
- package/src/locales/nl/agent-prompts.ts +43 -0
- package/src/locales/nl/agent-providers.ts +131 -0
- package/src/locales/nl/agent-usage.ts +132 -0
- package/src/locales.ts +9 -8
- package/src/prompts/index.ts +35 -0
- package/src/prompts/logic/subjects.ts +12 -4
- package/src/prompts/ui/ApprovalBody.tsx +6 -4
- package/src/prompts/ui/PromptCard.tsx +11 -4
- package/src/prompts/ui/PromptView.tsx +3 -2
- package/src/prompts/ui/QuestionBody.tsx +3 -2
- package/src/providers/AccountColors.tsx +2 -2
- package/src/providers/AccountDetail.tsx +13 -7
- package/src/providers/AccountVariables.tsx +3 -1
- package/src/providers/AddAccountForm.tsx +3 -2
- package/src/providers/ProvidersPane.tsx +4 -3
- package/src/providers/account-actions.ts +7 -7
- package/src/providers/index.ts +17 -0
- package/src/providers/provider-abilities.ts +6 -1
- package/src/state/chats.ts +4 -2
- package/src/state/index.ts +39 -0
- package/src/testing/index.ts +2 -0
- package/src/{prompts/logic/prompts.fixtures.ts → testing/prompts.ts} +1 -1
- package/src/theme.css +13 -3
- package/src/usage/UsageBreakdown.tsx +3 -2
- package/src/usage/UsageLimits.tsx +4 -3
- package/src/usage/UsagePage.tsx +3 -2
- package/src/usage/index.ts +16 -0
- package/dist/locales/en/agent-chat.json +0 -597
- package/dist/locales/en/agent-prompts.json +0 -43
- package/dist/locales/en/agent-providers.json +0 -131
- package/dist/locales/en/agent-usage.json +0 -131
- package/dist/locales/nl/agent-chat.json +0 -597
- package/dist/locales/nl/agent-prompts.json +0 -43
- package/dist/locales/nl/agent-providers.json +0 -131
- package/dist/locales/nl/agent-usage.json +0 -131
- package/src/locales/en/agent-chat.json +0 -597
- package/src/locales/en/agent-prompts.json +0 -43
- package/src/locales/en/agent-providers.json +0 -131
- package/src/locales/en/agent-usage.json +0 -131
- package/src/locales/nl/agent-chat.json +0 -597
- package/src/locales/nl/agent-prompts.json +0 -43
- package/src/locales/nl/agent-providers.json +0 -131
- package/src/locales/nl/agent-usage.json +0 -131
- /package/dist/{prompts/logic/prompts.fixtures.js → testing/prompts.js} +0 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { useChatHost } from '../../host.js';
|
|
2
|
+
import { shikiThemeOf } from './code-theme.js';
|
|
3
|
+
// A plain language needs no grammar; shiki draws it in the theme's own foreground.
|
|
4
|
+
const PLAIN = 'text';
|
|
5
|
+
/* Plain text when the highlighter has no grammar for `lang`, as a bundle without that language answers. */
|
|
6
|
+
async function grammarOf(loaded, lang) {
|
|
7
|
+
if (lang === PLAIN || loaded.getLoadedLanguages().includes(lang)) {
|
|
8
|
+
return lang;
|
|
9
|
+
}
|
|
10
|
+
try {
|
|
11
|
+
await loaded.loadLanguage(lang);
|
|
12
|
+
return lang;
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return PLAIN;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function createCodeHighlighter(source) {
|
|
19
|
+
let highlighter = null;
|
|
20
|
+
let highlighterLoad = null;
|
|
21
|
+
const languages = new Map();
|
|
22
|
+
const languageLoads = new Map();
|
|
23
|
+
const themes = new Set();
|
|
24
|
+
const themeLoads = new Map();
|
|
25
|
+
const tokenizers = new Map();
|
|
26
|
+
const load = () => {
|
|
27
|
+
highlighterLoad ??= source().then((loaded) => {
|
|
28
|
+
highlighter = loaded;
|
|
29
|
+
return loaded;
|
|
30
|
+
});
|
|
31
|
+
return highlighterLoad;
|
|
32
|
+
};
|
|
33
|
+
const ready = (langs, theme) => {
|
|
34
|
+
if (highlighter === null || !themes.has(theme)) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
for (const lang of langs) {
|
|
38
|
+
if (!languages.has(lang)) {
|
|
39
|
+
return null;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return highlighter;
|
|
43
|
+
};
|
|
44
|
+
const language = (lang) => languages.get(lang) ?? PLAIN;
|
|
45
|
+
return {
|
|
46
|
+
loadLanguage(lang) {
|
|
47
|
+
let pending = languageLoads.get(lang);
|
|
48
|
+
if (!pending) {
|
|
49
|
+
pending = load().then(async (loaded) => {
|
|
50
|
+
languages.set(lang, await grammarOf(loaded, lang));
|
|
51
|
+
});
|
|
52
|
+
languageLoads.set(lang, pending);
|
|
53
|
+
}
|
|
54
|
+
return pending;
|
|
55
|
+
},
|
|
56
|
+
loadTheme(theme, custom) {
|
|
57
|
+
let pending = themeLoads.get(theme);
|
|
58
|
+
if (!pending) {
|
|
59
|
+
pending = load().then(async (loaded) => {
|
|
60
|
+
// Loading a theme the highlighter already has replaces it, under whatever else of the host draws with it.
|
|
61
|
+
if (!loaded.getLoadedThemes().includes(theme)) {
|
|
62
|
+
await loaded.loadTheme(shikiThemeOf(theme, custom));
|
|
63
|
+
}
|
|
64
|
+
themes.add(theme);
|
|
65
|
+
});
|
|
66
|
+
themeLoads.set(theme, pending);
|
|
67
|
+
}
|
|
68
|
+
return pending;
|
|
69
|
+
},
|
|
70
|
+
ready,
|
|
71
|
+
language,
|
|
72
|
+
tokenizer(lang, theme) {
|
|
73
|
+
const loaded = ready([lang], theme);
|
|
74
|
+
if (loaded === null) {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
const resolved = language(lang);
|
|
78
|
+
const key = `${resolved}:${theme}`;
|
|
79
|
+
let entry = tokenizers.get(key);
|
|
80
|
+
if (!entry) {
|
|
81
|
+
const options = { lang: resolved, theme };
|
|
82
|
+
entry = {
|
|
83
|
+
tokenize: (code, state) => {
|
|
84
|
+
const result = loaded.codeToTokens(code, state ? { ...options, grammarState: state } : options);
|
|
85
|
+
return { lines: result.tokens, state: result.grammarState };
|
|
86
|
+
},
|
|
87
|
+
fg: loaded.getTheme(theme).fg
|
|
88
|
+
};
|
|
89
|
+
tokenizers.set(key, entry);
|
|
90
|
+
}
|
|
91
|
+
return entry;
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
// Shiki loads on the first code it draws, not with the app; the web bundle covers the languages a coding agent writes.
|
|
96
|
+
function loadBundled() {
|
|
97
|
+
return import('shiki/bundle/web').then(({ createHighlighter }) => createHighlighter({ themes: [], langs: [] }));
|
|
98
|
+
}
|
|
99
|
+
let bundled = null;
|
|
100
|
+
const borrowed = new WeakMap();
|
|
101
|
+
/* The highlighter a host lends, which stays the host's, or without one the web bundle's of this package. */
|
|
102
|
+
export function codeHighlighter(source) {
|
|
103
|
+
if (source === undefined) {
|
|
104
|
+
bundled ??= createCodeHighlighter(loadBundled);
|
|
105
|
+
return bundled;
|
|
106
|
+
}
|
|
107
|
+
let highlighter = borrowed.get(source);
|
|
108
|
+
if (highlighter === undefined) {
|
|
109
|
+
highlighter = createCodeHighlighter(source);
|
|
110
|
+
borrowed.set(source, highlighter);
|
|
111
|
+
}
|
|
112
|
+
return highlighter;
|
|
113
|
+
}
|
|
114
|
+
/* The code highlighter of the host this is rendered under. */
|
|
115
|
+
export function useCodeHighlighter() {
|
|
116
|
+
return codeHighlighter(useChatHost().code.highlighter);
|
|
117
|
+
}
|
|
118
|
+
/* Loads the grammar of one language into the web bundle's highlighter, once. */
|
|
119
|
+
export function loadLanguage(lang) {
|
|
120
|
+
return codeHighlighter().loadLanguage(lang);
|
|
121
|
+
}
|
|
122
|
+
/* Loads a theme into the web bundle's highlighter, once: one of `custom` by its name, or a bundled one by its id. */
|
|
123
|
+
export function loadTheme(theme, custom) {
|
|
124
|
+
return codeHighlighter().loadTheme(theme, custom);
|
|
125
|
+
}
|
|
126
|
+
/* The web bundle's highlighter once every one of `langs` and `theme` is in, or null while one is still on its way. */
|
|
127
|
+
export function readyHighlighter(langs, theme) {
|
|
128
|
+
return codeHighlighter().ready(langs, theme);
|
|
129
|
+
}
|
|
130
|
+
/* The language the web bundle draws `lang` in: the bundled grammar, or plain text. Only meaningful once a load settled. */
|
|
131
|
+
export function loadedLanguage(lang) {
|
|
132
|
+
return codeHighlighter().language(lang);
|
|
133
|
+
}
|
|
134
|
+
/* The web bundle's tokenizer for a language in a theme, or null while shiki, the grammar or the theme is still on its way. */
|
|
135
|
+
export function tokenizerFor(lang, theme) {
|
|
136
|
+
return codeHighlighter().tokenizer(lang, theme);
|
|
137
|
+
}
|
|
138
|
+
/* The inline style of one token; undefined when it only has the surrounding color. */
|
|
139
|
+
export function tokenStyle(token) {
|
|
140
|
+
const style = token.fontStyle ?? 0;
|
|
141
|
+
if (token.color === undefined && style <= 0) {
|
|
142
|
+
return undefined;
|
|
143
|
+
}
|
|
144
|
+
const decorations = [style & 4 ? 'underline' : '', style & 8 ? 'line-through' : ''].filter(Boolean).join(' ');
|
|
145
|
+
return {
|
|
146
|
+
color: token.color,
|
|
147
|
+
...(style & 1 ? { fontStyle: 'italic' } : {}),
|
|
148
|
+
...(style & 2 ? { fontWeight: 'bold' } : {}),
|
|
149
|
+
...(decorations ? { textDecoration: decorations } : {})
|
|
150
|
+
};
|
|
151
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export { AccountPill } from './AccountPill.js';
|
|
2
|
+
export { AnsiOutput } from './AnsiOutput.js';
|
|
3
|
+
export { BookmarkMarker } from './BookmarkMarker.js';
|
|
4
|
+
export { BookmarkSubmenu } from './BookmarkSubmenu.js';
|
|
5
|
+
export { ChatActivity, StatusIcon } from './ChatActivity.js';
|
|
6
|
+
export { ChatReferenceChip } from './ChatReferenceChip.js';
|
|
7
|
+
export { CodeBlock } from './CodeBlock.js';
|
|
8
|
+
export { Composer } from './Composer.js';
|
|
9
|
+
export { type ComposerInputHandle, ComposerInput, type InputSelection } from './ComposerInput.js';
|
|
10
|
+
export { default as DiffPool } from './DiffPool.js';
|
|
11
|
+
export { default as EditDiff } from './EditDiff.js';
|
|
12
|
+
export { FadingWords } from './FadingWords.js';
|
|
13
|
+
export { GoalDock, GoalPill } from './GoalDock.js';
|
|
14
|
+
export { ImageThumb, type ImageThumbProps } from './ImageView.js';
|
|
15
|
+
export { LimitDock, LimitPill } from './LimitState.js';
|
|
16
|
+
export { ReplyMarkdown, MessageMarkdown, Markdown } from './Markdown.js';
|
|
17
|
+
export { MermaidBlock } from './MermaidBlock.js';
|
|
18
|
+
export { MessageActions } from './MessageActions.js';
|
|
19
|
+
export { ModelPicker, StashPicker } from './Pickers.js';
|
|
20
|
+
export { type PromptHold, PromptComposer } from './PromptComposer.js';
|
|
21
|
+
export { QuoteButton } from './QuoteButton.js';
|
|
22
|
+
export { ResumeCompactionDock } from './ResumeCompactionDock.js';
|
|
23
|
+
export { RowTime } from './RowTime.js';
|
|
24
|
+
export { RunSettings } from './RunSettings.js';
|
|
25
|
+
export { Scrubber, type CardChat } from './Scrubber.js';
|
|
26
|
+
export { SubagentTitleCrumb, SubagentBreadcrumb, SubagentActions } from './SubagentControls.js';
|
|
27
|
+
export { SubagentInfo } from './SubagentInfo.js';
|
|
28
|
+
export { SubagentStopButton } from './SubagentStopButton.js';
|
|
29
|
+
export { SubagentTimeline } from './SubagentTimeline.js';
|
|
30
|
+
export { Timeline } from './Timeline.js';
|
|
31
|
+
export { TimelineMenuPopup, BookmarkMenuItems } from './TimelineMenu.js';
|
|
32
|
+
export { default as UnifiedDiff } from './UnifiedDiff.js';
|
|
33
|
+
export { UploadThumb } from './UploadThumb.js';
|
|
34
|
+
export { VisualDialogs } from './VisualDialogs.js';
|
|
35
|
+
export { type VisualFrameProps, VisualFrame } from './VisualFrame.js';
|
|
36
|
+
export { WelcomeGreeting } from './Welcome.js';
|
|
37
|
+
export { chipDecorations, type ChipChoices } from './composer/chips.js';
|
|
38
|
+
export { externalChange, markdownLanguage, composerEditorExtensions } from './composer/editor.js';
|
|
39
|
+
export { insertAtSelection } from './composer/insert.js';
|
|
40
|
+
export { listItemAt, enterAction, inOpenFence, recallDirection, type EnterAction, type EnterKeys, type ListItem, type EnterContext, type RecallContext } from './composer/keys.js';
|
|
41
|
+
export { createDiffSyntaxRuntime, diffSyntaxRuntime, type DiffSyntaxRuntime, type DiffSyntaxRuntimeOptions, type DiffSyntaxSession, type DiffSyntaxMapping, type DiffSourceTokenSession, diffSourceTokens } from './diff-syntax.js';
|
|
42
|
+
export { useDiffTheme } from './diff-theme.js';
|
|
43
|
+
export type { UnifiedDiffProps } from './diff/diff-props.js';
|
|
44
|
+
export { FileLinkContext, useFileLinkCwd, useFileLinkScopeId, useOpenFileLink } from './file-links.js';
|
|
45
|
+
export { type ChatFindField, type FindReveal, useOpenForFind } from './find-reveal.js';
|
|
46
|
+
export type { DiffContents } from './full-diff.js';
|
|
47
|
+
export { type UiBlockFrameProps, UiBlockFrame, type UiBlockFix, type UiBlockFooterProps } from './intelligent-ui/UiBlockFrame.js';
|
|
48
|
+
export { UiFallbackPart, type UiFallbackProblem } from './intelligent-ui/UiFallbackPart.js';
|
|
49
|
+
export { UiReply } from './intelligent-ui/UiReply.js';
|
|
50
|
+
export { uiChartData, type UiChartSeries, type UiChartValues, type UiChartData } from './intelligent-ui/chart-data.js';
|
|
51
|
+
export { uiNodeLabel } from './intelligent-ui/node-text.js';
|
|
52
|
+
export { UI_RENDERERS } from './intelligent-ui/registry.js';
|
|
53
|
+
export type { UiRenderContext, UiRendererProps, UiLinkTarget, UiLink, UiAnswer, UiLiveStatus, UiLiveValue, UiRenderer, UiRenderers } from './intelligent-ui/render-context.js';
|
|
54
|
+
export { uiTableColumns, type UiColumnKind, type UiTableColumn } from './intelligent-ui/table-data.js';
|
|
55
|
+
export type { QuoteTaker } from './quote-selection.js';
|
|
56
|
+
export { ReplyContext } from './reply-context.js';
|
|
57
|
+
export { ForksRow } from './rows/ForksRow.js';
|
|
58
|
+
export { GeneratedImageRow } from './rows/GeneratedImageRow.js';
|
|
59
|
+
export { UserRow, ReportRow, ReplyHeader, AssistantRow, ThinkingRow, LiveThoughtRow, NoteRow, AgentTurnRow, CompactionRow, ApprovalHistoryRow, QuestionHistoryRow } from './rows/MessageRows.js';
|
|
60
|
+
export { type RowContainerProps, RowContainer } from './rows/RowContainer.js';
|
|
61
|
+
export { Row, type RowProps } from './rows/Rows.js';
|
|
62
|
+
export { SubagentRow, SubagentBranchRow } from './rows/SubagentRow.js';
|
|
63
|
+
export { TaskRow } from './rows/TaskRow.js';
|
|
64
|
+
export { VisualRow } from './rows/VisualRow.js';
|
|
65
|
+
export { ToggleLine, WorkRow, RunningFor, WorkLiveRow, WorkGroupRow, TurnFoldRow, ChangedFilesRow, WorkingRow } from './rows/WorkRows.js';
|
|
66
|
+
export { WorkflowRow } from './rows/WorkflowRow.js';
|
|
67
|
+
export { useDiffSourceTokens } from './use-diff-source-tokens.js';
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// Public API: exports.test.ts snapshots this list, so a name added or dropped here is an API change.
|
|
2
|
+
export { AccountPill } from './AccountPill.js';
|
|
3
|
+
export { AnsiOutput } from './AnsiOutput.js';
|
|
4
|
+
export { BookmarkMarker } from './BookmarkMarker.js';
|
|
5
|
+
export { BookmarkSubmenu } from './BookmarkSubmenu.js';
|
|
6
|
+
export { ChatActivity, StatusIcon } from './ChatActivity.js';
|
|
7
|
+
export { ChatReferenceChip } from './ChatReferenceChip.js';
|
|
8
|
+
export { CodeBlock } from './CodeBlock.js';
|
|
9
|
+
export { Composer } from './Composer.js';
|
|
10
|
+
export { ComposerInput } from './ComposerInput.js';
|
|
11
|
+
export { default as DiffPool } from './DiffPool.js';
|
|
12
|
+
export { default as EditDiff } from './EditDiff.js';
|
|
13
|
+
export { FadingWords } from './FadingWords.js';
|
|
14
|
+
export { GoalDock, GoalPill } from './GoalDock.js';
|
|
15
|
+
export { ImageThumb } from './ImageView.js';
|
|
16
|
+
export { LimitDock, LimitPill } from './LimitState.js';
|
|
17
|
+
export { ReplyMarkdown, MessageMarkdown, Markdown } from './Markdown.js';
|
|
18
|
+
export { MermaidBlock } from './MermaidBlock.js';
|
|
19
|
+
export { MessageActions } from './MessageActions.js';
|
|
20
|
+
export { ModelPicker, StashPicker } from './Pickers.js';
|
|
21
|
+
export { PromptComposer } from './PromptComposer.js';
|
|
22
|
+
export { QuoteButton } from './QuoteButton.js';
|
|
23
|
+
export { ResumeCompactionDock } from './ResumeCompactionDock.js';
|
|
24
|
+
export { RowTime } from './RowTime.js';
|
|
25
|
+
export { RunSettings } from './RunSettings.js';
|
|
26
|
+
export { Scrubber } from './Scrubber.js';
|
|
27
|
+
export { SubagentTitleCrumb, SubagentBreadcrumb, SubagentActions } from './SubagentControls.js';
|
|
28
|
+
export { SubagentInfo } from './SubagentInfo.js';
|
|
29
|
+
export { SubagentStopButton } from './SubagentStopButton.js';
|
|
30
|
+
export { SubagentTimeline } from './SubagentTimeline.js';
|
|
31
|
+
export { Timeline } from './Timeline.js';
|
|
32
|
+
export { TimelineMenuPopup, BookmarkMenuItems } from './TimelineMenu.js';
|
|
33
|
+
export { default as UnifiedDiff } from './UnifiedDiff.js';
|
|
34
|
+
export { UploadThumb } from './UploadThumb.js';
|
|
35
|
+
export { VisualDialogs } from './VisualDialogs.js';
|
|
36
|
+
export { VisualFrame } from './VisualFrame.js';
|
|
37
|
+
export { WelcomeGreeting } from './Welcome.js';
|
|
38
|
+
export { chipDecorations } from './composer/chips.js';
|
|
39
|
+
export { externalChange, markdownLanguage, composerEditorExtensions } from './composer/editor.js';
|
|
40
|
+
export { insertAtSelection } from './composer/insert.js';
|
|
41
|
+
export { listItemAt, enterAction, inOpenFence, recallDirection } from './composer/keys.js';
|
|
42
|
+
export { createDiffSyntaxRuntime, diffSyntaxRuntime, diffSourceTokens } from './diff-syntax.js';
|
|
43
|
+
export { useDiffTheme } from './diff-theme.js';
|
|
44
|
+
export { FileLinkContext, useFileLinkCwd, useFileLinkScopeId, useOpenFileLink } from './file-links.js';
|
|
45
|
+
export { useOpenForFind } from './find-reveal.js';
|
|
46
|
+
export { UiBlockFrame } from './intelligent-ui/UiBlockFrame.js';
|
|
47
|
+
export { UiFallbackPart } from './intelligent-ui/UiFallbackPart.js';
|
|
48
|
+
export { UiReply } from './intelligent-ui/UiReply.js';
|
|
49
|
+
export { uiChartData } from './intelligent-ui/chart-data.js';
|
|
50
|
+
export { uiNodeLabel } from './intelligent-ui/node-text.js';
|
|
51
|
+
export { UI_RENDERERS } from './intelligent-ui/registry.js';
|
|
52
|
+
export { uiTableColumns } from './intelligent-ui/table-data.js';
|
|
53
|
+
export { ReplyContext } from './reply-context.js';
|
|
54
|
+
export { ForksRow } from './rows/ForksRow.js';
|
|
55
|
+
export { GeneratedImageRow } from './rows/GeneratedImageRow.js';
|
|
56
|
+
export { UserRow, ReportRow, ReplyHeader, AssistantRow, ThinkingRow, LiveThoughtRow, NoteRow, AgentTurnRow, CompactionRow, ApprovalHistoryRow, QuestionHistoryRow } from './rows/MessageRows.js';
|
|
57
|
+
export { RowContainer } from './rows/RowContainer.js';
|
|
58
|
+
export { Row } from './rows/Rows.js';
|
|
59
|
+
export { SubagentRow, SubagentBranchRow } from './rows/SubagentRow.js';
|
|
60
|
+
export { TaskRow } from './rows/TaskRow.js';
|
|
61
|
+
export { VisualRow } from './rows/VisualRow.js';
|
|
62
|
+
export { ToggleLine, WorkRow, RunningFor, WorkLiveRow, WorkGroupRow, TurnFoldRow, ChangedFilesRow, WorkingRow } from './rows/WorkRows.js';
|
|
63
|
+
export { WorkflowRow } from './rows/WorkflowRow.js';
|
|
64
|
+
export { useDiffSourceTokens } from './use-diff-source-tokens.js';
|
|
@@ -4,7 +4,7 @@ import ReactMarkdown, {} from 'react-markdown';
|
|
|
4
4
|
import { useTranslation } from 'react-i18next';
|
|
5
5
|
import { evaluateUiBlock, uiInputValues, isUiComponent, UI_CATALOG_VERSION, UiState } from '@adecore/intelligent-ui';
|
|
6
6
|
import { ErrorBoundary, Tooltip } from '@adecore/ui';
|
|
7
|
-
import {
|
|
7
|
+
import { useChatHost } from '../../../host.js';
|
|
8
8
|
import { UiReplyNavigationContext } from '../reply-context.js';
|
|
9
9
|
import { ReplyMarkdown } from '../Markdown.js';
|
|
10
10
|
import { rehypeFadeWords } from '../rehype-fade.js';
|
|
@@ -233,6 +233,7 @@ function UiNodeBody({ node, parent, texts, context }) {
|
|
|
233
233
|
return (_jsx(Renderer, { node: node, context: context, children: _jsx(UiNodes, { nodes: node.children, parent: node.type, texts: texts, context: context }) }));
|
|
234
234
|
}
|
|
235
235
|
function UiBlockBody({ block, context, answered, frozen }) {
|
|
236
|
+
const host = useChatHost();
|
|
236
237
|
const { t } = useTranslation('agent-chat');
|
|
237
238
|
const key = JSON.stringify([context.scopeId, context.chatId, context.itemId, block.id]);
|
|
238
239
|
const [state] = useState(() => localState(key, block, answered));
|
|
@@ -273,7 +274,7 @@ function UiBlockBody({ block, context, answered, frozen }) {
|
|
|
273
274
|
: undefined
|
|
274
275
|
}), [sources, element]);
|
|
275
276
|
const liveValue = useUiLiveValues(block, evaluation.nodes, queries.currentReadings);
|
|
276
|
-
const sendChoice =
|
|
277
|
+
const sendChoice = host.intelligentUi?.sendChoice;
|
|
277
278
|
const rendering = {
|
|
278
279
|
...context,
|
|
279
280
|
...links,
|
|
@@ -4,7 +4,7 @@ import { createContext, useContext, useId } from 'react';
|
|
|
4
4
|
import { useTranslation } from 'react-i18next';
|
|
5
5
|
import { PreviewCard, Tooltip } from '@adecore/ui';
|
|
6
6
|
import { formatNumber } from '@adecore/ui/format';
|
|
7
|
-
import {
|
|
7
|
+
import { useChatHost } from '../../../../host.js';
|
|
8
8
|
import { CodeBlock } from '../../CodeBlock.js';
|
|
9
9
|
import { CodeStreamingContext } from '../../code-streaming.js';
|
|
10
10
|
import { ImageThumb } from '../../ImageView.js';
|
|
@@ -18,7 +18,8 @@ export function CodeBlockRenderer({ node }) {
|
|
|
18
18
|
}
|
|
19
19
|
/* Its own component, so the host's hook is only called for an image that names an attachment. */
|
|
20
20
|
function AttachedImage({ scopeId, chatId, attachmentId, alt }) {
|
|
21
|
-
const
|
|
21
|
+
const host = useChatHost();
|
|
22
|
+
const source = host.attachments.useUrl(scopeId, chatId, attachmentId);
|
|
22
23
|
return _jsx(ImageThumb, { source: source, alt: alt, className: "max-h-70 max-w-full object-contain" });
|
|
23
24
|
}
|
|
24
25
|
/*
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
2
2
|
import { uiLinkTargets } from '@adecore/intelligent-ui/links';
|
|
3
3
|
import { uiInputValues, UI_HOST_LIMITS, UiState } from '@adecore/intelligent-ui';
|
|
4
|
-
import {
|
|
4
|
+
import { useChatHost } from '../../../host.js';
|
|
5
5
|
// Inputs that change in a run, such as a dragged slider, check their links once the run rested.
|
|
6
6
|
const LINK_SETTLE_MS = 300;
|
|
7
7
|
export function useUiLinks(block, state, context, reads, frozen) {
|
|
8
8
|
const [checked, setChecked] = useState({});
|
|
9
9
|
// What each node was last checked as, so a change of input checks only the targets it moved.
|
|
10
10
|
const asked = useRef(new Map());
|
|
11
|
-
const host =
|
|
11
|
+
const host = useChatHost().intelligentUi;
|
|
12
12
|
const values = uiInputValues(block, state);
|
|
13
13
|
const scope = state.scope();
|
|
14
14
|
const queryValues = Object.fromEntries(Object.keys(block.queries)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useEffect, useMemo, useRef, useState } from 'react';
|
|
2
2
|
import { uiInputValues, UI_CATALOG_VERSION, UI_HOST_LIMITS, UiState } from '@adecore/intelligent-ui';
|
|
3
|
-
import {
|
|
3
|
+
import { useChatHost } from '../../../host.js';
|
|
4
4
|
const NO_READINGS = {};
|
|
5
5
|
// A changed input reads once it has rested this long, so dragging a slider reads its last value only.
|
|
6
6
|
const INPUT_SETTLE_MS = 300;
|
|
@@ -18,6 +18,7 @@ function documentVisible() {
|
|
|
18
18
|
return document.visibilityState !== 'hidden';
|
|
19
19
|
}
|
|
20
20
|
export function useUiQueries(block, state, context, element, frozen) {
|
|
21
|
+
const host = useChatHost();
|
|
21
22
|
const [readings, setReadings] = useState({});
|
|
22
23
|
const [busyInput, setBusyInput] = useState(null);
|
|
23
24
|
const lastRead = useRef({ inputKey: '', at: 0 });
|
|
@@ -44,8 +45,8 @@ export function useUiQueries(block, state, context, element, frozen) {
|
|
|
44
45
|
};
|
|
45
46
|
const reads = readsFor(JSON.parse(inputs));
|
|
46
47
|
const ready = reads !== null;
|
|
47
|
-
const query =
|
|
48
|
-
const subscribe =
|
|
48
|
+
const query = host.intelligentUi?.query;
|
|
49
|
+
const subscribe = host.intelligentUi?.subscribe;
|
|
49
50
|
useEffect(() => {
|
|
50
51
|
const scope = state.scope();
|
|
51
52
|
for (const name of Object.keys(block.queries)) {
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
export interface MarkdownBlock {
|
|
2
2
|
text: string;
|
|
3
3
|
openFence: boolean;
|
|
4
|
+
fence?: MarkdownFence;
|
|
5
|
+
}
|
|
6
|
+
export interface MarkdownFence {
|
|
7
|
+
marker: string;
|
|
8
|
+
info: string;
|
|
9
|
+
body: string;
|
|
10
|
+
closed: boolean;
|
|
11
|
+
source: string;
|
|
4
12
|
}
|
|
5
13
|
export declare function splitMarkdownBlocks(text: string): MarkdownBlock[];
|
|
6
14
|
export declare function settledBlocksText(text: string): string;
|