@zakstam/codex-local-component 0.7.1 → 0.9.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 (118) hide show
  1. package/LLMS.md +53 -6
  2. package/README.md +2 -0
  3. package/dist/component/ingest/applyTurns.js +2 -2
  4. package/dist/component/ingest/applyTurns.js.map +1 -1
  5. package/dist/component/pagination.d.ts +4 -0
  6. package/dist/component/pagination.d.ts.map +1 -1
  7. package/dist/component/pagination.js +11 -2
  8. package/dist/component/pagination.js.map +1 -1
  9. package/dist/component/serverRequests.d.ts.map +1 -1
  10. package/dist/component/serverRequests.js +9 -7
  11. package/dist/component/serverRequests.js.map +1 -1
  12. package/dist/component/threads.d.ts +1 -0
  13. package/dist/component/threads.d.ts.map +1 -1
  14. package/dist/component/threads.js +2 -0
  15. package/dist/component/threads.js.map +1 -1
  16. package/dist/errors.d.ts +13 -0
  17. package/dist/errors.d.ts.map +1 -0
  18. package/dist/errors.js +42 -0
  19. package/dist/errors.js.map +1 -0
  20. package/dist/host/convex-entry.d.ts +2 -1
  21. package/dist/host/convex-entry.d.ts.map +1 -1
  22. package/dist/host/convex-entry.js +2 -1
  23. package/dist/host/convex-entry.js.map +1 -1
  24. package/dist/host/convexPreset.d.ts +14 -0
  25. package/dist/host/convexPreset.d.ts.map +1 -1
  26. package/dist/host/convexPreset.js +8 -1
  27. package/dist/host/convexPreset.js.map +1 -1
  28. package/dist/host/convexSlice.d.ts +1 -0
  29. package/dist/host/convexSlice.d.ts.map +1 -1
  30. package/dist/host/convexSlice.js +15 -0
  31. package/dist/host/convexSlice.js.map +1 -1
  32. package/dist/host/index.d.ts +3 -1
  33. package/dist/host/index.d.ts.map +1 -1
  34. package/dist/host/index.js +3 -1
  35. package/dist/host/index.js.map +1 -1
  36. package/dist/host/ingestRecovery.d.ts +5 -0
  37. package/dist/host/ingestRecovery.d.ts.map +1 -0
  38. package/dist/host/ingestRecovery.js +4 -0
  39. package/dist/host/ingestRecovery.js.map +1 -0
  40. package/dist/host/runtime.d.ts +1 -1
  41. package/dist/host/runtime.d.ts.map +1 -1
  42. package/dist/host/runtime.js +185 -149
  43. package/dist/host/runtime.js.map +1 -1
  44. package/dist/host/surfaceManifest.d.ts +2 -2
  45. package/dist/host/surfaceManifest.d.ts.map +1 -1
  46. package/dist/host/surfaceManifest.js +2 -0
  47. package/dist/host/surfaceManifest.js.map +1 -1
  48. package/dist/index.d.ts +1 -0
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +1 -0
  51. package/dist/index.js.map +1 -1
  52. package/dist/mapping.d.ts.map +1 -1
  53. package/dist/mapping.js +4 -1
  54. package/dist/mapping.js.map +1 -1
  55. package/dist/protocol/events.d.ts +6 -2
  56. package/dist/protocol/events.d.ts.map +1 -1
  57. package/dist/protocol/events.js +34 -12
  58. package/dist/protocol/events.js.map +1 -1
  59. package/dist/react/branchActivity.d.ts +16 -0
  60. package/dist/react/branchActivity.d.ts.map +1 -0
  61. package/dist/react/branchActivity.js +70 -0
  62. package/dist/react/branchActivity.js.map +1 -0
  63. package/dist/react/dynamicTools.d.ts +34 -0
  64. package/dist/react/dynamicTools.d.ts.map +1 -0
  65. package/dist/react/dynamicTools.js +56 -0
  66. package/dist/react/dynamicTools.js.map +1 -0
  67. package/dist/react/index.d.ts +16 -0
  68. package/dist/react/index.d.ts.map +1 -1
  69. package/dist/react/index.js +12 -0
  70. package/dist/react/index.js.map +1 -1
  71. package/dist/react/ingestHealth.d.ts +35 -0
  72. package/dist/react/ingestHealth.d.ts.map +1 -0
  73. package/dist/react/ingestHealth.js +102 -0
  74. package/dist/react/ingestHealth.js.map +1 -0
  75. package/dist/react/threadActivity.d.ts +35 -0
  76. package/dist/react/threadActivity.d.ts.map +1 -0
  77. package/dist/react/threadActivity.js +148 -0
  78. package/dist/react/threadActivity.js.map +1 -0
  79. package/dist/react/useCodexAccountAuth.d.ts +43 -0
  80. package/dist/react/useCodexAccountAuth.d.ts.map +1 -0
  81. package/dist/react/useCodexAccountAuth.js +59 -0
  82. package/dist/react/useCodexAccountAuth.js.map +1 -0
  83. package/dist/react/useCodexBranchActivity.d.ts +7 -0
  84. package/dist/react/useCodexBranchActivity.d.ts.map +1 -0
  85. package/dist/react/useCodexBranchActivity.js +9 -0
  86. package/dist/react/useCodexBranchActivity.js.map +1 -0
  87. package/dist/react/useCodexConversationController.d.ts +83 -0
  88. package/dist/react/useCodexConversationController.d.ts.map +1 -0
  89. package/dist/react/useCodexConversationController.js +152 -0
  90. package/dist/react/useCodexConversationController.js.map +1 -0
  91. package/dist/react/useCodexDynamicTools.d.ts +26 -0
  92. package/dist/react/useCodexDynamicTools.d.ts.map +1 -0
  93. package/dist/react/useCodexDynamicTools.js +91 -0
  94. package/dist/react/useCodexDynamicTools.js.map +1 -0
  95. package/dist/react/useCodexIngestHealth.d.ts +6 -0
  96. package/dist/react/useCodexIngestHealth.d.ts.map +1 -0
  97. package/dist/react/useCodexIngestHealth.js +9 -0
  98. package/dist/react/useCodexIngestHealth.js.map +1 -0
  99. package/dist/react/useCodexRuntimeBridge.d.ts +28 -0
  100. package/dist/react/useCodexRuntimeBridge.d.ts.map +1 -0
  101. package/dist/react/useCodexRuntimeBridge.js +78 -0
  102. package/dist/react/useCodexRuntimeBridge.js.map +1 -0
  103. package/dist/react/useCodexThreadActivity.d.ts +6 -0
  104. package/dist/react/useCodexThreadActivity.d.ts.map +1 -0
  105. package/dist/react/useCodexThreadActivity.js +9 -0
  106. package/dist/react/useCodexThreadActivity.js.map +1 -0
  107. package/dist/react/useCodexThreads.d.ts +30 -0
  108. package/dist/react/useCodexThreads.d.ts.map +1 -0
  109. package/dist/react/useCodexThreads.js +65 -0
  110. package/dist/react/useCodexThreads.js.map +1 -0
  111. package/dist/react-integration/index.d.ts +101 -0
  112. package/dist/react-integration/index.d.ts.map +1 -0
  113. package/dist/react-integration/index.js +62 -0
  114. package/dist/react-integration/index.js.map +1 -0
  115. package/docs/CLIENT_AND_REACT_HOOKS.md +63 -0
  116. package/docs/HOST_PRESET_MATRIX.md +1 -0
  117. package/docs/OPERATIONS_AND_ERRORS.md +19 -0
  118. package/package.json +11 -2
