@shield-agent/kya 0.25.0 → 0.26.1

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.
Files changed (57) hide show
  1. package/.cursor-plugin/plugin.json +1 -1
  2. package/.mcp.json +1 -1
  3. package/README.md +3 -3
  4. package/amp/settings.example.json +1 -1
  5. package/claude/claude_desktop_config.example.json +1 -1
  6. package/cline/cline_mcp_settings.example.json +1 -1
  7. package/copilot/mcp-config.example.json +1 -1
  8. package/dist/cli.d.ts +2 -0
  9. package/dist/cli.d.ts.map +1 -1
  10. package/dist/cli.js +95 -6
  11. package/dist/cli.js.map +1 -1
  12. package/dist/commands/connect.d.ts +3 -0
  13. package/dist/commands/connect.d.ts.map +1 -1
  14. package/dist/commands/connect.js +16 -1
  15. package/dist/commands/connect.js.map +1 -1
  16. package/dist/commands/hook.d.ts +17 -0
  17. package/dist/commands/hook.d.ts.map +1 -1
  18. package/dist/commands/hook.js +199 -6
  19. package/dist/commands/hook.js.map +1 -1
  20. package/dist/commands/hosted-hook.d.ts +164 -0
  21. package/dist/commands/hosted-hook.d.ts.map +1 -0
  22. package/dist/commands/hosted-hook.js +610 -0
  23. package/dist/commands/hosted-hook.js.map +1 -0
  24. package/dist/commands/team.d.ts +35 -0
  25. package/dist/commands/team.d.ts.map +1 -0
  26. package/dist/commands/team.js +174 -0
  27. package/dist/commands/team.js.map +1 -0
  28. package/dist/commands/wire-hooks.d.ts +9 -1
  29. package/dist/commands/wire-hooks.d.ts.map +1 -1
  30. package/dist/commands/wire-hooks.js +38 -9
  31. package/dist/commands/wire-hooks.js.map +1 -1
  32. package/dist/fs-atomic.d.ts +8 -3
  33. package/dist/fs-atomic.d.ts.map +1 -1
  34. package/dist/fs-atomic.js +42 -17
  35. package/dist/fs-atomic.js.map +1 -1
  36. package/dist/parse-args.d.ts.map +1 -1
  37. package/dist/parse-args.js +3 -1
  38. package/dist/parse-args.js.map +1 -1
  39. package/dist/trail.d.ts +4 -0
  40. package/dist/trail.d.ts.map +1 -1
  41. package/dist/trail.js +2 -0
  42. package/dist/trail.js.map +1 -1
  43. package/droid/README.md +1 -1
  44. package/droid/mcp.example.json +1 -1
  45. package/gemini/settings.example.json +1 -1
  46. package/grok/README.md +1 -1
  47. package/kilo/kilo.example.json +1 -1
  48. package/kimi/mcp.example.json +1 -1
  49. package/kiro/mcp.example.json +1 -1
  50. package/manifest.json +1 -1
  51. package/mastracode/mcp.example.json +1 -1
  52. package/mcp.json +1 -1
  53. package/openai/codex.config.example.toml +1 -1
  54. package/opencode/opencode.example.json +1 -1
  55. package/package.json +1 -1
  56. package/qwen/settings.example.json +1 -1
  57. package/server.json +2 -2
