@tacuchi/agent-workflow-cli 5.17.0 → 5.18.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/dist/application/hook-git-commit-advisor.d.ts +17 -0
- package/dist/application/hook-git-commit-advisor.d.ts.map +1 -0
- package/dist/application/hook-git-commit-advisor.js +106 -0
- package/dist/application/hook-git-commit-advisor.js.map +1 -0
- package/dist/cli/commands/hook.d.ts.map +1 -1
- package/dist/cli/commands/hook.js +15 -2
- package/dist/cli/commands/hook.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { EnvPort } from "../ports/env.js";
|
|
2
|
+
import type { FileSystemPort } from "../ports/file-system.js";
|
|
3
|
+
import type { PathsService } from "./paths-service.js";
|
|
4
|
+
export interface GitCommitAdvisorResult {
|
|
5
|
+
exitCode: 0;
|
|
6
|
+
stderr?: string;
|
|
7
|
+
}
|
|
8
|
+
export interface GitCommitAdvisorInput {
|
|
9
|
+
stdin: string;
|
|
10
|
+
fs: FileSystemPort;
|
|
11
|
+
env: EnvPort;
|
|
12
|
+
paths: PathsService;
|
|
13
|
+
/** Display name used as message prefix (e.g., "acme-core", "agent-workflow"). */
|
|
14
|
+
displayName?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function runGitCommitAdvisor(input: GitCommitAdvisorInput): Promise<GitCommitAdvisorResult>;
|
|
17
|
+
//# sourceMappingURL=hook-git-commit-advisor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-git-commit-advisor.d.ts","sourceRoot":"","sources":["../../src/application/hook-git-commit-advisor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAQvD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,CAAC,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,cAAc,CAAC;IACnB,GAAG,EAAE,OAAO,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;IACpB,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,qBAAqB,GAC3B,OAAO,CAAC,sBAAsB,CAAC,CAsCjC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { join } from "node:path";
|
|
2
|
+
import { parseProjectBlock } from "./parsers/project-block.js";
|
|
3
|
+
const REFERENCE_DOC = "skills/session/references/commits-policy.md";
|
|
4
|
+
const GIT_COMMIT_RE = /\bgit\s+commit\b/;
|
|
5
|
+
const COMMIT_MSG_RE = /\s-m\s+(?:"((?:[^"\\]|\\.)*)"|'((?:[^'\\]|\\.)*)')/;
|
|
6
|
+
const SESSION_TAG_RE = /session\d{3}/i;
|
|
7
|
+
const SESSION_CODE_FROM_FOLDER_RE = /^session(\d{3})/;
|
|
8
|
+
export async function runGitCommitAdvisor(input) {
|
|
9
|
+
if ((input.env.get("AW_COMMIT_ADVISOR") ?? "").toLowerCase() === "off") {
|
|
10
|
+
return { exitCode: 0 };
|
|
11
|
+
}
|
|
12
|
+
const payload = parsePayload(input.stdin);
|
|
13
|
+
if (!payload)
|
|
14
|
+
return { exitCode: 0 };
|
|
15
|
+
const toolName = typeof payload.tool_name === "string" ? payload.tool_name : "";
|
|
16
|
+
if (toolName !== "Bash")
|
|
17
|
+
return { exitCode: 0 };
|
|
18
|
+
const command = extractCommand(payload.tool_input);
|
|
19
|
+
if (!command || !GIT_COMMIT_RE.test(command))
|
|
20
|
+
return { exitCode: 0 };
|
|
21
|
+
const message = extractCommitMessage(command);
|
|
22
|
+
if (message === null)
|
|
23
|
+
return { exitCode: 0 };
|
|
24
|
+
const block = await readProjectBlock(input.fs, input.env.cwd(), input.paths);
|
|
25
|
+
if (!block)
|
|
26
|
+
return { exitCode: 0 };
|
|
27
|
+
const activeSession = block.sessions[0];
|
|
28
|
+
if (!activeSession)
|
|
29
|
+
return { exitCode: 0 };
|
|
30
|
+
const sessionCode = extractSessionCode(activeSession.folder);
|
|
31
|
+
if (!sessionCode)
|
|
32
|
+
return { exitCode: 0 };
|
|
33
|
+
if (SESSION_TAG_RE.test(message))
|
|
34
|
+
return { exitCode: 0 };
|
|
35
|
+
const display = input.displayName ?? "agent-workflow";
|
|
36
|
+
return {
|
|
37
|
+
exitCode: 0,
|
|
38
|
+
stderr: formatAdvisorMessage({
|
|
39
|
+
display,
|
|
40
|
+
sessionCode,
|
|
41
|
+
message,
|
|
42
|
+
sessionFolder: activeSession.folder,
|
|
43
|
+
}),
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function parsePayload(stdin) {
|
|
47
|
+
const raw = stdin.trim();
|
|
48
|
+
if (raw.length === 0)
|
|
49
|
+
return null;
|
|
50
|
+
try {
|
|
51
|
+
const parsed = JSON.parse(raw);
|
|
52
|
+
return typeof parsed === "object" && parsed !== null
|
|
53
|
+
? parsed
|
|
54
|
+
: null;
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
function extractCommand(toolInput) {
|
|
61
|
+
if (typeof toolInput !== "object" || toolInput === null)
|
|
62
|
+
return null;
|
|
63
|
+
const obj = toolInput;
|
|
64
|
+
const cmd = obj.command;
|
|
65
|
+
return typeof cmd === "string" && cmd.length > 0 ? cmd : null;
|
|
66
|
+
}
|
|
67
|
+
function extractCommitMessage(command) {
|
|
68
|
+
const m = command.match(COMMIT_MSG_RE);
|
|
69
|
+
if (!m)
|
|
70
|
+
return null;
|
|
71
|
+
const msg = m[1] ?? m[2];
|
|
72
|
+
if (msg === undefined)
|
|
73
|
+
return null;
|
|
74
|
+
return msg.replace(/\\(.)/g, "$1");
|
|
75
|
+
}
|
|
76
|
+
async function readProjectBlock(fs, cwd, paths) {
|
|
77
|
+
for (const file of [join(cwd, "CLAUDE.md"), join(cwd, "AGENTS.md")]) {
|
|
78
|
+
if (!(await fs.exists(file)))
|
|
79
|
+
continue;
|
|
80
|
+
const block = parseProjectBlock(await fs.readText(file), paths.blockMarkers());
|
|
81
|
+
if (block)
|
|
82
|
+
return block;
|
|
83
|
+
}
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
function extractSessionCode(folder) {
|
|
87
|
+
const m = folder.match(SESSION_CODE_FROM_FOLDER_RE);
|
|
88
|
+
return m?.[1] ?? null;
|
|
89
|
+
}
|
|
90
|
+
function formatAdvisorMessage(info) {
|
|
91
|
+
const truncMsg = info.message.length > 60 ? `${info.message.slice(0, 60)}...` : info.message;
|
|
92
|
+
return `${[
|
|
93
|
+
`[${info.display} git-commit-advisor] Sesión activa sin tag en commit message.`,
|
|
94
|
+
` Sesión: session${info.sessionCode} (${info.sessionFolder})`,
|
|
95
|
+
` Mensaje: "${truncMsg}"`,
|
|
96
|
+
` Esperado: incluir tag \`session${info.sessionCode}\` (ej. al final: "(session${info.sessionCode})")`,
|
|
97
|
+
"",
|
|
98
|
+
"Este advisor NO bloquea — el commit procederá. Sugerencia: ajustar el mensaje",
|
|
99
|
+
"para incluir el tag de sesión y mantener trazabilidad con qtc:commits-policy.",
|
|
100
|
+
"",
|
|
101
|
+
"Bypass: AW_COMMIT_ADVISOR=off",
|
|
102
|
+
`Referencia: ${REFERENCE_DOC}`,
|
|
103
|
+
"",
|
|
104
|
+
].join("\n")}\n`;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=hook-git-commit-advisor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook-git-commit-advisor.js","sourceRoot":"","sources":["../../src/application/hook-git-commit-advisor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/hook.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/hook.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAYjD,eAAO,MAAM,WAAW,EAAE,UAoDzB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { runBranchCheckHook } from "../../application/hook-branch-check.js";
|
|
2
|
+
import { runGitCommitAdvisor } from "../../application/hook-git-commit-advisor.js";
|
|
2
3
|
import { runSqlMutationGuard } from "../../application/hook-sql-mutation-guard.js";
|
|
3
4
|
import { writeStderr } from "../render.js";
|
|
4
5
|
async function readStdin() {
|
|
@@ -10,7 +11,7 @@ async function readStdin() {
|
|
|
10
11
|
}
|
|
11
12
|
export const hookCommand = {
|
|
12
13
|
name: "hook",
|
|
13
|
-
describe: "PreToolUse hook target. Subcommands: branch-check, sql-mutation-guard.",
|
|
14
|
+
describe: "PreToolUse hook target. Subcommands: branch-check, sql-mutation-guard, git-commit-advisor.",
|
|
14
15
|
async execute(args, ctx) {
|
|
15
16
|
const subcommand = args.rest[0];
|
|
16
17
|
if (!subcommand) {
|
|
@@ -18,7 +19,7 @@ export const hookCommand = {
|
|
|
18
19
|
ok: false,
|
|
19
20
|
error: {
|
|
20
21
|
code: "INVALID_INPUT",
|
|
21
|
-
message: "hook requires a subcommand: branch-check | sql-mutation-guard",
|
|
22
|
+
message: "hook requires a subcommand: branch-check | sql-mutation-guard | git-commit-advisor",
|
|
22
23
|
},
|
|
23
24
|
exitCode: 1,
|
|
24
25
|
};
|
|
@@ -43,6 +44,18 @@ export const hookCommand = {
|
|
|
43
44
|
writeStderr(result.stderr);
|
|
44
45
|
return { ok: true, data: undefined, exitCode: result.exitCode };
|
|
45
46
|
}
|
|
47
|
+
if (subcommand === "git-commit-advisor") {
|
|
48
|
+
const result = await runGitCommitAdvisor({
|
|
49
|
+
stdin,
|
|
50
|
+
fs: ctx.fs,
|
|
51
|
+
env: ctx.env,
|
|
52
|
+
paths: ctx.paths,
|
|
53
|
+
displayName: ctx.runtime.displayName ?? ctx.namespace.namespace,
|
|
54
|
+
});
|
|
55
|
+
if (result.stderr)
|
|
56
|
+
writeStderr(result.stderr);
|
|
57
|
+
return { ok: true, data: undefined, exitCode: result.exitCode };
|
|
58
|
+
}
|
|
46
59
|
return {
|
|
47
60
|
ok: false,
|
|
48
61
|
error: { code: "INVALID_INPUT", message: `hook: unknown subcommand '${subcommand}'` },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../src/cli/commands/hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAInF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,KAAK,UAAU,SAAS;IACtB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAe;IACrC,IAAI,EAAE,MAAM;IACZ,QAAQ,
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../../src/cli/commands/hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAInF,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG3C,KAAK,UAAU,SAAS;IACtB,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,IAAI,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAe;IACrC,IAAI,EAAE,MAAM;IACZ,QAAQ,EACN,4FAA4F;IAC9F,KAAK,CAAC,OAAO,CAAC,IAAgB,EAAE,GAAe;QAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE;oBACL,IAAI,EAAE,eAAe;oBACrB,OAAO,EACL,oFAAoF;iBACvF;gBACD,QAAQ,EAAE,CAAC;aACZ,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,SAAS,EAAE,CAAC;QAChC,IAAI,UAAU,KAAK,cAAc,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,KAAK;gBACL,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC,SAAS,CAAC,SAAS;aAChE,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,MAAM;gBAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClE,CAAC;QACD,IAAI,UAAU,KAAK,oBAAoB,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAClF,IAAI,MAAM,CAAC,MAAM;gBAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClE,CAAC;QACD,IAAI,UAAU,KAAK,oBAAoB,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC;gBACvC,KAAK;gBACL,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC,SAAS,CAAC,SAAS;aAChE,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,MAAM;gBAAE,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QAClE,CAAC;QACD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,6BAA6B,UAAU,GAAG,EAAE;YACrF,QAAQ,EAAE,CAAC;SACZ,CAAC;IACJ,CAAC;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tacuchi/agent-workflow-cli",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.18.0",
|
|
4
4
|
"description": "Agnostic runtime CLI for session-lifecycle workflows. Auto-detects namespace from any `.<ns>/sessions/` dir in CWD; falls back to 'agent-workflow'. Plugins can reclaim a fixed namespace via SessionStart hook (writes to `~/.config/agent-workflow/namespace`). Bundles the universal `agent-workflow` skill in the tarball — `self install-skill` copies it from the bundled location to `~/.claude/skills/agent-workflow/` and `~/.codex/skills/agent-workflow/` (dual-target by default; opt-out with `--target claude|codex`). Override the source with `--from <local-path>` for skill development.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|