@farmslot/protocol 0.74.0 → 0.74.2
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/CHANGELOG.md +23 -9
- package/README.md +9 -0
- package/dist/client-cache/cache.d.ts +4 -0
- package/dist/client-cache/cache.d.ts.map +1 -0
- package/dist/client-cache/cache.js +1102 -0
- package/dist/client-cache/cache.js.map +1 -0
- package/dist/client-cache/collector-admission.d.ts +29 -0
- package/dist/client-cache/collector-admission.d.ts.map +1 -0
- package/dist/client-cache/collector-admission.js +183 -0
- package/dist/client-cache/collector-admission.js.map +1 -0
- package/dist/client-cache/command-method.d.ts +5 -0
- package/dist/client-cache/command-method.d.ts.map +1 -0
- package/dist/client-cache/command-method.js +2 -0
- package/dist/client-cache/command-method.js.map +1 -0
- package/dist/client-cache/conformance.d.ts +36 -0
- package/dist/client-cache/conformance.d.ts.map +1 -0
- package/dist/client-cache/conformance.js +578 -0
- package/dist/client-cache/conformance.js.map +1 -0
- package/dist/client-cache/content.d.ts +29 -0
- package/dist/client-cache/content.d.ts.map +1 -0
- package/dist/client-cache/content.js +101 -0
- package/dist/client-cache/content.js.map +1 -0
- package/dist/client-cache/d07-domains.d.ts +17 -0
- package/dist/client-cache/d07-domains.d.ts.map +1 -0
- package/dist/client-cache/d07-domains.js +111 -0
- package/dist/client-cache/d07-domains.js.map +1 -0
- package/dist/client-cache/diff-apply.d.ts +29 -0
- package/dist/client-cache/diff-apply.d.ts.map +1 -0
- package/dist/client-cache/diff-apply.js +206 -0
- package/dist/client-cache/diff-apply.js.map +1 -0
- package/dist/client-cache/index.d.ts +14 -10
- package/dist/client-cache/index.d.ts.map +1 -1
- package/dist/client-cache/index.js +14 -1
- package/dist/client-cache/index.js.map +1 -1
- package/dist/client-cache/keys.d.ts +126 -0
- package/dist/client-cache/keys.d.ts.map +1 -0
- package/dist/client-cache/keys.js +25 -0
- package/dist/client-cache/keys.js.map +1 -0
- package/dist/client-cache/native-history.d.ts +64 -0
- package/dist/client-cache/native-history.d.ts.map +1 -0
- package/dist/client-cache/native-history.js +285 -0
- package/dist/client-cache/native-history.js.map +1 -0
- package/dist/client-cache/prefetch.d.ts +50 -0
- package/dist/client-cache/prefetch.d.ts.map +1 -0
- package/dist/client-cache/prefetch.js +507 -0
- package/dist/client-cache/prefetch.js.map +1 -0
- package/dist/client-cache/registry.d.ts +1365 -0
- package/dist/client-cache/registry.d.ts.map +1 -0
- package/dist/client-cache/registry.js +1038 -0
- package/dist/client-cache/registry.js.map +1 -0
- package/dist/client-cache/run-list-versions.d.ts +70 -0
- package/dist/client-cache/run-list-versions.d.ts.map +1 -0
- package/dist/client-cache/run-list-versions.js +309 -0
- package/dist/client-cache/run-list-versions.js.map +1 -0
- package/dist/client-cache/store.d.ts +128 -0
- package/dist/client-cache/store.d.ts.map +1 -0
- package/dist/client-cache/store.js +190 -0
- package/dist/client-cache/store.js.map +1 -0
- package/dist/client-cache/transport.d.ts +27 -0
- package/dist/client-cache/transport.d.ts.map +1 -0
- package/dist/client-cache/transport.js +56 -0
- package/dist/client-cache/transport.js.map +1 -0
- package/dist/client-cache/types.d.ts +116 -0
- package/dist/client-cache/types.d.ts.map +1 -0
- package/dist/client-cache/types.js +2 -0
- package/dist/client-cache/types.js.map +1 -0
- package/dist/client-cache/upstream-retention.d.ts +6 -0
- package/dist/client-cache/upstream-retention.d.ts.map +1 -0
- package/dist/client-cache/upstream-retention.js +28 -0
- package/dist/client-cache/upstream-retention.js.map +1 -0
- package/dist/client-cache/workspace-retention.d.ts +7 -0
- package/dist/client-cache/workspace-retention.d.ts.map +1 -0
- package/dist/client-cache/workspace-retention.js +46 -0
- package/dist/client-cache/workspace-retention.js.map +1 -0
- package/dist/contracts/provider-accounts.d.ts +31 -0
- package/dist/contracts/provider-accounts.d.ts.map +1 -1
- package/dist/contracts/provider-accounts.js +209 -1
- package/dist/contracts/provider-accounts.js.map +1 -1
- package/dist/contracts/run-bundles.d.ts.map +1 -1
- package/dist/contracts/run-bundles.js +2 -0
- package/dist/contracts/run-bundles.js.map +1 -1
- package/dist/contracts/runs.d.ts +4 -0
- package/dist/contracts/runs.d.ts.map +1 -1
- package/dist/contracts/runs.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/person-session-client.d.ts +4 -1
- package/dist/person-session-client.d.ts.map +1 -1
- package/dist/person-session-client.js.map +1 -1
- package/dist/rpc/auth.d.ts +17 -0
- package/dist/rpc/auth.d.ts.map +1 -1
- package/dist/rpc/auth.js.map +1 -1
- package/dist/rpc/config.d.ts +2 -0
- package/dist/rpc/config.d.ts.map +1 -1
- package/dist/rpc/config.js.map +1 -1
- package/dist/rpc/fs.d.ts +110 -4
- package/dist/rpc/fs.d.ts.map +1 -1
- package/dist/rpc/fs.js +7 -1
- package/dist/rpc/fs.js.map +1 -1
- package/dist/rpc/gateway.d.ts +3 -0
- package/dist/rpc/gateway.d.ts.map +1 -1
- package/dist/rpc/git.d.ts +42 -0
- package/dist/rpc/git.d.ts.map +1 -1
- package/dist/rpc/index.d.ts +1 -0
- package/dist/rpc/index.d.ts.map +1 -1
- package/dist/rpc/index.js +1 -0
- package/dist/rpc/index.js.map +1 -1
- package/dist/rpc/native-session.d.ts +2 -0
- package/dist/rpc/native-session.d.ts.map +1 -1
- package/dist/rpc/native-session.js.map +1 -1
- package/dist/rpc/nodes.d.ts +2 -0
- package/dist/rpc/nodes.d.ts.map +1 -1
- package/dist/rpc/nodes.js.map +1 -1
- package/dist/rpc/pr-observations.d.ts +22 -0
- package/dist/rpc/pr-observations.d.ts.map +1 -0
- package/dist/rpc/pr-observations.js +104 -0
- package/dist/rpc/pr-observations.js.map +1 -0
- package/dist/rpc/pr.d.ts +9 -0
- package/dist/rpc/pr.d.ts.map +1 -1
- package/dist/rpc/pr.js +1 -1
- package/dist/rpc/pr.js.map +1 -1
- package/dist/rpc/principal.d.ts +2 -0
- package/dist/rpc/principal.d.ts.map +1 -1
- package/dist/rpc/registry.d.ts +1 -0
- package/dist/rpc/registry.d.ts.map +1 -1
- package/dist/rpc/registry.js +2 -0
- package/dist/rpc/registry.js.map +1 -1
- package/dist/rpc/resource-observers.d.ts +32 -0
- package/dist/rpc/resource-observers.d.ts.map +1 -0
- package/dist/rpc/resource-observers.js +2 -0
- package/dist/rpc/resource-observers.js.map +1 -0
- package/dist/rpc/run.d.ts +23 -0
- package/dist/rpc/run.d.ts.map +1 -1
- package/dist/rpc/run.js.map +1 -1
- package/dist/rpc/runner-models.d.ts +15 -0
- package/dist/rpc/runner-models.d.ts.map +1 -1
- package/dist/rpc/runner-models.js +91 -0
- package/dist/rpc/runner-models.js.map +1 -1
- package/dist/runs/review-diff-identity.d.ts +15 -0
- package/dist/runs/review-diff-identity.d.ts.map +1 -0
- package/dist/runs/review-diff-identity.js +47 -0
- package/dist/runs/review-diff-identity.js.map +1 -0
- package/dist/runs/run-list-filter.d.ts +33 -0
- package/dist/runs/run-list-filter.d.ts.map +1 -0
- package/dist/runs/run-list-filter.js +116 -0
- package/dist/runs/run-list-filter.js.map +1 -0
- package/dist/runs/run-list-observation.d.ts +5 -0
- package/dist/runs/run-list-observation.d.ts.map +1 -0
- package/dist/runs/run-list-observation.js +36 -0
- package/dist/runs/run-list-observation.js.map +1 -0
- package/dist/runs/run-list-view.d.ts +6 -2
- package/dist/runs/run-list-view.d.ts.map +1 -1
- package/dist/runs/run-list-view.js +10 -4
- package/dist/runs/run-list-view.js.map +1 -1
- package/dist/slots/cancelled-run-slot.d.ts +2 -1
- package/dist/slots/cancelled-run-slot.d.ts.map +1 -1
- package/dist/sources/client.d.ts +10 -1
- package/dist/sources/client.d.ts.map +1 -1
- package/dist/sources/client.js +23 -4
- package/dist/sources/client.js.map +1 -1
- package/dist/sources/controller.d.ts +13 -14
- package/dist/sources/controller.d.ts.map +1 -1
- package/dist/sources/controller.js +87 -82
- package/dist/sources/controller.js.map +1 -1
- package/dist/sources/status-view.d.ts +2 -0
- package/dist/sources/status-view.d.ts.map +1 -1
- package/dist/sources/status-view.js +13 -0
- package/dist/sources/status-view.js.map +1 -1
- package/dist/transport/events.d.ts +1 -4
- package/dist/transport/events.d.ts.map +1 -1
- package/dist/transport/events.js +1 -0
- package/dist/transport/events.js.map +1 -1
- package/dist/transport/frames.d.ts +6 -0
- package/dist/transport/frames.d.ts.map +1 -1
- package/dist/transport/frames.js.map +1 -1
- package/dist/transport/observations.d.ts +24 -0
- package/dist/transport/observations.d.ts.map +1 -0
- package/dist/transport/observations.js +2 -0
- package/dist/transport/observations.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
- package/dist/sources/changes.d.ts +0 -37
- package/dist/sources/changes.d.ts.map +0 -1
- package/dist/sources/changes.js +0 -79
- package/dist/sources/changes.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/client-cache/content.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAM/D,OAAO,EACL,KAAK,UAAU,EAEf,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC7B,MAAM,YAAY,CAAC;AAGpB,mGAAmG;AACnG,eAAO,MAAM,uBAAuB;;;;CAI1B,CAAC;AAEX,yFAAyF;AACzF,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAGpD;AAED;iEACiE;AACjE,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,UAAU,EAChB,cAAc,GAAE,kBAAkB,CAAC,gBAAgB,CAAM,GACxD,OAAO,CAcT;AAYD,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAKtF;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,UAAU,EAAE,CAAC;CACvB;AASD,mGAAmG;AACnG,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,wBAAwB,EAClC,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAKT;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,wBAAwB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EACtD,OAAO,EAAE,SAAS,yBAAyB,EAAE,EAC7C,SAAS,EAAE,SAAS,uBAAuB,EAAE,EAC7C,MAAM,EAAE,MAAM,GACb,uBAAuB,GAAG,SAAS,CA4CrC"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { sha1 } from '@noble/hashes/sha1';
|
|
2
|
+
import { sha256 } from '@noble/hashes/sha256';
|
|
3
|
+
import { bytesToHex } from '@noble/hashes/utils';
|
|
4
|
+
import { reviewSnapshotIdentityText, verifiedReviewDiffHash, } from '../runs/review-diff-identity.js';
|
|
5
|
+
import { resourceContentId, } from './store.js';
|
|
6
|
+
const mb = 1024 * 1024;
|
|
7
|
+
/** Content rule 4 (initial): larger files, binary files and larger diffs load only when opened. */
|
|
8
|
+
export const RESOURCE_CONTENT_LIMITS = {
|
|
9
|
+
fileBytes: 1 * mb,
|
|
10
|
+
diffBytes: 5 * mb,
|
|
11
|
+
imageBytes: 2 * mb,
|
|
12
|
+
};
|
|
13
|
+
/** The git object id of a file: SHA-1 over the loose-object header and the raw bytes. */
|
|
14
|
+
export function gitBlobHash(data) {
|
|
15
|
+
const header = new TextEncoder().encode(`blob ${data.byteLength}\0`);
|
|
16
|
+
return bytesToHex(sha1.create().update(header).update(data).digest());
|
|
17
|
+
}
|
|
18
|
+
/** Content rules 1 and 2: bytes are stored only under the identity they hash to. A diff also
|
|
19
|
+
* verifies against a legacy package's raw SHA-256 `diffHash`. */
|
|
20
|
+
export function verifyResourceContent(key, data, untrackedFiles = []) {
|
|
21
|
+
switch (key.kind) {
|
|
22
|
+
case 'diff':
|
|
23
|
+
return (verifiedReviewDiffHash(reviewSnapshotIdentityText(new TextDecoder().decode(data), untrackedFiles), key.id) !== undefined);
|
|
24
|
+
case 'blob':
|
|
25
|
+
return gitBlobHash(data) === key.id;
|
|
26
|
+
case 'artifact':
|
|
27
|
+
return bytesToHex(sha256(data)) === key.id;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function isImage(data) {
|
|
31
|
+
const starts = (...bytes) => bytes.every((byte, index) => data[index] === byte);
|
|
32
|
+
return (starts(0x89, 0x50, 0x4e, 0x47) ||
|
|
33
|
+
starts(0xff, 0xd8, 0xff) ||
|
|
34
|
+
starts(0x47, 0x49, 0x46, 0x38) ||
|
|
35
|
+
(starts(0x52, 0x49, 0x46, 0x46) && String.fromCharCode(...data.subarray(8, 12)) === 'WEBP'));
|
|
36
|
+
}
|
|
37
|
+
export function resourceContentWithinLimits(key, data) {
|
|
38
|
+
const limits = RESOURCE_CONTENT_LIMITS;
|
|
39
|
+
if (key.kind === 'diff')
|
|
40
|
+
return data.byteLength <= limits.diffBytes;
|
|
41
|
+
if (key.kind === 'blob')
|
|
42
|
+
return data.byteLength <= limits.fileBytes && !data.includes(0);
|
|
43
|
+
return data.byteLength <= (isImage(data) ? limits.imageBytes : limits.fileBytes);
|
|
44
|
+
}
|
|
45
|
+
/** Content rule 6: prefetch evicts only prefetch rows, and run prefetch never evicts gate rows. */
|
|
46
|
+
export function resourceEvictable(incoming, row) {
|
|
47
|
+
return (incoming.origin !== 'prefetch' ||
|
|
48
|
+
(row.origin === 'prefetch' && (incoming.cohort === 'gate' || row.cohort !== 'gate')));
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Content rules 5 and 6: content and workspace snapshots share one least recently used budget.
|
|
52
|
+
* Prefetch uses at most half of it, never evicts what the user opened, and run prefetch never
|
|
53
|
+
* evicts gate rows. Undefined refuses the incoming entry without evicting anything.
|
|
54
|
+
*/
|
|
55
|
+
export function resourceBudgetEvictions(incoming, content, workspace, budget) {
|
|
56
|
+
const prefetch = incoming.origin === 'prefetch';
|
|
57
|
+
const rows = [
|
|
58
|
+
...content.map((row) => ({
|
|
59
|
+
id: resourceContentId(row),
|
|
60
|
+
bytes: row.bytes,
|
|
61
|
+
accessedAt: row.accessedAt,
|
|
62
|
+
content: { kind: row.kind, id: row.id },
|
|
63
|
+
origin: row.origin,
|
|
64
|
+
cohort: row.cohort,
|
|
65
|
+
})),
|
|
66
|
+
...workspace.map((row) => ({
|
|
67
|
+
id: row.id,
|
|
68
|
+
bytes: row.bytes,
|
|
69
|
+
accessedAt: row.accessedAt || row.observedAt,
|
|
70
|
+
origin: row.origin,
|
|
71
|
+
cohort: row.cohort,
|
|
72
|
+
})),
|
|
73
|
+
].sort((a, b) => a.accessedAt - b.accessedAt || a.id.localeCompare(b.id));
|
|
74
|
+
const evictable = (row) => resourceEvictable(incoming, row);
|
|
75
|
+
const removed = new Set();
|
|
76
|
+
const prefetchBytes = (row) => (row.origin === 'prefetch' ? row.bytes : 0);
|
|
77
|
+
let total = rows.reduce((sum, row) => sum + row.bytes, incoming.bytes);
|
|
78
|
+
let prefetched = rows.reduce((sum, row) => sum + prefetchBytes(row), prefetch ? incoming.bytes : 0);
|
|
79
|
+
const evict = (fits, eligible) => {
|
|
80
|
+
for (const row of rows) {
|
|
81
|
+
if (fits())
|
|
82
|
+
return;
|
|
83
|
+
if (removed.has(row) || !eligible(row))
|
|
84
|
+
continue;
|
|
85
|
+
removed.add(row);
|
|
86
|
+
total -= row.bytes;
|
|
87
|
+
prefetched -= prefetchBytes(row);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
if (prefetch)
|
|
91
|
+
evict(() => prefetched <= budget / 2, evictable);
|
|
92
|
+
evict(() => total <= budget, evictable);
|
|
93
|
+
if (total > budget || (prefetch && prefetched > budget / 2))
|
|
94
|
+
return undefined;
|
|
95
|
+
const victims = [...removed];
|
|
96
|
+
return {
|
|
97
|
+
queries: victims.filter((row) => !row.content).map((row) => row.id),
|
|
98
|
+
content: victims.flatMap((row) => (row.content ? [row.content] : [])),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content.js","sourceRoot":"","sources":["../../src/client-cache/content.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ResourceKey } from './keys.js';
|
|
2
|
+
/** Selectors only. Commands, arbitrary input packets, credentials and paths never enter IDs. */
|
|
3
|
+
export declare function domainParams(params: unknown, allowed: readonly string[]): Record<string, unknown>;
|
|
4
|
+
export declare function domainId(value: unknown, name: string): string;
|
|
5
|
+
export declare function idParams(params: unknown, fields: readonly string[]): Record<string, unknown>;
|
|
6
|
+
export declare function assessmentHistoryParams(params: unknown): Record<string, unknown>;
|
|
7
|
+
export declare function triageParams(params: unknown): Record<string, unknown>;
|
|
8
|
+
export declare function analyticsParams(params: unknown): Record<string, unknown>;
|
|
9
|
+
export declare function sessionContextParams(params: unknown): Record<string, unknown>;
|
|
10
|
+
export declare const prAutomationDependencies: () => ResourceKey[];
|
|
11
|
+
export declare const assessmentDependencies: () => ResourceKey[];
|
|
12
|
+
export declare const copilotRuntimeKey: {
|
|
13
|
+
readonly family: "copilot";
|
|
14
|
+
readonly ownerId: "gateway-copilot";
|
|
15
|
+
};
|
|
16
|
+
export declare function observerEvidenceParams(params: unknown): Record<string, unknown>;
|
|
17
|
+
//# sourceMappingURL=d07-domains.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"d07-domains.d.ts","sourceRoot":"","sources":["../../src/client-cache/d07-domains.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,gGAAgG;AAChG,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAQjG;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAI5F;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAehF;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWrE;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAsBxE;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAS7E;AAED,eAAO,MAAM,wBAAwB,QAAO,WAAW,EAKtD,CAAC;AACF,eAAO,MAAM,sBAAsB,QAAO,WAAW,EAGpD,CAAC;AACF,eAAO,MAAM,iBAAiB;;;CAA6D,CAAC;AAE5F,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAqB/E"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { ASSESSMENT_CONSUMERS } from '../contracts/assessment.js';
|
|
2
|
+
import { GLOBAL_CHAT_SESSION_ID } from '../surfaces/command-center.js';
|
|
3
|
+
/** Selectors only. Commands, arbitrary input packets, credentials and paths never enter IDs. */
|
|
4
|
+
export function domainParams(params, allowed) {
|
|
5
|
+
const input = params ?? {};
|
|
6
|
+
if (typeof input !== 'object' || Array.isArray(input))
|
|
7
|
+
throw new Error('Domain observations require an object');
|
|
8
|
+
const value = Object.fromEntries(Object.entries(input).filter(([, item]) => item !== undefined));
|
|
9
|
+
if (Object.keys(value).some((key) => !allowed.includes(key)))
|
|
10
|
+
throw new Error('Domain observations do not accept commands, paths or owner fields');
|
|
11
|
+
return value;
|
|
12
|
+
}
|
|
13
|
+
export function domainId(value, name) {
|
|
14
|
+
if (typeof value !== 'string' || !/^[A-Za-z0-9][A-Za-z0-9:._-]{0,199}$/.test(value))
|
|
15
|
+
throw new Error(`Invalid domain selector: ${name}`);
|
|
16
|
+
return value;
|
|
17
|
+
}
|
|
18
|
+
export function idParams(params, fields) {
|
|
19
|
+
const value = domainParams(params, fields);
|
|
20
|
+
for (const field of fields)
|
|
21
|
+
domainId(value[field], field);
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
export function assessmentHistoryParams(params) {
|
|
25
|
+
const value = domainParams(params, ['before', 'limit', 'consumer']);
|
|
26
|
+
if (value.before !== undefined && (typeof value.before !== 'string' || value.before.length > 100))
|
|
27
|
+
throw new Error('Invalid assessment cursor');
|
|
28
|
+
if (value.limit !== undefined &&
|
|
29
|
+
(!Number.isSafeInteger(value.limit) || Number(value.limit) < 1 || Number(value.limit) > 100))
|
|
30
|
+
throw new Error('Invalid assessment page size');
|
|
31
|
+
if (value.consumer !== undefined &&
|
|
32
|
+
!ASSESSMENT_CONSUMERS.some((consumer) => consumer === value.consumer))
|
|
33
|
+
throw new Error('Invalid assessment consumer');
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
36
|
+
export function triageParams(params) {
|
|
37
|
+
const value = domainParams(params, ['runId', 'step', 'includeEvidence']);
|
|
38
|
+
domainId(value.runId, 'runId');
|
|
39
|
+
if (value.step !== undefined &&
|
|
40
|
+
(typeof value.step !== 'string' || !/^[\w .-]{1,100}$/.test(value.step)))
|
|
41
|
+
throw new Error('Invalid triage step');
|
|
42
|
+
if (value.includeEvidence !== undefined && typeof value.includeEvidence !== 'boolean')
|
|
43
|
+
throw new Error('Invalid triage evidence selector');
|
|
44
|
+
return value;
|
|
45
|
+
}
|
|
46
|
+
export function analyticsParams(params) {
|
|
47
|
+
const value = domainParams(params, [
|
|
48
|
+
'project',
|
|
49
|
+
'host',
|
|
50
|
+
'flowType',
|
|
51
|
+
'runner',
|
|
52
|
+
'model',
|
|
53
|
+
'lane',
|
|
54
|
+
'since',
|
|
55
|
+
'until',
|
|
56
|
+
]);
|
|
57
|
+
for (const [field, entry] of Object.entries(value)) {
|
|
58
|
+
if (field === 'since' || field === 'until') {
|
|
59
|
+
if (typeof entry !== 'string' || !Number.isFinite(Date.parse(entry)))
|
|
60
|
+
throw new Error(`Invalid analytics time: ${field}`);
|
|
61
|
+
value[field] = new Date(entry).toISOString();
|
|
62
|
+
}
|
|
63
|
+
else if (field === 'model') {
|
|
64
|
+
if (typeof entry !== 'string' || !entry || entry.length > 200 || /[\x00-\x1f]/.test(entry))
|
|
65
|
+
throw new Error('Invalid analytics model');
|
|
66
|
+
}
|
|
67
|
+
else
|
|
68
|
+
domainId(entry, field);
|
|
69
|
+
}
|
|
70
|
+
return value;
|
|
71
|
+
}
|
|
72
|
+
export function sessionContextParams(params) {
|
|
73
|
+
const value = domainParams(params, ['sessionId']);
|
|
74
|
+
const id = typeof value.sessionId === 'string' ? value.sessionId.trim() : value.sessionId;
|
|
75
|
+
const sessionId = id === undefined || id === '' || id === 'default'
|
|
76
|
+
? GLOBAL_CHAT_SESSION_ID
|
|
77
|
+
: domainId(id, 'sessionId');
|
|
78
|
+
if (sessionId.length > 160)
|
|
79
|
+
throw new Error('Invalid chat session selector');
|
|
80
|
+
return { sessionId };
|
|
81
|
+
}
|
|
82
|
+
export const prAutomationDependencies = () => [
|
|
83
|
+
{ family: 'pr-automation', scope: 'farm' },
|
|
84
|
+
{ family: 'runs', scope: 'farm' },
|
|
85
|
+
{ family: 'planning', collection: 'dispatch-queue' },
|
|
86
|
+
{ family: 'configuration', scope: 'farm' },
|
|
87
|
+
];
|
|
88
|
+
export const assessmentDependencies = () => [
|
|
89
|
+
// No private assessment IDs are broadcast to other administrators.
|
|
90
|
+
{ family: 'assessment', scope: 'farm' },
|
|
91
|
+
];
|
|
92
|
+
export const copilotRuntimeKey = { family: 'copilot', ownerId: 'gateway-copilot' };
|
|
93
|
+
export function observerEvidenceParams(params) {
|
|
94
|
+
const value = domainParams(params, ['windowMs', 'limit', 'severity', 'type', 'runId', 'slotId']);
|
|
95
|
+
for (const field of ['windowMs', 'limit']) {
|
|
96
|
+
if (value[field] !== undefined &&
|
|
97
|
+
(typeof value[field] !== 'number' || !Number.isFinite(value[field])))
|
|
98
|
+
throw new Error(`Invalid observer selector: ${field}`);
|
|
99
|
+
}
|
|
100
|
+
if (value.severity !== undefined && !['info', 'warn', 'error'].includes(String(value.severity)))
|
|
101
|
+
throw new Error('Invalid observer severity');
|
|
102
|
+
for (const field of ['type', 'runId', 'slotId'])
|
|
103
|
+
if (value[field] !== undefined)
|
|
104
|
+
domainId(value[field], field);
|
|
105
|
+
return {
|
|
106
|
+
...value,
|
|
107
|
+
windowMs: Math.min(24 * 60 * 60 * 1000, Math.max(1000, Math.floor(Number(value.windowMs ?? 2 * 60 * 60 * 1000)))),
|
|
108
|
+
limit: Math.min(50, Math.max(1, Math.floor(Number(value.limit ?? 20)))),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=d07-domains.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"d07-domains.js","sourceRoot":"","sources":["../../src/client-cache/d07-domains.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/** One line of a hunk. `text` keeps its newline unless git marked "". */
|
|
2
|
+
export interface UnifiedDiffLine {
|
|
3
|
+
op: ' ' | '-' | '+';
|
|
4
|
+
text: string;
|
|
5
|
+
}
|
|
6
|
+
export interface UnifiedDiffHunk {
|
|
7
|
+
oldStart: number;
|
|
8
|
+
oldLines: number;
|
|
9
|
+
lines: UnifiedDiffLine[];
|
|
10
|
+
}
|
|
11
|
+
/** One file section of a git diff. An undefined path is `/dev/null`. */
|
|
12
|
+
export interface UnifiedDiffFile {
|
|
13
|
+
oldPath?: string;
|
|
14
|
+
newPath?: string;
|
|
15
|
+
/** Blob ids from the `index` line, abbreviated unless the diff used `--full-index`. */
|
|
16
|
+
oldId?: string;
|
|
17
|
+
newId?: string;
|
|
18
|
+
oldMode?: string;
|
|
19
|
+
newMode?: string;
|
|
20
|
+
binary: boolean;
|
|
21
|
+
/** A hunk could not be read; the file cannot be rebuilt from this diff. */
|
|
22
|
+
malformed: boolean;
|
|
23
|
+
hunks: UnifiedDiffHunk[];
|
|
24
|
+
}
|
|
25
|
+
/** Parses git's unified diff output, including rename, mode and binary headers. */
|
|
26
|
+
export declare function parseUnifiedDiff(text: string): UnifiedDiffFile[];
|
|
27
|
+
/** Applies a file's hunks exactly, without offsets or fuzz. Undefined when they do not apply. */
|
|
28
|
+
export declare function applyUnifiedDiff(base: string, file: Pick<UnifiedDiffFile, 'binary' | 'malformed' | 'hunks'>): string | undefined;
|
|
29
|
+
//# sourceMappingURL=diff-apply.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-apply.d.ts","sourceRoot":"","sources":["../../src/client-cache/diff-apply.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,wEAAwE;AACxE,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uFAAuF;IACvF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,2EAA2E;IAC3E,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAoGD,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE,CAsDhE;AAYD,iGAAiG;AACjG,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC,GAC5D,MAAM,GAAG,SAAS,CAsBpB"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
const HUNK_HEADER = /^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/;
|
|
2
|
+
const HEADER_FIELDS = [
|
|
3
|
+
'new file mode',
|
|
4
|
+
'deleted file mode',
|
|
5
|
+
'old mode',
|
|
6
|
+
'new mode',
|
|
7
|
+
'rename from',
|
|
8
|
+
'rename to',
|
|
9
|
+
'copy from',
|
|
10
|
+
'copy to',
|
|
11
|
+
'index',
|
|
12
|
+
];
|
|
13
|
+
/** C-style quoting, which git applies to unusual paths even with core.quotePath=false. */
|
|
14
|
+
function readQuoted(text, start) {
|
|
15
|
+
const escapes = {
|
|
16
|
+
a: 7,
|
|
17
|
+
b: 8,
|
|
18
|
+
t: 9,
|
|
19
|
+
n: 10,
|
|
20
|
+
v: 11,
|
|
21
|
+
f: 12,
|
|
22
|
+
r: 13,
|
|
23
|
+
'"': 34,
|
|
24
|
+
'\\': 92,
|
|
25
|
+
};
|
|
26
|
+
const encoder = new TextEncoder();
|
|
27
|
+
const bytes = [];
|
|
28
|
+
for (let index = start + 1; index < text.length; index++) {
|
|
29
|
+
const char = text[index];
|
|
30
|
+
if (char === '"')
|
|
31
|
+
return { value: new TextDecoder().decode(new Uint8Array(bytes)), end: index + 1 };
|
|
32
|
+
if (char !== '\\') {
|
|
33
|
+
const point = String.fromCodePoint(text.codePointAt(index));
|
|
34
|
+
bytes.push(...encoder.encode(point));
|
|
35
|
+
index += point.length - 1;
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
const next = text[++index];
|
|
39
|
+
if (next !== undefined && escapes[next] !== undefined)
|
|
40
|
+
bytes.push(escapes[next]);
|
|
41
|
+
else if (/^[0-7]{3}$/.test(text.slice(index, index + 3))) {
|
|
42
|
+
bytes.push(parseInt(text.slice(index, index + 3), 8));
|
|
43
|
+
index += 2;
|
|
44
|
+
}
|
|
45
|
+
else
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
function unquotePath(raw) {
|
|
51
|
+
return raw.startsWith('"') ? readQuoted(raw, 0)?.value : raw;
|
|
52
|
+
}
|
|
53
|
+
/** Only `diff --git`, `---` and `+++` paths carry the a/ and b/ prefixes. */
|
|
54
|
+
function prefixedPath(raw) {
|
|
55
|
+
return unquotePath(raw)?.replace(/^[ab]\//, '');
|
|
56
|
+
}
|
|
57
|
+
/** `diff --git a/P b/P` names one path twice when no other header names it. */
|
|
58
|
+
function headerPaths(rest) {
|
|
59
|
+
if (rest.startsWith('"')) {
|
|
60
|
+
const first = readQuoted(rest, 0);
|
|
61
|
+
const second = first && prefixedPath(rest.slice(first.end + 1));
|
|
62
|
+
return first && second !== undefined ? [first.value.replace(/^[ab]\//, ''), second] : undefined;
|
|
63
|
+
}
|
|
64
|
+
const half = (rest.length - 1) / 2;
|
|
65
|
+
const [a, b] = [rest.slice(0, half), rest.slice(half + 1)];
|
|
66
|
+
return Number.isInteger(half) && a.slice(2) === b.slice(2) ? [a.slice(2), b.slice(2)] : undefined;
|
|
67
|
+
}
|
|
68
|
+
function readHunk(lines, start) {
|
|
69
|
+
const header = HUNK_HEADER.exec(lines[start]);
|
|
70
|
+
if (!header)
|
|
71
|
+
return { next: start + 1 };
|
|
72
|
+
const hunk = {
|
|
73
|
+
oldStart: Number(header[1]),
|
|
74
|
+
oldLines: header[2] === undefined ? 1 : Number(header[2]),
|
|
75
|
+
lines: [],
|
|
76
|
+
};
|
|
77
|
+
let oldLeft = hunk.oldLines;
|
|
78
|
+
let newLeft = header[4] === undefined ? 1 : Number(header[4]);
|
|
79
|
+
let index = start + 1;
|
|
80
|
+
while (oldLeft > 0 || newLeft > 0) {
|
|
81
|
+
const line = lines[index];
|
|
82
|
+
const op = line?.[0];
|
|
83
|
+
if (op !== ' ' && op !== '-' && op !== '+')
|
|
84
|
+
return { next: index };
|
|
85
|
+
if (op !== '+')
|
|
86
|
+
oldLeft--;
|
|
87
|
+
if (op !== '-')
|
|
88
|
+
newLeft--;
|
|
89
|
+
if (oldLeft < 0 || newLeft < 0)
|
|
90
|
+
return { next: index };
|
|
91
|
+
hunk.lines.push({ op, text: `${line.slice(1)}\n` });
|
|
92
|
+
index++;
|
|
93
|
+
if (lines[index]?.startsWith('\\')) {
|
|
94
|
+
const last = hunk.lines[hunk.lines.length - 1];
|
|
95
|
+
last.text = last.text.slice(0, -1);
|
|
96
|
+
index++;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
return { hunk, next: index };
|
|
100
|
+
}
|
|
101
|
+
/** Parses git's unified diff output, including rename, mode and binary headers. */
|
|
102
|
+
export function parseUnifiedDiff(text) {
|
|
103
|
+
const lines = text.split('\n');
|
|
104
|
+
const files = [];
|
|
105
|
+
let index = 0;
|
|
106
|
+
while (index < lines.length) {
|
|
107
|
+
if (!lines[index].startsWith('diff --git ')) {
|
|
108
|
+
index++;
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
const file = { binary: false, malformed: false, hunks: [] };
|
|
112
|
+
const header = headerPaths(lines[index].slice('diff --git '.length));
|
|
113
|
+
const named = {};
|
|
114
|
+
let added = false;
|
|
115
|
+
let deleted = false;
|
|
116
|
+
for (index++; index < lines.length; index++) {
|
|
117
|
+
const line = lines[index];
|
|
118
|
+
if (line.startsWith('diff --git ') || line.startsWith('@@ '))
|
|
119
|
+
break;
|
|
120
|
+
const name = HEADER_FIELDS.find((field) => line.startsWith(`${field} `));
|
|
121
|
+
const value = name ? line.slice(name.length + 1) : '';
|
|
122
|
+
if (name === 'new file mode')
|
|
123
|
+
[added, file.newMode] = [true, value];
|
|
124
|
+
else if (name === 'deleted file mode')
|
|
125
|
+
[deleted, file.oldMode] = [true, value];
|
|
126
|
+
else if (name === 'old mode')
|
|
127
|
+
file.oldMode = value;
|
|
128
|
+
else if (name === 'new mode')
|
|
129
|
+
file.newMode = value;
|
|
130
|
+
else if (name === 'rename from' || name === 'copy from')
|
|
131
|
+
named.from = unquotePath(value);
|
|
132
|
+
else if (name === 'rename to' || name === 'copy to')
|
|
133
|
+
named.to = unquotePath(value);
|
|
134
|
+
else if (name === 'index') {
|
|
135
|
+
const ids = /^([0-9a-f]+)\.\.([0-9a-f]+)(?: ([0-7]{6}))?$/.exec(value);
|
|
136
|
+
if (ids) {
|
|
137
|
+
[file.oldId, file.newId] = [ids[1], ids[2]];
|
|
138
|
+
if (ids[3])
|
|
139
|
+
file.oldMode = file.newMode = ids[3];
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
else if (line.startsWith('--- ') || line.startsWith('+++ ')) {
|
|
143
|
+
const path = line.slice(4).replace(/\t$/, '');
|
|
144
|
+
named[line[0] === '-' ? 'minus' : 'plus'] =
|
|
145
|
+
path === '/dev/null' ? null : prefixedPath(path);
|
|
146
|
+
}
|
|
147
|
+
else if (line === 'GIT binary patch' || /^Binary files .* differ$/.test(line))
|
|
148
|
+
file.binary = true;
|
|
149
|
+
}
|
|
150
|
+
const oldPath = named.minus === undefined ? (named.from ?? header?.[0]) : named.minus;
|
|
151
|
+
const newPath = named.plus === undefined ? (named.to ?? header?.[1]) : named.plus;
|
|
152
|
+
file.oldPath = added ? undefined : (oldPath ?? undefined);
|
|
153
|
+
file.newPath = deleted ? undefined : (newPath ?? undefined);
|
|
154
|
+
while (lines[index]?.startsWith('@@ ')) {
|
|
155
|
+
const read = readHunk(lines, index);
|
|
156
|
+
index = read.next;
|
|
157
|
+
if (read.hunk)
|
|
158
|
+
file.hunks.push(read.hunk);
|
|
159
|
+
else {
|
|
160
|
+
file.malformed = true;
|
|
161
|
+
while (index < lines.length && !lines[index].startsWith('diff --git '))
|
|
162
|
+
index++;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
files.push(file);
|
|
166
|
+
}
|
|
167
|
+
return files;
|
|
168
|
+
}
|
|
169
|
+
function splitLines(text) {
|
|
170
|
+
const lines = [];
|
|
171
|
+
for (let start = 0; start < text.length;) {
|
|
172
|
+
const end = text.indexOf('\n', start);
|
|
173
|
+
lines.push(text.slice(start, end < 0 ? text.length : end + 1));
|
|
174
|
+
start = end < 0 ? text.length : end + 1;
|
|
175
|
+
}
|
|
176
|
+
return lines;
|
|
177
|
+
}
|
|
178
|
+
/** Applies a file's hunks exactly, without offsets or fuzz. Undefined when they do not apply. */
|
|
179
|
+
export function applyUnifiedDiff(base, file) {
|
|
180
|
+
if (file.binary || file.malformed)
|
|
181
|
+
return undefined;
|
|
182
|
+
const source = splitLines(base);
|
|
183
|
+
const output = [];
|
|
184
|
+
let index = 0;
|
|
185
|
+
for (const hunk of file.hunks) {
|
|
186
|
+
const start = hunk.oldLines === 0 ? hunk.oldStart : hunk.oldStart - 1;
|
|
187
|
+
if (start < index || start > source.length)
|
|
188
|
+
return undefined;
|
|
189
|
+
output.push(...source.slice(index, start));
|
|
190
|
+
index = start;
|
|
191
|
+
for (const line of hunk.lines) {
|
|
192
|
+
if (line.op === '+') {
|
|
193
|
+
output.push(line.text);
|
|
194
|
+
continue;
|
|
195
|
+
}
|
|
196
|
+
if (source[index] !== line.text)
|
|
197
|
+
return undefined;
|
|
198
|
+
if (line.op === ' ')
|
|
199
|
+
output.push(line.text);
|
|
200
|
+
index++;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
output.push(...source.slice(index));
|
|
204
|
+
return output.join('');
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=diff-apply.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff-apply.js","sourceRoot":"","sources":["../../src/client-cache/diff-apply.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export
|
|
1
|
+
/** Experimental ADR-071 client cache; Command Center and Companion are its consumers. */
|
|
2
|
+
export { createGatewayResourceCache } from './cache.js';
|
|
3
|
+
export * from './command-method.js';
|
|
4
|
+
export { runResourceStoreConformance } from './conformance.js';
|
|
5
|
+
export * from './content.js';
|
|
6
|
+
export * from './diff-apply.js';
|
|
7
|
+
export * from './keys.js';
|
|
8
|
+
export * from './native-history.js';
|
|
9
|
+
export * from './prefetch.js';
|
|
10
|
+
export * from './registry.js';
|
|
11
|
+
export { RUN_LIST_COLLECTION_ID, type RunListCollectionData } from './run-list-versions.js';
|
|
12
|
+
export * from './store.js';
|
|
13
|
+
export { createResourceCacheTransport, type ResourceClientConnection, type ResourceConnectionInputs, } from './transport.js';
|
|
14
|
+
export * from './types.js';
|
|
11
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client-cache/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client-cache/index.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,KAAK,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC5F,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,4BAA4B,EAC5B,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,GAC9B,MAAM,gBAAgB,CAAC;AACxB,cAAc,YAAY,CAAC"}
|
|
@@ -1,2 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
/** Experimental ADR-071 client cache; Command Center and Companion are its consumers. */
|
|
2
|
+
export { createGatewayResourceCache } from './cache.js';
|
|
3
|
+
export * from './command-method.js';
|
|
4
|
+
export { runResourceStoreConformance } from './conformance.js';
|
|
5
|
+
export * from './content.js';
|
|
6
|
+
export * from './diff-apply.js';
|
|
7
|
+
export * from './keys.js';
|
|
8
|
+
export * from './native-history.js';
|
|
9
|
+
export * from './prefetch.js';
|
|
10
|
+
export * from './registry.js';
|
|
11
|
+
export { RUN_LIST_COLLECTION_ID } from './run-list-versions.js';
|
|
12
|
+
export * from './store.js';
|
|
13
|
+
export { createResourceCacheTransport, } from './transport.js';
|
|
14
|
+
export * from './types.js';
|
|
2
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client-cache/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client-cache/index.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AACxD,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAA8B,MAAM,wBAAwB,CAAC;AAC5F,cAAc,YAAY,CAAC;AAC3B,OAAO,EACL,4BAA4B,GAG7B,MAAM,gBAAgB,CAAC;AACxB,cAAc,YAAY,CAAC"}
|