@pulsemcp/air-cowork 0.9.0 → 0.11.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/cowork-emitter.d.ts +65 -2
- package/dist/cowork-emitter.d.ts.map +1 -1
- package/dist/cowork-emitter.js +190 -34
- package/dist/cowork-emitter.js.map +1 -1
- package/package.json +2 -2
package/dist/cowork-emitter.d.ts
CHANGED
|
@@ -13,15 +13,78 @@ export declare class CoworkEmitter implements PluginEmitter {
|
|
|
13
13
|
* Build inline hooks.json in the Co-work format.
|
|
14
14
|
* Each hook activation contributes one matcher group; commands are rewritten
|
|
15
15
|
* to use ${CLAUDE_PLUGIN_ROOT}/scripts/<short>/ for relative paths.
|
|
16
|
+
*
|
|
17
|
+
* Fails loud: any hook that cannot be fully materialized into a valid Co-work
|
|
18
|
+
* entry (unknown artifact, missing/malformed HOOK.json, unmapped event, or
|
|
19
|
+
* missing command) throws rather than being silently skipped. A silently
|
|
20
|
+
* skipped hook would leave the plugin dir without its `hooks/hooks.json` and
|
|
21
|
+
* script while the export still reported a non-zero hook count — emitting a
|
|
22
|
+
* broken plugin that looks successful.
|
|
16
23
|
*/
|
|
17
24
|
buildHooksConfig(artifacts: ResolvedArtifacts, hookActs: ChildActivation[]): {
|
|
18
25
|
hooks: Record<string, unknown[]>;
|
|
19
26
|
};
|
|
20
|
-
buildHookCommand(shortId: string, command: string, args?: string[]): string;
|
|
21
27
|
/**
|
|
22
|
-
*
|
|
28
|
+
* Build a shell command string from HOOK.json's command and args fields,
|
|
29
|
+
* anchoring hook-relative paths under ${CLAUDE_PLUGIN_ROOT}/scripts/<short>/.
|
|
30
|
+
*
|
|
31
|
+
* Hook authors write paths relative to their own hook directory, but Co-work
|
|
32
|
+
* copies those files into the plugin's scripts/<short>/ tree and invokes the
|
|
33
|
+
* command with an arbitrary cwd, so a bare relative path would not resolve.
|
|
34
|
+
* Mirroring the Claude adapter:
|
|
35
|
+
* - `command` is anchored if it starts with `./` (explicit hook-relative).
|
|
36
|
+
* - Each `args` entry is anchored if it is path-like (has a `/` separator
|
|
37
|
+
* or an explicit `./` prefix) AND names a real file under the hook's
|
|
38
|
+
* source directory. This is what makes interpreter-style invocations like
|
|
39
|
+
* `node dist/capture.js` resolve. The path-like + exists requirement
|
|
40
|
+
* keeps bare command/package names (e.g. `lint-staged`) from being
|
|
41
|
+
* accidentally rewritten.
|
|
42
|
+
*
|
|
43
|
+
* Args that are neither anchored nor safe (contain shell metacharacters) are
|
|
44
|
+
* single-quoted.
|
|
45
|
+
*/
|
|
46
|
+
buildHookCommand(shortId: string, hookDir: string, command: string, args?: string[]): string;
|
|
47
|
+
/** Anchor a hook-relative path under the plugin's scripts/<short>/ tree. */
|
|
48
|
+
private pluginScriptPath;
|
|
49
|
+
/**
|
|
50
|
+
* If `arg` is a hook-relative path pointing at a real file under the hook's
|
|
51
|
+
* source directory, return its path relative to that directory (for anchoring
|
|
52
|
+
* under scripts/<short>/). Otherwise return null. Flags, absolute/home paths,
|
|
53
|
+
* and bare command/package names are never rewritten.
|
|
54
|
+
*/
|
|
55
|
+
private hookRelativeArg;
|
|
56
|
+
/**
|
|
57
|
+
* Copy a hook's directory — scripts AND its HOOK.json — into
|
|
58
|
+
* scripts/<short>/ inside the plugin directory.
|
|
59
|
+
*
|
|
60
|
+
* The HOOK.json must be carried forward, not dropped. A hook's own runtime
|
|
61
|
+
* config loader resolves its HOOK.json relative to its compiled entrypoint —
|
|
62
|
+
* one level up from `dist/` — and reads the top-level `x-config` block
|
|
63
|
+
* (storage backend + privacy settings) from it. In the exported plugin the
|
|
64
|
+
* copied `dist/` lands at scripts/<short>/dist/, so the loader looks for
|
|
65
|
+
* scripts/<short>/HOOK.json. If that file is absent the loader returns null
|
|
66
|
+
* and the hook fires at runtime but does nothing (e.g. transcript-capture
|
|
67
|
+
* uploads silently no-op).
|
|
68
|
+
*
|
|
69
|
+
* The emitted HOOK.json carries the same fully-composed `x-config` that
|
|
70
|
+
* `air prepare` materializes: the hook author's source `x-config` deep-merged
|
|
71
|
+
* with any consumer-supplied overlay declared in `air.json` (resolved onto
|
|
72
|
+
* the hook entry as `x-config`). With no consumer overlay the source file is
|
|
73
|
+
* copied byte-for-byte; with one, only the `x-config` is replaced by the
|
|
74
|
+
* merged value and every other field is preserved. Nothing is otherwise
|
|
75
|
+
* injected or stripped, so backend-specific validation rules (e.g. GCS
|
|
76
|
+
* forbidding a `no_auth.namespace_key`) survive by construction.
|
|
23
77
|
*/
|
|
24
78
|
copyHookScripts(artifacts: ResolvedArtifacts, hookActs: ChildActivation[], pluginDir: string): void;
|
|
79
|
+
/**
|
|
80
|
+
* Write the hook's HOOK.json into the exported plugin, merging any
|
|
81
|
+
* consumer-supplied `x-config` overlay (from the resolved hook entry) onto
|
|
82
|
+
* the source file's own `x-config` — mirroring what `air prepare` does via
|
|
83
|
+
* `writeMergedHookXConfigs`. With no overlay the source is copied verbatim so
|
|
84
|
+
* its exact formatting is preserved; with one, the source is re-serialized
|
|
85
|
+
* with only `x-config` replaced by the merged value.
|
|
86
|
+
*/
|
|
87
|
+
private writeExportedHookJson;
|
|
25
88
|
/**
|
|
26
89
|
* Translate AIR MCP server entries to Co-work .mcp.json format.
|
|
27
90
|
* Keys are bare shortnames — Co-work's MCP namespace is scope-naive.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cowork-emitter.d.ts","sourceRoot":"","sources":["../src/cowork-emitter.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,WAAW,EAEX,uBAAuB,EACvB,WAAW,EACX,gBAAgB,EAChB,WAAW,EACZ,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"cowork-emitter.d.ts","sourceRoot":"","sources":["../src/cowork-emitter.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EACjB,WAAW,EAEX,uBAAuB,EACvB,WAAW,EACX,gBAAgB,EAChB,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAY5B,UAAU,eAAe;IACvB,SAAS,EAAE,WAAW,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AA2CD,qBAAa,aAAc,YAAW,aAAa;IACjD,IAAI,SAAY;IAChB,WAAW,SAAoB;IAEzB,gBAAgB,CACpB,SAAS,EAAE,iBAAiB,EAC5B,SAAS,EAAE,MAAM,EAAE,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,gBAAgB,CAAC;IA0B5B,WAAW,CACT,SAAS,EAAE,iBAAiB,EAC5B,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,GAChB,WAAW;IA2Ed,aAAa,CACX,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAc1B;;;;;;;;;;;OAWG;IACH,gBAAgB,CACd,SAAS,EAAE,iBAAiB,EAC5B,QAAQ,EAAE,eAAe,EAAE,GAC1B;QAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAA;KAAE;IA6EvC;;;;;;;;;;;;;;;;;;OAkBG;IACH,gBAAgB,CACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EAAE,GACd,MAAM;IAkBT,4EAA4E;IAC5E,OAAO,CAAC,gBAAgB;IAIxB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAgBvB;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,eAAe,CACb,SAAS,EAAE,iBAAiB,EAC5B,QAAQ,EAAE,eAAe,EAAE,EAC3B,SAAS,EAAE,MAAM,GAChB,IAAI;IA2BP;;;;;;;OAOG;IACH,OAAO,CAAC,qBAAqB;IA2B7B;;;OAGG;IACH,cAAc,CACZ,SAAS,EAAE,iBAAiB,EAC5B,OAAO,EAAE,eAAe,EAAE,GACzB;QAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;KAAE;IA4B1D,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,qBAAqB;IAgC7B;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IA6ChC;;;OAGG;IACH,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,gBAAgB;CAYzB"}
|
package/dist/cowork-emitter.js
CHANGED
|
@@ -1,18 +1,45 @@
|
|
|
1
1
|
import { existsSync, mkdirSync, writeFileSync, readFileSync, readdirSync, copyFileSync, statSync, } from "fs";
|
|
2
2
|
import { join, basename, dirname } from "path";
|
|
3
|
-
import { parseQualifiedId, resolveReference } from "@pulsemcp/air-core";
|
|
3
|
+
import { parseQualifiedId, resolveReference, mergeXConfig, } from "@pulsemcp/air-core";
|
|
4
4
|
/**
|
|
5
|
-
* AIR event names → Claude Co-work hook event names.
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* AIR lifecycle event names → Claude Co-work hook event names.
|
|
6
|
+
*
|
|
7
|
+
* Accepts both snake_case AIR names and PascalCase Claude/Co-work lifecycle
|
|
8
|
+
* names as identity mappings, so hook authors targeting the Claude runtime can
|
|
9
|
+
* write Claude-native event names directly without translating to snake_case.
|
|
10
|
+
* This mirrors the Claude adapter's AIR_TO_CLAUDE_EVENT map — Co-work consumes
|
|
11
|
+
* the same `hooks/hooks.json` event vocabulary as Claude Code.
|
|
12
|
+
*
|
|
13
|
+
* An AIR event that is absent here cannot be materialized into a valid Co-work
|
|
14
|
+
* hook. Rather than silently dropping such a hook (which previously produced a
|
|
15
|
+
* broken/empty plugin dir while still reporting success), `buildHooksConfig`
|
|
16
|
+
* throws so the export fails loudly with a non-zero exit.
|
|
8
17
|
*/
|
|
9
18
|
const AIR_TO_COWORK_EVENT = {
|
|
19
|
+
// snake_case AIR names
|
|
10
20
|
session_start: "SessionStart",
|
|
11
21
|
session_end: "SessionEnd",
|
|
12
22
|
pre_tool_call: "PreToolUse",
|
|
13
23
|
post_tool_call: "PostToolUse",
|
|
14
24
|
notification: "Notification",
|
|
25
|
+
stop: "Stop",
|
|
26
|
+
subagent_stop: "SubagentStop",
|
|
27
|
+
pre_compact: "PreCompact",
|
|
28
|
+
user_prompt_submit: "UserPromptSubmit",
|
|
29
|
+
// PascalCase Claude/Co-work event names (identity — hook authors targeting
|
|
30
|
+
// the Claude runtime often write these directly).
|
|
31
|
+
SessionStart: "SessionStart",
|
|
32
|
+
SessionEnd: "SessionEnd",
|
|
33
|
+
PreToolUse: "PreToolUse",
|
|
34
|
+
PostToolUse: "PostToolUse",
|
|
35
|
+
Notification: "Notification",
|
|
36
|
+
Stop: "Stop",
|
|
37
|
+
SubagentStop: "SubagentStop",
|
|
38
|
+
PreCompact: "PreCompact",
|
|
39
|
+
UserPromptSubmit: "UserPromptSubmit",
|
|
15
40
|
};
|
|
41
|
+
/** Distinct Co-work event names supported by the mapping, for error messages. */
|
|
42
|
+
const SUPPORTED_COWORK_EVENTS = [...new Set(Object.values(AIR_TO_COWORK_EVENT))];
|
|
16
43
|
export class CoworkEmitter {
|
|
17
44
|
name = "cowork";
|
|
18
45
|
displayName = "Claude Co-work";
|
|
@@ -34,14 +61,24 @@ export class CoworkEmitter {
|
|
|
34
61
|
return { indexPath, plugins: builtPlugins };
|
|
35
62
|
}
|
|
36
63
|
buildPlugin(artifacts, pluginId, shortId, plugin, outputDir) {
|
|
37
|
-
mkdirSync(outputDir, { recursive: true });
|
|
38
64
|
const manifest = this.buildManifest(shortId, plugin);
|
|
39
|
-
const manifestDir = join(outputDir, ".claude-plugin");
|
|
40
|
-
mkdirSync(manifestDir, { recursive: true });
|
|
41
|
-
writeFileSync(join(manifestDir, "plugin.json"), JSON.stringify(manifest, null, 2) + "\n");
|
|
42
65
|
const skillActs = this.shortenChildIds(plugin.skills ?? []);
|
|
43
66
|
const hookActs = this.shortenChildIds(plugin.hooks ?? []);
|
|
44
67
|
const mcpActs = this.shortenChildIds(plugin.mcp_servers ?? []);
|
|
68
|
+
// Validate hooks BEFORE writing anything to disk. buildHooksConfig fails
|
|
69
|
+
// loud on any hook it can't fully materialize, so resolving it up front
|
|
70
|
+
// means a doomed plugin throws before a partial dir lands on disk —
|
|
71
|
+
// per-plugin emission is atomic and never leaves a broken-but-present dir
|
|
72
|
+
// (e.g. a plugin.json with no hooks/hooks.json) that looks successful.
|
|
73
|
+
const hooksConfig = hookActs.length > 0
|
|
74
|
+
? this.buildHooksConfig(artifacts, hookActs)
|
|
75
|
+
: { hooks: {} };
|
|
76
|
+
// Each materialized hook contributes exactly one matcher group.
|
|
77
|
+
const writtenHookCount = Object.values(hooksConfig.hooks).reduce((sum, groups) => sum + groups.length, 0);
|
|
78
|
+
mkdirSync(outputDir, { recursive: true });
|
|
79
|
+
const manifestDir = join(outputDir, ".claude-plugin");
|
|
80
|
+
mkdirSync(manifestDir, { recursive: true });
|
|
81
|
+
writeFileSync(join(manifestDir, "plugin.json"), JSON.stringify(manifest, null, 2) + "\n");
|
|
45
82
|
// Emit skills under skills/<short>/
|
|
46
83
|
for (const a of skillActs) {
|
|
47
84
|
const skill = artifacts.skills[a.qualified];
|
|
@@ -55,15 +92,12 @@ export class CoworkEmitter {
|
|
|
55
92
|
this.copyReferences(skill.references, skillTargetDir, artifacts);
|
|
56
93
|
}
|
|
57
94
|
}
|
|
58
|
-
// Emit hooks
|
|
59
|
-
if (
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
writeFileSync(join(hooksDir, "hooks.json"), JSON.stringify(hooksConfig, null, 2) + "\n");
|
|
65
|
-
this.copyHookScripts(artifacts, hookActs, outputDir);
|
|
66
|
-
}
|
|
95
|
+
// Emit hooks (already validated above).
|
|
96
|
+
if (Object.keys(hooksConfig.hooks).length > 0) {
|
|
97
|
+
const hooksDir = join(outputDir, "hooks");
|
|
98
|
+
mkdirSync(hooksDir, { recursive: true });
|
|
99
|
+
writeFileSync(join(hooksDir, "hooks.json"), JSON.stringify(hooksConfig, null, 2) + "\n");
|
|
100
|
+
this.copyHookScripts(artifacts, hookActs, outputDir);
|
|
67
101
|
}
|
|
68
102
|
// Emit MCP servers
|
|
69
103
|
if (mcpActs.length > 0) {
|
|
@@ -76,7 +110,7 @@ export class CoworkEmitter {
|
|
|
76
110
|
id: shortId,
|
|
77
111
|
path: outputDir,
|
|
78
112
|
skillCount: skillActs.filter((a) => artifacts.skills[a.qualified]).length,
|
|
79
|
-
hookCount:
|
|
113
|
+
hookCount: writtenHookCount,
|
|
80
114
|
mcpServerCount: mcpActs.filter((a) => artifacts.mcp[a.qualified]).length,
|
|
81
115
|
};
|
|
82
116
|
}
|
|
@@ -103,27 +137,49 @@ export class CoworkEmitter {
|
|
|
103
137
|
* Build inline hooks.json in the Co-work format.
|
|
104
138
|
* Each hook activation contributes one matcher group; commands are rewritten
|
|
105
139
|
* to use ${CLAUDE_PLUGIN_ROOT}/scripts/<short>/ for relative paths.
|
|
140
|
+
*
|
|
141
|
+
* Fails loud: any hook that cannot be fully materialized into a valid Co-work
|
|
142
|
+
* entry (unknown artifact, missing/malformed HOOK.json, unmapped event, or
|
|
143
|
+
* missing command) throws rather than being silently skipped. A silently
|
|
144
|
+
* skipped hook would leave the plugin dir without its `hooks/hooks.json` and
|
|
145
|
+
* script while the export still reported a non-zero hook count — emitting a
|
|
146
|
+
* broken plugin that looks successful.
|
|
106
147
|
*/
|
|
107
148
|
buildHooksConfig(artifacts, hookActs) {
|
|
108
149
|
const hooks = {};
|
|
109
150
|
for (const a of hookActs) {
|
|
110
151
|
const hook = artifacts.hooks[a.qualified];
|
|
111
|
-
if (!hook)
|
|
112
|
-
|
|
152
|
+
if (!hook) {
|
|
153
|
+
throw new Error(`Hook "${a.qualified}" is referenced by a plugin but is not present ` +
|
|
154
|
+
`in the resolved artifacts. Cannot export a plugin that references ` +
|
|
155
|
+
`a missing hook.`);
|
|
156
|
+
}
|
|
113
157
|
const hookJsonPath = join(hook.path, "HOOK.json");
|
|
114
|
-
if (!existsSync(hookJsonPath))
|
|
115
|
-
|
|
158
|
+
if (!existsSync(hookJsonPath)) {
|
|
159
|
+
throw new Error(`Hook "${a.qualified}" has no HOOK.json at ${hookJsonPath}. ` +
|
|
160
|
+
`The hook directory must contain a HOOK.json to be exported.`);
|
|
161
|
+
}
|
|
116
162
|
let hookJson;
|
|
117
163
|
try {
|
|
118
164
|
hookJson = JSON.parse(readFileSync(hookJsonPath, "utf-8"));
|
|
119
165
|
}
|
|
120
|
-
catch {
|
|
121
|
-
|
|
166
|
+
catch (err) {
|
|
167
|
+
const detail = err instanceof Error ? err.message : String(err);
|
|
168
|
+
throw new Error(`Hook "${a.qualified}" has a malformed HOOK.json at ${hookJsonPath}: ${detail}`);
|
|
122
169
|
}
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
170
|
+
const airEvent = hookJson.event;
|
|
171
|
+
const coworkEvent = airEvent ? AIR_TO_COWORK_EVENT[airEvent] : undefined;
|
|
172
|
+
if (!coworkEvent) {
|
|
173
|
+
throw new Error(`Hook "${a.qualified}" declares event ${JSON.stringify(airEvent)}, ` +
|
|
174
|
+
`which has no Claude Co-work equivalent. Supported events: ` +
|
|
175
|
+
`${SUPPORTED_COWORK_EVENTS.join(", ")}. Add a mapping in the cowork ` +
|
|
176
|
+
`emitter or exclude this hook from the plugin via air.json#exclude.`);
|
|
177
|
+
}
|
|
178
|
+
if (!hookJson.command) {
|
|
179
|
+
throw new Error(`Hook "${a.qualified}" has no "command" field in HOOK.json. ` +
|
|
180
|
+
`A hook must define a command to be exported.`);
|
|
181
|
+
}
|
|
182
|
+
const command = this.buildHookCommand(a.short, hook.path, hookJson.command, hookJson.args);
|
|
127
183
|
const hookEntry = {
|
|
128
184
|
type: "command",
|
|
129
185
|
command,
|
|
@@ -142,19 +198,89 @@ export class CoworkEmitter {
|
|
|
142
198
|
}
|
|
143
199
|
return { hooks };
|
|
144
200
|
}
|
|
145
|
-
|
|
201
|
+
/**
|
|
202
|
+
* Build a shell command string from HOOK.json's command and args fields,
|
|
203
|
+
* anchoring hook-relative paths under ${CLAUDE_PLUGIN_ROOT}/scripts/<short>/.
|
|
204
|
+
*
|
|
205
|
+
* Hook authors write paths relative to their own hook directory, but Co-work
|
|
206
|
+
* copies those files into the plugin's scripts/<short>/ tree and invokes the
|
|
207
|
+
* command with an arbitrary cwd, so a bare relative path would not resolve.
|
|
208
|
+
* Mirroring the Claude adapter:
|
|
209
|
+
* - `command` is anchored if it starts with `./` (explicit hook-relative).
|
|
210
|
+
* - Each `args` entry is anchored if it is path-like (has a `/` separator
|
|
211
|
+
* or an explicit `./` prefix) AND names a real file under the hook's
|
|
212
|
+
* source directory. This is what makes interpreter-style invocations like
|
|
213
|
+
* `node dist/capture.js` resolve. The path-like + exists requirement
|
|
214
|
+
* keeps bare command/package names (e.g. `lint-staged`) from being
|
|
215
|
+
* accidentally rewritten.
|
|
216
|
+
*
|
|
217
|
+
* Args that are neither anchored nor safe (contain shell metacharacters) are
|
|
218
|
+
* single-quoted.
|
|
219
|
+
*/
|
|
220
|
+
buildHookCommand(shortId, hookDir, command, args) {
|
|
146
221
|
let cmd = command;
|
|
147
222
|
if (cmd.startsWith("./")) {
|
|
148
|
-
cmd =
|
|
223
|
+
cmd = this.pluginScriptPath(shortId, cmd.slice(2));
|
|
149
224
|
}
|
|
150
225
|
if (args?.length) {
|
|
151
|
-
const escaped = args.map((a) =>
|
|
226
|
+
const escaped = args.map((a) => {
|
|
227
|
+
const rel = this.hookRelativeArg(a, hookDir);
|
|
228
|
+
if (rel !== null) {
|
|
229
|
+
return this.pluginScriptPath(shortId, rel);
|
|
230
|
+
}
|
|
231
|
+
return /[\s;&|`$"'\\]/.test(a) ? `'${a.replace(/'/g, "'\\''")}'` : a;
|
|
232
|
+
});
|
|
152
233
|
cmd += " " + escaped.join(" ");
|
|
153
234
|
}
|
|
154
235
|
return cmd;
|
|
155
236
|
}
|
|
237
|
+
/** Anchor a hook-relative path under the plugin's scripts/<short>/ tree. */
|
|
238
|
+
pluginScriptPath(shortId, rel) {
|
|
239
|
+
return `\${CLAUDE_PLUGIN_ROOT}/scripts/${shortId}/${rel}`;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* If `arg` is a hook-relative path pointing at a real file under the hook's
|
|
243
|
+
* source directory, return its path relative to that directory (for anchoring
|
|
244
|
+
* under scripts/<short>/). Otherwise return null. Flags, absolute/home paths,
|
|
245
|
+
* and bare command/package names are never rewritten.
|
|
246
|
+
*/
|
|
247
|
+
hookRelativeArg(arg, hookDir) {
|
|
248
|
+
if (!arg)
|
|
249
|
+
return null;
|
|
250
|
+
if (arg.startsWith("-") || arg.startsWith("/") || arg.startsWith("~")) {
|
|
251
|
+
return null;
|
|
252
|
+
}
|
|
253
|
+
const hasExplicitPrefix = arg.startsWith("./");
|
|
254
|
+
const candidate = hasExplicitPrefix ? arg.slice(2) : arg;
|
|
255
|
+
if (!hasExplicitPrefix && !candidate.includes("/")) {
|
|
256
|
+
return null;
|
|
257
|
+
}
|
|
258
|
+
if (!existsSync(join(hookDir, candidate))) {
|
|
259
|
+
return null;
|
|
260
|
+
}
|
|
261
|
+
return candidate;
|
|
262
|
+
}
|
|
156
263
|
/**
|
|
157
|
-
* Copy hook
|
|
264
|
+
* Copy a hook's directory — scripts AND its HOOK.json — into
|
|
265
|
+
* scripts/<short>/ inside the plugin directory.
|
|
266
|
+
*
|
|
267
|
+
* The HOOK.json must be carried forward, not dropped. A hook's own runtime
|
|
268
|
+
* config loader resolves its HOOK.json relative to its compiled entrypoint —
|
|
269
|
+
* one level up from `dist/` — and reads the top-level `x-config` block
|
|
270
|
+
* (storage backend + privacy settings) from it. In the exported plugin the
|
|
271
|
+
* copied `dist/` lands at scripts/<short>/dist/, so the loader looks for
|
|
272
|
+
* scripts/<short>/HOOK.json. If that file is absent the loader returns null
|
|
273
|
+
* and the hook fires at runtime but does nothing (e.g. transcript-capture
|
|
274
|
+
* uploads silently no-op).
|
|
275
|
+
*
|
|
276
|
+
* The emitted HOOK.json carries the same fully-composed `x-config` that
|
|
277
|
+
* `air prepare` materializes: the hook author's source `x-config` deep-merged
|
|
278
|
+
* with any consumer-supplied overlay declared in `air.json` (resolved onto
|
|
279
|
+
* the hook entry as `x-config`). With no consumer overlay the source file is
|
|
280
|
+
* copied byte-for-byte; with one, only the `x-config` is replaced by the
|
|
281
|
+
* merged value and every other field is preserved. Nothing is otherwise
|
|
282
|
+
* injected or stripped, so backend-specific validation rules (e.g. GCS
|
|
283
|
+
* forbidding a `no_auth.namespace_key`) survive by construction.
|
|
158
284
|
*/
|
|
159
285
|
copyHookScripts(artifacts, hookActs, pluginDir) {
|
|
160
286
|
for (const a of hookActs) {
|
|
@@ -164,12 +290,14 @@ export class CoworkEmitter {
|
|
|
164
290
|
const scriptsDir = join(pluginDir, "scripts", a.short);
|
|
165
291
|
const entries = readdirSync(hook.path);
|
|
166
292
|
for (const entry of entries) {
|
|
167
|
-
if (entry === "HOOK.json")
|
|
168
|
-
continue;
|
|
169
293
|
const srcPath = join(hook.path, entry);
|
|
170
294
|
if (statSync(srcPath).isDirectory()) {
|
|
171
295
|
this.copyDirRecursive(srcPath, join(scriptsDir, entry));
|
|
172
296
|
}
|
|
297
|
+
else if (entry === "HOOK.json") {
|
|
298
|
+
mkdirSync(scriptsDir, { recursive: true });
|
|
299
|
+
this.writeExportedHookJson(srcPath, join(scriptsDir, entry), hook["x-config"]);
|
|
300
|
+
}
|
|
173
301
|
else {
|
|
174
302
|
mkdirSync(scriptsDir, { recursive: true });
|
|
175
303
|
copyFileSync(srcPath, join(scriptsDir, entry));
|
|
@@ -177,6 +305,34 @@ export class CoworkEmitter {
|
|
|
177
305
|
}
|
|
178
306
|
}
|
|
179
307
|
}
|
|
308
|
+
/**
|
|
309
|
+
* Write the hook's HOOK.json into the exported plugin, merging any
|
|
310
|
+
* consumer-supplied `x-config` overlay (from the resolved hook entry) onto
|
|
311
|
+
* the source file's own `x-config` — mirroring what `air prepare` does via
|
|
312
|
+
* `writeMergedHookXConfigs`. With no overlay the source is copied verbatim so
|
|
313
|
+
* its exact formatting is preserved; with one, the source is re-serialized
|
|
314
|
+
* with only `x-config` replaced by the merged value.
|
|
315
|
+
*/
|
|
316
|
+
writeExportedHookJson(srcPath, destPath, consumerXConfig) {
|
|
317
|
+
const raw = readFileSync(srcPath, "utf-8");
|
|
318
|
+
if (consumerXConfig === undefined) {
|
|
319
|
+
writeFileSync(destPath, raw);
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
let hookJson;
|
|
323
|
+
try {
|
|
324
|
+
hookJson = JSON.parse(raw);
|
|
325
|
+
}
|
|
326
|
+
catch {
|
|
327
|
+
// buildHooksConfig already validated and hard-failed on a malformed
|
|
328
|
+
// HOOK.json before reaching here; copy verbatim as a defensive fallback.
|
|
329
|
+
writeFileSync(destPath, raw);
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
const merged = mergeXConfig(hookJson["x-config"], consumerXConfig);
|
|
333
|
+
const next = merged === undefined ? hookJson : { ...hookJson, "x-config": merged };
|
|
334
|
+
writeFileSync(destPath, JSON.stringify(next, null, 2) + "\n");
|
|
335
|
+
}
|
|
180
336
|
/**
|
|
181
337
|
* Translate AIR MCP server entries to Co-work .mcp.json format.
|
|
182
338
|
* Keys are bare shortnames — Co-work's MCP namespace is scope-naive.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cowork-emitter.js","sourceRoot":"","sources":["../src/cowork-emitter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cowork-emitter.js","sourceRoot":"","sources":["../src/cowork-emitter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pulsemcp/air-cowork",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"lint": "tsc --noEmit"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@pulsemcp/air-core": "0.
|
|
32
|
+
"@pulsemcp/air-core": "0.11.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/node": "^22.10.0",
|