@@ -0,0 +1,35 @@
1
+ export declare const MARKETPLACE = "shield-kya";
2
+ export declare const PLUGIN_ID = "kya@shield-kya";
3
+ export declare const PUBLIC_REPO = "The-Pixel-Boys/shield-kya";
4
+ /** Public repo release tags are `v<version>` (the `kya-v*` tags live only in the private monorepo). */
5
+ export declare function releaseRef(version?: string): string;
6
+ export declare function marketplaceSource(version?: string): {
7
+ source: string;
8
+ repo: string;
9
+ ref: string;
10
+ };
11
+ /** The managed-settings document an admin deploys. Same pin as `team init`. */
12
+ export declare function managedSettings(version?: string): Record<string, unknown>;
13
+ export interface TeamInitResult {
14
+ readonly path: string;
15
+ readonly written: boolean;
16
+ readonly dryRun: boolean;
17
+ /** Human-readable change lines, empty when the file already matches. */
18
+ readonly changes: readonly string[];
19
+ readonly content: string;
20
+ readonly ref: string;
21
+ /** The existing file was not in canonical JSON.stringify layout, so unrelated lines are re-laid out. */
22
+ readonly reformatted: boolean;
23
+ }
24
+ type Obj = Record<string, unknown>;
25
+ /** Merge our two keys into `settings`; returns change lines. Throws (nothing written) on conflicts. */
26
+ export declare function mergeTeamSettings(settings: Obj, version?: string): string[];
27
+ export declare function runTeamInit(opts: {
28
+ readonly cwd: string;
29
+ readonly env?: NodeJS.ProcessEnv;
30
+ readonly dryRun?: boolean;
31
+ readonly version?: string;
32
+ }): TeamInitResult;
33
+ export declare function formatTeamInitHuman(r: TeamInitResult): string;
34
+ export {};
35
+ //# sourceMappingURL=team.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../src/commands/team.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,WAAW,eAAe,CAAC;AACxC,eAAO,MAAM,SAAS,mBAAmB,CAAC;AAC1C,eAAO,MAAM,WAAW,8BAA8B,CAAC;AAEvD,uGAAuG;AACvG,wBAAgB,UAAU,CAAC,OAAO,GAAE,MAAoB,GAAG,MAAM,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,MAAoB;;;;EAE9D;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,OAAO,GAAE,MAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKtF;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,wGAAwG;IACxG,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B;AAED,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAgDnC,uGAAuG;AACvG,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,GAAE,MAAoB,GAAG,MAAM,EAAE,CA0CxF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,cAAc,CA4BjB;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,cAAc,GAAG,MAAM,CAkB7D"}
@@ -0,0 +1,174 @@
1
+ /**
2
+ * `kya team init` / `kya team managed-settings`: spread the Claude Code plugin to a team.
3
+ *
4
+ * init merges two keys into the CURRENT PROJECT's `.claude/settings.json` (never the user's):
5
+ * extraKnownMarketplaces["shield-kya"] = github The-Pixel-Boys/shield-kya at ref v<version>
6
+ * enabledPlugins["kya@shield-kya"] = true
7
+ * Every other key is kept. No network, no permissions, nothing auto-accepted: Claude Code still
8
+ * shows each teammate its folder trust prompt. managed-settings prints the same two keys as an
9
+ * admin policy document. Schema: code.claude.com/docs/en/plugins/org and
10
+ * /docs/en/plugins/marketplace-reference (marketplace `github` source: repo, ref, path; no sha).
11
+ */
12
+ import { existsSync, lstatSync, mkdirSync, readFileSync, realpathSync } from "node:fs";
13
+ import { homedir } from "node:os";
14
+ import { basename, dirname, join } from "node:path";
15
+ import { KyaError } from "../errors.js";
16
+ import { atomicWriteSync } from "../fs-atomic.js";
17
+ import { CLI_VERSION } from "../version.js";
18
+ export const MARKETPLACE = "shield-kya";
19
+ export const PLUGIN_ID = "kya@shield-kya";
20
+ export const PUBLIC_REPO = "The-Pixel-Boys/shield-kya";
21
+ /** Public repo release tags are `v<version>` (the `kya-v*` tags live only in the private monorepo). */
22
+ export function releaseRef(version = CLI_VERSION) {
23
+ return `v${version}`;
24
+ }
25
+ export function marketplaceSource(version = CLI_VERSION) {
26
+ return { source: "github", repo: PUBLIC_REPO, ref: releaseRef(version) };
27
+ }
28
+ /** The managed-settings document an admin deploys. Same pin as `team init`. */
29
+ export function managedSettings(version = CLI_VERSION) {
30
+ return {
31
+ extraKnownMarketplaces: { [MARKETPLACE]: { source: marketplaceSource(version) } },
32
+ enabledPlugins: { [PLUGIN_ID]: true },
33
+ };
34
+ }
35
+ const isObj = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
36
+ const refuse = (msg) => new KyaError(msg, "TEAM_REFUSED", 1);
37
+ function real(p) {
38
+ try {
39
+ return realpathSync(p);
40
+ }
41
+ catch {
42
+ return undefined;
43
+ }
44
+ }
45
+ /** Refuse anything that would land outside the project: symlinks, or the user-level Claude dir. */
46
+ function guardPaths(cwd, env) {
47
+ const root = real(cwd);
48
+ if (!root)
49
+ throw refuse(`project directory not found: ${cwd}`);
50
+ const dir = join(root, ".claude");
51
+ const file = join(dir, "settings.json");
52
+ // Resolve even when the user dir does not exist yet (HOME behind a symlink, fresh machine).
53
+ const loose = (p) => real(p) ?? join(real(dirname(p)) ?? dirname(p), basename(p));
54
+ const userDirs = [join(homedir(), ".claude"), env.CLAUDE_CONFIG_DIR].filter((p) => !!p).map(loose);
55
+ if (userDirs.includes(dir)) {
56
+ throw refuse(`${dir} is your user-level Claude Code directory; run kya team init inside a project`);
57
+ }
58
+ for (const [p, kind] of [[dir, "directory"], [file, "file"]]) {
59
+ const st = lstatSync(p, { throwIfNoEntry: false });
60
+ if (!st)
61
+ continue;
62
+ if (st.isSymbolicLink())
63
+ throw refuse(`${p} is a symlink; refusing to write through it`);
64
+ if (kind === "directory" ? !st.isDirectory() : !st.isFile())
65
+ throw refuse(`${p} is not a regular ${kind}`);
66
+ }
67
+ return { dir, file };
68
+ }
69
+ function detectIndent(text) {
70
+ const m = /\n([ \t]+)"/.exec(text);
71
+ return m ? m[1] : 2;
72
+ }
73
+ /** True when tag `a` (vX.Y.Z) is a strictly newer release than `b`; non-semver refs compare as not newer. */
74
+ function newerThan(a, b) {
75
+ const parse = (t) => /^v(\d+)\.(\d+)\.(\d+)$/.exec(t)?.slice(1).map(Number);
76
+ const x = parse(a);
77
+ const y = parse(b);
78
+ if (!x || !y)
79
+ return false;
80
+ const d = x.map((n, i) => n - y[i]).find((n) => n !== 0);
81
+ return d !== undefined && d > 0;
82
+ }
83
+ /** Merge our two keys into `settings`; returns change lines. Throws (nothing written) on conflicts. */
84
+ export function mergeTeamSettings(settings, version = CLI_VERSION) {
85
+ const changes = [];
86
+ const want = marketplaceSource(version);
87
+ // Claude Code reads the alias only when the canonical key is absent: adding ours would drop theirs.
88
+ if (settings.additionalMarketplaces !== undefined) {
89
+ throw refuse("settings use the additionalMarketplaces alias; rename it to extraKnownMarketplaces by hand first");
90
+ }
91
+ const markets = settings.extraKnownMarketplaces ?? {};
92
+ if (!isObj(markets))
93
+ throw refuse("extraKnownMarketplaces is not an object; fix it by hand first");
94
+ const entry = markets[MARKETPLACE];
95
+ if (entry === undefined) {
96
+ markets[MARKETPLACE] = { source: want };
97
+ changes.push(`+ extraKnownMarketplaces.${MARKETPLACE}.source = github ${want.repo} ref ${want.ref}`);
98
+ }
99
+ else {
100
+ const src = isObj(entry) ? entry.source : undefined;
101
+ if (!isObj(src) || src.source !== "github" || src.repo !== PUBLIC_REPO) {
102
+ throw refuse(`extraKnownMarketplaces.${MARKETPLACE} already points somewhere else; remove or fix it by hand, then rerun`);
103
+ }
104
+ if (src.ref !== want.ref) {
105
+ if (typeof src.ref === "string" && newerThan(src.ref, want.ref)) {
106
+ changes.push(`! downgrade: the file pins ${src.ref}, newer than this kya (${want.ref}); upgrade kya instead if that is not intended`);
107
+ }
108
+ changes.push(`~ extraKnownMarketplaces.${MARKETPLACE}.source.ref: ${JSON.stringify(src.ref ?? null)} -> "${want.ref}"`);
109
+ src.ref = want.ref;
110
+ }
111
+ }
112
+ settings.extraKnownMarketplaces = markets;
113
+ const enabled = settings.enabledPlugins ?? {};
114
+ if (!isObj(enabled))
115
+ throw refuse("enabledPlugins is not an object; fix it by hand first");
116
+ if (enabled[PLUGIN_ID] === false) {
117
+ throw refuse(`enabledPlugins["${PLUGIN_ID}"] is false (someone turned it off); change it by hand if you want it on`);
118
+ }
119
+ if (enabled[PLUGIN_ID] !== true) {
120
+ enabled[PLUGIN_ID] = true;
121
+ changes.push(`+ enabledPlugins["${PLUGIN_ID}"] = true`);
122
+ }
123
+ settings.enabledPlugins = enabled;
124
+ return changes;
125
+ }
126
+ export function runTeamInit(opts) {
127
+ const { dir, file } = guardPaths(opts.cwd, opts.env ?? process.env);
128
+ const before = existsSync(file) ? readFileSync(file, "utf8") : undefined;
129
+ let settings = {};
130
+ if (before !== undefined && before.trim() !== "") {
131
+ try {
132
+ settings = JSON.parse(before);
133
+ }
134
+ catch (err) {
135
+ throw refuse(`${file} is not valid JSON (${err.message}); nothing was written`);
136
+ }
137
+ }
138
+ if (!isObj(settings))
139
+ throw refuse(`${file} is not a JSON object; nothing was written`);
140
+ const changes = mergeTeamSettings(settings, opts.version);
141
+ const indent = before ? detectIndent(before) : 2;
142
+ // ponytail: re-serializes the whole file; a surgical text insert would keep a hand-made layout.
143
+ const reformatted = !!before?.trim() && `${JSON.stringify(JSON.parse(before), null, indent)}\n` !== before;
144
+ const content = `${JSON.stringify(settings, null, indent)}\n`;
145
+ const base = { path: file, dryRun: opts.dryRun === true, changes, content, ref: releaseRef(opts.version), reformatted };
146
+ if (base.dryRun || changes.length === 0)
147
+ return { ...base, written: false };
148
+ if (!existsSync(dir))
149
+ mkdirSync(dir);
150
+ // Re-check right before the rename that .claude and settings.json are still not symlinks and still the
151
+ // project's. Residual: a same-user process can still swap them between this check and the rename (TOCTOU);
152
+ // a planted temp file or symlink cannot be followed, since atomicWriteSync creates its temp with O_EXCL.
153
+ atomicWriteSync(file, content, () => {
154
+ const again = guardPaths(opts.cwd, opts.env ?? process.env);
155
+ if (again.file !== file)
156
+ throw refuse(`${dir} changed while writing; nothing was written`);
157
+ });
158
+ return { ...base, written: true };
159
+ }
160
+ export function formatTeamInitHuman(r) {
161
+ const lines = [];
162
+ if (r.changes.length === 0)
163
+ lines.push(`${r.path} already enables ${PLUGIN_ID} at ${r.ref}; nothing to do.`);
164
+ else
165
+ lines.push(`${r.dryRun ? "Would write" : "Wrote"} ${r.path}:`, ...r.changes.map((c) => ` ${c}`));
166
+ if (r.changes.length > 0 && r.reformatted) {
167
+ lines.push("Note: the existing file's layout is normalized to standard JSON (keys and values unchanged).");
168
+ }
169
+ if (r.dryRun && r.changes.length > 0)
170
+ lines.push("", "Resulting file:", r.content.trimEnd());
171
+ lines.push("", "Next: commit .claude/settings.json. Teammates see Claude Code's folder trust prompt once;", `after they accept it, the ${MARKETPLACE} marketplace is added and ${PLUGIN_ID} installs at the next session.`, `Pinned to tag ${r.ref} of ${PUBLIC_REPO}. Rerun kya team init after upgrading kya to move the pin.`, `Verify the public tag ${r.ref} exists (git ls-remote https://github.com/${PUBLIC_REPO} refs/tags/${r.ref});`, "if it does not, teammates will see the plugin skipped, not an error.", "OSS plugin is advisory and fails open: it records tool calls and blocks only the never-list.");
172
+ return lines.join("\n");
173
+ }
174
+ //# sourceMappingURL=team.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/commands/team.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AACxC,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAgB,CAAC;AAC1C,MAAM,CAAC,MAAM,WAAW,GAAG,2BAA2B,CAAC;AAEvD,uGAAuG;AACvG,MAAM,UAAU,UAAU,CAAC,UAAkB,WAAW;IACtD,OAAO,IAAI,OAAO,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,UAAkB,WAAW;IAC7D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;AAC3E,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,eAAe,CAAC,UAAkB,WAAW;IAC3D,OAAO;QACL,sBAAsB,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE;QACjF,cAAc,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE;KACtC,CAAC;AACJ,CAAC;AAeD,MAAM,KAAK,GAAG,CAAC,CAAU,EAAY,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjG,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;AAErE,SAAS,IAAI,CAAC,CAAS;IACrB,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,mGAAmG;AACnG,SAAS,UAAU,CAAC,GAAW,EAAE,GAAsB;IACrD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,IAAI,CAAC,IAAI;QAAE,MAAM,MAAM,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACxC,4FAA4F;IAC5F,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChH,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,GAAG,GAAG,+EAA+E,CAAC,CAAC;IACtG,CAAC;IACD,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAU,EAAE,CAAC;QACtE,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,IAAI,EAAE,CAAC,cAAc,EAAE;YAAE,MAAM,MAAM,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QACzF,IAAI,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE;YAAE,MAAM,MAAM,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IAC7G,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED,6GAA6G;AAC7G,SAAS,SAAS,CAAC,CAAS,EAAE,CAAS;IACrC,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpF,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,iBAAiB,CAAC,QAAa,EAAE,UAAkB,WAAW;IAC5E,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAExC,oGAAoG;IACpG,IAAI,QAAQ,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;QAClD,MAAM,MAAM,CAAC,kGAAkG,CAAC,CAAC;IACnH,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,sBAAsB,IAAI,EAAE,CAAC;IACtD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAAE,MAAM,MAAM,CAAC,+DAA+D,CAAC,CAAC;IACnG,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACnC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,4BAA4B,WAAW,oBAAoB,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACvG,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QACpD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACvE,MAAM,MAAM,CACV,0BAA0B,WAAW,sEAAsE,CAC5G,CAAC;QACJ,CAAC;QACD,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,IAAI,OAAO,GAAG,CAAC,GAAG,KAAK,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChE,OAAO,CAAC,IAAI,CAAC,8BAA8B,GAAG,CAAC,GAAG,0BAA0B,IAAI,CAAC,GAAG,gDAAgD,CAAC,CAAC;YACxI,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,4BAA4B,WAAW,gBAAgB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;YACxH,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACrB,CAAC;IACH,CAAC;IACD,QAAQ,CAAC,sBAAsB,GAAG,OAAO,CAAC;IAE1C,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAAE,MAAM,MAAM,CAAC,uDAAuD,CAAC,CAAC;IAC3F,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,KAAK,EAAE,CAAC;QACjC,MAAM,MAAM,CAAC,mBAAmB,SAAS,0EAA0E,CAAC,CAAC;IACvH,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC;QAChC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,qBAAqB,SAAS,WAAW,CAAC,CAAC;IAC1D,CAAC;IACD,QAAQ,CAAC,cAAc,GAAG,OAAO,CAAC;IAClC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAK3B;IACC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,IAAI,QAAQ,GAAY,EAAE,CAAC;IAC3B,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,IAAI,CAAC;YACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,MAAM,CAAC,GAAG,IAAI,uBAAwB,GAAa,CAAC,OAAO,wBAAwB,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;QAAE,MAAM,MAAM,CAAC,GAAG,IAAI,4CAA4C,CAAC,CAAC;IACxF,MAAM,OAAO,GAAG,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,gGAAgG;IAChG,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC;IAC3G,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;IAC9D,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxH,IAAI,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5E,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IACrC,uGAAuG;IACvG,2GAA2G;IAC3G,yGAAyG;IACzG,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE;QAClC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;QAC5D,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;YAAE,MAAM,MAAM,CAAC,GAAG,GAAG,6CAA6C,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,CAAiB;IACnD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,oBAAoB,SAAS,OAAO,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC;;QACxG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACvG,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC;IAC7G,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7F,KAAK,CAAC,IAAI,CACR,EAAE,EACF,2FAA2F,EAC3F,6BAA6B,WAAW,6BAA6B,SAAS,gCAAgC,EAC9G,iBAAiB,CAAC,CAAC,GAAG,OAAO,WAAW,4DAA4D,EACpG,yBAAyB,CAAC,CAAC,GAAG,6CAA6C,WAAW,cAAc,CAAC,CAAC,GAAG,IAAI,EAC7G,sEAAsE,EACtE,8FAA8F,CAC/F,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -3,6 +3,14 @@ export interface WireHookInput {
3
3
  readonly host: string;