@@ -0,0 +1,35 @@
1
+ export type CodexIngestHealthStatus = "unknown" | "missing_thread" | "healthy" | "degraded";
2
+ export type CodexIngestHealthIssue = "aborted_streams" | "orphan_streaming_state" | "dispatch_without_stream" | "streams_without_messages" | "pending_approvals";
3
+ export type CodexIngestHealth = {
4
+ status: CodexIngestHealthStatus;
5
+ issues: CodexIngestHealthIssue[];
6
+ streamCount: number;
7
+ activeStreamCount: number;
8
+ finishedStreamCount: number;
9
+ abortedStreamCount: number;
10
+ latestStreamCursor: number;
11
+ recentMessageCount: number;
12
+ pendingApprovalCount: number;
13
+ inFlightDispatchCount: number;
14
+ lastMessageAt?: number;
15
+ lastTurnStartedAt?: number;
16
+ };
17
+ export type CodexIngestHealthThreadState = {
18
+ streamStats?: Array<{
19
+ state?: "streaming" | "finished" | "aborted" | string;
20
+ latestCursor?: number;
21
+ }> | null;
22
+ recentMessages?: Array<{
23
+ status?: "streaming" | "completed" | "failed" | "interrupted" | string;
24
+ createdAt?: number;
25
+ }> | null;
26
+ pendingApprovals?: unknown[] | null;
27
+ dispatches?: Array<{
28
+ status?: "queued" | "claimed" | "started" | "completed" | "failed" | "cancelled" | string;
29
+ }> | null;
30
+ turns?: Array<{
31
+ startedAt?: number;
32
+ }> | null;
33
+ };
34
+ export declare function deriveCodexIngestHealth(state: CodexIngestHealthThreadState | null | undefined): CodexIngestHealth;
35
+ //# sourceMappingURL=ingestHealth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingestHealth.d.ts","sourceRoot":"","sources":["../../src/react/ingestHealth.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,GAAG,UAAU,CAAC;AAE5F,MAAM,MAAM,sBAAsB,GAC9B,iBAAiB,GACjB,wBAAwB,GACxB,yBAAyB,GACzB,0BAA0B,GAC1B,mBAAmB,CAAC;AAExB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,uBAAuB,CAAC;IAChC,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,KAAK,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;QACtD,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC,GAAG,IAAI,CAAC;IACV,cAAc,CAAC,EAAE,KAAK,CAAC;QACrB,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,MAAM,CAAC;QACvE,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,GAAG,IAAI,CAAC;IACV,gBAAgB,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,KAAK,CAAC;QACjB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;KAC3F,CAAC,GAAG,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,GAAG,IAAI,CAAC;CACX,CAAC;AAwBF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,4BAA4B,GAAG,IAAI,GAAG,SAAS,GACrD,iBAAiB,CAwFnB"}
@@ -0,0 +1,102 @@
1
+ "use client";
2
+ const DEGRADING_ISSUES = new Set([
3
+ "aborted_streams",
4
+ "orphan_streaming_state",
5
+ "dispatch_without_stream",
6
+ "streams_without_messages",
7
+ ]);
8
+ const IN_FLIGHT_DISPATCH_STATUSES = new Set(["queued", "claimed", "started"]);
9
+ function latestNumber(values) {
10
+ let latest;
11
+ for (const value of values) {
12
+ if (typeof value !== "number") {
13
+ continue;
14
+ }
15
+ if (latest === undefined || value > latest) {
16
+ latest = value;
17
+ }
18
+ }
19
+ return latest;
20
+ }
21
+ export function deriveCodexIngestHealth(state) {
22
+ if (state === undefined) {
23
+ return {
24
+ status: "unknown",
25
+ issues: [],
26
+ streamCount: 0,
27
+ activeStreamCount: 0,
28
+ finishedStreamCount: 0,
29
+ abortedStreamCount: 0,
30
+ latestStreamCursor: 0,
31
+ recentMessageCount: 0,
32
+ pendingApprovalCount: 0,
33
+ inFlightDispatchCount: 0,
34
+ };
35
+ }
36
+ if (state === null) {
37
+ return {
38
+ status: "missing_thread",
39
+ issues: [],
40
+ streamCount: 0,
41
+ activeStreamCount: 0,
42
+ finishedStreamCount: 0,
43
+ abortedStreamCount: 0,
44
+ latestStreamCursor: 0,
45
+ recentMessageCount: 0,
46
+ pendingApprovalCount: 0,
47
+ inFlightDispatchCount: 0,
48
+ };
49
+ }
50
+ const streamStats = state.streamStats ?? [];
51
+ const messages = state.recentMessages ?? [];
52
+ const pendingApprovals = state.pendingApprovals ?? [];
53
+ const dispatches = state.dispatches ?? [];
54
+ const turns = state.turns ?? [];
55
+ const activeStreamCount = streamStats.filter((stream) => stream.state === "streaming").length;
56
+ const finishedStreamCount = streamStats.filter((stream) => stream.state === "finished").length;
57
+ const abortedStreamCount = streamStats.filter((stream) => stream.state === "aborted").length;
58
+ const latestStreamCursor = streamStats.reduce((latest, stream) => {
59
+ const cursor = typeof stream.latestCursor === "number" ? stream.latestCursor : 0;
60
+ return Math.max(latest, cursor);
61
+ }, 0);
62
+ const hasStreamingMessage = messages.some((message) => message.status === "streaming");
63
+ const inFlightDispatchCount = dispatches.filter((dispatch) => typeof dispatch.status === "string" && IN_FLIGHT_DISPATCH_STATUSES.has(dispatch.status)).length;
64
+ const issues = [];
65
+ if (abortedStreamCount > 0) {
66
+ issues.push("aborted_streams");
67
+ }
68
+ if (activeStreamCount > 0 && !hasStreamingMessage && inFlightDispatchCount === 0) {
69
+ issues.push("orphan_streaming_state");
70
+ }
71
+ if (inFlightDispatchCount > 0 && activeStreamCount === 0 && !hasStreamingMessage) {
72
+ issues.push("dispatch_without_stream");
73
+ }
74
+ if (streamStats.length > 0 && messages.length === 0) {
75
+ issues.push("streams_without_messages");
76
+ }
77
+ if (pendingApprovals.length > 0) {
78
+ issues.push("pending_approvals");
79
+ }
80
+ const status = issues.some((issue) => DEGRADING_ISSUES.has(issue))
81
+ ? "degraded"
82
+ : "healthy";
83
+ return {
84
+ status,
85
+ issues,
86
+ streamCount: streamStats.length,
87
+ activeStreamCount,
88
+ finishedStreamCount,
89
+ abortedStreamCount,
90
+ latestStreamCursor,
91
+ recentMessageCount: messages.length,
92
+ pendingApprovalCount: pendingApprovals.length,
93
+ inFlightDispatchCount,
94
+ ...(latestNumber(messages.map((message) => message.createdAt)) !== undefined
95
+ ? { lastMessageAt: latestNumber(messages.map((message) => message.createdAt)) }
96
+ : {}),
97
+ ...(latestNumber(turns.map((turn) => turn.startedAt)) !== undefined
98
+ ? { lastTurnStartedAt: latestNumber(turns.map((turn) => turn.startedAt)) }
99
+ : {}),
100
+ };
101
+ }
102
+ //# sourceMappingURL=ingestHealth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ingestHealth.js","sourceRoot":"","sources":["../../src/react/ingestHealth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ export type CodexThreadActivityPhase = "idle" | "streaming" | "awaiting_approval" | "failed" | "interrupted";
2
+ export type CodexThreadActivity = {
3
+ phase: CodexThreadActivityPhase;
4
+ activeTurnId?: string;
5
+ activeMessageId?: string;
6
+ };
7
+ export type CodexThreadActivityMessageLike = {
8
+ messageId?: string;
9
+ turnId?: string;
10
+ status?: "streaming" | "completed" | "failed" | "interrupted" | string;
11
+ createdAt?: number;
12
+ };
13
+ export type CodexThreadActivityDispatchLike = {
14
+ turnId?: string;
15
+ status?: "queued" | "claimed" | "started" | "completed" | "failed" | "cancelled" | string;
16
+ updatedAt?: number;
17
+ createdAt?: number;
18
+ };
19
+ export type CodexThreadActivityStreamStatLike = {
20
+ state?: "streaming" | "finished" | "aborted" | string;
21
+ };
22
+ export type CodexThreadActivityTurnLike = {
23
+ turnId?: string;
24
+ status?: string;
25
+ startedAt?: number;
26
+ };
27
+ export type CodexThreadActivityThreadState = {
28
+ pendingApprovals?: unknown[] | null;
29
+ recentMessages?: CodexThreadActivityMessageLike[] | null;
30
+ dispatches?: CodexThreadActivityDispatchLike[] | null;
31
+ streamStats?: CodexThreadActivityStreamStatLike[] | null;
32
+ turns?: CodexThreadActivityTurnLike[] | null;
33
+ };
34
+ export declare function deriveCodexThreadActivity(state: CodexThreadActivityThreadState | null | undefined): CodexThreadActivity;
35
+ //# sourceMappingURL=threadActivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threadActivity.d.ts","sourceRoot":"","sources":["../../src/react/threadActivity.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,wBAAwB,GAChC,MAAM,GACN,WAAW,GACX,mBAAmB,GACnB,QAAQ,GACR,aAAa,CAAC;AAElB,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,wBAAwB,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,MAAM,CAAC;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,KAAK,CAAC,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,gBAAgB,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACpC,cAAc,CAAC,EAAE,8BAA8B,EAAE,GAAG,IAAI,CAAC;IACzD,UAAU,CAAC,EAAE,+BAA+B,EAAE,GAAG,IAAI,CAAC;IACtD,WAAW,CAAC,EAAE,iCAAiC,EAAE,GAAG,IAAI,CAAC;IACzD,KAAK,CAAC,EAAE,2BAA2B,EAAE,GAAG,IAAI,CAAC;CAC9C,CAAC;AAwGF,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,8BAA8B,GAAG,IAAI,GAAG,SAAS,GACvD,mBAAmB,CAgFrB"}
@@ -0,0 +1,148 @@
1
+ "use client";
2
+ const IN_FLIGHT_DISPATCH_STATUSES = new Set(["queued", "claimed", "started"]);
3
+ const IN_FLIGHT_TURN_STATUSES = new Set(["queued", "inProgress", "started", "streaming"]);
4
+ const FAILED_TURN_STATUSES = new Set(["failed"]);
5
+ const INTERRUPTED_TURN_STATUSES = new Set(["interrupted", "cancelled"]);
6
+ function candidateTimestamp(input) {
7
+ return typeof input === "number" ? input : 0;
8
+ }
9
+ function pickLatest(candidates) {
10
+ let latest = null;
11
+ for (const candidate of candidates) {
12
+ if (!candidate) {
13
+ continue;
14
+ }
15
+ if (!latest || candidate.timestamp > latest.timestamp) {
16
+ latest = candidate;
17
+ }
18
+ }
19
+ return latest;
20
+ }
21
+ function latestMessageByStatus(messages, status) {
22
+ let latest = null;
23
+ for (const message of messages) {
24
+ if (message.status !== status) {
25
+ continue;
26
+ }
27
+ const candidate = {
28
+ timestamp: candidateTimestamp(message.createdAt),
29
+ ...(message.turnId !== undefined ? { activeTurnId: message.turnId } : {}),
30
+ ...(message.messageId !== undefined ? { activeMessageId: message.messageId } : {}),
31
+ };
32
+ if (!latest || candidate.timestamp > latest.timestamp) {
33
+ latest = candidate;
34
+ }
35
+ }
36
+ return latest;
37
+ }
38
+ function latestDispatchByStatus(dispatches, predicate) {
39
+ let latest = null;
40
+ for (const dispatch of dispatches) {
41
+ if (typeof dispatch.status !== "string" || !predicate(dispatch.status)) {
42
+ continue;
43
+ }
44
+ const candidate = {
45
+ timestamp: candidateTimestamp(dispatch.updatedAt ?? dispatch.createdAt),
46
+ ...(dispatch.turnId !== undefined ? { activeTurnId: dispatch.turnId } : {}),
47
+ };
48
+ if (!latest || candidate.timestamp > latest.timestamp) {
49
+ latest = candidate;
50
+ }
51
+ }
52
+ return latest;
53
+ }
54
+ function latestTurnByStatus(turns, predicate) {
55
+ let latest = null;
56
+ for (const turn of turns) {
57
+ if (typeof turn.status !== "string" || !predicate(turn.status)) {
58
+ continue;
59
+ }
60
+ const candidate = {
61
+ timestamp: candidateTimestamp(turn.startedAt),
62
+ ...(turn.turnId !== undefined ? { activeTurnId: turn.turnId } : {}),
63
+ };
64
+ if (!latest || candidate.timestamp > latest.timestamp) {
65
+ latest = candidate;
66
+ }
67
+ }
68
+ return latest;
69
+ }
70
+ function activeFromInFlightState(input) {
71
+ return pickLatest([
72
+ latestMessageByStatus(input.messages, "streaming"),
73
+ latestDispatchByStatus(input.dispatches, (status) => IN_FLIGHT_DISPATCH_STATUSES.has(status)),
74
+ latestTurnByStatus(input.turns, (status) => IN_FLIGHT_TURN_STATUSES.has(status)),
75
+ ]);
76
+ }
77
+ export function deriveCodexThreadActivity(state) {
78
+ const messages = state?.recentMessages ?? [];
79
+ const dispatches = state?.dispatches ?? [];
80
+ const turns = state?.turns ?? [];
81
+ const pendingApprovals = state?.pendingApprovals ?? [];
82
+ const streamStats = state?.streamStats ?? [];
83
+ if (pendingApprovals.length > 0) {
84
+ const active = activeFromInFlightState({ messages, dispatches, turns });
85
+ return {
86
+ phase: "awaiting_approval",
87
+ ...(active?.activeTurnId !== undefined ? { activeTurnId: active.activeTurnId } : {}),
88
+ ...(active?.activeMessageId !== undefined ? { activeMessageId: active.activeMessageId } : {}),
89
+ };
90
+ }
91
+ const activeStreamingMessage = latestMessageByStatus(messages, "streaming");
92
+ if (activeStreamingMessage) {
93
+ return {
94
+ phase: "streaming",
95
+ ...(activeStreamingMessage.activeTurnId !== undefined
96
+ ? { activeTurnId: activeStreamingMessage.activeTurnId }
97
+ : {}),
98
+ ...(activeStreamingMessage.activeMessageId !== undefined
99
+ ? { activeMessageId: activeStreamingMessage.activeMessageId }
100
+ : {}),
101
+ };
102
+ }
103
+ const hasStreamingStat = streamStats.some((stat) => stat.state === "streaming");
104
+ if (hasStreamingStat) {
105
+ const inFlight = activeFromInFlightState({ messages, dispatches, turns });
106
+ return {
107
+ phase: "streaming",
108
+ ...(inFlight?.activeTurnId !== undefined ? { activeTurnId: inFlight.activeTurnId } : {}),
109
+ ...(inFlight?.activeMessageId !== undefined ? { activeMessageId: inFlight.activeMessageId } : {}),
110
+ };
111
+ }
112
+ const inFlightDispatch = latestDispatchByStatus(dispatches, (status) => IN_FLIGHT_DISPATCH_STATUSES.has(status));
113
+ if (inFlightDispatch) {
114
+ return {
115
+ phase: "streaming",
116
+ ...(inFlightDispatch.activeTurnId !== undefined ? { activeTurnId: inFlightDispatch.activeTurnId } : {}),
117
+ };
118
+ }
119
+ const inFlightTurn = latestTurnByStatus(turns, (status) => IN_FLIGHT_TURN_STATUSES.has(status));
120
+ if (inFlightTurn) {
121
+ return {
122
+ phase: "streaming",
123
+ ...(inFlightTurn.activeTurnId !== undefined ? { activeTurnId: inFlightTurn.activeTurnId } : {}),
124
+ };
125
+ }
126
+ const failed = pickLatest([
127
+ latestMessageByStatus(messages, "failed"),
128
+ latestDispatchByStatus(dispatches, (status) => status === "failed"),
129
+ latestTurnByStatus(turns, (status) => FAILED_TURN_STATUSES.has(status)),
130
+ ]);
131
+ const interrupted = pickLatest([
132
+ latestMessageByStatus(messages, "interrupted"),
133
+ latestTurnByStatus(turns, (status) => INTERRUPTED_TURN_STATUSES.has(status)),
134
+ ]);
135
+ const terminal = pickLatest([
136
+ failed ? { ...failed, phase: "failed" } : null,
137
+ interrupted ? { ...interrupted, phase: "interrupted" } : null,
138
+ ]);
139
+ if (terminal?.phase) {
140
+ return {
141
+ phase: terminal.phase,
142
+ ...(terminal.activeTurnId !== undefined ? { activeTurnId: terminal.activeTurnId } : {}),
143
+ ...(terminal.activeMessageId !== undefined ? { activeMessageId: terminal.activeMessageId } : {}),
144
+ };
145
+ }
146
+ return { phase: "idle" };
147
+ }
148
+ //# sourceMappingURL=threadActivity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threadActivity.js","sourceRoot":"","sources":["../../src/react/threadActivity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ export type CodexAccountAuthControls<LoginParams = unknown> = {
2
+ readAccount: (args?: {
3
+ refreshToken?: boolean;
4
+ }) => Promise<unknown>;
5
+ loginAccount: (args: {
6
+ params: LoginParams;
7
+ }) => Promise<unknown>;
8
+ cancelAccountLogin: (args: {
9
+ loginId: string;
10
+ }) => Promise<unknown>;
11
+ logoutAccount: () => Promise<unknown>;
12
+ readAccountRateLimits: () => Promise<unknown>;
13
+ respondChatgptAuthTokensRefresh?: (args: {
14
+ requestId: string | number;
15
+ idToken: string;
16
+ accessToken: string;
17
+ }) => Promise<unknown>;
18
+ };
19
+ type AuthAction = "read" | "read_refresh" | "login" | "cancel_login" | "logout" | "read_rate_limits" | "refresh_tokens";
20
+ export declare function useCodexAccountAuth<LoginParams = unknown>(controls: CodexAccountAuthControls<LoginParams>): {
21
+ busyAction: AuthAction | null;
22
+ isBusy: boolean;
23
+ error: string | null;
24
+ lastResult: unknown;
25
+ readAccount: (args?: {
26
+ refreshToken?: boolean;
27
+ }) => Promise<unknown>;
28
+ loginAccount: (args: {
29
+ params: LoginParams;
30
+ }) => Promise<unknown>;
31
+ cancelAccountLogin: (args: {
32
+ loginId: string;
33
+ }) => Promise<unknown>;
34
+ logoutAccount: () => Promise<unknown>;
35
+ readAccountRateLimits: () => Promise<unknown>;
36
+ respondChatgptAuthTokensRefresh: (args: {
37
+ requestId: string | number;
38
+ idToken: string;
39
+ accessToken: string;
40
+ }) => Promise<unknown>;
41
+ };
42
+ export {};
43
+ //# sourceMappingURL=useCodexAccountAuth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCodexAccountAuth.d.ts","sourceRoot":"","sources":["../../src/react/useCodexAccountAuth.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,wBAAwB,CAAC,WAAW,GAAG,OAAO,IAAI;IAC5D,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACrE,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,WAAW,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,kBAAkB,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpE,aAAa,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,qBAAqB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,+BAA+B,CAAC,EAAE,CAAC,IAAI,EAAE;QACvC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;KACrB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACxB,CAAC;AAEF,KAAK,UAAU,GACX,MAAM,GACN,cAAc,GACd,OAAO,GACP,cAAc,GACd,QAAQ,GACR,kBAAkB,GAClB,gBAAgB,CAAC;AAErB,wBAAgB,mBAAmB,CAAC,WAAW,GAAG,OAAO,EACvD,QAAQ,EAAE,wBAAwB,CAAC,WAAW,CAAC;;;;;yBAuBrC;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE;yBAK3B;QAAE,MAAM,EAAE,WAAW,CAAA;KAAE;+BAIvB;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE;;;4CASnB;QAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE;EAmC9E"}
@@ -0,0 +1,59 @@
1
+ "use client";
2
+ import { useCallback, useMemo, useState } from "react";
3
+ export function useCodexAccountAuth(controls) {
4
+ const [busyAction, setBusyAction] = useState(null);
5
+ const [error, setError] = useState(null);
6
+ const [lastResult, setLastResult] = useState(null);
7
+ const run = useCallback(async (action, fn) => {
8
+ setBusyAction(action);
9
+ setError(null);
10
+ try {
11
+ const result = await fn();
12
+ setLastResult(result);
13
+ return result;
14
+ }
15
+ catch (nextError) {
16
+ const message = nextError instanceof Error ? nextError.message : String(nextError);
17
+ setError(message);
18
+ throw nextError;
19
+ }
20
+ finally {
21
+ setBusyAction((current) => (current === action ? null : current));
22
+ }
23
+ }, []);
24
+ const readAccount = useCallback((args) => run(args?.refreshToken ? "read_refresh" : "read", () => controls.readAccount(args)), [controls, run]);
25
+ const loginAccount = useCallback((args) => run("login", () => controls.loginAccount(args)), [controls, run]);
26
+ const cancelAccountLogin = useCallback((args) => run("cancel_login", () => controls.cancelAccountLogin(args)), [controls, run]);
27
+ const logoutAccount = useCallback(() => run("logout", controls.logoutAccount), [controls, run]);
28
+ const readAccountRateLimits = useCallback(() => run("read_rate_limits", controls.readAccountRateLimits), [controls, run]);
29
+ const respondChatgptAuthTokensRefresh = useCallback((args) => {
30
+ const respond = controls.respondChatgptAuthTokensRefresh;
31
+ if (!respond) {
32
+ throw new Error("respondChatgptAuthTokensRefresh is not configured.");
33
+ }
34
+ return run("refresh_tokens", () => respond(args));
35
+ }, [controls, run]);
36
+ return useMemo(() => ({
37
+ busyAction,
38
+ isBusy: busyAction !== null,
39
+ error,
40
+ lastResult,
41
+ readAccount,
42
+ loginAccount,
43
+ cancelAccountLogin,
44
+ logoutAccount,
45
+ readAccountRateLimits,
46
+ respondChatgptAuthTokensRefresh,
47
+ }), [
48
+ busyAction,
49
+ cancelAccountLogin,
50
+ error,
51
+ lastResult,
52
+ loginAccount,
53
+ logoutAccount,
54
+ readAccount,
55
+ readAccountRateLimits,
56
+ respondChatgptAuthTokensRefresh,
57
+ ]);
58
+ }
59
+ //# sourceMappingURL=useCodexAccountAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCodexAccountAuth.js","sourceRoot":"","sources":["../../src/react/useCodexAccountAuth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { FunctionArgs } from "convex/server";
2
+ import { type CodexThreadStateQuery } from "./useCodexThreadState.js";
3
+ import { type CodexBranchActivityOptions } from "./branchActivity.js";
4
+ import type { CodexThreadActivity, CodexThreadActivityThreadState } from "./threadActivity.js";
5
+ export type CodexBranchActivityQuery<Args = Record<string, unknown>, Result extends CodexThreadActivityThreadState = CodexThreadActivityThreadState> = CodexThreadStateQuery<Args, Result>;
6
+ export declare function useCodexBranchActivity<Query extends CodexBranchActivityQuery<unknown, CodexThreadActivityThreadState>>(query: Query, args: FunctionArgs<Query> | "skip", options?: CodexBranchActivityOptions): CodexThreadActivity;
7
+ //# sourceMappingURL=useCodexBranchActivity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCodexBranchActivity.d.ts","sourceRoot":"","sources":["../../src/react/useCodexBranchActivity.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAuB,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAE/F,MAAM,MAAM,wBAAwB,CAClC,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,SAAS,8BAA8B,GAAG,8BAA8B,IAC5E,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAExC,wBAAgB,sBAAsB,CAAC,KAAK,SAAS,wBAAwB,CAAC,OAAO,EAAE,8BAA8B,CAAC,EACpH,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,MAAM,EAClC,OAAO,CAAC,EAAE,0BAA0B,GACnC,mBAAmB,CAGrB"}
@@ -0,0 +1,9 @@
1
+ "use client";
2
+ import { useMemo } from "react";
3
+ import { useCodexThreadState } from "./useCodexThreadState.js";
4
+ import { deriveCodexBranchActivity, } from "./branchActivity.js";
5
+ export function useCodexBranchActivity(query, args, options) {
6
+ const threadState = useCodexThreadState(query, args);
7
+ return useMemo(() => deriveCodexBranchActivity(threadState, options), [options, threadState]);
8
+ }
9
+ //# sourceMappingURL=useCodexBranchActivity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCodexBranchActivity.js","sourceRoot":"","sources":["../../src/react/useCodexBranchActivity.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,mBAAmB,EAA8B,MAAM,0BAA0B,CAAC;AAC3F,OAAO,EACL,yBAAyB,GAE1B,MAAM,qBAAqB,CAAC;AAQ7B,MAAM,UAAU,sBAAsB,CACpC,KAAY,EACZ,IAAkC,EAClC,OAAoC;IAEpC,MAAM,WAAW,GAAG,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACrD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,yBAAyB,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;AAChG,CAAC"}
@@ -0,0 +1,83 @@
1
+ import type { FunctionArgs } from "convex/server";
2
+ import type { CodexMessagesQuery, CodexMessagesQueryArgs } from "./types.js";
3
+ import { type CodexThreadStateQuery } from "./useCodexThreadState.js";
4
+ import { type CodexThreadActivity, type CodexThreadActivityThreadState } from "./threadActivity.js";
5
+ import { type CodexBranchActivityOptions } from "./branchActivity.js";
6
+ import { type CodexDynamicToolHandler, type CodexDynamicToolsQuery, type CodexDynamicToolsRespond } from "./useCodexDynamicTools.js";
7
+ export type CodexConversationApprovalDecision = "accepted" | "declined";
8
+ export type CodexConversationApprovalItem = {
9
+ threadId: string;
10
+ turnId: string;
11
+ itemId: string;
12
+ kind: string;
13
+ reason?: string;
14
+ createdAt: number;
15
+ };
16
+ export type CodexConversationControllerConfig<MessagesQuery extends CodexMessagesQuery<unknown>, ThreadStateQuery extends CodexThreadStateQuery<unknown, CodexThreadActivityThreadState>, DynamicToolsQuery extends CodexDynamicToolsQuery<Record<string, unknown>>> = {
17
+ messages: {
18
+ query: MessagesQuery;
19
+ args: CodexMessagesQueryArgs<MessagesQuery> | "skip";
20
+ initialNumItems: number;
21
+ stream?: boolean;
22
+ };
23
+ threadState: {
24
+ query: ThreadStateQuery;
25
+ args: FunctionArgs<ThreadStateQuery> | "skip";
26
+ branchOptions?: CodexBranchActivityOptions;
27
+ };
28
+ composer?: {
29
+ initialValue?: string;
30
+ onSend: (text: string) => Promise<unknown>;
31
+ };
32
+ approvals?: {
33
+ onResolve: (approval: CodexConversationApprovalItem, decision: CodexConversationApprovalDecision) => Promise<unknown>;
34
+ };
35
+ dynamicTools?: {
36
+ query: DynamicToolsQuery;
37
+ args: FunctionArgs<DynamicToolsQuery> | "skip";
38
+ respond?: CodexDynamicToolsRespond;
39
+ handlers?: Record<string, CodexDynamicToolHandler>;
40
+ autoHandle?: boolean;
41
+ enabled?: boolean;
42
+ };
43
+ interrupt?: {
44
+ onInterrupt: (activity: CodexThreadActivity) => Promise<unknown>;
45
+ };
46
+ };
47
+ export declare function useCodexConversationController<MessagesQuery extends CodexMessagesQuery<unknown>, ThreadStateQuery extends CodexThreadStateQuery<unknown, CodexThreadActivityThreadState>, DynamicToolsQuery extends CodexDynamicToolsQuery<Record<string, unknown>> = CodexDynamicToolsQuery<Record<string, unknown>>>(config: CodexConversationControllerConfig<MessagesQuery, ThreadStateQuery, DynamicToolsQuery>): {
48
+ messages: import("convex/react").UsePaginatedQueryResult<import("../index.js").CodexUIMessage>;
49
+ activity: CodexThreadActivity;
50
+ ingestHealth: import("./ingestHealth.js").CodexIngestHealth;
51
+ branchActivity: CodexThreadActivity;
52
+ approvals: {
53
+ pending: CodexConversationApprovalItem[];
54
+ pendingCount: number;
55
+ approvingItemId: string | null;
56
+ error: string | null;
57
+ canResolve: boolean;
58
+ resolve: (approval: CodexConversationApprovalItem, decision: CodexConversationApprovalDecision) => Promise<void>;
59
+ accept: (approval: CodexConversationApprovalItem) => Promise<void>;
60
+ decline: (approval: CodexConversationApprovalItem) => Promise<void>;
61
+ };
62
+ dynamicTools: {
63
+ requests: never[] | DynamicToolsQuery["_returnType"];
64
+ calls: import("./dynamicTools.js").CodexDynamicToolCall[];
65
+ pendingCount: number;
66
+ runningRequestIds: string[];
67
+ lastError: string | null;
68
+ runCall: (call: import("./dynamicTools.js").CodexDynamicToolCall) => Promise<boolean>;
69
+ respond: (call: import("./dynamicTools.js").CodexDynamicToolCall, result: import("./dynamicTools.js").CodexDynamicToolResponse) => Promise<void>;
70
+ };
71
+ composer: {
72
+ value: string;
73
+ setValue: import("react").Dispatch<import("react").SetStateAction<string>>;
74
+ error: string | null;
75
+ isSending: boolean;
76
+ canSend: boolean;
77
+ send: (overrideText?: string) => Promise<void>;
78
+ };
79
+ interrupt: () => Promise<void>;
80
+ canInterrupt: boolean;
81
+ isInterrupting: boolean;
82
+ };
83
+ //# sourceMappingURL=useCodexConversationController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCodexConversationController.d.ts","sourceRoot":"","sources":["../../src/react/useCodexConversationController.ts"],"names":[],"mappings":"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"}