@farmslot/protocol 0.74.0 → 0.74.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 (188) hide show
  1. package/CHANGELOG.md +19 -9
  2. package/README.md +9 -0
  3. package/dist/client-cache/cache.d.ts +4 -0
  4. package/dist/client-cache/cache.d.ts.map +1 -0
  5. package/dist/client-cache/cache.js +1102 -0
  6. package/dist/client-cache/cache.js.map +1 -0
  7. package/dist/client-cache/collector-admission.d.ts +29 -0
  8. package/dist/client-cache/collector-admission.d.ts.map +1 -0
  9. package/dist/client-cache/collector-admission.js +183 -0
  10. package/dist/client-cache/collector-admission.js.map +1 -0
  11. package/dist/client-cache/command-method.d.ts +5 -0
  12. package/dist/client-cache/command-method.d.ts.map +1 -0
  13. package/dist/client-cache/command-method.js +2 -0
  14. package/dist/client-cache/command-method.js.map +1 -0
  15. package/dist/client-cache/conformance.d.ts +36 -0
  16. package/dist/client-cache/conformance.d.ts.map +1 -0
  17. package/dist/client-cache/conformance.js +578 -0
  18. package/dist/client-cache/conformance.js.map +1 -0
  19. package/dist/client-cache/content.d.ts +29 -0
  20. package/dist/client-cache/content.d.ts.map +1 -0
  21. package/dist/client-cache/content.js +101 -0
  22. package/dist/client-cache/content.js.map +1 -0
  23. package/dist/client-cache/d07-domains.d.ts +17 -0
  24. package/dist/client-cache/d07-domains.d.ts.map +1 -0
  25. package/dist/client-cache/d07-domains.js +111 -0
  26. package/dist/client-cache/d07-domains.js.map +1 -0
  27. package/dist/client-cache/diff-apply.d.ts +29 -0
  28. package/dist/client-cache/diff-apply.d.ts.map +1 -0
  29. package/dist/client-cache/diff-apply.js +206 -0
  30. package/dist/client-cache/diff-apply.js.map +1 -0
  31. package/dist/client-cache/index.d.ts +14 -10
  32. package/dist/client-cache/index.d.ts.map +1 -1
  33. package/dist/client-cache/index.js +14 -1
  34. package/dist/client-cache/index.js.map +1 -1
  35. package/dist/client-cache/keys.d.ts +126 -0
  36. package/dist/client-cache/keys.d.ts.map +1 -0
  37. package/dist/client-cache/keys.js +25 -0
  38. package/dist/client-cache/keys.js.map +1 -0
  39. package/dist/client-cache/native-history.d.ts +64 -0
  40. package/dist/client-cache/native-history.d.ts.map +1 -0
  41. package/dist/client-cache/native-history.js +285 -0
  42. package/dist/client-cache/native-history.js.map +1 -0
  43. package/dist/client-cache/prefetch.d.ts +50 -0
  44. package/dist/client-cache/prefetch.d.ts.map +1 -0
  45. package/dist/client-cache/prefetch.js +507 -0
  46. package/dist/client-cache/prefetch.js.map +1 -0
  47. package/dist/client-cache/registry.d.ts +1365 -0
  48. package/dist/client-cache/registry.d.ts.map +1 -0
  49. package/dist/client-cache/registry.js +1038 -0
  50. package/dist/client-cache/registry.js.map +1 -0
  51. package/dist/client-cache/run-list-versions.d.ts +70 -0
  52. package/dist/client-cache/run-list-versions.d.ts.map +1 -0
  53. package/dist/client-cache/run-list-versions.js +309 -0
  54. package/dist/client-cache/run-list-versions.js.map +1 -0
  55. package/dist/client-cache/store.d.ts +128 -0
  56. package/dist/client-cache/store.d.ts.map +1 -0
  57. package/dist/client-cache/store.js +190 -0
  58. package/dist/client-cache/store.js.map +1 -0
  59. package/dist/client-cache/transport.d.ts +27 -0
  60. package/dist/client-cache/transport.d.ts.map +1 -0
  61. package/dist/client-cache/transport.js +56 -0
  62. package/dist/client-cache/transport.js.map +1 -0
  63. package/dist/client-cache/types.d.ts +116 -0
  64. package/dist/client-cache/types.d.ts.map +1 -0
  65. package/dist/client-cache/types.js +2 -0
  66. package/dist/client-cache/types.js.map +1 -0
  67. package/dist/client-cache/upstream-retention.d.ts +6 -0
  68. package/dist/client-cache/upstream-retention.d.ts.map +1 -0
  69. package/dist/client-cache/upstream-retention.js +28 -0
  70. package/dist/client-cache/upstream-retention.js.map +1 -0
  71. package/dist/client-cache/workspace-retention.d.ts +7 -0
  72. package/dist/client-cache/workspace-retention.d.ts.map +1 -0
  73. package/dist/client-cache/workspace-retention.js +46 -0
  74. package/dist/client-cache/workspace-retention.js.map +1 -0
  75. package/dist/contracts/provider-accounts.d.ts +31 -0
  76. package/dist/contracts/provider-accounts.d.ts.map +1 -1
  77. package/dist/contracts/provider-accounts.js +209 -1
  78. package/dist/contracts/provider-accounts.js.map +1 -1
  79. package/dist/contracts/run-bundles.d.ts.map +1 -1
  80. package/dist/contracts/run-bundles.js +2 -0
  81. package/dist/contracts/run-bundles.js.map +1 -1
  82. package/dist/contracts/runs.d.ts +2 -0
  83. package/dist/contracts/runs.d.ts.map +1 -1
  84. package/dist/contracts/runs.js.map +1 -1
  85. package/dist/index.d.ts +4 -1
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +4 -1
  88. package/dist/index.js.map +1 -1
  89. package/dist/person-session-client.d.ts +4 -1
  90. package/dist/person-session-client.d.ts.map +1 -1
  91. package/dist/person-session-client.js.map +1 -1
  92. package/dist/rpc/auth.d.ts +17 -0
  93. package/dist/rpc/auth.d.ts.map +1 -1
  94. package/dist/rpc/auth.js.map +1 -1
  95. package/dist/rpc/config.d.ts +2 -0
  96. package/dist/rpc/config.d.ts.map +1 -1
  97. package/dist/rpc/config.js.map +1 -1
  98. package/dist/rpc/fs.d.ts +110 -4
  99. package/dist/rpc/fs.d.ts.map +1 -1
  100. package/dist/rpc/fs.js +7 -1
  101. package/dist/rpc/fs.js.map +1 -1
  102. package/dist/rpc/gateway.d.ts +3 -0
  103. package/dist/rpc/gateway.d.ts.map +1 -1
  104. package/dist/rpc/git.d.ts +42 -0
  105. package/dist/rpc/git.d.ts.map +1 -1
  106. package/dist/rpc/index.d.ts +1 -0
  107. package/dist/rpc/index.d.ts.map +1 -1
  108. package/dist/rpc/index.js +1 -0
  109. package/dist/rpc/index.js.map +1 -1
  110. package/dist/rpc/native-session.d.ts +2 -0
  111. package/dist/rpc/native-session.d.ts.map +1 -1
  112. package/dist/rpc/native-session.js.map +1 -1
  113. package/dist/rpc/nodes.d.ts +2 -0
  114. package/dist/rpc/nodes.d.ts.map +1 -1
  115. package/dist/rpc/nodes.js.map +1 -1
  116. package/dist/rpc/pr-observations.d.ts +22 -0
  117. package/dist/rpc/pr-observations.d.ts.map +1 -0
  118. package/dist/rpc/pr-observations.js +104 -0
  119. package/dist/rpc/pr-observations.js.map +1 -0
  120. package/dist/rpc/pr.d.ts +9 -0
  121. package/dist/rpc/pr.d.ts.map +1 -1
  122. package/dist/rpc/pr.js +1 -1
  123. package/dist/rpc/pr.js.map +1 -1
  124. package/dist/rpc/principal.d.ts +2 -0
  125. package/dist/rpc/principal.d.ts.map +1 -1
  126. package/dist/rpc/registry.d.ts +1 -0
  127. package/dist/rpc/registry.d.ts.map +1 -1
  128. package/dist/rpc/registry.js +2 -0
  129. package/dist/rpc/registry.js.map +1 -1
  130. package/dist/rpc/resource-observers.d.ts +32 -0
  131. package/dist/rpc/resource-observers.d.ts.map +1 -0
  132. package/dist/rpc/resource-observers.js +2 -0
  133. package/dist/rpc/resource-observers.js.map +1 -0
  134. package/dist/rpc/run.d.ts +23 -0
  135. package/dist/rpc/run.d.ts.map +1 -1
  136. package/dist/rpc/run.js.map +1 -1
  137. package/dist/rpc/runner-models.d.ts +15 -0
  138. package/dist/rpc/runner-models.d.ts.map +1 -1
  139. package/dist/rpc/runner-models.js +91 -0
  140. package/dist/rpc/runner-models.js.map +1 -1
  141. package/dist/runs/review-diff-identity.d.ts +15 -0
  142. package/dist/runs/review-diff-identity.d.ts.map +1 -0
  143. package/dist/runs/review-diff-identity.js +47 -0
  144. package/dist/runs/review-diff-identity.js.map +1 -0
  145. package/dist/runs/run-list-filter.d.ts +33 -0
  146. package/dist/runs/run-list-filter.d.ts.map +1 -0
  147. package/dist/runs/run-list-filter.js +116 -0
  148. package/dist/runs/run-list-filter.js.map +1 -0
  149. package/dist/runs/run-list-observation.d.ts +5 -0
  150. package/dist/runs/run-list-observation.d.ts.map +1 -0
  151. package/dist/runs/run-list-observation.js +36 -0
  152. package/dist/runs/run-list-observation.js.map +1 -0
  153. package/dist/runs/run-list-view.d.ts +6 -2
  154. package/dist/runs/run-list-view.d.ts.map +1 -1
  155. package/dist/runs/run-list-view.js +10 -4
  156. package/dist/runs/run-list-view.js.map +1 -1
  157. package/dist/slots/cancelled-run-slot.d.ts +2 -1
  158. package/dist/slots/cancelled-run-slot.d.ts.map +1 -1
  159. package/dist/sources/client.d.ts +10 -1
  160. package/dist/sources/client.d.ts.map +1 -1
  161. package/dist/sources/client.js +23 -4
  162. package/dist/sources/client.js.map +1 -1
  163. package/dist/sources/controller.d.ts +13 -14
  164. package/dist/sources/controller.d.ts.map +1 -1
  165. package/dist/sources/controller.js +87 -82
  166. package/dist/sources/controller.js.map +1 -1
  167. package/dist/sources/status-view.d.ts +2 -0
  168. package/dist/sources/status-view.d.ts.map +1 -1
  169. package/dist/sources/status-view.js +13 -0
  170. package/dist/sources/status-view.js.map +1 -1
  171. package/dist/transport/events.d.ts +1 -4
  172. package/dist/transport/events.d.ts.map +1 -1
  173. package/dist/transport/events.js +1 -0
  174. package/dist/transport/events.js.map +1 -1
  175. package/dist/transport/frames.d.ts +6 -0
  176. package/dist/transport/frames.d.ts.map +1 -1
  177. package/dist/transport/frames.js.map +1 -1
  178. package/dist/transport/observations.d.ts +24 -0
  179. package/dist/transport/observations.d.ts.map +1 -0
  180. package/dist/transport/observations.js +2 -0
  181. package/dist/transport/observations.js.map +1 -0
  182. package/dist/version.d.ts +1 -1
  183. package/dist/version.js +1 -1
  184. package/package.json +1 -1
  185. package/dist/sources/changes.d.ts +0 -37
  186. package/dist/sources/changes.d.ts.map +0 -1
  187. package/dist/sources/changes.js +0 -79
  188. package/dist/sources/changes.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"run-list-view.js","sourceRoot":"","sources":["../../src/runs/run-list-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-list-view.js","sourceRoot":"","sources":["../../src/runs/run-list-view.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { Run } from '../contracts/runs.js';
2
2
  import type { SlotStatus } from '../contracts/slots.js';
3
+ import { Methods } from '../rpc/registry.js';
3
4
  import type { SlotReleaseParams, SlotReleaseResult } from '../rpc/slot.js';
4
5
  /**
5
6
  * The held reason of a slot a cancelled run keeps for replay (ADR-054
@@ -35,6 +36,6 @@ export declare function cancelledRunSlotChoices(run: Pick<Run, 'id' | 'status' |
35
36
  /** A release resets the checkout and runs the recycle hook, which takes minutes on a remote node. */
36
37
  export declare const CANCELLED_RUN_SLOT_RELEASE_TIMEOUT_MS: number;
37
38
  /** Releases the slot; returns why it was not released, or null once it was. */
38
- export declare function releaseCancelledRunSlot(request: (method: string, params: SlotReleaseParams, timeoutMs: number) => Promise<SlotReleaseResult>, hold: CancelledRunSlotHold): Promise<string | null>;
39
+ export declare function releaseCancelledRunSlot(request: (method: typeof Methods.SLOT_RELEASE, params: SlotReleaseParams, timeoutMs: number) => Promise<SlotReleaseResult>, hold: CancelledRunSlotHold): Promise<string | null>;
39
40
  export {};
40
41
  //# sourceMappingURL=cancelled-run-slot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cancelled-run-slot.d.ts","sourceRoot":"","sources":["../../src/slots/cancelled-run-slot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAE3E;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,sFAAsF;AACtF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,aAAa,EAAE,iBAAiB,CAAC;CAClC;AAED,KAAK,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,cAAc,GAAG,YAAY,CAAC,CAAC;AAEjG,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,oBAAoB,GAAG,IAAI,CAYhF;AAED,8DAA8D;AAC9D,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,mEAAmE;AACnE,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,8DAA8D;IAC9D,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC,EACzC,KAAK,EAAE,SAAS,QAAQ,EAAE,GACzB,uBAAuB,GAAG,IAAI,CAUhC;AAED,qGAAqG;AACrG,eAAO,MAAM,qCAAqC,QAAa,CAAC;AAEhE,+EAA+E;AAC/E,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,CACP,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,iBAAiB,CAAC,EAC/B,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOxB"}
1
+ {"version":3,"file":"cancelled-run-slot.d.ts","sourceRoot":"","sources":["../../src/slots/cancelled-run-slot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAE3E;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,sFAAsF;AACtF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,aAAa,EAAE,iBAAiB,CAAC;CAClC;AAED,KAAK,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,OAAO,GAAG,cAAc,GAAG,YAAY,CAAC,CAAC;AAEjG,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,oBAAoB,GAAG,IAAI,CAYhF;AAED,8DAA8D;AAC9D,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,mEAAmE;AACnE,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,8DAA8D;IAC9D,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC,EACzC,KAAK,EAAE,SAAS,QAAQ,EAAE,GACzB,uBAAuB,GAAG,IAAI,CAUhC;AAED,qGAAqG;AACrG,eAAO,MAAM,qCAAqC,QAAa,CAAC;AAEhE,+EAA+E;AAC/E,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,CACP,MAAM,EAAE,OAAO,OAAO,CAAC,YAAY,EACnC,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,MAAM,KACd,OAAO,CAAC,iBAAiB,CAAC,EAC/B,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOxB"}
@@ -1,7 +1,10 @@
1
+ import { type GatewayResourceCache } from '../client-cache/index.js';
1
2
  import { Methods } from '../rpc/registry.js';
2
3
  import type { SourcesPinParams, SourcesPinResult, SourcesStatusParams, SourcesStatusResult, SourcesSyncParams, SourcesSyncResult, SourcesUnpinParams } from '../rpc/sources.js';
3
4
  import { type SourcePinTarget } from './pins.js';
4
5
  export type SourceRpcRequest = <T>(method: string, params: unknown) => Promise<T>;
6
+ /** A cache-backed client's transport: status comes from the shared cache, never this request. */
7
+ export type SourceCommandRequest = <T>(method: PreparedSourceCommand['method'], params: unknown) => Promise<T>;
5
8
  export type SourcePinInput = Omit<SourcesPinParams, 'operationId' | 'expectedDeclarationRevision' | 'expectedPinRevision'>;
6
9
  export type SourceUnpinInput = Omit<SourcePinInput, 'ref'>;
7
10
  export type SourceSyncInput = Omit<SourcesSyncParams, 'operationId' | 'expectedDeclarationRevision'>;
@@ -23,10 +26,13 @@ interface SourceCommandResults {
23
26
  export type SourceCommandResult<Command extends PreparedSourceCommand> = SourceCommandResults[Command['method']];
24
27
  /** One target mapping serves SDK commands and every source status/picker context. */
25
28
  export declare function sourceStatusParamsForTarget(sourceId?: string, target?: SourcePinTarget): SourcesStatusParams;
29
+ /** One registered query supplies source observations and command preconditions in both UIs. */
30
+ export declare function sourceStatusQuery(params?: SourcesStatusParams): import("../client-cache/registry.js").ResourceQuery<SourcesStatusResult>;
26
31
  /** Existing authenticated transports own connectivity. This client never resolves refs. */
27
32
  export declare class SourceCommandClient {
28
33
  private readonly request;
29
- constructor(request: SourceRpcRequest);
34
+ private readonly readStatus;
35
+ constructor(request: SourceCommandRequest, readStatus: (params: SourcesStatusParams) => Promise<SourcesStatusResult>);
30
36
  status(params?: SourcesStatusParams): Promise<SourcesStatusResult>;
31
37
  private revisions;
32
38
  preparePin(input: SourcePinInput, operationId?: string): Promise<Extract<PreparedSourceCommand, {
@@ -41,6 +47,9 @@ export declare class SourceCommandClient {
41
47
  /** Retry this exact command after a lost response. Never recapture revisions or mint another ID. */
42
48
  execute<Command extends PreparedSourceCommand>(command: Command): Promise<SourceCommandResult<Command>>;
43
49
  }
50
+ /** The two UI clients supply the shared cache, so their transport carries commands only. */
51
+ export declare function createSourceCommandClient(request: SourceCommandRequest, resourceCache: () => GatewayResourceCache | undefined): SourceCommandClient;
52
+ /** CLI commands have no cache provider and remain direct status readers. */
44
53
  export declare function createSourceCommandClient(request: SourceRpcRequest): SourceCommandClient;
45
54
  export {};
46
55
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/sources/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,KAAK,eAAe,EAA2B,MAAM,WAAW,CAAC;AAE1E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAClF,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,gBAAgB,EAChB,aAAa,GAAG,6BAA6B,GAAG,qBAAqB,CACtE,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,iBAAiB,EACjB,aAAa,GAAG,6BAA6B,CAC9C,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B;IAAE,MAAM,EAAE,OAAO,OAAO,CAAC,WAAW,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAA;CAAE,GAChE;IAAE,MAAM,EAAE,OAAO,OAAO,CAAC,aAAa,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,GACpE;IAAE,MAAM,EAAE,OAAO,OAAO,CAAC,YAAY,CAAC;IAAC,MAAM,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEvE,UAAU,oBAAoB;IAC5B,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IACxC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAC;IAC1C,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAC3C;AACD,MAAM,MAAM,mBAAmB,CAAC,OAAO,SAAS,qBAAqB,IACnE,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAW1C,qFAAqF;AACrF,wBAAgB,2BAA2B,CACzC,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,eAAe,GACvB,mBAAmB,CAYrB;AAMD,2FAA2F;AAC3F,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,gBAAgB;IAEtD,MAAM,CAAC,MAAM,GAAE,mBAAwB,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAIxD,SAAS;IAgBjB,UAAU,CACd,KAAK,EAAE,cAAc,EACrB,WAAW,SAAmB,GAC7B,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE;QAAE,MAAM,EAAE,OAAO,OAAO,CAAC,WAAW,CAAA;KAAE,CAAC,CAAC;IAa5E,YAAY,CAChB,KAAK,EAAE,gBAAgB,EACvB,WAAW,SAAmB,GAC7B,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE;QAAE,MAAM,EAAE,OAAO,OAAO,CAAC,aAAa,CAAA;KAAE,CAAC,CAAC;IAa9E,WAAW,CACf,KAAK,GAAE,eAAoB,EAC3B,WAAW,SAAmB,GAC7B,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE;QAAE,MAAM,EAAE,OAAO,OAAO,CAAC,YAAY,CAAA;KAAE,CAAC,CAAC;IAWnF,oGAAoG;IAC9F,OAAO,CAAC,OAAO,SAAS,qBAAqB,EACjD,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;CAMzC;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,gBAAgB,GAAG,mBAAmB,CAExF"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/sources/client.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { resourceQuery } from '../client-cache/index.js';
1
2
  import { Methods } from '../rpc/registry.js';
2
3
  import { validateSourceSelection } from './pins.js';
3
4
  function pinRevisions(status) {
@@ -21,16 +22,30 @@ export function sourceStatusParamsForTarget(sourceId, target) {
21
22
  params.runId = target.targetId;
22
23
  return params;
23
24
  }
25
+ /** One registered query supplies source observations and command preconditions in both UIs. */
26
+ export function sourceStatusQuery(params = {}) {
27
+ return resourceQuery(Methods.SOURCES_STATUS, params);
28
+ }
24
29
  function newOperationId() {
25
30
  return `sources-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`;
26
31
  }
32
+ async function cachedSourceStatus(resourceCache, params) {
33
+ const cache = resourceCache();
34
+ if (!cache)
35
+ throw new Error('Wait for source facts from the selected gateway.');
36
+ const state = await cache.retry(sourceStatusQuery(params));
37
+ if (state.status !== 'ready' || !state.data)
38
+ throw Object.assign(new Error(state.error?.message ?? 'Connect to refresh source facts before this action.'), { code: state.error?.code ?? 'RESOURCE_STALE' });
39
+ return state.data;
40
+ }
27
41
  /** Existing authenticated transports own connectivity. This client never resolves refs. */
28
42
  export class SourceCommandClient {
29
- constructor(request) {
43
+ constructor(request, readStatus) {
30
44
  this.request = request;
45
+ this.readStatus = readStatus;
31
46
  }
32
47
  status(params = {}) {
33
- return this.request(Methods.SOURCES_STATUS, params);
48
+ return this.readStatus(params);
34
49
  }
35
50
  async revisions(sourceId, target) {
36
51
  const status = await this.status(sourceStatusParamsForTarget(sourceId, target));
@@ -77,7 +92,11 @@ export class SourceCommandClient {
77
92
  return result;
78
93
  }
79
94
  }
80
- export function createSourceCommandClient(request) {
81
- return new SourceCommandClient(request);
95
+ export function createSourceCommandClient(request, resourceCache) {
96
+ if (resourceCache)
97
+ return new SourceCommandClient(request, (params) => cachedSourceStatus(resourceCache, params));
98
+ // Only the overload without a cache provider accepts a transport that reads status.
99
+ const direct = request;
100
+ return new SourceCommandClient(request, (params) => direct(Methods.SOURCES_STATUS, params));
82
101
  }
83
102
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/sources/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/sources/client.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,10 @@
1
- import { type SourceChangeFeed } from './changes.js';
1
+ import type { GatewayResourceCache, ResourceQueryStatus } from '../client-cache/index.js';
2
2
  import { type PreparedSourceCommand, type SourceCommandClient } from './client.js';
3
3
  import type { SourceSelection } from './pins.js';
4
4
  import { type SourceStatusViewContext, type SourceStatusViewModel, type SourceViewAction } from './status-view.js';
5
5
  export interface SourceStatusSnapshot {
6
+ freshness: ResourceQueryStatus;
7
+ observedAt?: number;
6
8
  loading: boolean;
7
9
  busy: boolean;
8
10
  view?: SourceStatusViewModel;
@@ -26,30 +28,27 @@ export interface SourceStatusSnapshot {
26
28
  /** One context-bound controller serves thin web/native status and selection renderers. */
27
29
  export declare class SourceStatusController {
28
30
  private readonly client;
31
+ private cache?;
29
32
  private context;
30
33
  private status?;
31
34
  private version;
32
35
  private listeners;
33
36
  private snapshot;
34
37
  private pendingConnectionKey?;
35
- private feed?;
36
- private covered?;
37
- /** The version of the read in flight; a context change abandons it. */
38
- private readingVersion?;
39
- private rereadAfterRead;
38
+ private stopQuery?;
40
39
  private deniedRead;
41
- constructor(client: SourceCommandClient, context: SourceStatusViewContext);
40
+ private ageTimer?;
41
+ constructor(client: SourceCommandClient, context: SourceStatusViewContext, cache?: GatewayResourceCache | undefined);
42
42
  getSnapshot: () => SourceStatusSnapshot;
43
43
  subscribe: (listener: () => void) => (() => void);
44
+ /** Repaint relative age only; this clock never refreshes facts or changes selections. */
45
+ private updateAgeTimer;
44
46
  private update;
45
- /**
46
- * Live source status (ADR-069 Amendment 1): reread when the gateway's source
47
- * revision passes what the last read covered. Reconnects stay with the host,
48
- * which already rereads on every new connection.
49
- */
50
- attachFeed(feed: SourceChangeFeed): () => void;
51
- private observeFeed;
47
+ private observeQuery;
48
+ dispose(): void;
52
49
  setContext(context: SourceStatusViewContext): boolean;
50
+ /** A retired cache must never observe a context from the replacement connection. */
51
+ bind(context: SourceStatusViewContext, cache: GatewayResourceCache | undefined): boolean;
53
52
  refresh(): Promise<void>;
54
53
  select(selection: SourceSelection): void;
55
54
  clearSelection(sourceId: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/sources/controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,gBAAgB,EAEtB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EAEzB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+FAA+F;IAC/F,MAAM,EAAE,OAAO,CAAC;IAChB,8CAA8C;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,WAAW,EAAE,OAAO,CAAC;CACtB;AAQD,0FAA0F;AAC1F,qBAAa,sBAAsB;IAe/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAdzB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,MAAM,CAAC,CAAsB;IACrC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,oBAAoB,CAAC,CAAS;IACtC,OAAO,CAAC,IAAI,CAAC,CAAmB;IAChC,OAAO,CAAC,OAAO,CAAC,CAAqB;IACrC,uEAAuE;IACvE,OAAO,CAAC,cAAc,CAAC,CAAS;IAChC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,UAAU,CAAS;gBAGR,MAAM,EAAE,mBAAmB,EAC5C,OAAO,EAAE,uBAAuB;IAgBlC,WAAW,QAAO,oBAAoB,CAAkB;IAExD,SAAS,GAAI,UAAU,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC,CAG9C;IAEF,OAAO,CAAC,MAAM;IAsCd;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,IAAI;IAU9C,OAAO,CAAC,WAAW;IAiBnB,UAAU,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO;IAmC/C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAiC9B,MAAM,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IASxC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOhC,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CjE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YASd,aAAa;CAmC5B"}
1
+ {"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/sources/controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG1F,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EAGzB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,mBAAmB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,qBAAqB,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,+FAA+F;IAC/F,MAAM,EAAE,OAAO,CAAC;IAChB,8CAA8C;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,2EAA2E;IAC3E,WAAW,EAAE,OAAO,CAAC;CACtB;AAQD,0FAA0F;AAC1F,qBAAa,sBAAsB;IAY/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,KAAK,CAAC;IAbhB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,MAAM,CAAC,CAAsB;IACrC,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,oBAAoB,CAAC,CAAS;IACtC,OAAO,CAAC,SAAS,CAAC,CAAa;IAC/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAC,CAAgC;gBAG9B,MAAM,EAAE,mBAAmB,EAC5C,OAAO,EAAE,uBAAuB,EACxB,KAAK,CAAC,EAAE,oBAAoB,YAAA;IAkBtC,WAAW,QAAO,oBAAoB,CAAkB;IAExD,SAAS,GAAI,UAAU,MAAM,IAAI,KAAG,CAAC,MAAM,IAAI,CAAC,CAO9C;IAEF,yFAAyF;IACzF,OAAO,CAAC,cAAc;IAuBtB,OAAO,CAAC,MAAM;IAgDd,OAAO,CAAC,YAAY;IAkBpB,OAAO,IAAI,IAAI;IASf,UAAU,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO;IAIrD,oFAAoF;IACpF,IAAI,CAAC,OAAO,EAAE,uBAAuB,EAAE,KAAK,EAAE,oBAAoB,GAAG,SAAS,GAAG,OAAO;IA4ClF,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,MAAM,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IASxC,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOhC,KAAK,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCjE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YASd,aAAa;CAkC5B"}
@@ -1,5 +1,4 @@
1
- import { isNewerSourceRevision, } from './changes.js';
2
- import { sourceStatusParamsForTarget, } from './client.js';
1
+ import { sourceStatusParamsForTarget, sourceStatusQuery, } from './client.js';
3
2
  import { deriveSourceStatusView, } from './status-view.js';
4
3
  function commandLabel(command) {
5
4
  if (command.method === 'sources.sync')
@@ -8,19 +7,24 @@ function commandLabel(command) {
8
7
  }
9
8
  /** One context-bound controller serves thin web/native status and selection renderers. */
10
9
  export class SourceStatusController {
11
- constructor(client, context) {
10
+ constructor(client, context, cache) {
12
11
  this.client = client;
12
+ this.cache = cache;
13
13
  this.version = 0;
14
14
  this.listeners = new Set();
15
- this.rereadAfterRead = false;
16
15
  this.deniedRead = false;
17
16
  this.getSnapshot = () => this.snapshot;
18
17
  this.subscribe = (listener) => {
19
18
  this.listeners.add(listener);
20
- return () => this.listeners.delete(listener);
19
+ this.updateAgeTimer();
20
+ return () => {
21
+ this.listeners.delete(listener);
22
+ this.updateAgeTimer();
23
+ };
21
24
  };
22
25
  this.context = structuredClone(context);
23
26
  this.snapshot = {
27
+ freshness: 'loading',
24
28
  loading: false,
25
29
  busy: false,
26
30
  selections: structuredClone([...(context.selections ?? [])]),
@@ -31,18 +35,43 @@ export class SourceStatusController {
31
35
  unsupported: false,
32
36
  };
33
37
  this.update({});
38
+ this.observeQuery();
39
+ }
40
+ /** Repaint relative age only; this clock never refreshes facts or changes selections. */
41
+ updateAgeTimer() {
42
+ if (this.ageTimer !== undefined)
43
+ clearTimeout(this.ageTimer);
44
+ this.ageTimer = undefined;
45
+ if (!this.listeners.size ||
46
+ this.snapshot.freshness === 'ready' ||
47
+ !this.snapshot.view ||
48
+ this.snapshot.observedAt === undefined)
49
+ return;
50
+ const elapsed = Math.max(0, Date.now() - this.snapshot.observedAt);
51
+ const interval = elapsed < 60_000 ? 1000 : 60_000;
52
+ this.ageTimer = setTimeout(() => {
53
+ this.ageTimer = undefined;
54
+ this.snapshot = { ...this.snapshot };
55
+ for (const listener of this.listeners)
56
+ listener();
57
+ this.updateAgeTimer();
58
+ }, interval - (elapsed % interval));
34
59
  }
35
60
  update(change) {
36
61
  this.snapshot = { ...this.snapshot, ...change };
37
- if (this.status)
38
- this.snapshot.view = deriveSourceStatusView(this.status, {
62
+ this.snapshot.view = this.status
63
+ ? deriveSourceStatusView(this.status, {
39
64
  ...this.context,
40
65
  ...(this.context.selections !== undefined || this.snapshot.selections.length
41
66
  ? { selections: this.snapshot.selections }
42
67
  : {}),
43
- });
68
+ })
69
+ : undefined;
44
70
  this.snapshot.interactive =
45
- !this.snapshot.busy && !this.snapshot.loading && !this.snapshot.pending;
71
+ this.snapshot.freshness === 'ready' &&
72
+ !this.snapshot.busy &&
73
+ !this.snapshot.loading &&
74
+ !this.snapshot.pending;
46
75
  this.snapshot.canEdit = this.snapshot.interactive && this.snapshot.view?.editable === true;
47
76
  const view = this.snapshot.view;
48
77
  // A failed read stays visible, even over a context that was empty when last read.
@@ -51,8 +80,11 @@ export class SourceStatusController {
51
80
  (this.snapshot.error !== undefined && this.deniedRead) ||
52
81
  (!view && this.snapshot.error === undefined && !this.snapshot.pending);
53
82
  this.snapshot.controls = Boolean(view && (view.editable || view.draft || view.actions.length > 0));
54
- this.snapshot.unsupported =
55
- this.status?.configured === true && this.feed?.getState().announced === false;
83
+ this.snapshot.unsupported = this.snapshot.freshness === 'unsupported';
84
+ this.snapshot.canRetry = Boolean(!this.snapshot.busy &&
85
+ this.snapshot.pending &&
86
+ this.snapshot.freshness === 'ready' &&
87
+ this.pendingConnectionKey === this.context.connectionKey);
56
88
  this.snapshot.selectionRefusal =
57
89
  this.snapshot.view?.selectionErrors[0] ??
58
90
  (!this.context.target &&
@@ -67,43 +99,46 @@ export class SourceStatusController {
67
99
  : undefined);
68
100
  for (const listener of this.listeners)
69
101
  listener();
102
+ this.updateAgeTimer();
70
103
  }
71
- /**
72
- * Live source status (ADR-069 Amendment 1): reread when the gateway's source
73
- * revision passes what the last read covered. Reconnects stay with the host,
74
- * which already rereads on every new connection.
75
- */
76
- attachFeed(feed) {
77
- this.feed = feed;
78
- const unsubscribe = feed.subscribe(() => this.observeFeed());
79
- this.observeFeed();
80
- return () => {
81
- unsubscribe();
82
- if (this.feed === feed)
83
- this.feed = undefined;
84
- };
104
+ observeQuery() {
105
+ this.stopQuery?.();
106
+ this.stopQuery = undefined;
107
+ if (!this.cache)
108
+ return;
109
+ const params = this.context.params ?? sourceStatusParamsForTarget(undefined, this.context.target);
110
+ this.stopQuery = this.cache.observe(sourceStatusQuery(params), (state) => {
111
+ this.status = state.data;
112
+ this.deniedRead = state.error?.code === 'AUTH_FORBIDDEN';
113
+ this.update({
114
+ freshness: state.status,
115
+ observedAt: state.observedAt,
116
+ loading: state.status === 'loading',
117
+ error: state.error?.message,
118
+ });
119
+ });
85
120
  }
86
- observeFeed() {
87
- const latest = this.feed?.getState().latest;
88
- if (latest && isNewerSourceRevision(latest, this.covered)) {
89
- // A change during any read, the first included, is not covered by it.
90
- if (this.readingVersion === this.version) {
91
- this.rereadAfterRead = true;
92
- return;
93
- }
94
- // Before the first read the host's initial load covers the current state.
95
- if (this.status || this.snapshot.error) {
96
- void this.refresh();
97
- return;
98
- }
99
- }
100
- this.update({});
121
+ dispose() {
122
+ this.version++;
123
+ this.stopQuery?.();
124
+ this.stopQuery = undefined;
125
+ this.cache = undefined;
126
+ this.listeners.clear();
127
+ this.updateAgeTimer();
101
128
  }
102
129
  setContext(context) {
103
- if (JSON.stringify(context) === JSON.stringify(this.context))
130
+ return this.bind(context, this.cache);
131
+ }
132
+ /** A retired cache must never observe a context from the replacement connection. */
133
+ bind(context, cache) {
134
+ const cacheChanged = cache !== this.cache;
135
+ const contextChanged = JSON.stringify(context) !== JSON.stringify(this.context);
136
+ this.cache = cache;
137
+ if (!cacheChanged && !contextChanged)
104
138
  return false;
105
- if (JSON.stringify({ ...context, selections: undefined }) ===
106
- JSON.stringify({ ...this.context, selections: undefined })) {
139
+ if (!cacheChanged &&
140
+ JSON.stringify({ ...context, selections: undefined }) ===
141
+ JSON.stringify({ ...this.context, selections: undefined })) {
107
142
  this.context = structuredClone(context);
108
143
  if (this.snapshot.busy && !this.snapshot.pending)
109
144
  this.version++;
@@ -116,12 +151,14 @@ export class SourceStatusController {
116
151
  // An uncertain mutation retains its exact old target/request even if the view changes.
117
152
  const canRetry = this.pendingConnectionKey === context.connectionKey;
118
153
  this.update({
154
+ freshness: 'loading',
155
+ observedAt: undefined,
119
156
  loading: false,
120
157
  view: undefined,
121
158
  error: undefined,
122
159
  operationError: undefined,
123
160
  notice: undefined,
124
- selections: structuredClone([...(context.selections ?? [])]),
161
+ selections: structuredClone(contextChanged ? [...(context.selections ?? [])] : this.snapshot.selections),
125
162
  ...(this.snapshot.pending
126
163
  ? {
127
164
  canRetry,
@@ -131,60 +168,29 @@ export class SourceStatusController {
131
168
  }
132
169
  : {}),
133
170
  });
171
+ this.observeQuery();
134
172
  return true;
135
173
  }
136
174
  async refresh() {
137
- const version = ++this.version;
138
175
  const params = this.context.params ?? sourceStatusParamsForTarget(undefined, this.context.target);
139
- // Gateways publish only after a change is readable, so this read covers the mark.
140
- this.covered = this.feed?.getState().latest;
141
- this.readingVersion = version;
142
- this.rereadAfterRead = false;
143
- this.update({ loading: true, error: undefined });
144
- try {
145
- const status = await this.client.status(params);
146
- if (version !== this.version)
147
- return;
148
- this.status = status;
149
- this.deniedRead = false;
150
- this.update({ loading: false });
151
- }
152
- catch (error) {
153
- // Read failures remain visible; stale responses cannot replace another context's facts.
154
- if (version === this.version) {
155
- this.deniedRead = error.code === 'AUTH_FORBIDDEN';
156
- this.update({ loading: false, error: error.message });
157
- }
158
- }
159
- finally {
160
- if (version === this.version) {
161
- this.readingVersion = undefined;
162
- // A change seen during the read is not covered by it: read once more.
163
- if (this.rereadAfterRead) {
164
- this.rereadAfterRead = false;
165
- void this.refresh();
166
- }
167
- }
168
- }
176
+ await this.cache?.retry(sourceStatusQuery(params));
169
177
  }
170
178
  select(selection) {
171
- if (!this.snapshot.view?.editable || this.snapshot.busy || this.snapshot.pending)
179
+ if (!this.snapshot.canEdit)
172
180
  return;
173
181
  const selections = this.snapshot.selections.filter((value) => value.sourceId !== selection.sourceId);
174
182
  selections.push(structuredClone(selection));
175
183
  this.update({ selections });
176
184
  }
177
185
  clearSelection(sourceId) {
178
- if (!this.snapshot.view?.editable || this.snapshot.busy || this.snapshot.pending)
186
+ if (!this.snapshot.canEdit)
179
187
  return;
180
188
  this.update({
181
189
  selections: this.snapshot.selections.filter((selection) => selection.sourceId !== sourceId),
182
190
  });
183
191
  }
184
192
  async apply(action, sourceId) {
185
- if (this.snapshot.busy ||
186
- this.snapshot.pending ||
187
- !this.snapshot.view?.actions.includes(action))
193
+ if (!this.snapshot.interactive || !this.snapshot.view?.actions.includes(action))
188
194
  return;
189
195
  const version = this.version;
190
196
  this.update({ busy: true, error: undefined, operationError: undefined, notice: undefined });
@@ -222,7 +228,7 @@ export class SourceStatusController {
222
228
  }
223
229
  }
224
230
  async retry() {
225
- if (this.snapshot.busy || !this.snapshot.pending)
231
+ if (this.snapshot.busy || !this.snapshot.pending || this.snapshot.freshness !== 'ready')
226
232
  return;
227
233
  if (this.pendingConnectionKey !== this.context.connectionKey) {
228
234
  this.update({ error: 'Select the original farm connection to retry this source action.' });
@@ -252,7 +258,6 @@ export class SourceStatusController {
252
258
  : undefined,
253
259
  selections: [],
254
260
  });
255
- await this.refresh();
256
261
  }
257
262
  catch (error) {
258
263
  // A missing acknowledgement keeps the same operation ID, revisions and explicit target.
@@ -1 +1 @@
1
- {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/sources/controller.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,GAGtB,MAAM,cAAc,CAAC;AACtB,OAAO,EAGL,2BAA2B,GAC5B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,sBAAsB,GAIvB,MAAM,kBAAkB,CAAC;AAwB1B,SAAS,YAAY,CAAC,OAA8B;IAClD,IAAI,OAAO,CAAC,MAAM,KAAK,cAAc;QACnC,OAAO,QAAQ,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;IAClG,OAAO,GAAG,OAAO,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,QAAQ,UAAU,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC/M,CAAC;AAED,0FAA0F;AAC1F,MAAM,OAAO,sBAAsB;IAcjC,YACmB,MAA2B,EAC5C,OAAgC;QADf,WAAM,GAAN,MAAM,CAAqB;QAZtC,YAAO,GAAG,CAAC,CAAC;QACZ,cAAS,GAAG,IAAI,GAAG,EAAc,CAAC;QAOlC,oBAAe,GAAG,KAAK,CAAC;QACxB,eAAU,GAAG,KAAK,CAAC;QAoB3B,gBAAW,GAAG,GAAyB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;QAExD,cAAS,GAAG,CAAC,QAAoB,EAAgB,EAAE;YACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC,CAAC;QAnBA,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG;YACd,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,KAAK;YACX,UAAU,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5D,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,KAAK;YACf,WAAW,EAAE,KAAK;SACnB,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IASO,MAAM,CAAC,MAAqC;QAClD,IAAI,CAAC,QAAQ,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;QAChD,IAAI,IAAI,CAAC,MAAM;YACb,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,MAAM,EAAE;gBACvD,GAAG,IAAI,CAAC,OAAO;gBACf,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM;oBAC1E,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;oBAC1C,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;QACL,IAAI,CAAC,QAAQ,CAAC,WAAW;YACvB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC1E,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;QAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAChC,kFAAkF;QAClF,IAAI,CAAC,QAAQ,CAAC,MAAM;YAClB,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC;gBAC5D,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC;gBACtD,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzE,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAC9B,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CACjE,CAAC;QACF,IAAI,CAAC,QAAQ,CAAC,WAAW;YACvB,IAAI,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,SAAS,KAAK,KAAK,CAAC;QAChF,IAAI,CAAC,QAAQ,CAAC,gBAAgB;YAC5B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;gBACtC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;oBACrB,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS;oBACrC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM;oBAC7B,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK;wBACpB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW;4BACzB,CAAC,CAAC,uCAAuC;4BACzC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI;gCACnB,CAAC,CAAC,yCAAyC;gCAC3C,CAAC,CAAC,SAAS,CAAC,CAAC;oBACnB,CAAC,CAAC,SAAS,CAAC,CAAC;QACjB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS;YAAE,QAAQ,EAAE,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,IAAsB;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,GAAG,EAAE;YACV,WAAW,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QAChD,CAAC,CAAC;IACJ,CAAC;IAEO,WAAW;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC;QAC5C,IAAI,MAAM,IAAI,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,sEAAsE;YACtE,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBACzC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,0EAA0E;YAC1E,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;gBACvC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO;YACT,CAAC;QACH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,UAAU,CAAC,OAAgC;QACzC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3E,IACE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC;YACrD,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,EAC1D,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;YACxC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YACjE,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC9E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,uFAAuF;QACvF,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,KAAK,OAAO,CAAC,aAAa,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC;YACV,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,cAAc,EAAE,SAAS;YACzB,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5D,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO;gBACvB,CAAC,CAAC;oBACE,QAAQ;oBACR,YAAY,EAAE,QAAQ;wBACpB,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;wBACrC,CAAC,CAAC,0DAA0D;iBAC/D;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,OAAO,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC;QAC/B,MAAM,MAAM,GACV,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,2BAA2B,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACrF,kFAAkF;QAClF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wFAAwF;YACxF,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,UAAU,GAAI,KAA2B,CAAC,IAAI,KAAK,gBAAgB,CAAC;gBACzE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;gBAChC,sEAAsE;gBACtE,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;oBACzB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;oBAC7B,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;gBACtB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,CAAC,SAA0B;QAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAO;QACzF,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAChD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,CACjD,CAAC;QACF,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,cAAc,CAAC,QAAgB;QAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAO;QACzF,IAAI,CAAC,MAAM,CAAC;YACV,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC;SAC5F,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAwB,EAAE,QAAiB;QACrD,IACE,IAAI,CAAC,QAAQ,CAAC,IAAI;YAClB,IAAI,CAAC,QAAQ,CAAC,OAAO;YACrB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;YAE7C,OAAO;QACT,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5F,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACnC,IAAI,OAA8B,CAAC;YACnC,IAAI,MAAM,KAAK,MAAM;gBACnB,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;oBACtC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACjC,GAAG,CAAC,MAAM,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjE,CAAC,CAAC;iBACA,CAAC;gBACJ,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ;oBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;gBAC5E,IAAI,MAAM,KAAK,OAAO;oBAAE,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;qBACrF,CAAC;oBACJ,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;oBACxF,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;wBACrC,QAAQ;wBACR,GAAG,MAAM;wBACT,GAAG,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE;qBAC1B,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YACD,IAAI,OAAO,KAAK,IAAI,CAAC,OAAO;gBAC1B,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;YACJ,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACvF,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,0FAA0F;YAC1F,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAO;QACzD,IAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,kEAAkE,EAAE,CAAC,CAAC;YAC3F,OAAO;QACT,CAAC;QACD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QACtC,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,MAAM,CAAC;gBACV,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,SAAS;gBAClB,YAAY,EAAE,SAAS;gBACvB,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,GAAG;gBAC1F,oFAAoF;gBACpF,cAAc,EAAE,MAAM,CAAC,MAAM;oBAC3B,CAAC,CAAC,MAAM;yBACH,GAAG,CACF,CAAC,KAAK,EAAE,EAAE,CACR,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,QAAQ,KAAK,KAAK,CAAC,MAAM,EAAE,CAC9G;yBACA,IAAI,CAAC,IAAI,CAAC;oBACf,CAAC,CAAC,SAAS;gBACb,UAAU,EAAE,EAAE;aACf,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wFAAwF;YACxF,MAAM,KAAK,GAAI,KAA2B,CAAC,IAAI,KAAK,oBAAoB,CAAC;YACzE,IAAI,CAAC,MAAM,CAAC;gBACV,IAAI,EAAE,KAAK;gBACX,cAAc,EAAG,KAAe,CAAC,OAAO;gBACxC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../../src/sources/controller.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import type { SourcesStatusParams, SourcesStatusResult } from '../rpc/sources.js
2
2
  import type { SourceDeclaration, SourceLock, SourceLockEntry, SourceResolution } from './contracts.js';
3
3
  import { type SourceEffectiveSelection, type SourcePinTarget, type SourceSelection } from './pins.js';
4
4
  export type SourceViewAction = 'sync' | 'pin' | 'unpin';
5
+ /** Display the age of a retained observation without requesting newer facts. */
6
+ export declare function sourceObservationAge(observedAt: number | undefined, now?: number): string;
5
7
  export declare const SOURCE_VIEW_ACTION_LABELS: Record<SourceViewAction, string>;
6
8
  /** Callers select presentation and actions; the gateway remains the mutation authority. */
7
9
  export interface SourceStatusViewContext {
@@ -1 +1 @@
1
- {"version":3,"file":"status-view.d.ts","sourceRoot":"","sources":["../../src/sources/status-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGlF,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,eAAe,EAGrB,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AACxD,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAItE,CAAC;AAEF,2FAA2F;AAC3F,MAAM,WAAW,uBAAuB;IACtC,8FAA8F;IAC9F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACrC,UAAU,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,aAAa,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QAAC,KAAK,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;IACjG,gBAAgB,EAAE,KAAK,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,wFAAwF;IACxF,MAAM,EAAE,OAAO,CAAC;IAChB,mFAAmF;IACnF,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,EAAE,mBAAmB,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;CACvC;AAED,wFAAwF;AACxF,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,uBAAuB,GAC/B,qBAAqB,CA+JvB"}
1
+ {"version":3,"file":"status-view.d.ts","sourceRoot":"","sources":["../../src/sources/status-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGlF,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,eAAe,EAGrB,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAExD,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,SAAa,GAAG,MAAM,CAQ7F;AACD,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAItE,CAAC;AAEF,2FAA2F;AAC3F,MAAM,WAAW,uBAAuB;IACtC,8FAA8F;IAC9F,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACrC,UAAU,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,SAAS,CAAC,EAAE,wBAAwB,CAAC;IACrC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,aAAa,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QAAC,KAAK,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;IACjG,gBAAgB,EAAE,KAAK,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC,CAAC;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,wFAAwF;IACxF,MAAM,EAAE,OAAO,CAAC;IAChB,mFAAmF;IACnF,IAAI,EAAE,MAAM,CAAC;IACb,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,EAAE,mBAAmB,EAAE,CAAC;IAC5B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;CACvC;AAED,wFAAwF;AACxF,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,uBAAuB,GAC/B,qBAAqB,CA+JvB"}
@@ -1,5 +1,18 @@
1
1
  import { sourceStatusParamsForTarget } from './client.js';
2
2
  import { validateSourceSelection, validateSourceSelections, } from './pins.js';
3
+ /** Display the age of a retained observation without requesting newer facts. */
4
+ export function sourceObservationAge(observedAt, now = Date.now()) {
5
+ if (observedAt === undefined)
6
+ return 'age unknown';
7
+ const seconds = Math.floor(Math.max(0, now - observedAt) / 1000);
8
+ if (seconds < 60)
9
+ return `${seconds}s old`;
10
+ const minutes = Math.floor(seconds / 60);
11
+ if (minutes < 60)
12
+ return `${minutes}m old`;
13
+ const hours = Math.floor(minutes / 60);
14
+ return hours < 24 ? `${hours}h old` : `${Math.floor(hours / 24)}d old`;
15
+ }
3
16
  export const SOURCE_VIEW_ACTION_LABELS = {
4
17
  sync: 'Sync',
5
18
  pin: 'Pin branch',