@farmslot/protocol 0.40.0 → 0.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/contracts/config.d.ts.map +1 -1
- package/dist/contracts/config.js +6 -1
- package/dist/contracts/config.js.map +1 -1
- package/dist/contracts/execution-templates.d.ts +9 -0
- package/dist/contracts/execution-templates.d.ts.map +1 -1
- package/dist/contracts/execution-templates.js.map +1 -1
- package/dist/contracts/family.d.ts +6 -0
- package/dist/contracts/family.d.ts.map +1 -1
- package/dist/contracts/family.js.map +1 -1
- package/dist/contracts/run-gate-readiness.d.ts +19 -0
- package/dist/contracts/run-gate-readiness.d.ts.map +1 -1
- package/dist/contracts/run-gate-readiness.js.map +1 -1
- package/dist/contracts/runs.d.ts +19 -2
- package/dist/contracts/runs.d.ts.map +1 -1
- package/dist/contracts/runs.js +1 -0
- package/dist/contracts/runs.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/node/pack-portability.d.ts.map +1 -1
- package/dist/node/pack-portability.js +16 -1
- package/dist/node/pack-portability.js.map +1 -1
- package/dist/recipe/hud-intent.d.ts +5 -0
- package/dist/recipe/hud-intent.d.ts.map +1 -1
- package/dist/recipe/hud-intent.js +39 -0
- package/dist/recipe/hud-intent.js.map +1 -1
- package/dist/recipe/index.d.ts +2 -1
- package/dist/recipe/index.d.ts.map +1 -1
- package/dist/recipe/index.js +2 -1
- package/dist/recipe/index.js.map +1 -1
- package/dist/recipe/run-pointer.d.ts +9 -0
- package/dist/recipe/run-pointer.d.ts.map +1 -0
- package/dist/recipe/run-pointer.js +20 -0
- package/dist/recipe/run-pointer.js.map +1 -0
- package/dist/recipes/step-io.d.ts +2 -0
- package/dist/recipes/step-io.d.ts.map +1 -1
- package/dist/recipes/step-io.js +5 -0
- package/dist/recipes/step-io.js.map +1 -1
- package/dist/roadmap/delivery-view.d.ts +12 -0
- package/dist/roadmap/delivery-view.d.ts.map +1 -0
- package/dist/roadmap/delivery-view.js +15 -0
- package/dist/roadmap/delivery-view.js.map +1 -0
- 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/registry.d.ts +2 -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/run.d.ts +19 -0
- package/dist/rpc/run.d.ts.map +1 -1
- package/dist/rpc/sources.d.ts +31 -0
- package/dist/rpc/sources.d.ts.map +1 -0
- package/dist/rpc/sources.js +2 -0
- package/dist/rpc/sources.js.map +1 -0
- package/dist/runs/decision-resolution.d.ts +2 -0
- package/dist/runs/decision-resolution.d.ts.map +1 -1
- package/dist/runs/decision-resolution.js +3 -0
- package/dist/runs/decision-resolution.js.map +1 -1
- package/dist/runs/family-iteration-ledger.d.ts +2 -0
- package/dist/runs/family-iteration-ledger.d.ts.map +1 -1
- package/dist/runs/family-iteration-ledger.js +15 -3
- package/dist/runs/family-iteration-ledger.js.map +1 -1
- package/dist/runs/publish-approval.d.ts +8 -0
- package/dist/runs/publish-approval.d.ts.map +1 -1
- package/dist/runs/publish-approval.js +32 -0
- package/dist/runs/publish-approval.js.map +1 -1
- package/dist/runs/review-chain.d.ts +9 -0
- package/dist/runs/review-chain.d.ts.map +1 -1
- package/dist/runs/review-chain.js +24 -0
- package/dist/runs/review-chain.js.map +1 -1
- package/dist/runs/review-retries.d.ts +4 -1
- package/dist/runs/review-retries.d.ts.map +1 -1
- package/dist/runs/review-retries.js +16 -0
- package/dist/runs/review-retries.js.map +1 -1
- package/dist/runs/run-title.d.ts +18 -0
- package/dist/runs/run-title.d.ts.map +1 -0
- package/dist/runs/run-title.js +64 -0
- package/dist/runs/run-title.js.map +1 -0
- package/dist/sources/contracts.d.ts +127 -0
- package/dist/sources/contracts.d.ts.map +1 -0
- package/dist/sources/contracts.js +2 -0
- package/dist/sources/contracts.js.map +1 -0
- package/dist/sources/validation.d.ts +9 -0
- package/dist/sources/validation.d.ts.map +1 -0
- package/dist/sources/validation.js +79 -0
- package/dist/sources/validation.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { PendingDecision } from '../contracts/runs.js';
|
|
2
|
+
export interface DisplayRun {
|
|
3
|
+
ticketOrPr?: string | null;
|
|
4
|
+
summary?: string | null;
|
|
5
|
+
ticketData?: {
|
|
6
|
+
title?: string | null;
|
|
7
|
+
} | null;
|
|
8
|
+
branch?: string | null;
|
|
9
|
+
}
|
|
10
|
+
export interface RunDisplayTitle {
|
|
11
|
+
title: string;
|
|
12
|
+
subtitle: string | null;
|
|
13
|
+
}
|
|
14
|
+
export declare function runDisplayTitle(run: DisplayRun, maxLength?: number, source?: 'task' | 'summary'): RunDisplayTitle;
|
|
15
|
+
export declare function decisionDisplayTitle(decision: PendingDecision, maxLength?: number): RunDisplayTitle;
|
|
16
|
+
/** Extract a human title without changing the task body. Also handles stored legacy summaries. */
|
|
17
|
+
export declare function taskTitleText(value: string, maxLength?: number): string;
|
|
18
|
+
//# sourceMappingURL=run-title.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-title.d.ts","sourceRoot":"","sources":["../../src/runs/run-title.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9C,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,EACf,SAAS,SAAM,EACf,MAAM,GAAE,MAAM,GAAG,SAAkB,GAClC,eAAe,CAWjB;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,eAAe,EAAE,SAAS,SAAM,GAAG,eAAe,CAWhG;AAYD,kGAAkG;AAClG,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,MAAM,CA6BpE"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export function runDisplayTitle(run, maxLength = 120, source = 'task') {
|
|
2
|
+
const taskTitle = cleanDisplayText(run.ticketData?.title, maxLength);
|
|
3
|
+
const summary = cleanDisplayText(run.summary, maxLength);
|
|
4
|
+
const ticket = cleanDisplayText(run.ticketOrPr, maxLength);
|
|
5
|
+
const branch = cleanDisplayText(run.branch, maxLength);
|
|
6
|
+
const title = (source === 'summary'
|
|
7
|
+
? (summary ?? ticket ?? branch)
|
|
8
|
+
: (taskTitle ?? summary ?? ticket ?? branch)) ?? 'Untitled run';
|
|
9
|
+
const subtitle = [ticket, branch].find((value) => value && value !== title) ?? null;
|
|
10
|
+
return { title, subtitle };
|
|
11
|
+
}
|
|
12
|
+
export function decisionDisplayTitle(decision, maxLength = 120) {
|
|
13
|
+
const payload = decision.payload;
|
|
14
|
+
const inputSnapshot = recordField(payload, 'inputSnapshot');
|
|
15
|
+
const ticketData = recordField(inputSnapshot, 'ticketData');
|
|
16
|
+
const taskTitle = cleanDisplayText(ticketData?.title, maxLength);
|
|
17
|
+
const runSummary = cleanDisplayText(decision.runMeta?.summary, maxLength);
|
|
18
|
+
const ticket = cleanDisplayText(decision.runMeta?.ticketOrPr, maxLength);
|
|
19
|
+
const decisionTitle = cleanDisplayText(decision.title, maxLength);
|
|
20
|
+
const title = taskTitle ?? runSummary ?? decisionTitle ?? ticket ?? 'Pending decision';
|
|
21
|
+
const subtitle = [decisionTitle, ticket].find((value) => value && value !== title) ?? null;
|
|
22
|
+
return { title, subtitle };
|
|
23
|
+
}
|
|
24
|
+
function recordField(record, key) {
|
|
25
|
+
const value = record?.[key];
|
|
26
|
+
return value && typeof value === 'object' && !Array.isArray(value)
|
|
27
|
+
? value
|
|
28
|
+
: undefined;
|
|
29
|
+
}
|
|
30
|
+
/** Extract a human title without changing the task body. Also handles stored legacy summaries. */
|
|
31
|
+
export function taskTitleText(value, maxLength = 120) {
|
|
32
|
+
const htmlHeading = value.trimStart().startsWith('<')
|
|
33
|
+
? (value.match(/<title\b[^>]*>([\s\S]*?)<\/title\s*>/i) ??
|
|
34
|
+
value.match(/<h1\b[^>]*>([\s\S]*?)<\/h1\s*>/i))
|
|
35
|
+
: null;
|
|
36
|
+
const firstLine = value.trim().split(/\r?\n/)[0] ?? '';
|
|
37
|
+
const markdownHeading = firstLine.match(/^[ \t]{0,3}#{1,6}[ \t]+(.+?)[ \t]*#*[ \t]*$/);
|
|
38
|
+
const candidate = htmlHeading?.[1] ?? markdownHeading?.[1] ?? firstLine;
|
|
39
|
+
const text = candidate
|
|
40
|
+
.replace(/<[^>]*>/g, ' ')
|
|
41
|
+
.replace(/&(?:amp|lt|gt|quot|apos|nbsp);|&#(?:x[0-9a-f]+|[0-9]+);/gi, (entity) => {
|
|
42
|
+
const named = {
|
|
43
|
+
amp: '&',
|
|
44
|
+
lt: '<',
|
|
45
|
+
gt: '>',
|
|
46
|
+
quot: '\"',
|
|
47
|
+
apos: "'",
|
|
48
|
+
nbsp: ' ',
|
|
49
|
+
};
|
|
50
|
+
if (!entity.startsWith('&#'))
|
|
51
|
+
return named[entity.slice(1, -1).toLowerCase()];
|
|
52
|
+
const code = entity[2].toLowerCase() === 'x'
|
|
53
|
+
? Number.parseInt(entity.slice(3, -1), 16)
|
|
54
|
+
: Number(entity.slice(2, -1));
|
|
55
|
+
return code <= 0x10ffff ? String.fromCodePoint(code) : '';
|
|
56
|
+
})
|
|
57
|
+
.replace(/\s+/g, ' ')
|
|
58
|
+
.trim();
|
|
59
|
+
return text.length > maxLength ? text.slice(0, maxLength - 1).trimEnd() + '…' : text;
|
|
60
|
+
}
|
|
61
|
+
function cleanDisplayText(value, maxLength = 120) {
|
|
62
|
+
return typeof value === 'string' ? taskTitleText(value, maxLength) || null : null;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=run-title.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-title.js","sourceRoot":"","sources":["../../src/runs/run-title.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/** ADR-069 source authority. Paths and credentials never belong in portable records. */
|
|
2
|
+
export interface SourceEntryRef {
|
|
3
|
+
sourceId: string;
|
|
4
|
+
entry: string;
|
|
5
|
+
}
|
|
6
|
+
export interface SourceDeclaration {
|
|
7
|
+
id: string;
|
|
8
|
+
kind: 'pack' | 'recipe-library' | 'helper';
|
|
9
|
+
repo: string;
|
|
10
|
+
ref?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface SourceConfiguration {
|
|
13
|
+
schemaVersion: 1;
|
|
14
|
+
revision: number;
|
|
15
|
+
pollIntervalMs: number;
|
|
16
|
+
sources: SourceDeclaration[];
|
|
17
|
+
packs: Record<string, SourceEntryRef>;
|
|
18
|
+
}
|
|
19
|
+
export interface SourcePin {
|
|
20
|
+
sourceId: string;
|
|
21
|
+
selection: 'branch' | 'main';
|
|
22
|
+
ref: string;
|
|
23
|
+
scope: 'run' | 'node' | 'farm';
|
|
24
|
+
targetId: string;
|
|
25
|
+
actor: string;
|
|
26
|
+
declarationRevision: number;
|
|
27
|
+
revision: number;
|
|
28
|
+
baseMainCommit: string;
|
|
29
|
+
createdAt: string;
|
|
30
|
+
}
|
|
31
|
+
export interface SourceResolution {
|
|
32
|
+
sourceId: string;
|
|
33
|
+
ref: string;
|
|
34
|
+
declarationRevision: number;
|
|
35
|
+
generation: number;
|
|
36
|
+
commit?: string;
|
|
37
|
+
refObject?: string;
|
|
38
|
+
objectFormat?: 'sha1' | 'sha256';
|
|
39
|
+
treeDigest?: string;
|
|
40
|
+
resolvedAt?: string;
|
|
41
|
+
status: 'resolved' | 'stale' | 'failed';
|
|
42
|
+
reason?: string;
|
|
43
|
+
rewrites: Array<{
|
|
44
|
+
before: string;
|
|
45
|
+
after: string;
|
|
46
|
+
observedAt: string;
|
|
47
|
+
}>;
|
|
48
|
+
}
|
|
49
|
+
export interface SourceLockEntry {
|
|
50
|
+
sourceId: string;
|
|
51
|
+
kind: SourceDeclaration['kind'];
|
|
52
|
+
repo: string;
|
|
53
|
+
declaredRef: string;
|
|
54
|
+
effectiveRef: string;
|
|
55
|
+
commit: string;
|
|
56
|
+
objectFormat: 'sha1' | 'sha256';
|
|
57
|
+
treeDigest: string;
|
|
58
|
+
resolutionGeneration: number;
|
|
59
|
+
scope: 'run' | 'node' | 'farm';
|
|
60
|
+
pin?: SourcePin;
|
|
61
|
+
dependencies: SourceEntryRef[];
|
|
62
|
+
}
|
|
63
|
+
export interface SourceLock {
|
|
64
|
+
schemaVersion: 1;
|
|
65
|
+
context: {
|
|
66
|
+
project: string;
|
|
67
|
+
nodeId?: string;
|
|
68
|
+
runId?: string;
|
|
69
|
+
};
|
|
70
|
+
generation: number;
|
|
71
|
+
declarationRevision: number;
|
|
72
|
+
pinRevision: number;
|
|
73
|
+
resolvedAt: string;
|
|
74
|
+
entries: SourceLockEntry[];
|
|
75
|
+
packBindings: Record<string, SourceEntryRef>;
|
|
76
|
+
digest: string;
|
|
77
|
+
}
|
|
78
|
+
export interface SourceMaterializationReceipt {
|
|
79
|
+
schemaVersion: 1;
|
|
80
|
+
id: string;
|
|
81
|
+
nodeId: string;
|
|
82
|
+
lockDigest: string;
|
|
83
|
+
verifiedAt: string;
|
|
84
|
+
sources: Array<{
|
|
85
|
+
sourceId: string;
|
|
86
|
+
commit: string;
|
|
87
|
+
treeDigest: string;
|
|
88
|
+
protection: 'read-only-volume';
|
|
89
|
+
}>;
|
|
90
|
+
}
|
|
91
|
+
export interface RunSourceProvenance {
|
|
92
|
+
state: 'locked';
|
|
93
|
+
attemptId: string;
|
|
94
|
+
lock: SourceLock;
|
|
95
|
+
/** Stable execution-input lock retained across tasks with identical source inputs. */
|
|
96
|
+
workerLock: SourceLock;
|
|
97
|
+
receiptIds: string[];
|
|
98
|
+
bindings: SourceEntryRef[];
|
|
99
|
+
attempts: SourceExecutionAttemptReceipt[];
|
|
100
|
+
}
|
|
101
|
+
export interface SourceExecutionAttemptReceipt {
|
|
102
|
+
id: string;
|
|
103
|
+
receiptIds: string[];
|
|
104
|
+
}
|
|
105
|
+
/** An execution-local attestation adds paths only inside the authenticated node boundary. */
|
|
106
|
+
export interface SourceMaterialization {
|
|
107
|
+
lock: SourceLock;
|
|
108
|
+
receipt: SourceMaterializationReceipt;
|
|
109
|
+
roots: Record<string, string>;
|
|
110
|
+
receiptPath: string;
|
|
111
|
+
}
|
|
112
|
+
export interface SourceNodeStatus {
|
|
113
|
+
nodeId: string;
|
|
114
|
+
materializations: Array<{
|
|
115
|
+
lockDigest: string;
|
|
116
|
+
sources: SourceMaterializationReceipt['sources'];
|
|
117
|
+
verifiedAt?: string;
|
|
118
|
+
drift: string[];
|
|
119
|
+
}>;
|
|
120
|
+
}
|
|
121
|
+
export interface RunSourceStatus {
|
|
122
|
+
runId: string;
|
|
123
|
+
state: 'locked' | 'unknown-legacy';
|
|
124
|
+
lockDigest?: string;
|
|
125
|
+
attemptId?: string;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/sources/contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/sources/contracts.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SourceConfiguration, SourceEntryRef } from './contracts.js';
|
|
2
|
+
export declare function assertSourceEntry(value: unknown): asserts value is SourceEntryRef;
|
|
3
|
+
export declare function isContainedSourceEntry(value: string): boolean;
|
|
4
|
+
/** Credential-free Git repository identity; authentication remains Git's responsibility. */
|
|
5
|
+
export declare function canonicalSourceRepo(value: string): string;
|
|
6
|
+
export declare function assertSourceConfiguration(value: unknown): asserts value is SourceConfiguration;
|
|
7
|
+
/** Canonical ordering is shared by locks, integrity receipts and mutation comparisons. */
|
|
8
|
+
export declare function canonicalSourceJson(value: unknown): string;
|
|
9
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/sources/validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE1E,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,cAAc,CAUjF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAO7D;AAED,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAezD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,mBAAmB,CAuC9F;AAED,0FAA0F;AAC1F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAS1D"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { isRecord } from '../recipe/common.js';
|
|
2
|
+
export function assertSourceEntry(value) {
|
|
3
|
+
if (!isRecord(value) ||
|
|
4
|
+
typeof value.sourceId !== 'string' ||
|
|
5
|
+
!/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/.test(String(value.sourceId)) ||
|
|
6
|
+
typeof value.entry !== 'string' ||
|
|
7
|
+
!isContainedSourceEntry(value.entry) ||
|
|
8
|
+
Object.keys(value).some((key) => !['sourceId', 'entry'].includes(key)))
|
|
9
|
+
throw new Error('Source binding requires a sourceId and contained relative entry');
|
|
10
|
+
}
|
|
11
|
+
export function isContainedSourceEntry(value) {
|
|
12
|
+
return (value === '.' ||
|
|
13
|
+
(/^[a-zA-Z0-9_.@/-]+$/.test(value) &&
|
|
14
|
+
!value.startsWith('/') &&
|
|
15
|
+
!value.split('/').some((part) => !part || part === '.' || part === '..')));
|
|
16
|
+
}
|
|
17
|
+
/** Credential-free Git repository identity; authentication remains Git's responsibility. */
|
|
18
|
+
export function canonicalSourceRepo(value) {
|
|
19
|
+
const scp = /^git@([^/:]+):([^\s]+)$/.exec(value);
|
|
20
|
+
const url = new URL(scp ? `ssh://git@${scp[1]}/${scp[2]}` : value);
|
|
21
|
+
if (!['https:', 'ssh:'].includes(url.protocol) ||
|
|
22
|
+
url.password ||
|
|
23
|
+
url.search ||
|
|
24
|
+
url.hash ||
|
|
25
|
+
(url.username && !(url.protocol === 'ssh:' && url.username === 'git')) ||
|
|
26
|
+
!url.hostname ||
|
|
27
|
+
!/^\/[a-zA-Z0-9_.-]+(?:\/[a-zA-Z0-9_.-]+)+\/?$/.test(url.pathname))
|
|
28
|
+
throw new Error('Source repository must be a credential-free HTTPS or Git SSH identity');
|
|
29
|
+
url.pathname = url.pathname.replace(/\/$/, '').replace(/\.git$/, '');
|
|
30
|
+
return url.toString().replace(/\/$/, '');
|
|
31
|
+
}
|
|
32
|
+
export function assertSourceConfiguration(value) {
|
|
33
|
+
if (!isRecord(value) ||
|
|
34
|
+
value.schemaVersion !== 1 ||
|
|
35
|
+
!Number.isSafeInteger(value.revision) ||
|
|
36
|
+
Number(value.revision) < 1 ||
|
|
37
|
+
!Number.isSafeInteger(value.pollIntervalMs) ||
|
|
38
|
+
Number(value.pollIntervalMs) < 1_000 ||
|
|
39
|
+
Number(value.pollIntervalMs) > 300_000 ||
|
|
40
|
+
!Array.isArray(value.sources) ||
|
|
41
|
+
!isRecord(value.packs) ||
|
|
42
|
+
Object.keys(value).some((key) => !['schemaVersion', 'revision', 'pollIntervalMs', 'sources', 'packs'].includes(key)))
|
|
43
|
+
throw new Error('Invalid source configuration or unsupported schema');
|
|
44
|
+
const ids = new Set();
|
|
45
|
+
for (const source of value.sources) {
|
|
46
|
+
if (!isRecord(source) ||
|
|
47
|
+
typeof source.id !== 'string' ||
|
|
48
|
+
!/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/.test(source.id) ||
|
|
49
|
+
ids.has(source.id) ||
|
|
50
|
+
!['pack', 'recipe-library', 'helper'].includes(String(source.kind)) ||
|
|
51
|
+
typeof source.repo !== 'string' ||
|
|
52
|
+
(source.ref !== undefined &&
|
|
53
|
+
(typeof source.ref !== 'string' || !source.ref || source.ref.startsWith('-'))) ||
|
|
54
|
+
Object.keys(source).some((key) => !['id', 'kind', 'repo', 'ref'].includes(key)))
|
|
55
|
+
throw new Error('Invalid or duplicate source declaration');
|
|
56
|
+
canonicalSourceRepo(source.repo);
|
|
57
|
+
ids.add(source.id);
|
|
58
|
+
}
|
|
59
|
+
for (const [project, binding] of Object.entries(value.packs)) {
|
|
60
|
+
if (!/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/.test(project))
|
|
61
|
+
throw new Error('Invalid pack name');
|
|
62
|
+
assertSourceEntry(binding);
|
|
63
|
+
if (!value.sources.some((source) => source.id === binding.sourceId && source.kind === 'pack'))
|
|
64
|
+
throw new Error(`Pack ${project} references an undeclared pack source`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** Canonical ordering is shared by locks, integrity receipts and mutation comparisons. */
|
|
68
|
+
export function canonicalSourceJson(value) {
|
|
69
|
+
if (Array.isArray(value))
|
|
70
|
+
return `[${value.map(canonicalSourceJson).join(',')}]`;
|
|
71
|
+
if (isRecord(value))
|
|
72
|
+
return `{${Object.keys(value)
|
|
73
|
+
.filter((key) => value[key] !== undefined)
|
|
74
|
+
.sort()
|
|
75
|
+
.map((key) => `${JSON.stringify(key)}:${canonicalSourceJson(value[key])}`)
|
|
76
|
+
.join(',')}}`;
|
|
77
|
+
return JSON.stringify(value);
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/sources/validation.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const PROTOCOL_VERSION = "0.
|
|
1
|
+
export declare const PROTOCOL_VERSION = "0.41.0";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/version.js
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
// fleet can be upgraded deliberately; optional method/event fields remain
|
|
4
4
|
// backward-compatible unless a caller requires a new node capability.
|
|
5
5
|
// Format: semver-ish, increment when methods/events/frame format changes.
|
|
6
|
-
export const PROTOCOL_VERSION = '0.
|
|
6
|
+
export const PROTOCOL_VERSION = '0.41.0';
|
|
7
7
|
//# sourceMappingURL=version.js.map
|