@adecore/agents-react 0.24.1 → 0.25.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/chat/index.d.ts +4 -7
- package/dist/chat/index.js +4 -7
- package/dist/chat/logic/continue-after-stop.d.ts +3 -0
- package/dist/chat/logic/continue-after-stop.js +28 -0
- package/dist/chat/logic/thread-cards.d.ts +0 -1
- package/dist/chat/logic/thread-cards.js +0 -4
- package/dist/chat/preferences.d.ts +0 -1
- package/dist/chat/preferences.js +0 -3
- package/dist/chat/stash.d.ts +6 -0
- package/dist/chat/stash.js +13 -0
- package/dist/chat/ui/Composer.js +26 -5
- package/dist/chat/ui/EditDiff.js +4 -3
- package/dist/chat/ui/Pickers.js +1 -1
- package/dist/chat/ui/UnifiedDiff.js +4 -3
- package/dist/chat/ui/composer/ComposerControls.d.ts +1 -0
- package/dist/chat/ui/composer/ComposerControls.js +3 -3
- package/dist/chat/ui/composer/use-composer-submit.d.ts +3 -1
- package/dist/chat/ui/composer/use-composer-submit.js +22 -4
- package/dist/chat/ui/composer/use-continuable-turn.d.ts +2 -0
- package/dist/chat/ui/composer/use-continuable-turn.js +12 -0
- package/dist/chat/ui/composer/use-notice.d.ts +3 -1
- package/dist/chat/ui/composer/use-notice.js +8 -6
- package/dist/chat/ui/diff/ReviewDiff.js +2 -2
- package/dist/chat/ui/index.d.ts +9 -28
- package/dist/chat/ui/index.js +8 -27
- package/dist/chat/ui/intelligent-ui/UiReply.js +20 -2
- package/dist/chat/ui/intelligent-ui/node-text.d.ts +3 -1
- package/dist/chat/ui/intelligent-ui/node-text.js +32 -0
- package/dist/chat/ui/intelligent-ui/registry.js +15 -5
- package/dist/chat/ui/intelligent-ui/render-context.d.ts +6 -0
- package/dist/chat/ui/intelligent-ui/renderers/base-land.d.ts +1 -0
- package/dist/chat/ui/intelligent-ui/renderers/base-land.js +6 -0
- package/dist/chat/ui/intelligent-ui/renderers/binding.d.ts +6 -0
- package/dist/chat/ui/intelligent-ui/renderers/binding.js +10 -0
- package/dist/chat/ui/intelligent-ui/renderers/content.d.ts +2 -0
- package/dist/chat/ui/intelligent-ui/renderers/content.js +68 -6
- package/dist/chat/ui/intelligent-ui/renderers/inputs.d.ts +2 -0
- package/dist/chat/ui/intelligent-ui/renderers/inputs.js +40 -13
- package/dist/chat/ui/intelligent-ui/renderers/map-slots.d.ts +20 -0
- package/dist/chat/ui/intelligent-ui/renderers/map-slots.js +87 -0
- package/dist/chat/ui/intelligent-ui/renderers/map-style.d.ts +18 -0
- package/dist/chat/ui/intelligent-ui/renderers/map-style.js +72 -0
- package/dist/chat/ui/intelligent-ui/renderers/map-view.d.ts +15 -0
- package/dist/chat/ui/intelligent-ui/renderers/map-view.js +213 -0
- package/dist/chat/ui/intelligent-ui/renderers/map.d.ts +3 -0
- package/dist/chat/ui/intelligent-ui/renderers/map.js +113 -0
- package/dist/chat/ui/intelligent-ui/renderers/place-point.d.ts +3 -0
- package/dist/chat/ui/intelligent-ui/renderers/place-point.js +13 -0
- package/dist/chat/ui/intelligent-ui/renderers/text.d.ts +2 -0
- package/dist/chat/ui/intelligent-ui/renderers/text.js +14 -1
- package/dist/chat/ui/intelligent-ui/use-in-view.d.ts +1 -0
- package/dist/chat/ui/intelligent-ui/use-in-view.js +17 -0
- package/dist/chat/ui/rows/WorkRows.js +3 -3
- package/dist/host.d.ts +16 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/lazy.js +5 -7
- package/dist/locales/en/agent-chat.d.ts +47 -0
- package/dist/locales/en/agent-chat.js +48 -1
- package/dist/locales/nl/agent-chat.d.ts +47 -0
- package/dist/locales/nl/agent-chat.js +48 -1
- package/dist/prompts/index.d.ts +3 -5
- package/dist/prompts/index.js +3 -5
- package/dist/providers/index.d.ts +3 -9
- package/dist/providers/index.js +3 -9
- package/dist/state/index.d.ts +2 -2
- package/dist/state/index.js +2 -2
- package/dist/state/usage.d.ts +0 -1
- package/dist/state/usage.js +0 -3
- package/dist/theme.css +10 -0
- package/package.json +9 -8
- package/src/chat/index.ts +2 -23
- package/src/chat/logic/continue-after-stop.ts +32 -0
- package/src/chat/logic/thread-cards.ts +0 -5
- package/src/chat/preferences.ts +0 -4
- package/src/chat/stash.ts +17 -0
- package/src/chat/ui/Composer.tsx +33 -5
- package/src/chat/ui/EditDiff.tsx +6 -5
- package/src/chat/ui/Pickers.tsx +1 -0
- package/src/chat/ui/UnifiedDiff.tsx +6 -5
- package/src/chat/ui/composer/ComposerControls.tsx +13 -3
- package/src/chat/ui/composer/use-composer-submit.ts +25 -5
- package/src/chat/ui/composer/use-continuable-turn.ts +14 -0
- package/src/chat/ui/composer/use-notice.ts +14 -7
- package/src/chat/ui/diff/ReviewDiff.tsx +3 -3
- package/src/chat/ui/index.ts +9 -49
- package/src/chat/ui/intelligent-ui/UiReply.tsx +24 -1
- package/src/chat/ui/intelligent-ui/node-text.ts +34 -1
- package/src/chat/ui/intelligent-ui/registry.ts +33 -5
- package/src/chat/ui/intelligent-ui/render-context.ts +14 -0
- package/src/chat/ui/intelligent-ui/renderers/base-land.ts +7 -0
- package/src/chat/ui/intelligent-ui/renderers/binding.ts +14 -0
- package/src/chat/ui/intelligent-ui/renderers/content.tsx +144 -9
- package/src/chat/ui/intelligent-ui/renderers/inputs.tsx +79 -17
- package/src/chat/ui/intelligent-ui/renderers/map-slots.ts +105 -0
- package/src/chat/ui/intelligent-ui/renderers/map-style.ts +96 -0
- package/src/chat/ui/intelligent-ui/renderers/map-view.tsx +251 -0
- package/src/chat/ui/intelligent-ui/renderers/map.tsx +226 -0
- package/src/chat/ui/intelligent-ui/renderers/place-point.ts +16 -0
- package/src/chat/ui/intelligent-ui/renderers/text.tsx +28 -1
- package/src/chat/ui/intelligent-ui/use-in-view.ts +18 -0
- package/src/chat/ui/rows/WorkRows.tsx +3 -3
- package/src/host.ts +28 -0
- package/src/index.ts +2 -12
- package/src/lazy.tsx +5 -7
- package/src/locales/en/agent-chat.ts +48 -1
- package/src/locales/nl/agent-chat.ts +48 -1
- package/src/prompts/index.ts +3 -18
- package/src/providers/index.ts +3 -9
- package/src/state/index.ts +1 -16
- package/src/state/usage.ts +0 -4
- package/src/stylesheets.d.ts +2 -0
- package/src/theme.css +10 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fragment,
|
|
1
|
+
import { Fragment, useEffect, useState, type Dispatch, type ReactNode, type SetStateAction } from 'react';
|
|
2
2
|
import clsx from 'clsx';
|
|
3
3
|
import i18next from 'i18next';
|
|
4
4
|
import { useTranslation } from 'react-i18next';
|
|
@@ -28,7 +28,7 @@ import { useChatScope } from '../../../scope';
|
|
|
28
28
|
import { useCurrentItem } from '../../../state/chats';
|
|
29
29
|
import { useTimelineFlash } from '../../timeline-flash';
|
|
30
30
|
import { formatClockDuration, formatElapsedShort } from '@adecore/ui/format';
|
|
31
|
-
import { Icon, MiddleTruncate, Spinner, useTickingText } from '@adecore/ui';
|
|
31
|
+
import { Icon, LazyBoundary, MiddleTruncate, Spinner, useTickingText } from '@adecore/ui';
|
|
32
32
|
import { ROW_GUTTER, toolIcon } from '../icons';
|
|
33
33
|
import { AnsiOutput } from '../AnsiOutput';
|
|
34
34
|
import { RowTime } from '../RowTime';
|
|
@@ -122,7 +122,7 @@ export function ToggleLine({
|
|
|
122
122
|
/* The diff renderers load lazily, so a diff waits on them under a line that says so. */
|
|
123
123
|
function DiffSuspense({ children }: { children: ReactNode }) {
|
|
124
124
|
const { t } = useTranslation('agent-chat');
|
|
125
|
-
return <
|
|
125
|
+
return <LazyBoundary fallback={<div className="px-3 py-2 text-xs text-text-faint">{t('work.loadingDiff')}</div>}>{children}</LazyBoundary>;
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
/* A file in a changed files card, which opens its diff under it. */
|
package/src/host.ts
CHANGED
|
@@ -195,6 +195,30 @@ export interface ReplyAuthor {
|
|
|
195
195
|
mark?: ReactNode;
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
+
/*
|
|
199
|
+
* Where the tiles of a Map come from. The host owns the service and whatever admits a request to it, so
|
|
200
|
+
* a chat never knows an address, a key or a vendor: it asks for the style of the theme and lets the host
|
|
201
|
+
* rewrite every address the map requests. `off` says why there are no tiles, and the map then draws its
|
|
202
|
+
* built-in outline beside the list of places.
|
|
203
|
+
*/
|
|
204
|
+
export type UiMapSource =
|
|
205
|
+
| {
|
|
206
|
+
state: 'tiles';
|
|
207
|
+
/* The style document of one theme. */
|
|
208
|
+
styleUrl(theme: 'light' | 'dark'): string;
|
|
209
|
+
/*
|
|
210
|
+
* Called for every address the map requests, such as to add a ticket or a header to those of the host's
|
|
211
|
+
* service. Rewrite only the addresses of your own origin and hand every other back as it came: the style
|
|
212
|
+
* and the tiles name other hosts too, and a ticket must not travel to them.
|
|
213
|
+
*/
|
|
214
|
+
transformRequest?(url: string): { url: string; headers?: Record<string, string> };
|
|
215
|
+
/* The feature property that holds a label in `language` (such as `nl`); without it a label stays as the style writes it. */
|
|
216
|
+
labelField?(language: string): string;
|
|
217
|
+
/* The credit the tiles ask for, drawn under the map. */
|
|
218
|
+
attribution?: string;
|
|
219
|
+
}
|
|
220
|
+
| { state: 'off'; reason: 'disabled' | 'signed-out' | 'unavailable' };
|
|
221
|
+
|
|
198
222
|
/*
|
|
199
223
|
* What the app around the chat decides and the chat cannot, handed to the views by a `ChatHostProvider`.
|
|
200
224
|
* Whatever an app leaves out keeps the default here, which is the chat without that part. One host may
|
|
@@ -209,6 +233,10 @@ export interface ChatHost {
|
|
|
209
233
|
query?(scopeId: string, payload: ChatUiQueryPayload): Promise<ChatUiQueryReading>;
|
|
210
234
|
sendChoice(scopeId: string, payload: ChatUiChoicePayload): Promise<'sent' | 'queued'>;
|
|
211
235
|
};
|
|
236
|
+
/* The map tiles of a Map block; left out, a map draws its outline and its list of places only. */
|
|
237
|
+
maps?: {
|
|
238
|
+
useSource(scopeId: string): UiMapSource;
|
|
239
|
+
};
|
|
212
240
|
/* The colors an account may wear in the order a picker offers them, the few it shows first, and their names. */
|
|
213
241
|
accents: {
|
|
214
242
|
all: readonly AccentChoice[];
|
package/src/index.ts
CHANGED
|
@@ -14,6 +14,7 @@ export {
|
|
|
14
14
|
type VisualHost,
|
|
15
15
|
type ReplyAuthor,
|
|
16
16
|
type ChatHost,
|
|
17
|
+
type UiMapSource,
|
|
17
18
|
ChatHostProvider,
|
|
18
19
|
useChatHost,
|
|
19
20
|
type AccentChoice,
|
|
@@ -32,18 +33,7 @@ export {
|
|
|
32
33
|
isConnectionError
|
|
33
34
|
} from './transport';
|
|
34
35
|
export { portTransport, type PortTransport } from './port-transport';
|
|
35
|
-
export {
|
|
36
|
-
onChatStorageConfiguration,
|
|
37
|
-
configureChatStorage,
|
|
38
|
-
chatStorageKey,
|
|
39
|
-
chatStorageLegacyKeys,
|
|
40
|
-
chatStorageAdapter,
|
|
41
|
-
hydrateChatStorage,
|
|
42
|
-
createChatStore,
|
|
43
|
-
type ChatStorageRecord,
|
|
44
|
-
type ChatStorageAdapter,
|
|
45
|
-
type ChatStorageOptions
|
|
46
|
-
} from './storage';
|
|
36
|
+
export { configureChatStorage, type ChatStorageRecord, type ChatStorageAdapter, type ChatStorageOptions } from './storage';
|
|
47
37
|
export { setLazyPrefetch, onLazyOpenError } from './lazy';
|
|
48
38
|
export { type MountedEntry, MountedRegistry } from './mounted-registry';
|
|
49
39
|
export { type AgentsSettingsSection, PROVIDERS_SECTION, USAGE_SECTION, settingsSection } from './settings/sections';
|
package/src/lazy.tsx
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { lazy, type ComponentProps, type ComponentType } from 'react';
|
|
2
|
+
import { LoadedComponent } from '@adecore/ui';
|
|
2
3
|
|
|
3
4
|
type Loader = () => Promise<unknown>;
|
|
4
5
|
|
|
@@ -38,12 +39,9 @@ export function lazyNamed<Module extends Record<Name, ComponentType<any>>, Name
|
|
|
38
39
|
name: Name,
|
|
39
40
|
options?: { readonly prefetch?: boolean }
|
|
40
41
|
): ComponentType<ComponentProps<Module[Name]>> {
|
|
41
|
-
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
loaded ??= component;
|
|
45
|
-
return component;
|
|
46
|
-
};
|
|
42
|
+
// Through `LoadedComponent`, so a `LazyBoundary` around it draws the moment the module lands.
|
|
43
|
+
const loaded = new LoadedComponent<ComponentType<any>>(async () => (await load())[name]);
|
|
44
|
+
const open = (): Promise<ComponentType<any>> => loaded.load();
|
|
47
45
|
if (options?.prefetch !== false) {
|
|
48
46
|
loaders.push(open);
|
|
49
47
|
register?.(open);
|
|
@@ -60,7 +58,7 @@ export function lazyNamed<Module extends Record<Name, ComponentType<any>>, Name
|
|
|
60
58
|
}
|
|
61
59
|
});
|
|
62
60
|
const LazyNamed = (props: ComponentProps<Module[Name]>) => {
|
|
63
|
-
const Component: ComponentType<any> = loaded ?? Lazy;
|
|
61
|
+
const Component: ComponentType<any> = loaded.current ?? Lazy;
|
|
64
62
|
return <Component {...props} />;
|
|
65
63
|
};
|
|
66
64
|
return LazyNamed;
|
|
@@ -301,6 +301,8 @@ export default {
|
|
|
301
301
|
},
|
|
302
302
|
notice: {
|
|
303
303
|
clearFailed: 'The thread could not be cleared',
|
|
304
|
+
stashChatsDropped_one: '1 attached chat is not in this project and was left out',
|
|
305
|
+
stashChatsDropped_other: '{{count}} attached chats are not in this project and were left out',
|
|
304
306
|
compactFailed: 'The context could not be compacted',
|
|
305
307
|
noAttachments: '{{agent}} takes no attachments',
|
|
306
308
|
thisAgent: 'This agent',
|
|
@@ -344,6 +346,8 @@ export default {
|
|
|
344
346
|
tooLong: 'characters, too long to send',
|
|
345
347
|
stop: 'Stop, Shift-click to also stop its sub-agents',
|
|
346
348
|
queueButton: 'Queue',
|
|
349
|
+
continue: 'Continue',
|
|
350
|
+
continueHint: 'Continue where the stopped turn left off',
|
|
347
351
|
send: 'Send',
|
|
348
352
|
clear: {
|
|
349
353
|
title: 'Clear the thread?',
|
|
@@ -437,7 +441,9 @@ export default {
|
|
|
437
441
|
title: 'Stashed prompts',
|
|
438
442
|
noText: 'No text',
|
|
439
443
|
files_one: '{{count}} file, not kept',
|
|
440
|
-
files_other: '{{count}} files, not kept'
|
|
444
|
+
files_other: '{{count}} files, not kept',
|
|
445
|
+
chats_one: '{{count}} chat attached',
|
|
446
|
+
chats_other: '{{count}} chats attached'
|
|
441
447
|
},
|
|
442
448
|
mode: {
|
|
443
449
|
label: 'Permissions',
|
|
@@ -549,6 +555,15 @@ export default {
|
|
|
549
555
|
failed: 'Failed',
|
|
550
556
|
skipped: 'Skipped'
|
|
551
557
|
},
|
|
558
|
+
event: {
|
|
559
|
+
tone: {
|
|
560
|
+
neutral: 'Neutral',
|
|
561
|
+
info: 'Info',
|
|
562
|
+
success: 'Success',
|
|
563
|
+
warning: 'Warning',
|
|
564
|
+
danger: 'Danger'
|
|
565
|
+
}
|
|
566
|
+
},
|
|
552
567
|
stat: {
|
|
553
568
|
change: '{{change}} from {{previous}}',
|
|
554
569
|
from: 'from {{previous}}'
|
|
@@ -568,6 +583,35 @@ export default {
|
|
|
568
583
|
showValues: 'Show all values',
|
|
569
584
|
hideValues: 'Hide values'
|
|
570
585
|
},
|
|
586
|
+
gallery: {
|
|
587
|
+
label_one: '{{count}} image',
|
|
588
|
+
label_other: '{{count}} images'
|
|
589
|
+
},
|
|
590
|
+
map: {
|
|
591
|
+
label_one: 'Map of {{count}} place',
|
|
592
|
+
label_other: 'Map of {{count}} places',
|
|
593
|
+
omitted_one: '{{count}} more place is not shown',
|
|
594
|
+
omitted_other: '{{count}} more places are not shown',
|
|
595
|
+
show: 'Show map',
|
|
596
|
+
waiting: 'The map waits for a free spot: only a few maps are drawn at once.',
|
|
597
|
+
contextLost: 'The map lost its graphics. The places stay listed.',
|
|
598
|
+
lookingUp: 'Looking up',
|
|
599
|
+
notFound: 'Not on the map',
|
|
600
|
+
zoomIn: 'Zoom in',
|
|
601
|
+
zoomOut: 'Zoom out',
|
|
602
|
+
scrollHint: 'Hold ⌘ or Ctrl and scroll to zoom',
|
|
603
|
+
touchHint: 'Use two fingers to move the map',
|
|
604
|
+
offline: 'Map tiles are not available offline. The places stay listed.',
|
|
605
|
+
disabled: 'Map tiles are off.',
|
|
606
|
+
signedOut: 'Sign in to show map tiles.',
|
|
607
|
+
unavailable: 'Map tiles are not available right now.'
|
|
608
|
+
},
|
|
609
|
+
compare: {
|
|
610
|
+
label: 'Compare {{before}} and {{after}}',
|
|
611
|
+
before: 'Before',
|
|
612
|
+
after: 'After',
|
|
613
|
+
missing: 'One image is not available'
|
|
614
|
+
},
|
|
571
615
|
image: {
|
|
572
616
|
label: 'Image',
|
|
573
617
|
unavailable: 'The image is not available'
|
|
@@ -575,6 +619,9 @@ export default {
|
|
|
575
619
|
sources: 'Sources',
|
|
576
620
|
citation: 'Source {{number}}: {{title}}',
|
|
577
621
|
outsideProject: 'Outside the project, shown as text',
|
|
622
|
+
textField: {
|
|
623
|
+
count: '{{used}} of {{max}} characters'
|
|
624
|
+
},
|
|
578
625
|
options: 'Options',
|
|
579
626
|
choices: 'Choices',
|
|
580
627
|
checklist: 'Checklist',
|
|
@@ -301,6 +301,8 @@ export default {
|
|
|
301
301
|
},
|
|
302
302
|
notice: {
|
|
303
303
|
clearFailed: 'De thread kon niet worden gewist',
|
|
304
|
+
stashChatsDropped_one: '1 bijgevoegde chat hoort niet bij dit project en is weggelaten',
|
|
305
|
+
stashChatsDropped_other: '{{count}} bijgevoegde chats horen niet bij dit project en zijn weggelaten',
|
|
304
306
|
compactFailed: 'De context kon niet worden gecomprimeerd',
|
|
305
307
|
noAttachments: '{{agent}} neemt geen bijlagen aan',
|
|
306
308
|
thisAgent: 'Deze agent',
|
|
@@ -344,6 +346,8 @@ export default {
|
|
|
344
346
|
tooLong: 'tekens, te lang om te versturen',
|
|
345
347
|
stop: 'Stoppen, Shift-klik stopt ook de sub-agents',
|
|
346
348
|
queueButton: 'In de wachtrij zetten',
|
|
349
|
+
continue: 'Doorgaan',
|
|
350
|
+
continueHint: 'Ga verder waar de gestopte beurt ophield',
|
|
347
351
|
send: 'Versturen',
|
|
348
352
|
clear: {
|
|
349
353
|
title: 'Thread wissen?',
|
|
@@ -437,7 +441,9 @@ export default {
|
|
|
437
441
|
title: 'Stashed prompts',
|
|
438
442
|
noText: 'Geen tekst',
|
|
439
443
|
files_one: '{{count}} bestand, niet bewaard',
|
|
440
|
-
files_other: '{{count}} bestanden, niet bewaard'
|
|
444
|
+
files_other: '{{count}} bestanden, niet bewaard',
|
|
445
|
+
chats_one: '{{count}} chat bijgevoegd',
|
|
446
|
+
chats_other: '{{count}} chats bijgevoegd'
|
|
441
447
|
},
|
|
442
448
|
mode: {
|
|
443
449
|
label: 'Rechten',
|
|
@@ -549,6 +555,15 @@ export default {
|
|
|
549
555
|
failed: 'Mislukt',
|
|
550
556
|
skipped: 'Overgeslagen'
|
|
551
557
|
},
|
|
558
|
+
event: {
|
|
559
|
+
tone: {
|
|
560
|
+
neutral: 'Neutraal',
|
|
561
|
+
info: 'Info',
|
|
562
|
+
success: 'Gelukt',
|
|
563
|
+
warning: 'Waarschuwing',
|
|
564
|
+
danger: 'Gevaar'
|
|
565
|
+
}
|
|
566
|
+
},
|
|
552
567
|
stat: {
|
|
553
568
|
change: '{{change}} vanaf {{previous}}',
|
|
554
569
|
from: 'vanaf {{previous}}'
|
|
@@ -568,6 +583,35 @@ export default {
|
|
|
568
583
|
showValues: 'Alle waarden tonen',
|
|
569
584
|
hideValues: 'Waarden verbergen'
|
|
570
585
|
},
|
|
586
|
+
gallery: {
|
|
587
|
+
label_one: '{{count}} afbeelding',
|
|
588
|
+
label_other: '{{count}} afbeeldingen'
|
|
589
|
+
},
|
|
590
|
+
map: {
|
|
591
|
+
label_one: 'Kaart met {{count}} plek',
|
|
592
|
+
label_other: 'Kaart met {{count}} plekken',
|
|
593
|
+
omitted_one: '{{count}} plek meer wordt niet getoond',
|
|
594
|
+
omitted_other: '{{count}} plekken meer worden niet getoond',
|
|
595
|
+
show: 'Kaart tonen',
|
|
596
|
+
waiting: 'De kaart wacht op een vrije plek: er worden maar een paar kaarten tegelijk getekend.',
|
|
597
|
+
contextLost: 'De kaart is zijn beeldgeheugen kwijt. De plekken blijven in de lijst.',
|
|
598
|
+
lookingUp: 'Wordt opgezocht',
|
|
599
|
+
notFound: 'Niet op de kaart',
|
|
600
|
+
zoomIn: 'Inzoomen',
|
|
601
|
+
zoomOut: 'Uitzoomen',
|
|
602
|
+
scrollHint: 'Houd ⌘ of Ctrl ingedrukt en scrol om te zoomen',
|
|
603
|
+
touchHint: 'Gebruik twee vingers om de kaart te bewegen',
|
|
604
|
+
offline: 'Kaarttegels zijn offline niet beschikbaar. De plekken blijven in de lijst.',
|
|
605
|
+
disabled: 'Kaarttegels staan uit.',
|
|
606
|
+
signedOut: 'Log in om kaarttegels te tonen.',
|
|
607
|
+
unavailable: 'Kaarttegels zijn nu niet beschikbaar.'
|
|
608
|
+
},
|
|
609
|
+
compare: {
|
|
610
|
+
label: 'Vergelijk {{before}} en {{after}}',
|
|
611
|
+
before: 'Voor',
|
|
612
|
+
after: 'Na',
|
|
613
|
+
missing: 'Eén afbeelding is niet beschikbaar'
|
|
614
|
+
},
|
|
571
615
|
image: {
|
|
572
616
|
label: 'Afbeelding',
|
|
573
617
|
unavailable: 'De afbeelding is niet beschikbaar'
|
|
@@ -575,6 +619,9 @@ export default {
|
|
|
575
619
|
sources: 'Bronnen',
|
|
576
620
|
citation: 'Bron {{number}}: {{title}}',
|
|
577
621
|
outsideProject: 'Buiten het project, als tekst getoond',
|
|
622
|
+
textField: {
|
|
623
|
+
count: '{{used}} van {{max}} tekens'
|
|
624
|
+
},
|
|
578
625
|
options: 'Opties',
|
|
579
626
|
choices: 'Keuzes',
|
|
580
627
|
checklist: 'Checklijst',
|
package/src/prompts/index.ts
CHANGED
|
@@ -1,20 +1,7 @@
|
|
|
1
1
|
// Public API: exports.test.ts snapshots this list, so a name added or dropped here is an API change.
|
|
2
|
-
export { focusPromptStart
|
|
2
|
+
export { focusPromptStart } from './logic/focus';
|
|
3
3
|
export { PROMPT_SHORTCUTS, pageKey, type PromptKeyEvent } from './logic/keys';
|
|
4
|
-
export {
|
|
5
|
-
type PendingPrompt,
|
|
6
|
-
type PromptAction,
|
|
7
|
-
emptyPromptDraft,
|
|
8
|
-
answerValue,
|
|
9
|
-
questionAnswer,
|
|
10
|
-
pickPromptChoice,
|
|
11
|
-
isBlockingPrompt,
|
|
12
|
-
orderPrompts,
|
|
13
|
-
nextPrompt,
|
|
14
|
-
promptAnswers,
|
|
15
|
-
type PromptAnswer,
|
|
16
|
-
type PromptDraft
|
|
17
|
-
} from './logic/prompts';
|
|
4
|
+
export { type PendingPrompt, type PromptAction, emptyPromptDraft, orderPrompts, type PromptAnswer, type PromptDraft } from './logic/prompts';
|
|
18
5
|
export {
|
|
19
6
|
type HostPrompt,
|
|
20
7
|
type PromptSubject,
|
|
@@ -28,8 +15,6 @@ export {
|
|
|
28
15
|
} from './logic/subjects';
|
|
29
16
|
export { useFocusAfterAnswer, type FocusAfterAnswer } from './logic/useFocusAfterAnswer';
|
|
30
17
|
export { usePromptSession, type PromptSession } from './logic/usePromptSession';
|
|
31
|
-
export {
|
|
32
|
-
export { PromptPrimary, ApprovalActions, QuestionActions, type ApprovalButton } from './ui/PromptActions';
|
|
18
|
+
export { PromptPrimary, ApprovalActions, type ApprovalButton } from './ui/PromptActions';
|
|
33
19
|
export { PROMPT_SURFACE, PromptCard, type PromptCardKind } from './ui/PromptCard';
|
|
34
20
|
export { PromptView } from './ui/PromptView';
|
|
35
|
-
export { QuestionBody } from './ui/QuestionBody';
|
package/src/providers/index.ts
CHANGED
|
@@ -3,15 +3,9 @@ export { AccountDot } from '../agents/AccountDot';
|
|
|
3
3
|
export { AgentIcon } from '../agents/AgentIcon';
|
|
4
4
|
export { ModelOptionControl } from '../agents/ModelOptionControl';
|
|
5
5
|
export { ProviderLogo } from '../agents/ProviderLogo';
|
|
6
|
-
export { type AccountEntry, accountsOfKind,
|
|
6
|
+
export { type AccountEntry, accountsOfKind, ACCOUNT_TONE_CLASSES, accountStatusLine, canContinueOn, type AccountTone } from '../agents/accounts';
|
|
7
7
|
export { modelName, useModelName, shortModelName } from '../agents/model-name';
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export { AccountColors } from './AccountColors';
|
|
11
|
-
export { AccountDetail } from './AccountDetail';
|
|
12
|
-
export { AccountVariables } from './AccountVariables';
|
|
13
|
-
export { AddAccountForm } from './AddAccountForm';
|
|
14
|
-
export { CliDetail } from './CliDetail';
|
|
8
|
+
export { carryOptions } from '../agents/model-options';
|
|
9
|
+
export { type ModelRequirement } from '../agents/model-requirement';
|
|
15
10
|
export { ProvidersPane } from './ProvidersPane';
|
|
16
|
-
export { saveAccounts, saveAccount, removeAccount, createAccount, linkAccount } from './account-actions';
|
|
17
11
|
export { CliMark, CliTile } from './parts';
|
package/src/state/index.ts
CHANGED
|
@@ -4,14 +4,11 @@ export {
|
|
|
4
4
|
type ChatsById,
|
|
5
5
|
type ChatStatuses,
|
|
6
6
|
type ChatSink,
|
|
7
|
-
prependPage,
|
|
8
7
|
waitingRequestsOf,
|
|
9
8
|
applyEvent,
|
|
10
9
|
useChats,
|
|
11
10
|
chatSink,
|
|
12
11
|
useChatRow,
|
|
13
|
-
useReportedModels,
|
|
14
|
-
useCurrentItem,
|
|
15
12
|
type ChatHistoryPage,
|
|
16
13
|
type ChatPage
|
|
17
14
|
} from './chats';
|
|
@@ -24,16 +21,4 @@ export {
|
|
|
24
21
|
type ProviderAccountsRow
|
|
25
22
|
} from './provider-accounts';
|
|
26
23
|
export { useProvidersStore, useProviders, providersOf, providerSinkFor, type ProvidersRow } from './providers';
|
|
27
|
-
export {
|
|
28
|
-
type UsageMetric,
|
|
29
|
-
USAGE_PREFERENCES_KEY,
|
|
30
|
-
usagePreferencesKey,
|
|
31
|
-
dayOf,
|
|
32
|
-
windowFor,
|
|
33
|
-
summaryPayload,
|
|
34
|
-
reloadUsagePreferences,
|
|
35
|
-
useUsageStore,
|
|
36
|
-
useUsage,
|
|
37
|
-
type UsagePeriod,
|
|
38
|
-
type UsageView
|
|
39
|
-
} from './usage';
|
|
24
|
+
export { type UsageMetric, USAGE_PREFERENCES_KEY, dayOf, windowFor, reloadUsagePreferences, useUsageStore, type UsagePeriod, type UsageView } from './usage';
|
package/src/state/usage.ts
CHANGED
package/src/theme.css
CHANGED
|
@@ -27,6 +27,9 @@
|
|
|
27
27
|
--chart-4: #eda100;
|
|
28
28
|
--chart-5: #e87ba4;
|
|
29
29
|
--chart-6: #008300;
|
|
30
|
+
/* The two grounds of the map a page draws without tiles. */
|
|
31
|
+
--map-land: #f2f1ed;
|
|
32
|
+
--map-water: #d3dde5;
|
|
30
33
|
}
|
|
31
34
|
|
|
32
35
|
[data-theme="dark"] {
|
|
@@ -46,6 +49,8 @@
|
|
|
46
49
|
--chart-4: #c98500;
|
|
47
50
|
--chart-5: #d55181;
|
|
48
51
|
--chart-6: #008300;
|
|
52
|
+
--map-land: #2c3135;
|
|
53
|
+
--map-water: #1a2026;
|
|
49
54
|
}
|
|
50
55
|
|
|
51
56
|
/* Output and diffs take the terminal's colors when the app loads `@adecore/terminal/terminal.css`,
|
|
@@ -56,6 +61,9 @@
|
|
|
56
61
|
--chat-added: var(--term-ansi-green, var(--positive));
|
|
57
62
|
--chat-removed: var(--term-ansi-red, var(--status-error));
|
|
58
63
|
--chart-1: var(--accent);
|
|
64
|
+
/* The number of a place on a map and in its list: the ink on the ground, so it reads on either. */
|
|
65
|
+
--map-marker: var(--text);
|
|
66
|
+
--map-marker-text: var(--surface);
|
|
59
67
|
}
|
|
60
68
|
|
|
61
69
|
@theme inline {
|
|
@@ -73,6 +81,8 @@
|
|
|
73
81
|
--color-chat-output: var(--chat-output);
|
|
74
82
|
--color-chat-added: var(--chat-added);
|
|
75
83
|
--color-chat-removed: var(--chat-removed);
|
|
84
|
+
--color-map-marker: var(--map-marker);
|
|
85
|
+
--color-map-marker-text: var(--map-marker-text);
|
|
76
86
|
}
|
|
77
87
|
|
|
78
88
|
@layer components {
|