@zakstam/codex-local-component 0.9.1 → 0.10.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 (75) hide show
  1. package/dist/component/_generated/component.d.ts +10 -0
  2. package/dist/component/_generated/component.d.ts.map +1 -1
  3. package/dist/component/index.d.ts +1 -0
  4. package/dist/component/index.d.ts.map +1 -1
  5. package/dist/component/index.js +1 -0
  6. package/dist/component/index.js.map +1 -1
  7. package/dist/component/schema.d.ts +40 -0
  8. package/dist/component/schema.d.ts.map +1 -1
  9. package/dist/component/schema.js +21 -0
  10. package/dist/component/schema.js.map +1 -1
  11. package/dist/component/streamStats.d.ts +7 -0
  12. package/dist/component/streamStats.d.ts.map +1 -1
  13. package/dist/component/streamStats.js +20 -2
  14. package/dist/component/streamStats.js.map +1 -1
  15. package/dist/component/streams.d.ts.map +1 -1
  16. package/dist/component/streams.js +31 -0
  17. package/dist/component/streams.js.map +1 -1
  18. package/dist/component/threads.d.ts +10 -0
  19. package/dist/component/threads.d.ts.map +1 -1
  20. package/dist/component/threads.js +49 -1
  21. package/dist/component/threads.js.map +1 -1
  22. package/dist/component/tokenUsage.d.ts +43 -0
  23. package/dist/component/tokenUsage.d.ts.map +1 -0
  24. package/dist/component/tokenUsage.js +107 -0
  25. package/dist/component/tokenUsage.js.map +1 -0
  26. package/dist/host/convexPreset.d.ts +54 -0
  27. package/dist/host/convexPreset.d.ts.map +1 -1
  28. package/dist/host/convexPreset.js +39 -1
  29. package/dist/host/convexPreset.js.map +1 -1
  30. package/dist/host/convexSlice.d.ts +27 -1
  31. package/dist/host/convexSlice.d.ts.map +1 -1
  32. package/dist/host/convexSlice.js +24 -0
  33. package/dist/host/convexSlice.js.map +1 -1
  34. package/dist/host/index.d.ts +1 -1
  35. package/dist/host/index.d.ts.map +1 -1
  36. package/dist/host/index.js +1 -1
  37. package/dist/host/index.js.map +1 -1
  38. package/dist/host/runtime.d.ts +16 -0
  39. package/dist/host/runtime.d.ts.map +1 -1
  40. package/dist/host/runtime.js +46 -0
  41. package/dist/host/runtime.js.map +1 -1
  42. package/dist/host/surfaceManifest.d.ts +4 -4
  43. package/dist/host/surfaceManifest.d.ts.map +1 -1
  44. package/dist/host/surfaceManifest.js +4 -0
  45. package/dist/host/surfaceManifest.js.map +1 -1
  46. package/dist/react/activityAuthority.d.ts +50 -0
  47. package/dist/react/activityAuthority.d.ts.map +1 -0
  48. package/dist/react/activityAuthority.js +185 -0
  49. package/dist/react/activityAuthority.js.map +1 -0
  50. package/dist/react/branchActivity.d.ts.map +1 -1
  51. package/dist/react/branchActivity.js +4 -0
  52. package/dist/react/branchActivity.js.map +1 -1
  53. package/dist/react/index.d.ts +3 -0
  54. package/dist/react/index.d.ts.map +1 -1
  55. package/dist/react/index.js +2 -0
  56. package/dist/react/index.js.map +1 -1
  57. package/dist/react/threadActivity.d.ts +2 -33
  58. package/dist/react/threadActivity.d.ts.map +1 -1
  59. package/dist/react/threadActivity.js +2 -157
  60. package/dist/react/threadActivity.js.map +1 -1
  61. package/dist/react/tokenUsage.d.ts +32 -0
  62. package/dist/react/tokenUsage.d.ts.map +1 -0
  63. package/dist/react/tokenUsage.js +17 -0
  64. package/dist/react/tokenUsage.js.map +1 -0
  65. package/dist/react/useCodexTokenUsage.d.ts +7 -0
  66. package/dist/react/useCodexTokenUsage.d.ts.map +1 -0
  67. package/dist/react/useCodexTokenUsage.js +10 -0
  68. package/dist/react/useCodexTokenUsage.js.map +1 -0
  69. package/dist/shared/streamLifecycle.d.ts +2 -0
  70. package/dist/shared/streamLifecycle.d.ts.map +1 -0
  71. package/dist/shared/streamLifecycle.js +2 -0
  72. package/dist/shared/streamLifecycle.js.map +1 -0
  73. package/docs/CLIENT_AND_REACT_HOOKS.md +3 -1
  74. package/docs/HOST_PRESET_MATRIX.md +2 -0
  75. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"threadActivity.js","sourceRoot":"","sources":["../../src/react/threadActivity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"threadActivity.js","sourceRoot":"","sources":["../../src/react/threadActivity.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EACL,mCAAmC,GAUpC,MAAM,wBAAwB,CAAC;AAchC,MAAM,UAAU,yBAAyB,CACvC,KAAwD;IAExD,OAAO,mCAAmC,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC"}
@@ -0,0 +1,32 @@
1
+ export type CodexTokenUsageBreakdown = {
2
+ totalTokens: number;
3
+ inputTokens: number;
4
+ cachedInputTokens: number;
5
+ outputTokens: number;
6
+ reasoningOutputTokens: number;
7
+ };
8
+ export type CodexTurnTokenUsage = {
9
+ turnId: string;
10
+ total: CodexTokenUsageBreakdown;
11
+ last: CodexTokenUsageBreakdown;
12
+ modelContextWindow?: number;
13
+ updatedAt: number;
14
+ };
15
+ export type CodexTokenUsage = {
16
+ status: "loading";
17
+ turns: [];
18
+ cumulative: null;
19
+ modelContextWindow: null;
20
+ } | {
21
+ status: "empty";
22
+ turns: [];
23
+ cumulative: null;
24
+ modelContextWindow: null;
25
+ } | {
26
+ status: "ready";
27
+ turns: CodexTurnTokenUsage[];
28
+ cumulative: CodexTokenUsageBreakdown;
29
+ modelContextWindow: number | null;
30
+ };
31
+ export declare function deriveCodexTokenUsage(rawTurns: CodexTurnTokenUsage[] | null | undefined): CodexTokenUsage;
32
+ //# sourceMappingURL=tokenUsage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenUsage.d.ts","sourceRoot":"","sources":["../../src/react/tokenUsage.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,wBAAwB,GAAG;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,wBAAwB,CAAC;IAChC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,eAAe,GACvB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,EAAE,CAAC;IAAC,UAAU,EAAE,IAAI,CAAC;IAAC,kBAAkB,EAAE,IAAI,CAAA;CAAE,GAC5E;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,EAAE,CAAC;IAAC,UAAU,EAAE,IAAI,CAAC;IAAC,kBAAkB,EAAE,IAAI,CAAA;CAAE,GAC1E;IACE,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,UAAU,EAAE,wBAAwB,CAAC;IACrC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC,CAAC;AAEN,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,IAAI,GAAG,SAAS,GACjD,eAAe,CAgBjB"}
@@ -0,0 +1,17 @@
1
+ "use client";
2
+ export function deriveCodexTokenUsage(rawTurns) {
3
+ if (rawTurns === undefined) {
4
+ return { status: "loading", turns: [], cumulative: null, modelContextWindow: null };
5
+ }
6
+ if (rawTurns === null || rawTurns.length === 0) {
7
+ return { status: "empty", turns: [], cumulative: null, modelContextWindow: null };
8
+ }
9
+ const latest = rawTurns[rawTurns.length - 1];
10
+ return {
11
+ status: "ready",
12
+ turns: rawTurns,
13
+ cumulative: latest.total,
14
+ modelContextWindow: latest.modelContextWindow ?? null,
15
+ };
16
+ }
17
+ //# sourceMappingURL=tokenUsage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenUsage.js","sourceRoot":"","sources":["../../src/react/tokenUsage.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AA4Bb,MAAM,UAAU,qBAAqB,CACnC,QAAkD;IAElD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;IACtF,CAAC;IACD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC;IACpF,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IAE9C,OAAO;QACL,MAAM,EAAE,OAAO;QACf,KAAK,EAAE,QAAQ;QACf,UAAU,EAAE,MAAM,CAAC,KAAK;QACxB,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,IAAI;KACtD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { FunctionArgs, FunctionReference } from "convex/server";
2
+ import { type CodexTokenUsage, type CodexTurnTokenUsage } from "./tokenUsage.js";
3
+ export type CodexTokenUsageQuery<Args = Record<string, unknown>> = FunctionReference<"query", "public", {
4
+ threadId: string;
5
+ } & Args, CodexTurnTokenUsage[]>;
6
+ export declare function useCodexTokenUsage<Query extends CodexTokenUsageQuery<unknown>>(query: Query, args: FunctionArgs<Query> | "skip"): CodexTokenUsage;
7
+ //# sourceMappingURL=useCodexTokenUsage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCodexTokenUsage.d.ts","sourceRoot":"","sources":["../../src/react/useCodexTokenUsage.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACzB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,oBAAoB,CAC9B,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC5B,iBAAiB,CACnB,OAAO,EACP,QAAQ,EACR;IACE,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,IAAI,EACR,mBAAmB,EAAE,CACtB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,oBAAoB,CAAC,OAAO,CAAC,EAC5E,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,MAAM,GACjC,eAAe,CAIjB"}
@@ -0,0 +1,10 @@
1
+ "use client";
2
+ import { useMemo } from "react";
3
+ import { useQuery } from "convex/react";
4
+ import { deriveCodexTokenUsage, } from "./tokenUsage.js";
5
+ export function useCodexTokenUsage(query, args) {
6
+ const queryArgs = (args === "skip" ? ["skip"] : [args]);
7
+ const rawTurns = useQuery(query, ...queryArgs);
8
+ return useMemo(() => deriveCodexTokenUsage(rawTurns), [rawTurns]);
9
+ }
10
+ //# sourceMappingURL=useCodexTokenUsage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCodexTokenUsage.js","sourceRoot":"","sources":["../../src/react/useCodexTokenUsage.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,QAAQ,EAA+B,MAAM,cAAc,CAAC;AAErE,OAAO,EACL,qBAAqB,GAGtB,MAAM,iBAAiB,CAAC;AAazB,MAAM,UAAU,kBAAkB,CAChC,KAAY,EACZ,IAAkC;IAElC,MAAM,SAAS,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAA6C,CAAC;IACpG,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC;IAC/C,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const STREAM_DRAIN_COMPLETE_KIND = "stream/drain_complete";
2
+ //# sourceMappingURL=streamLifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamLifecycle.d.ts","sourceRoot":"","sources":["../../src/shared/streamLifecycle.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,0BAA0B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export const STREAM_DRAIN_COMPLETE_KIND = "stream/drain_complete";
2
+ //# sourceMappingURL=streamLifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamLifecycle.js","sourceRoot":"","sources":["../../src/shared/streamLifecycle.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,0BAA0B,GAAG,uBAAuB,CAAC"}
@@ -60,6 +60,7 @@ Common helpers used by consumers:
60
60
  - `useCodexInterruptTurn`
61
61
  - `useCodexAutoResume`
62
62
  - `useCodexComposer`
63
+ - `useCodexTokenUsage`
63
64
  - `optimisticallySendCodexMessage`
64
65
 
65
66
  ## `useCodexMessages` Host Query Contract
@@ -93,6 +94,7 @@ Return shape:
93
94
  - `useCodexThreads` -> app thread-list query + thread lifecycle mutations
94
95
  - `useCodexInterruptTurn` -> `chat.interruptTurnForHooks`
95
96
  - `useCodexComposer` -> `chat.enqueueTurnDispatch`
97
+ - `useCodexTokenUsage` -> `chat.listTokenUsageForHooks`
96
98
 
97
99
  ## Reference React Integration Adapter
98
100
 
@@ -136,7 +138,7 @@ It demonstrates generated host wrappers plus React-first hook composition (`useC
136
138
 
137
139
  | UI Signal | Source of truth | Ignore for this signal | Why |
138
140
  | --- | --- | --- | --- |
139
- | Thread activity badge (`idle/streaming/awaiting_approval/failed/interrupted`) | `useCodexThreadActivity(chat.threadSnapshotSafe, ...)` | Raw `messages`, `dispatches`, `turns`, `streamStats` stitching in app code | Prevents precedence bugs and "stuck streaming" regressions. |
141
+ | Thread activity badge (`idle/streaming/awaiting_approval/failed/interrupted`) | `useCodexThreadActivity(chat.threadSnapshotSafe, ...)` | Raw `messages`, `dispatches`, `turns`, `streamStats`, `activeStreams` stitching in app code | Uses canonical precedence: `pending approvals > streaming message > active stream > in-flight newer than terminal > terminal > idle`, including stream-drain lifecycle markers to prevent stuck streaming. |
140
142
  | Show "needs approval" UI | `activity.phase === "awaiting_approval"` (or `pendingApprovals` count if not using activity hook) | Dispatch status alone | Dispatch lifecycle does not encode approval waits. |
141
143
  | Render assistant text deltas | `useCodexMessages(..., { stream: true })` | `dispatches` and `turns` | Dispatch/turn state tracks orchestration, not message text continuity. |
142
144
  | Enable cancel/interruption affordance | `activity.phase === "streaming"` with `activity.activeTurnId` | `threadStatus`, `dispatches` alone | Active turn identity should come from normalized activity. |
@@ -25,6 +25,7 @@ All focused preset builders include:
25
25
  - `listThreadMessagesForHooks`
26
26
  - `listTurnMessagesForHooks`
27
27
  - `listPendingApprovalsForHooks`
28
+ - `listTokenUsageForHooks`
28
29
 
29
30
  Additional query endpoints:
30
31
 
@@ -46,6 +47,7 @@ All focused preset builders include:
46
47
  - `ingestEvent`
47
48
  - `ingestBatch`
48
49
  - `respondApprovalForHooks`
50
+ - `upsertTokenUsageForHooks`
49
51
  - `interruptTurnForHooks`
50
52
 
51
53
  Dispatch-managed additionally includes:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zakstam/codex-local-component",
3
- "version": "0.9.1",
3
+ "version": "0.10.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",