@open-mercato/cezar 0.9.1-pr694.821 → 0.9.1-pr694.883
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 +6 -6
- package/dist/automations/github-poller.d.ts +9 -2
- package/dist/automations/github-poller.js +113 -38
- package/dist/automations/github-poller.js.map +1 -1
- package/dist/automations/scheduler.js +19 -4
- package/dist/automations/scheduler.js.map +1 -1
- package/dist/release/manifests.d.ts +72 -0
- package/dist/release/manifests.js +73 -0
- package/dist/release/manifests.js.map +1 -0
- package/dist/release/snapshot.d.ts +9 -23
- package/dist/release/snapshot.js +9 -22
- package/dist/release/snapshot.js.map +1 -1
- package/dist/release/stable.d.ts +15 -29
- package/dist/release/stable.js +14 -27
- package/dist/release/stable.js.map +1 -1
- package/dist/server/app-type.d.ts +20 -0
- package/dist/server/app-type.js +2 -0
- package/dist/server/app-type.js.map +1 -0
- package/dist/server/forge/index.d.ts +8 -1
- package/dist/server/forge/index.js +14 -1
- package/dist/server/forge/index.js.map +1 -1
- package/dist/server/server.d.ts +577 -1
- package/dist/server/server.js +155 -46
- package/dist/server/server.js.map +1 -1
- package/dist/server-install/platforms/ubuntu-vps.d.ts +15 -0
- package/dist/server-install/platforms/ubuntu-vps.js +83 -1
- package/dist/server-install/platforms/ubuntu-vps.js.map +1 -1
- package/dist/workflows/run.d.ts +2 -3
- package/dist/workflows/run.js +6 -2
- package/dist/workflows/run.js.map +1 -1
- package/dist/workspace/projects.d.ts +7 -1
- package/dist/workspace/projects.js +9 -3
- package/dist/workspace/projects.js.map +1 -1
- package/package.json +13 -38
- package/scripts/sync-readme.mjs +20 -0
- package/web/dist/assets/alert-dialog-gwiqFFFu.js +1 -0
- package/web/dist/assets/{centered-state-DsblJe6Q.js → centered-state-dD8yqQys.js} +11 -11
- package/web/dist/assets/collapsible-CqTit0ZR.js +1 -0
- package/web/dist/assets/{commit-list-CAwllMBX.js → commit-list-Cj-cA4sD.js} +1 -1
- package/web/dist/assets/compare-variants-FhrzO3P-.js +1 -0
- package/web/dist/assets/diff-D8vQWbBJ2.js +3 -0
- package/web/dist/assets/{diff-view-Ct3kYFRM.js → diff-view-Bj-Arp6J.js} +4 -4
- package/web/dist/assets/dropdown-menu-C-y3sjkF.js +1 -0
- package/web/dist/assets/git-toolbar-CJSJ-HhK.js +1 -0
- package/web/dist/assets/github-B1F5OIiS.js +1 -0
- package/web/dist/assets/index-CSqLL-Oz.css +2 -0
- package/web/dist/assets/index-fiTYCCIj.js +22 -0
- package/web/dist/assets/new-task-form-umhQeDuQ.js +1 -0
- package/web/dist/assets/{project-router-CnKsyZKI.js → project-router-DSGsTy9r.js} +1 -1
- package/web/dist/assets/{repo-git-DnkvanyM.js → repo-git-BIhVoC3s.js} +1 -1
- package/web/dist/assets/run-diff-CerjSGSP.js +3 -0
- package/web/dist/assets/run-header-CiS45_c4.js +1 -0
- package/web/dist/assets/skills-Cox0kFDd.js +1 -0
- package/web/dist/assets/{tab-link-BbQLZUG5.js → tab-link-BQmBICqB.js} +1 -1
- package/web/dist/assets/{task-changes-BYNpnV0E.js → task-changes-_uZcv-N4.js} +1 -1
- package/web/dist/assets/task-commits-BQWM57ju.js +1 -0
- package/web/dist/assets/task-files-CdPBE1dU.js +2 -0
- package/web/dist/assets/task-thread-DKOE2f2x.js +9 -0
- package/web/dist/assets/{use-desktop-BAHxMKrE.js → use-desktop-DDKq0fp9.js} +1 -1
- package/web/dist/assets/workflows-CG_B8DEH.js +11 -0
- package/web/dist/index.html +10 -6
- package/scripts/dev.mjs +0 -74
- package/scripts/release-snapshot.mjs +0 -130
- package/scripts/release.mjs +0 -119
- package/web/dist/assets/compare-variants-JnaeMTz5.js +0 -1
- package/web/dist/assets/diff-Drvekr61.js +0 -3
- package/web/dist/assets/dist-CngV8tyE.js +0 -1
- package/web/dist/assets/git-toolbar-BLqu97v8.js +0 -1
- package/web/dist/assets/github-hrWK-ST8.js +0 -1
- package/web/dist/assets/index-B96YnNHc.js +0 -22
- package/web/dist/assets/index-DdBHg6_F.css +0 -2
- package/web/dist/assets/open-mercato-toBr6SOa.svg +0 -11
- package/web/dist/assets/run-diff-LyXkHJCR.js +0 -3
- package/web/dist/assets/run-header-BtH23tbQ.js +0 -1
- package/web/dist/assets/skills-CE0HAI_G.js +0 -1
- package/web/dist/assets/task-commits-DRnMTXtG.js +0 -1
- package/web/dist/assets/task-files-DAqPuHp1.js +0 -2
- package/web/dist/assets/task-thread-DMM5s2zt.js +0 -9
- package/web/dist/assets/workflows-DCkK4Bsn.js +0 -11
- /package/web/{open-mercato.svg → dist/open-mercato.svg} +0 -0
package/README.md
CHANGED
|
@@ -497,7 +497,7 @@ Parallel variants (×2/×3) of one task share that task's backend — mixing
|
|
|
497
497
|
happens per task and per step, not inside a variant group.
|
|
498
498
|
|
|
499
499
|
The seam is deliberately small: a backend is one class implementing the
|
|
500
|
-
`AgentRunner` interface (`src/core/agent-runner.ts`) that turns a prompt into
|
|
500
|
+
`AgentRunner` interface (`packages/cezar/src/core/agent-runner.ts`) that turns a prompt into
|
|
501
501
|
a stream of normalized events. Other CLIs — pi, aider, whatever ships next —
|
|
502
502
|
can slot in the same way.
|
|
503
503
|
|
|
@@ -613,8 +613,8 @@ cd cezar
|
|
|
613
613
|
npm install
|
|
614
614
|
```
|
|
615
615
|
|
|
616
|
-
**3. Build** — compiles the server (`tsc → dist/`) and the cockpit
|
|
617
|
-
(`vite build → web/dist/`), then runs the pack gate:
|
|
616
|
+
**3. Build** — compiles the api-client and the server (`tsc → packages/cezar/dist/`) and the cockpit
|
|
617
|
+
(`vite build → packages/cezar/web/dist/`), then runs the pack gate:
|
|
618
618
|
|
|
619
619
|
```bash
|
|
620
620
|
npm run build
|
|
@@ -666,9 +666,9 @@ npm run uninstall-as-command # removes cezar / cez / cezar-cli (either flavor
|
|
|
666
666
|
|
|
667
667
|
```bash
|
|
668
668
|
npm run dev # server (API :4321) + Vite dev server, opens the cockpit in the browser
|
|
669
|
-
npm run dev:server # tsx src/index.ts — the API server alone
|
|
669
|
+
npm run dev:server # tsx packages/cezar/src/index.ts — the API server alone
|
|
670
670
|
npm run dev:web # Vite dev server alone (proxies /api to :4321)
|
|
671
|
-
npm run build # tsc → dist/, vite build → web/dist/, then the pack gate
|
|
671
|
+
npm run build # tsc → packages/cezar/dist/, vite build → packages/cezar/web/dist/, then the pack gate
|
|
672
672
|
npm run typecheck # server + web (tsc --noEmit)
|
|
673
673
|
npm test # vitest — server + cockpit unit suites
|
|
674
674
|
npm run test:unit # node:test — fast core-module tests
|
|
@@ -678,7 +678,7 @@ npm run test:e2e # real-browser cockpit suite (agent-browser)
|
|
|
678
678
|
|
|
679
679
|
The stack is deliberately small: **TypeScript** (strict, ESM), **Hono** + SSE for
|
|
680
680
|
the server, **Zod** at every boundary, **YAML** for workflows, and a **React 19 +
|
|
681
|
-
Vite + Tailwind v4 + shadcn/ui** cockpit shipped pre-built in `web/dist/` — the
|
|
681
|
+
Vite + Tailwind v4 + shadcn/ui** cockpit shipped pre-built in `packages/cezar/web/dist/` — the
|
|
682
682
|
published package carries the built app, so `npx` users never run a bundler.
|
|
683
683
|
Every module is meant to be read in one sitting.
|
|
684
684
|
|
|
@@ -118,17 +118,24 @@ export interface GithubPollResult {
|
|
|
118
118
|
candidates: GithubCandidate[];
|
|
119
119
|
truncated: boolean;
|
|
120
120
|
pages: number;
|
|
121
|
+
cursor?: {
|
|
122
|
+
timestamp: string;
|
|
123
|
+
tieBreaker: string;
|
|
124
|
+
};
|
|
121
125
|
}
|
|
122
126
|
export interface GithubPollerOptions {
|
|
123
127
|
run?: (executable: string, args: readonly string[]) => Promise<string>;
|
|
124
128
|
}
|
|
129
|
+
export interface GithubPollOptions {
|
|
130
|
+
since?: string;
|
|
131
|
+
}
|
|
125
132
|
export declare class GithubPoller {
|
|
126
133
|
private readonly run;
|
|
127
134
|
constructor(options?: GithubPollerOptions);
|
|
128
|
-
poll(owner: string, repo: string, definition: AutomationDefinition): Promise<GithubPollResult>;
|
|
135
|
+
poll(owner: string, repo: string, definition: AutomationDefinition, options?: GithubPollOptions): Promise<GithubPollResult>;
|
|
129
136
|
private timeline;
|
|
130
137
|
}
|
|
131
|
-
export declare function buildSearchQuery(owner: string, repo: string, definition: AutomationDefinition, family?: 'issues' | 'prs' | 'mixed'): string;
|
|
138
|
+
export declare function buildSearchQuery(owner: string, repo: string, definition: AutomationDefinition, family?: 'issues' | 'prs' | 'mixed', activity?: 'created' | 'updated', since?: string): string;
|
|
132
139
|
export declare function reconstructLabelEvents(owner: string, repo: string, item: z.infer<typeof githubItemSchema>, timeline: z.infer<typeof timelineEventSchema>[]): GithubCandidate[];
|
|
133
140
|
export declare function matchesFilters(candidate: GithubCandidate, definition: AutomationDefinition): boolean;
|
|
134
141
|
export {};
|
|
@@ -3,6 +3,7 @@ import { promisify } from 'node:util';
|
|
|
3
3
|
import { z } from 'zod';
|
|
4
4
|
const execFileAsync = promisify(execFile);
|
|
5
5
|
const HARD_CANDIDATE_CAP = 100;
|
|
6
|
+
const GITHUB_COMMAND_TIMEOUT_MS = 30_000;
|
|
6
7
|
const githubItemSchema = z.object({
|
|
7
8
|
id: z.number().int().positive().optional(),
|
|
8
9
|
node_id: z.string().min(1),
|
|
@@ -28,47 +29,110 @@ const timelineEventSchema = z.object({
|
|
|
28
29
|
export class GithubPoller {
|
|
29
30
|
run;
|
|
30
31
|
constructor(options = {}) {
|
|
31
|
-
this.run = options.run ?? (async (executable, args) => (await execFileAsync(executable, [...args], {
|
|
32
|
+
this.run = options.run ?? (async (executable, args) => (await execFileAsync(executable, [...args], {
|
|
33
|
+
maxBuffer: 4 * 1024 * 1024,
|
|
34
|
+
timeout: GITHUB_COMMAND_TIMEOUT_MS,
|
|
35
|
+
})).stdout);
|
|
32
36
|
}
|
|
33
|
-
async poll(owner, repo, definition) {
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
async poll(owner, repo, definition, options = {}) {
|
|
38
|
+
const openedEvents = definition.events.filter((event) => event === 'pull_request.opened' || event === 'issue.opened');
|
|
39
|
+
const labelEvents = definition.events.filter((event) => event === 'issue.labeled' || event === 'issue.unlabeled');
|
|
40
|
+
const sources = [];
|
|
41
|
+
if (openedEvents.length) {
|
|
42
|
+
sources.push({
|
|
43
|
+
family: openedEvents.every((event) => event === 'pull_request.opened')
|
|
44
|
+
? 'prs'
|
|
45
|
+
: openedEvents.every((event) => event === 'issue.opened') ? 'issues' : 'mixed',
|
|
46
|
+
activity: 'created',
|
|
47
|
+
opened: true,
|
|
48
|
+
labels: false,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
if (labelEvents.length) {
|
|
52
|
+
sources.push({ family: 'issues', activity: 'updated', opened: false, labels: true });
|
|
53
|
+
}
|
|
38
54
|
const perPage = Math.min(definition.filters.maxRecords, HARD_CANDIDATE_CAP);
|
|
39
|
-
const args = ['api', '--method', 'GET', '/search/issues', '-f', `q=${query}`, '-f', `per_page=${perPage}`, '-f', 'sort=created', '-f', 'order=desc'];
|
|
40
|
-
const raw = await this.run('gh', args);
|
|
41
|
-
const response = searchResponseSchema.parse(JSON.parse(raw));
|
|
42
55
|
const expectedRepoUrl = `https://api.github.com/repos/${owner}/${repo}`.toLowerCase();
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
56
|
+
const observations = [];
|
|
57
|
+
let truncated = false;
|
|
58
|
+
for (const source of sources) {
|
|
59
|
+
const query = buildSearchQuery(owner, repo, definition, source.family, source.activity, options.since);
|
|
60
|
+
const args = [
|
|
61
|
+
'api', '--method', 'GET', '/search/issues',
|
|
62
|
+
'-f', `q=${query}`,
|
|
63
|
+
'-f', `per_page=${perPage}`,
|
|
64
|
+
'-f', `sort=${source.activity}`,
|
|
65
|
+
'-f', 'order=asc',
|
|
66
|
+
];
|
|
67
|
+
const raw = await this.run('gh', args);
|
|
68
|
+
const response = searchResponseSchema.parse(JSON.parse(raw));
|
|
69
|
+
const sourceObservations = [];
|
|
70
|
+
truncated ||= response.items.length >= perPage;
|
|
71
|
+
for (const item of response.items.slice(0, HARD_CANDIDATE_CAP)) {
|
|
72
|
+
if (item.repository_url.toLowerCase() !== expectedRepoUrl)
|
|
73
|
+
continue;
|
|
74
|
+
if (source.opened && item.pull_request && definition.events.includes('pull_request.opened')) {
|
|
75
|
+
const candidate = normalizeOpened(owner, repo, item, 'pull_request.opened');
|
|
76
|
+
if (atOrAfter(candidate.timestamp, options.since)) {
|
|
77
|
+
sourceObservations.push({
|
|
78
|
+
timestamp: candidate.timestamp,
|
|
79
|
+
tieBreaker: candidate.tieBreaker,
|
|
80
|
+
candidate: matchesFilters(candidate, definition) ? candidate : undefined,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
62
83
|
}
|
|
84
|
+
else if (source.opened && !item.pull_request && definition.events.includes('issue.opened')) {
|
|
85
|
+
const candidate = normalizeOpened(owner, repo, item, 'issue.opened');
|
|
86
|
+
if (atOrAfter(candidate.timestamp, options.since)) {
|
|
87
|
+
sourceObservations.push({
|
|
88
|
+
timestamp: candidate.timestamp,
|
|
89
|
+
tieBreaker: candidate.tieBreaker,
|
|
90
|
+
candidate: matchesFilters(candidate, definition) ? candidate : undefined,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (source.labels && !item.pull_request) {
|
|
95
|
+
const timeline = await this.timeline(owner, repo, item.number);
|
|
96
|
+
const events = reconstructLabelEvents(owner, repo, item, timeline);
|
|
97
|
+
for (const event of events) {
|
|
98
|
+
if (!atOrAfter(event.timestamp, options.since))
|
|
99
|
+
continue;
|
|
100
|
+
sourceObservations.push({
|
|
101
|
+
timestamp: event.timestamp,
|
|
102
|
+
tieBreaker: event.tieBreaker,
|
|
103
|
+
candidate: definition.events.includes(event.event) && matchesFilters(event, definition)
|
|
104
|
+
? event
|
|
105
|
+
: undefined,
|
|
106
|
+
});
|
|
107
|
+
if (sourceObservations.length >= perPage)
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
const lastEventAt = events.at(-1)?.timestamp;
|
|
111
|
+
if (sourceObservations.length < perPage
|
|
112
|
+
&& item.updated_at
|
|
113
|
+
&& atOrAfter(item.updated_at, options.since)
|
|
114
|
+
&& (!lastEventAt || item.updated_at > lastEventAt)) {
|
|
115
|
+
sourceObservations.push({
|
|
116
|
+
timestamp: item.updated_at,
|
|
117
|
+
tieBreaker: `activity:${item.node_id}`,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (sourceObservations.length >= perPage)
|
|
122
|
+
break;
|
|
63
123
|
}
|
|
64
|
-
|
|
65
|
-
|
|
124
|
+
sourceObservations.sort(compareObservation);
|
|
125
|
+
truncated ||= sourceObservations.length >= perPage;
|
|
126
|
+
observations.push(...sourceObservations.slice(0, perPage));
|
|
66
127
|
}
|
|
67
|
-
|
|
128
|
+
observations.sort(compareObservation);
|
|
129
|
+
const evaluated = observations.slice(0, definition.filters.maxRecords);
|
|
130
|
+
const cursor = evaluated.at(-1);
|
|
68
131
|
return {
|
|
69
|
-
candidates:
|
|
70
|
-
truncated:
|
|
71
|
-
pages:
|
|
132
|
+
candidates: evaluated.flatMap((observation) => observation.candidate ? [observation.candidate] : []),
|
|
133
|
+
truncated: truncated || observations.length > definition.filters.maxRecords,
|
|
134
|
+
pages: sources.length,
|
|
135
|
+
cursor: cursor ? { timestamp: cursor.timestamp, tieBreaker: cursor.tieBreaker } : undefined,
|
|
72
136
|
};
|
|
73
137
|
}
|
|
74
138
|
async timeline(owner, repo, number) {
|
|
@@ -79,9 +143,14 @@ export class GithubPoller {
|
|
|
79
143
|
return z.array(timelineEventSchema).parse(JSON.parse(raw));
|
|
80
144
|
}
|
|
81
145
|
}
|
|
82
|
-
export function buildSearchQuery(owner, repo, definition, family = 'mixed') {
|
|
83
|
-
const start =
|
|
84
|
-
|
|
146
|
+
export function buildSearchQuery(owner, repo, definition, family = 'mixed', activity = 'created', since) {
|
|
147
|
+
const start = since
|
|
148
|
+
?? new Date(Date.now() - definition.filters.lookbackDays * 86_400_000).toISOString().slice(0, 10);
|
|
149
|
+
const terms = [
|
|
150
|
+
`repo:${owner}/${repo}`,
|
|
151
|
+
family === 'prs' ? 'is:pr' : family === 'issues' ? 'is:issue' : '',
|
|
152
|
+
`${activity}:>=${start}`,
|
|
153
|
+
];
|
|
85
154
|
for (const author of definition.filters.authors ?? [])
|
|
86
155
|
terms.push(`author:${safeQualifier(author)}`);
|
|
87
156
|
for (const assignee of definition.filters.assignees ?? [])
|
|
@@ -133,7 +202,7 @@ export function reconstructLabelEvents(owner, repo, item, timeline) {
|
|
|
133
202
|
changedLabel: entry.label.name,
|
|
134
203
|
});
|
|
135
204
|
}
|
|
136
|
-
return rows;
|
|
205
|
+
return rows.sort((a, b) => a.timestamp.localeCompare(b.timestamp) || a.tieBreaker.localeCompare(b.tieBreaker));
|
|
137
206
|
}
|
|
138
207
|
export function matchesFilters(candidate, definition) {
|
|
139
208
|
const lower = (values) => new Set(values.map((value) => value.toLowerCase()));
|
|
@@ -156,4 +225,10 @@ export function matchesFilters(candidate, definition) {
|
|
|
156
225
|
function sanitize(value, max) {
|
|
157
226
|
return value.replace(/[\u0000-\u001f\u007f]/g, ' ').slice(0, max);
|
|
158
227
|
}
|
|
228
|
+
function compareObservation(a, b) {
|
|
229
|
+
return a.timestamp.localeCompare(b.timestamp) || a.tieBreaker.localeCompare(b.tieBreaker);
|
|
230
|
+
}
|
|
231
|
+
function atOrAfter(timestamp, since) {
|
|
232
|
+
return !since || timestamp >= since;
|
|
233
|
+
}
|
|
159
234
|
//# sourceMappingURL=github-poller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-poller.js","sourceRoot":"","sources":["../../src/automations/github-poller.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"github-poller.js","sourceRoot":"","sources":["../../src/automations/github-poller.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,11 @@ export class ProjectAutomationScheduler {
|
|
|
29
29
|
if (state.backoffUntil && Date.parse(state.backoffUntil) > Date.now()) {
|
|
30
30
|
throw new Error(`automation is backed off until ${state.backoffUntil}`);
|
|
31
31
|
}
|
|
32
|
-
const
|
|
32
|
+
const since = state.cursor?.timestamp ?? state.baselineAt;
|
|
33
|
+
const overlapSince = since
|
|
34
|
+
? new Date(Date.parse(since) - 120_000).toISOString()
|
|
35
|
+
: undefined;
|
|
36
|
+
const result = await githubRequests.run(() => this.handle.poller.poll(this.handle.owner, this.handle.repo, definition, { since: overlapSince }));
|
|
33
37
|
const eligible = result.candidates.filter((candidate) => {
|
|
34
38
|
if (state.baselineAt && candidate.timestamp <= state.baselineAt)
|
|
35
39
|
return false;
|
|
@@ -43,13 +47,15 @@ export class ProjectAutomationScheduler {
|
|
|
43
47
|
await this.launch(definition, candidate);
|
|
44
48
|
}
|
|
45
49
|
if (mode === 'execute') {
|
|
46
|
-
const last = eligible.at(-1);
|
|
47
50
|
const now = new Date().toISOString();
|
|
51
|
+
const cursor = laterCursor(state.cursor, result.cursor);
|
|
48
52
|
store.setState(definition.id, {
|
|
49
53
|
...state,
|
|
50
54
|
revision: definition.revision,
|
|
51
|
-
cursor
|
|
52
|
-
frozenHighWatermark: result.truncated &&
|
|
55
|
+
cursor,
|
|
56
|
+
frozenHighWatermark: result.truncated && cursor?.tieBreaker
|
|
57
|
+
? { timestamp: cursor.timestamp, tieBreaker: cursor.tieBreaker }
|
|
58
|
+
: undefined,
|
|
53
59
|
lastSuccessAt: now,
|
|
54
60
|
nextCheckAt: new Date(Date.now() + definition.intervalSeconds * 1_000).toISOString(),
|
|
55
61
|
consecutiveFailures: 0,
|
|
@@ -116,6 +122,15 @@ export class ProjectAutomationScheduler {
|
|
|
116
122
|
this.handle.onChange?.(definition.id, definition.revision);
|
|
117
123
|
}
|
|
118
124
|
}
|
|
125
|
+
function laterCursor(current, observed) {
|
|
126
|
+
if (!observed)
|
|
127
|
+
return current;
|
|
128
|
+
if (!current)
|
|
129
|
+
return observed;
|
|
130
|
+
const order = observed.timestamp.localeCompare(current.timestamp)
|
|
131
|
+
|| observed.tieBreaker.localeCompare(current.tieBreaker ?? '');
|
|
132
|
+
return order > 0 ? observed : current;
|
|
133
|
+
}
|
|
119
134
|
/** One workspace timer, created only while at least one enabled definition exists. */
|
|
120
135
|
export class WorkspaceAutomationScheduler {
|
|
121
136
|
options;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/automations/scheduler.ts"],"names":[],"mappings":"AAsBA;+BAC+B;AAC/B,MAAM,oBAAoB;IAChB,IAAI,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;IACnD,GAAG,CAAI,SAA2B;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3C,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AACD,MAAM,cAAc,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAElD,MAAM,OAAO,0BAA0B;IACR,MAAM;IAAnC,YAA6B,MAA+B;sBAA/B,MAAM;IAA4B,CAAC;IAEhE,KAAK,CAAC,KAAK,CAAC,UAAgC,EAAE,IAAI,GAA0B,SAAS;QACnF,MAAM,aAAa,GAAG,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAChE,IAAI,aAAa;YAAE,IAAI,GAAG,SAAS,CAAC;QACpC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;QACnC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACnF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,UAA0E,CAAC;QAC/E,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAC/C,IAAI,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;gBACtE,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../../src/automations/scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/** The manifest arithmetic both release channels share — the pure half of stamping.
|
|
2
|
+
*
|
|
3
|
+
* `stable.ts` and `snapshot.ts` differ in exactly one decision (how a released package pins
|
|
4
|
+
* its sibling: a caret range for stable, an exact pin for a snapshot), so everything else
|
|
5
|
+
* lives here rather than twice.
|
|
6
|
+
*
|
|
7
|
+
* Deliberately name-agnostic: names come from the checked-out manifests at call time, never
|
|
8
|
+
* from constants, so a package rename lands without touching this pipeline.
|
|
9
|
+
*/
|
|
10
|
+
/** The minimal manifest shape the stamper touches; everything else passes through. */
|
|
11
|
+
export interface ManifestLike {
|
|
12
|
+
name: string;
|
|
13
|
+
version: string;
|
|
14
|
+
/** npm's own opt-out. A private package is still versioned in lockstep, never published. */
|
|
15
|
+
private?: boolean;
|
|
16
|
+
dependencies?: Record<string, string>;
|
|
17
|
+
devDependencies?: Record<string, string>;
|
|
18
|
+
[key: string]: unknown;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Whether a release stamps AND publishes this package, or only stamps it.
|
|
22
|
+
*
|
|
23
|
+
* The distinction exists because "in the release" and "on the registry" are different things.
|
|
24
|
+
* A package that ships nowhere yet still needs its version moved in lockstep: the api-client is
|
|
25
|
+
* the worked example — the service pins it, so a frozen version would leave that range pointing
|
|
26
|
+
* at a build the release was not cut from, which is exactly the drift this pipeline exists to
|
|
27
|
+
* prevent. Publishing is gated on npm's own `private` flag rather than a list here, so opening
|
|
28
|
+
* a package up is one line in ITS manifest and no change to the release code.
|
|
29
|
+
*/
|
|
30
|
+
export declare function isPublishable(pkg: ManifestLike): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Every manifest a release stamps.
|
|
33
|
+
*
|
|
34
|
+
* The order of the fields is the order they must be PUBLISHED in, because each one depends on
|
|
35
|
+
* the one before it: the alias is a bin-shim over the service, and the service (from the phase
|
|
36
|
+
* where it stops merely testing against the client and starts importing it) depends on the
|
|
37
|
+
* api-client. Publishing the dependent first would briefly advertise a version of its
|
|
38
|
+
* dependency that does not exist on the registry yet.
|
|
39
|
+
*/
|
|
40
|
+
export interface ReleaseManifests {
|
|
41
|
+
/** The contract package a consumer installs to talk to a cezar service. */
|
|
42
|
+
apiClient: ManifestLike;
|
|
43
|
+
/** The published service + CLI. */
|
|
44
|
+
cezar: ManifestLike;
|
|
45
|
+
/** The unscoped bin alias, so `npx cezar-cli` works. */
|
|
46
|
+
alias: ManifestLike;
|
|
47
|
+
}
|
|
48
|
+
/** How a released package pins a sibling it depends on. */
|
|
49
|
+
export type PinStyle = (version: string) => string;
|
|
50
|
+
/**
|
|
51
|
+
* Rewrite `pkg`'s range for `depName`, in whichever dependency section already declares it.
|
|
52
|
+
*
|
|
53
|
+
* Absent means absent: a package that does not depend on the other is returned untouched. That
|
|
54
|
+
* is what lets the api-client dependency migrate from `devDependencies` (today: only the tests
|
|
55
|
+
* import it) to `dependencies` (once the service imports its DTOs at runtime) without the
|
|
56
|
+
* release pipeline needing to know it happened.
|
|
57
|
+
*/
|
|
58
|
+
export declare function pinDependency(pkg: ManifestLike, depName: string, range: string): ManifestLike;
|
|
59
|
+
/**
|
|
60
|
+
* Stamp every manifest to `version` and re-pin the intra-release dependencies.
|
|
61
|
+
*
|
|
62
|
+
* Two pins, both derived from the manifests rather than hardcoded:
|
|
63
|
+
* - the alias → the service, so `npx <alias>@<v>` runs the matching CLI;
|
|
64
|
+
* - the service → the api-client, so a published service can never resolve a client build it
|
|
65
|
+
* was not released with.
|
|
66
|
+
*
|
|
67
|
+
* The alias also inherits `repository`/`homepage`/`bugs` from the service manifest: we publish
|
|
68
|
+
* with `--provenance`, and npm rejects (E422) any manifest whose `repository.url` does not
|
|
69
|
+
* match the building repo. The alias file carries none of its own, so it borrows the
|
|
70
|
+
* service's — already correct, and being a git URL, unaffected by any npm-name rename.
|
|
71
|
+
*/
|
|
72
|
+
export declare function stampManifestSet(manifests: ReleaseManifests, version: string, pin: PinStyle): ReleaseManifests;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/** The manifest arithmetic both release channels share — the pure half of stamping.
|
|
2
|
+
*
|
|
3
|
+
* `stable.ts` and `snapshot.ts` differ in exactly one decision (how a released package pins
|
|
4
|
+
* its sibling: a caret range for stable, an exact pin for a snapshot), so everything else
|
|
5
|
+
* lives here rather than twice.
|
|
6
|
+
*
|
|
7
|
+
* Deliberately name-agnostic: names come from the checked-out manifests at call time, never
|
|
8
|
+
* from constants, so a package rename lands without touching this pipeline.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Whether a release stamps AND publishes this package, or only stamps it.
|
|
12
|
+
*
|
|
13
|
+
* The distinction exists because "in the release" and "on the registry" are different things.
|
|
14
|
+
* A package that ships nowhere yet still needs its version moved in lockstep: the api-client is
|
|
15
|
+
* the worked example — the service pins it, so a frozen version would leave that range pointing
|
|
16
|
+
* at a build the release was not cut from, which is exactly the drift this pipeline exists to
|
|
17
|
+
* prevent. Publishing is gated on npm's own `private` flag rather than a list here, so opening
|
|
18
|
+
* a package up is one line in ITS manifest and no change to the release code.
|
|
19
|
+
*/
|
|
20
|
+
export function isPublishable(pkg) {
|
|
21
|
+
return pkg.private !== true;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Rewrite `pkg`'s range for `depName`, in whichever dependency section already declares it.
|
|
25
|
+
*
|
|
26
|
+
* Absent means absent: a package that does not depend on the other is returned untouched. That
|
|
27
|
+
* is what lets the api-client dependency migrate from `devDependencies` (today: only the tests
|
|
28
|
+
* import it) to `dependencies` (once the service imports its DTOs at runtime) without the
|
|
29
|
+
* release pipeline needing to know it happened.
|
|
30
|
+
*/
|
|
31
|
+
export function pinDependency(pkg, depName, range) {
|
|
32
|
+
const sections = ['dependencies', 'devDependencies', 'peerDependencies'];
|
|
33
|
+
const out = { ...pkg };
|
|
34
|
+
for (const section of sections) {
|
|
35
|
+
const deps = pkg[section];
|
|
36
|
+
if (deps && depName in deps)
|
|
37
|
+
out[section] = { ...deps, [depName]: range };
|
|
38
|
+
}
|
|
39
|
+
return out;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Stamp every manifest to `version` and re-pin the intra-release dependencies.
|
|
43
|
+
*
|
|
44
|
+
* Two pins, both derived from the manifests rather than hardcoded:
|
|
45
|
+
* - the alias → the service, so `npx <alias>@<v>` runs the matching CLI;
|
|
46
|
+
* - the service → the api-client, so a published service can never resolve a client build it
|
|
47
|
+
* was not released with.
|
|
48
|
+
*
|
|
49
|
+
* The alias also inherits `repository`/`homepage`/`bugs` from the service manifest: we publish
|
|
50
|
+
* with `--provenance`, and npm rejects (E422) any manifest whose `repository.url` does not
|
|
51
|
+
* match the building repo. The alias file carries none of its own, so it borrows the
|
|
52
|
+
* service's — already correct, and being a git URL, unaffected by any npm-name rename.
|
|
53
|
+
*/
|
|
54
|
+
export function stampManifestSet(manifests, version, pin) {
|
|
55
|
+
const { apiClient, cezar, alias } = manifests;
|
|
56
|
+
const range = pin(version);
|
|
57
|
+
const inherited = {};
|
|
58
|
+
for (const field of ['repository', 'homepage', 'bugs']) {
|
|
59
|
+
if (cezar[field] !== undefined)
|
|
60
|
+
inherited[field] = cezar[field];
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
apiClient: { ...apiClient, version },
|
|
64
|
+
cezar: pinDependency({ ...cezar, version }, apiClient.name, range),
|
|
65
|
+
alias: {
|
|
66
|
+
...pinDependency({ ...alias, ...inherited, version }, cezar.name, range),
|
|
67
|
+
// The alias exists only to depend on the service — an unpinned or missing entry would
|
|
68
|
+
// make `npx <alias>` install nothing useful, so this one is asserted, not merged.
|
|
69
|
+
dependencies: { ...alias.dependencies, [cezar.name]: range },
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=manifests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifests.js","sourceRoot":"","sources":["../../src/release/manifests.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAaH;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,GAAiB;IAC7C,OAAO,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC;AAC9B,CAAC;AAuBD;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,GAAiB,EAAE,OAAe,EAAE,KAAa;IAC7E,MAAM,QAAQ,GAAG,CAAC,cAAc,EAAE,iBAAiB,EAAE,kBAAkB,CAAU,CAAC;IAClF,MAAM,GAAG,GAAiB,EAAE,GAAG,GAAG,EAAE,CAAC;IACrC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAuC,CAAC;QAChE,IAAI,IAAI,IAAI,OAAO,IAAI,IAAI;YAAE,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;IAC5E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAA2B,EAC3B,OAAe,EACf,GAAa;IAEb,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IAE3B,MAAM,SAAS,GAA0B,EAAE,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,CAAU,EAAE,CAAC;QAChE,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS;YAAE,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAClE,CAAC;IAED,OAAO;QACL,SAAS,EAAE,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE;QACpC,KAAK,EAAE,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC;QAClE,KAAK,EAAE;YACL,GAAG,aAAa,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;YACxE,sFAAsF;YACtF,kFAAkF;YAClF,YAAY,EAAE,EAAE,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE;SAC7D;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
* at call time, never from constants — so the `@pat-lewczuk/cezar` →
|
|
12
12
|
* `@open-mercato/cezar` rename (PR #501) lands independently of this pipeline.
|
|
13
13
|
*/
|
|
14
|
+
import { type ReleaseManifests as ReleaseManifestSet } from './manifests.js';
|
|
14
15
|
/** The CI facts the decision needs, straight from GitHub Actions' env/event. */
|
|
15
16
|
export interface SnapshotContext {
|
|
16
17
|
/** `GITHUB_EVENT_NAME` — only `pull_request` and `push` ever publish. */
|
|
@@ -40,30 +41,15 @@ export interface SnapshotPlan {
|
|
|
40
41
|
distTag: string;
|
|
41
42
|
}
|
|
42
43
|
export declare function computeSnapshot(ctx: SnapshotContext): SnapshotPlan | null;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
name: string;
|
|
46
|
-
version: string;
|
|
47
|
-
dependencies?: Record<string, string>;
|
|
48
|
-
[key: string]: unknown;
|
|
49
|
-
}
|
|
50
|
-
/** Stamp both manifests to the snapshot version.
|
|
51
|
-
*
|
|
52
|
-
* The alias is a bin-shim whose only dependency is the scoped package; a
|
|
53
|
-
* snapshot must pin that dependency **exact** (`0.1.5-pr482.123`, no range) so
|
|
54
|
-
* `npx <alias>@<version>` runs exactly the PR's code — a `^` range would
|
|
55
|
-
* resolve to whatever newer version exists (spec, resolved Q5). Stable
|
|
56
|
-
* releases keep their `^` range and never go through this stamper.
|
|
44
|
+
export type { ManifestLike, ReleaseManifests } from './manifests.js';
|
|
45
|
+
/** Stamp the release set to the snapshot version.
|
|
57
46
|
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
export declare function stampManifests(
|
|
64
|
-
root: ManifestLike;
|
|
65
|
-
alias: ManifestLike;
|
|
66
|
-
};
|
|
47
|
+
* Every intra-release dependency is pinned **exact** (`0.1.5-pr482.123`, no range) so
|
|
48
|
+
* `npx <alias>@<version>` runs exactly the PR's code and the service resolves exactly the
|
|
49
|
+
* api-client it was cut with — a `^` range would resolve to whatever newer version exists
|
|
50
|
+
* (spec, resolved Q5). Stable releases keep their `^` range and never go through this
|
|
51
|
+
* stamper. */
|
|
52
|
+
export declare function stampManifests(manifests: ReleaseManifestSet, version: string): ReleaseManifestSet;
|
|
67
53
|
/** The copy-pasteable commands for the sticky PR comment and the step summary.
|
|
68
54
|
* Rendered from the *actual* alias package name so a future rename of the npx
|
|
69
55
|
* command can never leave stale instructions (spec, resolved Q1). */
|