4
4
  readonly home: string;
5
5
  readonly force?: boolean;
6
+ /** Hosted-plane hook (beta, claude only): flags appended to the command. Never the key. */
7
+ readonly hosted?: HostedHookWiring;
8
+ }
9
+ export interface HostedHookWiring {
10
+ /** Absolute path of the 0600 plane config file (validated by the caller). */
11
+ readonly configPath: string;
12
+ readonly strict?: boolean;
13
+ readonly shadow?: boolean;
6
14
  }
7
15
  export interface WireHookResult {
8
16
  readonly host: string;
@@ -14,7 +22,7 @@ export declare const HOOK_HOSTS: readonly ["claude", "grok", "kimi"];
14
22
  /** Whether a host has verified PreToolUse hook wiring. */
15
23
  export declare function hookSupported(hostId: string): boolean;
16
24
  /** Shell command a host's PreToolUse hook runs. JSON-quoted paths are safe to embed. */
17
- export declare function hookCommand(hostId: string): string;
25
+ export declare function hookCommand(hostId: string, hosted?: HostedHookWiring): string;
18
26
  /**
19
27
  * Build the [[hooks]] TOML block for a command string. The command goes into
20
28
  * a TOML literal string (single quotes) so the embedded JSON-quoted paths are
@@ -1 +1 @@
1
- {"version":3,"file":"wire-hooks.d.ts","sourceRoot":"","sources":["../../src/commands/wire-hooks.ts"],"names":[],"mappings":"AAYA,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAChC;AAED,eAAO,MAAM,UAAU,qCAAsC,CAAC;AAI9D,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAID,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAIlD;AA4GD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAa1D;AAyDD,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CA4B7D;AAED,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,KAAK,EAAE;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,GAAG,cAAc,EAAE,CAKnB"}
1
+ {"version":3,"file":"wire-hooks.d.ts","sourceRoot":"","sources":["../../src/commands/wire-hooks.ts"],"names":[],"mappings":"AAYA,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,2FAA2F;IAC3F,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAChC;AAED,eAAO,MAAM,UAAU,qCAAsC,CAAC;AAI9D,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAID,wFAAwF;AACxF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAY7E;AA+HD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAa1D;AAyDD,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAiC7D;AAED,4EAA4E;AAC5E,wBAAgB,SAAS,CAAC,KAAK,EAAE;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,GAAG,cAAc,EAAE,CAKnB"}
@@ -18,20 +18,38 @@ export function hookSupported(hostId) {
18
18
  }
19
19
  const HOOK_TIMEOUT_SECONDS = 5;
20
20
  /** Shell command a host's PreToolUse hook runs. JSON-quoted paths are safe to embed. */
21
- export function hookCommand(hostId) {
22
- return [process.execPath, cliJsPath()]
21
+ export function hookCommand(hostId, hosted) {
22
+ const base = [process.execPath, cliJsPath()]
23
23
  .map((s) => JSON.stringify(s))
24
24
  .join(" ") + ` hook --host ${hostId}`;
25
+ if (!hosted)
26
+ return base;
27
+ // Inside double quotes the shell still expands $ and backticks: refuse them.
28
+ if (/[$`"\\\n\r]/.test(hosted.configPath)) {
29
+ throw new UsageError("--plane-config path must not contain $, backtick, quote, backslash or newline");
30
+ }
31
+ return `${base} --plane-config ${JSON.stringify(hosted.configPath)}` +
32
+ (hosted.strict ? " --strict" : "") +
33
+ (hosted.shadow ? " --plane-shadow" : "");
25
34
  }
26
35
  function hookIdentity(hostId) {
27
36
  return `hook --host ${hostId}`;
28
37
  }
29
- /** Claude/Grok JSON entry shape: matcher "" matches every tool. */
30
- function preToolUseEntry(hostId) {
38
+ /**
39
+ * Claude/Grok JSON entry shape: matcher "" matches every tool. The hosted hook
40
+ * also sets onFailure "block" (Claude Code 2.1.295+), so a crash or host
41
+ * timeout blocks the call instead of letting it through.
42
+ */
43
+ function preToolUseEntry(hostId, hosted) {
31
44
  return {
32
45
  matcher: "",
33
46
  hooks: [
34
- { type: "command", command: hookCommand(hostId), timeout: HOOK_TIMEOUT_SECONDS },
47
+ {
48
+ type: "command",
49
+ command: hookCommand(hostId, hosted),
50
+ timeout: HOOK_TIMEOUT_SECONDS,
51
+ ...(hosted ? { onFailure: "block" } : {}),
52
+ },
35
53
  ],
36
54
  };
37
55
  }
@@ -41,8 +59,8 @@ function preToolUseEntry(hostId) {
41
59
  * instead of rewritten. An existing kya entry (matched by command identity)
42
60
  * means skipped; --force replaces that one entry, preserving all others.
43
61
  */
44
- function wireClaudeSettings(path, force) {
45
- const entry = preToolUseEntry("claude");
62
+ function wireClaudeSettings(path, force, hosted) {
63
+ const entry = preToolUseEntry("claude", hosted);
46
64
  if (!existsSync(path)) {
47
65
  atomicWriteSync(createTarget(path), `${JSON.stringify({ hooks: { PreToolUse: [entry] } }, null, 2)}\n`);
48
66
  return "created";
@@ -73,7 +91,15 @@ function wireClaudeSettings(path, force) {
73
91
  Array.isArray(e.hooks) &&
74
92
  e.hooks.some((h) => typeof h.command === "string" && h.command.includes(hookIdentity("claude")));
75
93
  const kyaIndex = entries.findIndex(isKyaEntry);
76
- if (kyaIndex !== -1 && !force)
94
+ const existingHosted = kyaIndex !== -1 &&
95
+ (entries[kyaIndex].hooks ?? []).some((h) => typeof h.command === "string" && h.command.includes("--plane-config"));
96
+ if (existingHosted && !hosted) {
97
+ // Never silently swap a fail-closed hosted hook for the fail-open OSS one.
98
+ throw new UsageError(`${path} already has the hosted-plane kya hook; re-run with --hosted to change it, or remove that entry by hand to go back to the local hook`);
99
+ }
100
+ // Hosted always replaces the kya entry: keeping the OSS copy next to it would
101
+ // leave a second, fail-open hook (and two plane calls) per tool call.
102
+ if (kyaIndex !== -1 && !force && !hosted)
77
103
  return "skipped";
78
104
  if (kyaIndex !== -1) {
79
105
  entries[kyaIndex] = entry;
@@ -182,6 +208,9 @@ function wireKimiToml(path, force) {
182
208
  export function wireHook(input) {
183
209
  const key = input.host.trim().toLowerCase();
184
210
  const force = Boolean(input.force);
211
+ if (input.hosted && key !== "claude") {
212
+ throw new UsageError(`--hosted hook wiring is claude only in this beta (needs the host's onFailure "block"); ${input.host} is not supported`);
213
+ }
185
214
  let label;
186
215
  let path;
187
216
  let status;
@@ -189,7 +218,7 @@ export function wireHook(input) {
189
218
  case "claude":
190
219
  label = CONNECT_REGISTRY["claude"].label;
191
220
  path = join(input.home, ".claude", "settings.json");
192
- status = wireClaudeSettings(path, force);
221
+ status = wireClaudeSettings(path, force, input.hosted);
193
222
  break;
194
223
  case "grok":
195
224
  label = CONNECT_REGISTRY["grok"].label;
@@ -1 +1 @@
1
- {"version":3,"file":"wire-hooks.js","sourceRoot":"","sources":["../../src/commands/wire-hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wire-hooks.js","sourceRoot":"","sources":["../../src/commands/wire-hooks.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,13 @@
2
2
  * Crash-safe write: tmp file in the same directory, then rename onto the
3
3
  * target (atomic on POSIX and win32 within one volume). A mid-write crash
4
4
  * leaves the original config intact; the tmp file is removed best-effort.
5
- * An existing target's file mode is carried over - a rename would otherwise
6
- * turn a 0600 config into the umask default.
5
+ *
6
+ * The tmp name carries 128 random bits and is created with O_EXCL ("wx"), so
7
+ * a file or symlink planted at a guessable name (for example inside a cloned
8
+ * repo) makes the write fail instead of being followed. The mode is set on the
9
+ * open fd (fchmod), never through a path that could be swapped. An existing
10
+ * regular target's mode is carried over - a rename would otherwise turn a 0600
11
+ * config into the umask default.
7
12
  */
8
- export declare function atomicWriteSync(target: string, content: string): void;
13
+ export declare function atomicWriteSync(target: string, content: string, beforeRename?: () => void): void;
9
14
  //# sourceMappingURL=fs-atomic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fs-atomic.d.ts","sourceRoot":"","sources":["../src/fs-atomic.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CA0BrE"}
1
+ {"version":3,"file":"fs-atomic.d.ts","sourceRoot":"","sources":["../src/fs-atomic.ts"],"names":[],"mappings":"AAOA;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CA0ChG"}
package/dist/fs-atomic.js CHANGED
@@ -1,39 +1,64 @@
1
1
  /**
2
- * Shared crash-safe file write, used by connect/wire-hooks host config writes
3
- * and the certify attestation store.
2
+ * Shared crash-safe file write, used by connect/wire-hooks host config writes,
3
+ * team init, gate config, telemetry state and the certify attestation store.
4
4
  */
5
- import { chmodSync, renameSync, rmSync, statSync, writeFileSync } from "node:fs";
5
+ import { randomBytes } from "node:crypto";
6
+ import { closeSync, fchmodSync, lstatSync, openSync, renameSync, rmSync, writeSync } from "node:fs";
6
7
  /**
7
8
  * Crash-safe write: tmp file in the same directory, then rename onto the
8
9
  * target (atomic on POSIX and win32 within one volume). A mid-write crash
9
10
  * leaves the original config intact; the tmp file is removed best-effort.
10
- * An existing target's file mode is carried over - a rename would otherwise
11
- * turn a 0600 config into the umask default.
11
+ *
12
+ * The tmp name carries 128 random bits and is created with O_EXCL ("wx"), so
13
+ * a file or symlink planted at a guessable name (for example inside a cloned
14
+ * repo) makes the write fail instead of being followed. The mode is set on the
15
+ * open fd (fchmod), never through a path that could be swapped. An existing
16
+ * regular target's mode is carried over - a rename would otherwise turn a 0600
17
+ * config into the umask default.
12
18
  */
13
- export function atomicWriteSync(target, content) {
14
- const tmp = `${target}.kya-tmp-${process.pid}`;
19
+ export function atomicWriteSync(target, content, beforeRename) {
20
+ const tmp = `${target}.kya-tmp-${randomBytes(16).toString("hex")}`;
21
+ let mode;
15
22
  try {
16
- let mode;
17
- try {
18
- mode = statSync(target).mode;
19
- }
20
- catch {
21
- /* new file - keep default mode */
22
- }
23
- writeFileSync(tmp, content, "utf8");
23
+ const st = lstatSync(target);
24
+ if (st.isFile())
25
+ mode = st.mode & 0o7777;
26
+ }
27
+ catch {
28
+ /* new file - keep default mode */
29
+ }
30
+ let fd;
31
+ let created = false;
32
+ try {
33
+ fd = openSync(tmp, "wx", mode ?? 0o666);
34
+ created = true;
24
35
  if (mode !== undefined) {
25
36
  try {
26
- chmodSync(tmp, mode);
37
+ fchmodSync(fd, mode); // umask may have stripped bits at create
27
38
  }
28
39
  catch {
29
40
  /* win32 chmod semantics differ; POSIX correctness is what matters */
30
41
  }
31
42
  }
43
+ writeSync(fd, content, null, "utf8");
44
+ closeSync(fd);
45
+ fd = undefined;
46
+ beforeRename?.();
32
47
  renameSync(tmp, target);
33
48
  }
34
49
  catch (err) {
50
+ if (fd !== undefined) {
51
+ try {
52
+ closeSync(fd);
53
+ }
54
+ catch {
55
+ /* already closed */
56
+ }
57
+ }
35
58
  try {
36
- rmSync(tmp, { force: true });
59
+ // Only remove what we created: never unlink a pre-existing entry at our name.
60
+ if (created)
61
+ rmSync(tmp, { force: true });
37
62
  }
38
63
  catch {
39
64
  /* best-effort cleanup */
@@ -1 +1 @@
1
- {"version":3,"file":"fs-atomic.js","sourceRoot":"","sources":["../src/fs-atomic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEjF;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,OAAe;IAC7D,MAAM,GAAG,GAAG,GAAG,MAAM,YAAY,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/C,IAAI,CAAC;QACH,IAAI,IAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,kCAAkC;QACpC,CAAC;QACD,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACpC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,qEAAqE;YACvE,CAAC;QACH,CAAC;QACD,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"fs-atomic.js","sourceRoot":"","sources":["../src/fs-atomic.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpG;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,OAAe,EAAE,YAAyB;IACxF,MAAM,GAAG,GAAG,GAAG,MAAM,YAAY,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACnE,IAAI,IAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,EAAE,CAAC,MAAM,EAAE;YAAE,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,kCAAkC;IACpC,CAAC;IACD,IAAI,EAAsB,CAAC;IAC3B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,CAAC;QACH,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,KAAK,CAAC,CAAC;QACxC,OAAO,GAAG,IAAI,CAAC;QACf,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC;gBACH,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,yCAAyC;YACjE,CAAC;YAAC,MAAM,CAAC;gBACP,qEAAqE;YACvE,CAAC;QACH,CAAC;QACD,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACrC,SAAS,CAAC,EAAE,CAAC,CAAC;QACd,EAAE,GAAG,SAAS,CAAC;QACf,YAAY,EAAE,EAAE,CAAC;QACjB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,SAAS,CAAC,EAAE,CAAC,CAAC;YAChB,CAAC;YAAC,MAAM,CAAC;gBACP,oBAAoB;YACtB,CAAC;QACH,CAAC;QACD,IAAI,CAAC;YACH,8EAA8E;YAC9E,IAAI,OAAO;gBAAE,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-args.d.ts","sourceRoot":"","sources":["../src/parse-args.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAC5D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAoD7D;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EACjD,GAAG,KAAK,EAAE,MAAM,EAAE,GACjB,MAAM,GAAG,SAAS,CAMpB;AAED,wBAAgB,QAAQ,CACtB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EACjD,GAAG,KAAK,EAAE,MAAM,EAAE,GACjB,OAAO,CAOT;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EACjD,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM,CAOR"}
1
+ {"version":3,"file":"parse-args.d.ts","sourceRoot":"","sources":["../src/parse-args.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CAC5D;AAKD,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAoD7D;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EACjD,GAAG,KAAK,EAAE,MAAM,EAAE,GACjB,MAAM,GAAG,SAAS,CAMpB;AAED,wBAAgB,QAAQ,CACtB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EACjD,GAAG,KAAK,EAAE,MAAM,EAAE,GACjB,OAAO,CAOT;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EACjD,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM,CAOR"}
@@ -2,6 +2,8 @@
2
2
  * Minimal argv parser - no external CLI framework.
3
3
  * Supports: flags (--foo), values (--foo bar | --foo=bar), boolean (--stdio), positionals.
4
4
  */
5
+ /** Pure switches: never take the next token as their value (`kya --dry-run team init` must not eat `team`). */
6
+ const SWITCHES = new Set(["dry-run"]);
5
7
  export function parseArgs(argv) {
6
8
  const args = [...argv];
7
9
  // drop node + script path when present (cli entry strips itself; tests pass raw)
@@ -24,7 +26,7 @@ export function parseArgs(argv) {
24
26
  }
25
27
  const key = token.slice(2);
26
28
  const next = args[i + 1];
27
- if (next !== undefined && !next.startsWith("-")) {
29
+ if (next !== undefined && !next.startsWith("-") && !SWITCHES.has(key)) {
28
30
  // boolean-looking flags stay boolean when next is another command-like word
29
31
  // only consume next if it looks like a value (not a known pattern of pure flag)
30
32
  flags[key] = next;
@@ -1 +1 @@
1
- {"version":3,"file":"parse-args.js","sourceRoot":"","sources":["../src/parse-args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse-args.js","sourceRoot":"","sources":["../src/parse-args.ts"],"names":[],"mappings":"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"}
package/dist/trail.d.ts CHANGED
@@ -36,6 +36,10 @@ export interface TrailEvent {
36
36
  readonly sourceHash?: string;
37
37
  /** agt import: false when the source log's hash chain did not verify. */
38
38
  readonly chainVerified?: boolean;
39
+ /** Hosted hook with --plane-shadow: the verdict was recorded, never enforced (except the never-list). */
40
+ readonly shadow?: boolean;
41
+ /** Hosted hook: env or repo config tried to steer it and was ignored. */
42
+ readonly configIgnored?: boolean;
39
43
  }
40
44
  export declare function globalTrailPath(env?: NodeJS.ProcessEnv): string;
41
45
  /** Pre-0.3.0 per-project trail location, still merged on read. */
@@ -1 +1 @@
1
- {"version":3,"file":"trail.d.ts","sourceRoot":"","sources":["../src/trail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trail.d.ts","sourceRoot":"","sources":["../src/trail.ts"],"names":[],"mappings":"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"}
package/dist/trail.js CHANGED
@@ -147,6 +147,8 @@ function parseTrailEvent(raw) {
147
147
  ...(typeof e.importedFrom === "string" ? { importedFrom: e.importedFrom } : {}),
148
148
  ...(typeof e.sourceHash === "string" ? { sourceHash: e.sourceHash } : {}),
149
149
  ...(typeof e.chainVerified === "boolean" ? { chainVerified: e.chainVerified } : {}),
150
+ ...(typeof e.shadow === "boolean" ? { shadow: e.shadow } : {}),
151
+ ...(typeof e.configIgnored === "boolean" ? { configIgnored: e.configIgnored } : {}),
150
152
  };
151
153
  }
152
154
  /** Usage/latency fields pass only as finite non-negative numbers. */