@jrkropp/codex-js-react 0.2.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 (99) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/LICENSE +201 -0
  3. package/NOTICE +29 -0
  4. package/README.md +55 -0
  5. package/dist/components/chat-runtime.d.ts +58 -0
  6. package/dist/components/codex-chat-layout.d.ts +23 -0
  7. package/dist/components/codex-chat-render-state.d.ts +158 -0
  8. package/dist/components/codex-chat-view.d.ts +58 -0
  9. package/dist/components/codex-chat.d.ts +11 -0
  10. package/dist/components/index.d.ts +11 -0
  11. package/dist/components/primitives.d.ts +13 -0
  12. package/dist/hooks/chat-lifecycle.d.ts +73 -0
  13. package/dist/hooks/index.d.ts +5 -0
  14. package/dist/hooks/lifecycle.d.ts +41 -0
  15. package/dist/hooks/thread-reader.d.ts +3 -0
  16. package/dist/index.d.ts +2 -0
  17. package/dist/index.js +9773 -0
  18. package/dist/internal/chat-ui/components/ChatMarkdown.d.ts +7 -0
  19. package/dist/internal/chat-ui/components/ComposerPromptEditor.d.ts +34 -0
  20. package/dist/internal/chat-ui/components/chat/ChangedFilesTree.d.ts +5 -0
  21. package/dist/internal/chat-ui/components/chat/ChangedFilesTree.logic.d.ts +33 -0
  22. package/dist/internal/chat-ui/components/chat/ChatComposer.d.ts +103 -0
  23. package/dist/internal/chat-ui/components/chat/ChatView.d.ts +23 -0
  24. package/dist/internal/chat-ui/components/chat/CompactComposerControlsMenu.d.ts +16 -0
  25. package/dist/internal/chat-ui/components/chat/ComposerBannerStack.d.ts +20 -0
  26. package/dist/internal/chat-ui/components/chat/ComposerCommandMenu.d.ts +35 -0
  27. package/dist/internal/chat-ui/components/chat/ComposerPendingApprovalActions.d.ts +9 -0
  28. package/dist/internal/chat-ui/components/chat/ComposerPendingApprovalPanel.d.ts +9 -0
  29. package/dist/internal/chat-ui/components/chat/ComposerPendingTerminalContexts.d.ts +18 -0
  30. package/dist/internal/chat-ui/components/chat/ComposerPendingUserInputPanel.d.ts +12 -0
  31. package/dist/internal/chat-ui/components/chat/ComposerPlanFollowUpBanner.d.ts +3 -0
  32. package/dist/internal/chat-ui/components/chat/ComposerPrimaryActions.d.ts +17 -0
  33. package/dist/internal/chat-ui/components/chat/ComposerPrimaryActions.logic.d.ts +13 -0
  34. package/dist/internal/chat-ui/components/chat/ComposerRealtimeConversationControl.d.ts +7 -0
  35. package/dist/internal/chat-ui/components/chat/ContextWindowMeter.d.ts +4 -0
  36. package/dist/internal/chat-ui/components/chat/ExpandedImageDialog.d.ts +5 -0
  37. package/dist/internal/chat-ui/components/chat/MessagesTimeline.d.ts +16 -0
  38. package/dist/internal/chat-ui/components/chat/MessagesTimeline.logic.d.ts +113 -0
  39. package/dist/internal/chat-ui/components/chat/ModelListRow.d.ts +9 -0
  40. package/dist/internal/chat-ui/components/chat/ModelPickerContent.d.ts +15 -0
  41. package/dist/internal/chat-ui/components/chat/ModelPickerSidebar.d.ts +8 -0
  42. package/dist/internal/chat-ui/components/chat/ProposedPlanCard.d.ts +3 -0
  43. package/dist/internal/chat-ui/components/chat/ProviderInstanceIcon.d.ts +12 -0
  44. package/dist/internal/chat-ui/components/chat/ProviderModelPicker.d.ts +14 -0
  45. package/dist/internal/chat-ui/components/chat/ProviderStatusBanner.d.ts +9 -0
  46. package/dist/internal/chat-ui/components/chat/TerminalContextInlineChip.d.ts +7 -0
  47. package/dist/internal/chat-ui/components/chat/TraitsPicker.d.ts +7 -0
  48. package/dist/internal/chat-ui/components/chat/composer-draft.client.d.ts +50 -0
  49. package/dist/internal/chat-ui/components/chat/composer-editor-mentions.d.ts +15 -0
  50. package/dist/internal/chat-ui/components/chat/composer-footer-layout.d.ts +9 -0
  51. package/dist/internal/chat-ui/components/chat/composer-image-attachments.d.ts +46 -0
  52. package/dist/internal/chat-ui/components/chat/composer-logic.d.ts +15 -0
  53. package/dist/internal/chat-ui/components/chat/composer-mention-targets.d.ts +12 -0
  54. package/dist/internal/chat-ui/components/chat/composer-realtime-conversation.logic.d.ts +26 -0
  55. package/dist/internal/chat-ui/components/chat/composer-send-state.logic.d.ts +17 -0
  56. package/dist/internal/chat-ui/components/chat/composerMenuHighlight.d.ts +8 -0
  57. package/dist/internal/chat-ui/components/chat/composerProviderState.d.ts +33 -0
  58. package/dist/internal/chat-ui/components/chat/composerSlashCommandSearch.d.ts +6 -0
  59. package/dist/internal/chat-ui/components/chat/index.d.ts +54 -0
  60. package/dist/internal/chat-ui/components/chat/mention-bindings.d.ts +26 -0
  61. package/dist/internal/chat-ui/components/chat/mention-codec.d.ts +22 -0
  62. package/dist/internal/chat-ui/components/chat/mention-syntax.d.ts +9 -0
  63. package/dist/internal/chat-ui/components/chat/modelPickerSearch.d.ts +16 -0
  64. package/dist/internal/chat-ui/components/chat/proposed-plan.d.ts +17 -0
  65. package/dist/internal/chat-ui/components/chat/providerIconUtils.d.ts +15 -0
  66. package/dist/internal/chat-ui/components/composerInlineChip.d.ts +5 -0
  67. package/dist/internal/chat-ui/components/ui/alert.d.ts +10 -0
  68. package/dist/internal/chat-ui/components/ui/badge.d.ts +10 -0
  69. package/dist/internal/chat-ui/components/ui/button.d.ts +10 -0
  70. package/dist/internal/chat-ui/components/ui/command.d.ts +18 -0
  71. package/dist/internal/chat-ui/components/ui/dialog.d.ts +17 -0
  72. package/dist/internal/chat-ui/components/ui/dropdown-menu.d.ts +29 -0
  73. package/dist/internal/chat-ui/components/ui/input.d.ts +3 -0
  74. package/dist/internal/chat-ui/components/ui/popover.d.ts +10 -0
  75. package/dist/internal/chat-ui/components/ui/separator.d.ts +4 -0
  76. package/dist/internal/chat-ui/components/ui/tooltip.d.ts +8 -0
  77. package/dist/internal/chat-ui/index.d.ts +2 -0
  78. package/dist/internal/chat-ui/lib/contextWindow.d.ts +27 -0
  79. package/dist/internal/chat-ui/lib/modelSelection.d.ts +36 -0
  80. package/dist/internal/chat-ui/lib/searchRanking.d.ts +27 -0
  81. package/dist/internal/chat-ui/lib/utils.d.ts +2 -0
  82. package/dist/internal/chat-ui/pendingUserInput.d.ts +37 -0
  83. package/dist/shadcn/hooks/use-mobile.d.ts +1 -0
  84. package/dist/shadcn/index.d.ts +13 -0
  85. package/dist/shadcn/index.js +1256 -0
  86. package/dist/shadcn/lib/utils.d.ts +2 -0
  87. package/dist/shadcn/ui/button.d.ts +10 -0
  88. package/dist/shadcn/ui/collapsible.d.ts +5 -0
  89. package/dist/shadcn/ui/command.d.ts +18 -0
  90. package/dist/shadcn/ui/dialog.d.ts +17 -0
  91. package/dist/shadcn/ui/input.d.ts +3 -0
  92. package/dist/shadcn/ui/scroll-area.d.ts +8 -0
  93. package/dist/shadcn/ui/separator.d.ts +4 -0
  94. package/dist/shadcn/ui/sheet.d.ts +14 -0
  95. package/dist/shadcn/ui/sidebar.d.ts +69 -0
  96. package/dist/shadcn/ui/skeleton.d.ts +2 -0
  97. package/dist/shadcn/ui/tooltip.d.ts +7 -0
  98. package/dist/styles.css +2 -0
  99. package/package.json +77 -0
