@tacuchi/agent-workflow-cli 22.2.0 → 22.3.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/self/codex-plugin.js +87 -0
- package/dist/application/self/codex-plugin.js.map +1 -0
- package/dist/application/self/hooks-dialect.js +18 -0
- package/dist/application/self/hooks-dialect.js.map +1 -0
- package/dist/application/self/hooks-json.js +226 -0
- package/dist/application/self/hooks-json.js.map +1 -0
- package/dist/application/self/hooks-toml.js +4 -11
- package/dist/application/self/hooks-toml.js.map +1 -1
- package/dist/application/self/host-states.js +64 -3
- package/dist/application/self/host-states.js.map +1 -1
- package/dist/application/self/install-hooks.js +291 -37
- package/dist/application/self/install-hooks.js.map +1 -1
- package/dist/application/self/install-skill.js +7 -2
- package/dist/application/self/install-skill.js.map +1 -1
- package/dist/application/self/opencode-plugin.js +167 -0
- package/dist/application/self/opencode-plugin.js.map +1 -0
- package/dist/application/self/uninstall.js +147 -1
- package/dist/application/self/uninstall.js.map +1 -1
- package/dist/cli/tui/app.js +1 -1
- package/dist/cli/tui/app.js.map +1 -1
- package/dist/cli/tui/components/host-admin-section.js +53 -21
- package/dist/cli/tui/components/host-admin-section.js.map +1 -1
- package/dist/cli/tui/tabs/mcp-tab.js +20 -5
- package/dist/cli/tui/tabs/mcp-tab.js.map +1 -1
- package/dist/cli/tui/tabs/workflow-tab.js +2 -2
- package/dist/cli/tui/tabs/workflow-tab.js.map +1 -1
- package/dist/domain/harnesses.js +166 -10
- package/dist/domain/harnesses.js.map +1 -1
- package/package.json +1 -1
- package/skills/w/harness/HARNESS.md +10 -6
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
// Codex's OTHER hook route: a plugin bundle instead of `~/.codex/hooks.json`.
|
|
2
|
+
//
|
|
3
|
+
// Writing codex's user-level hooks file does not arm it — every new or changed
|
|
4
|
+
// hook needs an interactive human review, persisted as a `trusted_hash`. Hooks
|
|
5
|
+
// that ship INSIDE a plugin skip that review ("Managed hooks are always on"),
|
|
6
|
+
// which is why this route exists at all.
|
|
7
|
+
//
|
|
8
|
+
// What the checkout can do, and what it deliberately cannot:
|
|
9
|
+
//
|
|
10
|
+
// · it CAN build the bundle — a directory with `.codex-plugin/plugin.json` whose
|
|
11
|
+
// `hooks` field points at a `hooks.json` in the same Claude-shaped dialect
|
|
12
|
+
// codex already reads (verified against codex-cli 0.147.0: its plugin
|
|
13
|
+
// validator's required fields, and its scaffold's own `"hooks": "./hooks.json"`);
|
|
14
|
+
// · it CANNOT install it. A codex plugin is installed THROUGH A MARKETPLACE
|
|
15
|
+
// (`codex plugin marketplace add` then `codex plugin install`), a step that is
|
|
16
|
+
// the person's to run in their own host. So this generates and reports; it
|
|
17
|
+
// never says the hooks are armed, and it never writes a trust hash — forging
|
|
18
|
+
// one would forge somebody's security decision.
|
|
19
|
+
/** The plugin's name, and the marker that says a bundle on disk is ours. */
|
|
20
|
+
export const CODEX_PLUGIN_NAME = "agent-workflow";
|
|
21
|
+
/** Where the bundle is generated, relative to home. */
|
|
22
|
+
export const CODEX_PLUGIN_DIR = [".agent-workflow", "codex-plugin"];
|
|
23
|
+
/** `interface.category` — one of the values codex's validator accepts. */
|
|
24
|
+
const CATEGORY = "Productivity";
|
|
25
|
+
/**
|
|
26
|
+
* The bundle's files, built from the same template every other host adapts.
|
|
27
|
+
*
|
|
28
|
+
* Codex's event enum covers all five template events and its handlers admit
|
|
29
|
+
* `command` AND `prompt`, so the hooks document is the template verbatim — this
|
|
30
|
+
* is the one host where nothing is lost in translation, and inventing a
|
|
31
|
+
* transform would only add a place for the two to disagree.
|
|
32
|
+
*/
|
|
33
|
+
export function buildCodexPluginBundle(template, version) {
|
|
34
|
+
const descriptor = {
|
|
35
|
+
name: CODEX_PLUGIN_NAME,
|
|
36
|
+
version: semverOrZero(version),
|
|
37
|
+
description: "Workline hooks for Codex, generated by the agent-workflow CLI",
|
|
38
|
+
author: { name: CODEX_PLUGIN_NAME },
|
|
39
|
+
hooks: "./hooks.json",
|
|
40
|
+
interface: {
|
|
41
|
+
displayName: "Workline",
|
|
42
|
+
shortDescription: "Workline's branch, SQL and commit guards inside Codex.",
|
|
43
|
+
longDescription: "Ships the agent-workflow hook set as plugin-bundled hooks, so the guards run without a per-hook trust review.",
|
|
44
|
+
developerName: CODEX_PLUGIN_NAME,
|
|
45
|
+
category: CATEGORY,
|
|
46
|
+
capabilities: [],
|
|
47
|
+
defaultPrompt: "Run my Workline flow.",
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
return {
|
|
51
|
+
files: {
|
|
52
|
+
".codex-plugin/plugin.json": `${JSON.stringify(descriptor, null, 2)}\n`,
|
|
53
|
+
"hooks.json": `${JSON.stringify(template, null, 2)}\n`,
|
|
54
|
+
},
|
|
55
|
+
install_commands: [
|
|
56
|
+
"codex plugin marketplace add <bundle path>",
|
|
57
|
+
`codex plugin install ${CODEX_PLUGIN_NAME}`,
|
|
58
|
+
],
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* `version` must be strict semver or codex's validator rejects the plugin.
|
|
63
|
+
*
|
|
64
|
+
* A version this CLI could not read comes back as `unknown`, and shipping that
|
|
65
|
+
* string would produce a bundle nobody can install — with an error about the
|
|
66
|
+
* version rather than about the read that failed.
|
|
67
|
+
*/
|
|
68
|
+
function semverOrZero(version) {
|
|
69
|
+
return /^\d+\.\d+\.\d+(?:[-+].*)?$/.test(version) ? version : "0.0.0";
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* True when the bundle at this path is the one WE generated.
|
|
73
|
+
*
|
|
74
|
+
* Read from the descriptor's `name`, never from the path: a directory the person
|
|
75
|
+
* put there themselves is not ours to delete because it sits where we would have
|
|
76
|
+
* written.
|
|
77
|
+
*/
|
|
78
|
+
export function isOurCodexPlugin(descriptorText) {
|
|
79
|
+
try {
|
|
80
|
+
const parsed = JSON.parse(descriptorText);
|
|
81
|
+
return parsed.name === CODEX_PLUGIN_NAME;
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=codex-plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-plugin.js","sourceRoot":"","sources":["../../../src/application/self/codex-plugin.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,8EAA8E;AAC9E,yCAAyC;AACzC,EAAE;AACF,6DAA6D;AAC7D,EAAE;AACF,kFAAkF;AAClF,8EAA8E;AAC9E,yEAAyE;AACzE,qFAAqF;AACrF,6EAA6E;AAC7E,kFAAkF;AAClF,8EAA8E;AAC9E,gFAAgF;AAChF,mDAAmD;AAInD,4EAA4E;AAC5E,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAElD,uDAAuD;AACvD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,iBAAiB,EAAE,cAAc,CAAU,CAAC;AAE7E,0EAA0E;AAC1E,MAAM,QAAQ,GAAG,cAAc,CAAC;AAShC;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAuB,EACvB,OAAe;IAEf,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC;QAC9B,WAAW,EAAE,+DAA+D;QAC5E,MAAM,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE;QACnC,KAAK,EAAE,cAAc;QACrB,SAAS,EAAE;YACT,WAAW,EAAE,UAAU;YACvB,gBAAgB,EAAE,wDAAwD;YAC1E,eAAe,EACb,+GAA+G;YACjH,aAAa,EAAE,iBAAiB;YAChC,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,EAAE;YAChB,aAAa,EAAE,uBAAuB;SACvC;KACF,CAAC;IACF,OAAO;QACL,KAAK,EAAE;YACL,2BAA2B,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;YACvE,YAAY,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;SACvD;QACD,gBAAgB,EAAE;YAChB,4CAA4C;YAC5C,wBAAwB,iBAAiB,EAAE;SAC5C;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AACxE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,cAAsB;IACrD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAuB,CAAC;QAChE,OAAO,MAAM,CAAC,IAAI,KAAK,iBAAiB,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// The vocabulary every hook dialect shares: what a transform could not carry,
|
|
2
|
+
// what it carried with something missing, and whose a command is.
|
|
3
|
+
//
|
|
4
|
+
// It sits apart from any one dialect because all three answers are the same
|
|
5
|
+
// question in every host — and the TOML transform owned them first only because
|
|
6
|
+
// Kimi Code was the first host that needed a dialect at all.
|
|
7
|
+
/**
|
|
8
|
+
* True when this command line invokes THIS CLI (and not a lookalike binary).
|
|
9
|
+
*
|
|
10
|
+
* OWNERSHIP IS BY DATA, NOT BY COMMENT: a host that re-serializes its own config
|
|
11
|
+
* drops every marker we could write, so what identifies our entries is the one
|
|
12
|
+
* thing that survives — every command we install invokes this CLI.
|
|
13
|
+
*/
|
|
14
|
+
export function isOurCommand(command) {
|
|
15
|
+
const trimmed = command.trimStart();
|
|
16
|
+
return trimmed === "agent-workflow" || trimmed.startsWith("agent-workflow ");
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=hooks-dialect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks-dialect.js","sourceRoot":"","sources":["../../../src/application/self/hooks-dialect.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,kEAAkE;AAClE,EAAE;AACF,4EAA4E;AAC5E,gFAAgF;AAChF,6DAA6D;AAmB7D;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IACpC,OAAO,OAAO,KAAK,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;AAC/E,CAAC"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
// Transformation of the bundled hooks template into the two JSON dialects that
|
|
2
|
+
// are NOT Claude's, plus the ownership surgery each one needs.
|
|
3
|
+
//
|
|
4
|
+
// Neither host is a copy of the Claude file, and neither is a copy of the other:
|
|
5
|
+
//
|
|
6
|
+
// · Crush keeps `hooks` inside `crush.json` as `<Event> → HookConfig[]`, where a
|
|
7
|
+
// HookConfig is FLAT — `{command, matcher?, timeout?}` — and only `PreToolUse`
|
|
8
|
+
// exists (verified against the v0.89.0 binary: its embedded skill doc and its
|
|
9
|
+
// own JSON schema, `config.HookConfig`).
|
|
10
|
+
// · agy keeps ONE `hooks.json` whose top-level keys are hook NAMES, each mapping
|
|
11
|
+
// to per-event config: `PreToolUse`/`PostToolUse` use Claude's `matcher`+`hooks`
|
|
12
|
+
// grouping, `PreInvocation`/`PostInvocation`/`Stop` are flat handler lists, and
|
|
13
|
+
// `enabled: false` disables a named hook (verified against agy 1.0.16's bundled
|
|
14
|
+
// customization doc).
|
|
15
|
+
//
|
|
16
|
+
// What both share with the Kimi transform is the thing that matters: a matcher
|
|
17
|
+
// only travels when it means the same thing on the other side. Ours name Claude's
|
|
18
|
+
// tools (`Bash`, `Edit`); crush's are `bash`, `edit`, `write`, and agy's are its
|
|
19
|
+
// step types lowercased (`run_command`, `file_change`). Carrying ours verbatim
|
|
20
|
+
// would install a hook that never fires, and dropping the matcher would install
|
|
21
|
+
// one that fires on every tool — so an untranslatable matcher SKIPS its hook and
|
|
22
|
+
// says so.
|
|
23
|
+
import { isOurCommand } from "./hooks-dialect.js";
|
|
24
|
+
/** The only template event either host can carry. */
|
|
25
|
+
const CARRIED_EVENT = "PreToolUse";
|
|
26
|
+
/** Why the other four template events have nowhere to go, per host. */
|
|
27
|
+
const NO_EVENT = {
|
|
28
|
+
crush: "crush supports only PreToolUse, so this event has nowhere to go",
|
|
29
|
+
agy: "agy has no equivalent event: its Stop fires at the end of every turn, not at session close, and it exposes no compaction event",
|
|
30
|
+
};
|
|
31
|
+
/** The named hook agy's `hooks.json` keeps ours under. */
|
|
32
|
+
export const AGY_HOOK_NAME = "agent-workflow";
|
|
33
|
+
/**
|
|
34
|
+
* Our template's tool matchers in each host's own tool vocabulary.
|
|
35
|
+
*
|
|
36
|
+
* Keyed by the template's matcher verbatim so a matcher that changes in the
|
|
37
|
+
* bundle stops being translated instead of being translated wrongly — the
|
|
38
|
+
* transform then skips its hook and reports it, which is the loud failure.
|
|
39
|
+
*/
|
|
40
|
+
const TOOL_MATCHERS = {
|
|
41
|
+
// crush: edit · write · multiedit (no notebook tool). agy: file_change · edit_notebook.
|
|
42
|
+
"Edit|Write|MultiEdit|NotebookEdit": {
|
|
43
|
+
crush: "^(edit|write|multiedit)$",
|
|
44
|
+
agy: "^(file_change|edit_notebook)$",
|
|
45
|
+
},
|
|
46
|
+
// crush names MCP tools `mcp_<server>_<tool>`; agy's SQL step is `cloud_sql_execute_sql`.
|
|
47
|
+
"mcp__.*__execute_sql": { crush: "^mcp_.*_execute_sql$", agy: "^.*execute_sql$" },
|
|
48
|
+
Bash: { crush: "^bash$", agy: "^run_command$" },
|
|
49
|
+
};
|
|
50
|
+
/** Flattens the bundled template into crush's `hooks` map. */
|
|
51
|
+
export function hooksTemplateToCrush(template) {
|
|
52
|
+
const entries = [];
|
|
53
|
+
const skipped = collect(template, "crush", (matcher, hook) => {
|
|
54
|
+
entries.push({
|
|
55
|
+
...(matcher === undefined ? {} : { matcher }),
|
|
56
|
+
command: hook.command,
|
|
57
|
+
...(hook.timeout === undefined ? {} : { timeout: hook.timeout }),
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
return { emitted: entries.length === 0 ? {} : { [CARRIED_EVENT]: entries }, skipped };
|
|
61
|
+
}
|
|
62
|
+
/** Flattens the bundled template into agy's single named hook. */
|
|
63
|
+
export function hooksTemplateToAgy(template) {
|
|
64
|
+
const groups = [];
|
|
65
|
+
const skipped = collect(template, "agy", (matcher, hook) => {
|
|
66
|
+
groups.push({
|
|
67
|
+
...(matcher === undefined ? {} : { matcher }),
|
|
68
|
+
hooks: [
|
|
69
|
+
{
|
|
70
|
+
type: "command",
|
|
71
|
+
command: hook.command,
|
|
72
|
+
...(hook.timeout === undefined ? {} : { timeout: hook.timeout }),
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
return { emitted: groups.length === 0 ? null : { PreToolUse: groups }, skipped };
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* The one walk both dialects share: everything that is not `PreToolUse` is
|
|
81
|
+
* skipped with its reason, and every surviving hook is handed back with the
|
|
82
|
+
* matcher this host understands.
|
|
83
|
+
*/
|
|
84
|
+
function collect(template, host, emit) {
|
|
85
|
+
const skipped = [];
|
|
86
|
+
for (const [event, groups] of Object.entries(template.hooks)) {
|
|
87
|
+
if (event !== CARRIED_EVENT) {
|
|
88
|
+
skipped.push({ event, reason: NO_EVENT[host] });
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
for (const reason of carry(groups, host, emit)) {
|
|
92
|
+
skipped.push({ event, reason });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return skipped;
|
|
96
|
+
}
|
|
97
|
+
/** The `PreToolUse` groups, emitted one by one; the refusals come back as reasons. */
|
|
98
|
+
function carry(groups, host, emit) {
|
|
99
|
+
const refusals = [];
|
|
100
|
+
for (const group of groups) {
|
|
101
|
+
const matcher = translateMatcher(group.matcher, host);
|
|
102
|
+
for (const hook of group.hooks ?? []) {
|
|
103
|
+
const refusal = refuse(group, hook, matcher);
|
|
104
|
+
if (refusal === null)
|
|
105
|
+
emit(matcher ?? undefined, hook);
|
|
106
|
+
else
|
|
107
|
+
refusals.push(refusal);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return refusals;
|
|
111
|
+
}
|
|
112
|
+
/** Why this hook cannot travel, or `null` when it can. */
|
|
113
|
+
function refuse(group, hook, matcher) {
|
|
114
|
+
if (typeof hook.command !== "string" || hook.command.length === 0) {
|
|
115
|
+
return `hook of type '${hook.type}' has no command — this host only runs command hooks`;
|
|
116
|
+
}
|
|
117
|
+
if (matcher === null) {
|
|
118
|
+
return `matcher '${group.matcher}' has no equivalent in this host's tool names; carrying it would install a hook that never fires and dropping it would fire on every tool`;
|
|
119
|
+
}
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* The matcher that travels: the host's own regex, `undefined` when the group had
|
|
124
|
+
* none (which already means "every tool" on both sides), or `null` when one
|
|
125
|
+
* existed and cannot be translated.
|
|
126
|
+
*/
|
|
127
|
+
function translateMatcher(matcher, host) {
|
|
128
|
+
if (matcher === undefined || matcher.trim().length === 0)
|
|
129
|
+
return undefined;
|
|
130
|
+
const translation = TOOL_MATCHERS[matcher];
|
|
131
|
+
return translation === undefined ? null : translation[host];
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Removes our entries from a parsed `crush.json`, per ENTRY and never per event:
|
|
135
|
+
* a user with their own `PreToolUse` hook keeps it. An event left with nothing,
|
|
136
|
+
* and a `hooks` key left with no event, are dropped so repeated cycles cannot
|
|
137
|
+
* grow the file.
|
|
138
|
+
*/
|
|
139
|
+
export function stripOurCrushHooks(config) {
|
|
140
|
+
const hooks = asRecord(config.hooks);
|
|
141
|
+
if (hooks === null)
|
|
142
|
+
return { value: config, removed: 0, preserved: 0 };
|
|
143
|
+
const next = {};
|
|
144
|
+
let removed = 0;
|
|
145
|
+
let preserved = 0;
|
|
146
|
+
for (const [event, value] of Object.entries(hooks)) {
|
|
147
|
+
if (!Array.isArray(value)) {
|
|
148
|
+
next[event] = value;
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
const kept = value.filter((entry) => !isOurHookEntry(entry));
|
|
152
|
+
removed += value.length - kept.length;
|
|
153
|
+
preserved += kept.length;
|
|
154
|
+
if (kept.length > 0)
|
|
155
|
+
next[event] = kept;
|
|
156
|
+
}
|
|
157
|
+
if (removed === 0)
|
|
158
|
+
return { value: config, removed: 0, preserved };
|
|
159
|
+
const { hooks: _dropped, ...rest } = config;
|
|
160
|
+
const value = Object.keys(next).length > 0 ? { ...rest, hooks: next } : rest;
|
|
161
|
+
return { value, removed, preserved };
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Removes our named hook from a parsed `hooks.json`, and only when EVERY command
|
|
165
|
+
* under it is ours. A named hook someone else wrote under the same name is left
|
|
166
|
+
* alone: the name is where we put ours, never proof that ours is what is there.
|
|
167
|
+
*/
|
|
168
|
+
export function stripOurAgyHooks(doc) {
|
|
169
|
+
const named = asRecord(doc[AGY_HOOK_NAME]);
|
|
170
|
+
const preserved = Object.keys(doc).length - (named === null ? 0 : 1);
|
|
171
|
+
if (named === null)
|
|
172
|
+
return { value: doc, removed: 0, preserved };
|
|
173
|
+
const commands = agyCommands(named);
|
|
174
|
+
if (commands.length === 0 || !commands.every(isOurCommand)) {
|
|
175
|
+
return { value: doc, removed: 0, preserved: preserved + 1 };
|
|
176
|
+
}
|
|
177
|
+
const { [AGY_HOOK_NAME]: _ours, ...rest } = doc;
|
|
178
|
+
return { value: rest, removed: commands.length, preserved };
|
|
179
|
+
}
|
|
180
|
+
/** How many of our hook entries a parsed `crush.json` declares. */
|
|
181
|
+
export function countOurCrushHooks(config) {
|
|
182
|
+
const hooks = asRecord(config.hooks);
|
|
183
|
+
if (hooks === null)
|
|
184
|
+
return 0;
|
|
185
|
+
let count = 0;
|
|
186
|
+
for (const value of Object.values(hooks)) {
|
|
187
|
+
if (Array.isArray(value))
|
|
188
|
+
count += value.filter(isOurHookEntry).length;
|
|
189
|
+
}
|
|
190
|
+
return count;
|
|
191
|
+
}
|
|
192
|
+
/** How many of our hook handlers a parsed `hooks.json` declares under our name. */
|
|
193
|
+
export function countOurAgyHooks(doc) {
|
|
194
|
+
const named = asRecord(doc[AGY_HOOK_NAME]);
|
|
195
|
+
if (named === null)
|
|
196
|
+
return 0;
|
|
197
|
+
return agyCommands(named).filter(isOurCommand).length;
|
|
198
|
+
}
|
|
199
|
+
function agyCommands(named) {
|
|
200
|
+
const groups = named[CARRIED_EVENT];
|
|
201
|
+
if (!Array.isArray(groups))
|
|
202
|
+
return [];
|
|
203
|
+
const out = [];
|
|
204
|
+
for (const group of groups) {
|
|
205
|
+
const hooks = asRecord(group)?.hooks;
|
|
206
|
+
if (!Array.isArray(hooks))
|
|
207
|
+
continue;
|
|
208
|
+
for (const hook of hooks) {
|
|
209
|
+
const command = asRecord(hook)?.command;
|
|
210
|
+
if (typeof command === "string")
|
|
211
|
+
out.push(command);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return out;
|
|
215
|
+
}
|
|
216
|
+
/** True when this flat `{command, …}` entry is one WE installed. */
|
|
217
|
+
export function isOurHookEntry(entry) {
|
|
218
|
+
const command = asRecord(entry)?.command;
|
|
219
|
+
return typeof command === "string" && isOurCommand(command);
|
|
220
|
+
}
|
|
221
|
+
function asRecord(value) {
|
|
222
|
+
return typeof value === "object" && value !== null && !Array.isArray(value)
|
|
223
|
+
? value
|
|
224
|
+
: null;
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=hooks-json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks-json.js","sourceRoot":"","sources":["../../../src/application/self/hooks-json.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
// and a hook that silently never fires, so the matcher is dropped for those
|
|
23
23
|
// events — and an absent matcher means "always", which is exactly what that
|
|
24
24
|
// Claude matcher expresses.
|
|
25
|
+
import { isOurCommand } from "./hooks-dialect.js";
|
|
25
26
|
export const MANAGED_BLOCK_BEGIN = "# >>> agent-workflow (Workline) managed hooks — do not edit inside this block >>>";
|
|
26
27
|
export const MANAGED_BLOCK_END = "# <<< agent-workflow (Workline) managed hooks <<<";
|
|
27
28
|
/** Events whose matcher value is the tool name, so a tool-name regex transfers as-is. */
|
|
@@ -157,14 +158,11 @@ export function renderManagedHooksBlock(entries) {
|
|
|
157
158
|
return `${lines.join("\n")}\n`;
|
|
158
159
|
}
|
|
159
160
|
/**
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
* The marked block is for humans reading the file. It cannot be the identity of
|
|
161
|
+
* The marked block is for humans reading the file — it cannot be the identity of
|
|
163
162
|
* our entries, because Kimi Code rewrites its own `config.toml` whenever it
|
|
164
163
|
* touches a setting (`kimi provider remove`, an OAuth refresh, …): it
|
|
165
|
-
* re-serializes the parsed config, which keeps the `hooks` array and drops
|
|
166
|
-
*
|
|
167
|
-
* signal the Claude side uses: every command we install invokes this CLI.
|
|
164
|
+
* re-serializes the parsed config, which keeps the `hooks` array and drops EVERY
|
|
165
|
+
* comment, our markers included. Identity therefore rests on `isOurCommand`.
|
|
168
166
|
*
|
|
169
167
|
* Without this, one routine Kimi command left our hooks armed and unremovable,
|
|
170
168
|
* and every reinstall appended a duplicate set.
|
|
@@ -175,11 +173,6 @@ export function renderManagedHooksBlock(entries) {
|
|
|
175
173
|
const OUR_COMMAND_RE = /^\s*command\s*=\s*["']agent-workflow(?=[\s"']|$)/;
|
|
176
174
|
const HOOK_TABLE_HEADER = "[[hooks]]";
|
|
177
175
|
const TOML_KEY_RE = /^\s*[A-Za-z_][\w-]*\s*=/;
|
|
178
|
-
/** True when this command line invokes THIS CLI (and not a lookalike binary). */
|
|
179
|
-
export function isOurCommand(command) {
|
|
180
|
-
const trimmed = command.trimStart();
|
|
181
|
-
return trimmed === "agent-workflow" || trimmed.startsWith("agent-workflow ");
|
|
182
|
-
}
|
|
183
176
|
/**
|
|
184
177
|
* Removes every `[[hooks]]` entry that is OURS — wherever it sits and whether or
|
|
185
178
|
* not our comment markers survived — plus the markers themselves. Anything else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-toml.js","sourceRoot":"","sources":["../../../src/application/self/hooks-toml.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,yEAAyE;AACzE,uBAAuB;AACvB,EAAE;AACF,wDAAwD;AACxD,+EAA+E;AAC/E,+EAA+E;AAC/E,8EAA8E;AAC9E,0EAA0E;AAC1E,EAAE;AACF,+EAA+E;AAC/E,wDAAwD;AACxD,EAAE;AACF,+EAA+E;AAC/E,8DAA8D;AAC9D,4EAA4E;AAC5E,gFAAgF;AAChF,4EAA4E;AAC5E,0EAA0E;AAC1E,wEAAwE;AACxE,8EAA8E;AAC9E,gFAAgF;AAChF,gFAAgF;AAChF,gCAAgC;
|
|
1
|
+
{"version":3,"file":"hooks-toml.js","sourceRoot":"","sources":["../../../src/application/self/hooks-toml.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,13 +16,15 @@
|
|
|
16
16
|
// runtime and must never inflate a host count (spec 010, criterion 3).
|
|
17
17
|
import { dirname, join } from "node:path";
|
|
18
18
|
import { parse as parseToml } from "smol-toml";
|
|
19
|
-
import { HARNESSES, SHARED_SKILL_DESTINATIONS, verificationFor, } from "../../domain/harnesses.js";
|
|
19
|
+
import { HARNESSES, SHARED_SKILL_DESTINATIONS, hookCoverage, hookMechanism, verificationFor, } from "../../domain/harnesses.js";
|
|
20
20
|
import { crushGlobalMcpFile, opencodeGlobalMcpFile } from "../mcp-host-paths.js";
|
|
21
21
|
import { resolveWarpGlobalMcpPath } from "../multiroot/warp.js";
|
|
22
|
+
import { countOurAgyHooks, countOurCrushHooks, hooksTemplateToAgy, hooksTemplateToCrush, } from "./hooks-json.js";
|
|
22
23
|
import { countOurHookEntries, hooksTemplateToToml } from "./hooks-toml.js";
|
|
23
24
|
import { resolveBundledHookTemplate } from "./install-hooks.js";
|
|
24
25
|
import { SKILL_DIR_NAME, USER_COMMANDS_BY_TARGET } from "./install-skill.js";
|
|
25
26
|
import { COMMAND_SKILLS_HOSTS, TARGET_ROOTS } from "./install-targets.js";
|
|
27
|
+
import { buildOpencodePlugin } from "./opencode-plugin.js";
|
|
26
28
|
/** Upper bound for a single `--version` call. Probes run in parallel across hosts. */
|
|
27
29
|
const RUNTIME_PROBE_TIMEOUT_MS = 2500;
|
|
28
30
|
function expandHome(path, home) {
|
|
@@ -164,11 +166,18 @@ export function capabilitiesFor(spec) {
|
|
|
164
166
|
spec.hooks === null
|
|
165
167
|
? { id: "hooks", status: "unsupported", detail: "this host has no hook system" }
|
|
166
168
|
: spec.hooks.managed
|
|
167
|
-
? {
|
|
169
|
+
? {
|
|
170
|
+
id: "hooks",
|
|
171
|
+
status: "native",
|
|
172
|
+
// The coverage rides along even here: claude carries all five, kimi
|
|
173
|
+
// carries PostCompact with a handler missing, and "installed" alone
|
|
174
|
+
// would read as parity between the two.
|
|
175
|
+
detail: `installed into ${hookMechanism(spec.hooks)} — ${hookCoverage(spec.hooks)}`,
|
|
176
|
+
}
|
|
168
177
|
: {
|
|
169
178
|
id: "hooks",
|
|
170
179
|
status: "degraded",
|
|
171
|
-
detail: `host supports hooks (${spec.hooks
|
|
180
|
+
detail: `host supports hooks (${hookMechanism(spec.hooks)}) — ${hookCoverage(spec.hooks)}; ${notManagedHere(spec)}`,
|
|
172
181
|
},
|
|
173
182
|
spec.mcpHostId === null
|
|
174
183
|
? {
|
|
@@ -179,6 +188,23 @@ export function capabilitiesFor(spec) {
|
|
|
179
188
|
: { id: "mcp", status: "native", detail: `written to its ${spec.mcpHostId} MCP config` },
|
|
180
189
|
];
|
|
181
190
|
}
|
|
191
|
+
/**
|
|
192
|
+
* Why Workline does not arm this host's hooks, and what it does instead.
|
|
193
|
+
*
|
|
194
|
+
* Codex is the one host with a second route: a plugin bundle whose hooks skip its
|
|
195
|
+
* per-hook trust review. The bundle is generated, never installed — codex takes
|
|
196
|
+
* plugins through a marketplace — so the state says "generated, not armed" and
|
|
197
|
+
* stops there. Every other unmanaged host gets the plain answer.
|
|
198
|
+
*/
|
|
199
|
+
function notManagedHere(spec) {
|
|
200
|
+
if (spec.id === "codex") {
|
|
201
|
+
return "Workline generates its plugin bundle instead ('aw self install-hooks --target codex'), which is NOT armed: installing a codex plugin goes through a marketplace and is yours to run";
|
|
202
|
+
}
|
|
203
|
+
if (spec.id === "opencode") {
|
|
204
|
+
return "Workline generates its plugin module instead ('aw self install-hooks --target opencode'), declared in opencode.json: the tool guards travel, the session and compaction hooks do not";
|
|
205
|
+
}
|
|
206
|
+
return "Workline does not install them here — the CLI commands stay callable";
|
|
207
|
+
}
|
|
182
208
|
/**
|
|
183
209
|
* One line for what a human boundary really does here.
|
|
184
210
|
*
|
|
@@ -259,6 +285,14 @@ const HOOKS_ARMED_PROBES = {
|
|
|
259
285
|
const path = join(home, ".claude", "settings.json");
|
|
260
286
|
return { armed: await claudeHooksArmed(ctx, path), path };
|
|
261
287
|
},
|
|
288
|
+
crush: async (ctx, home) => {
|
|
289
|
+
const path = crushGlobalMcpFile(home);
|
|
290
|
+
return { armed: (await countJsonHooks(ctx, path, countOurCrushHooks)) > 0, path };
|
|
291
|
+
},
|
|
292
|
+
gemini: async (ctx, home) => {
|
|
293
|
+
const path = join(home, ".agents", "hooks.json");
|
|
294
|
+
return { armed: (await countJsonHooks(ctx, path, countOurAgyHooks)) > 0, path };
|
|
295
|
+
},
|
|
262
296
|
kimi: async (ctx, home) => {
|
|
263
297
|
// Read through a real TOML parse, NOT by looking for our comment markers:
|
|
264
298
|
// Kimi rewrites this file on its own and drops every comment while keeping
|
|
@@ -275,6 +309,26 @@ const HOOKS_ARMED_PROBES = {
|
|
|
275
309
|
}
|
|
276
310
|
},
|
|
277
311
|
};
|
|
312
|
+
/**
|
|
313
|
+
* Our entries in a JSON host config, read through a real parse.
|
|
314
|
+
*
|
|
315
|
+
* Zero on an absent or unreadable file: "we cannot tell" and "they are not
|
|
316
|
+
* armed" look the same to a probe, and claiming armed on a file nobody could
|
|
317
|
+
* read is the one answer that would be a lie.
|
|
318
|
+
*/
|
|
319
|
+
async function countJsonHooks(ctx, path, count) {
|
|
320
|
+
if (!(await ctx.fs.exists(path)))
|
|
321
|
+
return 0;
|
|
322
|
+
try {
|
|
323
|
+
const parsed = JSON.parse(await ctx.fs.readText(path));
|
|
324
|
+
return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)
|
|
325
|
+
? count(parsed)
|
|
326
|
+
: 0;
|
|
327
|
+
}
|
|
328
|
+
catch {
|
|
329
|
+
return 0;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
278
332
|
/**
|
|
279
333
|
* A non-empty `hooks{}` is NOT enough: the user may keep hooks of their own.
|
|
280
334
|
* Ours are the entries whose command invokes this CLI.
|
|
@@ -315,7 +369,14 @@ const HOOK_TEMPLATE_LOSSES = {
|
|
|
315
369
|
...degraded.map((d) => `${d.event}: ${d.reason}`),
|
|
316
370
|
];
|
|
317
371
|
},
|
|
372
|
+
crush: (template) => skipLines(hooksTemplateToCrush(template).skipped),
|
|
373
|
+
gemini: (template) => skipLines(hooksTemplateToAgy(template).skipped),
|
|
374
|
+
opencode: (template) => skipLines(buildOpencodePlugin(template).skipped),
|
|
318
375
|
};
|
|
376
|
+
/** The four events neither JSON dialect carries, one line each. */
|
|
377
|
+
function skipLines(skipped) {
|
|
378
|
+
return skipped.map((s) => `${s.event}: skipped — ${s.reason}`);
|
|
379
|
+
}
|
|
319
380
|
/**
|
|
320
381
|
* What each managed host cannot carry from the bundled template.
|
|
321
382
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-states.js","sourceRoot":"","sources":["../../../src/application/self/host-states.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"host-states.js","sourceRoot":"","sources":["../../../src/application/self/host-states.ts"],"names":[],"mappings":"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"}
|