@opengeni/react 4.0.2-canary.0 → 5.0.2-canary.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.
Files changed (48) hide show
  1. package/README.md +42 -0
  2. package/dist/artifacts.js +24 -285
  3. package/dist/artifacts.js.map +1 -1
  4. package/dist/chunk-BRFMGY4L.js +274 -0
  5. package/dist/chunk-BRFMGY4L.js.map +1 -0
  6. package/dist/chunk-IWIDV7SB.js +1 -0
  7. package/dist/chunk-IWIDV7SB.js.map +1 -0
  8. package/dist/{chunk-CQG7YUJB.js → chunk-WRVKY242.js} +1169 -1017
  9. package/dist/chunk-WRVKY242.js.map +1 -0
  10. package/dist/clipboard.js +1 -0
  11. package/dist/components/message-timeline.d.ts +7 -3
  12. package/dist/connect-accounts.d.ts +10 -0
  13. package/dist/connect-chooser.d.ts +11 -0
  14. package/dist/connect-panel.d.ts +10 -0
  15. package/dist/connect-setup.d.ts +12 -0
  16. package/dist/connect.d.ts +30 -0
  17. package/dist/connect.js +831 -0
  18. package/dist/connect.js.map +1 -0
  19. package/dist/device-authorization.d.ts +15 -0
  20. package/dist/identity-link-accounts.d.ts +11 -0
  21. package/dist/identity-link-consent.d.ts +18 -0
  22. package/dist/index.js +523 -663
  23. package/dist/index.js.map +1 -1
  24. package/dist/session-ui.d.ts +2 -0
  25. package/dist/session-ui.js +3 -1
  26. package/dist/sites-ui.d.ts +33 -0
  27. package/dist/sites.d.ts +3 -0
  28. package/dist/sites.js +288 -0
  29. package/dist/sites.js.map +1 -0
  30. package/package.json +16 -2
  31. package/src/components/message-timeline.tsx +22 -5
  32. package/src/components/sandbox-workspace.tsx +9 -2
  33. package/src/connect-accounts.tsx +171 -0
  34. package/src/connect-chooser.tsx +144 -0
  35. package/src/connect-panel.tsx +29 -0
  36. package/src/connect-setup.tsx +260 -0
  37. package/src/connect.ts +48 -0
  38. package/src/device-authorization.tsx +90 -0
  39. package/src/hooks/use-workspace-capture.ts +3 -2
  40. package/src/identity-link-accounts.tsx +144 -0
  41. package/src/identity-link-consent.tsx +192 -0
  42. package/src/session-ui.ts +2 -0
  43. package/src/sites-ui.tsx +385 -0
  44. package/src/sites.ts +3 -0
  45. package/src/timeline/tool-renderers.tsx +1 -1
  46. package/styles/connect.css +48 -0
  47. package/styles/connect.d.ts +1 -0
  48. package/dist/chunk-CQG7YUJB.js.map +0 -1
package/dist/clipboard.js CHANGED
@@ -1,3 +1,4 @@
1
+ import "./chunk-IWIDV7SB.js";
1
2
  import {
2
3
  copyTextToClipboard
3
4
  } from "./chunk-JVYQRRC4.js";
