@functional-systems/srcx 0.1.0-dev.3 → 0.1.0-dev.31
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 +137 -1
- package/DESIGN.md +193 -58
- package/README.md +553 -38
- package/RELEASING.md +30 -9
- package/VALIDATION.md +855 -25
- package/dist/build.d.ts +81 -1
- package/dist/build.js +187 -37
- package/dist/build.js.map +1 -1
- package/dist/chunk.d.ts +9 -3
- package/dist/chunk.js +341 -14
- package/dist/chunk.js.map +1 -1
- package/dist/cli.js +103 -19
- package/dist/cli.js.map +1 -1
- package/dist/file-policy.d.ts +20 -0
- package/dist/file-policy.js +96 -0
- package/dist/file-policy.js.map +1 -0
- package/dist/implementation.d.ts +11 -0
- package/dist/implementation.js +191 -0
- package/dist/implementation.js.map +1 -0
- package/dist/publish.d.ts +18 -0
- package/dist/publish.js +158 -34
- package/dist/publish.js.map +1 -1
- package/dist/releases.js +21 -3
- package/dist/releases.js.map +1 -1
- package/dist/remote.d.ts +1 -0
- package/dist/remote.js +50 -9
- package/dist/remote.js.map +1 -1
- package/dist/repository.d.ts +4 -1
- package/dist/repository.js +26 -11
- package/dist/repository.js.map +1 -1
- package/dist/rerank.d.ts +16 -0
- package/dist/rerank.js +87 -0
- package/dist/rerank.js.map +1 -0
- package/dist/search.d.ts +14 -4
- package/dist/search.js +119 -23
- package/dist/search.js.map +1 -1
- package/dist/skills.d.ts +24 -0
- package/dist/skills.js +155 -0
- package/dist/skills.js.map +1 -0
- package/package.json +16 -5
- package/runtime/grammars/README.md +50 -0
- package/runtime/grammars/tree-sitter-bash.LICENSE +21 -0
- package/runtime/grammars/tree-sitter-bash.wasm +0 -0
- package/runtime/grammars/tree-sitter-sql.LICENSE +21 -0
- package/runtime/grammars/tree-sitter-sql.wasm +0 -0
- package/runtime/grammars/tree-sitter-wasm.LICENSE +21 -0
- package/runtime/qwen.py +132 -0
- package/runtime/requirements.txt +34 -0
- package/skills/srcx-search/SKILL.md +85 -0
- package/src/build.ts +258 -47
- package/src/chunk.ts +360 -12
- package/src/cli.ts +212 -24
- package/src/file-policy.ts +157 -0
- package/src/implementation.ts +253 -0
- package/src/publish.ts +226 -34
- package/src/releases.ts +36 -3
- package/src/remote.ts +70 -13
- package/src/repository.ts +40 -11
- package/src/rerank.ts +131 -0
- package/src/search.ts +154 -28
- package/src/skills.ts +205 -0
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
import { CHUNKER, detectLanguage, tokens, withSyntaxTree } from "./chunk.js";
|
|
2
|
+
import { invariant, lineAt } from "./common.js";
|
|
3
|
+
const children = (n) => n.namedChildren.filter((c) => !!c);
|
|
4
|
+
/** Only imported typing overload aliases used exclusively as decorators are safe here. */
|
|
5
|
+
function overloadAliases(root) {
|
|
6
|
+
const aliases = new Set(), imports = new Set();
|
|
7
|
+
for (const n of children(root)) {
|
|
8
|
+
if (n.type !== "import_from_statement" ||
|
|
9
|
+
!["typing", "typing_extensions"].includes(n.childForFieldName("module_name")?.text ?? ""))
|
|
10
|
+
continue;
|
|
11
|
+
for (const name of n.childrenForFieldName("name")) {
|
|
12
|
+
if (!name)
|
|
13
|
+
continue;
|
|
14
|
+
if (name.type === "dotted_name" && name.text === "overload") {
|
|
15
|
+
aliases.add("overload");
|
|
16
|
+
imports.add(name.id);
|
|
17
|
+
}
|
|
18
|
+
else if (name.type === "aliased_import" &&
|
|
19
|
+
name.childForFieldName("name")?.text === "overload") {
|
|
20
|
+
const alias = name.childForFieldName("alias");
|
|
21
|
+
if (alias) {
|
|
22
|
+
aliases.add(alias.text);
|
|
23
|
+
imports.add(name.id);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function visit(n) {
|
|
29
|
+
if (imports.has(n.id))
|
|
30
|
+
return;
|
|
31
|
+
if (n.type === "wildcard_import")
|
|
32
|
+
aliases.clear();
|
|
33
|
+
if (n.type === "identifier" &&
|
|
34
|
+
aliases.has(n.text) &&
|
|
35
|
+
!(n.parent?.type === "decorator" && n.parent.text === `@${n.text}`))
|
|
36
|
+
aliases.delete(n.text);
|
|
37
|
+
for (const child of children(n))
|
|
38
|
+
visit(child);
|
|
39
|
+
}
|
|
40
|
+
visit(root);
|
|
41
|
+
return aliases;
|
|
42
|
+
}
|
|
43
|
+
function definition(n, python, aliases) {
|
|
44
|
+
const d = n.childForFieldName(python ? "definition" : "declaration") ?? n;
|
|
45
|
+
const name = d.childForFieldName("name");
|
|
46
|
+
if (!name ||
|
|
47
|
+
![
|
|
48
|
+
"identifier",
|
|
49
|
+
"property_identifier",
|
|
50
|
+
"private_property_identifier",
|
|
51
|
+
].includes(name.type))
|
|
52
|
+
return;
|
|
53
|
+
if (python) {
|
|
54
|
+
if (d.type !== "function_definition")
|
|
55
|
+
return;
|
|
56
|
+
const decorators = children(n).filter((c) => c.type === "decorator");
|
|
57
|
+
const declaration = decorators.some((c) => aliases.has(c.text.slice(1)));
|
|
58
|
+
const body = d.childForFieldName("body");
|
|
59
|
+
// Stubs without an overload marker do not supply an implementation.
|
|
60
|
+
const executable = body &&
|
|
61
|
+
children(body).some((c) => c.type !== "comment" &&
|
|
62
|
+
c.type !== "pass_statement" &&
|
|
63
|
+
!(c.type === "expression_statement" &&
|
|
64
|
+
["ellipsis", "string"].includes(c.firstNamedChild?.type ?? "")));
|
|
65
|
+
if (!declaration && !executable)
|
|
66
|
+
return;
|
|
67
|
+
// Other decorators may change dispatch (property, singledispatch, etc.).
|
|
68
|
+
if (decorators.some((c) => !aliases.has(c.text.slice(1)) &&
|
|
69
|
+
!["@staticmethod", "@classmethod"].includes(c.text)))
|
|
70
|
+
return;
|
|
71
|
+
const modifier = decorators
|
|
72
|
+
.filter((c) => ["@staticmethod", "@classmethod"].includes(c.text))
|
|
73
|
+
.map((c) => c.text)
|
|
74
|
+
.sort()
|
|
75
|
+
.join(":");
|
|
76
|
+
const async = d.children.some((c) => c?.type === "async");
|
|
77
|
+
return {
|
|
78
|
+
node: n,
|
|
79
|
+
name: name.text,
|
|
80
|
+
key: `${name.text}:${modifier}:${async}`,
|
|
81
|
+
declaration,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
if (n !== d && n.type !== "export_statement")
|
|
85
|
+
return;
|
|
86
|
+
if (![
|
|
87
|
+
"function_signature",
|
|
88
|
+
"function_declaration",
|
|
89
|
+
"method_signature",
|
|
90
|
+
"method_definition",
|
|
91
|
+
].includes(d.type))
|
|
92
|
+
return;
|
|
93
|
+
const prefix = d.text.slice(0, name.startIndex - d.startIndex);
|
|
94
|
+
if (/\b(abstract|get|set|declare)\b/.test(prefix))
|
|
95
|
+
return;
|
|
96
|
+
const method = d.type.startsWith("method");
|
|
97
|
+
const declaration = d.type.endsWith("signature");
|
|
98
|
+
if (!declaration && !d.childForFieldName("body"))
|
|
99
|
+
return;
|
|
100
|
+
return {
|
|
101
|
+
node: n,
|
|
102
|
+
name: name.text,
|
|
103
|
+
key: `${method}:${/\bstatic\b/.test(prefix)}:${name.text}`,
|
|
104
|
+
declaration,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
/** Follow only a contiguous, unambiguous overload group in the same AST container. */
|
|
108
|
+
export async function implementationSpan(source, path, span) {
|
|
109
|
+
const raw = Buffer.from(source), lang = detectLanguage(path);
|
|
110
|
+
invariant(Number.isInteger(span.startByte) &&
|
|
111
|
+
Number.isInteger(span.endByte) &&
|
|
112
|
+
span.startByte >= 0 &&
|
|
113
|
+
span.endByte > span.startByte &&
|
|
114
|
+
span.endByte <= raw.length, "Invalid implementation source range.");
|
|
115
|
+
if (!["python", "typescript", "tsx"].includes(lang) ||
|
|
116
|
+
/\.(pyi|d\.ts|d\.tsx)$/i.test(path))
|
|
117
|
+
return { status: "unsupported" };
|
|
118
|
+
const start = raw.subarray(0, span.startByte).toString("utf8").length;
|
|
119
|
+
const end = raw.subarray(0, span.endByte).toString("utf8").length;
|
|
120
|
+
return withSyntaxTree(source, lang, (root) => {
|
|
121
|
+
if (root.hasError)
|
|
122
|
+
return { status: "parse-error" };
|
|
123
|
+
const python = lang === "python", aliases = python ? overloadAliases(root) : new Set();
|
|
124
|
+
const targets = [];
|
|
125
|
+
function visit(container) {
|
|
126
|
+
const siblings = children(container).filter((n) => n.type !== "comment");
|
|
127
|
+
const definitions = siblings.map((n) => definition(n, python, aliases));
|
|
128
|
+
for (let i = 0; i < definitions.length; i++) {
|
|
129
|
+
const d = definitions[i];
|
|
130
|
+
// A class/container hit is not a declaration hit. Require the selected
|
|
131
|
+
// span to end before the implementation, and contain a whole declaration.
|
|
132
|
+
if (!d?.declaration ||
|
|
133
|
+
d.node.startIndex < start ||
|
|
134
|
+
d.node.endIndex > end)
|
|
135
|
+
continue;
|
|
136
|
+
let first = i;
|
|
137
|
+
while (first > 0 &&
|
|
138
|
+
definitions[first - 1]?.declaration &&
|
|
139
|
+
definitions[first - 1]?.key === d.key)
|
|
140
|
+
first--;
|
|
141
|
+
let next = first;
|
|
142
|
+
while (definitions[next]?.declaration &&
|
|
143
|
+
definitions[next]?.key === d.key)
|
|
144
|
+
next++;
|
|
145
|
+
const target = definitions[next];
|
|
146
|
+
if (!target ||
|
|
147
|
+
target.declaration ||
|
|
148
|
+
target.key !== d.key ||
|
|
149
|
+
target.node.startIndex < end)
|
|
150
|
+
continue;
|
|
151
|
+
const matches = siblings.filter((n) => {
|
|
152
|
+
const node = n.childForFieldName(python ? "definition" : "declaration") ?? n;
|
|
153
|
+
// TypeScript namespaces augment a function without adding another body.
|
|
154
|
+
// Keep other same-name declarations in the ambiguity check.
|
|
155
|
+
if (!python && node.type === "internal_module")
|
|
156
|
+
return false;
|
|
157
|
+
return node.childForFieldName("name")?.text === d.name;
|
|
158
|
+
});
|
|
159
|
+
if (matches.length !== next - first + 1)
|
|
160
|
+
continue;
|
|
161
|
+
// Reject unrelated code included in the selected chunk, but allow trivia
|
|
162
|
+
// between declarations (the chunker can attach comments/whitespace).
|
|
163
|
+
const selected = siblings.filter((n) => n.startIndex < end && n.endIndex > start);
|
|
164
|
+
if (selected.some((n) => !definitions.slice(first, next).some((x) => x?.node.id === n.id)))
|
|
165
|
+
continue;
|
|
166
|
+
if (!targets.some((t) => t.node.id === target.node.id))
|
|
167
|
+
targets.push(target);
|
|
168
|
+
}
|
|
169
|
+
for (const child of siblings)
|
|
170
|
+
visit(child);
|
|
171
|
+
}
|
|
172
|
+
visit(root);
|
|
173
|
+
if (targets.length !== 1)
|
|
174
|
+
return { status: "not-linked" };
|
|
175
|
+
const target = targets[0];
|
|
176
|
+
const startLine = lineAt(raw, Buffer.byteLength(source.slice(0, target.node.startIndex)));
|
|
177
|
+
const endLine = lineAt(raw, Buffer.byteLength(source.slice(0, target.node.endIndex)) - 1);
|
|
178
|
+
const text = (source.match(/[^\n]*\n|[^\n]+$/g) ?? [])
|
|
179
|
+
.slice(startLine - 1, endLine)
|
|
180
|
+
.join("");
|
|
181
|
+
if (tokens(text) > CHUNKER.maxTokens)
|
|
182
|
+
return { status: "too-large" };
|
|
183
|
+
return {
|
|
184
|
+
status: "resolved",
|
|
185
|
+
startLine,
|
|
186
|
+
endLine,
|
|
187
|
+
symbol: target.name,
|
|
188
|
+
};
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=implementation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"implementation.js","sourceRoot":"","sources":["../src/implementation.ts"],"names":[],"mappings":"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"}
|
package/dist/publish.d.ts
CHANGED
|
@@ -25,6 +25,8 @@ export type Journal = {
|
|
|
25
25
|
attemptId: string;
|
|
26
26
|
writer: string;
|
|
27
27
|
source: string;
|
|
28
|
+
gitRef?: string;
|
|
29
|
+
reuseWriter?: boolean;
|
|
28
30
|
baseline?: Published;
|
|
29
31
|
phase: "branch" | "writing" | "waiting" | "publishing";
|
|
30
32
|
batches: {
|
|
@@ -37,6 +39,22 @@ export type Journal = {
|
|
|
37
39
|
snapshotId: string;
|
|
38
40
|
};
|
|
39
41
|
};
|
|
42
|
+
/** The applied snapshot may differ from the shared canonical commit Tag. */
|
|
43
|
+
export type TrackedBranch = Doc & {
|
|
44
|
+
gitRef: string;
|
|
45
|
+
writer: string;
|
|
46
|
+
applied?: Published;
|
|
47
|
+
publishedTagName?: string;
|
|
48
|
+
pending?: {
|
|
49
|
+
attemptId: string;
|
|
50
|
+
buildId: string;
|
|
51
|
+
commitOid: string;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
export declare function gitBranchName(ref: string): string;
|
|
55
|
+
export declare const gitBranchId: (ref: string) => string;
|
|
56
|
+
export declare const lastBuildPath: (state: string, ref?: string) => string;
|
|
57
|
+
export declare function trackedBranch(store: CollectionStore, binding: Binding, ref: string): Promise<TrackedBranch | undefined>;
|
|
40
58
|
export declare function versionTag(oid: string): string;
|
|
41
59
|
export declare function versionId(oid: string): string;
|
|
42
60
|
export declare function exclusive<T>(directory: string, work: () => Promise<T>): Promise<T>;
|
package/dist/publish.js
CHANGED
|
@@ -2,8 +2,27 @@ import { mkdir, rm, readFile } from "node:fs/promises";
|
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { atomic, canonical, hash, invariant, optionalJson, sleep, } from "./common.js";
|
|
5
|
-
import { corpusMetadata, records, validateBuild } from "./build.js";
|
|
5
|
+
import { corpusMetadata, records, recordHash, supportedPreset, validateBuild, } from "./build.js";
|
|
6
6
|
import { branch, tag, one } from "./remote.js";
|
|
7
|
+
export function gitBranchName(ref) {
|
|
8
|
+
invariant(ref.startsWith("refs/heads/") && ref.length > 11, "Expected a full Git branch ref.");
|
|
9
|
+
return `git-${hash(ref).slice(0, 40)}`;
|
|
10
|
+
}
|
|
11
|
+
export const gitBranchId = (ref) => `branch-${hash(ref)}`;
|
|
12
|
+
export const lastBuildPath = (state, ref) => join(state, ref ? `last-build-${hash(ref)}.json` : "last-build.json");
|
|
13
|
+
export async function trackedBranch(store, binding, ref) {
|
|
14
|
+
const doc = await one(store, branch("main"), gitBranchId(ref), true);
|
|
15
|
+
if (!doc)
|
|
16
|
+
return undefined;
|
|
17
|
+
invariant(doc.kind === "manifest" &&
|
|
18
|
+
doc.role === "git-branch" &&
|
|
19
|
+
doc.gitRef === ref &&
|
|
20
|
+
doc.writer === gitBranchName(ref) &&
|
|
21
|
+
doc.repoId === binding.repoId &&
|
|
22
|
+
doc.indexId === binding.indexId &&
|
|
23
|
+
doc.configHash === binding.configHash, "Tracked branch identity mismatch.");
|
|
24
|
+
return doc;
|
|
25
|
+
}
|
|
7
26
|
export function versionTag(oid) {
|
|
8
27
|
return `ver-${hash(oid).slice(0, 40)}`;
|
|
9
28
|
}
|
|
@@ -60,8 +79,13 @@ export async function validateCandidate(store, name, b, binding, attemptId) {
|
|
|
60
79
|
for (const d of corpusMetadata(b, binding.repoId, binding.indexId, attemptId))
|
|
61
80
|
expected.set(d.id, hash(d));
|
|
62
81
|
for await (const d of store.list(tag(name))) {
|
|
63
|
-
|
|
82
|
+
try {
|
|
83
|
+
if (expected.get(d.id) !== recordHash(d, b.preset))
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
64
87
|
return false;
|
|
88
|
+
}
|
|
65
89
|
expected.delete(d.id);
|
|
66
90
|
}
|
|
67
91
|
if (expected.size)
|
|
@@ -73,11 +97,8 @@ export async function validateCandidate(store, name, b, binding, attemptId) {
|
|
|
73
97
|
for await (const d of records(b.directory)) {
|
|
74
98
|
if (d.kind !== "chunk")
|
|
75
99
|
continue;
|
|
76
|
-
//
|
|
77
|
-
//
|
|
78
|
-
const term = String(d.symbol ?? d.searchText).match(/\S+/u)?.[0];
|
|
79
|
-
if (!term)
|
|
80
|
-
continue;
|
|
100
|
+
// Probe an indexed chunk ID: a valid source may contain only stop words
|
|
101
|
+
// or punctuation, so text-query matches cannot establish readiness.
|
|
81
102
|
query = {
|
|
82
103
|
bool: [
|
|
83
104
|
{
|
|
@@ -90,16 +111,8 @@ export async function validateCandidate(store, name, b, binding, attemptId) {
|
|
|
90
111
|
},
|
|
91
112
|
{
|
|
92
113
|
queryString: {
|
|
93
|
-
query: d.
|
|
94
|
-
defaultField: "
|
|
95
|
-
skipSyntax: true,
|
|
96
|
-
},
|
|
97
|
-
occur: "filter",
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
queryString: {
|
|
101
|
-
query: term,
|
|
102
|
-
defaultField: "searchText",
|
|
114
|
+
query: d.id,
|
|
115
|
+
defaultField: "id",
|
|
103
116
|
skipSyntax: true,
|
|
104
117
|
},
|
|
105
118
|
occur: "must",
|
|
@@ -110,7 +123,8 @@ export async function validateCandidate(store, name, b, binding, attemptId) {
|
|
|
110
123
|
}
|
|
111
124
|
const found = await store.query(name, query, 1);
|
|
112
125
|
if (!found.length ||
|
|
113
|
-
found.some((h) => h.doc.kind !== "chunk" ||
|
|
126
|
+
found.some((h) => h.doc.kind !== "chunk" ||
|
|
127
|
+
b.recordHashes[h.doc.id] !== recordHash(h.doc, b.preset)))
|
|
114
128
|
return false;
|
|
115
129
|
}
|
|
116
130
|
return true;
|
|
@@ -160,31 +174,79 @@ export async function published(store, binding) {
|
|
|
160
174
|
export async function publish(args) {
|
|
161
175
|
const { store, binding, build: b, state } = args;
|
|
162
176
|
invariant(b.repoKey === binding.repoKey && b.configHash === binding.configHash, "Build does not belong to this index.");
|
|
163
|
-
invariant(!b.preset.embedding, "
|
|
177
|
+
invariant(!b.preset.embedding || supportedPreset(b.preset), "Publication requires a supported lexical or managed embedding preset.");
|
|
164
178
|
await validateBuild(b);
|
|
165
179
|
const journalPath = join(state, "pending.json");
|
|
166
180
|
let j = await optionalJson(journalPath);
|
|
167
181
|
if (j) {
|
|
168
182
|
invariant(j.buildId === b.buildId &&
|
|
169
183
|
j.recordsHash === b.recordsHash &&
|
|
170
|
-
j.inventoryHash === b.inventoryHash
|
|
184
|
+
j.inventoryHash === b.inventoryHash &&
|
|
185
|
+
(j.gitRef === b.branchRef ||
|
|
186
|
+
(j.reuseWriter === undefined && j.writer.startsWith("work-"))), "Another build is pending. Resume the artifact recorded in pending.json before importing a new commit.");
|
|
171
187
|
invariant(args.resume, "Pending import found; use --resume with the same artifact.");
|
|
172
188
|
}
|
|
173
189
|
const existing = (await published(store, binding)).find((v) => v.commitOid === b.commitOid);
|
|
190
|
+
const tracked = b.branchRef
|
|
191
|
+
? await trackedBranch(store, binding, b.branchRef)
|
|
192
|
+
: undefined;
|
|
193
|
+
if (tracked?.pending)
|
|
194
|
+
invariant(j?.attemptId === tracked.pending.attemptId, "Git branch has a pending import; resume with its original retry journal.");
|
|
195
|
+
if (j?.gitRef && j.phase !== "branch")
|
|
196
|
+
invariant(tracked?.pending?.attemptId === j.attemptId ||
|
|
197
|
+
(j.phase === "publishing" &&
|
|
198
|
+
!tracked?.pending &&
|
|
199
|
+
tracked?.applied?.attemptId === j.attemptId), "Tracked branch import ownership changed; refusing to replay this journal.");
|
|
174
200
|
if (existing) {
|
|
175
201
|
invariant(await validateCandidate(store, existing.tagName, b, binding, existing.attemptId), "Existing published version differs from this build.");
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
202
|
+
// A shared commit Tag does not mean this Git branch has applied that commit.
|
|
203
|
+
if (!j && (!b.branchRef || tracked?.applied?.commitOid === b.commitOid)) {
|
|
204
|
+
if (tracked?.applied) {
|
|
205
|
+
const writer = (await store.branches()).find((x) => x.name === tracked.writer);
|
|
206
|
+
invariant(writer?.snapshotId === tracked.applied.snapshotId, "Writer baseline has changed; refusing to update tracked branch.");
|
|
207
|
+
invariant(await validateCandidate(store, tracked.applied.tagName, b, binding, tracked.applied.attemptId), "Tracked branch baseline validation failed.");
|
|
208
|
+
}
|
|
209
|
+
await atomic(lastBuildPath(state, b.branchRef), {
|
|
210
|
+
artifact: b.directory,
|
|
211
|
+
version: existing,
|
|
212
|
+
});
|
|
213
|
+
return existing;
|
|
214
|
+
}
|
|
215
|
+
// Legacy manual imports can finish bookkeeping after publication on retry.
|
|
216
|
+
if (j && !j.gitRef) {
|
|
217
|
+
await atomic(lastBuildPath(state), {
|
|
218
|
+
artifact: b.directory,
|
|
219
|
+
version: existing,
|
|
220
|
+
});
|
|
181
221
|
await rm(journalPath);
|
|
182
|
-
|
|
222
|
+
return existing;
|
|
223
|
+
}
|
|
183
224
|
}
|
|
184
225
|
if (!j) {
|
|
185
226
|
let source = "checkpoint-empty";
|
|
186
227
|
let baseline;
|
|
187
|
-
if (
|
|
228
|
+
if (b.branchRef) {
|
|
229
|
+
const writer = (await store.branches()).find((x) => x.name === gitBranchName(b.branchRef));
|
|
230
|
+
if (tracked?.applied) {
|
|
231
|
+
baseline = tracked.applied;
|
|
232
|
+
invariant(writer?.snapshotId === baseline.snapshotId, "Writer baseline has changed; refusing to update tracked branch.");
|
|
233
|
+
const pin = (await store.tags()).find((t) => t.name === baseline.tagName);
|
|
234
|
+
const root = await one(store, tag(baseline.tagName), "__manifest__");
|
|
235
|
+
invariant(pin?.snapshotId === baseline.snapshotId &&
|
|
236
|
+
root?.repoId === binding.repoId &&
|
|
237
|
+
root.indexId === binding.indexId &&
|
|
238
|
+
root.configHash === binding.configHash &&
|
|
239
|
+
root.buildId === baseline.buildId &&
|
|
240
|
+
root.attemptId === baseline.attemptId &&
|
|
241
|
+
root.recordsHash === baseline.recordsHash &&
|
|
242
|
+
root.inventoryHash === baseline.inventoryHash &&
|
|
243
|
+
root.commitOid === baseline.commitOid, "Tracked branch baseline Tag is missing or changed.");
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
invariant(!writer && !tracked, "Unowned or unfinished tracked branch; retain its retry journal.");
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
else if (args.baseline?.version.writer.startsWith("work-")) {
|
|
188
250
|
const prev = args.baseline;
|
|
189
251
|
await validateBuild(prev.build);
|
|
190
252
|
invariant(prev.build.repoKey === b.repoKey &&
|
|
@@ -202,7 +264,9 @@ export async function publish(args) {
|
|
|
202
264
|
inventoryHash: b.inventoryHash,
|
|
203
265
|
artifact: b.directory,
|
|
204
266
|
attemptId,
|
|
205
|
-
writer: `work-${attemptId}`,
|
|
267
|
+
writer: b.branchRef ? gitBranchName(b.branchRef) : `work-${attemptId}`,
|
|
268
|
+
gitRef: b.branchRef,
|
|
269
|
+
reuseWriter: !!tracked?.applied,
|
|
206
270
|
source,
|
|
207
271
|
baseline,
|
|
208
272
|
phase: "branch",
|
|
@@ -212,12 +276,39 @@ export async function publish(args) {
|
|
|
212
276
|
}
|
|
213
277
|
const save = () => atomic(journalPath, j);
|
|
214
278
|
if (j.phase === "branch") {
|
|
279
|
+
if (j.gitRef) {
|
|
280
|
+
// Record intent before any corpus mutation, including before branch creation.
|
|
281
|
+
// A fresh local state must not treat a lagging, partially written head as clean.
|
|
282
|
+
const current = await trackedBranch(store, binding, j.gitRef);
|
|
283
|
+
invariant((!current?.pending || current.pending.attemptId === j.attemptId) &&
|
|
284
|
+
current?.applied?.snapshotId === j.baseline?.snapshotId, "Git branch ownership or baseline changed before import.");
|
|
285
|
+
await store.upsert("main", [
|
|
286
|
+
{
|
|
287
|
+
...current,
|
|
288
|
+
id: gitBranchId(j.gitRef),
|
|
289
|
+
kind: "manifest",
|
|
290
|
+
role: "git-branch",
|
|
291
|
+
schemaVersion: 1,
|
|
292
|
+
repoId: binding.repoId,
|
|
293
|
+
indexId: binding.indexId,
|
|
294
|
+
configHash: binding.configHash,
|
|
295
|
+
gitRef: j.gitRef,
|
|
296
|
+
writer: j.writer,
|
|
297
|
+
pending: {
|
|
298
|
+
attemptId: j.attemptId,
|
|
299
|
+
buildId: j.buildId,
|
|
300
|
+
commitOid: b.commitOid,
|
|
301
|
+
},
|
|
302
|
+
},
|
|
303
|
+
]);
|
|
304
|
+
}
|
|
215
305
|
const branches = await store.branches();
|
|
216
306
|
const found = branches.find((x) => x.name === j.writer);
|
|
217
307
|
if (found)
|
|
218
|
-
invariant(found.parent === j.source &&
|
|
308
|
+
invariant((j.reuseWriter || found.parent === j.source) &&
|
|
219
309
|
found.snapshotId === (j.baseline?.snapshotId ?? null), "Partially created writer has an unexpected baseline.");
|
|
220
310
|
else {
|
|
311
|
+
invariant(!j.reuseWriter, "Tracked writer is missing; refusing to recreate a nonempty baseline.");
|
|
221
312
|
const source = branches.find((x) => x.name === j.source);
|
|
222
313
|
invariant(source &&
|
|
223
314
|
(j.baseline
|
|
@@ -237,7 +328,7 @@ export async function publish(args) {
|
|
|
237
328
|
if (j.baseline)
|
|
238
329
|
for await (const d of store.list(tag(j.baseline.tagName))) {
|
|
239
330
|
oldIds.add(d.id);
|
|
240
|
-
oldHashes.set(d.id,
|
|
331
|
+
oldHashes.set(d.id, recordHash(d, b.preset));
|
|
241
332
|
}
|
|
242
333
|
const newIds = new Set([
|
|
243
334
|
...Object.keys(b.recordHashes),
|
|
@@ -309,8 +400,10 @@ export async function publish(args) {
|
|
|
309
400
|
const name = versionTag(b.commitOid);
|
|
310
401
|
const found = (await store.tags()).find((t) => t.name === name);
|
|
311
402
|
const final = found ?? (await store.tag(name, tag(j.candidate.name)));
|
|
312
|
-
invariant(
|
|
313
|
-
|
|
403
|
+
invariant(existing
|
|
404
|
+
? final.snapshotId === existing.snapshotId
|
|
405
|
+
: final.snapshotId === j.candidate.snapshotId, "Published Tag name already points to a different snapshot.");
|
|
406
|
+
const result = existing ?? {
|
|
314
407
|
id: versionId(b.commitOid),
|
|
315
408
|
kind: "manifest",
|
|
316
409
|
role: "published",
|
|
@@ -330,8 +423,39 @@ export async function publish(args) {
|
|
|
330
423
|
counts: b.counts,
|
|
331
424
|
validation: { inventory: true, content: true, query: true },
|
|
332
425
|
};
|
|
333
|
-
|
|
334
|
-
|
|
426
|
+
if (!existing)
|
|
427
|
+
await store.upsert("main", [result]);
|
|
428
|
+
if (j.gitRef) {
|
|
429
|
+
const current = await trackedBranch(store, binding, j.gitRef);
|
|
430
|
+
invariant(current?.pending?.attemptId === j.attemptId ||
|
|
431
|
+
(!current?.pending && current?.applied?.attemptId === j.attemptId), "Tracked branch publication ownership changed.");
|
|
432
|
+
// Pin the exact writer baseline even when another branch published this commit first.
|
|
433
|
+
const applied = {
|
|
434
|
+
...result,
|
|
435
|
+
writer: j.writer,
|
|
436
|
+
snapshotId: j.candidate.snapshotId,
|
|
437
|
+
tagName: final.snapshotId === j.candidate.snapshotId
|
|
438
|
+
? final.name
|
|
439
|
+
: j.candidate.name,
|
|
440
|
+
attemptId: j.attemptId,
|
|
441
|
+
};
|
|
442
|
+
await store.upsert("main", [
|
|
443
|
+
{
|
|
444
|
+
id: gitBranchId(j.gitRef),
|
|
445
|
+
kind: "manifest",
|
|
446
|
+
role: "git-branch",
|
|
447
|
+
schemaVersion: 1,
|
|
448
|
+
repoId: binding.repoId,
|
|
449
|
+
indexId: binding.indexId,
|
|
450
|
+
configHash: binding.configHash,
|
|
451
|
+
gitRef: j.gitRef,
|
|
452
|
+
writer: j.writer,
|
|
453
|
+
applied,
|
|
454
|
+
publishedTagName: result.tagName,
|
|
455
|
+
},
|
|
456
|
+
]);
|
|
457
|
+
}
|
|
458
|
+
await atomic(lastBuildPath(state, j.gitRef), {
|
|
335
459
|
artifact: b.directory,
|
|
336
460
|
version: result,
|
|
337
461
|
});
|
package/dist/publish.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
|
package/dist/releases.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { hash, invariant } from "./common.js";
|
|
2
2
|
import { gitTags } from "./git.js";
|
|
3
3
|
import { one, branch } from "./remote.js";
|
|
4
|
-
import { published } from "./publish.js";
|
|
4
|
+
import { published, trackedBranch, } from "./publish.js";
|
|
5
5
|
export const releaseAlias = (ref) => `rel-${hash(ref).slice(0, 40)}`;
|
|
6
6
|
export const releaseId = (ref) => `ref-${hash(ref)}`;
|
|
7
7
|
/** Only observed local tags. Absence is not deletion authority; this command never prunes. */
|
|
@@ -45,11 +45,29 @@ export async function syncTags(store, binding, path) {
|
|
|
45
45
|
return results;
|
|
46
46
|
}
|
|
47
47
|
export async function resolveVersion(store, binding, selector) {
|
|
48
|
-
const versions = await published(store, binding);
|
|
49
48
|
const ref = selector.startsWith("refs/tags/")
|
|
50
49
|
? selector
|
|
51
50
|
: `refs/tags/${selector}`;
|
|
52
|
-
const control =
|
|
51
|
+
const control = selector.startsWith("refs/heads/")
|
|
52
|
+
? undefined
|
|
53
|
+
: await one(store, branch("main"), releaseId(ref), true);
|
|
54
|
+
const headRef = selector.startsWith("refs/heads/")
|
|
55
|
+
? selector
|
|
56
|
+
: `refs/heads/${selector}`;
|
|
57
|
+
const head = !selector.startsWith("refs/") || selector.startsWith("refs/heads/")
|
|
58
|
+
? await trackedBranch(store, binding, headRef)
|
|
59
|
+
: undefined;
|
|
60
|
+
invariant(!(head && control), "Ambiguous branch/tag name: use refs/heads/... or refs/tags/...");
|
|
61
|
+
// Pin moving ref control before listing versions. Otherwise publication can
|
|
62
|
+
// advance the ref to a version absent from the earlier list.
|
|
63
|
+
const versions = await published(store, binding);
|
|
64
|
+
if (head) {
|
|
65
|
+
invariant(head.applied, "Git branch has no published version yet; finish its import.");
|
|
66
|
+
const result = versions.find((v) => v.commitOid === head.applied.commitOid &&
|
|
67
|
+
v.tagName === head.publishedTagName);
|
|
68
|
+
invariant(result, "Git branch target is not a published version.");
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
53
71
|
// Like Git import, a known tag name takes precedence over an OID spelling.
|
|
54
72
|
// Its pending or invalid state must not fall back to an unrelated commit.
|
|
55
73
|
if (!control && !selector.startsWith("refs/")) {
|