@opengeni/react 1.4.2 → 1.4.5-canary.37458084490001
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 +17 -6
- package/dist/artifacts.d.ts +1 -0
- package/dist/artifacts.js +22 -15
- package/dist/artifacts.js.map +1 -1
- package/dist/{browser-viewer-WGJ43YGI.js → browser-viewer-CV23VIHB.js} +8 -6
- package/dist/chunk-3ZC6QPOM.js +174 -0
- package/dist/chunk-3ZC6QPOM.js.map +1 -0
- package/dist/{chunk-YVFRBXST.js → chunk-4BCVCJSU.js} +2 -2
- package/dist/{chunk-JHTIMBOL.js → chunk-5JSUNNQN.js} +26 -4
- package/dist/{chunk-JHTIMBOL.js.map → chunk-5JSUNNQN.js.map} +1 -1
- package/dist/{chunk-MDIXFKA3.js → chunk-6FOTSVWU.js} +303 -109
- package/dist/chunk-6FOTSVWU.js.map +1 -0
- package/dist/{chunk-IUHHPMAX.js → chunk-7RRBX5EM.js} +14 -85
- package/dist/chunk-7RRBX5EM.js.map +1 -0
- package/dist/{chunk-L2J3PU7A.js → chunk-7ZB7I3KP.js} +24 -98
- package/dist/chunk-7ZB7I3KP.js.map +1 -0
- package/dist/{chunk-LVS3MH5T.js → chunk-ATIRUHBZ.js} +128 -10
- package/dist/chunk-ATIRUHBZ.js.map +1 -0
- package/dist/chunk-BOFEQC6K.js +162 -0
- package/dist/chunk-BOFEQC6K.js.map +1 -0
- package/dist/{chunk-VCSERYXH.js → chunk-CESBPQP5.js} +309 -162
- package/dist/chunk-CESBPQP5.js.map +1 -0
- package/dist/{chunk-IYQCWGU5.js → chunk-GHJU7XG7.js} +35 -62
- package/dist/chunk-GHJU7XG7.js.map +1 -0
- package/dist/{chunk-G6YRCIYJ.js → chunk-HNVWMDNN.js} +55 -60
- package/dist/chunk-HNVWMDNN.js.map +1 -0
- package/dist/{chunk-PHBFJCEU.js → chunk-I5EGRXXG.js} +110 -7
- package/dist/chunk-I5EGRXXG.js.map +1 -0
- package/dist/{chunk-PBCZL4JP.js → chunk-INIZSNXT.js} +2 -2
- package/dist/{chunk-XS67YG5R.js → chunk-IX3K4THH.js} +24 -3
- package/dist/chunk-IX3K4THH.js.map +1 -0
- package/dist/chunk-IZV5FTJC.js +55 -0
- package/dist/chunk-IZV5FTJC.js.map +1 -0
- package/dist/chunk-JDJJMBB3.js +1883 -0
- package/dist/chunk-JDJJMBB3.js.map +1 -0
- package/dist/{chunk-C5BF4L26.js → chunk-KHF2VRXF.js} +7 -7
- package/dist/{chunk-QMMCJGFI.js → chunk-L5OKM2VX.js} +2 -2
- package/dist/chunk-LHF6BVM4.js +83 -0
- package/dist/chunk-LHF6BVM4.js.map +1 -0
- package/dist/chunk-N7S72EXK.js +25 -0
- package/dist/chunk-N7S72EXK.js.map +1 -0
- package/dist/{chunk-CVYCLFMH.js → chunk-PEHTX3V7.js} +19 -1
- package/dist/chunk-PEHTX3V7.js.map +1 -0
- package/dist/chunk-R5R5RQQD.js +51 -0
- package/dist/chunk-R5R5RQQD.js.map +1 -0
- package/dist/chunk-RI42H5IU.js +326 -0
- package/dist/chunk-RI42H5IU.js.map +1 -0
- package/dist/{chunk-JH7V627O.js → chunk-SHLZMAJN.js} +2 -11
- package/dist/chunk-SHLZMAJN.js.map +1 -0
- package/dist/{chunk-CREMJMVN.js → chunk-TZQSHCZN.js} +692 -1996
- package/dist/chunk-TZQSHCZN.js.map +1 -0
- package/dist/chunk-ZIB4H5LN.js +101 -0
- package/dist/chunk-ZIB4H5LN.js.map +1 -0
- package/dist/client.d.ts +9 -3
- package/dist/clipboard.js +1 -1
- package/dist/components/browser-viewer.d.ts +6 -0
- package/dist/components/composer.d.ts +3 -69
- package/dist/components/human-input-form.d.ts +3 -32
- package/dist/components/markdown.d.ts +8 -0
- package/dist/components/model-policy-picker.d.ts +4 -37
- package/dist/components/opper-mark.d.ts +7 -0
- package/dist/components/provider-recovery-notice.d.ts +15 -0
- package/dist/components/remark-soft-line-breaks.d.ts +38 -0
- package/dist/components/sandbox-workspace.d.ts +13 -0
- package/dist/components/session-chrome.d.ts +5 -3
- package/dist/components/session-conversation.d.ts +15 -3
- package/dist/composer-messages.d.ts +74 -0
- package/dist/composer-messages.js +9 -0
- package/dist/composer.js +15 -10
- package/dist/{computer-viewer-46UIN7F3.js → computer-viewer-K4CKYRX6.js} +4 -4
- package/dist/connect-setup.d.ts +2 -0
- package/dist/connect.d.ts +1 -1
- package/dist/connect.js +21 -6
- package/dist/connect.js.map +1 -1
- package/dist/{embedded-voice-NIL4RDX3.js → embedded-voice-3ZFWWJ6O.js} +6 -4
- package/dist/{embedded-voice-NIL4RDX3.js.map → embedded-voice-3ZFWWJ6O.js.map} +1 -1
- package/dist/hooks/shared-machines-list.d.ts +4 -0
- package/dist/hooks/use-client-config-flags.d.ts +6 -0
- package/dist/hooks/use-computer-session.d.ts +2 -0
- package/dist/hooks/use-goal.d.ts +2 -1
- package/dist/human-input-model.d.ts +40 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.js +116 -73
- package/dist/index.js.map +1 -1
- package/dist/interaction.js +5 -5
- package/dist/{latest-question-2POFPYNB.js → latest-question-SWC6QEVN.js} +3 -3
- package/dist/lib/clipboard.d.ts +7 -0
- package/dist/lib/provider-recovery.d.ts +49 -0
- package/dist/machines.js +2 -2
- package/dist/model-mark-paths.d.ts +34 -0
- package/dist/model-mark-paths.js +16 -0
- package/dist/model-picker-model.d.ts +111 -0
- package/dist/model-picker-model.js +25 -0
- package/dist/model-picker-model.js.map +1 -0
- package/dist/{model-policy-picker-menu-WRNSRFQC.js → model-policy-picker-menu-NM4RPTY6.js} +6 -4
- package/dist/model-policy-picker-menu-NM4RPTY6.js.map +1 -0
- package/dist/model-policy.d.ts +10 -0
- package/dist/model-policy.js +5 -1
- package/dist/organization-model.d.ts +32 -0
- package/dist/organization-model.js +65 -0
- package/dist/organization-model.js.map +1 -0
- package/dist/{platform-activity-row-PJJVATTZ.js → platform-activity-row-NJ47YBXW.js} +7 -84
- package/dist/platform-activity-row-NJ47YBXW.js.map +1 -0
- package/dist/queue-presentation-model.d.ts +72 -0
- package/dist/queue-presentation-model.js +38 -0
- package/dist/queue-presentation-model.js.map +1 -0
- package/dist/{queue-surface-implementation-67FS7FUI.js → queue-surface-implementation-YPJFQ3O6.js} +24 -252
- package/dist/queue-surface-implementation-YPJFQ3O6.js.map +1 -0
- package/dist/realtime.js +5 -3
- package/dist/{sandbox-files-34CJJNOY.js → sandbox-files-RCVCMXG7.js} +5 -5
- package/dist/sandbox-files-RCVCMXG7.js.map +1 -0
- package/dist/sandbox-label-model.d.ts +23 -0
- package/dist/sandbox-label-model.js +28 -0
- package/dist/sandbox-label-model.js.map +1 -0
- package/dist/session-attention-model.d.ts +8 -0
- package/dist/session-attention-model.js +46 -0
- package/dist/session-attention-model.js.map +1 -0
- package/dist/session-feedback-model.d.ts +20 -0
- package/dist/session-feedback-model.js +56 -0
- package/dist/session-feedback-model.js.map +1 -0
- package/dist/session-list-model.d.ts +96 -0
- package/dist/session-list-model.js +219 -0
- package/dist/session-list-model.js.map +1 -0
- package/dist/session-status-model.d.ts +19 -0
- package/dist/session-ui.js +26 -17
- package/dist/session-ui.js.map +1 -1
- package/dist/session.js +8 -6
- package/dist/testing/session-scenarios.d.ts +10 -0
- package/dist/testing/session-scenarios.js +303 -0
- package/dist/testing/session-scenarios.js.map +1 -0
- package/dist/timeline/genie-copy.d.ts +3 -0
- package/dist/timeline/genie-loading.d.ts +11 -0
- package/dist/timeline/index.d.ts +1 -1
- package/dist/timeline/notice-presentation.d.ts +7 -0
- package/dist/timeline/patch-apply-command.d.ts +18 -0
- package/dist/timeline/platform-activity-presentation.d.ts +7 -0
- package/dist/timeline/presented-image.d.ts +6 -1
- package/dist/timeline/question-nav-model.d.ts +23 -0
- package/dist/timeline/registry.d.ts +10 -1
- package/dist/timeline/retained-loaders.d.ts +1 -1
- package/dist/timeline/tool-presentation.d.ts +172 -0
- package/dist/timeline/turn-summary-model.d.ts +90 -0
- package/dist/timeline/turn-summary.d.ts +4 -74
- package/dist/timeline/work-presentation.d.ts +42 -0
- package/dist/timeline-model.d.ts +24 -0
- package/dist/timeline-model.js +152 -0
- package/dist/timeline-model.js.map +1 -0
- package/package.json +47 -3
- package/src/artifacts.ts +1 -0
- package/src/client.ts +9 -3
- package/src/components/browser-viewer.tsx +23 -2
- package/src/components/claude-mark.tsx +2 -1
- package/src/components/composer.tsx +4 -144
- package/src/components/computer-viewer.tsx +139 -30
- package/src/components/grok-mark.tsx +2 -1
- package/src/components/human-input-form.tsx +13 -124
- package/src/components/markdown.tsx +19 -1
- package/src/components/message-timeline.tsx +45 -99
- package/src/components/model-mark.tsx +2 -1
- package/src/components/model-policy-picker-menu.tsx +30 -85
- package/src/components/model-policy-picker.tsx +15 -148
- package/src/components/opper-mark.tsx +18 -0
- package/src/components/provider-recovery-notice.tsx +41 -0
- package/src/components/queue-surface-implementation.tsx +20 -349
- package/src/components/remark-soft-line-breaks.ts +166 -0
- package/src/components/sandbox-workspace.tsx +17 -1
- package/src/components/session-chrome.tsx +114 -99
- package/src/components/session-conversation.tsx +55 -6
- package/src/components/session-list.tsx +1 -1
- package/src/components/session-status.tsx +17 -16
- package/src/composer-messages.ts +150 -0
- package/src/connect-setup.tsx +45 -11
- package/src/connect.ts +1 -1
- package/src/hooks/shared-machines-list.ts +34 -1
- package/src/hooks/use-browser-session.ts +445 -168
- package/src/hooks/use-client-config-flags.ts +8 -0
- package/src/hooks/use-computer-session.ts +334 -98
- package/src/hooks/use-goal.ts +66 -10
- package/src/human-input-model.ts +147 -0
- package/src/index.ts +16 -0
- package/src/lib/clipboard.ts +29 -0
- package/src/lib/format.ts +7 -0
- package/src/lib/provider-recovery.ts +202 -0
- package/src/model-mark-paths.ts +53 -0
- package/src/model-picker-model.ts +330 -0
- package/src/model-policy.ts +43 -2
- package/src/organization-model.ts +118 -0
- package/src/queue-presentation-model.ts +464 -0
- package/src/sandbox-label-model.ts +41 -0
- package/src/session-attention-model.ts +59 -0
- package/src/session-feedback-model.ts +95 -0
- package/src/session-list-model.ts +327 -0
- package/src/session-status-model.ts +62 -0
- package/src/testing/session-scenarios.ts +326 -0
- package/src/timeline/activity-rail.tsx +5 -17
- package/src/timeline/genie-copy.ts +19 -0
- package/src/timeline/genie-loading.tsx +13 -18
- package/src/timeline/index.ts +1 -0
- package/src/timeline/notice-presentation.ts +22 -0
- package/src/timeline/patch-apply-command.tsx +135 -0
- package/src/timeline/platform-activity-presentation.ts +122 -0
- package/src/timeline/platform-activity-row.tsx +6 -96
- package/src/timeline/presented-image.ts +16 -2
- package/src/timeline/question-nav-model.ts +28 -0
- package/src/timeline/registry.ts +11 -1
- package/src/timeline/retained-loaders.ts +9 -4
- package/src/timeline/rolling-activity.tsx +7 -19
- package/src/timeline/tool-presentation.ts +1316 -0
- package/src/timeline/tool-renderers.tsx +226 -1025
- package/src/timeline/turn-summary-model.ts +338 -0
- package/src/timeline/turn-summary.tsx +21 -326
- package/src/timeline/work-presentation.ts +139 -0
- package/src/timeline-model.ts +108 -0
- package/styles/compiled.css +8 -0
- package/styles/connect.css +4 -0
- package/dist/chunk-CREMJMVN.js.map +0 -1
- package/dist/chunk-CVYCLFMH.js.map +0 -1
- package/dist/chunk-G6YRCIYJ.js.map +0 -1
- package/dist/chunk-HXYOSSQO.js +0 -117
- package/dist/chunk-HXYOSSQO.js.map +0 -1
- package/dist/chunk-IUHHPMAX.js.map +0 -1
- package/dist/chunk-IYQCWGU5.js.map +0 -1
- package/dist/chunk-JH7V627O.js.map +0 -1
- package/dist/chunk-L2J3PU7A.js.map +0 -1
- package/dist/chunk-LVS3MH5T.js.map +0 -1
- package/dist/chunk-MDIXFKA3.js.map +0 -1
- package/dist/chunk-PHBFJCEU.js.map +0 -1
- package/dist/chunk-VCSERYXH.js.map +0 -1
- package/dist/chunk-XS67YG5R.js.map +0 -1
- package/dist/platform-activity-row-PJJVATTZ.js.map +0 -1
- package/dist/queue-surface-implementation-67FS7FUI.js.map +0 -1
- /package/dist/{browser-viewer-WGJ43YGI.js.map → browser-viewer-CV23VIHB.js.map} +0 -0
- /package/dist/{chunk-YVFRBXST.js.map → chunk-4BCVCJSU.js.map} +0 -0
- /package/dist/{chunk-PBCZL4JP.js.map → chunk-INIZSNXT.js.map} +0 -0
- /package/dist/{chunk-C5BF4L26.js.map → chunk-KHF2VRXF.js.map} +0 -0
- /package/dist/{chunk-QMMCJGFI.js.map → chunk-L5OKM2VX.js.map} +0 -0
- /package/dist/{computer-viewer-46UIN7F3.js.map → composer-messages.js.map} +0 -0
- /package/dist/{model-policy-picker-menu-WRNSRFQC.js.map → computer-viewer-K4CKYRX6.js.map} +0 -0
- /package/dist/{latest-question-2POFPYNB.js.map → latest-question-SWC6QEVN.js.map} +0 -0
- /package/dist/{sandbox-files-34CJJNOY.js.map → model-mark-paths.js.map} +0 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import type { GitFileDiff } from "@opengeni/sdk";
|
|
2
|
+
import { type ApplyPatchOperation } from "./parsers.js";
|
|
3
|
+
import type { ToolCallItem } from "./types.js";
|
|
4
|
+
export type ToolIconKind = "terminal" | "keyboard" | "file-diff" | "search" | "question" | "target" | "brain" | "sessions" | "server" | "server-cog" | "calendar" | "panels" | "share" | "message" | "git" | "box" | "key" | "file-search" | "package-search" | "plug" | "wrench";
|
|
5
|
+
export type ToolIconTone = "accent" | "failed" | "running" | "muted";
|
|
6
|
+
export type ToolChip = {
|
|
7
|
+
tone: "ok" | "bad" | "muted" | "interrupted";
|
|
8
|
+
text: string;
|
|
9
|
+
};
|
|
10
|
+
/** The collapsed-row secondary line. `running` previews carry the pulse locus. */
|
|
11
|
+
export type ToolPreview = {
|
|
12
|
+
kind: "text";
|
|
13
|
+
text: string;
|
|
14
|
+
running?: boolean | undefined;
|
|
15
|
+
} | {
|
|
16
|
+
kind: "path";
|
|
17
|
+
path: string;
|
|
18
|
+
add?: number | undefined;
|
|
19
|
+
del?: number | undefined;
|
|
20
|
+
} | {
|
|
21
|
+
kind: "files";
|
|
22
|
+
count: number;
|
|
23
|
+
add: number;
|
|
24
|
+
del: number;
|
|
25
|
+
} | {
|
|
26
|
+
kind: "malformed";
|
|
27
|
+
name: string;
|
|
28
|
+
};
|
|
29
|
+
export type ToolPatchFile = {
|
|
30
|
+
key: string;
|
|
31
|
+
path: string;
|
|
32
|
+
file: GitFileDiff | null;
|
|
33
|
+
diff: string;
|
|
34
|
+
};
|
|
35
|
+
export type WebSearchResult = {
|
|
36
|
+
title: string;
|
|
37
|
+
domain: string;
|
|
38
|
+
snippet: string;
|
|
39
|
+
};
|
|
40
|
+
/** What the expanded body holds; renderers draw these with their own primitives. */
|
|
41
|
+
export type ToolBody = {
|
|
42
|
+
kind: "term";
|
|
43
|
+
command: string | null;
|
|
44
|
+
workdir: string | null;
|
|
45
|
+
output: string;
|
|
46
|
+
live?: boolean | undefined;
|
|
47
|
+
failed?: boolean | undefined;
|
|
48
|
+
note?: string | undefined;
|
|
49
|
+
} | {
|
|
50
|
+
kind: "note";
|
|
51
|
+
text: string;
|
|
52
|
+
tone?: "error" | undefined;
|
|
53
|
+
} | {
|
|
54
|
+
kind: "payloads";
|
|
55
|
+
/** A short explanation above the payloads. */
|
|
56
|
+
note?: string | undefined;
|
|
57
|
+
blocks: Array<{
|
|
58
|
+
label: string;
|
|
59
|
+
value: unknown;
|
|
60
|
+
failed?: boolean;
|
|
61
|
+
}>;
|
|
62
|
+
} | {
|
|
63
|
+
kind: "patch";
|
|
64
|
+
files: ToolPatchFile[];
|
|
65
|
+
/** A single malformed op renders its raw patch without the path caption. */
|
|
66
|
+
bare?: boolean | undefined;
|
|
67
|
+
} | {
|
|
68
|
+
kind: "web-results";
|
|
69
|
+
results: WebSearchResult[] | null;
|
|
70
|
+
} | {
|
|
71
|
+
/** A short labelled listing (disclosed tools, search hits) above payloads. */
|
|
72
|
+
kind: "listing";
|
|
73
|
+
note?: string | undefined;
|
|
74
|
+
entries: ToolListingEntry[];
|
|
75
|
+
/** Entries beyond the visible list ("+N more"). */
|
|
76
|
+
more?: number | undefined;
|
|
77
|
+
/** Shown instead of the list when it is known to be empty. */
|
|
78
|
+
empty?: string | undefined;
|
|
79
|
+
blocks: Array<{
|
|
80
|
+
label: string;
|
|
81
|
+
value: unknown;
|
|
82
|
+
failed?: boolean;
|
|
83
|
+
}>;
|
|
84
|
+
};
|
|
85
|
+
export type ToolListingEntry = {
|
|
86
|
+
key: string;
|
|
87
|
+
title: string;
|
|
88
|
+
/** Quiet leading label (the tool's server). */
|
|
89
|
+
eyebrow?: string | null | undefined;
|
|
90
|
+
mono?: boolean | undefined;
|
|
91
|
+
/** Secondary text under the title (a search snippet). */
|
|
92
|
+
snippet?: string | undefined;
|
|
93
|
+
};
|
|
94
|
+
export type PresentedToolKind = "exec" | "write_stdin" | "apply_patch" | "web_search" | "ask" | "run_on" | "tool_search" | "docs_search" | "session_title" | "generic";
|
|
95
|
+
export type ToolRowPresentation = {
|
|
96
|
+
tool: PresentedToolKind;
|
|
97
|
+
icon: ToolIconKind;
|
|
98
|
+
iconTone: ToolIconTone;
|
|
99
|
+
title: string;
|
|
100
|
+
titleMono?: boolean | undefined;
|
|
101
|
+
running?: boolean | undefined;
|
|
102
|
+
preview?: ToolPreview | undefined;
|
|
103
|
+
chip?: ToolChip | undefined;
|
|
104
|
+
failed?: boolean | undefined;
|
|
105
|
+
cancelled?: boolean | undefined;
|
|
106
|
+
body: ToolBody;
|
|
107
|
+
};
|
|
108
|
+
export type ToolPresentationContext = {
|
|
109
|
+
/** Host-supplied active compute label ("on <label> · …" preview prefix). */
|
|
110
|
+
computeLabel?: string | null | undefined;
|
|
111
|
+
};
|
|
112
|
+
/** Prefix a collapsed preview with the host-supplied active compute label. */
|
|
113
|
+
export declare function withComputePreview(label: string | null | undefined, preview: string): string;
|
|
114
|
+
export declare function truncatePreview(text: string, max: number): string;
|
|
115
|
+
export declare function execPresentation(item: ToolCallItem, context?: ToolPresentationContext): ToolRowPresentation;
|
|
116
|
+
export declare function writeStdinPresentation(item: ToolCallItem): ToolRowPresentation;
|
|
117
|
+
export declare function patchVerb(op: ApplyPatchOperation | undefined): string;
|
|
118
|
+
export declare function pathBasename(path: string): string;
|
|
119
|
+
export declare function pathDirname(path: string): string;
|
|
120
|
+
export declare function safeParsePatchOp(op: ApplyPatchOperation): GitFileDiff | null;
|
|
121
|
+
/** Returns null when a settled patch has no op (renderers fall back to generic). */
|
|
122
|
+
export declare function applyPatchPresentation(item: ToolCallItem): ToolRowPresentation | null;
|
|
123
|
+
export declare function webSearchQueryFromArguments(args: unknown): string | null;
|
|
124
|
+
export declare function webSearchPresentation(item: ToolCallItem): ToolRowPresentation;
|
|
125
|
+
export declare function askToolPreview(args: unknown): string | null;
|
|
126
|
+
export declare function runOnTargetName(output: unknown): string | null;
|
|
127
|
+
export declare function runOnOpPreview(args: Record<string, unknown>): string | null;
|
|
128
|
+
export declare function goalToolPreview(name: string, args: unknown): string | null;
|
|
129
|
+
/** Explicit first-party leaf/prefix → canonical product icon kind. */
|
|
130
|
+
export declare function genericToolIconKind(name: string): ToolIconKind;
|
|
131
|
+
export declare function askPresentation(item: ToolCallItem): ToolRowPresentation;
|
|
132
|
+
export declare function runOnPresentation(item: ToolCallItem): ToolRowPresentation;
|
|
133
|
+
/**
|
|
134
|
+
* Baseline craft for unmatched tools: family icon + title-cased leaf + honest
|
|
135
|
+
* status preview (Running… / Done / error snippet).
|
|
136
|
+
*/
|
|
137
|
+
export declare function genericToolPresentation(item: ToolCallItem): ToolRowPresentation;
|
|
138
|
+
export type DisclosedTool = {
|
|
139
|
+
/** Full wire name (`server__leaf` or bare). */
|
|
140
|
+
name: string;
|
|
141
|
+
/** Server / namespace prefix before `__`, when present. */
|
|
142
|
+
source: string | null;
|
|
143
|
+
/** Leaf tool name after `__`. */
|
|
144
|
+
leaf: string;
|
|
145
|
+
};
|
|
146
|
+
export declare function splitToolWireName(name: string): DisclosedTool;
|
|
147
|
+
/** Capability query from live tool_search args (object or JSON string). */
|
|
148
|
+
export declare function toolSearchQuery(item: ToolCallItem): string;
|
|
149
|
+
/**
|
|
150
|
+
* Parse disclosed tools from the runtime event shape.
|
|
151
|
+
* `normalizeSdkEvent` collapses `tool_search_output.tools[]` into text:
|
|
152
|
+
* "Disclosed tools: a, b" | "No matching tools found."
|
|
153
|
+
* Also accept a structured `tools` array when a host/enricher preserves it.
|
|
154
|
+
*/
|
|
155
|
+
export declare function parseDisclosedTools(output: unknown): DisclosedTool[] | null;
|
|
156
|
+
export declare function toolSearchPreview(tools: DisclosedTool[] | null, cancelled: boolean): string | undefined;
|
|
157
|
+
export declare function toolSearchPresentation(item: ToolCallItem): ToolRowPresentation;
|
|
158
|
+
export type SearchHit = {
|
|
159
|
+
title: string;
|
|
160
|
+
snippet: string;
|
|
161
|
+
};
|
|
162
|
+
export declare function parseSearchHits(outText: string): SearchHit[] | null;
|
|
163
|
+
export declare function docsSearchPresentation(item: ToolCallItem): ToolRowPresentation;
|
|
164
|
+
export declare function sessionTitlePresentation(item: ToolCallItem): ToolRowPresentation;
|
|
165
|
+
/**
|
|
166
|
+
* Resolve the shared presenter for a call with the web registry's precedence
|
|
167
|
+
* (raw.type, exact name, MCP leaf). Tools whose web renderer is richer than the
|
|
168
|
+
* shared model (computer use, media, knowledge receipts, …) resolve to
|
|
169
|
+
* `generic`; non-DOM renderers may layer their own presenters on top.
|
|
170
|
+
*/
|
|
171
|
+
export declare function presentedToolKind(item: ToolCallItem): PresentedToolKind;
|
|
172
|
+
export declare function toolRowPresentation(item: ToolCallItem, context?: ToolPresentationContext): ToolRowPresentation;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { ActivityItem, ToolCallItem, TurnOutcome } from "./types.js";
|
|
3
|
+
export declare const BUILT_IN_TURN_SUMMARY_FACET_IDS: readonly ["steps", "files", "commands", "screenshots", "memories", "compacted", "duration"];
|
|
4
|
+
export type BuiltInTurnSummaryFacetId = (typeof BUILT_IN_TURN_SUMMARY_FACET_IDS)[number];
|
|
5
|
+
export type TurnSummaryContext = Readonly<{
|
|
6
|
+
/** Every normalized activity item folded into this summary. */
|
|
7
|
+
items: readonly ActivityItem[];
|
|
8
|
+
/** Tool calls from `items`, retained in timeline order for convenient aggregation. */
|
|
9
|
+
toolCalls: readonly ToolCallItem[];
|
|
10
|
+
/** The settled turn verdict, or absent for a neutral/incomplete cluster. */
|
|
11
|
+
outcome: TurnOutcome | undefined;
|
|
12
|
+
/** The bounded failure reason rendered by the enclosing summary, when present. */
|
|
13
|
+
failureText: string | undefined;
|
|
14
|
+
/** Total turn duration when the enclosing group has both valid timestamps. */
|
|
15
|
+
durationMs: number | undefined;
|
|
16
|
+
/** False when any projected activity is still running or streaming. */
|
|
17
|
+
settled: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Adjacent compaction landmarks next to this fold. Landmark remains the
|
|
20
|
+
* primary UI; this is a secondary chip signal only.
|
|
21
|
+
*/
|
|
22
|
+
contextCompactionCount: number;
|
|
23
|
+
}>;
|
|
24
|
+
export type TurnSummaryFacetResult = Readonly<{
|
|
25
|
+
icon?: ReactNode;
|
|
26
|
+
content: ReactNode;
|
|
27
|
+
ariaLabel?: string;
|
|
28
|
+
title?: string;
|
|
29
|
+
}>;
|
|
30
|
+
export type TurnSummaryFacet = Readonly<{
|
|
31
|
+
/** Stable identity used for removal and deterministic de-duplication. */
|
|
32
|
+
id: string;
|
|
33
|
+
/** Return null when this facet has nothing useful to show. */
|
|
34
|
+
summarize(context: TurnSummaryContext): TurnSummaryFacetResult | null;
|
|
35
|
+
}>;
|
|
36
|
+
type ModifyTurnSummaryFacets = Readonly<{
|
|
37
|
+
/** Appended after the remaining built-ins, in supplied order. */
|
|
38
|
+
add?: readonly TurnSummaryFacet[];
|
|
39
|
+
/** Built-ins to omit before custom facets are appended. */
|
|
40
|
+
remove?: readonly BuiltInTurnSummaryFacetId[];
|
|
41
|
+
replace?: never;
|
|
42
|
+
}>;
|
|
43
|
+
type ReplaceTurnSummaryFacets = Readonly<{
|
|
44
|
+
/** The complete ordered facet list. Mutually exclusive with add/remove. */
|
|
45
|
+
replace: readonly TurnSummaryFacet[];
|
|
46
|
+
add?: never;
|
|
47
|
+
remove?: never;
|
|
48
|
+
}>;
|
|
49
|
+
export type TurnSummaryFacetConfiguration = ModifyTurnSummaryFacets | ReplaceTurnSummaryFacets;
|
|
50
|
+
export type TurnSummaryOptions = Readonly<{
|
|
51
|
+
/**
|
|
52
|
+
* Readable per-turn presentation. Assistant progress stays fully formatted;
|
|
53
|
+
* each turn has its own Working / Worked row and rolling latest step.
|
|
54
|
+
* Ordinary tip-follow and manual scrolling are unchanged.
|
|
55
|
+
*/
|
|
56
|
+
rolling?: boolean;
|
|
57
|
+
facets?: TurnSummaryFacetConfiguration;
|
|
58
|
+
}>;
|
|
59
|
+
/**
|
|
60
|
+
* Exchange status shown in place of the plain facet line. `working` and
|
|
61
|
+
* `waiting` run a live clock from `since`; `worked` shows the settled span.
|
|
62
|
+
*/
|
|
63
|
+
export type TurnSummaryStatus = Readonly<{
|
|
64
|
+
kind: "working" | "waiting" | "worked";
|
|
65
|
+
/** Replaces the default "Working" / "Waiting" wording. */
|
|
66
|
+
label?: string | undefined;
|
|
67
|
+
/** Live clock start for `working` and `waiting`. */
|
|
68
|
+
since?: string | undefined;
|
|
69
|
+
/** Settled span for `worked`. */
|
|
70
|
+
durationMs?: number | undefined;
|
|
71
|
+
/** Live step preview under the row while it is collapsed. */
|
|
72
|
+
preview?: ReactNode;
|
|
73
|
+
}>;
|
|
74
|
+
/** Elapsed wall time with seconds below an hour: "14s", "2m 14s", "1h 05m". */
|
|
75
|
+
export declare function formatElapsed(durationMs: number): string;
|
|
76
|
+
export declare function createTurnSummaryContext(items: ActivityItem[], outcome: TurnOutcome | undefined, failureText: string | undefined, durationMs: number | undefined, contextCompactionCount: number): TurnSummaryContext;
|
|
77
|
+
export declare const BUILT_IN_TURN_SUMMARY_FACETS: readonly TurnSummaryFacet[];
|
|
78
|
+
export declare function resolveTurnSummaryFacets(configuration: TurnSummaryFacetConfiguration | undefined): readonly TurnSummaryFacet[];
|
|
79
|
+
export declare function formatDurationFacet(durationMs: number | undefined): string | null;
|
|
80
|
+
/**
|
|
81
|
+
* The facets a turn header shows. With a readable status line, duration lives in
|
|
82
|
+
* the status, preparation-only turns drop the step count, and a live or waiting
|
|
83
|
+
* status keeps only the step count among the built-ins. A failing custom facet is
|
|
84
|
+
* skipped rather than breaking the header.
|
|
85
|
+
*/
|
|
86
|
+
export declare function selectTurnSummaryFacets(definitions: readonly TurnSummaryFacet[], context: TurnSummaryContext, statusKind: TurnSummaryStatus["kind"] | undefined): Array<{
|
|
87
|
+
facet: TurnSummaryFacet;
|
|
88
|
+
result: TurnSummaryFacetResult;
|
|
89
|
+
}>;
|
|
90
|
+
export {};
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
|
-
import
|
|
2
|
+
import { BUILT_IN_TURN_SUMMARY_FACET_IDS, formatElapsed, type TurnSummaryFacetConfiguration, type TurnSummaryStatus } from "./turn-summary-model.js";
|
|
3
|
+
import type { ActivityItem, TurnOutcome } from "./types.js";
|
|
4
|
+
export { BUILT_IN_TURN_SUMMARY_FACET_IDS, formatElapsed };
|
|
5
|
+
export type { BuiltInTurnSummaryFacetId, TurnSummaryContext, TurnSummaryFacet, TurnSummaryFacetConfiguration, TurnSummaryFacetResult, TurnSummaryOptions, TurnSummaryStatus, } from "./turn-summary-model.js";
|
|
3
6
|
export type { TurnOutcome } from "./types.js";
|
|
4
7
|
/**
|
|
5
8
|
* True while settle chrome is active (open beat, slow collapse, or the short
|
|
@@ -8,77 +11,6 @@ export type { TurnOutcome } from "./types.js";
|
|
|
8
11
|
* rails, and never remount closed nested chips mid-collapse (that yanked).
|
|
9
12
|
*/
|
|
10
13
|
export declare function useTurnSettleOpen(): boolean;
|
|
11
|
-
export declare const BUILT_IN_TURN_SUMMARY_FACET_IDS: readonly ["steps", "files", "commands", "screenshots", "memories", "compacted", "duration"];
|
|
12
|
-
export type BuiltInTurnSummaryFacetId = (typeof BUILT_IN_TURN_SUMMARY_FACET_IDS)[number];
|
|
13
|
-
export type TurnSummaryContext = Readonly<{
|
|
14
|
-
/** Every normalized activity item folded into this summary. */
|
|
15
|
-
items: readonly ActivityItem[];
|
|
16
|
-
/** Tool calls from `items`, retained in timeline order for convenient aggregation. */
|
|
17
|
-
toolCalls: readonly ToolCallItem[];
|
|
18
|
-
/** The settled turn verdict, or absent for a neutral/incomplete cluster. */
|
|
19
|
-
outcome: TurnOutcome | undefined;
|
|
20
|
-
/** The bounded failure reason rendered by the enclosing summary, when present. */
|
|
21
|
-
failureText: string | undefined;
|
|
22
|
-
/** Total turn duration when the enclosing group has both valid timestamps. */
|
|
23
|
-
durationMs: number | undefined;
|
|
24
|
-
/** False when any projected activity is still running or streaming. */
|
|
25
|
-
settled: boolean;
|
|
26
|
-
/**
|
|
27
|
-
* Adjacent compaction landmarks next to this fold. Landmark remains the
|
|
28
|
-
* primary UI; this is a secondary chip signal only.
|
|
29
|
-
*/
|
|
30
|
-
contextCompactionCount: number;
|
|
31
|
-
}>;
|
|
32
|
-
export type TurnSummaryFacetResult = Readonly<{
|
|
33
|
-
icon?: ReactNode;
|
|
34
|
-
content: ReactNode;
|
|
35
|
-
ariaLabel?: string;
|
|
36
|
-
title?: string;
|
|
37
|
-
}>;
|
|
38
|
-
export type TurnSummaryFacet = Readonly<{
|
|
39
|
-
/** Stable identity used for removal and deterministic de-duplication. */
|
|
40
|
-
id: string;
|
|
41
|
-
/** Return null when this facet has nothing useful to show. */
|
|
42
|
-
summarize(context: TurnSummaryContext): TurnSummaryFacetResult | null;
|
|
43
|
-
}>;
|
|
44
|
-
type ModifyTurnSummaryFacets = Readonly<{
|
|
45
|
-
/** Appended after the remaining built-ins, in supplied order. */
|
|
46
|
-
add?: readonly TurnSummaryFacet[];
|
|
47
|
-
/** Built-ins to omit before custom facets are appended. */
|
|
48
|
-
remove?: readonly BuiltInTurnSummaryFacetId[];
|
|
49
|
-
replace?: never;
|
|
50
|
-
}>;
|
|
51
|
-
type ReplaceTurnSummaryFacets = Readonly<{
|
|
52
|
-
/** The complete ordered facet list. Mutually exclusive with add/remove. */
|
|
53
|
-
replace: readonly TurnSummaryFacet[];
|
|
54
|
-
add?: never;
|
|
55
|
-
remove?: never;
|
|
56
|
-
}>;
|
|
57
|
-
export type TurnSummaryFacetConfiguration = ModifyTurnSummaryFacets | ReplaceTurnSummaryFacets;
|
|
58
|
-
export type TurnSummaryOptions = Readonly<{
|
|
59
|
-
/**
|
|
60
|
-
* Readable per-turn presentation. Assistant progress stays fully formatted;
|
|
61
|
-
* each turn has its own Working / Worked row and rolling latest step.
|
|
62
|
-
* Ordinary tip-follow and manual scrolling are unchanged.
|
|
63
|
-
*/
|
|
64
|
-
rolling?: boolean;
|
|
65
|
-
facets?: TurnSummaryFacetConfiguration;
|
|
66
|
-
}>;
|
|
67
|
-
/**
|
|
68
|
-
* Exchange status shown in place of the plain facet line. `working` and
|
|
69
|
-
* `waiting` run a live clock from `since`; `worked` shows the settled span.
|
|
70
|
-
*/
|
|
71
|
-
export type TurnSummaryStatus = Readonly<{
|
|
72
|
-
kind: "working" | "waiting" | "worked";
|
|
73
|
-
/** Replaces the default "Working" / "Waiting" wording. */
|
|
74
|
-
label?: string | undefined;
|
|
75
|
-
/** Live clock start for `working` and `waiting`. */
|
|
76
|
-
since?: string | undefined;
|
|
77
|
-
/** Settled span for `worked`. */
|
|
78
|
-
durationMs?: number | undefined;
|
|
79
|
-
/** Live step preview under the row while it is collapsed. */
|
|
80
|
-
preview?: ReactNode;
|
|
81
|
-
}>;
|
|
82
14
|
export type TurnSummaryProps = {
|
|
83
15
|
/** Reports the disclosure's actual open state on mount and on every change. */
|
|
84
16
|
onOpenStateChange?: ((open: boolean) => void) | undefined;
|
|
@@ -143,5 +75,3 @@ export type TurnSummaryProps = {
|
|
|
143
75
|
children: ReactNode;
|
|
144
76
|
};
|
|
145
77
|
export declare function TurnSummary({ items, outcome, failureText, durationMs, defaultOpen, liveHeader, bare, facets: facetConfiguration, settleFold, foldKey, copyText, contextCompactionCount, status, onOpenStateChange, children, }: TurnSummaryProps): import("react").JSX.Element;
|
|
146
|
-
/** Elapsed wall time with seconds below an hour: "14s", "2m 14s", "1h 05m". */
|
|
147
|
-
export declare function formatElapsed(durationMs: number): string;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { TurnSummaryStatus } from "./turn-summary-model.js";
|
|
2
|
+
import type { ActivityItem, TimelineGroup, ToolCallItem } from "./types.js";
|
|
3
|
+
export type ActivityGroup = Extract<TimelineGroup, {
|
|
4
|
+
kind: "activity";
|
|
5
|
+
}>;
|
|
6
|
+
export type TurnGroup = Extract<TimelineGroup, {
|
|
7
|
+
kind: "turn";
|
|
8
|
+
}>;
|
|
9
|
+
export declare function durationBetween(startedAt: string, endedAt: string): number | undefined;
|
|
10
|
+
/** Compaction landmarks among a fold's groups (secondary summary facet). */
|
|
11
|
+
export declare function compactedLandmarkCount(groups: readonly TimelineGroup[]): number;
|
|
12
|
+
export declare function clusterIsSettled(group: ActivityGroup): boolean;
|
|
13
|
+
export declare function flattenActivityItems(groups: readonly TimelineGroup[]): ActivityItem[];
|
|
14
|
+
export type ReadableWorkOptions = {
|
|
15
|
+
/** Host shows startup phases as ordinary details (web: startup-details context). */
|
|
16
|
+
startupDetails: boolean;
|
|
17
|
+
/** Startup chrome was dismissed by the reader. */
|
|
18
|
+
startupDismissed: boolean;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* A readable turn whose only work so far is environment preparation renders as one quiet
|
|
22
|
+
* preparation surface instead of a "Working" fold.
|
|
23
|
+
*/
|
|
24
|
+
export declare function isPreparingWork(group: ActivityGroup, options: ReadableWorkOptions): boolean;
|
|
25
|
+
/** Status of a readable turn's work row, minus the host-rendered live preview. */
|
|
26
|
+
export declare function readableWorkStatus(group: ActivityGroup & {
|
|
27
|
+
work: NonNullable<ActivityGroup["work"]>;
|
|
28
|
+
}): Omit<TurnSummaryStatus, "preview">;
|
|
29
|
+
/** Whether a readable turn's work fold starts expanded. */
|
|
30
|
+
export declare function readableWorkDefaultOpen(group: ActivityGroup): true | undefined;
|
|
31
|
+
/** Whether the live preview should show (images stay primary output instead). */
|
|
32
|
+
export declare function readableWorkShowsPreview(group: ActivityGroup): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* The step a rolling preview shows: steps advance with event order (progress notes and
|
|
35
|
+
* startup phases have their own surfaces). Mirrors the web RollingActivity selection.
|
|
36
|
+
*/
|
|
37
|
+
export declare function rollingActivityItem(items: readonly ActivityItem[], previousItem?: ActivityItem, mounted?: boolean): {
|
|
38
|
+
item: ActivityItem;
|
|
39
|
+
running: boolean;
|
|
40
|
+
earlierCount: number;
|
|
41
|
+
} | null;
|
|
42
|
+
export declare function isToolCall(item: ActivityItem): item is ToolCallItem;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export { BUILT_IN_TURN_SUMMARY_FACET_IDS, BUILT_IN_TURN_SUMMARY_FACETS, createTurnSummaryContext, formatDurationFacet, formatElapsed, resolveTurnSummaryFacets, } from "./timeline/turn-summary-model.js";
|
|
2
|
+
export type { BuiltInTurnSummaryFacetId, TurnSummaryContext, TurnSummaryFacet, TurnSummaryFacetConfiguration, TurnSummaryFacetResult, TurnSummaryOptions, TurnSummaryStatus, } from "./timeline/turn-summary-model.js";
|
|
3
|
+
export { clusterIsSettled, compactedLandmarkCount, durationBetween, flattenActivityItems, isPreparingWork, readableWorkDefaultOpen, readableWorkShowsPreview, readableWorkStatus, rollingActivityItem, } from "./timeline/work-presentation.js";
|
|
4
|
+
export type { ActivityGroup, ReadableWorkOptions, TurnGroup } from "./timeline/work-presentation.js";
|
|
5
|
+
export { timelineGroupContainsPresentedImage } from "./timeline/presented-image.js";
|
|
6
|
+
export { mcpToolLeaf, toolDisplayName } from "./timeline/tool-display-name.js";
|
|
7
|
+
export { rawTypeOf } from "./timeline/registry.js";
|
|
8
|
+
export { applyPatchOpsFromToolItem, isApplyPatch, parseToolArgs, sandboxCommandExitCode, stripExecBanner, tailPeek, unwrapMcpOutput, } from "./timeline/parsers.js";
|
|
9
|
+
export { formatClockTime } from "./lib/format.js";
|
|
10
|
+
export { applyPatchPresentation, askPresentation, execPresentation, genericToolIconKind, genericToolPresentation, pathBasename, pathDirname, presentedToolKind, runOnPresentation, toolRowPresentation, truncatePreview, webSearchPresentation, withComputePreview, writeStdinPresentation, } from "./timeline/tool-presentation.js";
|
|
11
|
+
export type { PresentedToolKind, ToolBody, ToolChip, ToolIconKind, ToolIconTone, ToolPatchFile, ToolPresentationContext, ToolPreview, ToolRowPresentation, WebSearchResult, } from "./timeline/tool-presentation.js";
|
|
12
|
+
export { sandboxRowTitle, startupDuration, startupPhaseTitle, STARTUP_WAIT_TITLES, workerRowTitle, } from "./timeline/platform-activity-presentation.js";
|
|
13
|
+
export { formatBytes, stringifyPayload, tryParseJson } from "./lib/format.js";
|
|
14
|
+
export { selectTurnSummaryFacets } from "./timeline/turn-summary-model.js";
|
|
15
|
+
export { GENIE_PREPARING_PHRASES, GENIE_WAITING_PHRASES } from "./timeline/genie-copy.js";
|
|
16
|
+
export { answersFromDrafts, defaultHumanInputFormMessages, emptyDraft, formatDeadline, humanInputHeading, initialDrafts, } from "./human-input-model.js";
|
|
17
|
+
export type { HumanInputAnswerDraft, HumanInputFormMessages } from "./human-input-model.js";
|
|
18
|
+
export { isActionableHumanInputRequest } from "./human-input.js";
|
|
19
|
+
export { SESSION_STATUS_BADGE, SESSION_STATUS_PRESENTATION } from "./session-status-model.js";
|
|
20
|
+
export type { SessionStatusTone } from "./session-status-model.js";
|
|
21
|
+
export { formatRelativeTime } from "./lib/format.js";
|
|
22
|
+
export { noticeDisplayText, noticeIsResolvedApproval, noticeTone, } from "./timeline/notice-presentation.js";
|
|
23
|
+
export { QUESTION_NAV_HIDDEN_PX, QUESTION_NAV_MARGIN_PX, questionNavTarget, } from "./timeline/question-nav-model.js";
|
|
24
|
+
export type { QuestionNavPrompt } from "./timeline/question-nav-model.js";
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
BUILT_IN_TURN_SUMMARY_FACETS,
|
|
4
|
+
BUILT_IN_TURN_SUMMARY_FACET_IDS,
|
|
5
|
+
GENIE_PREPARING_PHRASES,
|
|
6
|
+
GENIE_WAITING_PHRASES,
|
|
7
|
+
QUESTION_NAV_HIDDEN_PX,
|
|
8
|
+
QUESTION_NAV_MARGIN_PX,
|
|
9
|
+
SESSION_STATUS_BADGE,
|
|
10
|
+
SESSION_STATUS_PRESENTATION,
|
|
11
|
+
answersFromDrafts,
|
|
12
|
+
applyPatchOpsFromToolItem,
|
|
13
|
+
applyPatchPresentation,
|
|
14
|
+
askPresentation,
|
|
15
|
+
clusterIsSettled,
|
|
16
|
+
compactedLandmarkCount,
|
|
17
|
+
createTurnSummaryContext,
|
|
18
|
+
defaultHumanInputFormMessages,
|
|
19
|
+
durationBetween,
|
|
20
|
+
emptyDraft,
|
|
21
|
+
execPresentation,
|
|
22
|
+
flattenActivityItems,
|
|
23
|
+
formatDeadline,
|
|
24
|
+
formatDurationFacet,
|
|
25
|
+
formatElapsed,
|
|
26
|
+
genericToolIconKind,
|
|
27
|
+
genericToolPresentation,
|
|
28
|
+
humanInputHeading,
|
|
29
|
+
initialDrafts,
|
|
30
|
+
isApplyPatch,
|
|
31
|
+
isPreparingWork,
|
|
32
|
+
noticeDisplayText,
|
|
33
|
+
noticeIsResolvedApproval,
|
|
34
|
+
noticeTone,
|
|
35
|
+
parseToolArgs,
|
|
36
|
+
pathBasename,
|
|
37
|
+
pathDirname,
|
|
38
|
+
presentedToolKind,
|
|
39
|
+
questionNavTarget,
|
|
40
|
+
rawTypeOf,
|
|
41
|
+
readableWorkDefaultOpen,
|
|
42
|
+
readableWorkShowsPreview,
|
|
43
|
+
readableWorkStatus,
|
|
44
|
+
resolveTurnSummaryFacets,
|
|
45
|
+
rollingActivityItem,
|
|
46
|
+
runOnPresentation,
|
|
47
|
+
sandboxCommandExitCode,
|
|
48
|
+
selectTurnSummaryFacets,
|
|
49
|
+
stripExecBanner,
|
|
50
|
+
tailPeek,
|
|
51
|
+
toolRowPresentation,
|
|
52
|
+
truncatePreview,
|
|
53
|
+
unwrapMcpOutput,
|
|
54
|
+
webSearchPresentation,
|
|
55
|
+
withComputePreview,
|
|
56
|
+
writeStdinPresentation
|
|
57
|
+
} from "./chunk-JDJJMBB3.js";
|
|
58
|
+
import {
|
|
59
|
+
STARTUP_WAIT_TITLES,
|
|
60
|
+
sandboxRowTitle,
|
|
61
|
+
startupDuration,
|
|
62
|
+
startupPhaseTitle,
|
|
63
|
+
workerRowTitle
|
|
64
|
+
} from "./chunk-ZIB4H5LN.js";
|
|
65
|
+
import {
|
|
66
|
+
timelineGroupContainsPresentedImage
|
|
67
|
+
} from "./chunk-R5R5RQQD.js";
|
|
68
|
+
import {
|
|
69
|
+
isActionableHumanInputRequest
|
|
70
|
+
} from "./chunk-IZV5FTJC.js";
|
|
71
|
+
import {
|
|
72
|
+
mcpToolLeaf,
|
|
73
|
+
toolDisplayName
|
|
74
|
+
} from "./chunk-T46QZH3E.js";
|
|
75
|
+
import {
|
|
76
|
+
formatBytes,
|
|
77
|
+
formatClockTime,
|
|
78
|
+
formatRelativeTime,
|
|
79
|
+
stringifyPayload,
|
|
80
|
+
tryParseJson
|
|
81
|
+
} from "./chunk-ATIRUHBZ.js";
|
|
82
|
+
export {
|
|
83
|
+
BUILT_IN_TURN_SUMMARY_FACETS,
|
|
84
|
+
BUILT_IN_TURN_SUMMARY_FACET_IDS,
|
|
85
|
+
GENIE_PREPARING_PHRASES,
|
|
86
|
+
GENIE_WAITING_PHRASES,
|
|
87
|
+
QUESTION_NAV_HIDDEN_PX,
|
|
88
|
+
QUESTION_NAV_MARGIN_PX,
|
|
89
|
+
SESSION_STATUS_BADGE,
|
|
90
|
+
SESSION_STATUS_PRESENTATION,
|
|
91
|
+
STARTUP_WAIT_TITLES,
|
|
92
|
+
answersFromDrafts,
|
|
93
|
+
applyPatchOpsFromToolItem,
|
|
94
|
+
applyPatchPresentation,
|
|
95
|
+
askPresentation,
|
|
96
|
+
clusterIsSettled,
|
|
97
|
+
compactedLandmarkCount,
|
|
98
|
+
createTurnSummaryContext,
|
|
99
|
+
defaultHumanInputFormMessages,
|
|
100
|
+
durationBetween,
|
|
101
|
+
emptyDraft,
|
|
102
|
+
execPresentation,
|
|
103
|
+
flattenActivityItems,
|
|
104
|
+
formatBytes,
|
|
105
|
+
formatClockTime,
|
|
106
|
+
formatDeadline,
|
|
107
|
+
formatDurationFacet,
|
|
108
|
+
formatElapsed,
|
|
109
|
+
formatRelativeTime,
|
|
110
|
+
genericToolIconKind,
|
|
111
|
+
genericToolPresentation,
|
|
112
|
+
humanInputHeading,
|
|
113
|
+
initialDrafts,
|
|
114
|
+
isActionableHumanInputRequest,
|
|
115
|
+
isApplyPatch,
|
|
116
|
+
isPreparingWork,
|
|
117
|
+
mcpToolLeaf,
|
|
118
|
+
noticeDisplayText,
|
|
119
|
+
noticeIsResolvedApproval,
|
|
120
|
+
noticeTone,
|
|
121
|
+
parseToolArgs,
|
|
122
|
+
pathBasename,
|
|
123
|
+
pathDirname,
|
|
124
|
+
presentedToolKind,
|
|
125
|
+
questionNavTarget,
|
|
126
|
+
rawTypeOf,
|
|
127
|
+
readableWorkDefaultOpen,
|
|
128
|
+
readableWorkShowsPreview,
|
|
129
|
+
readableWorkStatus,
|
|
130
|
+
resolveTurnSummaryFacets,
|
|
131
|
+
rollingActivityItem,
|
|
132
|
+
runOnPresentation,
|
|
133
|
+
sandboxCommandExitCode,
|
|
134
|
+
sandboxRowTitle,
|
|
135
|
+
selectTurnSummaryFacets,
|
|
136
|
+
startupDuration,
|
|
137
|
+
startupPhaseTitle,
|
|
138
|
+
stringifyPayload,
|
|
139
|
+
stripExecBanner,
|
|
140
|
+
tailPeek,
|
|
141
|
+
timelineGroupContainsPresentedImage,
|
|
142
|
+
toolDisplayName,
|
|
143
|
+
toolRowPresentation,
|
|
144
|
+
truncatePreview,
|
|
145
|
+
tryParseJson,
|
|
146
|
+
unwrapMcpOutput,
|
|
147
|
+
webSearchPresentation,
|
|
148
|
+
withComputePreview,
|
|
149
|
+
workerRowTitle,
|
|
150
|
+
writeStdinPresentation
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=timeline-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opengeni/react",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.5-canary.37458084490001",
|
|
4
4
|
"description": "React hooks and styled components for OpenGeni: live session streaming, chat composer, message timeline, session status, and fleet views — token-themed (CSS variables), dark-first, built on Tailwind v4 + Radix + Motion.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -78,6 +78,22 @@
|
|
|
78
78
|
"types": "./dist/machines.d.ts",
|
|
79
79
|
"import": "./dist/machines.js"
|
|
80
80
|
},
|
|
81
|
+
"./queue-presentation-model": {
|
|
82
|
+
"types": "./dist/queue-presentation-model.d.ts",
|
|
83
|
+
"import": "./dist/queue-presentation-model.js"
|
|
84
|
+
},
|
|
85
|
+
"./composer-messages": {
|
|
86
|
+
"types": "./dist/composer-messages.d.ts",
|
|
87
|
+
"import": "./dist/composer-messages.js"
|
|
88
|
+
},
|
|
89
|
+
"./sandbox-label-model": {
|
|
90
|
+
"types": "./dist/sandbox-label-model.d.ts",
|
|
91
|
+
"import": "./dist/sandbox-label-model.js"
|
|
92
|
+
},
|
|
93
|
+
"./model-picker-model": {
|
|
94
|
+
"types": "./dist/model-picker-model.d.ts",
|
|
95
|
+
"import": "./dist/model-picker-model.js"
|
|
96
|
+
},
|
|
81
97
|
"./model-policy": {
|
|
82
98
|
"types": "./dist/model-policy.d.ts",
|
|
83
99
|
"import": "./dist/model-policy.js",
|
|
@@ -130,6 +146,34 @@
|
|
|
130
146
|
"types": "./styles/tokens.d.ts",
|
|
131
147
|
"style": "./styles/tokens.css",
|
|
132
148
|
"default": "./styles/tokens.css"
|
|
149
|
+
},
|
|
150
|
+
"./testing": {
|
|
151
|
+
"types": "./dist/testing/session-scenarios.d.ts",
|
|
152
|
+
"import": "./dist/testing/session-scenarios.js"
|
|
153
|
+
},
|
|
154
|
+
"./timeline-model": {
|
|
155
|
+
"types": "./dist/timeline-model.d.ts",
|
|
156
|
+
"import": "./dist/timeline-model.js"
|
|
157
|
+
},
|
|
158
|
+
"./organization-model": {
|
|
159
|
+
"types": "./dist/organization-model.d.ts",
|
|
160
|
+
"import": "./dist/organization-model.js"
|
|
161
|
+
},
|
|
162
|
+
"./session-list-model": {
|
|
163
|
+
"types": "./dist/session-list-model.d.ts",
|
|
164
|
+
"import": "./dist/session-list-model.js"
|
|
165
|
+
},
|
|
166
|
+
"./model-mark-paths": {
|
|
167
|
+
"types": "./dist/model-mark-paths.d.ts",
|
|
168
|
+
"import": "./dist/model-mark-paths.js"
|
|
169
|
+
},
|
|
170
|
+
"./session-feedback-model": {
|
|
171
|
+
"types": "./dist/session-feedback-model.d.ts",
|
|
172
|
+
"import": "./dist/session-feedback-model.js"
|
|
173
|
+
},
|
|
174
|
+
"./session-attention-model": {
|
|
175
|
+
"types": "./dist/session-attention-model.d.ts",
|
|
176
|
+
"import": "./dist/session-attention-model.js"
|
|
133
177
|
}
|
|
134
178
|
},
|
|
135
179
|
"publishConfig": {
|
|
@@ -153,8 +197,8 @@
|
|
|
153
197
|
"@dnd-kit/utilities": "3.2.2",
|
|
154
198
|
"@fontsource-variable/noto-sans-arabic": "5.2.10",
|
|
155
199
|
"@fontsource-variable/noto-sans-jp": "5.2.10",
|
|
156
|
-
"@opengeni/connect": "1.4.
|
|
157
|
-
"@opengeni/sdk": "1.4.
|
|
200
|
+
"@opengeni/connect": "1.4.5-canary.37458084490001",
|
|
201
|
+
"@opengeni/sdk": "1.4.5-canary.37458084490001",
|
|
158
202
|
"clsx": "^2.1.1",
|
|
159
203
|
"dequal": "2.0.3",
|
|
160
204
|
"lucide-react": "^1.8.0",
|
package/src/artifacts.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { inlineHtmlDocument } from "./components/artifacts/inline-html-document";
|
|
2
2
|
export { isRetainedImageContentType, useRetainedImageObjectUrl } from "./timeline/retained-image";
|
|
3
|
+
export { PatchApplyCommand, isPatchFilename } from "./timeline/patch-apply-command";
|
|
3
4
|
export {
|
|
4
5
|
ArtifactBadge,
|
|
5
6
|
ArtifactLabelsProvider,
|