@kortix/sdk 0.11.0 → 0.12.1

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 (214) hide show
  1. package/README.md +110 -73
  2. package/dist/browser/cache/idb-sync-cache-key.d.ts +2 -0
  3. package/dist/browser/cache/idb-sync-cache-key.d.ts.map +1 -0
  4. package/dist/browser/cache/idb-sync-cache-key.js +7 -0
  5. package/dist/browser/cache/idb-sync-cache-key.js.map +1 -0
  6. package/dist/browser/cache/idb-sync-cache.d.ts +3 -3
  7. package/dist/browser/cache/idb-sync-cache.d.ts.map +1 -1
  8. package/dist/browser/cache/idb-sync-cache.js +49 -26
  9. package/dist/browser/cache/idb-sync-cache.js.map +1 -1
  10. package/dist/browser/session-sync/session-cache-ownership.d.ts +36 -0
  11. package/dist/browser/session-sync/session-cache-ownership.d.ts.map +1 -0
  12. package/dist/browser/session-sync/session-cache-ownership.js +66 -0
  13. package/dist/browser/session-sync/session-cache-ownership.js.map +1 -0
  14. package/dist/browser/session-sync/session-sync-registry.d.ts +8 -6
  15. package/dist/browser/session-sync/session-sync-registry.d.ts.map +1 -1
  16. package/dist/browser/session-sync/session-sync-registry.js +86 -33
  17. package/dist/browser/session-sync/session-sync-registry.js.map +1 -1
  18. package/dist/browser/session-sync/session-transcript-cache.d.ts +55 -0
  19. package/dist/browser/session-sync/session-transcript-cache.d.ts.map +1 -0
  20. package/dist/browser/session-sync/session-transcript-cache.js +69 -0
  21. package/dist/browser/session-sync/session-transcript-cache.js.map +1 -0
  22. package/dist/core/client/kortix.d.ts +72 -25
  23. package/dist/core/client/kortix.d.ts.map +1 -1
  24. package/dist/core/client/kortix.js +76 -17
  25. package/dist/core/client/kortix.js.map +1 -1
  26. package/dist/core/rest/platform-client/host-boundary.d.ts +7 -0
  27. package/dist/core/rest/platform-client/host-boundary.d.ts.map +1 -1
  28. package/dist/core/rest/platform-client/host-boundary.js +14 -0
  29. package/dist/core/rest/platform-client/host-boundary.js.map +1 -1
  30. package/dist/core/rest/projects-client/access.d.ts +1 -2
  31. package/dist/core/rest/projects-client/access.d.ts.map +1 -1
  32. package/dist/core/rest/projects-client/access.js +9 -6
  33. package/dist/core/rest/projects-client/access.js.map +1 -1
  34. package/dist/core/rest/projects-client/agent-config.d.ts +15 -7
  35. package/dist/core/rest/projects-client/agent-config.d.ts.map +1 -1
  36. package/dist/core/rest/projects-client/agent-config.js +43 -2
  37. package/dist/core/rest/projects-client/agent-config.js.map +1 -1
  38. package/dist/core/rest/projects-client/agent-scope.d.ts +4 -0
  39. package/dist/core/rest/projects-client/agent-scope.d.ts.map +1 -1
  40. package/dist/core/rest/projects-client/agent-scope.js +34 -1
  41. package/dist/core/rest/projects-client/agent-scope.js.map +1 -1
  42. package/dist/core/rest/projects-client/audit.d.ts +34 -0
  43. package/dist/core/rest/projects-client/audit.d.ts.map +1 -1
  44. package/dist/core/rest/projects-client/audit.js +49 -4
  45. package/dist/core/rest/projects-client/audit.js.map +1 -1
  46. package/dist/core/rest/projects-client/billing.d.ts +26 -14
  47. package/dist/core/rest/projects-client/billing.d.ts.map +1 -1
  48. package/dist/core/rest/projects-client/billing.js +4 -5
  49. package/dist/core/rest/projects-client/billing.js.map +1 -1
  50. package/dist/core/rest/projects-client/connectors.d.ts +106 -45
  51. package/dist/core/rest/projects-client/connectors.d.ts.map +1 -1
  52. package/dist/core/rest/projects-client/connectors.js +95 -58
  53. package/dist/core/rest/projects-client/connectors.js.map +1 -1
  54. package/dist/core/rest/projects-client/github.d.ts +7 -1
  55. package/dist/core/rest/projects-client/github.d.ts.map +1 -1
  56. package/dist/core/rest/projects-client/github.js.map +1 -1
  57. package/dist/core/rest/projects-client/iam.d.ts +17 -0
  58. package/dist/core/rest/projects-client/iam.d.ts.map +1 -1
  59. package/dist/core/rest/projects-client/iam.js +14 -0
  60. package/dist/core/rest/projects-client/iam.js.map +1 -1
  61. package/dist/core/rest/projects-client/index.d.ts +2 -0
  62. package/dist/core/rest/projects-client/index.d.ts.map +1 -1
  63. package/dist/core/rest/projects-client/index.js +2 -0
  64. package/dist/core/rest/projects-client/index.js.map +1 -1
  65. package/dist/core/rest/projects-client/model-enablement.d.ts +9 -0
  66. package/dist/core/rest/projects-client/model-enablement.d.ts.map +1 -0
  67. package/dist/core/rest/projects-client/model-enablement.js +16 -0
  68. package/dist/core/rest/projects-client/model-enablement.js.map +1 -0
  69. package/dist/core/rest/projects-client/policies.d.ts +18 -0
  70. package/dist/core/rest/projects-client/policies.d.ts.map +1 -1
  71. package/dist/core/rest/projects-client/policies.js.map +1 -1
  72. package/dist/core/rest/projects-client/projects.d.ts +87 -1
  73. package/dist/core/rest/projects-client/projects.d.ts.map +1 -1
  74. package/dist/core/rest/projects-client/projects.js +8 -0
  75. package/dist/core/rest/projects-client/projects.js.map +1 -1
  76. package/dist/core/rest/projects-client/sandbox.d.ts +50 -0
  77. package/dist/core/rest/projects-client/sandbox.d.ts.map +1 -1
  78. package/dist/core/rest/projects-client/sandbox.js.map +1 -1
  79. package/dist/core/rest/projects-client/session-costs.d.ts +102 -0
  80. package/dist/core/rest/projects-client/session-costs.d.ts.map +1 -0
  81. package/dist/core/rest/projects-client/session-costs.js +25 -0
  82. package/dist/core/rest/projects-client/session-costs.js.map +1 -0
  83. package/dist/core/rest/projects-client/session-sandbox.d.ts +0 -2
  84. package/dist/core/rest/projects-client/session-sandbox.d.ts.map +1 -1
  85. package/dist/core/rest/projects-client/session-sandbox.js +1 -10
  86. package/dist/core/rest/projects-client/session-sandbox.js.map +1 -1
  87. package/dist/core/rest/projects-client/sessions.d.ts +94 -44
  88. package/dist/core/rest/projects-client/sessions.d.ts.map +1 -1
  89. package/dist/core/rest/projects-client/sessions.js +9 -15
  90. package/dist/core/rest/projects-client/sessions.js.map +1 -1
  91. package/dist/core/rest/projects-client/setup-links.d.ts +37 -0
  92. package/dist/core/rest/projects-client/setup-links.d.ts.map +1 -1
  93. package/dist/core/rest/projects-client/setup-links.js +11 -0
  94. package/dist/core/rest/projects-client/setup-links.js.map +1 -1
  95. package/dist/core/session/index.d.ts +1 -1
  96. package/dist/core/session/index.d.ts.map +1 -1
  97. package/dist/core/session/index.js +1 -1
  98. package/dist/core/session/index.js.map +1 -1
  99. package/dist/core/session/preview-auth.d.ts +32 -0
  100. package/dist/core/session/preview-auth.d.ts.map +1 -0
  101. package/dist/core/session/preview-auth.js +53 -0
  102. package/dist/core/session/preview-auth.js.map +1 -0
  103. package/dist/core/session/server-store/url-helpers.d.ts.map +1 -1
  104. package/dist/core/session/server-store/url-helpers.js +5 -3
  105. package/dist/core/session/server-store/url-helpers.js.map +1 -1
  106. package/dist/core/session-sync/session-sync-controller.d.ts +12 -1
  107. package/dist/core/session-sync/session-sync-controller.d.ts.map +1 -1
  108. package/dist/core/session-sync/session-sync-controller.js +34 -2
  109. package/dist/core/session-sync/session-sync-controller.js.map +1 -1
  110. package/dist/index.d.ts +1 -2
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +0 -1
  113. package/dist/index.js.map +1 -1
  114. package/dist/kortix.esm.min.js +19 -24
  115. package/dist/kortix.global.js +19 -24
  116. package/dist/platform/auth-core.d.ts +5 -3
  117. package/dist/platform/auth-core.d.ts.map +1 -1
  118. package/dist/platform/auth-core.js +6 -4
  119. package/dist/platform/auth-core.js.map +1 -1
  120. package/dist/react/index.d.ts +1 -2
  121. package/dist/react/index.d.ts.map +1 -1
  122. package/dist/react/index.js +0 -1
  123. package/dist/react/index.js.map +1 -1
  124. package/dist/react/model-flatten.d.ts +20 -0
  125. package/dist/react/model-flatten.d.ts.map +1 -1
  126. package/dist/react/model-flatten.js +12 -0
  127. package/dist/react/model-flatten.js.map +1 -1
  128. package/dist/react/opencode.d.ts +4 -3
  129. package/dist/react/opencode.d.ts.map +1 -1
  130. package/dist/react/opencode.js +4 -3
  131. package/dist/react/opencode.js.map +1 -1
  132. package/dist/react/provider-selection.d.ts +9 -0
  133. package/dist/react/provider-selection.d.ts.map +1 -1
  134. package/dist/react/provider-selection.js +23 -0
  135. package/dist/react/provider-selection.js.map +1 -1
  136. package/dist/react/session-title-sync.d.ts +9 -5
  137. package/dist/react/session-title-sync.d.ts.map +1 -1
  138. package/dist/react/session-title-sync.js +14 -10
  139. package/dist/react/session-title-sync.js.map +1 -1
  140. package/dist/react/use-canonical-opencode-session.d.ts +2 -2
  141. package/dist/react/use-canonical-opencode-session.d.ts.map +1 -1
  142. package/dist/react/use-model-enablement.d.ts +25 -0
  143. package/dist/react/use-model-enablement.d.ts.map +1 -0
  144. package/dist/react/use-model-enablement.js +92 -0
  145. package/dist/react/use-model-enablement.js.map +1 -0
  146. package/dist/react/use-model-store.d.ts +6 -14
  147. package/dist/react/use-model-store.d.ts.map +1 -1
  148. package/dist/react/use-model-store.js +30 -52
  149. package/dist/react/use-model-store.js.map +1 -1
  150. package/dist/react/use-opencode-events/handle-event.d.ts.map +1 -1
  151. package/dist/react/use-opencode-events/handle-event.js +103 -41
  152. package/dist/react/use-opencode-events/handle-event.js.map +1 -1
  153. package/dist/react/use-opencode-local.d.ts +5 -4
  154. package/dist/react/use-opencode-local.d.ts.map +1 -1
  155. package/dist/react/use-opencode-local.js +20 -37
  156. package/dist/react/use-opencode-local.js.map +1 -1
  157. package/dist/react/use-opencode-sessions/keys.d.ts +3 -1
  158. package/dist/react/use-opencode-sessions/keys.d.ts.map +1 -1
  159. package/dist/react/use-opencode-sessions/keys.js +2 -0
  160. package/dist/react/use-opencode-sessions/keys.js.map +1 -1
  161. package/dist/react/use-opencode-sessions/sessions.d.ts.map +1 -1
  162. package/dist/react/use-opencode-sessions/sessions.js +16 -7
  163. package/dist/react/use-opencode-sessions/sessions.js.map +1 -1
  164. package/dist/react/use-opencode-sessions/shared.d.ts +3 -2
  165. package/dist/react/use-opencode-sessions/shared.d.ts.map +1 -1
  166. package/dist/react/use-opencode-sessions/shared.js +6 -3
  167. package/dist/react/use-opencode-sessions/shared.js.map +1 -1
  168. package/dist/react/use-opencode-sessions/sharing.js +2 -2
  169. package/dist/react/use-opencode-sessions/sharing.js.map +1 -1
  170. package/dist/react/use-session-sync.d.ts +13 -1
  171. package/dist/react/use-session-sync.d.ts.map +1 -1
  172. package/dist/react/use-session-sync.js +85 -17
  173. package/dist/react/use-session-sync.js.map +1 -1
  174. package/dist/react/use-session.d.ts +60 -40
  175. package/dist/react/use-session.d.ts.map +1 -1
  176. package/dist/react/use-session.js +160 -202
  177. package/dist/react/use-session.js.map +1 -1
  178. package/package.json +2 -2
  179. package/dist/core/acp/client.d.ts +0 -45
  180. package/dist/core/acp/client.d.ts.map +0 -1
  181. package/dist/core/acp/client.js +0 -277
  182. package/dist/core/acp/client.js.map +0 -1
  183. package/dist/core/acp/index.d.ts +0 -5
  184. package/dist/core/acp/index.d.ts.map +0 -1
  185. package/dist/core/acp/index.js +0 -5
  186. package/dist/core/acp/index.js.map +0 -1
  187. package/dist/core/acp/projection.d.ts +0 -23
  188. package/dist/core/acp/projection.d.ts.map +0 -1
  189. package/dist/core/acp/projection.js +0 -603
  190. package/dist/core/acp/projection.js.map +0 -1
  191. package/dist/core/acp/session-controller.d.ts +0 -90
  192. package/dist/core/acp/session-controller.d.ts.map +0 -1
  193. package/dist/core/acp/session-controller.js +0 -530
  194. package/dist/core/acp/session-controller.js.map +0 -1
  195. package/dist/core/acp/types.d.ts +0 -66
  196. package/dist/core/acp/types.d.ts.map +0 -1
  197. package/dist/core/acp/types.js +0 -21
  198. package/dist/core/acp/types.js.map +0 -1
  199. package/dist/core/session/runtime-transport.d.ts +0 -16
  200. package/dist/core/session/runtime-transport.d.ts.map +0 -1
  201. package/dist/core/session/runtime-transport.js +0 -30
  202. package/dist/core/session/runtime-transport.js.map +0 -1
  203. package/dist/react/session-busy.d.ts +0 -8
  204. package/dist/react/session-busy.d.ts.map +0 -1
  205. package/dist/react/session-busy.js +0 -4
  206. package/dist/react/session-busy.js.map +0 -1
  207. package/dist/react/use-acp-session-runtime.d.ts +0 -34
  208. package/dist/react/use-acp-session-runtime.d.ts.map +0 -1
  209. package/dist/react/use-acp-session-runtime.js +0 -84
  210. package/dist/react/use-acp-session-runtime.js.map +0 -1
  211. package/dist/react/use-admin-users.d.ts +0 -98
  212. package/dist/react/use-admin-users.d.ts.map +0 -1
  213. package/dist/react/use-admin-users.js +0 -121
  214. package/dist/react/use-admin-users.js.map +0 -1
