@goodfoot/agent-hooks 1.0.2 → 1.0.4
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 +2 -2
- package/dist/agents/codex/scaffold.js +24 -13
- package/dist/cli.js +1 -1
- package/dist/scaffold.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -124,8 +124,8 @@ export default defineOpenCodePlugin({
|
|
|
124
124
|
event: guardAdvisory('event', async ({ event }) => {
|
|
125
125
|
if (event.type === 'session.created') {
|
|
126
126
|
sessions.observe(event.properties.info.id, event.properties.info.parentID);
|
|
127
|
-
} else {
|
|
128
|
-
sessions.observeResumed(event.properties.info
|
|
127
|
+
} else if (event.type === 'session.updated') {
|
|
128
|
+
sessions.observeResumed(event.properties.info.id, event.properties.info.parentID);
|
|
129
129
|
}
|
|
130
130
|
}, 'continue'),
|
|
131
131
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as fs from "node:fs";
|
|
2
2
|
import * as path from "node:path";
|
|
3
3
|
import { HOOK_FACTORY_TO_EVENT, PACKAGE_NAME } from "./constants.js";
|
|
4
|
+
const CODEX_IMPORT_SPECIFIER = `${PACKAGE_NAME}/codex`;
|
|
4
5
|
const VALID_HOOK_EVENT_NAMES = new Set(Object.values(HOOK_FACTORY_TO_EVENT));
|
|
5
6
|
const EVENT_LOOKUP = new Map(Array.from(VALID_HOOK_EVENT_NAMES).map((value) => [value.toLowerCase(), value]));
|
|
6
7
|
const EVENT_TO_FACTORY = Object.fromEntries(Object.entries(HOOK_FACTORY_TO_EVENT).map(([factory, eventName]) => [eventName, factory]));
|
|
@@ -54,7 +55,7 @@ function generatePackageJson(projectName, outputPath) {
|
|
|
54
55
|
typecheck: "tsc --noEmit",
|
|
55
56
|
},
|
|
56
57
|
dependencies: {
|
|
57
|
-
[PACKAGE_NAME]: "^1.0.
|
|
58
|
+
[PACKAGE_NAME]: "^1.0.4",
|
|
58
59
|
},
|
|
59
60
|
devDependencies: {
|
|
60
61
|
"@biomejs/biome": "2.4.9",
|
|
@@ -95,6 +96,16 @@ function generateBiomeConfig() {
|
|
|
95
96
|
"rules": {
|
|
96
97
|
"recommended": true
|
|
97
98
|
}
|
|
99
|
+
},
|
|
100
|
+
"assist": {
|
|
101
|
+
"actions": {
|
|
102
|
+
"source": {
|
|
103
|
+
"organizeImports": "on"
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"files": {
|
|
108
|
+
"includes": ["src/**/*.ts", "test/**/*.ts", "*.ts"]
|
|
98
109
|
}
|
|
99
110
|
}
|
|
100
111
|
`;
|
|
@@ -130,7 +141,7 @@ function generateHookSource(eventName) {
|
|
|
130
141
|
const importItems = [factory, output].join(", ");
|
|
131
142
|
switch (eventName) {
|
|
132
143
|
case "PreToolUse":
|
|
133
|
-
return `import { ${importItems} } from "${
|
|
144
|
+
return `import { ${importItems} } from "${CODEX_IMPORT_SPECIFIER}";
|
|
134
145
|
|
|
135
146
|
export default ${factory}({ matcher: "Bash" }, (input) => {
|
|
136
147
|
if (input.tool_input.command.includes("rm -rf")) {
|
|
@@ -143,7 +154,7 @@ export default ${factory}({ matcher: "Bash" }, (input) => {
|
|
|
143
154
|
});
|
|
144
155
|
`;
|
|
145
156
|
case "PostToolUse":
|
|
146
|
-
return `import { ${importItems} } from "${
|
|
157
|
+
return `import { ${importItems} } from "${CODEX_IMPORT_SPECIFIER}";
|
|
147
158
|
|
|
148
159
|
export default ${factory}({ matcher: "Bash" }, (input) => {
|
|
149
160
|
return ${output}({
|
|
@@ -152,7 +163,7 @@ export default ${factory}({ matcher: "Bash" }, (input) => {
|
|
|
152
163
|
});
|
|
153
164
|
`;
|
|
154
165
|
case "SessionStart":
|
|
155
|
-
return `import { ${importItems} } from "${
|
|
166
|
+
return `import { ${importItems} } from "${CODEX_IMPORT_SPECIFIER}";
|
|
156
167
|
|
|
157
168
|
export default ${factory}({ matcher: "startup" }, () => {
|
|
158
169
|
return ${output}({
|
|
@@ -161,7 +172,7 @@ export default ${factory}({ matcher: "startup" }, () => {
|
|
|
161
172
|
});
|
|
162
173
|
`;
|
|
163
174
|
case "UserPromptSubmit":
|
|
164
|
-
return `import { ${importItems} } from "${
|
|
175
|
+
return `import { ${importItems} } from "${CODEX_IMPORT_SPECIFIER}";
|
|
165
176
|
|
|
166
177
|
export default ${factory}({}, (input) => {
|
|
167
178
|
if (input.prompt.trim().length === 0) {
|
|
@@ -173,7 +184,7 @@ export default ${factory}({}, (input) => {
|
|
|
173
184
|
});
|
|
174
185
|
`;
|
|
175
186
|
case "Stop":
|
|
176
|
-
return `import { ${importItems} } from "${
|
|
187
|
+
return `import { ${importItems} } from "${CODEX_IMPORT_SPECIFIER}";
|
|
177
188
|
|
|
178
189
|
export default ${factory}({}, (input) => {
|
|
179
190
|
if (input.stop_hook_active && input.last_assistant_message === null) {
|
|
@@ -185,7 +196,7 @@ export default ${factory}({}, (input) => {
|
|
|
185
196
|
});
|
|
186
197
|
`;
|
|
187
198
|
case "PermissionRequest":
|
|
188
|
-
return `import { ${importItems} } from "${
|
|
199
|
+
return `import { ${importItems} } from "${CODEX_IMPORT_SPECIFIER}";
|
|
189
200
|
|
|
190
201
|
export default ${factory}({ matcher: "Bash" }, (input) => {
|
|
191
202
|
return ${output}({
|
|
@@ -195,7 +206,7 @@ export default ${factory}({ matcher: "Bash" }, (input) => {
|
|
|
195
206
|
});
|
|
196
207
|
`;
|
|
197
208
|
case "SubagentStart":
|
|
198
|
-
return `import { ${importItems} } from "${
|
|
209
|
+
return `import { ${importItems} } from "${CODEX_IMPORT_SPECIFIER}";
|
|
199
210
|
|
|
200
211
|
export default ${factory}({ matcher: ".*" }, (input) => {
|
|
201
212
|
return ${output}({
|
|
@@ -204,7 +215,7 @@ export default ${factory}({ matcher: ".*" }, (input) => {
|
|
|
204
215
|
});
|
|
205
216
|
`;
|
|
206
217
|
case "SubagentStop":
|
|
207
|
-
return `import { ${importItems} } from "${
|
|
218
|
+
return `import { ${importItems} } from "${CODEX_IMPORT_SPECIFIER}";
|
|
208
219
|
|
|
209
220
|
export default ${factory}({ matcher: ".*" }, (input) => {
|
|
210
221
|
if (input.last_assistant_message === null) {
|
|
@@ -216,7 +227,7 @@ export default ${factory}({ matcher: ".*" }, (input) => {
|
|
|
216
227
|
});
|
|
217
228
|
`;
|
|
218
229
|
case "PreCompact":
|
|
219
|
-
return `import { ${importItems} } from "${
|
|
230
|
+
return `import { ${importItems} } from "${CODEX_IMPORT_SPECIFIER}";
|
|
220
231
|
|
|
221
232
|
export default ${factory}({ matcher: "manual" }, () => {
|
|
222
233
|
return ${output}({
|
|
@@ -225,7 +236,7 @@ export default ${factory}({ matcher: "manual" }, () => {
|
|
|
225
236
|
});
|
|
226
237
|
`;
|
|
227
238
|
case "PostCompact":
|
|
228
|
-
return `import { ${importItems} } from "${
|
|
239
|
+
return `import { ${importItems} } from "${CODEX_IMPORT_SPECIFIER}";
|
|
229
240
|
|
|
230
241
|
export default ${factory}({ matcher: "manual" }, () => {
|
|
231
242
|
return ${output}({
|
|
@@ -237,8 +248,8 @@ export default ${factory}({ matcher: "manual" }, () => {
|
|
|
237
248
|
}
|
|
238
249
|
function generateHookTest(eventName) {
|
|
239
250
|
const filename = toKebabCase(eventName);
|
|
240
|
-
return `import
|
|
241
|
-
import
|
|
251
|
+
return `import { describe, expect, it } from "vitest";
|
|
252
|
+
import hook from "../src/${filename}.js";
|
|
242
253
|
|
|
243
254
|
describe("${eventName} hook", () => {
|
|
244
255
|
it("exports a ${eventName} hook", () => {
|
package/dist/cli.js
CHANGED
|
@@ -26,7 +26,7 @@ import { scaffoldProject } from "./scaffold.js";
|
|
|
26
26
|
// ============================================================================
|
|
27
27
|
// Constants
|
|
28
28
|
// ============================================================================
|
|
29
|
-
const VERSION = "1.0.
|
|
29
|
+
const VERSION = "1.0.4";
|
|
30
30
|
const DEFAULT_ESBUILD_LOADERS = {
|
|
31
31
|
".md": "text",
|
|
32
32
|
};
|
package/dist/scaffold.js
CHANGED
|
@@ -131,7 +131,7 @@ function generatePackageJson(projectName, outputPath) {
|
|
|
131
131
|
typecheck: "tsc --noEmit",
|
|
132
132
|
},
|
|
133
133
|
dependencies: {
|
|
134
|
-
"@goodfoot/agent-hooks": "^1.0.
|
|
134
|
+
"@goodfoot/agent-hooks": "^1.0.4",
|
|
135
135
|
},
|
|
136
136
|
devDependencies: {
|
|
137
137
|
"@biomejs/biome": "2.4.16",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goodfoot/agent-hooks",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "Unified agent hooks library: shared core runtime with per-agent entry points for Claude Code, Codex, and Antigravity",
|
|
5
5
|
"homepage": "https://github.com/goodfoot-io/marketplace/tree/main/packages/agent-hooks",
|
|
6
6
|
"repository": {
|