rulesync 16.10.0 → 16.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/README.md +2 -1
- package/dist/cli/index.cjs +4 -4
- package/dist/cli/index.js +4 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/{import-danhPI2x.cjs → import--_2cfZlH.cjs} +79 -23
- package/dist/{import-CXJwVed1.js → import-Bgkf_jVN.js} +80 -24
- package/dist/import-Bgkf_jVN.js.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/import-CXJwVed1.js.map +0 -1
|
@@ -2501,14 +2501,23 @@ const CLINE_HOOK_EVENTS = [
|
|
|
2501
2501
|
/**
|
|
2502
2502
|
* Hook events supported by GitHub Copilot (cloud coding agent).
|
|
2503
2503
|
*
|
|
2504
|
-
*
|
|
2504
|
+
* The events rulesync writes to `.github/hooks/*.json`:
|
|
2505
2505
|
* `sessionStart`, `sessionEnd`, `userPromptSubmitted` ← `beforeSubmitPrompt`,
|
|
2506
|
-
* `preToolUse`, `postToolUse`, `agentStop` ← `stop`, `
|
|
2507
|
-
* `errorOccurred` ← `afterError
|
|
2508
|
-
* not part of the documented cloud-agent surface.
|
|
2506
|
+
* `preToolUse`, `postToolUse`, `agentStop` ← `stop`, `subagentStart`,
|
|
2507
|
+
* `subagentStop`, `errorOccurred` ← `afterError`, and `preCompact`.
|
|
2509
2508
|
*
|
|
2510
|
-
*
|
|
2511
|
-
*
|
|
2509
|
+
* `preCompact` and `subagentStart` are authorable because the unified hooks
|
|
2510
|
+
* reference's per-event "Cloud agent" column says both fire there. That column
|
|
2511
|
+
* is the authority for this set: the older cloud-agent concept page still
|
|
2512
|
+
* lists only the eight events this set began as, and re-narrowing to it would
|
|
2513
|
+
* undo that. `notification` and `permissionRequest` stay out because the same
|
|
2514
|
+
* column is explicit that they do not fire on the cloud agent.
|
|
2515
|
+
*
|
|
2516
|
+
* Two further CLI events — `postToolUseFailure` and `userPromptTransformed`
|
|
2517
|
+
* ({@link COPILOTCLI_HOOK_EVENTS}) — are documented as firing on the cloud
|
|
2518
|
+
* agent as well but are not modelled here yet.
|
|
2519
|
+
*
|
|
2520
|
+
* @see https://docs.github.com/en/copilot/reference/hooks-reference
|
|
2512
2521
|
*/
|
|
2513
2522
|
const COPILOT_HOOK_EVENTS = [
|
|
2514
2523
|
"sessionStart",
|
|
@@ -2517,8 +2526,10 @@ const COPILOT_HOOK_EVENTS = [
|
|
|
2517
2526
|
"preToolUse",
|
|
2518
2527
|
"postToolUse",
|
|
2519
2528
|
"stop",
|
|
2529
|
+
"subagentStart",
|
|
2520
2530
|
"subagentStop",
|
|
2521
|
-
"afterError"
|
|
2531
|
+
"afterError",
|
|
2532
|
+
"preCompact"
|
|
2522
2533
|
];
|
|
2523
2534
|
/**
|
|
2524
2535
|
* Hook events supported by the GitHub Copilot CLI (`copilotcli-hooks.ts`).
|
|
@@ -3254,8 +3265,10 @@ const CANONICAL_TO_COPILOT_EVENT_NAMES = {
|
|
|
3254
3265
|
preToolUse: "preToolUse",
|
|
3255
3266
|
postToolUse: "postToolUse",
|
|
3256
3267
|
stop: "agentStop",
|
|
3268
|
+
subagentStart: "subagentStart",
|
|
3257
3269
|
subagentStop: "subagentStop",
|
|
3258
|
-
afterError: "errorOccurred"
|
|
3270
|
+
afterError: "errorOccurred",
|
|
3271
|
+
preCompact: "preCompact"
|
|
3259
3272
|
};
|
|
3260
3273
|
/**
|
|
3261
3274
|
* Map Copilot camelCase event names to canonical camelCase.
|
|
@@ -17070,6 +17083,13 @@ var GrokcliHooks = class GrokcliHooks extends ToolHooks {
|
|
|
17070
17083
|
* @see https://github.com/NousResearch/hermes-agent/blob/main/website/docs/user-guide/features/hooks.md
|
|
17071
17084
|
*/
|
|
17072
17085
|
const HERMESAGENT_MATCHER_EVENTS = /* @__PURE__ */ new Set(["pre_tool_call", "post_tool_call"]);
|
|
17086
|
+
/**
|
|
17087
|
+
* The only Hermes event that can block, and therefore the only one whose
|
|
17088
|
+
* entries accept `fail_closed`. Upstream warns and ignores the key on every
|
|
17089
|
+
* other event ("only blocking-capable events can fail closed").
|
|
17090
|
+
* @see https://github.com/NousResearch/hermes-agent/blob/main/website/docs/user-guide/features/hooks.md
|
|
17091
|
+
*/
|
|
17092
|
+
const HERMESAGENT_FAIL_CLOSED_EVENT = "pre_tool_call";
|
|
17073
17093
|
const HERMESAGENT_CANONICAL_EVENTS = new Set(HERMESAGENT_HOOK_EVENTS);
|
|
17074
17094
|
const HERMESAGENT_NATIVE_EVENTS = new Set(HERMESAGENT_NATIVE_HOOK_EVENTS);
|
|
17075
17095
|
/**
|
|
@@ -17103,7 +17123,9 @@ function isHermesHookEventEntry(key, value) {
|
|
|
17103
17123
|
* unsupported hook types centrally). `matcher` is only carried through for
|
|
17104
17124
|
* `pre_tool_call`/`post_tool_call`; on any other event it is dropped with a
|
|
17105
17125
|
* warning, mirroring how other adapters (e.g. AugmentCode) handle
|
|
17106
|
-
* matcher-less lifecycle events.
|
|
17126
|
+
* matcher-less lifecycle events. The canonical `failClosed` field (shared with
|
|
17127
|
+
* Cursor, whose semantics Hermes copied) becomes `fail_closed`, which upstream
|
|
17128
|
+
* only honours on `pre_tool_call`.
|
|
17107
17129
|
*/
|
|
17108
17130
|
function definitionsToHermesEntries({ event, sourceEvent = event, definitions, logger }) {
|
|
17109
17131
|
const supportsMatcher = HERMESAGENT_MATCHER_EVENTS.has(event);
|
|
@@ -17114,6 +17136,10 @@ function definitionsToHermesEntries({ event, sourceEvent = event, definitions, l
|
|
|
17114
17136
|
if (typeof definition.matcher === "string" && definition.matcher !== "") if (supportsMatcher) entry.matcher = definition.matcher;
|
|
17115
17137
|
else logger?.warn(`matcher "${definition.matcher}" on "${sourceEvent}" hook will be ignored — Hermes Agent only supports matchers on pre_tool_call/post_tool_call`);
|
|
17116
17138
|
if (typeof definition.timeout === "number") entry.timeout = definition.timeout;
|
|
17139
|
+
if (typeof definition.failClosed === "boolean") {
|
|
17140
|
+
if (event === HERMESAGENT_FAIL_CLOSED_EVENT) entry.fail_closed = definition.failClosed;
|
|
17141
|
+
else if (definition.failClosed) logger?.warn(`failClosed on "${sourceEvent}" hook will be ignored — Hermes Agent only supports fail_closed on pre_tool_call`);
|
|
17142
|
+
}
|
|
17117
17143
|
entries.push(entry);
|
|
17118
17144
|
}
|
|
17119
17145
|
return entries;
|
|
@@ -17165,6 +17191,37 @@ function canonicalToHermesHooks({ config, toolOverrideHooks, logger }) {
|
|
|
17165
17191
|
return result;
|
|
17166
17192
|
}
|
|
17167
17193
|
/**
|
|
17194
|
+
* Reads a hook entry's fail-closed flag. Upstream accepts its own `fail_closed`
|
|
17195
|
+
* and the Cursor/Claude Code `failClosed` spelling alike, so both have to be
|
|
17196
|
+
* read back into the single canonical field.
|
|
17197
|
+
*/
|
|
17198
|
+
function readHermesFailClosed(entry) {
|
|
17199
|
+
if (typeof entry.fail_closed === "boolean") return entry.fail_closed;
|
|
17200
|
+
if (typeof entry.failClosed === "boolean") return entry.failClosed;
|
|
17201
|
+
}
|
|
17202
|
+
/**
|
|
17203
|
+
* Converts one serialized Hermes hook entry back into a canonical definition,
|
|
17204
|
+
* or `undefined` when it is not a hook rulesync models (no string `command`).
|
|
17205
|
+
* `matcher` and `fail_closed` are read only on the events upstream honours them
|
|
17206
|
+
* on, so an imported value is never one the next generate warns about and drops.
|
|
17207
|
+
*/
|
|
17208
|
+
function hermesEntryToDefinition({ nativeEvent, raw }) {
|
|
17209
|
+
if (!isRecord$1(raw)) return;
|
|
17210
|
+
const entry = raw;
|
|
17211
|
+
if (typeof entry.command !== "string") return;
|
|
17212
|
+
const def = {
|
|
17213
|
+
type: "command",
|
|
17214
|
+
command: entry.command
|
|
17215
|
+
};
|
|
17216
|
+
if (HERMESAGENT_MATCHER_EVENTS.has(nativeEvent) && typeof entry.matcher === "string" && entry.matcher !== "") def.matcher = entry.matcher;
|
|
17217
|
+
if (typeof entry.timeout === "number") def.timeout = entry.timeout;
|
|
17218
|
+
if (nativeEvent === HERMESAGENT_FAIL_CLOSED_EVENT) {
|
|
17219
|
+
const failClosed = readHermesFailClosed(entry);
|
|
17220
|
+
if (failClosed !== void 0) def.failClosed = failClosed;
|
|
17221
|
+
}
|
|
17222
|
+
return def;
|
|
17223
|
+
}
|
|
17224
|
+
/**
|
|
17168
17225
|
* Reverse {@link canonicalToHermesHooks}: parse Hermes's native
|
|
17169
17226
|
* `hooks: { <event>: [...] }` map back into a canonical event → definition[]
|
|
17170
17227
|
* record. Native events with no canonical equivalent (`pre_verify`,
|
|
@@ -17178,19 +17235,10 @@ function hermesHooksToCanonical(hooks) {
|
|
|
17178
17235
|
if (PROTOTYPE_POLLUTION_KEYS.has(nativeEvent) || !Array.isArray(entries)) continue;
|
|
17179
17236
|
if (!isHermesHookEventEntry(nativeEvent, entries)) continue;
|
|
17180
17237
|
const rulesyncEvent = HERMESAGENT_TO_CANONICAL_EVENT_NAMES[nativeEvent] ?? nativeEvent;
|
|
17181
|
-
const defs =
|
|
17182
|
-
|
|
17183
|
-
|
|
17184
|
-
|
|
17185
|
-
if (typeof entry.command !== "string") continue;
|
|
17186
|
-
const def = {
|
|
17187
|
-
type: "command",
|
|
17188
|
-
command: entry.command
|
|
17189
|
-
};
|
|
17190
|
-
if (HERMESAGENT_MATCHER_EVENTS.has(nativeEvent) && typeof entry.matcher === "string" && entry.matcher !== "") def.matcher = entry.matcher;
|
|
17191
|
-
if (typeof entry.timeout === "number") def.timeout = entry.timeout;
|
|
17192
|
-
defs.push(def);
|
|
17193
|
-
}
|
|
17238
|
+
const defs = entries.map((raw) => hermesEntryToDefinition({
|
|
17239
|
+
nativeEvent,
|
|
17240
|
+
raw
|
|
17241
|
+
})).filter((def) => def !== void 0);
|
|
17194
17242
|
if (defs.length > 0) canonical[rulesyncEvent] = defs;
|
|
17195
17243
|
}
|
|
17196
17244
|
return canonical;
|
|
@@ -23871,7 +23919,7 @@ function resolveHermesTimeout(config) {
|
|
|
23871
23919
|
* alias — `auth` (`oauth` for OAuth 2.1/PKCE), mTLS `client_cert` (string PEM
|
|
23872
23920
|
* path, or `[cert, key]`/`[cert, key, password]` list) and `client_key`,
|
|
23873
23921
|
* `connect_timeout` (seconds), `supports_parallel_tool_calls`,
|
|
23874
|
-
* `keepalive_interval`, and `
|
|
23922
|
+
* `keepalive_interval`, `elicitation`, `trust`, and `identity_header` — verbatim
|
|
23875
23923
|
* from `source` to `target`. Field names are identical on both sides (the
|
|
23876
23924
|
* canonical `McpServerSchema` is a `looseObject`), so this serves export and
|
|
23877
23925
|
* import alike. See the Hermes mcp-config-reference.
|
|
@@ -23940,6 +23988,14 @@ function copyHermesAdvancedFields(source, target) {
|
|
|
23940
23988
|
target.elicitation = omitPrototypePollutionKeys(structuredClone(source.elicitation));
|
|
23941
23989
|
copied = true;
|
|
23942
23990
|
}
|
|
23991
|
+
if (typeof source.trust === "string") {
|
|
23992
|
+
target.trust = source.trust;
|
|
23993
|
+
copied = true;
|
|
23994
|
+
}
|
|
23995
|
+
if (isPlainObject$1(source.identity_header)) {
|
|
23996
|
+
target.identity_header = omitPrototypePollutionKeys(structuredClone(source.identity_header));
|
|
23997
|
+
copied = true;
|
|
23998
|
+
}
|
|
23943
23999
|
return copied;
|
|
23944
24000
|
}
|
|
23945
24001
|
/**
|
|
@@ -2476,14 +2476,23 @@ const CLINE_HOOK_EVENTS = [
|
|
|
2476
2476
|
/**
|
|
2477
2477
|
* Hook events supported by GitHub Copilot (cloud coding agent).
|
|
2478
2478
|
*
|
|
2479
|
-
*
|
|
2479
|
+
* The events rulesync writes to `.github/hooks/*.json`:
|
|
2480
2480
|
* `sessionStart`, `sessionEnd`, `userPromptSubmitted` ← `beforeSubmitPrompt`,
|
|
2481
|
-
* `preToolUse`, `postToolUse`, `agentStop` ← `stop`, `
|
|
2482
|
-
* `errorOccurred` ← `afterError
|
|
2483
|
-
* not part of the documented cloud-agent surface.
|
|
2481
|
+
* `preToolUse`, `postToolUse`, `agentStop` ← `stop`, `subagentStart`,
|
|
2482
|
+
* `subagentStop`, `errorOccurred` ← `afterError`, and `preCompact`.
|
|
2484
2483
|
*
|
|
2485
|
-
*
|
|
2486
|
-
*
|
|
2484
|
+
* `preCompact` and `subagentStart` are authorable because the unified hooks
|
|
2485
|
+
* reference's per-event "Cloud agent" column says both fire there. That column
|
|
2486
|
+
* is the authority for this set: the older cloud-agent concept page still
|
|
2487
|
+
* lists only the eight events this set began as, and re-narrowing to it would
|
|
2488
|
+
* undo that. `notification` and `permissionRequest` stay out because the same
|
|
2489
|
+
* column is explicit that they do not fire on the cloud agent.
|
|
2490
|
+
*
|
|
2491
|
+
* Two further CLI events — `postToolUseFailure` and `userPromptTransformed`
|
|
2492
|
+
* ({@link COPILOTCLI_HOOK_EVENTS}) — are documented as firing on the cloud
|
|
2493
|
+
* agent as well but are not modelled here yet.
|
|
2494
|
+
*
|
|
2495
|
+
* @see https://docs.github.com/en/copilot/reference/hooks-reference
|
|
2487
2496
|
*/
|
|
2488
2497
|
const COPILOT_HOOK_EVENTS = [
|
|
2489
2498
|
"sessionStart",
|
|
@@ -2492,8 +2501,10 @@ const COPILOT_HOOK_EVENTS = [
|
|
|
2492
2501
|
"preToolUse",
|
|
2493
2502
|
"postToolUse",
|
|
2494
2503
|
"stop",
|
|
2504
|
+
"subagentStart",
|
|
2495
2505
|
"subagentStop",
|
|
2496
|
-
"afterError"
|
|
2506
|
+
"afterError",
|
|
2507
|
+
"preCompact"
|
|
2497
2508
|
];
|
|
2498
2509
|
/**
|
|
2499
2510
|
* Hook events supported by the GitHub Copilot CLI (`copilotcli-hooks.ts`).
|
|
@@ -3229,8 +3240,10 @@ const CANONICAL_TO_COPILOT_EVENT_NAMES = {
|
|
|
3229
3240
|
preToolUse: "preToolUse",
|
|
3230
3241
|
postToolUse: "postToolUse",
|
|
3231
3242
|
stop: "agentStop",
|
|
3243
|
+
subagentStart: "subagentStart",
|
|
3232
3244
|
subagentStop: "subagentStop",
|
|
3233
|
-
afterError: "errorOccurred"
|
|
3245
|
+
afterError: "errorOccurred",
|
|
3246
|
+
preCompact: "preCompact"
|
|
3234
3247
|
};
|
|
3235
3248
|
/**
|
|
3236
3249
|
* Map Copilot camelCase event names to canonical camelCase.
|
|
@@ -17045,6 +17058,13 @@ var GrokcliHooks = class GrokcliHooks extends ToolHooks {
|
|
|
17045
17058
|
* @see https://github.com/NousResearch/hermes-agent/blob/main/website/docs/user-guide/features/hooks.md
|
|
17046
17059
|
*/
|
|
17047
17060
|
const HERMESAGENT_MATCHER_EVENTS = /* @__PURE__ */ new Set(["pre_tool_call", "post_tool_call"]);
|
|
17061
|
+
/**
|
|
17062
|
+
* The only Hermes event that can block, and therefore the only one whose
|
|
17063
|
+
* entries accept `fail_closed`. Upstream warns and ignores the key on every
|
|
17064
|
+
* other event ("only blocking-capable events can fail closed").
|
|
17065
|
+
* @see https://github.com/NousResearch/hermes-agent/blob/main/website/docs/user-guide/features/hooks.md
|
|
17066
|
+
*/
|
|
17067
|
+
const HERMESAGENT_FAIL_CLOSED_EVENT = "pre_tool_call";
|
|
17048
17068
|
const HERMESAGENT_CANONICAL_EVENTS = new Set(HERMESAGENT_HOOK_EVENTS);
|
|
17049
17069
|
const HERMESAGENT_NATIVE_EVENTS = new Set(HERMESAGENT_NATIVE_HOOK_EVENTS);
|
|
17050
17070
|
/**
|
|
@@ -17078,7 +17098,9 @@ function isHermesHookEventEntry(key, value) {
|
|
|
17078
17098
|
* unsupported hook types centrally). `matcher` is only carried through for
|
|
17079
17099
|
* `pre_tool_call`/`post_tool_call`; on any other event it is dropped with a
|
|
17080
17100
|
* warning, mirroring how other adapters (e.g. AugmentCode) handle
|
|
17081
|
-
* matcher-less lifecycle events.
|
|
17101
|
+
* matcher-less lifecycle events. The canonical `failClosed` field (shared with
|
|
17102
|
+
* Cursor, whose semantics Hermes copied) becomes `fail_closed`, which upstream
|
|
17103
|
+
* only honours on `pre_tool_call`.
|
|
17082
17104
|
*/
|
|
17083
17105
|
function definitionsToHermesEntries({ event, sourceEvent = event, definitions, logger }) {
|
|
17084
17106
|
const supportsMatcher = HERMESAGENT_MATCHER_EVENTS.has(event);
|
|
@@ -17089,6 +17111,10 @@ function definitionsToHermesEntries({ event, sourceEvent = event, definitions, l
|
|
|
17089
17111
|
if (typeof definition.matcher === "string" && definition.matcher !== "") if (supportsMatcher) entry.matcher = definition.matcher;
|
|
17090
17112
|
else logger?.warn(`matcher "${definition.matcher}" on "${sourceEvent}" hook will be ignored — Hermes Agent only supports matchers on pre_tool_call/post_tool_call`);
|
|
17091
17113
|
if (typeof definition.timeout === "number") entry.timeout = definition.timeout;
|
|
17114
|
+
if (typeof definition.failClosed === "boolean") {
|
|
17115
|
+
if (event === HERMESAGENT_FAIL_CLOSED_EVENT) entry.fail_closed = definition.failClosed;
|
|
17116
|
+
else if (definition.failClosed) logger?.warn(`failClosed on "${sourceEvent}" hook will be ignored — Hermes Agent only supports fail_closed on pre_tool_call`);
|
|
17117
|
+
}
|
|
17092
17118
|
entries.push(entry);
|
|
17093
17119
|
}
|
|
17094
17120
|
return entries;
|
|
@@ -17140,6 +17166,37 @@ function canonicalToHermesHooks({ config, toolOverrideHooks, logger }) {
|
|
|
17140
17166
|
return result;
|
|
17141
17167
|
}
|
|
17142
17168
|
/**
|
|
17169
|
+
* Reads a hook entry's fail-closed flag. Upstream accepts its own `fail_closed`
|
|
17170
|
+
* and the Cursor/Claude Code `failClosed` spelling alike, so both have to be
|
|
17171
|
+
* read back into the single canonical field.
|
|
17172
|
+
*/
|
|
17173
|
+
function readHermesFailClosed(entry) {
|
|
17174
|
+
if (typeof entry.fail_closed === "boolean") return entry.fail_closed;
|
|
17175
|
+
if (typeof entry.failClosed === "boolean") return entry.failClosed;
|
|
17176
|
+
}
|
|
17177
|
+
/**
|
|
17178
|
+
* Converts one serialized Hermes hook entry back into a canonical definition,
|
|
17179
|
+
* or `undefined` when it is not a hook rulesync models (no string `command`).
|
|
17180
|
+
* `matcher` and `fail_closed` are read only on the events upstream honours them
|
|
17181
|
+
* on, so an imported value is never one the next generate warns about and drops.
|
|
17182
|
+
*/
|
|
17183
|
+
function hermesEntryToDefinition({ nativeEvent, raw }) {
|
|
17184
|
+
if (!isRecord$1(raw)) return;
|
|
17185
|
+
const entry = raw;
|
|
17186
|
+
if (typeof entry.command !== "string") return;
|
|
17187
|
+
const def = {
|
|
17188
|
+
type: "command",
|
|
17189
|
+
command: entry.command
|
|
17190
|
+
};
|
|
17191
|
+
if (HERMESAGENT_MATCHER_EVENTS.has(nativeEvent) && typeof entry.matcher === "string" && entry.matcher !== "") def.matcher = entry.matcher;
|
|
17192
|
+
if (typeof entry.timeout === "number") def.timeout = entry.timeout;
|
|
17193
|
+
if (nativeEvent === HERMESAGENT_FAIL_CLOSED_EVENT) {
|
|
17194
|
+
const failClosed = readHermesFailClosed(entry);
|
|
17195
|
+
if (failClosed !== void 0) def.failClosed = failClosed;
|
|
17196
|
+
}
|
|
17197
|
+
return def;
|
|
17198
|
+
}
|
|
17199
|
+
/**
|
|
17143
17200
|
* Reverse {@link canonicalToHermesHooks}: parse Hermes's native
|
|
17144
17201
|
* `hooks: { <event>: [...] }` map back into a canonical event → definition[]
|
|
17145
17202
|
* record. Native events with no canonical equivalent (`pre_verify`,
|
|
@@ -17153,19 +17210,10 @@ function hermesHooksToCanonical(hooks) {
|
|
|
17153
17210
|
if (PROTOTYPE_POLLUTION_KEYS.has(nativeEvent) || !Array.isArray(entries)) continue;
|
|
17154
17211
|
if (!isHermesHookEventEntry(nativeEvent, entries)) continue;
|
|
17155
17212
|
const rulesyncEvent = HERMESAGENT_TO_CANONICAL_EVENT_NAMES[nativeEvent] ?? nativeEvent;
|
|
17156
|
-
const defs =
|
|
17157
|
-
|
|
17158
|
-
|
|
17159
|
-
|
|
17160
|
-
if (typeof entry.command !== "string") continue;
|
|
17161
|
-
const def = {
|
|
17162
|
-
type: "command",
|
|
17163
|
-
command: entry.command
|
|
17164
|
-
};
|
|
17165
|
-
if (HERMESAGENT_MATCHER_EVENTS.has(nativeEvent) && typeof entry.matcher === "string" && entry.matcher !== "") def.matcher = entry.matcher;
|
|
17166
|
-
if (typeof entry.timeout === "number") def.timeout = entry.timeout;
|
|
17167
|
-
defs.push(def);
|
|
17168
|
-
}
|
|
17213
|
+
const defs = entries.map((raw) => hermesEntryToDefinition({
|
|
17214
|
+
nativeEvent,
|
|
17215
|
+
raw
|
|
17216
|
+
})).filter((def) => def !== void 0);
|
|
17169
17217
|
if (defs.length > 0) canonical[rulesyncEvent] = defs;
|
|
17170
17218
|
}
|
|
17171
17219
|
return canonical;
|
|
@@ -23846,7 +23894,7 @@ function resolveHermesTimeout(config) {
|
|
|
23846
23894
|
* alias — `auth` (`oauth` for OAuth 2.1/PKCE), mTLS `client_cert` (string PEM
|
|
23847
23895
|
* path, or `[cert, key]`/`[cert, key, password]` list) and `client_key`,
|
|
23848
23896
|
* `connect_timeout` (seconds), `supports_parallel_tool_calls`,
|
|
23849
|
-
* `keepalive_interval`, and `
|
|
23897
|
+
* `keepalive_interval`, `elicitation`, `trust`, and `identity_header` — verbatim
|
|
23850
23898
|
* from `source` to `target`. Field names are identical on both sides (the
|
|
23851
23899
|
* canonical `McpServerSchema` is a `looseObject`), so this serves export and
|
|
23852
23900
|
* import alike. See the Hermes mcp-config-reference.
|
|
@@ -23915,6 +23963,14 @@ function copyHermesAdvancedFields(source, target) {
|
|
|
23915
23963
|
target.elicitation = omitPrototypePollutionKeys(structuredClone(source.elicitation));
|
|
23916
23964
|
copied = true;
|
|
23917
23965
|
}
|
|
23966
|
+
if (typeof source.trust === "string") {
|
|
23967
|
+
target.trust = source.trust;
|
|
23968
|
+
copied = true;
|
|
23969
|
+
}
|
|
23970
|
+
if (isPlainObject$1(source.identity_header)) {
|
|
23971
|
+
target.identity_header = omitPrototypePollutionKeys(structuredClone(source.identity_header));
|
|
23972
|
+
copied = true;
|
|
23973
|
+
}
|
|
23918
23974
|
return copied;
|
|
23919
23975
|
}
|
|
23920
23976
|
/**
|
|
@@ -54666,4 +54722,4 @@ async function importChecksCore(params) {
|
|
|
54666
54722
|
//#endregion
|
|
54667
54723
|
export { JsonLogger as $, RULESYNC_PERMISSIONS_LEGACY_FILE_NAME as $t, RulesyncRuleFrontmatterSchema as A, ALL_TOOL_TARGETS_WITH_WILDCARD as At, RulesyncCheck as B, RULESYNC_CURATED_RULES_RELATIVE_DIR_PATH as Bt, CODEXCLI_DIR as C, removeTempDirectory as Ct, RulesyncSkill as D, writeFileBuffer as Dt, RulesyncSubagentFrontmatterSchema as E, toPosixPath as Et, getRulesyncSourceCandidates as F, RULESYNC_AIIGNORE_RELATIVE_FILE_PATH as Ft, SKILL_FILE_NAME as G, RULESYNC_IGNORE_RELATIVE_FILE_PATH as Gt, stringifyFrontmatter as H, RULESYNC_HOOKS_FILE_NAME as Ht, resolveRulesyncSourceWritePath as I, RULESYNC_CHECKS_RELATIVE_DIR_PATH as It, ConfigFileSchema as J, RULESYNC_MCP_LEGACY_FILE_NAME as Jt, ConfigResolver as K, RULESYNC_LOCAL_CONFIG_RELATIVE_FILE_PATH as Kt, parseJsonc as L, RULESYNC_COMMANDS_RELATIVE_DIR_PATH as Lt, RulesyncMcp as M, ToolTargetSchema as Mt, RulesyncIgnore as N, MAX_FILE_SIZE as Nt, RulesyncSkillFrontmatterSchema as O, writeFileContent as Ot, RulesyncHooks as P, RULESYNC_AIIGNORE_FILE_NAME as Pt, ConsoleLogger as Q, RULESYNC_PERMISSIONS_FILE_NAME as Qt, RulesyncCommand as R, RULESYNC_CONFIG_RELATIVE_FILE_PATH as Rt, CODEXCLI_BASH_RULES_FILE_NAME as S, removeFileStrict as St, RulesyncSubagent as T, runWithDirectoryRollback as Tt, loadYaml as U, RULESYNC_HOOKS_LEGACY_FILE_NAME as Ut, RulesyncCheckFrontmatterSchema as V, RULESYNC_CURATED_SKILLS_RELATIVE_DIR_PATH as Vt, SHARED_USER_MANAGED_CONFIG_PATHS as W, RULESYNC_HOOKS_RELATIVE_FILE_PATH as Wt, SourceEntrySchema as X, RULESYNC_MCP_SCHEMA_URL as Xt, GITIGNORE_DESTINATION_KEY as Y, RULESYNC_MCP_RELATIVE_FILE_PATH as Yt, findControlCharacter as Z, RULESYNC_NPM_SOURCES_LOCK_RELATIVE_FILE_PATH as Zt, CLAUDECODE_LOCAL_RULE_FILE_NAME as _, readFileContent as _t, convertFromTool as a, RULESYNC_SOURCES_LOCK_RELATIVE_FILE_PATH as an, assertTreeContainsNoSymlinks as at, CLAUDECODE_SKILLS_DIR_PATH as b, removeDirectoryStrict as bt, SubagentsProcessor as c, ALL_FEATURES_WITH_WILDCARD as cn, createTempDirectory as ct, IgnoreProcessor as d, fileExists as dt, RULESYNC_PERMISSIONS_RELATIVE_FILE_PATH as en, fallbackLogger as et, HooksProcessor as f, findFilesByGlobs as ft, CLAUDECODE_DIR as g, listDirectoryFiles as gt, QWENCODE_LOCAL_RULE_FILE_NAME as h, isSymlink as ht, getProcessorRegistryEntry as i, RULESYNC_SKILLS_RELATIVE_DIR_PATH as in, assertDirectoryIfExists as it, RulesyncPermissions as j, PACKAGING_TOOL_TARGETS as jt, RulesyncRule as k, ALL_TOOL_TARGETS as kt, SkillsProcessor as l, DEPRECATED_FEATURE_REPLACEMENTS as ln, directoryExists as lt, QWENCODE_DIR as m, getHomeDirectory as mt, checkRulesyncDirExists as n, RULESYNC_RELATIVE_DIR_PATH as nn, CLIError as nt, isPackagingToolTarget as o, RULESYNC_SUBAGENTS_RELATIVE_DIR_PATH as on, assertWritablePathInsideRoot as ot, CommandsProcessor as p, getFileSize as pt, CONFLICTING_TARGET_PAIRS as q, RULESYNC_MCP_FILE_NAME as qt, generate as r, RULESYNC_RULES_RELATIVE_DIR_PATH as rn, ErrorCodes as rt, RulesProcessor as s, ALL_FEATURES as sn, checkPathTraversal as st, importFromTool as t, RULESYNC_PERMISSIONS_SCHEMA_URL as tn, warnOnConflictingFlags as tt, McpProcessor as u, formatError as un, ensureDir as ut, CLAUDECODE_MEMORIES_DIR_NAME as v, readFileContentOrNull as vt, getLocalSkillDirNames as w, resolvePath as wt, ChecksProcessor as x, removeFile as xt, CLAUDECODE_SETTINGS_LOCAL_FILE_NAME as y, removeDirectory as yt, RulesyncCommandFrontmatterSchema as z, RULESYNC_CONFIG_SCHEMA_URL as zt };
|
|
54668
54724
|
|
|
54669
|
-
//# sourceMappingURL=import-
|
|
54725
|
+
//# sourceMappingURL=import-Bgkf_jVN.js.map
|