@opengeni/react 1.4.4 → 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.
Files changed (234) hide show
  1. package/README.md +17 -6
  2. package/dist/artifacts.d.ts +1 -0
  3. package/dist/artifacts.js +22 -15
  4. package/dist/artifacts.js.map +1 -1
  5. package/dist/{browser-viewer-5EEAS3IU.js → browser-viewer-CV23VIHB.js} +8 -6
  6. package/dist/chunk-3ZC6QPOM.js +174 -0
  7. package/dist/chunk-3ZC6QPOM.js.map +1 -0
  8. package/dist/{chunk-YVFRBXST.js → chunk-4BCVCJSU.js} +2 -2
  9. package/dist/{chunk-JHTIMBOL.js → chunk-5JSUNNQN.js} +26 -4
  10. package/dist/{chunk-JHTIMBOL.js.map → chunk-5JSUNNQN.js.map} +1 -1
  11. package/dist/{chunk-I6OY3MWC.js → chunk-6FOTSVWU.js} +2 -2
  12. package/dist/{chunk-IUHHPMAX.js → chunk-7RRBX5EM.js} +14 -85
  13. package/dist/chunk-7RRBX5EM.js.map +1 -0
  14. package/dist/{chunk-L2J3PU7A.js → chunk-7ZB7I3KP.js} +24 -98
  15. package/dist/chunk-7ZB7I3KP.js.map +1 -0
  16. package/dist/{chunk-LVS3MH5T.js → chunk-ATIRUHBZ.js} +128 -10
  17. package/dist/chunk-ATIRUHBZ.js.map +1 -0
  18. package/dist/chunk-BOFEQC6K.js +162 -0
  19. package/dist/chunk-BOFEQC6K.js.map +1 -0
  20. package/dist/{chunk-2OQA3CPB.js → chunk-CESBPQP5.js} +19 -5
  21. package/dist/chunk-CESBPQP5.js.map +1 -0
  22. package/dist/{chunk-IYQCWGU5.js → chunk-GHJU7XG7.js} +35 -62
  23. package/dist/chunk-GHJU7XG7.js.map +1 -0
  24. package/dist/{chunk-G6YRCIYJ.js → chunk-HNVWMDNN.js} +55 -60
  25. package/dist/chunk-HNVWMDNN.js.map +1 -0
  26. package/dist/{chunk-PHBFJCEU.js → chunk-I5EGRXXG.js} +110 -7
  27. package/dist/chunk-I5EGRXXG.js.map +1 -0
  28. package/dist/{chunk-PBCZL4JP.js → chunk-INIZSNXT.js} +2 -2
  29. package/dist/{chunk-XS67YG5R.js → chunk-IX3K4THH.js} +24 -3
  30. package/dist/chunk-IX3K4THH.js.map +1 -0
  31. package/dist/chunk-IZV5FTJC.js +55 -0
  32. package/dist/chunk-IZV5FTJC.js.map +1 -0
  33. package/dist/chunk-JDJJMBB3.js +1883 -0
  34. package/dist/chunk-JDJJMBB3.js.map +1 -0
  35. package/dist/{chunk-C5BF4L26.js → chunk-KHF2VRXF.js} +7 -7
  36. package/dist/{chunk-QMMCJGFI.js → chunk-L5OKM2VX.js} +2 -2
  37. package/dist/chunk-LHF6BVM4.js +83 -0
  38. package/dist/chunk-LHF6BVM4.js.map +1 -0
  39. package/dist/chunk-N7S72EXK.js +25 -0
  40. package/dist/chunk-N7S72EXK.js.map +1 -0
  41. package/dist/{chunk-CVYCLFMH.js → chunk-PEHTX3V7.js} +19 -1
  42. package/dist/chunk-PEHTX3V7.js.map +1 -0
  43. package/dist/chunk-R5R5RQQD.js +51 -0
  44. package/dist/chunk-R5R5RQQD.js.map +1 -0
  45. package/dist/chunk-RI42H5IU.js +326 -0
  46. package/dist/chunk-RI42H5IU.js.map +1 -0
  47. package/dist/{chunk-JH7V627O.js → chunk-SHLZMAJN.js} +2 -11
  48. package/dist/chunk-SHLZMAJN.js.map +1 -0
  49. package/dist/{chunk-EAOSEIXB.js → chunk-TZQSHCZN.js} +692 -1996
  50. package/dist/chunk-TZQSHCZN.js.map +1 -0
  51. package/dist/chunk-ZIB4H5LN.js +101 -0
  52. package/dist/chunk-ZIB4H5LN.js.map +1 -0
  53. package/dist/client.d.ts +9 -3
  54. package/dist/clipboard.js +1 -1
  55. package/dist/components/browser-viewer.d.ts +6 -0
  56. package/dist/components/composer.d.ts +3 -69
  57. package/dist/components/human-input-form.d.ts +3 -32
  58. package/dist/components/markdown.d.ts +8 -0
  59. package/dist/components/model-policy-picker.d.ts +4 -37
  60. package/dist/components/opper-mark.d.ts +7 -0
  61. package/dist/components/provider-recovery-notice.d.ts +15 -0
  62. package/dist/components/remark-soft-line-breaks.d.ts +38 -0
  63. package/dist/components/sandbox-workspace.d.ts +13 -0
  64. package/dist/components/session-chrome.d.ts +5 -3
  65. package/dist/components/session-conversation.d.ts +15 -3
  66. package/dist/composer-messages.d.ts +74 -0
  67. package/dist/composer-messages.js +9 -0
  68. package/dist/composer.js +15 -10
  69. package/dist/{computer-viewer-ELNLZGHI.js → computer-viewer-K4CKYRX6.js} +4 -4
  70. package/dist/connect-setup.d.ts +2 -0
  71. package/dist/connect.d.ts +1 -1
  72. package/dist/connect.js +21 -6
  73. package/dist/connect.js.map +1 -1
  74. package/dist/{embedded-voice-NIL4RDX3.js → embedded-voice-3ZFWWJ6O.js} +6 -4
  75. package/dist/{embedded-voice-NIL4RDX3.js.map → embedded-voice-3ZFWWJ6O.js.map} +1 -1
  76. package/dist/hooks/shared-machines-list.d.ts +4 -0
  77. package/dist/hooks/use-client-config-flags.d.ts +6 -0
  78. package/dist/hooks/use-goal.d.ts +2 -1
  79. package/dist/human-input-model.d.ts +40 -0
  80. package/dist/index.d.ts +4 -1
  81. package/dist/index.js +116 -73
  82. package/dist/index.js.map +1 -1
  83. package/dist/interaction.js +5 -5
  84. package/dist/{latest-question-2POFPYNB.js → latest-question-SWC6QEVN.js} +3 -3
  85. package/dist/lib/clipboard.d.ts +7 -0
  86. package/dist/lib/provider-recovery.d.ts +49 -0
  87. package/dist/machines.js +2 -2
  88. package/dist/model-mark-paths.d.ts +34 -0
  89. package/dist/model-mark-paths.js +16 -0
  90. package/dist/model-picker-model.d.ts +111 -0
  91. package/dist/model-picker-model.js +25 -0
  92. package/dist/model-picker-model.js.map +1 -0
  93. package/dist/{model-policy-picker-menu-WRNSRFQC.js → model-policy-picker-menu-NM4RPTY6.js} +6 -4
  94. package/dist/model-policy-picker-menu-NM4RPTY6.js.map +1 -0
  95. package/dist/model-policy.d.ts +10 -0
  96. package/dist/model-policy.js +5 -1
  97. package/dist/organization-model.d.ts +32 -0
  98. package/dist/organization-model.js +65 -0
  99. package/dist/organization-model.js.map +1 -0
  100. package/dist/{platform-activity-row-PJJVATTZ.js → platform-activity-row-NJ47YBXW.js} +7 -84
  101. package/dist/platform-activity-row-NJ47YBXW.js.map +1 -0
  102. package/dist/queue-presentation-model.d.ts +72 -0
  103. package/dist/queue-presentation-model.js +38 -0
  104. package/dist/queue-presentation-model.js.map +1 -0
  105. package/dist/{queue-surface-implementation-67FS7FUI.js → queue-surface-implementation-YPJFQ3O6.js} +24 -252
  106. package/dist/queue-surface-implementation-YPJFQ3O6.js.map +1 -0
  107. package/dist/realtime.js +5 -3
  108. package/dist/{sandbox-files-34CJJNOY.js → sandbox-files-RCVCMXG7.js} +5 -5
  109. package/dist/sandbox-files-RCVCMXG7.js.map +1 -0
  110. package/dist/sandbox-label-model.d.ts +23 -0
  111. package/dist/sandbox-label-model.js +28 -0
  112. package/dist/sandbox-label-model.js.map +1 -0
  113. package/dist/session-attention-model.d.ts +8 -0
  114. package/dist/session-attention-model.js +46 -0
  115. package/dist/session-attention-model.js.map +1 -0
  116. package/dist/session-feedback-model.d.ts +20 -0
  117. package/dist/session-feedback-model.js +56 -0
  118. package/dist/session-feedback-model.js.map +1 -0
  119. package/dist/session-list-model.d.ts +96 -0
  120. package/dist/session-list-model.js +219 -0
  121. package/dist/session-list-model.js.map +1 -0
  122. package/dist/session-status-model.d.ts +19 -0
  123. package/dist/session-ui.js +26 -17
  124. package/dist/session-ui.js.map +1 -1
  125. package/dist/session.js +8 -6
  126. package/dist/testing/session-scenarios.d.ts +10 -0
  127. package/dist/testing/session-scenarios.js +303 -0
  128. package/dist/testing/session-scenarios.js.map +1 -0
  129. package/dist/timeline/genie-copy.d.ts +3 -0
  130. package/dist/timeline/genie-loading.d.ts +11 -0
  131. package/dist/timeline/index.d.ts +1 -1
  132. package/dist/timeline/notice-presentation.d.ts +7 -0
  133. package/dist/timeline/patch-apply-command.d.ts +18 -0
  134. package/dist/timeline/platform-activity-presentation.d.ts +7 -0
  135. package/dist/timeline/presented-image.d.ts +6 -1
  136. package/dist/timeline/question-nav-model.d.ts +23 -0
  137. package/dist/timeline/registry.d.ts +10 -1
  138. package/dist/timeline/retained-loaders.d.ts +1 -1
  139. package/dist/timeline/tool-presentation.d.ts +172 -0
  140. package/dist/timeline/turn-summary-model.d.ts +90 -0
  141. package/dist/timeline/turn-summary.d.ts +4 -74
  142. package/dist/timeline/work-presentation.d.ts +42 -0
  143. package/dist/timeline-model.d.ts +24 -0
  144. package/dist/timeline-model.js +152 -0
  145. package/dist/timeline-model.js.map +1 -0
  146. package/package.json +47 -3
  147. package/src/artifacts.ts +1 -0
  148. package/src/client.ts +9 -3
  149. package/src/components/browser-viewer.tsx +23 -2
  150. package/src/components/claude-mark.tsx +2 -1
  151. package/src/components/composer.tsx +4 -144
  152. package/src/components/grok-mark.tsx +2 -1
  153. package/src/components/human-input-form.tsx +13 -124
  154. package/src/components/markdown.tsx +19 -1
  155. package/src/components/message-timeline.tsx +45 -99
  156. package/src/components/model-mark.tsx +2 -1
  157. package/src/components/model-policy-picker-menu.tsx +30 -85
  158. package/src/components/model-policy-picker.tsx +15 -148
  159. package/src/components/opper-mark.tsx +18 -0
  160. package/src/components/provider-recovery-notice.tsx +41 -0
  161. package/src/components/queue-surface-implementation.tsx +20 -349
  162. package/src/components/remark-soft-line-breaks.ts +166 -0
  163. package/src/components/sandbox-workspace.tsx +17 -1
  164. package/src/components/session-chrome.tsx +114 -99
  165. package/src/components/session-conversation.tsx +55 -6
  166. package/src/components/session-status.tsx +17 -16
  167. package/src/composer-messages.ts +150 -0
  168. package/src/connect-setup.tsx +45 -11
  169. package/src/connect.ts +1 -1
  170. package/src/hooks/shared-machines-list.ts +34 -1
  171. package/src/hooks/use-client-config-flags.ts +8 -0
  172. package/src/hooks/use-goal.ts +66 -10
  173. package/src/human-input-model.ts +147 -0
  174. package/src/index.ts +16 -0
  175. package/src/lib/clipboard.ts +29 -0
  176. package/src/lib/format.ts +7 -0
  177. package/src/lib/provider-recovery.ts +202 -0
  178. package/src/model-mark-paths.ts +53 -0
  179. package/src/model-picker-model.ts +330 -0
  180. package/src/model-policy.ts +43 -2
  181. package/src/organization-model.ts +118 -0
  182. package/src/queue-presentation-model.ts +464 -0
  183. package/src/sandbox-label-model.ts +41 -0
  184. package/src/session-attention-model.ts +59 -0
  185. package/src/session-feedback-model.ts +95 -0
  186. package/src/session-list-model.ts +327 -0
  187. package/src/session-status-model.ts +62 -0
  188. package/src/testing/session-scenarios.ts +326 -0
  189. package/src/timeline/activity-rail.tsx +5 -17
  190. package/src/timeline/genie-copy.ts +19 -0
  191. package/src/timeline/genie-loading.tsx +13 -18
  192. package/src/timeline/index.ts +1 -0
  193. package/src/timeline/notice-presentation.ts +22 -0
  194. package/src/timeline/patch-apply-command.tsx +135 -0
  195. package/src/timeline/platform-activity-presentation.ts +122 -0
  196. package/src/timeline/platform-activity-row.tsx +6 -96
  197. package/src/timeline/presented-image.ts +16 -2
  198. package/src/timeline/question-nav-model.ts +28 -0
  199. package/src/timeline/registry.ts +11 -1
  200. package/src/timeline/retained-loaders.ts +9 -4
  201. package/src/timeline/rolling-activity.tsx +7 -19
  202. package/src/timeline/tool-presentation.ts +1316 -0
  203. package/src/timeline/tool-renderers.tsx +226 -1025
  204. package/src/timeline/turn-summary-model.ts +338 -0
  205. package/src/timeline/turn-summary.tsx +21 -326
  206. package/src/timeline/work-presentation.ts +139 -0
  207. package/src/timeline-model.ts +108 -0
  208. package/styles/compiled.css +3 -0
  209. package/styles/connect.css +4 -0
  210. package/dist/chunk-2OQA3CPB.js.map +0 -1
  211. package/dist/chunk-CVYCLFMH.js.map +0 -1
  212. package/dist/chunk-EAOSEIXB.js.map +0 -1
  213. package/dist/chunk-G6YRCIYJ.js.map +0 -1
  214. package/dist/chunk-HXYOSSQO.js +0 -117
  215. package/dist/chunk-HXYOSSQO.js.map +0 -1
  216. package/dist/chunk-IUHHPMAX.js.map +0 -1
  217. package/dist/chunk-IYQCWGU5.js.map +0 -1
  218. package/dist/chunk-JH7V627O.js.map +0 -1
  219. package/dist/chunk-L2J3PU7A.js.map +0 -1
  220. package/dist/chunk-LVS3MH5T.js.map +0 -1
  221. package/dist/chunk-PHBFJCEU.js.map +0 -1
  222. package/dist/chunk-XS67YG5R.js.map +0 -1
  223. package/dist/platform-activity-row-PJJVATTZ.js.map +0 -1
  224. package/dist/queue-surface-implementation-67FS7FUI.js.map +0 -1
  225. /package/dist/{browser-viewer-5EEAS3IU.js.map → browser-viewer-CV23VIHB.js.map} +0 -0
  226. /package/dist/{chunk-YVFRBXST.js.map → chunk-4BCVCJSU.js.map} +0 -0
  227. /package/dist/{chunk-I6OY3MWC.js.map → chunk-6FOTSVWU.js.map} +0 -0
  228. /package/dist/{chunk-PBCZL4JP.js.map → chunk-INIZSNXT.js.map} +0 -0
  229. /package/dist/{chunk-C5BF4L26.js.map → chunk-KHF2VRXF.js.map} +0 -0
  230. /package/dist/{chunk-QMMCJGFI.js.map → chunk-L5OKM2VX.js.map} +0 -0
  231. /package/dist/{computer-viewer-ELNLZGHI.js.map → composer-messages.js.map} +0 -0
  232. /package/dist/{model-policy-picker-menu-WRNSRFQC.js.map → computer-viewer-K4CKYRX6.js.map} +0 -0
  233. /package/dist/{latest-question-2POFPYNB.js.map → latest-question-SWC6QEVN.js.map} +0 -0
  234. /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 type { ActivityItem, ToolCallItem, TurnOutcome } from "./types.js";
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.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.4",
157
- "@opengeni/sdk": "1.4.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,