@@ -0,0 +1,92 @@
1
+ 'use client';
2
+ import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
3
+ import { useCallback, useMemo } from 'react';
4
+ import { getProjectModelPicker } from '../core/rest/projects-client/index.js';
5
+ import { setProjectModelEnablement } from '../core/rest/projects-client/model-enablement.js';
6
+ import { applyEnablementToProviderList } from './provider-selection.js';
7
+ /**
8
+ * Server-owned per-project model enablement. Every model served by
9
+ * `/model-picker` already carries its own resolved `enabled` flag — read THAT
10
+ * to render a switch or filter a list. This hook only handles the writes.
11
+ *
12
+ * Writes are EXCEPTIONS, never the resolved set: a project that pins its whole
13
+ * list would stop tracking "the latest", and every future model would arrive
14
+ * switched off.
15
+ */
16
+ export function useModelEnablement(projectId) {
17
+ const queryClient = useQueryClient();
18
+ const queryKey = useMemo(() => ['project-model-picker', projectId], [projectId]);
19
+ // The session picker does NOT render from the query above — it renders from
20
+ // the gateway provider list (`useOpenCodeProviders`), a SECOND cache of the
21
+ // same `/model-picker` payload with `staleTime: Infinity`. Every write must
22
+ // restamp + invalidate it too, or the composer keeps offering the
23
+ // pre-toggle list until a hard refresh.
24
+ const providersKey = useMemo(() => ['project-providers', projectId, 'gateway'], [projectId]);
25
+ const { data } = useQuery({
26
+ queryKey,
27
+ queryFn: () => getProjectModelPicker(projectId),
28
+ enabled: !!projectId,
29
+ staleTime: 30_000,
30
+ retry: false,
31
+ });
32
+ const mutation = useMutation({
33
+ mutationFn: (next) => setProjectModelEnablement(projectId, next),
34
+ // Apply the new flags to the cached picker payload up front. Every surface
35
+ // reads `enabled` off THIS query — the switch and the session picker both —
36
+ // so without it the UI sits on the pre-toggle answer until the round trip
37
+ // lands (and any picker that is currently unmounted keeps serving the stale
38
+ // list when it remounts, which reads as "I had to hard refresh").
39
+ onMutate: async (next) => {
40
+ await queryClient.cancelQueries({ queryKey });
41
+ await queryClient.cancelQueries({ queryKey: providersKey });
42
+ const previous = queryClient.getQueryData(queryKey);
43
+ const previousProviders = queryClient.getQueryData(providersKey);
44
+ if (previous) {
45
+ queryClient.setQueryData(queryKey, {
46
+ ...previous,
47
+ models: Object.fromEntries(Object.entries(previous.models ?? {}).map(([id, model]) => [
48
+ id,
49
+ next[id] === undefined ? model : { ...model, enabled: next[id] },
50
+ ])),
51
+ modelOverrides: next,
52
+ usingDefaults: Object.keys(next).length === 0,
53
+ });
54
+ }
55
+ if (previousProviders) {
56
+ queryClient.setQueryData(providersKey, applyEnablementToProviderList(previousProviders, next));
57
+ }
58
+ return { previous, previousProviders };
59
+ },
60
+ // A rejected write (e.g. 409 on the project default) must not leave the UI
61
+ // showing a state the server refused.
62
+ onError: (_err, _next, context) => {
63
+ if (context?.previous)
64
+ queryClient.setQueryData(queryKey, context.previous);
65
+ if (context?.previousProviders) {
66
+ queryClient.setQueryData(providersKey, context.previousProviders);
67
+ }
68
+ },
69
+ // `refetchType: 'all'` so an unmounted picker's cache is refreshed too, not
70
+ // just marked stale. The providers refetch also rewrites its localStorage
71
+ // seed, so the next cold paint starts from the post-toggle list.
72
+ onSettled: () => {
73
+ void queryClient.invalidateQueries({ queryKey, refetchType: 'all' });
74
+ void queryClient.invalidateQueries({ queryKey: providersKey, refetchType: 'all' });
75
+ },
76
+ });
77
+ // The stored exceptions, served alongside the resolved flags so a toggle is
78
+ // a merge into what's already there rather than a fresh full set.
79
+ const overrides = useMemo(() => data?.modelOverrides ?? {}, [data]);
80
+ return {
81
+ usingDefaults: data?.usingDefaults ?? true,
82
+ defaultModel: data?.defaultModel,
83
+ setEnabled: useCallback(async (wireModel, enabled) => {
84
+ await mutation.mutateAsync({ ...overrides, [wireModel]: enabled });
85
+ }, [overrides, mutation]),
86
+ resetToDefaults: useCallback(async () => {
87
+ await mutation.mutateAsync({});
88
+ }, [mutation]),
89
+ isUpdating: mutation.isPending,
90
+ };
91
+ }
92
+ //# sourceMappingURL=use-model-enablement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-model-enablement.js","sourceRoot":"","sources":["../../src/react/use-model-enablement.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,3 @@
1
- /**
2
- * React port of the SolidJS `context/models.tsx` from the OpenCode reference app.
3
- *
4
- * Provides:
5
- * - Model visibility (show/hide per model, persisted in localStorage)
6
- * - Recent models (up to 5, persisted)
7
- * - "Latest" logic (models released within 6 months, newest per family shown by default)
8
- * - Variant persistence per model
9
- *
10
- * Uses localStorage instead of Solid's persisted store, with a React-compatible
11
- * zustand-like pattern via useState + useCallback.
12
- */
13
1
  import type { FlatModel } from './model-flatten.js';
