@kortix/sdk 0.12.5 → 0.12.7
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.
- package/README.md +29 -2
- package/dist/browser/stores/sync-store/stream-cache.d.ts +29 -0
- package/dist/browser/stores/sync-store/stream-cache.d.ts.map +1 -1
- package/dist/browser/stores/sync-store/stream-cache.js +127 -18
- package/dist/browser/stores/sync-store/stream-cache.js.map +1 -1
- package/dist/core/client/kortix.d.ts +57 -12
- package/dist/core/client/kortix.d.ts.map +1 -1
- package/dist/core/client/kortix.js +40 -1
- package/dist/core/client/kortix.js.map +1 -1
- package/dist/core/http/api/errors.d.ts +26 -0
- package/dist/core/http/api/errors.d.ts.map +1 -1
- package/dist/core/http/api/errors.js +44 -0
- package/dist/core/http/api/errors.js.map +1 -1
- package/dist/core/http/api-client.d.ts +37 -1
- package/dist/core/http/api-client.d.ts.map +1 -1
- package/dist/core/http/api-client.js +92 -17
- package/dist/core/http/api-client.js.map +1 -1
- package/dist/core/http/opencode-errors.d.ts.map +1 -1
- package/dist/core/http/opencode-errors.js +19 -0
- package/dist/core/http/opencode-errors.js.map +1 -1
- package/dist/core/rest/platform-client/host-boundary.d.ts +17 -0
- package/dist/core/rest/platform-client/host-boundary.d.ts.map +1 -1
- package/dist/core/rest/platform-client/host-boundary.js +21 -0
- package/dist/core/rest/platform-client/host-boundary.js.map +1 -1
- package/dist/core/rest/projects-client/apps.d.ts +216 -0
- package/dist/core/rest/projects-client/apps.d.ts.map +1 -0
- package/dist/core/rest/projects-client/apps.js +105 -0
- package/dist/core/rest/projects-client/apps.js.map +1 -0
- package/dist/core/rest/projects-client/audit.d.ts +39 -2
- package/dist/core/rest/projects-client/audit.d.ts.map +1 -1
- package/dist/core/rest/projects-client/audit.js +46 -2
- package/dist/core/rest/projects-client/audit.js.map +1 -1
- package/dist/core/rest/projects-client/connectors.d.ts +88 -3
- package/dist/core/rest/projects-client/connectors.d.ts.map +1 -1
- package/dist/core/rest/projects-client/connectors.js +43 -6
- package/dist/core/rest/projects-client/connectors.js.map +1 -1
- package/dist/core/rest/projects-client/iam.d.ts +3 -1
- package/dist/core/rest/projects-client/iam.d.ts.map +1 -1
- package/dist/core/rest/projects-client/iam.js +2 -0
- package/dist/core/rest/projects-client/iam.js.map +1 -1
- package/dist/core/rest/projects-client/index.d.ts +1 -0
- package/dist/core/rest/projects-client/index.d.ts.map +1 -1
- package/dist/core/rest/projects-client/index.js +1 -0
- package/dist/core/rest/projects-client/index.js.map +1 -1
- package/dist/core/rest/projects-client/projects.d.ts +136 -15
- package/dist/core/rest/projects-client/projects.d.ts.map +1 -1
- package/dist/core/rest/projects-client/projects.js +180 -5
- package/dist/core/rest/projects-client/projects.js.map +1 -1
- package/dist/core/rest/projects-client/sessions.d.ts +50 -5
- package/dist/core/rest/projects-client/sessions.d.ts.map +1 -1
- package/dist/core/rest/projects-client/sessions.js +91 -7
- package/dist/core/rest/projects-client/sessions.js.map +1 -1
- package/dist/core/turns/view-model.d.ts +15 -0
- package/dist/core/turns/view-model.d.ts.map +1 -1
- package/dist/core/turns/view-model.js +19 -2
- package/dist/core/turns/view-model.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/kortix.esm.min.js +43 -31
- package/dist/kortix.global.js +43 -31
- package/dist/react/index.d.ts +9 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +14 -0
- package/dist/react/index.js.map +1 -1
- package/dist/react/invalidate-project.d.ts +76 -0
- package/dist/react/invalidate-project.d.ts.map +1 -0
- package/dist/react/invalidate-project.js +72 -0
- package/dist/react/invalidate-project.js.map +1 -0
- package/dist/react/provider-refresh.d.ts.map +1 -1
- package/dist/react/provider-refresh.js +12 -3
- package/dist/react/provider-refresh.js.map +1 -1
- package/dist/react/query-contracts.d.ts +112 -0
- package/dist/react/query-contracts.d.ts.map +1 -0
- package/dist/react/query-contracts.js +100 -0
- package/dist/react/query-contracts.js.map +1 -0
- package/dist/react/query-keys.d.ts +251 -0
- package/dist/react/query-keys.d.ts.map +1 -0
- package/dist/react/query-keys.js +249 -0
- package/dist/react/query-keys.js.map +1 -0
- package/dist/react/session-title-sync.d.ts.map +1 -1
- package/dist/react/session-title-sync.js +14 -4
- package/dist/react/session-title-sync.js.map +1 -1
- package/dist/react/use-admin-accounts.d.ts +85 -0
- package/dist/react/use-admin-accounts.d.ts.map +1 -1
- package/dist/react/use-admin-accounts.js +100 -0
- package/dist/react/use-admin-accounts.js.map +1 -1
- package/dist/react/use-admin-activity-analytics.d.ts +91 -0
- package/dist/react/use-admin-activity-analytics.d.ts.map +1 -0
- package/dist/react/use-admin-activity-analytics.js +83 -0
- package/dist/react/use-admin-activity-analytics.js.map +1 -0
- package/dist/react/use-admin-projects.d.ts +50 -0
- package/dist/react/use-admin-projects.d.ts.map +1 -0
- package/dist/react/use-admin-projects.js +28 -0
- package/dist/react/use-admin-projects.js.map +1 -0
- package/dist/react/use-canonical-opencode-session.d.ts.map +1 -1
- package/dist/react/use-canonical-opencode-session.js +12 -7
- package/dist/react/use-canonical-opencode-session.js.map +1 -1
- package/dist/react/use-feature-flag.d.ts +23 -0
- package/dist/react/use-feature-flag.d.ts.map +1 -0
- package/dist/react/use-feature-flag.js +32 -0
- package/dist/react/use-feature-flag.js.map +1 -0
- package/dist/react/use-gateway-catalog-sync.d.ts.map +1 -1
- package/dist/react/use-gateway-catalog-sync.js +5 -2
- package/dist/react/use-gateway-catalog-sync.js.map +1 -1
- package/dist/react/use-model-defaults.d.ts.map +1 -1
- package/dist/react/use-model-defaults.js +3 -1
- package/dist/react/use-model-defaults.js.map +1 -1
- package/dist/react/use-model-enablement.d.ts.map +1 -1
- package/dist/react/use-model-enablement.js +6 -2
- package/dist/react/use-model-enablement.js.map +1 -1
- package/dist/react/use-opencode-events/handle-event.d.ts +6 -0
- package/dist/react/use-opencode-events/handle-event.d.ts.map +1 -1
- package/dist/react/use-opencode-events/handle-event.js +11 -5
- package/dist/react/use-opencode-events/handle-event.js.map +1 -1
- package/dist/react/use-opencode-events/helpers.d.ts +44 -1
- package/dist/react/use-opencode-events/helpers.d.ts.map +1 -1
- package/dist/react/use-opencode-events/helpers.js +88 -6
- package/dist/react/use-opencode-events/helpers.js.map +1 -1
- package/dist/react/use-opencode-events/index.d.ts.map +1 -1
- package/dist/react/use-opencode-events/index.js +8 -0
- package/dist/react/use-opencode-events/index.js.map +1 -1
- package/dist/react/use-opencode-sessions/agents.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/agents.js +10 -1
- package/dist/react/use-opencode-sessions/agents.js.map +1 -1
- package/dist/react/use-opencode-sessions/providers.d.ts.map +1 -1
- package/dist/react/use-opencode-sessions/providers.js +9 -2
- package/dist/react/use-opencode-sessions/providers.js.map +1 -1
- package/dist/react/use-project-apps.d.ts +410 -0
- package/dist/react/use-project-apps.d.ts.map +1 -0
- package/dist/react/use-project-apps.js +98 -0
- package/dist/react/use-project-apps.js.map +1 -0
- package/dist/react/use-project-config.d.ts +7 -0
- package/dist/react/use-project-config.d.ts.map +1 -1
- package/dist/react/use-project-config.js +14 -4
- package/dist/react/use-project-config.js.map +1 -1
- package/dist/react/use-project-models.d.ts.map +1 -1
- package/dist/react/use-project-models.js +8 -2
- package/dist/react/use-project-models.js.map +1 -1
- package/dist/react/use-project-name.d.ts +23 -0
- package/dist/react/use-project-name.d.ts.map +1 -0
- package/dist/react/use-project-name.js +44 -0
- package/dist/react/use-project-name.js.map +1 -0
- package/dist/react/use-project-secrets.d.ts +5 -2
- package/dist/react/use-project-secrets.d.ts.map +1 -1
- package/dist/react/use-project-secrets.js +8 -2
- package/dist/react/use-project-secrets.js.map +1 -1
- package/dist/react/use-project-session.d.ts +40 -0
- package/dist/react/use-project-session.d.ts.map +1 -0
- package/dist/react/use-project-session.js +49 -0
- package/dist/react/use-project-session.js.map +1 -0
- package/dist/react/use-project-triggers.d.ts +4 -2
- package/dist/react/use-project-triggers.d.ts.map +1 -1
- package/dist/react/use-project-triggers.js +7 -2
- package/dist/react/use-project-triggers.js.map +1 -1
- package/dist/react/use-session-phase.d.ts +23 -0
- package/dist/react/use-session-phase.d.ts.map +1 -0
- package/dist/react/use-session-phase.js +23 -0
- package/dist/react/use-session-phase.js.map +1 -0
- package/dist/react/use-session.d.ts +117 -1
- package/dist/react/use-session.d.ts.map +1 -1
- package/dist/react/use-session.js +222 -21
- package/dist/react/use-session.js.map +1 -1
- package/package.json +2 -2
package/dist/react/index.d.ts
CHANGED
|
@@ -9,9 +9,12 @@ export { useProjectSecrets, projectSecretsKey } from './use-project-secrets.js';
|
|
|
9
9
|
export { useProjectTriggers, projectTriggersKey } from './use-project-triggers.js';
|
|
10
10
|
export { useChangeRequests, changeRequestsKey } from './use-change-requests.js';
|
|
11
11
|
export { useGatewayRoutingPolicy, gatewayRoutingPolicyKey } from './use-gateway-routing-policy.js';
|
|
12
|
+
export { useProjectApps, useAppDeployments, useAppAccess, projectAppsKey, appDeploymentsKey, } from './use-project-apps.js';
|
|
12
13
|
export { NoCompactionModelError } from './use-opencode-sessions/no-compaction-model-error.js';
|
|
13
14
|
export * from './use-admin-accounts.js';
|
|
15
|
+
export * from './use-admin-projects.js';
|
|
14
16
|
export * from './use-admin-analytics.js';
|
|
17
|
+
export * from './use-admin-activity-analytics.js';
|
|
15
18
|
export * from './use-admin-feedback.js';
|
|
16
19
|
export * from './use-system-status.js';
|
|
17
20
|
export * from './use-ops-overview.js';
|
|
@@ -22,4 +25,10 @@ export * from './use-admin-sandboxes.js';
|
|
|
22
25
|
export * from './use-authenticated-preview-url.js';
|
|
23
26
|
export * from './run-pty-command.js';
|
|
24
27
|
export * from './runtime-actions.js';
|
|
28
|
+
export * from './query-keys.js';
|
|
29
|
+
export * from './query-contracts.js';
|
|
30
|
+
export * from './use-project-name.js';
|
|
31
|
+
export * from './use-project-session.js';
|
|
32
|
+
export * from './invalidate-project.js';
|
|
33
|
+
export * from './use-feature-flag.js';
|
|
25
34
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAKA,cAAc,YAAY,CAAC;AAI3B,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,SAAS,GACf,MAAM,eAAe,CAAC;AAKvB,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,KAAK,cAAc,GACpB,MAAM,yBAAyB,CAAC;AAOjC,OAAO,EACL,eAAe,EACf,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,sBAAsB,GAC5B,MAAM,6BAA6B,CAAC;AAOrC,cAAc,qBAAqB,CAAC;AAMpC,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,4BAA4B,EAC5B,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAC;AAOtF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAKA,cAAc,YAAY,CAAC;AAI3B,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,SAAS,GACf,MAAM,eAAe,CAAC;AAKvB,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,KAAK,cAAc,GACpB,MAAM,yBAAyB,CAAC;AAOjC,OAAO,EACL,eAAe,EACf,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,sBAAsB,GAC5B,MAAM,6BAA6B,CAAC;AAOrC,cAAc,qBAAqB,CAAC;AAMpC,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,4BAA4B,EAC5B,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,oBAAoB,GAC1B,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EAAE,YAAY,EAAE,KAAK,QAAQ,EAAE,WAAW,EAAE,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAC;AAOtF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAChG,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAOlC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
|
package/dist/react/index.js
CHANGED
|
@@ -43,13 +43,16 @@ export { useProjectSecrets, projectSecretsKey } from './use-project-secrets.js';
|
|
|
43
43
|
export { useProjectTriggers, projectTriggersKey } from './use-project-triggers.js';
|
|
44
44
|
export { useChangeRequests, changeRequestsKey } from './use-change-requests.js';
|
|
45
45
|
export { useGatewayRoutingPolicy, gatewayRoutingPolicyKey } from './use-gateway-routing-policy.js';
|
|
46
|
+
export { useProjectApps, useAppDeployments, useAppAccess, projectAppsKey, appDeploymentsKey, } from './use-project-apps.js';
|
|
46
47
|
// The expected "no compaction model configured" configuration state thrown by
|
|
47
48
|
// `useSummarizeOpenCodeSession`'s mutation when every model-resolution fallback
|
|
48
49
|
// tier fails. Re-exported here so hosts + the telemetry noise gate can
|
|
49
50
|
// `instanceof`-match it without reaching into the hook's internal path.
|
|
50
51
|
export { NoCompactionModelError } from './use-opencode-sessions/no-compaction-model-error.js';
|
|
51
52
|
export * from './use-admin-accounts.js';
|
|
53
|
+
export * from './use-admin-projects.js';
|
|
52
54
|
export * from './use-admin-analytics.js';
|
|
55
|
+
export * from './use-admin-activity-analytics.js';
|
|
53
56
|
export * from './use-admin-feedback.js';
|
|
54
57
|
export * from './use-system-status.js';
|
|
55
58
|
export * from './use-ops-overview.js';
|
|
@@ -60,4 +63,15 @@ export * from './use-admin-sandboxes.js';
|
|
|
60
63
|
export * from './use-authenticated-preview-url.js';
|
|
61
64
|
export * from './run-pty-command.js';
|
|
62
65
|
export * from './runtime-actions.js';
|
|
66
|
+
// The client-cache-unification `qk` key factory (rooted at `'kx'`, disjoint
|
|
67
|
+
// from `kortixKeys`'s `'kortix'` root above) + its four freshness tiers, the
|
|
68
|
+
// single `useProjectName` accessor, and the invalidation/optimistic-write
|
|
69
|
+
// helpers that keep the projects-list and project-detail caches in sync. See
|
|
70
|
+
// `query-keys.ts` for why the root segment is `'kx'` and not `'kortix'`.
|
|
71
|
+
export * from './query-keys.js';
|
|
72
|
+
export * from './query-contracts.js';
|
|
73
|
+
export * from './use-project-name.js';
|
|
74
|
+
export * from './use-project-session.js';
|
|
75
|
+
export * from './invalidate-project.js';
|
|
76
|
+
export * from './use-feature-flag.js';
|
|
63
77
|
//# sourceMappingURL=index.js.map
|
package/dist/react/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,0EAA0E;AAC1E,gFAAgF;AAChF,qEAAqE;AACrE,cAAc,YAAY,CAAC;AAE3B,+EAA+E;AAC/E,qEAAqE;AACrE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,iBAAiB,GAKlB,MAAM,eAAe,CAAC;AAEvB,qEAAqE;AACrE,8EAA8E;AAC9E,4EAA4E;AAC5E,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,GAExB,MAAM,yBAAyB,CAAC;AAEjC,8EAA8E;AAC9E,0EAA0E;AAC1E,uEAAuE;AACvE,iEAAiE;AACjE,8BAA8B;AAC9B,OAAO,EACL,eAAe,GAMhB,MAAM,6BAA6B,CAAC;AAErC,0EAA0E;AAC1E,8DAA8D;AAC9D,sEAAsE;AACtE,yEAAyE;AACzE,4EAA4E;AAC5E,cAAc,qBAAqB,CAAC;AAEpC,0EAA0E;AAC1E,4EAA4E;AAC5E,2EAA2E;AAC3E,uEAAuE;AACvE,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,4BAA4B,EAC5B,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,GAajB,MAAM,oBAAoB,CAAC;AAE5B,yEAAyE;AACzE,mEAAmE;AACnE,2EAA2E;AAC3E,yEAAyE;AACzE,uEAAuE;AACvE,yCAAyC;AACzC,OAAO,EAAE,YAAY,EAAiB,WAAW,EAAsB,MAAM,QAAQ,CAAC;AAEtF,uEAAuE;AACvE,uEAAuE;AACvE,yEAAyE;AACzE,0EAA0E;AAC1E,oDAAoD;AACpD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,0EAA0E;AAC1E,gFAAgF;AAChF,qEAAqE;AACrE,cAAc,YAAY,CAAC;AAE3B,+EAA+E;AAC/E,qEAAqE;AACrE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,iBAAiB,GAKlB,MAAM,eAAe,CAAC;AAEvB,qEAAqE;AACrE,8EAA8E;AAC9E,4EAA4E;AAC5E,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,GAExB,MAAM,yBAAyB,CAAC;AAEjC,8EAA8E;AAC9E,0EAA0E;AAC1E,uEAAuE;AACvE,iEAAiE;AACjE,8BAA8B;AAC9B,OAAO,EACL,eAAe,GAMhB,MAAM,6BAA6B,CAAC;AAErC,0EAA0E;AAC1E,8DAA8D;AAC9D,sEAAsE;AACtE,yEAAyE;AACzE,4EAA4E;AAC5E,cAAc,qBAAqB,CAAC;AAEpC,0EAA0E;AAC1E,4EAA4E;AAC5E,2EAA2E;AAC3E,uEAAuE;AACvE,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,4BAA4B,EAC5B,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,GAajB,MAAM,oBAAoB,CAAC;AAE5B,yEAAyE;AACzE,mEAAmE;AACnE,2EAA2E;AAC3E,yEAAyE;AACzE,uEAAuE;AACvE,yCAAyC;AACzC,OAAO,EAAE,YAAY,EAAiB,WAAW,EAAsB,MAAM,QAAQ,CAAC;AAEtF,uEAAuE;AACvE,uEAAuE;AACvE,yEAAyE;AACzE,0EAA0E;AAC1E,oDAAoD;AACpD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAChG,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAE5B,8EAA8E;AAC9E,gFAAgF;AAChF,uEAAuE;AACvE,wEAAwE;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAElC,4EAA4E;AAC5E,6EAA6E;AAC7E,0EAA0E;AAC1E,6EAA6E;AAC7E,yEAAyE;AACzE,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import type { QueryClient, QueryKey } from '@tanstack/react-query';
|
|
2
|
+
/** Everything belonging to one project. Use after a write with broad effect. */
|
|
3
|
+
export declare function invalidateProject(qc: QueryClient, projectId: string): Promise<void>;
|
|
4
|
+
/**
|
|
5
|
+
* A project's NAME lives in two caches: every projects-LIST entry and the
|
|
6
|
+
* detail entry. Rename previously invalidated only `qk.projects.list()` — the
|
|
7
|
+
* single accountless slot — so the sidebar and the project home title
|
|
8
|
+
* disagreed until eviction. That was ALSO a second, narrower bug on top of
|
|
9
|
+
* the first: `qk.projects.list(accountId)` and `qk.projects.list()` are
|
|
10
|
+
* SIBLINGS under `qk.projects.scope()`, not parent and child (see
|
|
11
|
+
* `query-keys.ts`'s own warning about exactly this collision shape) — so
|
|
12
|
+
* invalidating `list()` alone never reached the account-scoped list every
|
|
13
|
+
* real project switcher actually reads. Reaching every list form needs the
|
|
14
|
+
* two-element `qk.projects.scope()` PREFIX, not the three-element `list()`
|
|
15
|
+
* key. Both invalidations, always, or the bug returns.
|
|
16
|
+
*/
|
|
17
|
+
export declare function invalidateProjectIdentity(qc: QueryClient, projectId: string): Promise<void>;
|
|
18
|
+
type ProjectsListEntry = {
|
|
19
|
+
project_id: string;
|
|
20
|
+
name: string;
|
|
21
|
+
};
|
|
22
|
+
type ProjectDetailEntry = {
|
|
23
|
+
project?: {
|
|
24
|
+
name?: string;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Exactly what `writeProjectNameOptimistically` overwrote, restorable with
|
|
29
|
+
* `restoreProjectName`. `lists` is an array, not a single entry, because the
|
|
30
|
+
* project can be cached under several account-scoped list keys at once — see
|
|
31
|
+
* `invalidateProjectIdentity`'s doc comment for why that's a prefix, not a
|
|
32
|
+
* single key. A key with no snapshot row was never cached at write time, and
|
|
33
|
+
* `restoreProjectName` will correctly leave it alone.
|
|
34
|
+
*/
|
|
35
|
+
export interface ProjectNameSnapshot {
|
|
36
|
+
detail: ProjectDetailEntry | undefined;
|
|
37
|
+
lists: Array<{
|
|
38
|
+
queryKey: QueryKey;
|
|
39
|
+
data: ProjectsListEntry[] | undefined;
|
|
40
|
+
}>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Paint the new name in the same frame the rename dialog closes, instead of a
|
|
44
|
+
* round-trip later. Callers still invalidate on settle; this only removes the
|
|
45
|
+
* visible lag. A missing cache entry is not an error — nothing to update yet.
|
|
46
|
+
*
|
|
47
|
+
* Returns a snapshot of exactly what it overwrote, so the caller can restore
|
|
48
|
+
* it with `restoreProjectName` if the mutation fails — see that function's
|
|
49
|
+
* doc comment for why a failed rename used to leave the optimistic name
|
|
50
|
+
* cached permanently. `setQueryData` needs an exact key, so the list side
|
|
51
|
+
* can't just target the `qk.projects.scope()` prefix directly — it fans out
|
|
52
|
+
* with `setQueriesData`, verified empirically to update every matching list
|
|
53
|
+
* entry and nothing outside the prefix (confirmed against the real TanStack
|
|
54
|
+
* engine: two sibling list keys both update, an unrelated
|
|
55
|
+
* `qk.project.detail` entry does not).
|
|
56
|
+
*/
|
|
57
|
+
export declare function writeProjectNameOptimistically(qc: QueryClient, projectId: string, name: string): ProjectNameSnapshot;
|
|
58
|
+
/**
|
|
59
|
+
* Put back exactly what `writeProjectNameOptimistically` overwrote. THE
|
|
60
|
+
* Critical-path fix: `onMutate` used to write the optimistic name but never
|
|
61
|
+
* snapshot what it overwrote, and `onError` only showed a toast — so a FAILED
|
|
62
|
+
* rename left the wrong name cached until `invalidateQueries` happened to hit
|
|
63
|
+
* a mounted observer, which (with `refetchOnMount: false`, before that was
|
|
64
|
+
* also fixed) it never did. The wrong name was permanent until a hard
|
|
65
|
+
* refresh.
|
|
66
|
+
*
|
|
67
|
+
* Restores each snapshotted list key individually rather than re-invalidating
|
|
68
|
+
* broadly: a key with no row in `snapshot.lists` was never cached at write
|
|
69
|
+
* time (or was populated by an unrelated mutation AFTER the snapshot), and
|
|
70
|
+
* this leaves it untouched rather than evicting data this rollback never saw.
|
|
71
|
+
* `setQueryData(key, undefined)` is a verified no-op (does not evict an
|
|
72
|
+
* existing entry), so a snapshot that captured nothing is safely a no-op too.
|
|
73
|
+
*/
|
|
74
|
+
export declare function restoreProjectName(qc: QueryClient, projectId: string, snapshot: ProjectNameSnapshot): void;
|
|
75
|
+
export {};
|
|
76
|
+
//# sourceMappingURL=invalidate-project.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalidate-project.d.ts","sourceRoot":"","sources":["../../src/react/invalidate-project.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGnE,gFAAgF;AAChF,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,yBAAyB,CAC7C,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,KAAK,iBAAiB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9D,KAAK,kBAAkB,GAAG;IAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACvC,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,IAAI,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;CAC7E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,8BAA8B,CAC5C,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,mBAAmB,CAkBrB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,mBAAmB,GAC5B,IAAI,CAKN"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { qk } from './query-keys.js';
|
|
2
|
+
/** Everything belonging to one project. Use after a write with broad effect. */
|
|
3
|
+
export async function invalidateProject(qc, projectId) {
|
|
4
|
+
await qc.invalidateQueries({ queryKey: qk.project.scope(projectId) });
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* A project's NAME lives in two caches: every projects-LIST entry and the
|
|
8
|
+
* detail entry. Rename previously invalidated only `qk.projects.list()` — the
|
|
9
|
+
* single accountless slot — so the sidebar and the project home title
|
|
10
|
+
* disagreed until eviction. That was ALSO a second, narrower bug on top of
|
|
11
|
+
* the first: `qk.projects.list(accountId)` and `qk.projects.list()` are
|
|
12
|
+
* SIBLINGS under `qk.projects.scope()`, not parent and child (see
|
|
13
|
+
* `query-keys.ts`'s own warning about exactly this collision shape) — so
|
|
14
|
+
* invalidating `list()` alone never reached the account-scoped list every
|
|
15
|
+
* real project switcher actually reads. Reaching every list form needs the
|
|
16
|
+
* two-element `qk.projects.scope()` PREFIX, not the three-element `list()`
|
|
17
|
+
* key. Both invalidations, always, or the bug returns.
|
|
18
|
+
*/
|
|
19
|
+
export async function invalidateProjectIdentity(qc, projectId) {
|
|
20
|
+
await Promise.all([
|
|
21
|
+
qc.invalidateQueries({ queryKey: qk.projects.scope() }),
|
|
22
|
+
qc.invalidateQueries({ queryKey: qk.project.detail(projectId) }),
|
|
23
|
+
]);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Paint the new name in the same frame the rename dialog closes, instead of a
|
|
27
|
+
* round-trip later. Callers still invalidate on settle; this only removes the
|
|
28
|
+
* visible lag. A missing cache entry is not an error — nothing to update yet.
|
|
29
|
+
*
|
|
30
|
+
* Returns a snapshot of exactly what it overwrote, so the caller can restore
|
|
31
|
+
* it with `restoreProjectName` if the mutation fails — see that function's
|
|
32
|
+
* doc comment for why a failed rename used to leave the optimistic name
|
|
33
|
+
* cached permanently. `setQueryData` needs an exact key, so the list side
|
|
34
|
+
* can't just target the `qk.projects.scope()` prefix directly — it fans out
|
|
35
|
+
* with `setQueriesData`, verified empirically to update every matching list
|
|
36
|
+
* entry and nothing outside the prefix (confirmed against the real TanStack
|
|
37
|
+
* engine: two sibling list keys both update, an unrelated
|
|
38
|
+
* `qk.project.detail` entry does not).
|
|
39
|
+
*/
|
|
40
|
+
export function writeProjectNameOptimistically(qc, projectId, name) {
|
|
41
|
+
const lists = qc.getQueriesData({ queryKey: qk.projects.scope() });
|
|
42
|
+
const snapshot = {
|
|
43
|
+
detail: qc.getQueryData(qk.project.detail(projectId)),
|
|
44
|
+
lists: lists.map(([queryKey, data]) => ({ queryKey, data })),
|
|
45
|
+
};
|
|
46
|
+
qc.setQueriesData({ queryKey: qk.projects.scope() }, (prev) => prev?.map((p) => (p.project_id === projectId ? { ...p, name } : p)));
|
|
47
|
+
qc.setQueryData(qk.project.detail(projectId), (prev) => prev?.project ? { ...prev, project: { ...prev.project, name } } : prev);
|
|
48
|
+
return snapshot;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Put back exactly what `writeProjectNameOptimistically` overwrote. THE
|
|
52
|
+
* Critical-path fix: `onMutate` used to write the optimistic name but never
|
|
53
|
+
* snapshot what it overwrote, and `onError` only showed a toast — so a FAILED
|
|
54
|
+
* rename left the wrong name cached until `invalidateQueries` happened to hit
|
|
55
|
+
* a mounted observer, which (with `refetchOnMount: false`, before that was
|
|
56
|
+
* also fixed) it never did. The wrong name was permanent until a hard
|
|
57
|
+
* refresh.
|
|
58
|
+
*
|
|
59
|
+
* Restores each snapshotted list key individually rather than re-invalidating
|
|
60
|
+
* broadly: a key with no row in `snapshot.lists` was never cached at write
|
|
61
|
+
* time (or was populated by an unrelated mutation AFTER the snapshot), and
|
|
62
|
+
* this leaves it untouched rather than evicting data this rollback never saw.
|
|
63
|
+
* `setQueryData(key, undefined)` is a verified no-op (does not evict an
|
|
64
|
+
* existing entry), so a snapshot that captured nothing is safely a no-op too.
|
|
65
|
+
*/
|
|
66
|
+
export function restoreProjectName(qc, projectId, snapshot) {
|
|
67
|
+
for (const { queryKey, data } of snapshot.lists) {
|
|
68
|
+
qc.setQueryData(queryKey, data);
|
|
69
|
+
}
|
|
70
|
+
qc.setQueryData(qk.project.detail(projectId), snapshot.detail);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=invalidate-project.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invalidate-project.js","sourceRoot":"","sources":["../../src/react/invalidate-project.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EAAe,EAAE,SAAiB;IACxE,MAAM,EAAE,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,EAAe,EACf,SAAiB;IAEjB,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,EAAE,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;QACvD,EAAE,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;KACjE,CAAC,CAAC;AACL,CAAC;AAkBD;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,8BAA8B,CAC5C,EAAe,EACf,SAAiB,EACjB,IAAY;IAEZ,MAAM,KAAK,GAAG,EAAE,CAAC,cAAc,CAAsB,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxF,MAAM,QAAQ,GAAwB;QACpC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAqB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;KAC7D,CAAC;IAEF,EAAE,CAAC,cAAc,CACf,EAAE,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,EACjC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC9E,CAAC;IACF,EAAE,CAAC,YAAY,CACb,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAC5B,CAAC,IAAoC,EAAE,EAAE,CACvC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CACzE,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,kBAAkB,CAChC,EAAe,EACf,SAAiB,EACjB,QAA6B;IAE7B,KAAK,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QAChD,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AACjE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-refresh.d.ts","sourceRoot":"","sources":["../../src/react/provider-refresh.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-refresh.d.ts","sourceRoot":"","sources":["../../src/react/provider-refresh.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAQzD,KAAK,kCAAkC,GAAG;IACxC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;AAKF;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,OAAO,EAChB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAWT;AAaD,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,kCAAuC,GAC5C,IAAI,CAsDN"}
|
|
@@ -3,6 +3,7 @@ import { listProjectSecrets } from '../core/rest/projects-client/index.js';
|
|
|
3
3
|
import { connectedGatewayProviderIdsFromSecretNames } from './provider-selection.js';
|
|
4
4
|
import { configKeys } from './use-opencode-config.js';
|
|
5
5
|
import { clearProjectProviderCache, opencodeKeys } from './use-opencode-sessions/index.js';
|
|
6
|
+
import { qk } from './query-keys.js';
|
|
6
7
|
const CONVERGE_POLL_MS = 2_500;
|
|
7
8
|
const CONVERGE_DEADLINE_MS = 45_000;
|
|
8
9
|
/**
|
|
@@ -26,8 +27,8 @@ function invalidateProviderQueries(queryClient, projectId) {
|
|
|
26
27
|
const projectProviderKey = ['project-providers', projectId];
|
|
27
28
|
clearProjectProviderCache(projectId);
|
|
28
29
|
void queryClient.invalidateQueries({ queryKey: projectProviderKey });
|
|
29
|
-
void queryClient.invalidateQueries({ queryKey:
|
|
30
|
-
void queryClient.refetchQueries({ queryKey:
|
|
30
|
+
void queryClient.invalidateQueries({ queryKey: qk.project.secrets(projectId) });
|
|
31
|
+
void queryClient.refetchQueries({ queryKey: qk.project.secrets(projectId), type: 'all' });
|
|
31
32
|
void queryClient.refetchQueries({ queryKey: projectProviderKey, type: 'all' });
|
|
32
33
|
void queryClient.invalidateQueries({ queryKey: opencodeKeys.providers() });
|
|
33
34
|
void queryClient.invalidateQueries({ queryKey: configKeys.all });
|
|
@@ -59,8 +60,16 @@ export function refreshProjectProviderState(queryClient, projectId, opts = {}) {
|
|
|
59
60
|
const poll = async () => {
|
|
60
61
|
let connected = false;
|
|
61
62
|
try {
|
|
63
|
+
// Same key `useProjectSecrets`/the Customize secrets view read —
|
|
64
|
+
// pre-migration this was a standalone flat `project-secrets` array
|
|
65
|
+
// literal, so every poll's `fetchQuery` populated a cache entry no
|
|
66
|
+
// `useQuery` observer ever read: a real network request whose result
|
|
67
|
+
// no UI ever saw. Sharing `qk.project.secrets(id)` means the poll's
|
|
68
|
+
// fresh (`staleTime: 0`) fetch is the SAME entry the secrets UI
|
|
69
|
+
// renders from, so the picker/secrets list update from this poll
|
|
70
|
+
// too, not only from the `refetchQueries` burst below.
|
|
62
71
|
const secrets = await queryClient.fetchQuery({
|
|
63
|
-
queryKey:
|
|
72
|
+
queryKey: qk.project.secrets(projectId),
|
|
64
73
|
queryFn: () => listProjectSecrets(projectId),
|
|
65
74
|
staleTime: 0,
|
|
66
75
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-refresh.js","sourceRoot":"","sources":["../../src/react/provider-refresh.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAIb,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,0CAA0C,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"provider-refresh.js","sourceRoot":"","sources":["../../src/react/provider-refresh.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One freshness contract per entity, declared once.
|
|
3
|
+
*
|
|
4
|
+
* `staleTime` is per-OBSERVER in React Query, not per-key. Seven call sites
|
|
5
|
+
* reading the flat `project-detail` key therefore declared seven answers to "when
|
|
6
|
+
* does a server-side change reach the user", and which one governed depended
|
|
7
|
+
* on which pages happened to be mounted. Tiers remove the choice from the call
|
|
8
|
+
* site: a consumer spreads a contract, it never authors one.
|
|
9
|
+
*
|
|
10
|
+
* `refetchOnMount` is `true` everywhere, DELIBERATELY, and it is the second
|
|
11
|
+
* time this file has gotten it wrong — the first version said `false`
|
|
12
|
+
* "because explicit invalidation is the freshness channel". That is
|
|
13
|
+
* empirically false: `invalidateQueries` defaults to `refetchType: 'active'`,
|
|
14
|
+
* which only refetches queries with a currently-mounted observer. An
|
|
15
|
+
* invalidated entry with NO mounted observer — the exact shape of a route the
|
|
16
|
+
* user has navigated away from — is marked invalidated but never refetched,
|
|
17
|
+
* and `refetchOnMount:false` means the next mount doesn't refetch it either.
|
|
18
|
+
* It serves its stale (or, worse, wrongly-optimistic — see
|
|
19
|
+
* `invalidate-project.ts`) value for the rest of `gcTime`. Verified against
|
|
20
|
+
* the real TanStack engine:
|
|
21
|
+
*
|
|
22
|
+
* refetchOnMount:false -> {"seen":"OPTIMISTIC","totalFetches":1} wrong value survives
|
|
23
|
+
* refetchOnMount:true -> {"seen":"SERVER","totalFetches":2} self-heals
|
|
24
|
+
*
|
|
25
|
+
* This is NOT a tradeoff against "wasted" fetches on remount, because
|
|
26
|
+
* `refetchOnMount:true` still respects `staleTime` — it only refetches an
|
|
27
|
+
* entry that is actually stale or invalidated. A remount of FRESH data costs
|
|
28
|
+
* the same either way:
|
|
29
|
+
*
|
|
30
|
+
* FRESH-FALSE {"refetchedOnRemount":0,"isPending":false}
|
|
31
|
+
* FRESH-TRUE {"refetchedOnRemount":0,"isPending":false}
|
|
32
|
+
*
|
|
33
|
+
* Do not "optimise" this back to `false` without redoing both probes above.
|
|
34
|
+
*/
|
|
35
|
+
export type FreshnessTier = 'live' | 'config' | 'inventory' | 'volatile';
|
|
36
|
+
export declare function contract(tier: FreshnessTier): {
|
|
37
|
+
staleTime: number;
|
|
38
|
+
gcTime: number;
|
|
39
|
+
refetchOnMount: true;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Entity → tier. Adding an entity here without a tier is a type error, which
|
|
43
|
+
* is the point: a new query cannot quietly inherit the global default.
|
|
44
|
+
*/
|
|
45
|
+
export declare const FRESHNESS: {
|
|
46
|
+
readonly projectsList: "inventory";
|
|
47
|
+
readonly projectSummary: "config";
|
|
48
|
+
readonly projectDetail: "config";
|
|
49
|
+
readonly projectConfig: "config";
|
|
50
|
+
readonly session: "inventory";
|
|
51
|
+
readonly sessions: "inventory";
|
|
52
|
+
readonly messages: "live";
|
|
53
|
+
readonly connectors: "config";
|
|
54
|
+
readonly connectorConfig: "config";
|
|
55
|
+
readonly secrets: "config";
|
|
56
|
+
readonly apps: "inventory";
|
|
57
|
+
readonly appDeployments: "inventory";
|
|
58
|
+
readonly policies: "config";
|
|
59
|
+
readonly executorPolicies: "config";
|
|
60
|
+
readonly access: "inventory";
|
|
61
|
+
readonly accessRequests: "inventory";
|
|
62
|
+
readonly pendingInvites: "inventory";
|
|
63
|
+
readonly groupGrants: "inventory";
|
|
64
|
+
readonly resourceGrants: "inventory";
|
|
65
|
+
readonly files: "config";
|
|
66
|
+
readonly fileSource: "config";
|
|
67
|
+
readonly branches: "config";
|
|
68
|
+
/**
|
|
69
|
+
* NOT live sandbox health — the sandbox TEMPLATE catalog.
|
|
70
|
+
* `listProjectSandboxes` is `GET /projects/:id/sandboxes` returning
|
|
71
|
+
* `SandboxTemplatesResponse` (`{ items, default_slug, provider_mode, … }`),
|
|
72
|
+
* byte-for-byte the same call `sandboxTemplates` below already makes. Live
|
|
73
|
+
* health is a different entity entirely — `getProjectSandboxHealth`,
|
|
74
|
+
* `GET /projects/:id/sandbox-health`, read by `project-sandbox-alert.tsx`
|
|
75
|
+
* under its own key with its own adaptive `refetchInterval` (8s while a
|
|
76
|
+
* build is active, 120s otherwise). Nothing on THIS key is time-sensitive.
|
|
77
|
+
*
|
|
78
|
+
* Was `volatile` (5s) on the strength of the word "sandbox". Its
|
|
79
|
+
* pre-migration window was 60s, every change to it arrives through this
|
|
80
|
+
* app's own mutations (`sandbox-template-form.tsx`, `sandbox-view.tsx` —
|
|
81
|
+
* all three invalidate this key), and `refetchOnMount: true` at 5s meant a
|
|
82
|
+
* refetch on essentially every project landing. `config` restores the
|
|
83
|
+
* original window and matches the twin below, which reads the same
|
|
84
|
+
* response.
|
|
85
|
+
*/
|
|
86
|
+
readonly sandboxes: "config";
|
|
87
|
+
readonly sandboxTemplates: "config";
|
|
88
|
+
readonly snapshots: "config";
|
|
89
|
+
readonly modelPicker: "config";
|
|
90
|
+
/**
|
|
91
|
+
* Analytics aggregates over a `days` window — overview, series, breakdown,
|
|
92
|
+
* sessions, errors — plus budgets and keys.
|
|
93
|
+
*
|
|
94
|
+
* The aggregates accumulate from TRAFFIC (agent runs, other members),
|
|
95
|
+
* which no mutation of ours announces, so they cannot be `config`. But they
|
|
96
|
+
* are aggregates over days: a 5-second window buys nothing a 30-second one
|
|
97
|
+
* doesn't, and cost real requests — `refetchOnMount: true` at `volatile`
|
|
98
|
+
* refetched all five on every Customize -> Gateway open. `inventory` is
|
|
99
|
+
* both the honest description ("can also change from another member") and
|
|
100
|
+
* exactly their pre-migration 30s window.
|
|
101
|
+
*
|
|
102
|
+
* Budgets and keys ride the same tier at 30s against a pre-migration 15s.
|
|
103
|
+
* Safe: both are mutated only through this UI and both invalidate on
|
|
104
|
+
* success (`use-project-gateway.ts`), so staleTime only ever bounds an
|
|
105
|
+
* out-of-band change. `gatewayLogs` opts out entirely — it sets
|
|
106
|
+
* `refetchInterval: 10_000` and no contract, because a log tail genuinely
|
|
107
|
+
* is a tail.
|
|
108
|
+
*/
|
|
109
|
+
readonly gateway: "inventory";
|
|
110
|
+
readonly triggers: "config";
|
|
111
|
+
};
|
|
112
|
+
//# sourceMappingURL=query-contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-contracts.d.ts","sourceRoot":"","sources":["../../src/react/query-contracts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAyBzE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,aAAa;;;;EAM3C;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;IAuBpB;;;;;;;;;;;;;;;;;OAiBG;;;;;IAKH;;;;;;;;;;;;;;;;;;OAkBG;;;CAG6C,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
const GC_TIME = 30 * 60 * 1000;
|
|
2
|
+
const TIERS = {
|
|
3
|
+
/** Kept current by SSE events. Polling it would be redundant and racy. */
|
|
4
|
+
live: { staleTime: Infinity },
|
|
5
|
+
/** Changes arrive through this app's own mutations, which invalidate. */
|
|
6
|
+
config: { staleTime: 60_000 },
|
|
7
|
+
/** Can also change from another member or another tab. */
|
|
8
|
+
inventory: { staleTime: 30_000 },
|
|
9
|
+
/**
|
|
10
|
+
* Genuinely time-sensitive; no mutation announces the change, AND a
|
|
11
|
+
* 30-second-old value would actively mislead.
|
|
12
|
+
*
|
|
13
|
+
* UNCLAIMED as of the `sandboxes`/`gateway` review below. Kept because
|
|
14
|
+
* `FreshnessTier` is a published string-literal union and dropping a member
|
|
15
|
+
* is a breaking change — not because anything needs it. The first two
|
|
16
|
+
* entities put here got it for sounding urgent rather than being urgent, so
|
|
17
|
+
* the bar for the next claimant is the second clause: name the reader that
|
|
18
|
+
* is materially wrong at t+30s.
|
|
19
|
+
*/
|
|
20
|
+
volatile: { staleTime: 5_000 },
|
|
21
|
+
};
|
|
22
|
+
export function contract(tier) {
|
|
23
|
+
return {
|
|
24
|
+
staleTime: TIERS[tier].staleTime,
|
|
25
|
+
gcTime: GC_TIME,
|
|
26
|
+
refetchOnMount: true,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Entity → tier. Adding an entity here without a tier is a type error, which
|
|
31
|
+
* is the point: a new query cannot quietly inherit the global default.
|
|
32
|
+
*/
|
|
33
|
+
export const FRESHNESS = {
|
|
34
|
+
projectsList: 'inventory',
|
|
35
|
+
projectSummary: 'config',
|
|
36
|
+
projectDetail: 'config',
|
|
37
|
+
projectConfig: 'config',
|
|
38
|
+
session: 'inventory',
|
|
39
|
+
sessions: 'inventory',
|
|
40
|
+
messages: 'live',
|
|
41
|
+
connectors: 'config',
|
|
42
|
+
connectorConfig: 'config',
|
|
43
|
+
secrets: 'config',
|
|
44
|
+
apps: 'inventory',
|
|
45
|
+
appDeployments: 'inventory',
|
|
46
|
+
policies: 'config',
|
|
47
|
+
executorPolicies: 'config',
|
|
48
|
+
access: 'inventory',
|
|
49
|
+
accessRequests: 'inventory',
|
|
50
|
+
pendingInvites: 'inventory',
|
|
51
|
+
groupGrants: 'inventory',
|
|
52
|
+
resourceGrants: 'inventory',
|
|
53
|
+
files: 'config',
|
|
54
|
+
fileSource: 'config',
|
|
55
|
+
branches: 'config',
|
|
56
|
+
/**
|
|
57
|
+
* NOT live sandbox health — the sandbox TEMPLATE catalog.
|
|
58
|
+
* `listProjectSandboxes` is `GET /projects/:id/sandboxes` returning
|
|
59
|
+
* `SandboxTemplatesResponse` (`{ items, default_slug, provider_mode, … }`),
|
|
60
|
+
* byte-for-byte the same call `sandboxTemplates` below already makes. Live
|
|
61
|
+
* health is a different entity entirely — `getProjectSandboxHealth`,
|
|
62
|
+
* `GET /projects/:id/sandbox-health`, read by `project-sandbox-alert.tsx`
|
|
63
|
+
* under its own key with its own adaptive `refetchInterval` (8s while a
|
|
64
|
+
* build is active, 120s otherwise). Nothing on THIS key is time-sensitive.
|
|
65
|
+
*
|
|
66
|
+
* Was `volatile` (5s) on the strength of the word "sandbox". Its
|
|
67
|
+
* pre-migration window was 60s, every change to it arrives through this
|
|
68
|
+
* app's own mutations (`sandbox-template-form.tsx`, `sandbox-view.tsx` —
|
|
69
|
+
* all three invalidate this key), and `refetchOnMount: true` at 5s meant a
|
|
70
|
+
* refetch on essentially every project landing. `config` restores the
|
|
71
|
+
* original window and matches the twin below, which reads the same
|
|
72
|
+
* response.
|
|
73
|
+
*/
|
|
74
|
+
sandboxes: 'config',
|
|
75
|
+
sandboxTemplates: 'config',
|
|
76
|
+
snapshots: 'config',
|
|
77
|
+
modelPicker: 'config',
|
|
78
|
+
/**
|
|
79
|
+
* Analytics aggregates over a `days` window — overview, series, breakdown,
|
|
80
|
+
* sessions, errors — plus budgets and keys.
|
|
81
|
+
*
|
|
82
|
+
* The aggregates accumulate from TRAFFIC (agent runs, other members),
|
|
83
|
+
* which no mutation of ours announces, so they cannot be `config`. But they
|
|
84
|
+
* are aggregates over days: a 5-second window buys nothing a 30-second one
|
|
85
|
+
* doesn't, and cost real requests — `refetchOnMount: true` at `volatile`
|
|
86
|
+
* refetched all five on every Customize -> Gateway open. `inventory` is
|
|
87
|
+
* both the honest description ("can also change from another member") and
|
|
88
|
+
* exactly their pre-migration 30s window.
|
|
89
|
+
*
|
|
90
|
+
* Budgets and keys ride the same tier at 30s against a pre-migration 15s.
|
|
91
|
+
* Safe: both are mutated only through this UI and both invalidate on
|
|
92
|
+
* success (`use-project-gateway.ts`), so staleTime only ever bounds an
|
|
93
|
+
* out-of-band change. `gatewayLogs` opts out entirely — it sets
|
|
94
|
+
* `refetchInterval: 10_000` and no contract, because a log tail genuinely
|
|
95
|
+
* is a tail.
|
|
96
|
+
*/
|
|
97
|
+
gateway: 'inventory',
|
|
98
|
+
triggers: 'config',
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=query-contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-contracts.js","sourceRoot":"","sources":["../../src/react/query-contracts.ts"],"names":[],"mappings":"AAoCA,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE/B,MAAM,KAAK,GAAiD;IAC1D,0EAA0E;IAC1E,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;IAC7B,yEAAyE;IACzE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;IAC7B,0DAA0D;IAC1D,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;IAChC;;;;;;;;;;OAUG;IACH,QAAQ,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE;CAC/B,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,IAAmB;IAC1C,OAAO;QACL,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,SAAS;QAChC,MAAM,EAAE,OAAO;QACf,cAAc,EAAE,IAAa;KAC9B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,YAAY,EAAE,WAAW;IACzB,cAAc,EAAE,QAAQ;IACxB,aAAa,EAAE,QAAQ;IACvB,aAAa,EAAE,QAAQ;IACvB,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,QAAQ;IACpB,eAAe,EAAE,QAAQ;IACzB,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE,WAAW;IACjB,cAAc,EAAE,WAAW;IAC3B,QAAQ,EAAE,QAAQ;IAClB,gBAAgB,EAAE,QAAQ;IAC1B,MAAM,EAAE,WAAW;IACnB,cAAc,EAAE,WAAW;IAC3B,cAAc,EAAE,WAAW;IAC3B,WAAW,EAAE,WAAW;IACxB,cAAc,EAAE,WAAW;IAC3B,KAAK,EAAE,QAAQ;IACf,UAAU,EAAE,QAAQ;IACpB,QAAQ,EAAE,QAAQ;IAClB;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,EAAE,QAAQ;IACnB,gBAAgB,EAAE,QAAQ;IAC1B,SAAS,EAAE,QAAQ;IACnB,WAAW,EAAE,QAAQ;IACrB;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,QAAQ;CAC8B,CAAC"}
|