frontier-mcp 0.4.0 → 0.5.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/README.md +29 -13
- package/dist/domain.d.ts +6 -12
- package/dist/domain.d.ts.map +1 -1
- package/dist/domain.js +0 -9
- package/dist/domain.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +9 -2
- package/dist/server.js.map +1 -1
- package/dist/storage/driver.d.ts +19 -0
- package/dist/storage/driver.d.ts.map +1 -1
- package/dist/storage/driver.js +19 -0
- package/dist/storage/driver.js.map +1 -1
- package/dist/storage/markdown/create.d.ts +27 -12
- package/dist/storage/markdown/create.d.ts.map +1 -1
- package/dist/storage/markdown/create.js +149 -75
- package/dist/storage/markdown/create.js.map +1 -1
- package/dist/storage/markdown/driver.d.ts.map +1 -1
- package/dist/storage/markdown/driver.js +37 -8
- package/dist/storage/markdown/driver.js.map +1 -1
- package/dist/storage/markdown/header-doc.d.ts +7 -0
- package/dist/storage/markdown/header-doc.d.ts.map +1 -1
- package/dist/storage/markdown/header-doc.js +34 -1
- package/dist/storage/markdown/header-doc.js.map +1 -1
- package/dist/storage/markdown/id-pattern.d.ts +43 -0
- package/dist/storage/markdown/id-pattern.d.ts.map +1 -0
- package/dist/storage/markdown/id-pattern.js +143 -0
- package/dist/storage/markdown/id-pattern.js.map +1 -0
- package/dist/storage/markdown/migrate.d.ts +2 -1
- package/dist/storage/markdown/migrate.d.ts.map +1 -1
- package/dist/storage/markdown/migrate.js +3 -3
- package/dist/storage/markdown/migrate.js.map +1 -1
- package/dist/tools/create-tickets.d.ts +1 -1
- package/dist/tools/create-tickets.d.ts.map +1 -1
- package/dist/tools/create-tickets.js +16 -10
- package/dist/tools/create-tickets.js.map +1 -1
- package/dist/tools/get-board.d.ts +3 -1
- package/dist/tools/get-board.d.ts.map +1 -1
- package/dist/tools/get-board.js +8 -4
- package/dist/tools/get-board.js.map +1 -1
- package/package.json +1 -1
- package/scripts/frontier-setup.cjs +17 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { splitFrontmatter } from './frontmatter.js';
|
|
2
|
-
import { NoSuchFogPatch } from '../driver.js';
|
|
2
|
+
import { NoSuchFogPatch, SectionBreakInValue } from '../driver.js';
|
|
3
3
|
/**
|
|
4
4
|
* The Map's typed sections live under `##` headings. Only this module knows
|
|
5
5
|
* that — the driver interface carries the values, never the section names, so
|
|
@@ -16,6 +16,7 @@ export const SECTION_HEADINGS = {
|
|
|
16
16
|
/** Markers stating that their contents are overwritten — ADR 0002. */
|
|
17
17
|
export const GENERATED_OPEN = '<!-- GENERATED: overwritten on every mutation through the server. Do not hand-edit. -->';
|
|
18
18
|
export const GENERATED_CLOSE = '<!-- /GENERATED -->';
|
|
19
|
+
const GENERATED_MARKER = /<!--[ \t]*\/?GENERATED\b[^>]*-->/i;
|
|
19
20
|
const GENERATED_BLOCK = /<!--[ \t]*GENERATED\b[^>]*-->\r?\n?([\s\S]*?)<!--[ \t]*\/GENERATED[ \t]*-->/i;
|
|
20
21
|
const BULLET = /^[ \t]*[-*][ \t]+(.+?)[ \t]*$/;
|
|
21
22
|
/**
|
|
@@ -124,6 +125,38 @@ export function scaffoldMap(edit) {
|
|
|
124
125
|
.join('\n')
|
|
125
126
|
.replace(/\n{3,}/g, '\n\n');
|
|
126
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Refuse any value that, as written, holds a line {@link NEXT_HEADING} — the
|
|
130
|
+
* reader's own section break — would match. Written verbatim, such a line ends
|
|
131
|
+
* the section early: the value reads back truncated, and the rest is left as an
|
|
132
|
+
* orphan section a later replace never reaches.
|
|
133
|
+
*/
|
|
134
|
+
export function assertNoSectionBreaks(edit) {
|
|
135
|
+
const placed = [
|
|
136
|
+
[SECTION_HEADINGS.destination, edit.destination?.trim()],
|
|
137
|
+
[SECTION_HEADINGS.notes, edit.notes?.trim()],
|
|
138
|
+
[SECTION_HEADINGS.fog, edit.addFog === undefined ? undefined : `- ${edit.addFog.trim()}`],
|
|
139
|
+
[
|
|
140
|
+
SECTION_HEADINGS.outOfScope,
|
|
141
|
+
edit.ruleOut === undefined ? undefined : `- ${edit.ruleOut.trim()}`,
|
|
142
|
+
],
|
|
143
|
+
];
|
|
144
|
+
for (const [section, value] of placed) {
|
|
145
|
+
if (value === undefined)
|
|
146
|
+
continue;
|
|
147
|
+
const match = NEXT_HEADING.exec(value);
|
|
148
|
+
if (match !== null) {
|
|
149
|
+
const lineEnd = value.indexOf('\n', match.index);
|
|
150
|
+
const line = value.slice(match.index, lineEnd < 0 ? undefined : lineEnd).trimEnd();
|
|
151
|
+
throw new SectionBreakInValue(section, line);
|
|
152
|
+
}
|
|
153
|
+
// Either marker alone is enough: an opener pairs with the real closer below
|
|
154
|
+
// it, and a closer ends the real block early.
|
|
155
|
+
const marker = GENERATED_MARKER.exec(value);
|
|
156
|
+
if (marker !== null)
|
|
157
|
+
throw new SectionBreakInValue(section, marker[0], 'marker');
|
|
158
|
+
}
|
|
159
|
+
}
|
|
127
160
|
export function ensureTrailingNewline(text) {
|
|
128
161
|
return text.endsWith('\n') ? text : `${text}\n`;
|
|
129
162
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header-doc.js","sourceRoot":"","sources":["../../../src/storage/markdown/header-doc.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"header-doc.js","sourceRoot":"","sources":["../../../src/storage/markdown/header-doc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export declare const CONFIG_FILE = "frontier.yml";
|
|
2
|
+
export declare const DEFAULT_ID_PATTERN = "T<b36{6}>";
|
|
3
|
+
export type IdToken = {
|
|
4
|
+
readonly kind: 'literal';
|
|
5
|
+
readonly text: string;
|
|
6
|
+
} | {
|
|
7
|
+
readonly kind: 'counter';
|
|
8
|
+
} | {
|
|
9
|
+
readonly kind: 'random';
|
|
10
|
+
readonly base: 16 | 36;
|
|
11
|
+
readonly length: number;
|
|
12
|
+
};
|
|
13
|
+
/** A legal pattern, compiled. Both axes are properties of the token list, decided here once. */
|
|
14
|
+
export interface IdPattern {
|
|
15
|
+
readonly source: string;
|
|
16
|
+
readonly tokens: readonly IdToken[];
|
|
17
|
+
/** Minting needs coordination exactly when the pattern contains `<N>` (T53). */
|
|
18
|
+
readonly needsCoordination: boolean;
|
|
19
|
+
/** Identity survives a merge exactly when the pattern contains a random token (T53). */
|
|
20
|
+
readonly survivesMerge: boolean;
|
|
21
|
+
}
|
|
22
|
+
export type IdPatternResult = {
|
|
23
|
+
readonly pattern: IdPattern;
|
|
24
|
+
readonly problem?: undefined;
|
|
25
|
+
} | {
|
|
26
|
+
readonly pattern?: undefined;
|
|
27
|
+
readonly problem: string;
|
|
28
|
+
};
|
|
29
|
+
export declare function compileIdPattern(source: string): IdPatternResult;
|
|
30
|
+
/**
|
|
31
|
+
* What the pattern accepts as an id. Random tokens match any length, not just
|
|
32
|
+
* the one minted: ids from an earlier pattern or a hand edit stay recognized,
|
|
33
|
+
* since nothing migrates (T35), so the default accepts `T34` as well as `Tk3x9q2`.
|
|
34
|
+
*/
|
|
35
|
+
export declare function idMatcher(pattern: IdPattern): RegExp;
|
|
36
|
+
/**
|
|
37
|
+
* Read `<storageDir>/frontier.yml` once. An absent file or key is the default;
|
|
38
|
+
* a file that cannot be read as a mapping, or a pattern that is illegal, is a
|
|
39
|
+
* problem the caller surfaces — never a silent fallback to the default, since
|
|
40
|
+
* minting in a format nobody asked for is permanent (T54).
|
|
41
|
+
*/
|
|
42
|
+
export declare function loadIdPattern(storage: string, storageDir: string): IdPatternResult;
|
|
43
|
+
//# sourceMappingURL=id-pattern.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-pattern.d.ts","sourceRoot":"","sources":["../../../src/storage/markdown/id-pattern.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,WAAW,iBAAiB,CAAC;AAC1C,eAAO,MAAM,kBAAkB,cAAc,CAAC;AAM9C,MAAM,MAAM,OAAO,GACf;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjF,gGAAgG;AAChG,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,gFAAgF;IAChF,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,wFAAwF;IACxF,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAA;CAAE,GAC7D;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAoB/D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CA8EhE;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM,CAOpD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe,CAkClF"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { parseDocument } from 'yaml';
|
|
4
|
+
export const CONFIG_FILE = 'frontier.yml';
|
|
5
|
+
export const DEFAULT_ID_PATTERN = 'T<b36{6}>';
|
|
6
|
+
const MAX_ID_LENGTH = 64;
|
|
7
|
+
const LITERAL = /^[A-Za-z0-9._-]$/;
|
|
8
|
+
const TOKEN = /^<(?:(N)|b(36|16)\{(\d+)\})>/;
|
|
9
|
+
const EFFORT_REASON = '<effort> is not a token: an Effort slug is a directory name that a plain mv changes outside ' +
|
|
10
|
+
'anything the product can observe, so an id derived from it would go stale unseen (T52). ' +
|
|
11
|
+
'Use a literal prefix such as AUTH-<N> instead.';
|
|
12
|
+
const LEADING_LITERAL_REASON = 'every pattern must begin with a literal letter or underscore: T55 rests on it, since it keeps ' +
|
|
13
|
+
'every id predicate anchored and narrow, and T52 rule 3 keeps an id from being a YAML scalar ' +
|
|
14
|
+
'with a normalising alternate spelling.';
|
|
15
|
+
function firstLine(message) {
|
|
16
|
+
return message.split('\n', 1)[0]?.trim() ?? '';
|
|
17
|
+
}
|
|
18
|
+
function fail(problem) {
|
|
19
|
+
return { problem };
|
|
20
|
+
}
|
|
21
|
+
export function compileIdPattern(source) {
|
|
22
|
+
const tokens = [];
|
|
23
|
+
let literal = '';
|
|
24
|
+
const flush = () => {
|
|
25
|
+
if (literal !== '')
|
|
26
|
+
tokens.push({ kind: 'literal', text: literal });
|
|
27
|
+
literal = '';
|
|
28
|
+
};
|
|
29
|
+
for (let at = 0; at < source.length;) {
|
|
30
|
+
const char = source.charAt(at);
|
|
31
|
+
if (char === '<') {
|
|
32
|
+
const rest = source.slice(at);
|
|
33
|
+
if (rest.startsWith('<effort>'))
|
|
34
|
+
return fail(EFFORT_REASON);
|
|
35
|
+
const match = TOKEN.exec(rest);
|
|
36
|
+
if (match === null) {
|
|
37
|
+
return fail(`${JSON.stringify(rest.slice(0, 12))} is not a token. The tokens are <N>, <b36{n}> and <b16{n}>.`);
|
|
38
|
+
}
|
|
39
|
+
flush();
|
|
40
|
+
if (match[1] !== undefined) {
|
|
41
|
+
tokens.push({ kind: 'counter' });
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
const length = Number(match[3]);
|
|
45
|
+
if (length < 1 || length > MAX_ID_LENGTH) {
|
|
46
|
+
return fail(`${match[0]} must draw between 1 and ${String(MAX_ID_LENGTH)} characters.`);
|
|
47
|
+
}
|
|
48
|
+
tokens.push({ kind: 'random', base: match[2] === '16' ? 16 : 36, length });
|
|
49
|
+
}
|
|
50
|
+
at += match[0].length;
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
if (!LITERAL.test(char)) {
|
|
54
|
+
return fail(`${JSON.stringify(char)} is not a legal literal: literals are limited to A-Z a-z 0-9 . _ - so that an ` +
|
|
55
|
+
'id is a valid filename on every platform (T52 rule 5).');
|
|
56
|
+
}
|
|
57
|
+
literal += char;
|
|
58
|
+
at += 1;
|
|
59
|
+
}
|
|
60
|
+
flush();
|
|
61
|
+
const first = tokens[0];
|
|
62
|
+
if (first?.kind !== 'literal' || !/^[A-Za-z_]/.test(first.text)) {
|
|
63
|
+
return fail(`${JSON.stringify(source)} does not begin with a literal: ${LEADING_LITERAL_REASON}`);
|
|
64
|
+
}
|
|
65
|
+
const counters = tokens.filter(token => token.kind === 'counter').length;
|
|
66
|
+
const randoms = tokens.filter(token => token.kind === 'random').length;
|
|
67
|
+
if (counters > 1) {
|
|
68
|
+
return fail('at most one <N> per pattern: with two, "the next number" is undefined (T52).');
|
|
69
|
+
}
|
|
70
|
+
if (counters + randoms === 0) {
|
|
71
|
+
return fail('a pattern needs a <N> or a random token, or every id it mints is the same (T52).');
|
|
72
|
+
}
|
|
73
|
+
const width = tokens.reduce((sum, token) => {
|
|
74
|
+
if (token.kind === 'literal')
|
|
75
|
+
return sum + token.text.length;
|
|
76
|
+
return sum + (token.kind === 'random' ? token.length : 1);
|
|
77
|
+
}, 0);
|
|
78
|
+
if (width > MAX_ID_LENGTH) {
|
|
79
|
+
return fail(`a minted id may be at most ${String(MAX_ID_LENGTH)} characters (T52 rule 4).`);
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
pattern: {
|
|
83
|
+
source,
|
|
84
|
+
tokens,
|
|
85
|
+
needsCoordination: counters > 0,
|
|
86
|
+
survivesMerge: randoms > 0,
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* What the pattern accepts as an id. Random tokens match any length, not just
|
|
92
|
+
* the one minted: ids from an earlier pattern or a hand edit stay recognized,
|
|
93
|
+
* since nothing migrates (T35), so the default accepts `T34` as well as `Tk3x9q2`.
|
|
94
|
+
*/
|
|
95
|
+
export function idMatcher(pattern) {
|
|
96
|
+
const parts = pattern.tokens.map(token => {
|
|
97
|
+
if (token.kind === 'literal')
|
|
98
|
+
return token.text.replace(/[.]/g, '\\.');
|
|
99
|
+
if (token.kind === 'counter')
|
|
100
|
+
return '\\d+';
|
|
101
|
+
return token.base === 16 ? '[0-9a-f]+' : '[0-9a-z]+';
|
|
102
|
+
});
|
|
103
|
+
return new RegExp(`^${parts.join('')}$`);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Read `<storageDir>/frontier.yml` once. An absent file or key is the default;
|
|
107
|
+
* a file that cannot be read as a mapping, or a pattern that is illegal, is a
|
|
108
|
+
* problem the caller surfaces — never a silent fallback to the default, since
|
|
109
|
+
* minting in a format nobody asked for is permanent (T54).
|
|
110
|
+
*/
|
|
111
|
+
export function loadIdPattern(storage, storageDir) {
|
|
112
|
+
const label = `${storageDir}/${CONFIG_FILE}`;
|
|
113
|
+
let contents;
|
|
114
|
+
try {
|
|
115
|
+
contents = readFileSync(join(storage, CONFIG_FILE), 'utf8');
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
if (error.code === 'ENOENT')
|
|
119
|
+
return compileIdPattern(DEFAULT_ID_PATTERN);
|
|
120
|
+
return fail(`${label} could not be read: ${firstLine(error.message)}`);
|
|
121
|
+
}
|
|
122
|
+
const document = parseDocument(contents);
|
|
123
|
+
if (document.errors.length > 0) {
|
|
124
|
+
return fail(`${label} is not valid YAML: ${firstLine(document.errors[0]?.message ?? 'parse error')}`);
|
|
125
|
+
}
|
|
126
|
+
const parsed = document.toJS();
|
|
127
|
+
if (parsed === null)
|
|
128
|
+
return compileIdPattern(DEFAULT_ID_PATTERN);
|
|
129
|
+
if (typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
130
|
+
return fail(`${label} must be a YAML mapping holding id_pattern.`);
|
|
131
|
+
}
|
|
132
|
+
const value = parsed['id_pattern'];
|
|
133
|
+
if (value === undefined)
|
|
134
|
+
return compileIdPattern(DEFAULT_ID_PATTERN);
|
|
135
|
+
if (typeof value !== 'string') {
|
|
136
|
+
return fail(`id_pattern in ${label} must be a string.`);
|
|
137
|
+
}
|
|
138
|
+
const compiled = compileIdPattern(value);
|
|
139
|
+
return compiled.problem === undefined
|
|
140
|
+
? compiled
|
|
141
|
+
: fail(`id_pattern ${JSON.stringify(value)} in ${label} is illegal: ${compiled.problem}`);
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=id-pattern.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id-pattern.js","sourceRoot":"","sources":["../../../src/storage/markdown/id-pattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAErC,MAAM,CAAC,MAAM,WAAW,GAAG,cAAc,CAAC;AAC1C,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAE9C,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,OAAO,GAAG,kBAAkB,CAAC;AACnC,MAAM,KAAK,GAAG,8BAA8B,CAAC;AAqB7C,MAAM,aAAa,GACjB,8FAA8F;IAC9F,0FAA0F;IAC1F,gDAAgD,CAAC;AAEnD,MAAM,sBAAsB,GAC1B,gGAAgG;IAChG,8FAA8F;IAC9F,wCAAwC,CAAC;AAE3C,SAAS,SAAS,CAAC,OAAe;IAChC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,IAAI,CAAC,OAAe;IAC3B,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAc;IAC7C,MAAM,MAAM,GAAc,EAAE,CAAC;IAC7B,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,IAAI,OAAO,KAAK,EAAE;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACpE,OAAO,GAAG,EAAE,CAAC;IACf,CAAC,CAAC;IAEF,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE/B,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;gBAAE,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC;YAE5D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO,IAAI,CACT,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,6DAA6D,CAClG,CAAC;YACJ,CAAC;YACD,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,aAAa,EAAE,CAAC;oBACzC,OAAO,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,4BAA4B,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBAC1F,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAC7E,CAAC;YACD,EAAE,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACtB,SAAS;QACX,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CACT,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gFAAgF;gBACrG,wDAAwD,CAC3D,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,IAAI,CAAC;QAChB,EAAE,IAAI,CAAC,CAAC;IACV,CAAC;IACD,KAAK,EAAE,CAAC;IAER,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,KAAK,EAAE,IAAI,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,CACT,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAmC,sBAAsB,EAAE,CACrF,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IACzE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,MAAM,CAAC;IACvE,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC,8EAA8E,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,QAAQ,GAAG,OAAO,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,kFAAkF,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACzC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7D,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC,EAAE,CAAC,CAAC,CAAC;IACN,IAAI,KAAK,GAAG,aAAa,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC,8BAA8B,MAAM,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO;QACL,OAAO,EAAE;YACP,MAAM;YACN,MAAM;YACN,iBAAiB,EAAE,QAAQ,GAAG,CAAC;YAC/B,aAAa,EAAE,OAAO,GAAG,CAAC;SAC3B;KACF,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,OAAkB;IAC1C,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACvC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACvE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QAC5C,OAAO,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;IACvD,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,UAAkB;IAC/D,MAAM,KAAK,GAAG,GAAG,UAAU,IAAI,WAAW,EAAE,CAAC;IAC7C,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;YACpD,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,GAAG,KAAK,uBAAuB,SAAS,CAAE,KAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CACT,GAAG,KAAK,uBAAuB,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,aAAa,CAAC,EAAE,CACzF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAY,QAAQ,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IACjE,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC,GAAG,KAAK,6CAA6C,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,KAAK,GAAI,MAAkC,CAAC,YAAY,CAAC,CAAC;IAChE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IACrE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,iBAAiB,KAAK,oBAAoB,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,QAAQ,CAAC,OAAO,KAAK,SAAS;QACnC,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,KAAK,gBAAgB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;AAC9F,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { MigrationReport, TicketSummary } from '../../domain.ts';
|
|
2
|
-
import { type Rescan } from './create.ts';
|
|
2
|
+
import { type MintingPlan, type Rescan } from './create.ts';
|
|
3
3
|
export interface TicketFileEntry {
|
|
4
4
|
readonly filename: string;
|
|
5
5
|
readonly ticket: TicketSummary;
|
|
6
6
|
}
|
|
7
7
|
export interface MigrateFilesRequest {
|
|
8
8
|
readonly storage: string;
|
|
9
|
+
readonly minting: MintingPlan;
|
|
9
10
|
readonly effort: string;
|
|
10
11
|
readonly issues: string;
|
|
11
12
|
readonly entries: readonly TicketFileEntry[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/storage/markdown/migrate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAmB,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../../../src/storage/markdown/migrate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAmB,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAsC,KAAK,WAAW,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAIhG,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D;AASD;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAgC/F"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { rename as renameFile, unlink } from 'node:fs/promises';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
import {
|
|
3
|
+
import { ticketFilename, withIdReservations } from './create.js';
|
|
4
4
|
import { normalizeTicket } from './serialize.js';
|
|
5
5
|
import { stage, unstage, writeAtomically } from './write.js';
|
|
6
6
|
/**
|
|
@@ -20,10 +20,10 @@ export async function migrateEffortFiles(request) {
|
|
|
20
20
|
const needMint = candidates.filter(entry => entry.ticket.id === undefined).length;
|
|
21
21
|
const used = idsOf(request.allTickets);
|
|
22
22
|
if (preview) {
|
|
23
|
-
const plan = planChanges(candidates,
|
|
23
|
+
const plan = planChanges(candidates, request.minting.peek(used, needMint), entries, rename);
|
|
24
24
|
return { effort, preview: true, renamed: rename, changes: plan.map(file => file.change) };
|
|
25
25
|
}
|
|
26
|
-
return withIdReservations(request.storage, needMint, request.rescan, async (minted) => {
|
|
26
|
+
return withIdReservations(request.minting, request.storage, needMint, request.rescan, async (minted) => {
|
|
27
27
|
const plan = planChanges(candidates, minted, entries, rename);
|
|
28
28
|
await applyPlan(request, plan);
|
|
29
29
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/storage/markdown/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../../../src/storage/markdown/migrate.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,7 +53,7 @@ export interface PlannedBatch {
|
|
|
53
53
|
* not allow. Everything resolvable without an id is settled here, so by the time
|
|
54
54
|
* the driver mints one the only rule left to check is the one that needed it.
|
|
55
55
|
*/
|
|
56
|
-
export declare function planBatch(requests: readonly DraftRequest[], existing: readonly TicketSummary[]): PlannedBatch;
|
|
56
|
+
export declare function planBatch(requests: readonly DraftRequest[], existing: readonly TicketSummary[], isId: (name: string) => boolean): PlannedBatch;
|
|
57
57
|
/**
|
|
58
58
|
* One line per Ticket: the id it was minted and the Edges as resolved — the two
|
|
59
59
|
* things a caller cannot work out for itself. The filename is deliberately not
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-tickets.d.ts","sourceRoot":"","sources":["../../src/tools/create-tickets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAKjF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;iBAuCnC,CAAC;AAEH,eAAO,MAAM,wBAAwB,QAGmD,CAAC;AAEzF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,aAAa,EAAE,KAAK,IAAI,CAAC;CACxF;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,QAAQ,EAAE,SAAS,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"create-tickets.d.ts","sourceRoot":"","sources":["../../src/tools/create-tickets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAKjF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;iBAuCnC,CAAC;AAEH,eAAO,MAAM,wBAAwB,QAGmD,CAAC;AAEzF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,SAAS,aAAa,EAAE,KAAK,IAAI,CAAC;CACxF;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,SAAS,YAAY,EAAE,EACjC,QAAQ,EAAE,SAAS,aAAa,EAAE,EAClC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAC9B,YAAY,CAgBd;AA6HD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,CAgBvF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { TRIAGE_ROLES } from '../domain.js';
|
|
3
3
|
import { cycleThrough, renderCycle, resolveDraftEdges } from '../edges.js';
|
|
4
4
|
import { indexById } from '../frontier.js';
|
|
5
5
|
export const createTicketsInputSchema = z.object({
|
|
@@ -15,7 +15,7 @@ export const createTicketsInputSchema = z.object({
|
|
|
15
15
|
.min(1)
|
|
16
16
|
.optional()
|
|
17
17
|
.describe('Your own temporary name for this Ticket, so siblings can declare Edges on it ' +
|
|
18
|
-
'before it has an id. Never stored. May not
|
|
18
|
+
'before it has an id. Never stored. May not be something this workspace would accept as a Ticket id.'),
|
|
19
19
|
title: z.string().min(1),
|
|
20
20
|
kind: z.enum(['build', 'decision']).optional().describe('Defaults to build.'),
|
|
21
21
|
type: z
|
|
@@ -42,11 +42,11 @@ export const createTicketsDescription = 'Publish a whole breakdown in one call.
|
|
|
42
42
|
* not allow. Everything resolvable without an id is settled here, so by the time
|
|
43
43
|
* the driver mints one the only rule left to check is the one that needed it.
|
|
44
44
|
*/
|
|
45
|
-
export function planBatch(requests, existing) {
|
|
45
|
+
export function planBatch(requests, existing, isId) {
|
|
46
46
|
const drafts = requests.map(request => toDraft(request));
|
|
47
|
-
const keys = declaredKeys(drafts);
|
|
47
|
+
const keys = declaredKeys(drafts, isId, existing);
|
|
48
48
|
const provisional = drafts.map((draft, index) => draft.key ?? placeholderFor(index, keys));
|
|
49
|
-
checkEdges(drafts, keys, existing);
|
|
49
|
+
checkEdges(drafts, keys, existing, isId);
|
|
50
50
|
// Named by their keys, so a loop between two drafts reads in the caller's own
|
|
51
51
|
// vocabulary rather than in ids they have not seen yet.
|
|
52
52
|
checkCycles(drafts, provisional, existing);
|
|
@@ -72,15 +72,21 @@ function toDraft(request) {
|
|
|
72
72
|
body: request.body,
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
|
-
function declaredKeys(drafts) {
|
|
75
|
+
function declaredKeys(drafts, isId, existing) {
|
|
76
76
|
const keys = new Set();
|
|
77
|
+
const taken = new Set(existing.map(ticket => ticket.id));
|
|
77
78
|
for (const draft of drafts) {
|
|
78
79
|
if (draft.key === undefined)
|
|
79
80
|
continue;
|
|
80
81
|
// A key shaped like an id is ambiguous: an Edge naming `T8` could mean the
|
|
81
82
|
// sibling draft or the Ticket already answering to it, and the server would
|
|
82
|
-
// have to guess which.
|
|
83
|
-
|
|
83
|
+
// have to guess which. Shape alone does not cover it: a Ticket minted under
|
|
84
|
+
// an earlier pattern keeps an id the current one no longer accepts.
|
|
85
|
+
if (taken.has(draft.key)) {
|
|
86
|
+
throw new Error(`Temporary key "${draft.key}" is the id of an existing Ticket. Pick another name, ` +
|
|
87
|
+
'so an Edge naming it is never ambiguous.');
|
|
88
|
+
}
|
|
89
|
+
if (isId(draft.key)) {
|
|
84
90
|
throw new Error(`Temporary key "${draft.key}" looks like a Ticket id. Pick a name that does not, ` +
|
|
85
91
|
'so an Edge naming it is never ambiguous.');
|
|
86
92
|
}
|
|
@@ -96,11 +102,11 @@ function declaredKeys(drafts) {
|
|
|
96
102
|
* call. Anything else is a typo, and letting it through would quietly turn a
|
|
97
103
|
* mistyped key into a dangling Edge nobody notices.
|
|
98
104
|
*/
|
|
99
|
-
function checkEdges(drafts, keys, existing) {
|
|
105
|
+
function checkEdges(drafts, keys, existing, isId) {
|
|
100
106
|
const ids = indexById(existing);
|
|
101
107
|
for (const draft of drafts) {
|
|
102
108
|
for (const edge of draft.blockedBy) {
|
|
103
|
-
if (keys.has(edge) || ids.has(edge) ||
|
|
109
|
+
if (keys.has(edge) || ids.has(edge) || isId(edge))
|
|
104
110
|
continue;
|
|
105
111
|
throw new Error(`"${draft.title}" is blocked by "${edge}", which is neither a Ticket id nor a key ` +
|
|
106
112
|
`declared in this call. Declared keys: ${[...keys].join(', ') || '(none)'}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-tickets.js","sourceRoot":"","sources":["../../src/tools/create-tickets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"create-tickets.js","sourceRoot":"","sources":["../../src/tools/create-tickets.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,8 @@ export interface Board {
|
|
|
12
12
|
readonly frontier: ReadonlySet<TicketSummary>;
|
|
13
13
|
/** Every Ticket in the workspace, because Edges resolve repo-wide. */
|
|
14
14
|
readonly byId: ReadonlyMap<string, TicketSummary>;
|
|
15
|
+
/** Problems with the workspace's own configuration, which no Ticket carries. */
|
|
16
|
+
readonly workspaceWarnings: readonly string[];
|
|
15
17
|
}
|
|
16
18
|
/**
|
|
17
19
|
* A Board is three views of one array — the Effort's slice of it, the Frontier
|
|
@@ -19,7 +21,7 @@ export interface Board {
|
|
|
19
21
|
* the identity relationship they depend on in one place: `frontier.has(ticket)`
|
|
20
22
|
* only works because every view derives from the same objects.
|
|
21
23
|
*/
|
|
22
|
-
export declare function boardFor(effort: Effort, all: readonly TicketSummary[]): Board;
|
|
24
|
+
export declare function boardFor(effort: Effort, all: readonly TicketSummary[], workspaceWarnings?: readonly string[]): Board;
|
|
23
25
|
/**
|
|
24
26
|
* One line per Ticket, and nothing an agent has to open a file to interpret.
|
|
25
27
|
* The whole point is that this costs a fraction of reading the Effort, so every
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-board.d.ts","sourceRoot":"","sources":["../../src/tools/get-board.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG1D,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAEwC,CAAC;AAEzE,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;IAC9C,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"get-board.d.ts","sourceRoot":"","sources":["../../src/tools/get-board.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG1D,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAEwC,CAAC;AAEzE,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAC3C,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,aAAa,CAAC,CAAC;IAC9C,sEAAsE;IACtE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAClD,gFAAgF;IAChF,QAAQ,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,SAAS,aAAa,EAAE,EAC7B,iBAAiB,GAAE,SAAS,MAAM,EAAO,GACxC,KAAK,CAQP;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAgChD"}
|
package/dist/tools/get-board.js
CHANGED
|
@@ -12,12 +12,13 @@ export const getBoardDescription = "An Effort's Destination, then one line per T
|
|
|
12
12
|
* the identity relationship they depend on in one place: `frontier.has(ticket)`
|
|
13
13
|
* only works because every view derives from the same objects.
|
|
14
14
|
*/
|
|
15
|
-
export function boardFor(effort, all) {
|
|
15
|
+
export function boardFor(effort, all, workspaceWarnings = []) {
|
|
16
16
|
return {
|
|
17
17
|
effort,
|
|
18
18
|
tickets: all.filter(ticket => ticket.effort === effort.slug),
|
|
19
19
|
frontier: frontierOf(all),
|
|
20
20
|
byId: indexById(all),
|
|
21
|
+
workspaceWarnings,
|
|
21
22
|
};
|
|
22
23
|
}
|
|
23
24
|
/**
|
|
@@ -37,6 +38,7 @@ export function renderBoard(board) {
|
|
|
37
38
|
lines.push(labelled('spec', effort.specOpening));
|
|
38
39
|
if (tickets.length === 0) {
|
|
39
40
|
lines.push('', '(no tickets)');
|
|
41
|
+
appendWarnings(lines, collectWarnings(board));
|
|
40
42
|
return lines.join('\n');
|
|
41
43
|
}
|
|
42
44
|
const takeable = tickets.filter(ticket => frontier.has(ticket));
|
|
@@ -47,10 +49,12 @@ export function renderBoard(board) {
|
|
|
47
49
|
const line = renderLine(ticket, board);
|
|
48
50
|
lines.push(frontier.has(ticket) ? `> ${line}` : line);
|
|
49
51
|
}
|
|
50
|
-
|
|
52
|
+
appendWarnings(lines, collectWarnings(board));
|
|
53
|
+
return lines.join('\n');
|
|
54
|
+
}
|
|
55
|
+
function appendWarnings(lines, warnings) {
|
|
51
56
|
if (warnings.length > 0)
|
|
52
57
|
lines.push('', 'warnings:', ...warnings.map(entry => ` ${entry}`));
|
|
53
|
-
return lines.join('\n');
|
|
54
58
|
}
|
|
55
59
|
/**
|
|
56
60
|
* How long a claim may sit before it looks abandoned. Long enough that an agent
|
|
@@ -118,7 +122,7 @@ function renderEdge(id, from, board) {
|
|
|
118
122
|
* exists to deliver.
|
|
119
123
|
*/
|
|
120
124
|
function collectWarnings(board) {
|
|
121
|
-
const warnings = [];
|
|
125
|
+
const warnings = [...board.workspaceWarnings];
|
|
122
126
|
const dangling = new Set();
|
|
123
127
|
const orphaned = new Set();
|
|
124
128
|
const unrecognized = new Set();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-board.js","sourceRoot":"","sources":["../../src/tools/get-board.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACxE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;CAChG,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAC9B,gGAAgG;IAChG,sEAAsE,CAAC;
|
|
1
|
+
{"version":3,"file":"get-board.js","sourceRoot":"","sources":["../../src/tools/get-board.ts"],"names":[],"mappings":"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"}
|