14
2
  export type ModelKey = {
15
3
  providerID: string;
@@ -65,8 +53,12 @@ export declare function hasUsableModel(allModels: FlatModel[], opts: {
65
53
  }): boolean;
66
54
  export declare function isDefaultVisible(model: ModelKey): boolean;
67
55
  /**
68
- * Compute "latest" models: models released within 6 months,
69
- * grouped by provider then family, newest per family wins.
56
+ * "Latest" models, keyed `providerID:modelID` for the store's lookup maps.
57
+ *
58
+ * The RULE itself lives in `@kortix/llm-catalog` — the gateway enforces the
59
+ * same default set server-side, and two copies of "newest per family within
60
+ * the window" is exactly how the picker and "Manage models" drifted apart.
61
+ * This is only the key-shape adapter.
70
62
  */
71
63
  export declare function computeLatestSet(models: FlatModel[]): Set<string>;
72
64
  export declare function useModelStore(allModels: FlatModel[], opts?: {
@@ -1 +1 @@
1
- {"version":3,"file":"use-model-store.d.ts","sourceRoot":"","sources":["../../src/react/use-model-store.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAcjD,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAOF,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAGtD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAIrD;AAED,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAElC,UAAU,SAAU,SAAQ,QAAQ;IAClC,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAsFD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAU7E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAQvE;AA4CD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,SAAS,EAAE,EACtB,IAAI,EAAE;IAAE,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/D,OAAO,CAeT;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAEzD;AAgBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAsCjE;AAMD,wBAAgB,aAAa,CAC3B,SAAS,EAAE,SAAS,EAAE,EACtB,IAAI,CAAC,EAAE;IACL,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;;;;;;;OAcG;IACH,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;CAC7B;uBAsBS,QAAQ,KAAG,OAAO;sBAyDlB,QAAQ,KAAG,OAAO;2BAOc,QAAQ,QAAQ,OAAO;;;wBAyB1B,QAAQ;wBAUrC,QAAQ,KAAG,MAAM,GAAG,SAAS;wBAMA,QAAQ,SAAS,MAAM,GAAG,SAAS;kCAQ5D,MAAM,KAAG,QAAQ,GAAG,SAAS;kCAMM,MAAM,SAAS,QAAQ,GAAG,SAAS;qCAatE,MAAM,KAAG,MAAM,GAAG,SAAS;qCAIW,MAAM,QAAQ,MAAM,GAAG,SAAS;;6BAyBxC,MAAM,GAAG,SAAS;iCAQhD,MAAM,KAAG,QAAQ,GAAG,SAAS;iCAIK,MAAM,SAAS,QAAQ,GAAG,SAAS;;8BActC,QAAQ,GAAG,SAAS;IAiC/D,iEAAiE;;EAGpE"}
1
+ {"version":3,"file":"use-model-store.d.ts","sourceRoot":"","sources":["../../src/react/use-model-store.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAQjD,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAOF,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAGtD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAIrD;AAED,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAElC,UAAU,SAAU,SAAQ,QAAQ;IAClC,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAsFD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAU7E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,GAAG,IAAI,CAQvE;AA4CD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,SAAS,EAAE,EACtB,IAAI,EAAE;IAAE,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/D,OAAO,CAeT;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAEzD;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAajE;AAMD,wBAAgB,aAAa,CAC3B,SAAS,EAAE,SAAS,EAAE,EACtB,IAAI,CAAC,EAAE;IACL,oBAAoB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAEnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;;;;;;;;;;OAcG;IACH,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;CAC7B;uBAsBS,QAAQ,KAAG,OAAO;sBAyDlB,QAAQ,KAAG,OAAO;2BAOc,QAAQ,QAAQ,OAAO;;;wBAyB1B,QAAQ;wBAUrC,QAAQ,KAAG,MAAM,GAAG,SAAS;wBAMA,QAAQ,SAAS,MAAM,GAAG,SAAS;kCAQ5D,MAAM,KAAG,QAAQ,GAAG,SAAS;kCAMM,MAAM,SAAS,QAAQ,GAAG,SAAS;qCAatE,MAAM,KAAG,MAAM,GAAG,SAAS;qCAIW,MAAM,QAAQ,MAAM,GAAG,SAAS;;6BAyBxC,MAAM,GAAG,SAAS;iCAQhD,MAAM,KAAG,QAAQ,GAAG,SAAS;iCAIK,MAAM,SAAS,QAAQ,GAAG,SAAS;;8BActC,QAAQ,GAAG,SAAS;IAiC/D,iEAAiE;;EAGpE"}
@@ -1,7 +1,19 @@
1
1
  'use client';
2
- import { safeSetItem } from '../platform/storage/managed-storage.js';
3
- import { DEFAULT_MANAGED_MODEL_IDS, MANAGED_FLAGSHIP_MODEL_ID, } from '@kortix/llm-catalog';
2
+ /**
3
+ * React port of the SolidJS `context/models.tsx` from the OpenCode reference app.
4
+ *
5
+ * Provides:
6
+ * - Model visibility (show/hide per model, persisted in localStorage)
7
+ * - Recent models (up to 5, persisted)
8
+ * - "Latest" logic (models released within 6 months, newest per family shown by default)
9
+ * - Variant persistence per model
10
+ *
11
+ * Uses localStorage instead of Solid's persisted store, with a React-compatible
12
+ * zustand-like pattern via useState + useCallback.
13
+ */
14
+ import { DEFAULT_MANAGED_MODEL_IDS, MANAGED_FLAGSHIP_MODEL_ID, defaultEnabledModelIds, } from '@kortix/llm-catalog';
4
15
  import { useCallback, useMemo, useSyncExternalStore } from 'react';
16
+ import { safeSetItem } from '../platform/storage/managed-storage.js';
5
17
  import { createModelLookup } from './model-lookup.js';
6
18
  import { shouldSetSessionAgentName } from './session-agent-name-guard.js';
7
19
  // ── Gateway wire-model ⟷ ModelKey conversion ───────────────────────────────
@@ -177,59 +189,25 @@ export function hasUsableModel(allModels, opts) {
177
189
  export function isDefaultVisible(model) {
178
190
  return DEFAULT_VISIBLE_MODEL_IDS.has(model.modelID);
179
191
  }
180
- function isWithinMonths(dateStr, months) {
181
- if (!dateStr)
182
- return false;
183
- try {
184
- const date = new Date(dateStr);
185
- if (Number.isNaN(date.getTime()))
186
- return false;
187
- const now = new Date();
188
- const diffMs = Math.abs(now.getTime() - date.getTime());
189
- const diffMonths = diffMs / (1000 * 60 * 60 * 24 * 30.44);
190
- return diffMonths < months;
191
- }
192
- catch {
193
- return false;
194
- }
195
- }
196
192
  /**
197
- * Compute "latest" models: models released within 6 months,
198
- * grouped by provider then family, newest per family wins.
193
+ * "Latest" models, keyed `providerID:modelID` for the store's lookup maps.
194
+ *
195
+ * The RULE itself lives in `@kortix/llm-catalog` — the gateway enforces the
196
+ * same default set server-side, and two copies of "newest per family within
197
+ * the window" is exactly how the picker and "Manage models" drifted apart.
198
+ * This is only the key-shape adapter.
199
199
  */
200
200
  export function computeLatestSet(models) {
201
- // Filter to recent models (within 6 months)
202
- const recent = models.filter((m) => isWithinMonths(m.releaseDate, 6));
203
- // Group by provider
204
- const byProvider = new Map();
205
- for (const m of recent) {
206
- const list = byProvider.get(m.providerID) || [];
207
- list.push(m);
208
- byProvider.set(m.providerID, list);
209
- }
210
- const latestKeys = new Set();
211
- for (const [, providerModels] of byProvider) {
212
- // Group by family
213
- const byFamily = new Map();
214
- for (const m of providerModels) {
215
- const family = m.family || m.modelID;
216
- const list = byFamily.get(family) || [];
217
- list.push(m);
218
- byFamily.set(family, list);
219
- }
220
- // Pick newest per family
221
- for (const [, familyModels] of byFamily) {
222
- familyModels.sort((a, b) => {
223
- const da = a.releaseDate ? new Date(a.releaseDate).getTime() : 0;
224
- const db = b.releaseDate ? new Date(b.releaseDate).getTime() : 0;
225
- return db - da; // newest first
226
- });
227
- if (familyModels[0]) {
228
- latestKeys.add(`${familyModels[0].providerID}:${familyModels[0].modelID}`);
229
- }
230
- }
231
- }
232
- return latestKeys;
201
+ return defaultEnabledModelIds(models.map((m) => ({
202
+ // Feed the store's own composite key through as the candidate id so the
203
+ // result needs no lossy id → model lookup on the way back out.
204
+ id: `${m.providerID}:${m.modelID}`,
205
+ released: m.releaseDate,
206
+ family: m.family,
207
+ // `provider` is the real upstream under the gateway (every model is
208
+ // served as `kortix`); for a native provider it IS the providerID.
209
+ provider: m.provider ?? m.providerID,
210
+ })));
233
211
  }
234
212
  // ============================================================================
235
213
  // Hook
@@ -1 +1 @@
1
- {"version":3,"file":"use-model-store.js","sourceRoot":"","sources":["../../src/react/use-model-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-model-store.js","sourceRoot":"","sources":["../../src/react/use-model-store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"handle-event.d.ts","sourceRoot":"","sources":["../../../src/react/use-opencode-events/handle-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EACV,KAAK,IAAI,gBAAgB,EACzB,iBAAiB,EACjB,eAAe,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUvC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAA0B,KAAK,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AAYjH,OAAO,KAAK,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEvE,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;IACrC,cAAc,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClD,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAChD,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;IAC5C,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,wBAAwB,EAAE,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAC9D,yBAAyB,EAAE,SAAS,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;IACpF,4BAA4B,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IACpD,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxF,WAiC6B,aAAa,UA0a1C"}
1
+ {"version":3,"file":"handle-event.d.ts","sourceRoot":"","sources":["../../../src/react/use-opencode-events/handle-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EACV,KAAK,IAAI,gBAAgB,EACzB,iBAAiB,EACjB,eAAe,EAChB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUvC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,iDAAiD,CAAC;AAYzD,OAAO,KAAK,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEvE,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE;IACvC,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;IACrC,cAAc,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClD,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAChD,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,WAAW,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;IAC5C,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,wBAAwB,EAAE,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAC9D,yBAAyB,EAAE,SAAS,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;IACpF,4BAA4B,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;IACpD,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxF,WAmC6B,aAAa,UAqe1C"}
@@ -2,7 +2,7 @@ import { infoToast, notifyPermissionRequest, notifyQuestion, notifySessionError,
2
2
  import { deleteSessionFromIDB } from '../../browser/cache/idb-sync-cache.js';
3
3
  import { useSyncStore } from '../../browser/stores/sync-store.js';
4
4
  import { getClient } from '../../core/runtime/client.js';
5
- import { SESSION_SYNC_PAGE_SIZE } from '../../core/session-sync/session-sync-controller.js';
5
+ import { SESSION_SYNC_PAGE_SIZE, } from '../../core/session-sync/session-sync-controller.js';
6
6
  import { fileContentKeys, fileListKeys, gitStatusKeys } from '../file-keys.js';
7
7
  import { ptyKeys } from '../use-opencode-pty.js';
8
8
  import { opencodeKeys } from '../use-opencode-sessions/index.js';
@@ -11,14 +11,15 @@ import { asStringOrUndefined, looksLikeAbortError, readSessionInfo, refetchKorti
11
11
  /** Builds the SSE event handler; all closure dependencies are injected. */
12
12
  export function createEventHandler(deps) {
13
13
  const { queryClient, client, applySyncEvent, stopCompaction, addPermission, removePermission, addQuestion, removeQuestion, normalizeDiagnosticPaths, markSessionAbortedLocally, fetchLspDiagnosticsDebounced, } = deps;
14
- const reconcileTail = deps.reconcileSessionTail ?? (async (sessionID) => {
15
- const result = await client.session.messages({
16
- sessionID,
17
- limit: SESSION_SYNC_PAGE_SIZE,
14
+ const reconcileTail = deps.reconcileSessionTail ??
15
+ (async (sessionID) => {
16
+ const result = await client.session.messages({
17
+ sessionID,
18
+ limit: SESSION_SYNC_PAGE_SIZE,
19
+ });
20
+ if (result.data)
21
+ useSyncStore.getState().hydrate(sessionID, result.data);
18
22
  });
19
- if (result.data)
20
- useSyncStore.getState().hydrate(sessionID, result.data);
21
- });
22
23
  // Helper: look up a session title from the React Query cache for notifications
23
24
  function getSessionTitle(sessionID) {
24
25
  const sessions = queryClient.getQueryData(opencodeKeys.sessions());
@@ -27,7 +28,7 @@ export function createEventHandler(deps) {
27
28
  if (s?.title)
28
29
  return s.title;
29
30
  }
30
- const session = queryClient.getQueryData(opencodeKeys.session(sessionID));
31
+ const session = queryClient.getQueryData(opencodeKeys.runtimeSession(sessionID));
31
32
  return session?.title || undefined;
32
33
  }
33
34
  function handleEvent(event) {
@@ -75,7 +76,7 @@ export function createEventHandler(deps) {
75
76
  }
76
77
  return [info, ...old].sort((a, b) => b.time.updated - a.time.updated);
77
78
  });
78
- queryClient.setQueryData(opencodeKeys.session(info.id), info);
79
+ queryClient.setQueryData(opencodeKeys.runtimeSession(info.id), info);
79
80
  refetchKortixSessionMirrors(queryClient);
80
81
  }
81
82
  break;
@@ -89,11 +90,11 @@ export function createEventHandler(deps) {
89
90
  const prevTitle = queryClient
90
91
  .getQueryData(opencodeKeys.sessions())
91
92
  ?.find((s) => s.id === info.id)?.title ??
92
- queryClient.getQueryData(opencodeKeys.session(info.id))?.title ??
93
+ queryClient.getQueryData(opencodeKeys.runtimeSession(info.id))?.title ??
93
94
  null;
94
95
  const titleChanged = !!info.title && info.title !== prevTitle;
95
96
  // Only update individual session cache (cheap, targeted)
96
- queryClient.setQueryData(opencodeKeys.session(info.id), info);
97
+ queryClient.setQueryData(opencodeKeys.runtimeSession(info.id), info);
97
98
  // Update session list only if the session actually changed
98
99
  queryClient.setQueryData(opencodeKeys.sessions(), (old) => {
99
100
  if (!old)
@@ -104,8 +105,7 @@ export function createEventHandler(deps) {
104
105
  // Shallow check: skip only if BOTH the timestamp and the title are
105
106
  // unchanged. Title alone can flip (opencode auto-titles) without a
106
107
  // perceptible time bump, and dropping that would keep the tab stale.
107
- if (old[idx].time.updated === info.time.updated &&
108
- old[idx].title === info.title)
108
+ if (old[idx].time.updated === info.time.updated && old[idx].title === info.title)
109
109
  return old;
110
110
  const next = [...old];
111
111
  next[idx] = info;
@@ -127,8 +127,12 @@ export function createEventHandler(deps) {
127
127
  return old;
128
128
  return old.filter((s) => s.id !== info.id);
129
129
  });
130
- queryClient.removeQueries({ queryKey: opencodeKeys.session(info.id) });
131
- queryClient.removeQueries({ queryKey: opencodeKeys.messages(info.id) });
130
+ queryClient.removeQueries({
131
+ queryKey: opencodeKeys.runtimeSession(info.id),
132
+ });
133
+ queryClient.removeQueries({
134
+ queryKey: opencodeKeys.runtimeMessages(info.id),
135
+ });
132
136
  deleteSessionFromIDB(info.id);
133
137
  }
134
138
  break;
@@ -146,7 +150,7 @@ export function createEventHandler(deps) {
146
150
  .then((res) => {
147
151
  if (res.data) {
148
152
  const session = res.data;
149
- queryClient.setQueryData(opencodeKeys.session(sessionID), session);
153
+ queryClient.setQueryData(opencodeKeys.runtimeSession(sessionID), session);
150
154
  // Also update in session list
151
155
  queryClient.setQueryData(opencodeKeys.sessions(), (old) => {
152
156
  if (!old)
@@ -176,8 +180,14 @@ export function createEventHandler(deps) {
176
180
  // Agent finished editing files — refresh the Changes panel.
177
181
  // Nothing else invalidates git status for agent-driven edits,
178
182
  // so without this the panel shows stale diff state.
179
- queryClient.invalidateQueries({ queryKey: gitStatusKeys.all, type: 'active' });
180
- queryClient.invalidateQueries({ queryKey: fileListKeys.all, type: 'active' });
183
+ queryClient.invalidateQueries({
184
+ queryKey: gitStatusKeys.all,
185
+ type: 'active',
186
+ });
187
+ queryClient.invalidateQueries({
188
+ queryKey: fileListKeys.all,
189
+ type: 'active',
190
+ });
181
191
  }
182
192
  }
183
193
  break;
@@ -191,8 +201,14 @@ export function createEventHandler(deps) {
191
201
  // Agent finished editing files — refresh the Changes panel.
192
202
  // Nothing else invalidates git status for agent-driven edits,
193
203
  // so without this the panel shows stale diff state.
194
- queryClient.invalidateQueries({ queryKey: gitStatusKeys.all, type: 'active' });
195
- queryClient.invalidateQueries({ queryKey: fileListKeys.all, type: 'active' });
204
+ queryClient.invalidateQueries({
205
+ queryKey: gitStatusKeys.all,
206
+ type: 'active',
207
+ });
208
+ queryClient.invalidateQueries({
209
+ queryKey: fileListKeys.all,
210
+ type: 'active',
211
+ });
196
212
  }
197
213
  }
198
214
  break;
@@ -216,7 +232,7 @@ export function createEventHandler(deps) {
216
232
  // 2. Some error paths (model-not-found, agent-not-found) never
217
233
  // emit message.updated with .error at all
218
234
  // 3. Polling can race and overwrite the error from message.updated
219
- const key = opencodeKeys.messages(sessionID);
235
+ const key = opencodeKeys.runtimeMessages(sessionID);
220
236
  queryClient.cancelQueries({ queryKey: key });
221
237
  queryClient.setQueryData(key, (old) => {
222
238
  if (!old || old.length === 0)
@@ -292,9 +308,7 @@ export function createEventHandler(deps) {
292
308
  if (props.id && props.sessionID) {
293
309
  addQuestion(props);
294
310
  // Fire browser notification for questions needing user input
295
- const questionText = props.questions[0]?.question ||
296
- props.questions[0]?.header ||
297
- 'Kortix needs your input';
311
+ const questionText = props.questions[0]?.question || props.questions[0]?.header || 'Kortix needs your input';
298
312
  notifyQuestion(props.sessionID, questionText, getSessionTitle(props.sessionID));
299
313
  }
300
314
  break;
@@ -341,17 +355,38 @@ export function createEventHandler(deps) {
341
355
  // tools, and commands. Invalidate all cached app metadata so
342
356
  // the UI picks up newly installed marketplace components or
343
357
  // agent-created skills/agents immediately.
344
- queryClient.invalidateQueries({ queryKey: opencodeKeys.sessions(), type: 'active' });
345
- queryClient.invalidateQueries({ queryKey: opencodeKeys.mcpStatus(), type: 'active' });
346
- queryClient.invalidateQueries({ queryKey: opencodeKeys.skills(), type: 'active' });
347
- queryClient.invalidateQueries({ queryKey: opencodeKeys.agents(), type: 'active' });
348
- queryClient.invalidateQueries({ queryKey: opencodeKeys.toolIds(), type: 'active' });
349
- queryClient.invalidateQueries({ queryKey: opencodeKeys.commands(), type: 'active' });
358
+ queryClient.invalidateQueries({
359
+ queryKey: opencodeKeys.sessions(),
360
+ type: 'active',
361
+ });
362
+ queryClient.invalidateQueries({
363
+ queryKey: opencodeKeys.mcpStatus(),
364
+ type: 'active',
365
+ });
366
+ queryClient.invalidateQueries({
367
+ queryKey: opencodeKeys.skills(),
368
+ type: 'active',
369
+ });
370
+ queryClient.invalidateQueries({
371
+ queryKey: opencodeKeys.agents(),
372
+ type: 'active',
373
+ });
374
+ queryClient.invalidateQueries({
375
+ queryKey: opencodeKeys.toolIds(),
376
+ type: 'active',
377
+ });
378
+ queryClient.invalidateQueries({
379
+ queryKey: opencodeKeys.commands(),
380
+ type: 'active',
381
+ });
350
382
  break;
351
383
  }
352
384
  // ---- LSP updated ----
353
385
  case 'lsp.updated': {
354
- queryClient.invalidateQueries({ queryKey: ['opencode', 'lsp'], type: 'active' });
386
+ queryClient.invalidateQueries({
387
+ queryKey: ['opencode', 'lsp'],
388
+ type: 'active',
389
+ });
355
390
  // A new LSP client connected — fetch diagnostics after a short
356
391
  // delay to give the language server time to produce initial results.
357
392
  fetchLspDiagnosticsDebounced.current();
@@ -369,8 +404,14 @@ export function createEventHandler(deps) {
369
404
  case 'mcp.tools.changed': {
370
405
  // MCP server tools were added/removed/changed — refresh status + tool lists.
371
406
  // Only refetch if queries are actively mounted (type: 'active').
372
- queryClient.refetchQueries({ queryKey: opencodeKeys.mcpStatus(), type: 'active' });
373
- queryClient.refetchQueries({ queryKey: opencodeKeys.toolIds(), type: 'active' });
407
+ queryClient.refetchQueries({
408
+ queryKey: opencodeKeys.mcpStatus(),
409
+ type: 'active',
410
+ });
411
+ queryClient.refetchQueries({
412
+ queryKey: opencodeKeys.toolIds(),
413
+ type: 'active',
414
+ });
374
415
  break;
375
416
  }
376
417
  // ---- PTY events ----
@@ -378,17 +419,29 @@ export function createEventHandler(deps) {
378
419
  case 'pty.updated':
379
420
  case 'pty.exited':
380
421
  case 'pty.deleted': {
381
- queryClient.invalidateQueries({ queryKey: ptyKeys.listPrefix(), type: 'active' });
422
+ queryClient.invalidateQueries({
423
+ queryKey: ptyKeys.listPrefix(),
424
+ type: 'active',
425
+ });
382
426
  break;
383
427
  }
384
428
  // ---- Worktree events — disabled for now ----
385
429
  case 'worktree.ready': {
386
- queryClient.invalidateQueries({ queryKey: opencodeKeys.worktrees(), type: 'active' });
387
- queryClient.invalidateQueries({ queryKey: opencodeKeys.projects(), type: 'active' });
430
+ queryClient.invalidateQueries({
431
+ queryKey: opencodeKeys.worktrees(),
432
+ type: 'active',
433
+ });
434
+ queryClient.invalidateQueries({
435
+ queryKey: opencodeKeys.projects(),
436
+ type: 'active',
437
+ });
388
438
  break;
389
439
  }
390
440
  case 'worktree.failed': {
391
- queryClient.invalidateQueries({ queryKey: opencodeKeys.worktrees(), type: 'active' });
441
+ queryClient.invalidateQueries({
442
+ queryKey: opencodeKeys.worktrees(),
443
+ type: 'active',
444
+ });
392
445
  break;
393
446
  }
394
447
  // ---- Project updated ----
@@ -402,10 +455,19 @@ export function createEventHandler(deps) {
402
455
  // ---- File edited (outside agent, e.g. user edits in editor) ----
403
456
  case 'file.edited': {
404
457
  const fileProps = event.properties;
405
- queryClient.invalidateQueries({ queryKey: fileListKeys.all, type: 'active' });
406
- queryClient.invalidateQueries({ queryKey: gitStatusKeys.all, type: 'active' });
458
+ queryClient.invalidateQueries({
459
+ queryKey: fileListKeys.all,
460
+ type: 'active',
461
+ });
462
+ queryClient.invalidateQueries({
463
+ queryKey: gitStatusKeys.all,
464
+ type: 'active',
465
+ });
407
466
  if (fileProps.file) {
408
- queryClient.invalidateQueries({ queryKey: fileContentKeys.all, type: 'active' });
467
+ queryClient.invalidateQueries({
468
+ queryKey: fileContentKeys.all,
469
+ type: 'active',
470
+ });
409
471
  }
410
472
  break;
411
473
  }