@aipper/aiws 0.0.48 → 0.0.50
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/cli.js +30 -5
- package/dist/cli.js.map +1 -1
- package/dist/commands/change-finish.js +7 -0
- package/dist/commands/change-finish.js.map +1 -1
- package/dist/commands/change.js +24 -0
- package/dist/commands/change.js.map +1 -1
- package/dist/commands/doctor.d.ts +29 -0
- package/dist/commands/doctor.js +57 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.d.ts +1 -3
- package/dist/commands/init.js +7 -3
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/update.d.ts +0 -3
- package/dist/commands/update.js +11 -3
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/ws-deliver.js +2 -3
- package/dist/commands/ws-deliver.js.map +1 -1
- package/dist/commands/ws-finish.d.ts +7 -0
- package/dist/commands/ws-finish.js +19 -128
- package/dist/commands/ws-finish.js.map +1 -1
- package/dist/commands/ws-finish.test.d.ts +1 -0
- package/dist/commands/ws-finish.test.js +167 -0
- package/dist/commands/ws-finish.test.js.map +1 -0
- package/dist/lib/pi-force-policy.d.ts +66 -0
- package/dist/lib/pi-force-policy.js +187 -0
- package/dist/lib/pi-force-policy.js.map +1 -0
- package/dist/lib/pi-force-policy.test.d.ts +1 -0
- package/dist/lib/pi-force-policy.test.js +99 -0
- package/dist/lib/pi-force-policy.test.js.map +1 -0
- package/dist/lib/pi-plugins-doctor.d.ts +130 -0
- package/dist/lib/pi-plugins-doctor.js +537 -0
- package/dist/lib/pi-plugins-doctor.js.map +1 -0
- package/dist/lib/pi-plugins-doctor.test.d.ts +1 -0
- package/dist/lib/pi-plugins-doctor.test.js +137 -0
- package/dist/lib/pi-plugins-doctor.test.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type DoctorReport } from "../lib/pi-plugins-doctor.js";
|
|
2
|
+
export interface DoctorCommandOptions {
|
|
3
|
+
/** If true, run `pi install` for required packages only (user scope). */
|
|
4
|
+
installPiPlugins?: boolean;
|
|
5
|
+
/** When true, never non-zero solely for advisory (init/update warn mode still uses classify exit). */
|
|
6
|
+
warnOnly?: boolean;
|
|
7
|
+
homeDir?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface DoctorCommandResult {
|
|
10
|
+
report: DoctorReport;
|
|
11
|
+
text: string;
|
|
12
|
+
exitCode: number;
|
|
13
|
+
install?: {
|
|
14
|
+
attempted: string[];
|
|
15
|
+
results: Array<{
|
|
16
|
+
cmd: string;
|
|
17
|
+
code: number;
|
|
18
|
+
stderr: string;
|
|
19
|
+
}>;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* `aiws doctor` — detect Pi user-level plugins vs AIWS manifest; no silent install.
|
|
24
|
+
*/
|
|
25
|
+
export declare function doctorCommand(options?: DoctorCommandOptions): Promise<DoctorCommandResult>;
|
|
26
|
+
/** Print doctor as non-blocking warning (init --pi / update with .pi). */
|
|
27
|
+
export declare function printPiPluginsDoctorWarn(options?: {
|
|
28
|
+
homeDir?: string;
|
|
29
|
+
}): Promise<void>;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { formatDoctorReport, installRequiredPiPlugins, loadManifestFromSpec, runPiPluginsDoctor, } from "../lib/pi-plugins-doctor.js";
|
|
2
|
+
/**
|
|
3
|
+
* `aiws doctor` — detect Pi user-level plugins vs AIWS manifest; no silent install.
|
|
4
|
+
*/
|
|
5
|
+
export async function doctorCommand(options = {}) {
|
|
6
|
+
const { report, text } = await runPiPluginsDoctor({ homeDir: options.homeDir });
|
|
7
|
+
let install;
|
|
8
|
+
let installFailed = false;
|
|
9
|
+
if (options.installPiPlugins) {
|
|
10
|
+
const manifest = await loadManifestFromSpec();
|
|
11
|
+
install = await installRequiredPiPlugins({ manifest });
|
|
12
|
+
for (const r of install.results) {
|
|
13
|
+
if (r.code !== 0) {
|
|
14
|
+
installFailed = true;
|
|
15
|
+
console.error(`install failed: ${r.cmd}`);
|
|
16
|
+
if (r.stderr)
|
|
17
|
+
console.error(r.stderr.trim());
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
console.log(`✓ installed: ${r.cmd}`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
// re-run detect after install attempt for final report
|
|
24
|
+
const after = await runPiPluginsDoctor({ homeDir: options.homeDir });
|
|
25
|
+
const finalText = formatDoctorReport(after.report);
|
|
26
|
+
const exitCode = options.warnOnly
|
|
27
|
+
? 0
|
|
28
|
+
: installFailed || after.report.exitCode !== 0
|
|
29
|
+
? 1
|
|
30
|
+
: 0;
|
|
31
|
+
if (!options.warnOnly) {
|
|
32
|
+
console.log(finalText);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
console.log(finalText);
|
|
36
|
+
}
|
|
37
|
+
return { report: after.report, text: finalText, exitCode, install };
|
|
38
|
+
}
|
|
39
|
+
console.log(text);
|
|
40
|
+
const exitCode = options.warnOnly ? 0 : report.exitCode;
|
|
41
|
+
return { report, text, exitCode };
|
|
42
|
+
}
|
|
43
|
+
/** Print doctor as non-blocking warning (init --pi / update with .pi). */
|
|
44
|
+
export async function printPiPluginsDoctorWarn(options) {
|
|
45
|
+
try {
|
|
46
|
+
const { text } = await runPiPluginsDoctor({ homeDir: options?.homeDir });
|
|
47
|
+
console.log("");
|
|
48
|
+
console.log("── Pi plugins doctor (warn; does not fail this command) ──");
|
|
49
|
+
console.log(text);
|
|
50
|
+
console.log("─────────────────────────────────────────────────────────");
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
console.log("");
|
|
54
|
+
console.log(`warn: Pi plugins doctor skipped: ${e instanceof Error ? e.message : String(e)}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @param {{ targetPath: string, templateId: string, pi?: boolean, dryRun?: boolean }} options
|
|
3
|
-
*/
|
|
4
1
|
export declare function initCommand(options: {
|
|
5
2
|
targetPath: string;
|
|
6
3
|
templateId: string;
|
|
7
4
|
pi?: boolean;
|
|
8
5
|
dryRun?: boolean;
|
|
6
|
+
installPiPlugins?: boolean;
|
|
9
7
|
}): Promise<void>;
|
package/dist/commands/init.js
CHANGED
|
@@ -8,9 +8,7 @@ import { resolveWorkspaceRoot } from "../workspace.js";
|
|
|
8
8
|
import { joinRel, normalizeRel } from "../path-utils.js";
|
|
9
9
|
import { pathExists } from "../fs.js";
|
|
10
10
|
import { BackupSession } from "../backup.js";
|
|
11
|
-
|
|
12
|
-
* @param {{ targetPath: string, templateId: string, pi?: boolean, dryRun?: boolean }} options
|
|
13
|
-
*/
|
|
11
|
+
import { doctorCommand, printPiPluginsDoctorWarn } from "./doctor.js";
|
|
14
12
|
export async function initCommand(options) {
|
|
15
13
|
const workspaceRoot = await resolveWorkspaceRoot(options.targetPath, { create: true });
|
|
16
14
|
const tpl = await loadTemplate(options.templateId);
|
|
@@ -94,6 +92,12 @@ export async function initCommand(options) {
|
|
|
94
92
|
// --pi: generate Pi agent integration skeleton files
|
|
95
93
|
if (options.pi) {
|
|
96
94
|
await generatePiSkeleton(workspaceRoot, options.dryRun ?? false);
|
|
95
|
+
if (options.installPiPlugins) {
|
|
96
|
+
await doctorCommand({ installPiPlugins: true, warnOnly: true });
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
await printPiPluginsDoctorWarn();
|
|
100
|
+
}
|
|
97
101
|
}
|
|
98
102
|
}
|
|
99
103
|
// ── Pi agent skeleton ────────────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AACpH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/update.js
CHANGED
|
@@ -12,6 +12,7 @@ import { normalizeRel, joinRel } from "../path-utils.js";
|
|
|
12
12
|
import { copyTemplateFileToWorkspace, applyManagedBlocksFromTemplate } from "../template.js";
|
|
13
13
|
import { detectLegacyWorkspaceTemplateId, writeWorkspaceManifest } from "../manifest.js";
|
|
14
14
|
import { DIR_MIGRATION_MAP, FILE_MIGRATION_MAP } from "../aiws-paths.js";
|
|
15
|
+
import { doctorCommand, printPiPluginsDoctorWarn } from "./doctor.js";
|
|
15
16
|
/**
|
|
16
17
|
* Rename a file or directory, falling back to copy+delete when renaming
|
|
17
18
|
* across different filesystems (EXDEV).
|
|
@@ -67,9 +68,6 @@ async function migrateOldLayout(workspaceRoot, backup) {
|
|
|
67
68
|
}
|
|
68
69
|
return count;
|
|
69
70
|
}
|
|
70
|
-
/**
|
|
71
|
-
* @param {{ targetPath: string }} options
|
|
72
|
-
*/
|
|
73
71
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- CLI/DI loose typing
|
|
74
72
|
export async function updateCommand(options) {
|
|
75
73
|
const workspaceRoot = await resolveWorkspaceRoot(options.targetPath, { create: false });
|
|
@@ -205,5 +203,15 @@ export async function updateCommand(options) {
|
|
|
205
203
|
console.log(` migrated legacy AIWS workspace: generated .aiws/manifest.json for template=${legacyTemplateId}`);
|
|
206
204
|
}
|
|
207
205
|
console.log(`✓ aiws update: ${workspaceRoot}`);
|
|
206
|
+
const piDir = path.join(workspaceRoot, ".pi");
|
|
207
|
+
const shouldDoctorPi = options.pi === true || (await pathExists(piDir));
|
|
208
|
+
if (shouldDoctorPi) {
|
|
209
|
+
if (options.installPiPlugins === true) {
|
|
210
|
+
await doctorCommand({ installPiPlugins: true, warnOnly: true });
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
await printPiPluginsDoctorWarn();
|
|
214
|
+
}
|
|
215
|
+
}
|
|
208
216
|
}
|
|
209
217
|
//# sourceMappingURL=update.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,+BAA+B,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { execSync } from "node:child_process";
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
3
|
import { UserError } from "../errors.js";
|
|
4
|
+
import { wsFinishCommand } from "./ws-finish.js";
|
|
4
5
|
/**
|
|
5
6
|
* aiws deliver — submodule + superproject commit, then finish
|
|
6
7
|
* @param {{ cwd?: string, message?: string, changeId?: string }} opts
|
|
@@ -47,9 +48,7 @@ export async function wsDeliverCommand({ cwd = ".", message, changeId } = {}) {
|
|
|
47
48
|
else {
|
|
48
49
|
console.log("info: superproject has no changes");
|
|
49
50
|
}
|
|
50
|
-
|
|
51
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- CLI/DI loose typing
|
|
52
|
-
await import("./ws-finish.js").then((m) => m.wsFinishCommand({ cwd, changeId, push: true }));
|
|
51
|
+
await wsFinishCommand({ cwd, changeId, push: true });
|
|
53
52
|
console.log("ok: deliver complete");
|
|
54
53
|
}
|
|
55
54
|
function detectChangeBranch(cwd) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-deliver.js","sourceRoot":"","sources":["../../src/commands/ws-deliver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ws-deliver.js","sourceRoot":"","sources":["../../src/commands/ws-deliver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* aiws finish — ff-merge + push + archive
|
|
3
|
+
*
|
|
4
|
+
* Thin wrapper: checks ws-finish-specific pre-conditions, then delegates
|
|
5
|
+
* the actual merge/push/archive+commit to changeFinishCommand (canonical).
|
|
6
|
+
*
|
|
7
|
+
* Delegation note: changeFinishCommand resolves gitRoot from process.cwd(),
|
|
8
|
+
* so callers MUST ensure process.cwd() is the repo root (cli.ts already does).
|
|
9
|
+
*
|
|
3
10
|
* @param {{ cwd?: string, changeId?: string, into?: string, push?: boolean, remote?: string }} opts
|
|
4
11
|
*/
|
|
5
12
|
export declare function wsFinishCommand({ cwd, changeId, into, push, remote }?: {
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import { execSync } from "node:child_process";
|
|
2
|
-
import { existsSync
|
|
2
|
+
import { existsSync } from "node:fs";
|
|
3
3
|
import { join } from "node:path";
|
|
4
4
|
import { UserError } from "../errors.js";
|
|
5
|
-
import { validateChangeArtifacts } from "./change.js";
|
|
5
|
+
import { validateChangeArtifacts, changeFinishCommand } from "./change.js";
|
|
6
6
|
/**
|
|
7
7
|
* aiws finish — ff-merge + push + archive
|
|
8
|
+
*
|
|
9
|
+
* Thin wrapper: checks ws-finish-specific pre-conditions, then delegates
|
|
10
|
+
* the actual merge/push/archive+commit to changeFinishCommand (canonical).
|
|
11
|
+
*
|
|
12
|
+
* Delegation note: changeFinishCommand resolves gitRoot from process.cwd(),
|
|
13
|
+
* so callers MUST ensure process.cwd() is the repo root (cli.ts already does).
|
|
14
|
+
*
|
|
8
15
|
* @param {{ cwd?: string, changeId?: string, into?: string, push?: boolean, remote?: string }} opts
|
|
9
16
|
*/
|
|
10
17
|
export async function wsFinishCommand({ cwd = ".", changeId, into, push = false, remote = "origin" } = {}) {
|
|
@@ -15,12 +22,11 @@ export async function wsFinishCommand({ cwd = ".", changeId, into, push = false,
|
|
|
15
22
|
if (!changeId) {
|
|
16
23
|
throw new UserError("Could not detect change ID. Provide as argument or be on a change branch.", { exitCode: 2 });
|
|
17
24
|
}
|
|
18
|
-
const targetBranch = into || "main";
|
|
19
25
|
const missingReviews = missingReviewArtifacts(cwd, changeId);
|
|
20
26
|
if (missingReviews.length > 0) {
|
|
21
27
|
throw new UserError(`Missing review gates for ${changeId}: ${missingReviews.join(", ")}`, { exitCode: 1 });
|
|
22
28
|
}
|
|
23
|
-
// Validate before complete
|
|
29
|
+
// Validate before complete (stricter gate than changeFinishCommand's own)
|
|
24
30
|
try {
|
|
25
31
|
const result = await validateChangeArtifacts(cwd, changeId, { strict: true, checkEvidence: true });
|
|
26
32
|
if (!result.ok) {
|
|
@@ -38,111 +44,15 @@ export async function wsFinishCommand({ cwd = ".", changeId, into, push = false,
|
|
|
38
44
|
exitCode: 1,
|
|
39
45
|
});
|
|
40
46
|
}
|
|
41
|
-
//
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
console.log("info: no change branch found, using current branch");
|
|
51
|
-
}
|
|
52
|
-
// Re-stamp managed blocks so pushed manifest reflects current content after merge.
|
|
53
|
-
try {
|
|
54
|
-
const { stampManagedBlocks } = await import("../manifest.js");
|
|
55
|
-
await stampManagedBlocks(cwd);
|
|
56
|
-
let manifestDirty = false;
|
|
57
|
-
try {
|
|
58
|
-
execSync("git diff --quiet -- .aiws/manifest.json", { cwd });
|
|
59
|
-
}
|
|
60
|
-
catch {
|
|
61
|
-
manifestDirty = true;
|
|
62
|
-
}
|
|
63
|
-
if (manifestDirty) {
|
|
64
|
-
execSync("git add .aiws/manifest.json && git commit -m 'stamp: re-stamp managed blocks after merge'", { cwd, stdio: "inherit" });
|
|
65
|
-
console.log("stamp: re-stamped managed blocks");
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
catch (e) {
|
|
69
|
-
console.warn(`stamp: managed block re-stamp skipped (non-blocking): ${e instanceof Error ? e.message : String(e)}`);
|
|
70
|
-
}
|
|
71
|
-
// Push
|
|
72
|
-
if (push) {
|
|
73
|
-
const currentBranch = execSync("git branch --show-current", { cwd, encoding: "utf8" }).trim();
|
|
74
|
-
// Push submodules first
|
|
75
|
-
if (existsSync(`${cwd}/.gitmodules`)) {
|
|
76
|
-
const targetsFile = `.aiws/changes/${changeId}/submodules.targets`;
|
|
77
|
-
if (existsSync(targetsFile)) {
|
|
78
|
-
const content = execSync(`cat "${targetsFile}"`, { cwd, encoding: "utf8" });
|
|
79
|
-
for (const line of content.split("\n")) {
|
|
80
|
-
const t = line.trim();
|
|
81
|
-
if (!t || t.startsWith("#"))
|
|
82
|
-
continue;
|
|
83
|
-
const [subPath, targetBranch] = t.split(/\s+/);
|
|
84
|
-
if (subPath && targetBranch) {
|
|
85
|
-
console.log(`info: pushing submodule ${subPath}...`);
|
|
86
|
-
execSync(`git push ${remote} ${targetBranch}`, { cwd: `${cwd}/${subPath}`, stdio: "inherit" });
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
execSync(`git push ${remote} ${currentBranch}`, { cwd, stdio: "inherit" });
|
|
92
|
-
}
|
|
93
|
-
const promotionCandidates = collectSpecPromotionCandidates(cwd, changeId);
|
|
94
|
-
// Archive
|
|
95
|
-
try {
|
|
96
|
-
execSync(`npx -y @aipper/aiws change archive ${changeId} --force 2>/dev/null || aiws change archive ${changeId} --force 2>/dev/null || true`, { cwd, stdio: "inherit" });
|
|
97
|
-
}
|
|
98
|
-
catch { /* ignore archive failure — main flow done */ }
|
|
99
|
-
// Session journal write
|
|
100
|
-
try {
|
|
101
|
-
const journalDir = join(cwd, ".aiws", "journal");
|
|
102
|
-
mkdirSync(journalDir, { recursive: true });
|
|
103
|
-
const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
104
|
-
const journalEntry = [
|
|
105
|
-
"---",
|
|
106
|
-
`timestamp: ${new Date().toISOString()}`,
|
|
107
|
-
`changeId: ${changeId}`,
|
|
108
|
-
`phase: finished`,
|
|
109
|
-
`action: finish`,
|
|
110
|
-
`targetBranch: ${targetBranch}`,
|
|
111
|
-
`pushed: ${push}`,
|
|
112
|
-
"---",
|
|
113
|
-
"",
|
|
114
|
-
`## Finish Summary`,
|
|
115
|
-
"",
|
|
116
|
-
`Change **${changeId}** completed via \`aiws ws-finish\`.`,
|
|
117
|
-
`- Merged: change/${changeId} → ${targetBranch}`,
|
|
118
|
-
push ? `- Pushed: yes` : `- Pushed: no`,
|
|
119
|
-
`- Archived: yes`,
|
|
120
|
-
"",
|
|
121
|
-
`### Spec Promotion Candidates`,
|
|
122
|
-
"",
|
|
123
|
-
].join("\n");
|
|
124
|
-
writeFileSync(join(journalDir, `${timestamp}-finish-${changeId}.md`), journalEntry, "utf8");
|
|
125
|
-
console.log(`info: journal written to .aiws/journal/${timestamp}-finish-${changeId}.md`);
|
|
126
|
-
}
|
|
127
|
-
catch (e) {
|
|
128
|
-
console.log(`warn: journal write failed (non-blocking): ${e instanceof Error ? e.message : String(e)}`);
|
|
129
|
-
}
|
|
130
|
-
// Spec promotion: scan change artifacts for candidate updates
|
|
131
|
-
try {
|
|
132
|
-
if (promotionCandidates.length > 0) {
|
|
133
|
-
console.log("\n---");
|
|
134
|
-
console.log("info: Spec promotion candidates detected:");
|
|
135
|
-
for (const c of promotionCandidates) {
|
|
136
|
-
console.log(` - ${c.file} (${c.source})`);
|
|
137
|
-
}
|
|
138
|
-
console.log("info: Review and manually run aiws update if managed block updates are needed.");
|
|
139
|
-
console.log("---\n");
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
catch {
|
|
143
|
-
// spec promotion scan is non-blocking
|
|
144
|
-
}
|
|
145
|
-
console.log(`ok: finish complete. ${push ? "Pushed and " : ""}Archived.`);
|
|
47
|
+
// Delegate merge/push/archive+commit/journal to canonical changeFinishCommand
|
|
48
|
+
// changeFinishCommand resolves gitRoot from process.cwd() — works because
|
|
49
|
+
// cli.ts always calls with cwd="." and process.cwd() == repo root.
|
|
50
|
+
await changeFinishCommand({
|
|
51
|
+
changeId,
|
|
52
|
+
into,
|
|
53
|
+
push,
|
|
54
|
+
remote,
|
|
55
|
+
});
|
|
146
56
|
}
|
|
147
57
|
function checkClean(cwd) {
|
|
148
58
|
const out = execSync("git status --porcelain", { cwd, encoding: "utf8" }).trim();
|
|
@@ -164,23 +74,4 @@ function missingReviewArtifacts(cwd, changeId) {
|
|
|
164
74
|
missing.push("quality-review.md");
|
|
165
75
|
return missing;
|
|
166
76
|
}
|
|
167
|
-
function collectSpecPromotionCandidates(cwd, changeId) {
|
|
168
|
-
const candidates = [];
|
|
169
|
-
const changeDir = join(cwd, ".aiws", "changes", changeId);
|
|
170
|
-
const proposalPath = join(changeDir, "proposal.md");
|
|
171
|
-
if (existsSync(proposalPath)) {
|
|
172
|
-
const proposal = readFileSync(proposalPath, "utf8");
|
|
173
|
-
if (proposal.includes("Update:") || proposal.includes("Spec:") || proposal.includes("managed block")) {
|
|
174
|
-
candidates.push({ file: "proposal.md", source: "proposal.md markers" });
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
const tasksPath = join(changeDir, "tasks.md");
|
|
178
|
-
if (existsSync(tasksPath)) {
|
|
179
|
-
const tasks = readFileSync(tasksPath, "utf8");
|
|
180
|
-
if (tasks.includes("AGENTS.md") || tasks.includes("AI_PROJECT.md") || tasks.includes("REQUIREMENTS.md") || tasks.includes("AI_WORKSPACE.md")) {
|
|
181
|
-
candidates.push({ file: "tasks.md", source: "task spec references" });
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
return candidates;
|
|
185
|
-
}
|
|
186
77
|
//# sourceMappingURL=ws-finish.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ws-finish.js","sourceRoot":"","sources":["../../src/commands/ws-finish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"ws-finish.js","sourceRoot":"","sources":["../../src/commands/ws-finish.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|