@adecore/agents-react 0.31.12 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/AccountDot.js +57 -6
- package/dist/agents/AgentIcon.js +88 -12
- package/dist/agents/ModelOptionControl.js +153 -18
- package/dist/agents/ProviderLogo.js +49 -4
- package/dist/agents/account-limits.js +17 -14
- package/dist/agents/accounts.js +99 -67
- package/dist/agents/agent-marks.js +5 -3
- package/dist/agents/model-name.js +42 -31
- package/dist/agents/model-options.js +8 -8
- package/dist/agents/model-requirement.js +17 -14
- package/dist/agents/option-words.d.ts +7 -0
- package/dist/agents/option-words.js +35 -0
- package/dist/agents/provider-paths.js +6 -6
- package/dist/agents/status-look.js +32 -12
- package/dist/chat/account-choice.d.ts +13 -0
- package/dist/chat/account-choice.js +90 -20
- package/dist/chat/actions.js +126 -59
- package/dist/chat/activity.js +5 -5
- package/dist/chat/attachments.js +74 -53
- package/dist/chat/bookmarks.js +58 -48
- package/dist/chat/chat-client.js +344 -263
- package/dist/chat/chat-references.js +3 -3
- package/dist/chat/composer-effort.d.ts +5 -0
- package/dist/chat/composer-effort.js +26 -0
- package/dist/chat/composer-send.js +13 -13
- package/dist/chat/drafts.js +115 -79
- package/dist/chat/forks.js +81 -24
- package/dist/chat/guards.js +15 -43
- package/dist/chat/index.d.ts +3 -1
- package/dist/chat/index.js +3 -2
- package/dist/chat/logic/ansi.js +170 -167
- package/dist/chat/logic/answers.js +2 -2
- package/dist/chat/logic/bookmarks.js +19 -19
- package/dist/chat/logic/command-looks.js +138 -96
- package/dist/chat/logic/context-usage.js +13 -9
- package/dist/chat/logic/continue-after-stop.js +15 -19
- package/dist/chat/logic/effort.d.ts +14 -0
- package/dist/chat/logic/effort.js +34 -0
- package/dist/chat/logic/embedded-code.js +387 -326
- package/dist/chat/logic/fork.js +134 -110
- package/dist/chat/logic/generated-image.js +54 -23
- package/dist/chat/logic/goal.js +28 -20
- package/dist/chat/logic/handback.js +6 -6
- package/dist/chat/logic/json.js +2 -2
- package/dist/chat/logic/limit.js +46 -30
- package/dist/chat/logic/picker-entries.d.ts +5 -3
- package/dist/chat/logic/picker-entries.js +83 -43
- package/dist/chat/logic/resume-compaction.d.ts +14 -1
- package/dist/chat/logic/resume-compaction.js +93 -24
- package/dist/chat/logic/scrubber.js +188 -136
- package/dist/chat/logic/thought.js +13 -16
- package/dist/chat/logic/thread-cards.js +60 -48
- package/dist/chat/logic/timeline-copy.js +30 -38
- package/dist/chat/logic/timeline-target.js +92 -63
- package/dist/chat/logic/timeline.js +499 -355
- package/dist/chat/logic/tool-catalog.js +54 -34
- package/dist/chat/logic/tools.js +106 -82
- package/dist/chat/logic/visual-height.js +18 -18
- package/dist/chat/logic/visual-viewport.js +6 -3
- package/dist/chat/logic/welcome.js +9 -9
- package/dist/chat/logic/workflow.js +45 -34
- package/dist/chat/mentions.js +149 -109
- package/dist/chat/persisted-json.js +51 -54
- package/dist/chat/preferences.d.ts +4 -0
- package/dist/chat/preferences.js +162 -84
- package/dist/chat/prompt-hold.js +9 -9
- package/dist/chat/quote.js +21 -30
- package/dist/chat/reading-width.js +12 -10
- package/dist/chat/recent-messages.js +34 -21
- package/dist/chat/resume-compaction-dismissals.js +25 -5
- package/dist/chat/runtime-modes.js +3 -3
- package/dist/chat/send-key.js +11 -7
- package/dist/chat/stash.js +89 -69
- package/dist/chat/subagent-conversation.js +181 -139
- package/dist/chat/subagent-list.js +65 -67
- package/dist/chat/subagent-support.js +12 -7
- package/dist/chat/subagent-view.js +132 -44
- package/dist/chat/thumbnails.js +88 -60
- package/dist/chat/timeline-flash.js +24 -12
- package/dist/chat/timeline-scroll.js +116 -86
- package/dist/chat/ui/AccountPill.js +126 -15
- package/dist/chat/ui/AnsiOutput.js +62 -6
- package/dist/chat/ui/BookmarkMarker.js +231 -41
- package/dist/chat/ui/BookmarkSubmenu.js +165 -18
- package/dist/chat/ui/ChatActivity.js +649 -70
- package/dist/chat/ui/ChatReferenceChip.js +104 -9
- package/dist/chat/ui/CodeBlock.js +132 -58
- package/dist/chat/ui/Composer.js +866 -132
- package/dist/chat/ui/ComposerInput.js +309 -120
- package/dist/chat/ui/DiffPool.js +75 -14
- package/dist/chat/ui/EditDiff.js +160 -21
- package/dist/chat/ui/FadingWords.js +32 -3
- package/dist/chat/ui/GoalDock.js +235 -42
- package/dist/chat/ui/ImageView.js +617 -61
- package/dist/chat/ui/LimitState.js +446 -72
- package/dist/chat/ui/Markdown.js +991 -173
- package/dist/chat/ui/MermaidBlock.js +238 -68
- package/dist/chat/ui/MessageActions.js +251 -39
- package/dist/chat/ui/ModelMarks.js +55 -5
- package/dist/chat/ui/Pickers.js +664 -113
- package/dist/chat/ui/PromptComposer.js +281 -51
- package/dist/chat/ui/QuoteButton.js +151 -57
- package/dist/chat/ui/ResumeCompactionDock.d.ts +6 -2
- package/dist/chat/ui/ResumeCompactionDock.js +141 -6
- package/dist/chat/ui/RowTime.js +59 -5
- package/dist/chat/ui/RunSettings.js +1744 -154
- package/dist/chat/ui/Scrubber.js +517 -88
- package/dist/chat/ui/ShellCommand.js +183 -107
- package/dist/chat/ui/SubagentControls.js +212 -24
- package/dist/chat/ui/SubagentInfo.js +170 -13
- package/dist/chat/ui/SubagentStopButton.js +115 -24
- package/dist/chat/ui/SubagentTimeline.js +357 -91
- package/dist/chat/ui/Timeline.js +988 -476
- package/dist/chat/ui/TimelineMenu.js +552 -37
- package/dist/chat/ui/UnifiedDiff.js +234 -27
- package/dist/chat/ui/UploadThumb.js +37 -7
- package/dist/chat/ui/VisualDialogs.js +251 -20
- package/dist/chat/ui/VisualFrame.js +321 -95
- package/dist/chat/ui/Welcome.js +72 -7
- package/dist/chat/ui/chips.js +1 -1
- package/dist/chat/ui/code-lines.js +36 -36
- package/dist/chat/ui/code-streaming.js +1 -1
- package/dist/chat/ui/code-theme.js +7 -7
- package/dist/chat/ui/composer/ComposerControls.js +329 -21
- package/dist/chat/ui/composer/ComposerMenu.js +358 -30
- package/dist/chat/ui/composer/DraftParts.js +185 -11
- package/dist/chat/ui/composer/QueuedMessages.js +138 -13
- package/dist/chat/ui/composer/chips.js +29 -19
- package/dist/chat/ui/composer/editor.js +79 -63
- package/dist/chat/ui/composer/insert.js +26 -12
- package/dist/chat/ui/composer/key-handler.js +180 -127
- package/dist/chat/ui/composer/keys.js +90 -73
- package/dist/chat/ui/composer/menu-aria.js +18 -9
- package/dist/chat/ui/composer/placeholder.js +78 -31
- package/dist/chat/ui/composer/surface.js +13 -37
- package/dist/chat/ui/composer/use-chat-controls.js +230 -90
- package/dist/chat/ui/composer/use-compaction-offer.js +50 -18
- package/dist/chat/ui/composer/use-composer-draft.js +65 -34
- package/dist/chat/ui/composer/use-composer-menus.js +478 -193
- package/dist/chat/ui/composer/use-composer-submit.js +251 -109
- package/dist/chat/ui/composer/use-continuable-turn.js +33 -6
- package/dist/chat/ui/composer/use-draft-files.js +245 -93
- package/dist/chat/ui/composer/use-effort-stepper.d.ts +13 -0
- package/dist/chat/ui/composer/use-effort-stepper.js +88 -0
- package/dist/chat/ui/composer/use-notice.js +61 -16
- package/dist/chat/ui/composer/use-pending-requests.js +38 -17
- package/dist/chat/ui/composer/use-prompt-history.js +117 -45
- package/dist/chat/ui/composer/use-prompt-hold.js +119 -35
- package/dist/chat/ui/composer/use-take-back.js +94 -72
- package/dist/chat/ui/diff/ApprovalReview.js +101 -23
- package/dist/chat/ui/diff/DiffFallbackBoundary.js +21 -13
- package/dist/chat/ui/diff/DiffOmitted.js +56 -6
- package/dist/chat/ui/diff/DiffStack.js +92 -8
- package/dist/chat/ui/diff/DiffUnavailable.js +56 -6
- package/dist/chat/ui/diff/EditorEditDiff.js +263 -51
- package/dist/chat/ui/diff/EditorPatchDiff.js +39 -14
- package/dist/chat/ui/diff/LegacyDiffPool.js +27 -10
- package/dist/chat/ui/diff/LegacyEditDiff.js +97 -20
- package/dist/chat/ui/diff/LegacyUnifiedDiff.js +172 -42
- package/dist/chat/ui/diff/RawDiff.js +65 -5
- package/dist/chat/ui/diff/ReviewDiff.js +77 -5
- package/dist/chat/ui/diff/diff-props.js +1 -1
- package/dist/chat/ui/diff/diff-source-budget.js +46 -35
- package/dist/chat/ui/diff/editor-edit-model.js +18 -14
- package/dist/chat/ui/diff/review-plan.js +63 -40
- package/dist/chat/ui/diff/review-settle.js +24 -9
- package/dist/chat/ui/diff/syntax-runtime.js +236 -201
- package/dist/chat/ui/diff/use-review-stack.js +146 -25
- package/dist/chat/ui/diff-syntax.js +70 -58
- package/dist/chat/ui/diff-theme.js +31 -12
- package/dist/chat/ui/file-links.js +39 -10
- package/dist/chat/ui/find-reveal.js +29 -8
- package/dist/chat/ui/full-diff.js +17 -12
- package/dist/chat/ui/highlighter.js +143 -113
- package/dist/chat/ui/icons.js +16 -7
- package/dist/chat/ui/index.js +1 -1
- package/dist/chat/ui/intelligent-ui/UiBlockFrame.js +556 -82
- package/dist/chat/ui/intelligent-ui/UiFallbackPart.js +73 -5
- package/dist/chat/ui/intelligent-ui/UiReply.js +666 -262
- package/dist/chat/ui/intelligent-ui/block-local.js +59 -31
- package/dist/chat/ui/intelligent-ui/chart-data.js +77 -67
- package/dist/chat/ui/intelligent-ui/node-text.js +77 -91
- package/dist/chat/ui/intelligent-ui/registry.js +46 -46
- package/dist/chat/ui/intelligent-ui/render-context.js +1 -1
- package/dist/chat/ui/intelligent-ui/renderers/base-land.js +1 -1
- package/dist/chat/ui/intelligent-ui/renderers/binding.js +3 -3
- package/dist/chat/ui/intelligent-ui/renderers/chart.js +1223 -123
- package/dist/chat/ui/intelligent-ui/renderers/choices.js +312 -34
- package/dist/chat/ui/intelligent-ui/renderers/content.js +1241 -86
- package/dist/chat/ui/intelligent-ui/renderers/data.js +619 -54
- package/dist/chat/ui/intelligent-ui/renderers/inputs.js +868 -67
- package/dist/chat/ui/intelligent-ui/renderers/links.js +366 -62
- package/dist/chat/ui/intelligent-ui/renderers/map-slots.js +118 -60
- package/dist/chat/ui/intelligent-ui/renderers/map-style.js +85 -78
- package/dist/chat/ui/intelligent-ui/renderers/map-view.js +282 -217
- package/dist/chat/ui/intelligent-ui/renderers/map.js +621 -69
- package/dist/chat/ui/intelligent-ui/renderers/place-point.js +15 -8
- package/dist/chat/ui/intelligent-ui/renderers/structure.js +262 -20
- package/dist/chat/ui/intelligent-ui/renderers/text.js +674 -49
- package/dist/chat/ui/intelligent-ui/reply-parts.js +24 -15
- package/dist/chat/ui/intelligent-ui/table-data.js +97 -57
- package/dist/chat/ui/intelligent-ui/tones.js +31 -31
- package/dist/chat/ui/intelligent-ui/use-in-view.js +30 -12
- package/dist/chat/ui/intelligent-ui/use-later.js +28 -13
- package/dist/chat/ui/intelligent-ui/use-truncated.js +45 -21
- package/dist/chat/ui/intelligent-ui/use-ui-links.js +296 -109
- package/dist/chat/ui/intelligent-ui/use-ui-queries.js +256 -246
- package/dist/chat/ui/markdown-blocks.js +296 -262
- package/dist/chat/ui/mermaid.js +60 -72
- package/dist/chat/ui/quote-selection.js +32 -29
- package/dist/chat/ui/rehype-chips.js +35 -23
- package/dist/chat/ui/rehype-fade.js +28 -17
- package/dist/chat/ui/remark-html-as-text.js +22 -15
- package/dist/chat/ui/reply-context.js +1 -1
- package/dist/chat/ui/reveal.js +161 -72
- package/dist/chat/ui/rows/ForksRow.js +226 -24
- package/dist/chat/ui/rows/GeneratedImageRow.js +541 -87
- package/dist/chat/ui/rows/MessageRows.js +1706 -159
- package/dist/chat/ui/rows/RowContainer.js +57 -7
- package/dist/chat/ui/rows/Rows.js +463 -54
- package/dist/chat/ui/rows/SubagentRow.js +577 -60
- package/dist/chat/ui/rows/TaskRow.js +359 -40
- package/dist/chat/ui/rows/VisualRow.js +233 -11
- package/dist/chat/ui/rows/WorkRows.js +1945 -164
- package/dist/chat/ui/rows/WorkflowRow.js +293 -34
- package/dist/chat/ui/rows/row-rhythm.js +27 -17
- package/dist/chat/ui/theme-watch.js +26 -23
- package/dist/chat/ui/timestamp-format.js +4 -1
- package/dist/chat/ui/use-diff-source-tokens.js +70 -34
- package/dist/chat/ui/useToggleSet.js +51 -19
- package/dist/chat/ui/visual-theme.js +153 -128
- package/dist/chat/visual-bridge.js +123 -123
- package/dist/chat/visual-viewport.js +94 -83
- package/dist/chat/visuals.js +13 -5
- package/dist/host-hooks.d.ts +29 -0
- package/dist/host-hooks.js +78 -0
- package/dist/host.js +120 -48
- package/dist/index.js +1 -1
- package/dist/lazy.js +38 -32
- package/dist/locales/en/agent-chat.d.ts +34 -0
- package/dist/locales/en/agent-chat.js +747 -713
- package/dist/locales/en/agent-prompts.js +42 -42
- package/dist/locales/en/agent-providers.d.ts +1 -0
- package/dist/locales/en/agent-providers.js +166 -165
- package/dist/locales/en/agent-usage.d.ts +6 -0
- package/dist/locales/en/agent-usage.js +129 -123
- package/dist/locales/nl/agent-chat.d.ts +34 -0
- package/dist/locales/nl/agent-chat.js +747 -713
- package/dist/locales/nl/agent-prompts.js +42 -42
- package/dist/locales/nl/agent-providers.d.ts +1 -0
- package/dist/locales/nl/agent-providers.js +166 -165
- package/dist/locales/nl/agent-usage.d.ts +6 -0
- package/dist/locales/nl/agent-usage.js +129 -123
- package/dist/locales.js +14 -14
- package/dist/mounted-registry.js +31 -30
- package/dist/port-transport.js +122 -111
- package/dist/prompts/index.js +1 -1
- package/dist/prompts/logic/focus.js +15 -14
- package/dist/prompts/logic/keys.js +93 -59
- package/dist/prompts/logic/prompts.js +27 -14
- package/dist/prompts/logic/subjects.js +60 -46
- package/dist/prompts/logic/useFocusAfterAnswer.js +60 -20
- package/dist/prompts/logic/usePromptSession.js +88 -77
- package/dist/prompts/ui/ApprovalBody.js +246 -27
- package/dist/prompts/ui/PromptActions.js +215 -9
- package/dist/prompts/ui/PromptCard.js +215 -36
- package/dist/prompts/ui/PromptView.js +372 -34
- package/dist/prompts/ui/QuestionBody.js +269 -73
- package/dist/providers/AccountColors.js +36 -5
- package/dist/providers/AccountDetail.js +683 -50
- package/dist/providers/AccountVariables.js +139 -32
- package/dist/providers/AddAccountForm.js +125 -38
- package/dist/providers/CliDetail.js +343 -36
- package/dist/providers/InstallPage.js +644 -59
- package/dist/providers/ProviderList.d.ts +2 -1
- package/dist/providers/ProviderList.js +215 -23
- package/dist/providers/ProvidersPane.d.ts +4 -2
- package/dist/providers/ProvidersPane.js +244 -64
- package/dist/providers/account-actions.js +54 -30
- package/dist/providers/index.js +1 -1
- package/dist/providers/install-steps.js +12 -9
- package/dist/providers/pane-target.d.ts +3 -0
- package/dist/providers/pane-target.js +34 -13
- package/dist/providers/parts.js +62 -12
- package/dist/providers/provider-abilities.js +5 -5
- package/dist/providers/provider-groups.js +75 -40
- package/dist/providers/variables.js +73 -39
- package/dist/scope.js +6 -6
- package/dist/settings/sections.js +18 -18
- package/dist/state/chats.js +404 -192
- package/dist/state/index.js +1 -1
- package/dist/state/provider-accounts.js +70 -47
- package/dist/state/providers.js +45 -16
- package/dist/state/usage.js +154 -77
- package/dist/storage.js +69 -68
- package/dist/testing/index.js +1 -1
- package/dist/testing/prompts.js +105 -67
- package/dist/transport.js +10 -10
- package/dist/ui/PlainTextarea.js +27 -3
- package/dist/usage/LimitsList.js +646 -40
- package/dist/usage/UsageBreakdown.js +879 -38
- package/dist/usage/UsageChart.js +311 -32
- package/dist/usage/UsageDialog.js +46 -4
- package/dist/usage/UsageLimits.js +467 -34
- package/dist/usage/UsageLimitsCard.js +95 -11
- package/dist/usage/UsagePage.js +817 -96
- package/dist/usage/UsagePane.js +164 -10
- package/dist/usage/UsageSummary.js +151 -6
- package/dist/usage/UsageTiles.js +164 -14
- package/dist/usage/format.js +32 -32
- package/dist/usage/index.d.ts +1 -1
- package/dist/usage/index.js +2 -1
- package/dist/usage/limit-groups.d.ts +2 -0
- package/dist/usage/limit-groups.js +77 -59
- package/dist/usage/limits.js +78 -43
- package/dist/usage/money.js +20 -4
- package/dist/usage/summary.js +85 -64
- package/package.json +8 -8
- package/src/agents/ModelOptionControl.tsx +3 -1
- package/src/agents/option-words.ts +27 -0
- package/src/chat/account-choice.ts +41 -1
- package/src/chat/composer-effort.ts +32 -0
- package/src/chat/forks.ts +4 -5
- package/src/chat/index.ts +3 -1
- package/src/chat/logic/effort.ts +32 -0
- package/src/chat/logic/picker-entries.ts +45 -10
- package/src/chat/logic/resume-compaction.ts +95 -17
- package/src/chat/logic/timeline.ts +11 -3
- package/src/chat/preferences.ts +35 -0
- package/src/chat/subagent-view.ts +2 -3
- package/src/chat/ui/AnsiOutput.tsx +1 -2
- package/src/chat/ui/BookmarkSubmenu.tsx +3 -3
- package/src/chat/ui/ChatActivity.tsx +14 -22
- package/src/chat/ui/ChatReferenceChip.tsx +2 -3
- package/src/chat/ui/Composer.tsx +15 -7
- package/src/chat/ui/EditDiff.tsx +2 -3
- package/src/chat/ui/LimitState.tsx +2 -2
- package/src/chat/ui/Markdown.tsx +10 -8
- package/src/chat/ui/MermaidBlock.tsx +2 -3
- package/src/chat/ui/Pickers.tsx +49 -29
- package/src/chat/ui/PromptComposer.tsx +7 -9
- package/src/chat/ui/ResumeCompactionDock.tsx +16 -4
- package/src/chat/ui/RunSettings.tsx +67 -28
- package/src/chat/ui/Scrubber.tsx +3 -3
- package/src/chat/ui/ShellCommand.tsx +2 -0
- package/src/chat/ui/SubagentInfo.tsx +2 -3
- package/src/chat/ui/SubagentTimeline.tsx +12 -16
- package/src/chat/ui/Timeline.tsx +6 -6
- package/src/chat/ui/UnifiedDiff.tsx +3 -4
- package/src/chat/ui/VisualFrame.tsx +5 -8
- package/src/chat/ui/code-theme.ts +4 -4
- package/src/chat/ui/composer/placeholder.ts +2 -2
- package/src/chat/ui/composer/use-compaction-offer.ts +36 -16
- package/src/chat/ui/composer/use-composer-menus.ts +4 -9
- package/src/chat/ui/composer/use-composer-submit.ts +2 -1
- package/src/chat/ui/composer/use-effort-stepper.ts +56 -0
- package/src/chat/ui/composer/use-notice.ts +2 -2
- package/src/chat/ui/diff/EditorEditDiff.tsx +9 -13
- package/src/chat/ui/diff/LegacyEditDiff.tsx +12 -17
- package/src/chat/ui/diff/LegacyUnifiedDiff.tsx +13 -21
- package/src/chat/ui/diff/use-review-stack.ts +4 -4
- package/src/chat/ui/diff-theme.ts +3 -3
- package/src/chat/ui/file-links.ts +2 -2
- package/src/chat/ui/intelligent-ui/UiReply.tsx +2 -0
- package/src/chat/ui/intelligent-ui/renderers/chart.tsx +3 -3
- package/src/chat/ui/intelligent-ui/renderers/content.tsx +5 -6
- package/src/chat/ui/intelligent-ui/renderers/map-view.tsx +2 -1
- package/src/chat/ui/intelligent-ui/renderers/map.tsx +2 -1
- package/src/chat/ui/intelligent-ui/use-truncated.ts +16 -19
- package/src/chat/ui/intelligent-ui/use-ui-links.ts +3 -3
- package/src/chat/ui/rows/ForksRow.tsx +3 -5
- package/src/chat/ui/rows/GeneratedImageRow.tsx +2 -1
- package/src/chat/ui/rows/MessageRows.tsx +12 -21
- package/src/chat/ui/rows/SubagentRow.tsx +3 -3
- package/src/chat/ui/rows/TaskRow.tsx +1 -1
- package/src/chat/ui/rows/WorkRows.tsx +10 -5
- package/src/chat/ui/useToggleSet.ts +15 -18
- package/src/chat/ui/visual-theme.ts +2 -3
- package/src/host-hooks.ts +113 -0
- package/src/lazy.tsx +2 -0
- package/src/locales/en/agent-chat.ts +134 -108
- package/src/locales/en/agent-prompts.ts +7 -7
- package/src/locales/en/agent-providers.ts +35 -34
- package/src/locales/en/agent-usage.ts +26 -20
- package/src/locales/nl/agent-chat.ts +126 -100
- package/src/locales/nl/agent-prompts.ts +5 -5
- package/src/locales/nl/agent-providers.ts +33 -32
- package/src/locales/nl/agent-usage.ts +25 -20
- package/src/providers/CliDetail.tsx +2 -1
- package/src/providers/InstallPage.tsx +2 -4
- package/src/providers/ProviderList.tsx +12 -2
- package/src/providers/ProvidersPane.tsx +45 -15
- package/src/providers/pane-target.ts +20 -4
- package/src/state/chats.ts +2 -2
- package/src/usage/LimitsList.tsx +12 -13
- package/src/usage/UsageBreakdown.tsx +17 -6
- package/src/usage/UsageLimits.tsx +2 -1
- package/src/usage/UsagePage.tsx +3 -3
- package/src/usage/index.ts +1 -1
- package/src/usage/limit-groups.ts +12 -0
- package/src/usage/limits.ts +2 -2
- package/src/usage/money.ts +1 -2
|
@@ -1,92 +1,103 @@
|
|
|
1
1
|
import { visualViewportGeometry } from './logic/visual-viewport.js';
|
|
2
2
|
/* Keeps one small frame in a full-height timeline row, without rendering React on scroll. */
|
|
3
3
|
export class VisualViewportController {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
4
|
+
box;
|
|
5
|
+
viewport;
|
|
6
|
+
scroller;
|
|
7
|
+
bridge;
|
|
8
|
+
observer;
|
|
9
|
+
attributes;
|
|
10
|
+
view;
|
|
11
|
+
frame = 0;
|
|
12
|
+
disposed = false;
|
|
13
|
+
last = '';
|
|
14
|
+
pendingDelta = 0;
|
|
15
|
+
onScroll;
|
|
16
|
+
constructor(box, viewport, scroller, bridge) {
|
|
17
|
+
this.box = box;
|
|
18
|
+
this.viewport = viewport;
|
|
19
|
+
this.scroller = scroller;
|
|
20
|
+
this.bridge = bridge;
|
|
21
|
+
this.view = box.ownerDocument.defaultView;
|
|
22
|
+
this.onScroll = () => this.refresh();
|
|
23
|
+
this.observer = new ResizeObserver(this.onScroll);
|
|
24
|
+
this.observer.observe(box);
|
|
25
|
+
this.observer.observe(scroller);
|
|
26
|
+
this.attributes = new MutationObserver(this.onScroll);
|
|
27
|
+
const row = box.closest('[data-index]');
|
|
28
|
+
if (row) {
|
|
29
|
+
this.attributes.observe(row, {
|
|
30
|
+
attributes: true,
|
|
31
|
+
attributeFilter: ['style']
|
|
32
|
+
});
|
|
33
33
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const key = `${geometry.top}:${geometry.height}`;
|
|
43
|
-
if (key !== this.last) {
|
|
44
|
-
this.last = key;
|
|
45
|
-
this.bridge.setViewport(geometry);
|
|
46
|
-
}
|
|
34
|
+
scroller.addEventListener('scroll', this.onScroll, {
|
|
35
|
+
passive: true
|
|
36
|
+
});
|
|
37
|
+
this.refresh();
|
|
38
|
+
}
|
|
39
|
+
refresh() {
|
|
40
|
+
if (this.disposed) {
|
|
41
|
+
return;
|
|
47
42
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
this.schedule();
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
this.pendingDelta = 0;
|
|
60
|
-
const start = this.scroller.scrollTop + this.offsetInScroller(outer, box);
|
|
61
|
-
const top = 'to' in request ? start + request.to : request.edge === 'start' ? 0 : this.scroller.scrollHeight;
|
|
62
|
-
this.scroller.scrollTo({ top, behavior: 'instant' });
|
|
63
|
-
this.refresh();
|
|
43
|
+
const top = this.offsetInScroller(this.scroller.getBoundingClientRect(), this.box.getBoundingClientRect());
|
|
44
|
+
const available = this.scroller.clientHeight;
|
|
45
|
+
const geometry = visualViewportGeometry(this.box.offsetHeight, available, top);
|
|
46
|
+
this.viewport.style.height = `${geometry.height}px`;
|
|
47
|
+
const key = `${geometry.top}:${geometry.height}`;
|
|
48
|
+
if (key !== this.last) {
|
|
49
|
+
this.last = key;
|
|
50
|
+
this.bridge.setViewport(geometry);
|
|
64
51
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
this.bridge.setViewport(null);
|
|
52
|
+
}
|
|
53
|
+
scroll(request) {
|
|
54
|
+
const outer = this.scroller.getBoundingClientRect();
|
|
55
|
+
const box = this.box.getBoundingClientRect();
|
|
56
|
+
if (this.disposed || box.bottom <= outer.top || box.top >= outer.bottom) {
|
|
57
|
+
return;
|
|
72
58
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
return (box.top - outer.top) / scale - this.scroller.clientTop;
|
|
59
|
+
if ('by' in request) {
|
|
60
|
+
this.pendingDelta += request.by;
|
|
61
|
+
this.schedule();
|
|
62
|
+
return;
|
|
78
63
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
64
|
+
this.pendingDelta = 0;
|
|
65
|
+
const start = this.scroller.scrollTop + this.offsetInScroller(outer, box);
|
|
66
|
+
const top = 'to' in request ? start + request.to : request.edge === 'start' ? 0 : this.scroller.scrollHeight;
|
|
67
|
+
this.scroller.scrollTo({
|
|
68
|
+
top,
|
|
69
|
+
behavior: 'instant'
|
|
70
|
+
});
|
|
71
|
+
this.refresh();
|
|
72
|
+
}
|
|
73
|
+
dispose() {
|
|
74
|
+
this.disposed = true;
|
|
75
|
+
this.view.cancelAnimationFrame(this.frame);
|
|
76
|
+
this.observer.disconnect();
|
|
77
|
+
this.attributes.disconnect();
|
|
78
|
+
this.scroller.removeEventListener('scroll', this.onScroll);
|
|
79
|
+
this.bridge.setViewport(null);
|
|
80
|
+
}
|
|
81
|
+
/* The box's top below the scroller's visible top, in the scroller's own pixels. */
|
|
82
|
+
offsetInScroller(outer, box) {
|
|
83
|
+
// A chat on a canvas can be scaled; messages inside its frame use unscaled CSS pixels.
|
|
84
|
+
const scale = outer.height / this.scroller.offsetHeight || 1;
|
|
85
|
+
return (box.top - outer.top) / scale - this.scroller.clientTop;
|
|
86
|
+
}
|
|
87
|
+
schedule() {
|
|
88
|
+
if (this.frame || this.disposed) {
|
|
89
|
+
return;
|
|
91
90
|
}
|
|
92
|
-
|
|
91
|
+
this.frame = this.view.requestAnimationFrame(() => {
|
|
92
|
+
this.frame = 0;
|
|
93
|
+
if (this.pendingDelta !== 0) {
|
|
94
|
+
this.scroller.scrollBy({
|
|
95
|
+
top: this.pendingDelta,
|
|
96
|
+
behavior: 'instant'
|
|
97
|
+
});
|
|
98
|
+
this.pendingDelta = 0;
|
|
99
|
+
}
|
|
100
|
+
this.refresh();
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
package/dist/chat/visuals.js
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
import { create } from 'zustand';
|
|
2
|
-
export const useVisualDialog = create(
|
|
2
|
+
export const useVisualDialog = create(set => ({
|
|
3
|
+
chatKey: null,
|
|
4
|
+
visualId: null,
|
|
5
|
+
kind: null,
|
|
6
|
+
open: (chatKey, visualId, kind) => set({
|
|
7
|
+
chatKey,
|
|
8
|
+
visualId,
|
|
9
|
+
kind
|
|
10
|
+
}),
|
|
11
|
+
close: () => set({
|
|
3
12
|
chatKey: null,
|
|
4
13
|
visualId: null,
|
|
5
|
-
kind: null
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}));
|
|
14
|
+
kind: null
|
|
15
|
+
})
|
|
16
|
+
}));
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ProviderPlatform } from '@adecore/agent-contracts';
|
|
2
|
+
import { type ChatHost, type CommandLook } from './host.js';
|
|
3
|
+
export declare function useHostCodeMode(): 'light' | 'dark';
|
|
4
|
+
export declare function useHostCodeThemes(): {
|
|
5
|
+
light: string;
|
|
6
|
+
dark: string;
|
|
7
|
+
};
|
|
8
|
+
export declare function useHostAttachmentUrl(...args: Parameters<ChatHost['attachments']['useUrl']>): ReturnType<ChatHost['attachments']['useUrl']>;
|
|
9
|
+
export declare function useHostTasks(...args: Parameters<ChatHost['tasks']['useTasks']>): ReturnType<ChatHost['tasks']['useTasks']>;
|
|
10
|
+
export declare function useHostTask(...args: Parameters<ChatHost['tasks']['useTask']>): ReturnType<ChatHost['tasks']['useTask']>;
|
|
11
|
+
export declare function useHostExtraPrompts(...args: Parameters<ChatHost['prompts']['useExtra']>): ReturnType<ChatHost['prompts']['useExtra']>;
|
|
12
|
+
export declare function useHostStreaming(): ReturnType<ChatHost['useStreaming']>;
|
|
13
|
+
export declare function useHostSendDelivery(): ReturnType<ChatHost['useSendDelivery']>;
|
|
14
|
+
export declare function useHostTimelineFind(...args: Parameters<ChatHost['useTimelineFind']>): ReturnType<ChatHost['useTimelineFind']>;
|
|
15
|
+
export declare function useHostReferableChats(): ReturnType<ChatHost['useReferableChats']>;
|
|
16
|
+
export declare function useHostLoginBlocked(...args: Parameters<ChatHost['useLoginBlocked']>): ReturnType<ChatHost['useLoginBlocked']>;
|
|
17
|
+
export declare function useHostMachinePlatform(scopeId: string): ProviderPlatform | null;
|
|
18
|
+
export declare function useHostProjectLook(...args: Parameters<ChatHost['useProjectLook']>): ReturnType<ChatHost['useProjectLook']>;
|
|
19
|
+
export declare function useHostMachineLabel(...args: Parameters<ChatHost['useMachineLabel']>): ReturnType<ChatHost['useMachineLabel']>;
|
|
20
|
+
export declare function useHostChatPlace(...args: Parameters<ChatHost['useChatPlace']>): ReturnType<ChatHost['useChatPlace']>;
|
|
21
|
+
export declare function useHostContextSources(...args: Parameters<ChatHost['useContextSources']>): ReturnType<ChatHost['useContextSources']>;
|
|
22
|
+
export declare function useHostHidesFolder(...args: Parameters<ChatHost['useHidesFolder']>): ReturnType<ChatHost['useHidesFolder']>;
|
|
23
|
+
export declare function useHostWelcome(...args: Parameters<ChatHost['useWelcome']>): ReturnType<ChatHost['useWelcome']>;
|
|
24
|
+
export declare function useHostResumeAtReset(...args: Parameters<ChatHost['useResumeAtReset']>): ReturnType<ChatHost['useResumeAtReset']>;
|
|
25
|
+
export declare function useHostComposerPlaceholder(...args: Parameters<ChatHost['useComposerPlaceholder']>): ReturnType<ChatHost['useComposerPlaceholder']>;
|
|
26
|
+
export declare function useHostThreadCards(...args: Parameters<ChatHost['useThreadCards']>): ReturnType<ChatHost['useThreadCards']>;
|
|
27
|
+
export declare function useHostReplyAuthor(...args: Parameters<ChatHost['useReplyAuthor']>): ReturnType<ChatHost['useReplyAuthor']>;
|
|
28
|
+
export declare function useHostMapSource(maps: NonNullable<ChatHost['maps']>, scopeId: string): ReturnType<NonNullable<ChatHost['maps']>['useSource']>;
|
|
29
|
+
export declare function useCommandNames(look: Required<Pick<CommandLook, 'useNames'>>, scopeId: string, chatId: string): ReturnType<NonNullable<CommandLook['useNames']>>;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
'use no memo';
|
|
2
|
+
|
|
3
|
+
import { useChatHost } from './host.js';
|
|
4
|
+
export function useHostCodeMode() {
|
|
5
|
+
return useChatHost().code.useMode();
|
|
6
|
+
}
|
|
7
|
+
export function useHostCodeThemes() {
|
|
8
|
+
return useChatHost().code.useThemes();
|
|
9
|
+
}
|
|
10
|
+
export function useHostAttachmentUrl(...args) {
|
|
11
|
+
return useChatHost().attachments.useUrl(...args);
|
|
12
|
+
}
|
|
13
|
+
export function useHostTasks(...args) {
|
|
14
|
+
return useChatHost().tasks.useTasks(...args);
|
|
15
|
+
}
|
|
16
|
+
export function useHostTask(...args) {
|
|
17
|
+
return useChatHost().tasks.useTask(...args);
|
|
18
|
+
}
|
|
19
|
+
export function useHostExtraPrompts(...args) {
|
|
20
|
+
return useChatHost().prompts.useExtra(...args);
|
|
21
|
+
}
|
|
22
|
+
export function useHostStreaming() {
|
|
23
|
+
return useChatHost().useStreaming();
|
|
24
|
+
}
|
|
25
|
+
export function useHostSendDelivery() {
|
|
26
|
+
return useChatHost().useSendDelivery();
|
|
27
|
+
}
|
|
28
|
+
export function useHostTimelineFind(...args) {
|
|
29
|
+
return useChatHost().useTimelineFind(...args);
|
|
30
|
+
}
|
|
31
|
+
export function useHostReferableChats() {
|
|
32
|
+
return useChatHost().useReferableChats();
|
|
33
|
+
}
|
|
34
|
+
export function useHostLoginBlocked(...args) {
|
|
35
|
+
return useChatHost().useLoginBlocked(...args);
|
|
36
|
+
}
|
|
37
|
+
const noPlatform = () => null;
|
|
38
|
+
/* Null where the host does not say, as it need not. */
|
|
39
|
+
export function useHostMachinePlatform(scopeId) {
|
|
40
|
+
const useMachinePlatform = useChatHost().useMachinePlatform ?? noPlatform;
|
|
41
|
+
return useMachinePlatform(scopeId);
|
|
42
|
+
}
|
|
43
|
+
export function useHostProjectLook(...args) {
|
|
44
|
+
return useChatHost().useProjectLook(...args);
|
|
45
|
+
}
|
|
46
|
+
export function useHostMachineLabel(...args) {
|
|
47
|
+
return useChatHost().useMachineLabel(...args);
|
|
48
|
+
}
|
|
49
|
+
export function useHostChatPlace(...args) {
|
|
50
|
+
return useChatHost().useChatPlace(...args);
|
|
51
|
+
}
|
|
52
|
+
export function useHostContextSources(...args) {
|
|
53
|
+
return useChatHost().useContextSources(...args);
|
|
54
|
+
}
|
|
55
|
+
export function useHostHidesFolder(...args) {
|
|
56
|
+
return useChatHost().useHidesFolder(...args);
|
|
57
|
+
}
|
|
58
|
+
export function useHostWelcome(...args) {
|
|
59
|
+
return useChatHost().useWelcome(...args);
|
|
60
|
+
}
|
|
61
|
+
export function useHostResumeAtReset(...args) {
|
|
62
|
+
return useChatHost().useResumeAtReset(...args);
|
|
63
|
+
}
|
|
64
|
+
export function useHostComposerPlaceholder(...args) {
|
|
65
|
+
return useChatHost().useComposerPlaceholder(...args);
|
|
66
|
+
}
|
|
67
|
+
export function useHostThreadCards(...args) {
|
|
68
|
+
return useChatHost().useThreadCards(...args);
|
|
69
|
+
}
|
|
70
|
+
export function useHostReplyAuthor(...args) {
|
|
71
|
+
return useChatHost().useReplyAuthor(...args);
|
|
72
|
+
}
|
|
73
|
+
export function useHostMapSource(maps, scopeId) {
|
|
74
|
+
return maps.useSource(scopeId);
|
|
75
|
+
}
|
|
76
|
+
export function useCommandNames(look, scopeId, chatId) {
|
|
77
|
+
return look.useNames(scopeId, chatId);
|
|
78
|
+
}
|
package/dist/host.js
CHANGED
|
@@ -1,51 +1,92 @@
|
|
|
1
|
+
import { c as _c } from "react/compiler-runtime";
|
|
1
2
|
import { createContext, createElement, useContext, useState } from 'react';
|
|
2
3
|
import { isApplePlatform } from '@adecore/ui';
|
|
3
4
|
import { PlainTextarea } from './ui/PlainTextarea.js';
|
|
4
5
|
const NO_PROMPTS = [];
|
|
5
6
|
const NO_CHATS = [];
|
|
6
7
|
const NO_ROWS = [];
|
|
7
|
-
const NO_FIND = {
|
|
8
|
+
const NO_FIND = {
|
|
9
|
+
open: false,
|
|
10
|
+
bar: null,
|
|
11
|
+
reveal: null,
|
|
12
|
+
hitRows: NO_ROWS,
|
|
13
|
+
currentRow: null
|
|
14
|
+
};
|
|
8
15
|
const NO_SOURCES = [];
|
|
9
|
-
const NO_URL = {
|
|
10
|
-
|
|
16
|
+
const NO_URL = {
|
|
17
|
+
url: null,
|
|
18
|
+
failure: null
|
|
19
|
+
};
|
|
20
|
+
const NOWHERE = {
|
|
21
|
+
title: null,
|
|
22
|
+
go: () => undefined
|
|
23
|
+
};
|
|
11
24
|
const NO_CARDS = [];
|
|
12
25
|
const DEFAULT_HOST = {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
26
|
+
accents: {
|
|
27
|
+
all: [],
|
|
28
|
+
featured: [],
|
|
29
|
+
label: id => id,
|
|
30
|
+
current: () => ''
|
|
31
|
+
},
|
|
32
|
+
isApplePlatform,
|
|
33
|
+
isAppShortcut: () => false,
|
|
34
|
+
notify: () => undefined,
|
|
35
|
+
actions: null,
|
|
36
|
+
searchFiles: null,
|
|
37
|
+
attachments: {
|
|
38
|
+
useUrl: () => NO_URL,
|
|
39
|
+
read: () => Promise.reject(new Error('This app keeps no attached files'))
|
|
40
|
+
},
|
|
41
|
+
ReadImage: null,
|
|
42
|
+
code: {
|
|
43
|
+
useMode: () => 'light',
|
|
44
|
+
useThemes: () => ({
|
|
45
|
+
light: 'github-light',
|
|
46
|
+
dark: 'github-dark'
|
|
47
|
+
}),
|
|
48
|
+
custom: []
|
|
49
|
+
},
|
|
50
|
+
useStreaming: () => 'words',
|
|
51
|
+
useSendDelivery: () => 'queue',
|
|
52
|
+
fileLinks: null,
|
|
53
|
+
useTimelineFind: () => NO_FIND,
|
|
54
|
+
dictation: {
|
|
55
|
+
Textarea: PlainTextarea,
|
|
56
|
+
composer: null
|
|
57
|
+
},
|
|
58
|
+
prompts: {
|
|
59
|
+
useExtra: () => NO_PROMPTS,
|
|
60
|
+
render: () => null,
|
|
61
|
+
answer: () => Promise.reject(new Error('This app raises no prompts of its own'))
|
|
62
|
+
},
|
|
63
|
+
useReferableChats: () => NO_CHATS,
|
|
64
|
+
openLogin: null,
|
|
65
|
+
useLoginBlocked: () => null,
|
|
66
|
+
useProjectLook: () => null,
|
|
67
|
+
useMachineLabel: () => null,
|
|
68
|
+
useChatPlace: () => NOWHERE,
|
|
69
|
+
useContextSources: () => NO_SOURCES,
|
|
70
|
+
useHidesFolder: () => false,
|
|
71
|
+
useWelcome: () => false,
|
|
72
|
+
tasks: {
|
|
73
|
+
useTasks: () => undefined,
|
|
74
|
+
useTask: () => null
|
|
75
|
+
},
|
|
76
|
+
confirm: {
|
|
77
|
+
stopSubagents: (_scopeId, _chatId, run) => run(),
|
|
78
|
+
stopTask: (_scopeId, _childId, _title, run) => run()
|
|
79
|
+
},
|
|
80
|
+
fork: null,
|
|
81
|
+
openNewChat: null,
|
|
82
|
+
openSettings: () => undefined,
|
|
83
|
+
useResumeAtReset: () => true,
|
|
84
|
+
useComposerPlaceholder: () => null,
|
|
85
|
+
ComposerSlot: null,
|
|
86
|
+
SubagentSlot: null,
|
|
87
|
+
useThreadCards: () => NO_CARDS,
|
|
88
|
+
useReplyAuthor: () => null,
|
|
89
|
+
visuals: null
|
|
49
90
|
};
|
|
50
91
|
const ChatHostContext = createContext(DEFAULT_HOST);
|
|
51
92
|
/*
|
|
@@ -55,15 +96,46 @@ const ChatHostContext = createContext(DEFAULT_HOST);
|
|
|
55
96
|
* The host is read once, as the provider mounts, since a hook that changed under a mounted view would
|
|
56
97
|
* break the order of its hooks: a provider that gets another `host` throws, and a new `key` remounts it.
|
|
57
98
|
*/
|
|
58
|
-
export function ChatHostProvider(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
99
|
+
export function ChatHostProvider(t0) {
|
|
100
|
+
const $ = _c(6);
|
|
101
|
+
const {
|
|
102
|
+
host,
|
|
103
|
+
children
|
|
104
|
+
} = t0;
|
|
105
|
+
const parent = useContext(ChatHostContext);
|
|
106
|
+
let t1;
|
|
107
|
+
if ($[0] !== host || $[1] !== parent) {
|
|
108
|
+
t1 = () => ({
|
|
109
|
+
host,
|
|
110
|
+
value: {
|
|
111
|
+
...parent,
|
|
112
|
+
...host
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
$[0] = host;
|
|
116
|
+
$[1] = parent;
|
|
117
|
+
$[2] = t1;
|
|
118
|
+
} else {
|
|
119
|
+
t1 = $[2];
|
|
120
|
+
}
|
|
121
|
+
const [pinned] = useState(t1);
|
|
122
|
+
if (pinned.host !== host) {
|
|
123
|
+
throw new Error("A ChatHostProvider reads its host once: hand it the same object on every render, or a new key to mount it with another");
|
|
124
|
+
}
|
|
125
|
+
let t2;
|
|
126
|
+
if ($[3] !== children || $[4] !== pinned.value) {
|
|
127
|
+
t2 = createElement(ChatHostContext.Provider, {
|
|
128
|
+
value: pinned.value
|
|
129
|
+
}, children);
|
|
130
|
+
$[3] = children;
|
|
131
|
+
$[4] = pinned.value;
|
|
132
|
+
$[5] = t2;
|
|
133
|
+
} else {
|
|
134
|
+
t2 = $[5];
|
|
135
|
+
}
|
|
136
|
+
return t2;
|
|
65
137
|
}
|
|
66
138
|
/* The host of the nearest `ChatHostProvider`, or the defaults outside one. */
|
|
67
139
|
export function useChatHost() {
|
|
68
|
-
|
|
69
|
-
}
|
|
140
|
+
return useContext(ChatHostContext);
|
|
141
|
+
}
|
package/dist/index.js
CHANGED
|
@@ -7,4 +7,4 @@ export { configureAgentMarks } from './agents/agent-marks.js';
|
|
|
7
7
|
export { configureChatStorage } from './storage.js';
|
|
8
8
|
export { setLazyPrefetch, onLazyOpenError } from './lazy.js';
|
|
9
9
|
export { MountedRegistry } from './mounted-registry.js';
|
|
10
|
-
export { PROVIDERS_SECTION, USAGE_SECTION, settingsSection } from './settings/sections.js';
|
|
10
|
+
export { PROVIDERS_SECTION, USAGE_SECTION, settingsSection } from './settings/sections.js';
|
package/dist/lazy.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
1
|
import { lazy } from 'react';
|
|
3
2
|
import { LoadedComponent } from '@adecore/ui';
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
4
4
|
const loaders = [];
|
|
5
5
|
let register = null;
|
|
6
6
|
const openErrorListeners = new Set();
|
|
@@ -9,20 +9,20 @@ const openErrorListeners = new Set();
|
|
|
9
9
|
* one made from now on. Without it they load on their first render, as `React.lazy` does.
|
|
10
10
|
*/
|
|
11
11
|
export function setLazyPrefetch(next) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
register = next;
|
|
13
|
+
for (const load of loaders) {
|
|
14
|
+
next(load);
|
|
15
|
+
}
|
|
16
16
|
}
|
|
17
17
|
/*
|
|
18
18
|
* Tells `listener` when a module the chat loads for a render fails to load, the way `onLazyOpenError`
|
|
19
19
|
* of `@adecore/ui` does for the app's own. A failed prefetch never reaches it.
|
|
20
20
|
*/
|
|
21
21
|
export function onLazyOpenError(listener) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
openErrorListeners.add(listener);
|
|
23
|
+
return () => {
|
|
24
|
+
openErrorListeners.delete(listener);
|
|
25
|
+
};
|
|
26
26
|
}
|
|
27
27
|
/*
|
|
28
28
|
* `React.lazy` for a module that exports its component by name, `default` included. Once the module
|
|
@@ -30,28 +30,34 @@ export function onLazyOpenError(listener) {
|
|
|
30
30
|
* module the prefetcher already fetched.
|
|
31
31
|
*/
|
|
32
32
|
export function lazyNamed(load, name, options) {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
// Through `LoadedComponent`, so a `LazyBoundary` around it draws the moment the module lands.
|
|
34
|
+
const loaded = new LoadedComponent(async () => (await load())[name]);
|
|
35
|
+
const open = () => loaded.load();
|
|
36
|
+
if (options?.prefetch !== false) {
|
|
37
|
+
loaders.push(open);
|
|
38
|
+
register?.(open);
|
|
39
|
+
}
|
|
40
|
+
// Only a render loads through here; a prefetch calls `open` itself, so its failures report nothing.
|
|
41
|
+
const Lazy = lazy(async () => {
|
|
42
|
+
try {
|
|
43
|
+
return {
|
|
44
|
+
default: await open()
|
|
45
|
+
};
|
|
46
|
+
} catch (error) {
|
|
47
|
+
for (const listener of openErrorListeners) {
|
|
48
|
+
listener(error);
|
|
49
|
+
}
|
|
50
|
+
throw error;
|
|
39
51
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
throw error;
|
|
50
|
-
}
|
|
52
|
+
});
|
|
53
|
+
const LazyNamed = props => {
|
|
54
|
+
// `loaded` fills in place; compiled, the element drawn before the module landed would stay.
|
|
55
|
+
'use no memo';
|
|
56
|
+
|
|
57
|
+
const Component = loaded.current ?? Lazy;
|
|
58
|
+
return /*#__PURE__*/_jsx(Component, {
|
|
59
|
+
...props
|
|
51
60
|
});
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
};
|
|
56
|
-
return LazyNamed;
|
|
57
|
-
}
|
|
61
|
+
};
|
|
62
|
+
return LazyNamed;
|
|
63
|
+
}
|
|
@@ -48,6 +48,10 @@ declare const _default: {
|
|
|
48
48
|
carried: string;
|
|
49
49
|
keep: string;
|
|
50
50
|
compact: string;
|
|
51
|
+
cacheExpired: {
|
|
52
|
+
title: string;
|
|
53
|
+
carried: string;
|
|
54
|
+
};
|
|
51
55
|
};
|
|
52
56
|
goal: {
|
|
53
57
|
status: {
|
|
@@ -305,6 +309,10 @@ declare const _default: {
|
|
|
305
309
|
anyCli: string;
|
|
306
310
|
};
|
|
307
311
|
notice: {
|
|
312
|
+
effort: string;
|
|
313
|
+
effortHighest: string;
|
|
314
|
+
effortLowest: string;
|
|
315
|
+
noEffort: string;
|
|
308
316
|
clearFailed: string;
|
|
309
317
|
stashChatsDropped_one: string;
|
|
310
318
|
stashChatsDropped_other: string;
|
|
@@ -444,6 +452,8 @@ declare const _default: {
|
|
|
444
452
|
requires: string;
|
|
445
453
|
requiresHere: string;
|
|
446
454
|
providerSettings: string;
|
|
455
|
+
star: string;
|
|
456
|
+
unstar: string;
|
|
447
457
|
};
|
|
448
458
|
stash: {
|
|
449
459
|
title: string;
|
|
@@ -685,6 +695,30 @@ declare const _default: {
|
|
|
685
695
|
};
|
|
686
696
|
};
|
|
687
697
|
};
|
|
698
|
+
modelOptions: {
|
|
699
|
+
effort: {
|
|
700
|
+
label: string;
|
|
701
|
+
choices: {
|
|
702
|
+
low: string;
|
|
703
|
+
medium: string;
|
|
704
|
+
high: string;
|
|
705
|
+
xhigh: string;
|
|
706
|
+
max: string;
|
|
707
|
+
};
|
|
708
|
+
};
|
|
709
|
+
contextWindow: {
|
|
710
|
+
label: string;
|
|
711
|
+
};
|
|
712
|
+
fastMode: {
|
|
713
|
+
label: string;
|
|
714
|
+
};
|
|
715
|
+
thinking: {
|
|
716
|
+
label: string;
|
|
717
|
+
};
|
|
718
|
+
serviceTier: {
|
|
719
|
+
label: string;
|
|
720
|
+
};
|
|
721
|
+
};
|
|
688
722
|
readingWidth: {
|
|
689
723
|
label: string;
|
|
690
724
|
narrow: {
|