@on-par/factory-core 0.9.28-next.12 → 0.9.28-next.14
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/dist/internal.d.ts +2 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +2 -0
- package/dist/internal.js.map +1 -1
- package/dist/phases/ship-approval.d.ts +17 -0
- package/dist/phases/ship-approval.d.ts.map +1 -0
- package/dist/phases/ship-approval.js +21 -0
- package/dist/phases/ship-approval.js.map +1 -0
- package/dist/phases/ship-branch-push.d.ts +17 -0
- package/dist/phases/ship-branch-push.d.ts.map +1 -0
- package/dist/phases/ship-branch-push.js +77 -0
- package/dist/phases/ship-branch-push.js.map +1 -0
- package/dist/phases/ship-evidence-comment.d.ts +12 -0
- package/dist/phases/ship-evidence-comment.d.ts.map +1 -0
- package/dist/phases/ship-evidence-comment.js +30 -0
- package/dist/phases/ship-evidence-comment.js.map +1 -0
- package/dist/phases/ship-existing-pr.d.ts +11 -0
- package/dist/phases/ship-existing-pr.d.ts.map +1 -0
- package/dist/phases/ship-existing-pr.js +36 -0
- package/dist/phases/ship-existing-pr.js.map +1 -0
- package/dist/phases/ship-finish.d.ts +15 -0
- package/dist/phases/ship-finish.d.ts.map +1 -0
- package/dist/phases/ship-finish.js +69 -0
- package/dist/phases/ship-finish.js.map +1 -0
- package/dist/phases/ship-git-detail.d.ts +31 -0
- package/dist/phases/ship-git-detail.d.ts.map +1 -0
- package/dist/phases/ship-git-detail.js +71 -0
- package/dist/phases/ship-git-detail.js.map +1 -0
- package/dist/phases/ship-git-remote.d.ts +51 -0
- package/dist/phases/ship-git-remote.d.ts.map +1 -0
- package/dist/phases/ship-git-remote.js +70 -0
- package/dist/phases/ship-git-remote.js.map +1 -0
- package/dist/phases/ship-git.d.ts +4 -79
- package/dist/phases/ship-git.d.ts.map +1 -1
- package/dist/phases/ship-git.js +2 -135
- package/dist/phases/ship-git.js.map +1 -1
- package/dist/phases/ship-open-pr.d.ts +19 -0
- package/dist/phases/ship-open-pr.d.ts.map +1 -0
- package/dist/phases/ship-open-pr.js +71 -0
- package/dist/phases/ship-open-pr.js.map +1 -0
- package/dist/phases/ship-options.d.ts +76 -0
- package/dist/phases/ship-options.d.ts.map +1 -0
- package/dist/phases/ship-options.js +4 -0
- package/dist/phases/ship-options.js.map +1 -0
- package/dist/phases/ship-reentry.d.ts +20 -0
- package/dist/phases/ship-reentry.d.ts.map +1 -0
- package/dist/phases/ship-reentry.js +47 -0
- package/dist/phases/ship-reentry.js.map +1 -0
- package/dist/phases/ship.d.ts +4 -76
- package/dist/phases/ship.d.ts.map +1 -1
- package/dist/phases/ship.js +30 -295
- package/dist/phases/ship.js.map +1 -1
- package/dist/reports/pr-body.d.ts.map +1 -1
- package/dist/reports/pr-body.js +18 -8
- package/dist/reports/pr-body.js.map +1 -1
- package/dist/run/ports.d.ts +10 -0
- package/dist/run/ports.d.ts.map +1 -1
- package/dist/run/ports.js +12 -0
- package/dist/run/ports.js.map +1 -1
- package/dist/utils/in-place.d.ts +24 -0
- package/dist/utils/in-place.d.ts.map +1 -0
- package/dist/utils/in-place.js +105 -0
- package/dist/utils/in-place.js.map +1 -0
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-body.js","sourceRoot":"","sources":["../../src/reports/pr-body.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,+FAA+F;AAC/F,mGAAmG;AACnG,oDAAoD;AAGpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAI9D,MAAM,aAAa,GAAG,IAAI,CAAC;AAC3B,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAEjC,sCAAsC;AACtC,MAAM,CAAC,MAAM,cAAc,GAAG,oBAAoB,CAAC,EAAE,CAAC,MAAM,CAAC;AAyB7D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA,wBAAwB,CAAC;AAC/C,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,eAAe,GAAG,SAAS,GAAG,uCAAuC,CAAC,CAAC;AAChH,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"pr-body.js","sourceRoot":"","sources":["../../src/reports/pr-body.ts"],"names":[],"mappings":"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"}
|
package/dist/run/ports.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type { WorktreeSandbox } from '../utils/microvm.js';
|
|
|
6
6
|
import type { PrLookup } from '../phases/ship.js';
|
|
7
7
|
import type { RemoteBranchRecord } from '../types/index.js';
|
|
8
8
|
import { cleanupWorktree, setupWorktree } from '../utils/index.js';
|
|
9
|
+
import { setupInPlaceCheckout } from '../utils/in-place.js';
|
|
9
10
|
import type { LocalOnlyPolicy } from '../work/local-only.js';
|
|
10
11
|
/** The workspace-provisioning seam runIssue needs: a working tree the pipeline
|
|
11
12
|
* phases run in (cwd), and a teardown. */
|
|
@@ -49,6 +50,15 @@ export declare function worktreeWorkspace(opts: {
|
|
|
49
50
|
setup?: typeof setupWorktree;
|
|
50
51
|
cleanup?: typeof cleanupWorktree;
|
|
51
52
|
}): Promise<Workspace>;
|
|
53
|
+
/** In-place adapter (#3904): the current checkout IS the working tree. The factory did not
|
|
54
|
+
* create it, so dispose never tears it down. Locking stays the caller's responsibility. */
|
|
55
|
+
export declare function inPlaceWorkspace(opts: {
|
|
56
|
+
repoRoot: string;
|
|
57
|
+
branch: string;
|
|
58
|
+
log?: (type: EventKind, msg: string) => void;
|
|
59
|
+
findOpenPr?: (branch: string) => Promise<PrLookup>;
|
|
60
|
+
setup?: typeof setupInPlaceCheckout;
|
|
61
|
+
}): Promise<Workspace>;
|
|
52
62
|
/** Sim throwaway-workspace adapter: the sim's repoRoot IS the working tree; its
|
|
53
63
|
* dispose already removes every directory it created. */
|
|
54
64
|
export declare function simWorkspace(sim: SimWorkspace): Workspace;
|
package/dist/run/ports.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../src/run/ports.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAEL,KAAK,uBAAuB,EAI7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D;2CAC2C;AAC3C,MAAM,WAAW,SAAS;IACxB,iEAAiE;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;kCAC8B;IAC9B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;CAC5C;AAED;;wCAEwC;AACxC,MAAM,WAAW,WAAW;IAC1B,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;kEAC8D;IAC9D,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,sFAAsF;IACtF,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,8EAA8E;IAC9E,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED;;;aAGa;AACb,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnD,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,aAAa,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,eAAe,CAAC;CAClC,GAAG,OAAO,CAAC,SAAS,CAAC,CAYrB;AAED;0DAC0D;AAC1D,wBAAgB,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,SAAS,CAEzD;AAED;mDACmD;AACnD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAErE;AAED;;;sCAGsC;AACtC,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,uBAAuB,GAAG;IAAE,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACpG,OAAO,CAAC,WAAW,CAAC,CAgBtB"}
|
|
1
|
+
{"version":3,"file":"ports.d.ts","sourceRoot":"","sources":["../../src/run/ports.ts"],"names":[],"mappings":"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"}
|
package/dist/run/ports.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { acquirePortLease, laneEnv, recordLeasePgid, releasePortLease, } from '../environment/index.js';
|
|
7
7
|
import { ProcessGroupTracker } from '../environment/process-groups.js';
|
|
8
8
|
import { cleanupWorktree, setupWorktree } from '../utils/index.js';
|
|
9
|
+
import { setupInPlaceCheckout } from '../utils/in-place.js';
|
|
9
10
|
/** Locked-CLI-worktree adapter: provisions via setupWorktree, tears down via
|
|
10
11
|
* cleanupWorktree. Locking stays the caller's responsibility (unchanged from the
|
|
11
12
|
* CLI today); this adapter only names the seam. setup/cleanup are injectable for
|
|
@@ -23,6 +24,17 @@ export async function worktreeWorkspace(opts) {
|
|
|
23
24
|
dispose: () => cleanup(opts.repoRoot, opts.worktreePath, opts.log, opts.sandbox),
|
|
24
25
|
};
|
|
25
26
|
}
|
|
27
|
+
/** In-place adapter (#3904): the current checkout IS the working tree. The factory did not
|
|
28
|
+
* create it, so dispose never tears it down. Locking stays the caller's responsibility. */
|
|
29
|
+
export async function inPlaceWorkspace(opts) {
|
|
30
|
+
const setup = opts.setup ?? setupInPlaceCheckout;
|
|
31
|
+
const result = await setup(opts.repoRoot, opts.branch, opts.log, { findOpenPr: opts.findOpenPr });
|
|
32
|
+
return {
|
|
33
|
+
path: opts.repoRoot,
|
|
34
|
+
...(result?.remoteBranch ? { remoteBranch: result.remoteBranch } : {}),
|
|
35
|
+
dispose: async () => { },
|
|
36
|
+
};
|
|
37
|
+
}
|
|
26
38
|
/** Sim throwaway-workspace adapter: the sim's repoRoot IS the working tree; its
|
|
27
39
|
* dispose already removes every directory it created. */
|
|
28
40
|
export function simWorkspace(sim) {
|
package/dist/run/ports.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/run/ports.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,qFAAqF;AACrF,sFAAsF;AACtF,iFAAiF;AACjF,gFAAgF;AAGhF,OAAO,EACL,gBAAgB,EAEhB,OAAO,EACP,eAAe,EACf,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAKvE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ports.js","sourceRoot":"","sources":["../../src/run/ports.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,qFAAqF;AACrF,sFAAsF;AACtF,iFAAiF;AACjF,gFAAgF;AAGhF,OAAO,EACL,gBAAgB,EAEhB,OAAO,EACP,eAAe,EACf,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAKvE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AA8B5D;;;aAGa;AACb,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAYvC;IACC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,aAAa,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,eAAe,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE;QACjH,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,CAAC,CAAC;IACH,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,YAAY;QACvB,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC;KACjF,CAAC;AACJ,CAAC;AAED;4FAC4F;AAC5F,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,IAMtC;IACC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,oBAAoB,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAClG,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,QAAQ;QACnB,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,OAAO,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;KACxB,CAAC;AACJ,CAAC;AAED;0DAC0D;AAC1D,MAAM,UAAU,YAAY,CAAC,GAAiB;IAC5C,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;AAC9D,CAAC;AAED;mDACmD;AACnD,MAAM,UAAU,kBAAkB,CAAC,MAAuB;IACxD,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED;;;sCAGsC;AACtC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAqG;IAErG,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,mBAAmB,EAAE,CAAC;IAC1D,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IACnD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC;QACzD,UAAU,CAAC,IAAY;YACrB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpB,KAAK,eAAe,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACpF,CAAC;QACD,KAAK,CAAC,OAAO;YACX,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACjD,MAAM,gBAAgB,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;QAChE,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { EventKind } from '../events/kinds.js';
|
|
2
|
+
import { type WorktreeSetupOptions, type WorktreeSetupResult } from './index.js';
|
|
3
|
+
export type InPlaceCheckoutProblem = {
|
|
4
|
+
kind: 'dirty';
|
|
5
|
+
files: string[];
|
|
6
|
+
message: string;
|
|
7
|
+
} | {
|
|
8
|
+
kind: 'wrong-branch';
|
|
9
|
+
current: string;
|
|
10
|
+
expected: string;
|
|
11
|
+
message: string;
|
|
12
|
+
} | {
|
|
13
|
+
kind: 'not-at-tip';
|
|
14
|
+
head: string;
|
|
15
|
+
tip: string;
|
|
16
|
+
expected: string;
|
|
17
|
+
message: string;
|
|
18
|
+
};
|
|
19
|
+
/** Why the checkout cannot host an in-place run, or null when it is clean and at origin/<default>. */
|
|
20
|
+
export declare function checkInPlaceCheckout(repoRoot: string): Promise<InPlaceCheckoutProblem | null>;
|
|
21
|
+
/** Switches the checkout to the factory branch, cut from origin/<default> (or the branch's open
|
|
22
|
+
* PR head). Re-checks readiness first to guard a race with the preflight. Never deletes. */
|
|
23
|
+
export declare function setupInPlaceCheckout(repoRoot: string, branch: string, log?: (type: EventKind, msg: string) => void, opts?: Pick<WorktreeSetupOptions, 'findOpenPr'>): Promise<WorktreeSetupResult>;
|
|
24
|
+
//# sourceMappingURL=in-place.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-place.d.ts","sourceRoot":"","sources":["../../src/utils/in-place.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAIpD,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,sBAAsB,GAC9B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAezF,sGAAsG;AACtG,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAuCnG;AAED;6FAC6F;AAC7F,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,EAC5C,IAAI,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,YAAY,CAAC,GAC9C,OAAO,CAAC,mBAAmB,CAAC,CA2C9B"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// src/utils/in-place.ts — in-place workspace mode (#3904): run the pipeline in the current
|
|
2
|
+
// checkout instead of a factory worktree. The clone is the isolation boundary, so the checkout
|
|
3
|
+
// must be clean and at the fetched default-branch tip, and nothing here ever deletes anything.
|
|
4
|
+
import { execGit } from './git-exec.js';
|
|
5
|
+
import { defaultRemoteBase, detectRemoteBranch, gitFetch, } from './index.js';
|
|
6
|
+
const MAX_LISTED_FILES = 20;
|
|
7
|
+
function porcelainPath(line) {
|
|
8
|
+
const path = line.slice(3);
|
|
9
|
+
const arrow = path.indexOf(' -> ');
|
|
10
|
+
return arrow === -1 ? path : path.slice(arrow + 4);
|
|
11
|
+
}
|
|
12
|
+
async function revParse(repoRoot, args) {
|
|
13
|
+
const { stdout } = await execGit(['rev-parse', ...args], { cwd: repoRoot });
|
|
14
|
+
return stdout.trim();
|
|
15
|
+
}
|
|
16
|
+
/** Why the checkout cannot host an in-place run, or null when it is clean and at origin/<default>. */
|
|
17
|
+
export async function checkInPlaceCheckout(repoRoot) {
|
|
18
|
+
await gitFetch(repoRoot);
|
|
19
|
+
const { stdout: status } = await execGit(['status', '--porcelain'], { cwd: repoRoot });
|
|
20
|
+
const files = status
|
|
21
|
+
.split('\n')
|
|
22
|
+
.filter((line) => line.trim() !== '')
|
|
23
|
+
.map(porcelainPath);
|
|
24
|
+
if (files.length > 0) {
|
|
25
|
+
const listed = files.slice(0, MAX_LISTED_FILES).join(', ');
|
|
26
|
+
const more = files.length > MAX_LISTED_FILES ? ` (+${files.length - MAX_LISTED_FILES} more)` : '';
|
|
27
|
+
return {
|
|
28
|
+
kind: 'dirty',
|
|
29
|
+
files,
|
|
30
|
+
message: `in-place run refused: the checkout has uncommitted changes: ${listed}${more} — commit, stash or discard them, or use a fresh clone`,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
const expected = await defaultRemoteBase(repoRoot);
|
|
34
|
+
const defaultName = expected.replace(/^origin\//, '');
|
|
35
|
+
const current = await revParse(repoRoot, ['--abbrev-ref', 'HEAD']);
|
|
36
|
+
if (current !== defaultName) {
|
|
37
|
+
return {
|
|
38
|
+
kind: 'wrong-branch',
|
|
39
|
+
current,
|
|
40
|
+
expected: defaultName,
|
|
41
|
+
message: `in-place run refused: the checkout is on '${current}' (detached HEAD when 'HEAD'), not the default branch '${defaultName}' — git switch ${defaultName}`,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const head = await revParse(repoRoot, ['HEAD']);
|
|
45
|
+
const tip = await revParse(repoRoot, [`${expected}^{commit}`]);
|
|
46
|
+
if (head !== tip) {
|
|
47
|
+
return {
|
|
48
|
+
kind: 'not-at-tip',
|
|
49
|
+
head,
|
|
50
|
+
tip,
|
|
51
|
+
expected,
|
|
52
|
+
message: `in-place run refused: HEAD ${head.slice(0, 8)} is not the fetched ${expected} tip ${tip.slice(0, 8)} — git reset --hard ${expected} in a disposable clone`,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
/** Switches the checkout to the factory branch, cut from origin/<default> (or the branch's open
|
|
58
|
+
* PR head). Re-checks readiness first to guard a race with the preflight. Never deletes. */
|
|
59
|
+
export async function setupInPlaceCheckout(repoRoot, branch, log, opts) {
|
|
60
|
+
const problem = await checkInPlaceCheckout(repoRoot);
|
|
61
|
+
if (problem)
|
|
62
|
+
throw new Error(problem.message);
|
|
63
|
+
let openPrBranch = false;
|
|
64
|
+
let remoteBranch = null;
|
|
65
|
+
const remoteSha = await detectRemoteBranch(repoRoot, branch);
|
|
66
|
+
if (remoteSha) {
|
|
67
|
+
remoteBranch = { sha: remoteSha };
|
|
68
|
+
let prText = 'open PR not checked';
|
|
69
|
+
if (opts?.findOpenPr) {
|
|
70
|
+
let lookup;
|
|
71
|
+
try {
|
|
72
|
+
lookup = await opts.findOpenPr(branch);
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
lookup = { status: 'error', detail: err instanceof Error ? err.message : String(err) };
|
|
76
|
+
}
|
|
77
|
+
if (lookup.status === 'found') {
|
|
78
|
+
remoteBranch.prNumber = lookup.prNumber;
|
|
79
|
+
openPrBranch = true;
|
|
80
|
+
prText = `open PR #${lookup.prNumber} — continuing on origin/${branch}`;
|
|
81
|
+
}
|
|
82
|
+
else if (lookup.status === 'absent') {
|
|
83
|
+
prText = 'no open PR';
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
prText = `open PR lookup failed: ${lookup.detail}`;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
log?.('remote-branch-preexisting', `origin/${branch} already exists @ ${remoteSha}; ${prText}`);
|
|
90
|
+
}
|
|
91
|
+
const base = openPrBranch ? `origin/${branch}` : await defaultRemoteBase(repoRoot);
|
|
92
|
+
try {
|
|
93
|
+
await execGit(['switch', '--no-track', '-c', branch, base], { cwd: repoRoot });
|
|
94
|
+
}
|
|
95
|
+
catch (err) {
|
|
96
|
+
const stderr = (err?.stderr ?? (err instanceof Error ? err.message : String(err)))
|
|
97
|
+
.toString()
|
|
98
|
+
.trim();
|
|
99
|
+
throw new Error(`in-place run refused: could not create branch '${branch}' in the checkout (${stderr}) — delete the local branch or use a fresh clone`, { cause: err });
|
|
100
|
+
}
|
|
101
|
+
const head = await revParse(repoRoot, ['--verify', 'HEAD']);
|
|
102
|
+
log?.('worktree-base', `in-place: switched ${repoRoot} to ${branch} from ${base} @ ${head}`);
|
|
103
|
+
return { base, head, remoteBranch };
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=in-place.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"in-place.js","sourceRoot":"","sources":["../../src/utils/in-place.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@on-par/factory-core",
|
|
3
|
-
"version": "0.9.28-next.
|
|
3
|
+
"version": "0.9.28-next.14",
|
|
4
4
|
"description": "Core engine: model router, constitutions, checkers, and pipeline phases for the Software Factory.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -54,10 +54,10 @@
|
|
|
54
54
|
"prepack": "node ../../scripts/pack-hygiene-cli.ts prepack"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@on-par/adr-kit": "0.9.28-next.
|
|
58
|
-
"@on-par/contracts": "0.9.28-next.
|
|
59
|
-
"@on-par/factory-config": "0.9.28-next.
|
|
60
|
-
"@on-par/repo-context": "0.9.28-next.
|
|
57
|
+
"@on-par/adr-kit": "0.9.28-next.14",
|
|
58
|
+
"@on-par/contracts": "0.9.28-next.14",
|
|
59
|
+
"@on-par/factory-config": "0.9.28-next.14",
|
|
60
|
+
"@on-par/repo-context": "0.9.28-next.14",
|
|
61
61
|
"@octokit/rest": "^22.0.0",
|
|
62
62
|
"execa": "^10.2.1",
|
|
63
63
|
"gray-matter": "^4.0.3",
|