frontier-mcp 0.6.0 → 1.0.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 +33 -0
- package/dist/domain.d.ts +62 -29
- package/dist/domain.d.ts.map +1 -1
- package/dist/domain.js +9 -0
- package/dist/domain.js.map +1 -1
- package/dist/frontier.js +1 -1
- package/dist/frontier.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +14 -8
- package/dist/server.js.map +1 -1
- package/dist/storage/driver.d.ts +36 -6
- package/dist/storage/driver.d.ts.map +1 -1
- package/dist/storage/driver.js +53 -5
- package/dist/storage/driver.js.map +1 -1
- package/dist/storage/markdown/create.d.ts +0 -2
- package/dist/storage/markdown/create.d.ts.map +1 -1
- package/dist/storage/markdown/create.js +0 -10
- 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 +36 -18
- package/dist/storage/markdown/driver.js.map +1 -1
- package/dist/storage/markdown/frontmatter.js +1 -1
- package/dist/storage/markdown/header-doc.d.ts.map +1 -1
- package/dist/storage/markdown/header-doc.js +13 -11
- package/dist/storage/markdown/header-doc.js.map +1 -1
- package/dist/storage/markdown/legacy.d.ts +8 -4
- package/dist/storage/markdown/legacy.d.ts.map +1 -1
- package/dist/storage/markdown/legacy.js +20 -15
- package/dist/storage/markdown/legacy.js.map +1 -1
- package/dist/storage/markdown/migrate.d.ts +11 -3
- package/dist/storage/markdown/migrate.d.ts.map +1 -1
- package/dist/storage/markdown/migrate.js +69 -80
- package/dist/storage/markdown/migrate.js.map +1 -1
- package/dist/storage/markdown/schema.d.ts +9 -0
- package/dist/storage/markdown/schema.d.ts.map +1 -0
- package/dist/storage/markdown/schema.js +21 -0
- package/dist/storage/markdown/schema.js.map +1 -0
- package/dist/storage/markdown/serialize.d.ts +1 -1
- package/dist/storage/markdown/serialize.d.ts.map +1 -1
- package/dist/storage/markdown/serialize.js +110 -24
- package/dist/storage/markdown/serialize.js.map +1 -1
- package/dist/storage/markdown/ticket.d.ts +29 -6
- package/dist/storage/markdown/ticket.d.ts.map +1 -1
- package/dist/storage/markdown/ticket.js +100 -33
- package/dist/storage/markdown/ticket.js.map +1 -1
- package/dist/storage/markdown/watcher.d.ts +1 -1
- package/dist/storage/markdown/watcher.d.ts.map +1 -1
- package/dist/storage/markdown/watcher.js +91 -11
- package/dist/storage/markdown/watcher.js.map +1 -1
- package/dist/tools/create-tickets.js +1 -1
- package/dist/tools/create-tickets.js.map +1 -1
- package/dist/tools/edit-map.d.ts.map +1 -1
- package/dist/tools/edit-map.js +6 -2
- package/dist/tools/edit-map.js.map +1 -1
- package/dist/tools/get-board.d.ts.map +1 -1
- package/dist/tools/get-board.js +34 -7
- package/dist/tools/get-board.js.map +1 -1
- package/dist/tools/get-tickets.d.ts.map +1 -1
- package/dist/tools/get-tickets.js +16 -9
- package/dist/tools/get-tickets.js.map +1 -1
- package/dist/tools/list-efforts.d.ts +7 -0
- package/dist/tools/list-efforts.d.ts.map +1 -1
- package/dist/tools/list-efforts.js +15 -0
- package/dist/tools/list-efforts.js.map +1 -1
- package/dist/tools/migrate-effort.d.ts +6 -1
- package/dist/tools/migrate-effort.d.ts.map +1 -1
- package/dist/tools/migrate-effort.js +59 -20
- package/dist/tools/migrate-effort.js.map +1 -1
- package/dist/tools/update-ticket.d.ts +2 -0
- package/dist/tools/update-ticket.d.ts.map +1 -1
- package/dist/tools/update-ticket.js +11 -4
- package/dist/tools/update-ticket.js.map +1 -1
- package/dist/workspace.d.ts +11 -0
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +17 -5
- package/dist/workspace.js.map +1 -1
- package/docs/agents/issue-tracker.md +15 -9
- package/package.json +11 -11
- package/scripts/frontier-setup.cjs +451 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-board.js","sourceRoot":"","sources":["../../src/tools/get-board.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"get-board.js","sourceRoot":"","sources":["../../src/tools/get-board.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-tickets.d.ts","sourceRoot":"","sources":["../../src/tools/get-tickets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"get-tickets.d.ts","sourceRoot":"","sources":["../../src/tools/get-tickets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,eAAO,MAAM,qBAAqB;;;iBAShC,CAAC;AAEH,eAAO,MAAM,qBAAqB,QAEJ,CAAC;AAE/B;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CA6C5F"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { bareIdOf } from '../domain.js';
|
|
2
3
|
export const getTicketsInputSchema = z.object({
|
|
3
4
|
ids: z
|
|
4
5
|
.array(z.string())
|
|
5
6
|
.min(1)
|
|
6
|
-
.describe('Ticket ids, e.g. ["T12","T14"], resolved repo-wide. A
|
|
7
|
+
.describe('Ticket ids, e.g. ["T12","T14"], resolved repo-wide. A Ticket with no id is ' +
|
|
7
8
|
'fetched by the <effort>#<order> handle its Board line shows.'),
|
|
8
9
|
root: z.string().optional().describe('Workspace directory. Defaults to the session workspace.'),
|
|
9
10
|
});
|
|
@@ -16,7 +17,7 @@ export const getTicketsDescription = 'Full bodies for a list of Ticket ids, in o
|
|
|
16
17
|
*/
|
|
17
18
|
export function renderTickets(requested, found) {
|
|
18
19
|
// Addressable by id when it has one, and by its handle either way — an
|
|
19
|
-
// id-less
|
|
20
|
+
// id-less Ticket has no other route to its own body.
|
|
20
21
|
const byName = new Map();
|
|
21
22
|
const add = (name, ticket) => {
|
|
22
23
|
const claimants = byName.get(name) ?? [];
|
|
@@ -45,8 +46,14 @@ export function renderTickets(requested, found) {
|
|
|
45
46
|
for (const ticket of claimants)
|
|
46
47
|
blocks.push(renderOne(ticket));
|
|
47
48
|
}
|
|
48
|
-
if (missing.length > 0)
|
|
49
|
-
blocks.push(`not found: ${missing
|
|
49
|
+
if (missing.length > 0) {
|
|
50
|
+
blocks.push(`not found: ${missing
|
|
51
|
+
.map(name => {
|
|
52
|
+
const bare = bareIdOf(name);
|
|
53
|
+
return bare === undefined ? name : `${name} (name it '${bare}')`;
|
|
54
|
+
})
|
|
55
|
+
.join(' ')}`);
|
|
56
|
+
}
|
|
50
57
|
return blocks.join('\n\n---\n\n');
|
|
51
58
|
}
|
|
52
59
|
function renderOne(ticket) {
|
|
@@ -61,20 +68,20 @@ function renderOne(ticket) {
|
|
|
61
68
|
ticket.claimedAt === undefined ? undefined : `claimed_at=${ticket.claimedAt}`,
|
|
62
69
|
ticket.answerGist === undefined ? undefined : `answer_gist=${ticket.answerGist}`,
|
|
63
70
|
ticket.droppedReason === undefined ? undefined : `dropped_reason=${ticket.droppedReason}`,
|
|
64
|
-
ticket.
|
|
71
|
+
ticket.foreign ? 'foreign' : undefined,
|
|
65
72
|
].filter(field => field !== undefined);
|
|
66
73
|
const head = `# ${ticket.handle} — ${ticket.title}\n${fields.join(' ')}\n\n${ticket.body}`;
|
|
67
|
-
return ticket.
|
|
74
|
+
return ticket.unimported === undefined
|
|
68
75
|
? head
|
|
69
|
-
: `${head}\n\n${renderFence(ticket.
|
|
76
|
+
: `${head}\n\n${renderFence(ticket.unimported.yaml)}`;
|
|
70
77
|
}
|
|
71
78
|
/**
|
|
72
|
-
* The
|
|
79
|
+
* The file's own YAML, never re-serialized. Its delimiter outruns any backtick
|
|
73
80
|
* run inside it, so YAML holding a code fence cannot close the block early.
|
|
74
81
|
*/
|
|
75
82
|
function renderFence(raw) {
|
|
76
83
|
const longest = Math.max(0, ...(raw.match(/`+/g) ?? []).map(run => run.length));
|
|
77
84
|
const delimiter = '`'.repeat(Math.max(3, longest + 1));
|
|
78
|
-
return `##
|
|
85
|
+
return `## Unimported frontmatter\n\n${delimiter}yaml\n${raw}\n${delimiter}`;
|
|
79
86
|
}
|
|
80
87
|
//# sourceMappingURL=get-tickets.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-tickets.js","sourceRoot":"","sources":["../../src/tools/get-tickets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"get-tickets.js","sourceRoot":"","sources":["../../src/tools/get-tickets.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,4 +13,11 @@ export declare const listEffortsDescription = "List the Efforts in a repo, each
|
|
|
13
13
|
* caller can tell which repo it just read.
|
|
14
14
|
*/
|
|
15
15
|
export declare function renderEfforts(root: string, efforts: readonly Effort[], frontier: ReadonlySet<TicketSummary>): string;
|
|
16
|
+
/**
|
|
17
|
+
* A repository with no storage at all, which `(no efforts)` would read as
|
|
18
|
+
* broken and could not tell from an empty tracker. The marker is named only
|
|
19
|
+
* here: with nothing in the result to contradict a wrong root, this is where
|
|
20
|
+
* the wrong-root risk is highest.
|
|
21
|
+
*/
|
|
22
|
+
export declare function renderNoTracker(root: string, resolvedBy: string, storage: string): string;
|
|
16
23
|
//# sourceMappingURL=list-efforts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-efforts.d.ts","sourceRoot":"","sources":["../../src/tools/list-efforts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG1D;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;iBAOjC,CAAC;AAEH,eAAO,MAAM,sBAAsB,2FACuD,CAAC;AAE3F;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,QAAQ,EAAE,WAAW,CAAC,aAAa,CAAC,GACnC,MAAM,CAiBR"}
|
|
1
|
+
{"version":3,"file":"list-efforts.d.ts","sourceRoot":"","sources":["../../src/tools/list-efforts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG1D;;;GAGG;AACH,eAAO,MAAM,sBAAsB;;iBAOjC,CAAC;AAEH,eAAO,MAAM,sBAAsB,2FACuD,CAAC;AAE3F;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,QAAQ,EAAE,WAAW,CAAC,aAAa,CAAC,GACnC,MAAM,CAiBR;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAQzF"}
|
|
@@ -30,6 +30,21 @@ export function renderEfforts(root, efforts, frontier) {
|
|
|
30
30
|
}
|
|
31
31
|
return lines.join('\n');
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* A repository with no storage at all, which `(no efforts)` would read as
|
|
35
|
+
* broken and could not tell from an empty tracker. The marker is named only
|
|
36
|
+
* here: with nothing in the result to contradict a wrong root, this is where
|
|
37
|
+
* the wrong-root risk is highest.
|
|
38
|
+
*/
|
|
39
|
+
export function renderNoTracker(root, resolvedBy, storage) {
|
|
40
|
+
return [
|
|
41
|
+
`${workspaceLine(root)} (resolved by ${resolvedBy})`,
|
|
42
|
+
`no tracker here: ${storage} does not exist`,
|
|
43
|
+
'start one: create_tickets { effort, create: true, tickets } or ' +
|
|
44
|
+
'edit_map { effort, create: true, destination }',
|
|
45
|
+
'conventions: frontier://tracker-doc',
|
|
46
|
+
].join('\n');
|
|
47
|
+
}
|
|
33
48
|
function countByEffort(frontier) {
|
|
34
49
|
const counts = new Map();
|
|
35
50
|
for (const ticket of frontier)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-efforts.js","sourceRoot":"","sources":["../../src/tools/list-efforts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,sFAAsF,CACvF;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GACjC,wFAAwF,CAAC;AAE3F;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,OAA0B,EAC1B,QAAoC;IAEpC,MAAM,KAAK,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnF,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,KAAK,CAAC,IAAI,CACR,GAAG,MAAM,CAAC,IAAI,aAAa,MAAM,CAAC,WAAW,UAAU,IAAI,cAAc,MAAM,CAAC,IAAI,CAAC,EAAE,CACxF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,aAAa,CAAC,QAAoC;IACzD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEzC,KAAK,MAAM,MAAM,IAAI,QAAQ;QAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE/F,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"list-efforts.js","sourceRoot":"","sources":["../../src/tools/list-efforts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,sFAAsF,CACvF;CACJ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,sBAAsB,GACjC,wFAAwF,CAAC;AAE3F;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAY,EACZ,OAA0B,EAC1B,QAAoC;IAEpC,MAAM,KAAK,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnF,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,KAAK,CAAC,IAAI,CACR,GAAG,MAAM,CAAC,IAAI,aAAa,MAAM,CAAC,WAAW,UAAU,IAAI,cAAc,MAAM,CAAC,IAAI,CAAC,EAAE,CACxF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,UAAkB,EAAE,OAAe;IAC/E,OAAO;QACL,GAAG,aAAa,CAAC,IAAI,CAAC,iBAAiB,UAAU,GAAG;QACpD,oBAAoB,OAAO,iBAAiB;QAC5C,iEAAiE;YAC/D,gDAAgD;QAClD,qCAAqC;KACtC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CAAC,QAAoC;IACzD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEzC,KAAK,MAAM,MAAM,IAAI,QAAQ;QAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAE/F,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -3,9 +3,14 @@ import type { MigrationReport } from '../domain.ts';
|
|
|
3
3
|
export declare const migrateEffortInputSchema: z.ZodObject<{
|
|
4
4
|
effort: z.ZodString;
|
|
5
5
|
preview: z.ZodOptional<z.ZodBoolean>;
|
|
6
|
-
rename: z.ZodOptional<z.ZodBoolean>;
|
|
7
6
|
root: z.ZodOptional<z.ZodString>;
|
|
8
7
|
}, z.core.$strip>;
|
|
9
8
|
export declare const migrateEffortDescription: string;
|
|
9
|
+
/**
|
|
10
|
+
* Every Ticket line is labelled reference-style and resolved once in a closing
|
|
11
|
+
* definition block, so a `blocked_by=` naming three siblings stays one short
|
|
12
|
+
* line. Paths are workspace-root-relative: the reader's working directory is
|
|
13
|
+
* not knowable, the root the call resolved is.
|
|
14
|
+
*/
|
|
10
15
|
export declare function renderMigration(report: MigrationReport): string;
|
|
11
16
|
//# sourceMappingURL=migrate-effort.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate-effort.d.ts","sourceRoot":"","sources":["../../src/tools/migrate-effort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAmB,eAAe,EAAE,MAAM,cAAc,CAAC;AAErE,eAAO,MAAM,wBAAwB
|
|
1
|
+
{"version":3,"file":"migrate-effort.d.ts","sourceRoot":"","sources":["../../src/tools/migrate-effort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAmB,eAAe,EAAE,MAAM,cAAc,CAAC;AAErE,eAAO,MAAM,wBAAwB;;;;iBAOnC,CAAC;AAEH,eAAO,MAAM,wBAAwB,QAIsB,CAAC;AAE5D;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,CAuC/D"}
|
|
@@ -1,51 +1,90 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export const migrateEffortInputSchema = z.object({
|
|
3
|
-
effort: z.string().describe('Effort slug whose
|
|
3
|
+
effort: z.string().describe('Effort slug whose Foreign Tickets to normalize.'),
|
|
4
4
|
preview: z
|
|
5
5
|
.boolean()
|
|
6
6
|
.optional()
|
|
7
7
|
.describe('Report every change and write nothing. Defaults to false.'),
|
|
8
|
-
rename: z
|
|
9
|
-
.boolean()
|
|
10
|
-
.optional()
|
|
11
|
-
.describe('Rename files to <NN>-T<n>-<slug>.md. Off by default so relative links keep resolving.'),
|
|
12
8
|
root: z.string().optional().describe('Workspace directory. Defaults to the session workspace.'),
|
|
13
9
|
});
|
|
14
|
-
export const migrateEffortDescription = 'Normalize
|
|
15
|
-
'ids for Tickets that have none, turn prose Edges into blocked_by.
|
|
16
|
-
'
|
|
10
|
+
export const migrateEffortDescription = 'Normalize Foreign Tickets in an Effort: schema frontmatter, preserve existing ids, mint ' +
|
|
11
|
+
'ids for Tickets that have none, turn prose Edges into blocked_by. Filenames never change. ' +
|
|
12
|
+
'Preview writes nothing and names a Ticket it would mint by its handle, not a predicted id. ' +
|
|
13
|
+
'Unrecognized files in the Effort directory are ignored.';
|
|
14
|
+
/**
|
|
15
|
+
* Every Ticket line is labelled reference-style and resolved once in a closing
|
|
16
|
+
* definition block, so a `blocked_by=` naming three siblings stays one short
|
|
17
|
+
* line. Paths are workspace-root-relative: the reader's working directory is
|
|
18
|
+
* not knowable, the root the call resolved is.
|
|
19
|
+
*/
|
|
17
20
|
export function renderMigration(report) {
|
|
18
21
|
const count = report.changes.length;
|
|
19
22
|
const verb = report.preview ? 'would migrate' : 'migrated';
|
|
20
|
-
const
|
|
21
|
-
const lines = [
|
|
22
|
-
`${report.effort}: ${report.preview ? 'preview — ' : ''}${verb} ${String(count)}${rename}`,
|
|
23
|
-
];
|
|
23
|
+
const lines = [`${report.effort}: ${report.preview ? 'preview — ' : ''}${verb} ${String(count)}`];
|
|
24
24
|
if (count === 0) {
|
|
25
25
|
lines.push('(nothing to migrate)');
|
|
26
26
|
return lines.join('\n');
|
|
27
27
|
}
|
|
28
|
+
const labels = labelsOf(report.changes);
|
|
29
|
+
const defined = new Set(labels.values());
|
|
30
|
+
for (const change of report.changes) {
|
|
31
|
+
lines.push(renderChange(change, labels.get(change) ?? change.filename, defined));
|
|
32
|
+
}
|
|
33
|
+
if (report.crossEffortEdges.length > 0) {
|
|
34
|
+
lines.push(`> Edges to another Effort (${String(report.crossEffortEdges.length)}) — check each is meant: ` +
|
|
35
|
+
capped(report.crossEffortEdges));
|
|
36
|
+
}
|
|
37
|
+
if (report.keptSubSlices.length > 0) {
|
|
38
|
+
lines.push(`> sub-slice Edges kept as declared, parent not in this Effort ` +
|
|
39
|
+
`(${String(report.keptSubSlices.length)}): ${capped(report.keptSubSlices)} — they dangle; ` +
|
|
40
|
+
'fix each with update_ticket blocked_by');
|
|
41
|
+
}
|
|
42
|
+
lines.push('');
|
|
28
43
|
for (const change of report.changes) {
|
|
29
|
-
|
|
44
|
+
// Angle brackets keep a filename with a space a valid link destination.
|
|
45
|
+
lines.push(`[${labels.get(change) ?? change.filename}]: <${report.directory}/${change.filename}>`);
|
|
30
46
|
}
|
|
31
47
|
return lines.join('\n');
|
|
32
48
|
}
|
|
33
|
-
|
|
49
|
+
// One line each, however large the Effort: the first few are named, the rest
|
|
50
|
+
// counted — the duplicate-id Board warning's shape. The count stays exact.
|
|
51
|
+
const NOTE_NAMED = 10;
|
|
52
|
+
function capped(items) {
|
|
53
|
+
const named = items.slice(0, NOTE_NAMED).join(' ');
|
|
54
|
+
const rest = items.length - NOTE_NAMED;
|
|
55
|
+
return rest > 0 ? `${named} and ${String(rest)} more` : named;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* A Ticket's id, or its handle before it has one. Two files a preview finds
|
|
59
|
+
* carrying one id would share a label and the first definition would win, so
|
|
60
|
+
* those are labelled by filename, which an Effort cannot repeat.
|
|
61
|
+
*/
|
|
62
|
+
function labelsOf(changes) {
|
|
63
|
+
const natural = changes.map(change => change.id ?? change.beforeHandle);
|
|
64
|
+
return new Map(changes.map((change, index) => {
|
|
65
|
+
const label = natural[index] ?? change.filename;
|
|
66
|
+
return [
|
|
67
|
+
change,
|
|
68
|
+
natural.indexOf(label) === natural.lastIndexOf(label) ? label : change.filename,
|
|
69
|
+
];
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
function renderChange(change, label, defined) {
|
|
34
73
|
const flags = [
|
|
35
74
|
change.normalized ? 'normalize' : undefined,
|
|
36
75
|
change.minted ? 'mint' : undefined,
|
|
37
76
|
].filter(part => part !== undefined);
|
|
38
|
-
const
|
|
39
|
-
?
|
|
77
|
+
const was = change.minted && change.id !== undefined && change.beforeHandle !== change.id
|
|
78
|
+
? `was ${change.beforeHandle}`
|
|
40
79
|
: undefined;
|
|
41
|
-
const
|
|
42
|
-
|
|
80
|
+
const edges = change.blockedBy.length === 0
|
|
81
|
+
? undefined
|
|
82
|
+
: `blocked_by=${change.blockedBy.map(edge => (defined.has(edge) ? `[${edge}]` : edge)).join(',')}`;
|
|
43
83
|
return [
|
|
44
|
-
|
|
84
|
+
`[${label}]`,
|
|
45
85
|
change.title,
|
|
46
86
|
flags.length === 0 ? undefined : flags.join('+'),
|
|
47
87
|
was,
|
|
48
|
-
rename,
|
|
49
88
|
edges,
|
|
50
89
|
change.duplicateFiles === undefined
|
|
51
90
|
? undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrate-effort.js","sourceRoot":"","sources":["../../src/tools/migrate-effort.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"migrate-effort.js","sourceRoot":"","sources":["../../src/tools/migrate-effort.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,7 @@ export declare const updateTicketInputSchema: z.ZodObject<{
|
|
|
33
33
|
blocked_by: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
34
34
|
comment: z.ZodOptional<z.ZodString>;
|
|
35
35
|
tick: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
36
|
+
drop_keys: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
36
37
|
title: z.ZodOptional<z.ZodString>;
|
|
37
38
|
kind: z.ZodOptional<z.ZodEnum<{
|
|
38
39
|
build: "build";
|
|
@@ -62,6 +63,7 @@ export interface UpdateRequest {
|
|
|
62
63
|
readonly blocked_by?: readonly string[] | undefined;
|
|
63
64
|
readonly comment?: string | undefined;
|
|
64
65
|
readonly tick?: readonly string[] | undefined;
|
|
66
|
+
readonly drop_keys?: readonly string[] | undefined;
|
|
65
67
|
readonly title?: string | undefined;
|
|
66
68
|
readonly kind?: Kind | undefined;
|
|
67
69
|
readonly type?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-ticket.d.ts","sourceRoot":"","sources":["../../src/tools/update-ticket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/C,eAAO,MAAM,uBAAuB
|
|
1
|
+
{"version":3,"file":"update-ticket.d.ts","sourceRoot":"","sources":["../../src/tools/update-ticket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/C,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAyElC,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAKQ,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAAG,SAAS,CAAC;IACpF,QAAQ,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;IACjD,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACpD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IACnD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,SAAS,aAAa,EAAE,EAC7B,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,MAAM,GACV,UAAU,CAsFZ;AAoHD,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,GAAE,SAAS,MAAM,EAAO,GAAG,MAAM,CAY5F"}
|
|
@@ -3,7 +3,7 @@ import { STATUSES, TRIAGE_ROLES } from '../domain.js';
|
|
|
3
3
|
import { cycleThrough, renderCycle } from '../edges.js';
|
|
4
4
|
import { claimantsById, edgesOfClaimants } from '../frontier.js';
|
|
5
5
|
export const updateTicketInputSchema = z.object({
|
|
6
|
-
id: z.string().describe('Ticket id, or the <effort>#<order> handle of a
|
|
6
|
+
id: z.string().describe('Ticket id, or the <effort>#<order> handle of a Ticket with no id.'),
|
|
7
7
|
claim: z
|
|
8
8
|
.object({ by: z.string().min(1).describe('Who is taking it.') })
|
|
9
9
|
.optional()
|
|
@@ -51,6 +51,12 @@ export const updateTicketInputSchema = z.object({
|
|
|
51
51
|
.describe('Acceptance criteria to check off, matched on their text. Wrapped criteria match both ' +
|
|
52
52
|
'as get_tickets returns them and re-joined onto one line. All references resolve before ' +
|
|
53
53
|
'anything is written — one unmatched name fails the whole call and leaves the file untouched.'),
|
|
54
|
+
drop_keys: z
|
|
55
|
+
.array(z.string().min(1))
|
|
56
|
+
.min(1)
|
|
57
|
+
.optional()
|
|
58
|
+
.describe('Unimported frontmatter keys to delete, as get_tickets lists them. A schema key or an ' +
|
|
59
|
+
'absent one fails the whole call; nothing else in the fence changes.'),
|
|
54
60
|
title: z.string().min(1).optional().describe('Replace the Ticket title.'),
|
|
55
61
|
kind: z.enum(['build', 'decision']).optional().describe('Replace the Ticket kind.'),
|
|
56
62
|
type: z
|
|
@@ -63,7 +69,7 @@ export const updateTicketInputSchema = z.object({
|
|
|
63
69
|
export const updateTicketDescription = 'Change one Ticket. Lifecycle: claim, resolve with a one-line gist, drop with a reason, reopen ' +
|
|
64
70
|
'with a reason, or release a claim — at most one of those per call. Graph: replace the Edges, ' +
|
|
65
71
|
'refused if they close a cycle. Identity: title, kind, and type. Annotations: triage role, a ' +
|
|
66
|
-
'comment, ticking acceptance criteria; these touch no part of the graph. Any of the four groups ' +
|
|
72
|
+
'comment, ticking acceptance criteria, dropping Unimported keys; these touch no part of the graph. Any of the four groups ' +
|
|
67
73
|
'may accompany the others or stand alone.';
|
|
68
74
|
/**
|
|
69
75
|
* Turn a request into the edit the driver applies, refusing anything the Status
|
|
@@ -83,6 +89,7 @@ export function editFor(ticket, all, request, now) {
|
|
|
83
89
|
...(request.triage === undefined ? {} : { triage: request.triage }),
|
|
84
90
|
...(request.comment === undefined ? {} : { comment: request.comment }),
|
|
85
91
|
...(request.tick === undefined ? {} : { tick: request.tick }),
|
|
92
|
+
...(request.drop_keys === undefined ? {} : { dropKeys: request.drop_keys }),
|
|
86
93
|
...(request.blocked_by === undefined ? {} : { blockedBy: edgesFor(ticket, all, request) }),
|
|
87
94
|
};
|
|
88
95
|
// Status is derived from the transition, never assigned. Saying so beats
|
|
@@ -105,7 +112,7 @@ export function editFor(ticket, all, request, now) {
|
|
|
105
112
|
if (actions.length === 0) {
|
|
106
113
|
if (Object.keys(annotations).length === 0) {
|
|
107
114
|
throw new Error('Nothing to do: pass a lifecycle change, or title, kind, type, blocked_by, triage, comment, ' +
|
|
108
|
-
'or
|
|
115
|
+
'tick, or drop_keys.');
|
|
109
116
|
}
|
|
110
117
|
return annotations;
|
|
111
118
|
}
|
|
@@ -170,7 +177,7 @@ function identityFor(ticket, request) {
|
|
|
170
177
|
*/
|
|
171
178
|
function edgesFor(ticket, all, request) {
|
|
172
179
|
const blockedBy = request.blocked_by ?? [];
|
|
173
|
-
// Nothing can name an id-less
|
|
180
|
+
// Nothing can name an id-less Ticket, so no path leads back to it.
|
|
174
181
|
if (ticket.id === undefined)
|
|
175
182
|
return blockedBy;
|
|
176
183
|
const byId = claimantsById(all);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-ticket.js","sourceRoot":"","sources":["../../src/tools/update-ticket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAgB,MAAM,aAAa,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEjE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC
|
|
1
|
+
{"version":3,"file":"update-ticket.js","sourceRoot":"","sources":["../../src/tools/update-ticket.ts"],"names":[],"mappings":"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"}
|
package/dist/workspace.d.ts
CHANGED
|
@@ -24,4 +24,15 @@ export interface WorkspaceContext {
|
|
|
24
24
|
* A workspace with no `.scratch/` is not — that is a fresh project.
|
|
25
25
|
*/
|
|
26
26
|
export declare function resolveWorkspace(root: string | undefined, context: WorkspaceContext): string;
|
|
27
|
+
export interface LocatedWorkspace {
|
|
28
|
+
readonly root: string;
|
|
29
|
+
/**
|
|
30
|
+
* What located `root`, for a reader to check it against: the override that
|
|
31
|
+
* named it, the marker the upward walk stopped at, or the working directory
|
|
32
|
+
* when the walk found none.
|
|
33
|
+
*/
|
|
34
|
+
readonly resolvedBy: string;
|
|
35
|
+
}
|
|
36
|
+
/** {@link resolveWorkspace}, saying which source won. */
|
|
37
|
+
export declare function locateWorkspace(root: string | undefined, context: WorkspaceContext): LocatedWorkspace;
|
|
27
38
|
//# sourceMappingURL=workspace.d.ts.map
|
package/dist/workspace.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAGA,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAuBjD,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CACzD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAGA,iFAAiF;AACjF,eAAO,MAAM,iBAAiB,kBAAkB,CAAC;AAuBjD,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CACzD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAE5F;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,yDAAyD;AACzD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,gBAAgB,GACxB,gBAAgB,CAqBlB"}
|
package/dist/workspace.js
CHANGED
|
@@ -41,15 +41,26 @@ const ROOT_MARKERS = [
|
|
|
41
41
|
* A workspace with no `.scratch/` is not — that is a fresh project.
|
|
42
42
|
*/
|
|
43
43
|
export function resolveWorkspace(root, context) {
|
|
44
|
+
return locateWorkspace(root, context).root;
|
|
45
|
+
}
|
|
46
|
+
/** {@link resolveWorkspace}, saying which source won. */
|
|
47
|
+
export function locateWorkspace(root, context) {
|
|
44
48
|
const argument = given(root);
|
|
45
49
|
if (argument !== undefined) {
|
|
46
|
-
return
|
|
50
|
+
return {
|
|
51
|
+
root: requireDirectory(resolve(context.cwd, argument), 'root argument'),
|
|
52
|
+
resolvedBy: 'root argument',
|
|
53
|
+
};
|
|
47
54
|
}
|
|
48
55
|
const fromEnv = given(context.env[WORKSPACE_ENV_VAR]);
|
|
49
56
|
if (fromEnv !== undefined) {
|
|
50
|
-
return
|
|
57
|
+
return {
|
|
58
|
+
root: requireDirectory(resolve(context.cwd, fromEnv), WORKSPACE_ENV_VAR),
|
|
59
|
+
resolvedBy: `$${WORKSPACE_ENV_VAR}`,
|
|
60
|
+
};
|
|
51
61
|
}
|
|
52
|
-
|
|
62
|
+
const cwd = resolve(context.cwd);
|
|
63
|
+
return (findRootMarker(cwd) ?? { root: cwd, resolvedBy: 'working directory, no root marker found' });
|
|
53
64
|
}
|
|
54
65
|
/**
|
|
55
66
|
* An empty override was not supplied. Falling through to the next source is the
|
|
@@ -67,8 +78,9 @@ function given(value) {
|
|
|
67
78
|
function findRootMarker(from) {
|
|
68
79
|
let dir = from;
|
|
69
80
|
for (;;) {
|
|
70
|
-
|
|
71
|
-
|
|
81
|
+
const marker = ROOT_MARKERS.find(candidate => candidate.matches(join(dir, candidate.name)));
|
|
82
|
+
if (marker !== undefined)
|
|
83
|
+
return { root: dir, resolvedBy: marker.name };
|
|
72
84
|
const parent = dirname(dir);
|
|
73
85
|
if (parent === dir)
|
|
74
86
|
return undefined;
|
package/dist/workspace.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEnD,iFAAiF;AACjF,MAAM,CAAC,MAAM,iBAAiB,GAAG,eAAe,CAAC;AAEjD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,YAAY,GAAG;IACnB,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE;IAC1C,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;CAClC,CAAC;AAQF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAwB,EAAE,OAAyB;IAClF,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Issue tracker — FrontierMCP and file fallback
|
|
2
2
|
|
|
3
|
-
Tracker doc revision
|
|
3
|
+
Tracker doc revision 7. To check a vendored copy, compare this number with the one in the
|
|
4
4
|
`frontier://tracker-doc` resource of the server you run; a lower number, or no revision line, is
|
|
5
5
|
stale.
|
|
6
6
|
|
|
@@ -48,14 +48,14 @@ Eight tools permanently. Optional arguments extend an existing tool; there is no
|
|
|
48
48
|
|
|
49
49
|
| Tool | Use when |
|
|
50
50
|
| --- | --- |
|
|
51
|
-
| `list_efforts` | Orient — list Efforts with Ticket counts, header doc kinds, and Frontier size. |
|
|
51
|
+
| `list_efforts` | Orient — list Efforts with Ticket counts, header doc kinds, and Frontier size. A repository with no `.scratch/` at all gets `no tracker here`, the marker that located the root, and a `start one` line to copy; an empty `.scratch/` still reads `(no efforts)`. |
|
|
52
52
|
| `get_board` | See the whole Effort cheaply — Destination, one summary line per Ticket, Frontier marked. Never returns bodies. |
|
|
53
53
|
| `get_tickets` | Fetch full bodies for specific ids after the Board tells you which Tickets matter. |
|
|
54
54
|
| `create_tickets` | Publish a breakdown in one call. Declare Edges with temporary keys; the server assigns ids and numbers. |
|
|
55
|
-
| `update_ticket` | Claim, resolve, drop, reopen, release, set title/kind/type, set triage, replace Edges, comment,
|
|
55
|
+
| `update_ticket` | Claim, resolve, drop, reopen, release, set title/kind/type, set triage, replace Edges, comment, tick acceptance criteria, or `drop_keys` to delete Unimported frontmatter keys. One Ticket per call. |
|
|
56
56
|
| `edit_map` | Edit Map sections — Destination, Notes, fog, Out of scope. Decisions-so-far regenerates from resolved Tickets. |
|
|
57
57
|
| `spec` | Read or write a Spec as a whole document. |
|
|
58
|
-
| `migrate_effort` | Normalize
|
|
58
|
+
| `migrate_effort` | Normalize Foreign Tickets — those whose file does not conform to the schema — in an Effort. Filenames never change. Preview writes nothing and names a Ticket it would mint by its handle (`<effort>#<order>`), not a predicted id. |
|
|
59
59
|
|
|
60
60
|
### Typical agent flow
|
|
61
61
|
|
|
@@ -80,15 +80,21 @@ Eight tools permanently. Optional arguments extend an existing tool; there is no
|
|
|
80
80
|
| release a stale claim | `update_ticket` with `{ release: true }` |
|
|
81
81
|
| edit the Map | `edit_map` |
|
|
82
82
|
| write or read the Spec | `spec` |
|
|
83
|
-
| normalize
|
|
83
|
+
| normalize foreign files | `migrate_effort` |
|
|
84
84
|
|
|
85
85
|
Two Ticket files carrying one id are listed in each Board's warnings, with claimant files for the
|
|
86
86
|
first few, and every write addressed to that id is refused. Fix it by hand, giving all but one a new id; the server never
|
|
87
87
|
renumbers. Under a pattern whose only variable token is `<N>`, every `create_tickets` result carries
|
|
88
88
|
a standing warning that the pattern collides across branches — it describes the configuration, not
|
|
89
|
-
that call; the remedy is a mixed pattern such as `T<N>-<b36{4}>`. When a Ticket's frontmatter
|
|
90
|
-
|
|
91
|
-
frontmatter
|
|
89
|
+
that call; the remedy is a mixed pattern such as `T<N>-<b36{4}>`. When a Ticket's frontmatter carries
|
|
90
|
+
keys outside the schema, `get_tickets` appends them as a fenced `yaml` block under `## Unimported
|
|
91
|
+
frontmatter` — the whole fence for a Ticket with no `id`, only the unimported entries otherwise. The
|
|
92
|
+
read leaves the file unchanged, and no ordinary write removes them: pass `update_ticket` `drop_keys`
|
|
93
|
+
with the names to delete. A schema key or a key the fence does not carry fails the call and writes
|
|
94
|
+
nothing; the rest of the fence stays byte-identical. Dropping the last one from a Ticket with no `id`
|
|
95
|
+
leaves it no longer Foreign, still listed under the Board's `no id` warning. A Board counts `resolved` Tickets
|
|
96
|
+
with no `answer_gist`, `dropped` with no `dropped_reason` and `claimed` with no `claimed_by` or `claimed_at` in its
|
|
97
|
+
warnings, so set the field with the Status.
|
|
92
98
|
|
|
93
99
|
Claims are compare-and-set — a parallel session that already holds the Ticket wins. Writes carry the
|
|
94
100
|
`revision` from the last read; a mismatch is refused, never retried over the caller's edit.
|
|
@@ -143,7 +149,7 @@ bypasses the mint whatever the pattern.
|
|
|
143
149
|
```yaml
|
|
144
150
|
---
|
|
145
151
|
id: T12 # shaped by id_pattern; repo-unique, never reused or changed
|
|
146
|
-
title: Parse
|
|
152
|
+
title: Parse tickets without frontmatter
|
|
147
153
|
kind: build # build | decision
|
|
148
154
|
type: research # decision only: research | prototype | grilling | task
|
|
149
155
|
status: open # open | claimed | resolved | dropped
|