@@ -0,0 +1,73 @@
1
+ import { type CollaborationMode, type CoreUserMessageTurnItem as UserMessageTurnItem, type JSONRPCErrorError, type Result, type RequestId, type ServerRequest, type StoredThread, type ThreadEventSnapshot, type ThreadId, type ThreadStartParams, type TurnStartParams } from "@jrkropp/codex-js/client";
2
+ import type { CodexAppServer, ThreadReader } from "./thread-reader.js";
3
+ import { type ChatComposerSubmitPayload } from "../internal/chat-ui/index.js";
4
+ export type CodexChatLifecycleBuildThreadStartParamsInput = {
5
+ threadId: ThreadId;
6
+ };
7
+ export type CodexChatLifecycleThreadStartParams = ThreadStartParams & {
8
+ threadId?: ThreadId | string;
9
+ };
10
+ export type CodexChatLifecycleBuildTurnStartParamsInput = {
11
+ clientMessageId: string;
12
+ imageUrls: string[];
13
+ interactionMode?: "default" | "plan";
14
+ runtimeMode?: "approval-required" | "auto-accept-edits" | "full-access";
15
+ sendContext: ChatComposerSubmitPayload;
16
+ threadId: ThreadId;
17
+ };
18
+ export type CodexChatLifecycleTurnStartParams = TurnStartParams & {
19
+ collaborationMode?: CollaborationMode;
20
+ collaboration_mode?: CollaborationMode;
21
+ clientMessageId?: string;
22
+ };
23
+ export type CodexChatLifecycleSendControls = {
24
+ clearComposer: () => void;
25
+ prepareForOptimisticAppend: () => Promise<void>;
26
+ restoreComposer: (sendContext: ChatComposerSubmitPayload) => void;
27
+ };
28
+ export type CodexChatLifecycleSendOptions = {
29
+ interactionMode?: "default" | "plan";
30
+ runtimeMode?: "approval-required" | "auto-accept-edits" | "full-access";
31
+ };
32
+ export type CodexChatLifecycleOptions = {
33
+ buildThreadStartParams?: (input: CodexChatLifecycleBuildThreadStartParamsInput) => CodexChatLifecycleThreadStartParams;
34
+ buildTurnStartParams?: (input: CodexChatLifecycleBuildTurnStartParamsInput) => CodexChatLifecycleTurnStartParams;
35
+ connectOnMount?: boolean;
36
+ initialState?: ThreadEventSnapshot | null;
37
+ isRecoverableConnectionError?: (error: Error) => boolean;
38
+ onActiveThread?: (thread: StoredThread | null) => void;
39
+ onRuntimeError?: (error: Error) => void;
40
+ onServerRequest?: (request: ServerRequest) => void;
41
+ onState?: (state: ThreadEventSnapshot | null) => void;
42
+ onSubmittedUserMessage?: (state: ThreadEventSnapshot) => void;
43
+ onThreadListChanged?: () => void;
44
+ onThreadStarted?: (state: ThreadEventSnapshot) => void;
45
+ appServer: CodexAppServer;
46
+ threadReader?: ThreadReader;
47
+ threadId: ThreadId | string;
48
+ };
49
+ export declare function createDefaultThreadStartParams({ threadId, }: CodexChatLifecycleBuildThreadStartParamsInput): CodexChatLifecycleThreadStartParams;
50
+ export declare function createDefaultTurnStartParams({ clientMessageId, imageUrls, interactionMode, runtimeMode, sendContext, threadId, }: CodexChatLifecycleBuildTurnStartParamsInput): CodexChatLifecycleTurnStartParams;
51
+ export type CodexChatLifecycle = {
52
+ activeThread: StoredThread | null;
53
+ activeWorkStartedAt: string | null;
54
+ assistantStreaming: boolean;
55
+ compact: () => Promise<boolean>;
56
+ connectionStatus: ThreadEventSnapshot["connectionStatus"] | "idle";
57
+ interrupt: () => Promise<boolean>;
58
+ isSendBusy: boolean;
59
+ isSending: boolean;
60
+ isWorking: boolean;
61
+ pendingPermissionRequestActive: boolean;
62
+ pendingUserInputActive: boolean;
63
+ reconnect: () => void;
64
+ runtimeError: string | null;
65
+ sendComposerMessage: (sendContext: ChatComposerSubmitPayload, controls: CodexChatLifecycleSendControls, options?: CodexChatLifecycleSendOptions) => Promise<void>;
66
+ resolveServerRequest: (requestId: RequestId, response: Result) => Promise<boolean>;
67
+ rejectServerRequest: (requestId: RequestId, error: JSONRPCErrorError) => Promise<boolean>;
68
+ threadSnapshot: ThreadEventSnapshot | null;
69
+ threadId: ThreadId;
70
+ turnRunning: boolean;
71
+ visibleOptimisticUserMessages: readonly UserMessageTurnItem[];
72
+ };
73
+ export declare function useCodexChatLifecycle(options: CodexChatLifecycleOptions): CodexChatLifecycle;
@@ -0,0 +1,5 @@
1
+ export type { CodexAppServer, ThreadId, ThreadReader, } from "./thread-reader.js";
2
+ export { createLocalDispatchSnapshot, deriveActiveWorkStartedAt, deriveAssistantStreaming, deriveChatLifecycleWorkingState, hasServerAcknowledgedLocalDispatch, threadHasStarted, useLocalDispatchState, } from "./lifecycle.js";
3
+ export type { LocalDispatchSnapshot } from "./lifecycle.js";
4
+ export { createDefaultThreadStartParams, createDefaultTurnStartParams, useCodexChatLifecycle, } from "./chat-lifecycle.js";
5
+ export type { CodexChatLifecycle, CodexChatLifecycleBuildThreadStartParamsInput, CodexChatLifecycleBuildTurnStartParamsInput, CodexChatLifecycleOptions, CodexChatLifecycleSendControls, CodexChatLifecycleSendOptions, } from "./chat-lifecycle.js";
@@ -0,0 +1,41 @@
1
+ import type { ThreadEventSnapshot } from "@jrkropp/codex-js/client";
2
+ type ChatLifecycleThreadState = Pick<ThreadEventSnapshot, "activeTurnIds" | "errors" | "pendingRequests" | "turns">;
3
+ type ChatLifecycleConnectionStatus = ThreadEventSnapshot["connectionStatus"];
4
+ export type LocalDispatchSnapshot = {
5
+ errorCount: number;
6
+ itemIds: readonly string[];
7
+ runningTurnIds: readonly string[];
8
+ startedAt: string;
9
+ };
10
+ export declare function createLocalDispatchSnapshot(threadState: ChatLifecycleThreadState | null): LocalDispatchSnapshot;
11
+ export declare function hasServerAcknowledgedLocalDispatch(input: {
12
+ hasPendingRequest: boolean;
13
+ localDispatch: LocalDispatchSnapshot | null;
14
+ runtimeError: string | null;
15
+ threadState: ChatLifecycleThreadState | null;
16
+ }): boolean;
17
+ export declare function useLocalDispatchState(input: {
18
+ hasPendingRequest: boolean;
19
+ runtimeError: string | null;
20
+ threadState: ChatLifecycleThreadState | null;
21
+ }): {
22
+ beginLocalDispatch: () => void;
23
+ isSendBusy: boolean;
24
+ localDispatch: LocalDispatchSnapshot | null;
25
+ localDispatchStartedAt: string | null;
26
+ resetLocalDispatch: () => void;
27
+ serverAcknowledgedLocalDispatch: boolean;
28
+ };
29
+ export declare function deriveActiveWorkStartedAt(input: {
30
+ isWorking: boolean;
31
+ runtimeStartedAt: string | null;
32
+ sendStartedAt: string | null;
33
+ }): string | null;
34
+ export declare function deriveAssistantStreaming(threadState: ChatLifecycleThreadState | null): boolean;
35
+ export declare function deriveChatLifecycleWorkingState(input: {
36
+ connectionStatus: ChatLifecycleConnectionStatus;
37
+ isSendBusy: boolean;
38
+ threadState: ChatLifecycleThreadState | null;
39
+ }): boolean;
40
+ export declare function threadHasStarted(threadState: ChatLifecycleThreadState | null): boolean;
41
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { CodexAppServer, ThreadId, ThreadStore } from "@jrkropp/codex-js/client";
2
+ export type ThreadReader = Pick<ThreadStore, "loadHistory" | "readThread">;
3
+ export type { CodexAppServer, ThreadId };
@@ -0,0 +1,2 @@
1
+ export * from "./components/index.js";
2
+ export { createDefaultThreadStartParams, createDefaultTurnStartParams, createLocalDispatchSnapshot, deriveActiveWorkStartedAt, deriveAssistantStreaming, deriveChatLifecycleWorkingState, hasServerAcknowledgedLocalDispatch, threadHasStarted, useCodexChatLifecycle, useLocalDispatchState, type CodexChatLifecycle, type CodexChatLifecycleBuildThreadStartParamsInput, type CodexChatLifecycleBuildTurnStartParamsInput, type CodexChatLifecycleOptions, type CodexChatLifecycleSendControls, type CodexChatLifecycleSendOptions, type LocalDispatchSnapshot, type ThreadReader, } from "./hooks/index.js";