@@ -32,6 +32,8 @@ export type MessageTimelineProps = {
32
32
  * a Reconnect button without a handler to run it.
33
33
  */
34
34
  onReconnect?: ((item: AuthNeededItem) => void | Promise<void>) | undefined;
35
+ /** Host-owned inline connection setup. Return undefined to use the default recovery card. */
36
+ renderAuthNeeded?: ((item: AuthNeededItem) => ReactNode | undefined) | undefined;
35
37
  /**
36
38
  * Decide which durable authentication notices this timeline presents.
37
39
  * Defaults to showing every notice. Embedded hosts can suppress notices for
@@ -109,7 +111,7 @@ export type MessageTimelineProps = {
109
111
  * cards, goal markers, and status transitions. Owns stick-to-bottom scrolling
110
112
  * with a "jump to latest" affordance when the reader scrolls back.
111
113
  */
112
- export declare function MessageTimeline({ events, items, status: _status, renderMessageActions, renderMessageText, onOpenSession, onMemoryClick, onReconnect, shouldRenderAuthNeeded, resolveProviderLogo, toolRegistry, loadRetainedScreenshot, loadRetainedArtifact, loadVideoArtifactPlayback, computeLabel, turnSummary, autoFollow, onAnnotate, draftAnnotations, onDraftAnnotationSelect, hasOlder, loadingOlder, onLoadOlder, onJumpToStart, loadingOldest, hasNewer, loadingNewer, onLoadNewer, onJumpToLatest, trailingState, emptyState, className, }: MessageTimelineProps): import("react").JSX.Element;
114
+ export declare function MessageTimeline({ events, items, status: _status, renderMessageActions, renderMessageText, onOpenSession, onMemoryClick, onReconnect, renderAuthNeeded, shouldRenderAuthNeeded, resolveProviderLogo, toolRegistry, loadRetainedScreenshot, loadRetainedArtifact, loadVideoArtifactPlayback, computeLabel, turnSummary, autoFollow, onAnnotate, draftAnnotations, onDraftAnnotationSelect, hasOlder, loadingOlder, onLoadOlder, onJumpToStart, loadingOldest, hasNewer, loadingNewer, onLoadNewer, onJumpToLatest, trailingState, emptyState, className, }: MessageTimelineProps): import("react").JSX.Element;
113
115
  /**
114
116
  * Settled turns lift the final agent answer out as a sibling group. Include it
115
117
  * in "Copy turn" when present so the chip copies the full assistant reply.
@@ -121,12 +123,14 @@ export declare function trailingAgentTextAfterTurn(group: TimelineGroup, next: T
121
123
  * landmark, notice). Exported so the component demo draws the EXACT same rows as
122
124
  * the live app — no forked bubble/goal markup.
123
125
  */
124
- export declare function TimelineRow({ item, renderMessageActions, renderMessageText, onReconnect, resolveProviderLogo, onOpenSession, loadVideoArtifactPlayback, }: {
126
+ export declare function TimelineRow({ item, renderMessageActions, renderMessageText, onReconnect, renderAuthNeeded, resolveProviderLogo, onOpenSession, loadVideoArtifactPlayback, }: {
125
127
  item: TimelineItem;
126
128
  renderMessageActions?: ((item: AgentMessageItem | UserMessageItem) => ReactNode) | undefined;
127
129
  renderMessageText?: ((text: string, item: AgentMessageItem | UserMessageItem) => ReactNode) | undefined;
128
130
  onReconnect?: ((item: AuthNeededItem) => void | Promise<void>) | undefined;
131
+ /** Host-owned inline connection setup. Return undefined to use the default recovery card. */
132
+ renderAuthNeeded?: ((item: AuthNeededItem) => ReactNode | undefined) | undefined;
129
133
  resolveProviderLogo?: ((providerDomain: string) => string | null | undefined) | undefined;
130
134
  onOpenSession?: ((sessionId: string) => void) | undefined;
131
135
  loadVideoArtifactPlayback?: VideoArtifactPlaybackLoader | undefined;
132
- }): import("react").JSX.Element | null;
136
+ }): string | number | bigint | boolean | import("react").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | null;
@@ -0,0 +1,10 @@
1
+ import type { ConnectController } from "@opengeni/connect";
2
+ export type ConnectAccountsProps = {
3
+ controller: ConnectController;
4
+ className?: string;
5
+ /** Enables explicit account-bound reconnect. Host supplies the exact destination. */
6
+ returnUrl?: string;
7
+ };
8
+ /** Local credential revocation only. Unknown or changed versions must be
9
+ * refreshed; this component never retries a destructive operation implicitly. */
10
+ export declare function ConnectAccounts(props: ConnectAccountsProps): import("react").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import type { ConnectController } from "@opengeni/connect";
2
+ export type ConnectChooserProps = {
3
+ controller: ConnectController;
4
+ /** Exact host return string; no completion parameters are added. */
5
+ returnUrl: string;
6
+ className?: string;
7
+ };
8
+ /** Catalog readiness is supplied by the authenticated backend, never inferred
9
+ * from the existence of a provider definition. Host replaces the controller on
10
+ * actor/workspace change. This form does not open OAuth windows itself. */
11
+ export declare function ConnectChooser(props: ConnectChooserProps): import("react").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { type ConnectSetupProps } from "./connect-setup.js";
2
+ export type ConnectPanelProps = ConnectSetupProps & {
3
+ returnUrl: string;
4
+ title?: string;
5
+ showAccounts?: boolean;
6
+ };
7
+ /** Optional composition over the same unstyled surfaces. Import
8
+ * @opengeni/react/connect.css for styling; the host retains navigation,
9
+ * transport, actor admission, and controller lifetime. */
10
+ export declare function ConnectPanel({ returnUrl, title, showAccounts, className, ...setup }: ConnectPanelProps): import("react").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import type { ConnectAttempt, ConnectController } from "@opengeni/connect";
2
+ export type ConnectSetupProps = {
3
+ controller: ConnectController;
4
+ /** Called synchronously in the click handler so a host can open a popup. */
5
+ onAuthorize: (attempt: ConnectAttempt) => void | Promise<unknown>;
6
+ /** Host pagination must retain selections across pages and submit the final set. */
7
+ onBrowseResources?: (attempt: ConnectAttempt) => void | Promise<unknown>;
8
+ className?: string;
9
+ };
10
+ /** Unstyled setup surface. No provider secrets enter React state. Host owns
11
+ * chooser, controller lifetime, navigation and recovery after full redirect. */
12
+ export declare function ConnectSetup(props: ConnectSetupProps): import("react").JSX.Element;
@@ -0,0 +1,30 @@
1
+ import type { ConnectController } from "@opengeni/connect";
2
+ export { ConnectSetup, type ConnectSetupProps } from "./connect-setup.js";
3
+ export { ConnectChooser, type ConnectChooserProps } from "./connect-chooser.js";
4
+ export { ConnectAccounts, type ConnectAccountsProps } from "./connect-accounts.js";
5
+ export { ConnectPanel, type ConnectPanelProps } from "./connect-panel.js";
6
+ export { DeviceAuthorization, type DeviceAuthorizationProps } from "./device-authorization.js";
7
+ export { IdentityLinkConsent, type IdentityLinkClient, type IdentityLinkConsentProps, } from "./identity-link-consent.js";
8
+ export { IdentityLinkAccounts, type IdentityLinkAccountsClient } from "./identity-link-accounts.js";
9
+ export type { ConnectSnapshot } from "@opengeni/connect";
10
+ export type { ConnectAccount, ConnectAdvance, ConnectAttempt, ConnectNextAction, ConnectOwnership, ConnectProvider, ConnectResource, ConnectTransport, } from "@opengeni/connect";
11
+ export declare function useConnect(controller: ConnectController): {
12
+ attempt: import("@opengeni/connect").ConnectAttempt | null;
13
+ busy: boolean;
14
+ error: Error | null;
15
+ begin: (input: {
16
+ providerId: string;
17
+ ownership: import("@opengeni/connect").ConnectOwnership;
18
+ returnUrl: string;
19
+ idempotencyKey: string;
20
+ reconnectAccountId?: string;
21
+ installationTarget?: import("@opengeni/connect").ConnectInstallationTarget;
22
+ }) => Promise<import("@opengeni/connect").ConnectAttempt>;
23
+ recover: (attemptId: string) => Promise<import("@opengeni/connect").ConnectAttempt>;
24
+ refresh: () => Promise<import("@opengeni/connect").ConnectAttempt>;
25
+ waitForAction: (options?: {
26
+ timeoutMs?: number;
27
+ }) => Promise<import("@opengeni/connect").ConnectAttempt>;
28
+ advance: (action: import("@opengeni/connect").ConnectAdvance, idempotencyKey: string) => Promise<import("@opengeni/connect").ConnectAttempt>;
29
+ cancel: (idempotencyKey: string) => Promise<import("@opengeni/connect").ConnectAttempt>;
30
+ };