@agentyx/core 0.5.0 → 0.6.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/index.mjs CHANGED
@@ -97,6 +97,30 @@ var LocalSkillDirectoryError = class extends AgentyxError {
97
97
  }
98
98
  };
99
99
  //#endregion
100
+ //#region src/hook/schema.ts
101
+ const HOOK_ACTIVATION_LEVELS = ["default", "optional"];
102
+ const hookActivationLevelSchema = z.enum(HOOK_ACTIVATION_LEVELS);
103
+ const HOOK_EVENTS = ["SessionStart"];
104
+ const hookEventSchema = z.enum(HOOK_EVENTS);
105
+ const hookNameSchema = z.string().min(1, "Hook names must be non-empty strings.").regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/, "Hook names must be lowercase kebab-case, for example \"session-doctor-bootstrap\".");
106
+ const hookDefinitionSchema = z.strictObject({
107
+ name: hookNameSchema.describe("Unique hook identifier."),
108
+ description: z.string().trim().min(1, "Hook descriptions must be non-empty strings."),
109
+ event: hookEventSchema.describe("The provider lifecycle event this hook runs on."),
110
+ command: z.string().trim().min(1, "Hook command must be a non-empty string."),
111
+ args: z.array(z.string()).default([])
112
+ });
113
+ const hookReferenceSchema = z.union([hookNameSchema, z.strictObject({
114
+ name: hookNameSchema.describe("Hook identifier."),
115
+ activation: hookActivationLevelSchema.default("default")
116
+ })]).transform((value) => typeof value === "string" ? {
117
+ name: value,
118
+ activation: "default"
119
+ } : value).pipe(z.strictObject({
120
+ name: hookNameSchema.describe("Hook identifier."),
121
+ activation: hookActivationLevelSchema.describe("Whether this hook is active by default or explicit opt-in.")
122
+ }));
123
+ //#endregion
100
124
  //#region src/mcp/schema.ts
101
125
  const MCP_CAPABILITY_LEVELS = ["default", "optional"];
102
126
  const mcpCapabilityLevelSchema = z.enum(MCP_CAPABILITY_LEVELS);
@@ -204,7 +228,8 @@ const packDefinitionSchema = z.strictObject({
204
228
  description: z.string().min(1, "Pack descriptions must be non-empty when provided.").describe("Short human-readable summary of the pack.").optional(),
205
229
  skills: z.array(skillNameSchema).describe("Skills this pack contributes, in declaration order.").default([]),
206
230
  mcpServers: z.array(mcpServerReferenceSchema).describe("MCP servers this pack contributes, in declaration order.").default([]),
207
- tools: z.array(toolReferenceSchema).describe("Local tools this pack contributes, in declaration order.").default([])
231
+ tools: z.array(toolReferenceSchema).describe("Local tools this pack contributes, in declaration order.").default([]),
232
+ hooks: z.array(hookReferenceSchema).describe("Provider lifecycle hooks this pack contributes, in declaration order.").default([])
208
233
  });
209
234
  //#endregion
210
235
  //#region src/source/schema.ts
@@ -434,6 +459,10 @@ const builtInPacks = [
434
459
  tools: [{
435
460
  name: "rtk",
436
461
  activation: "optional"
462
+ }],
463
+ hooks: [{
464
+ name: "session-doctor-bootstrap",
465
+ activation: "default"
437
466
  }]
438
467
  },
439
468
  {
@@ -641,14 +670,14 @@ var InvalidSkillError = class extends AgentyxError {
641
670
  origin;
642
671
  reason;
643
672
  constructor(origin, reason, options) {
644
- const detail = typeof reason === "string" ? reason : formatIssues$1(reason);
673
+ const detail = typeof reason === "string" ? reason : formatIssues$2(reason);
645
674
  super("invalid_skill", `Invalid skill in ${origin}: ${detail}`, options);
646
675
  this.name = "InvalidSkillError";
647
676
  this.origin = origin;
648
677
  this.reason = detail;
649
678
  }
650
679
  };
651
- function formatIssues$1(error) {
680
+ function formatIssues$2(error) {
652
681
  return error.issues.map((issue) => {
653
682
  const path = issue.path.map(String).join(".");
654
683
  return path === "" ? issue.message : `${path}: ${issue.message}`;
@@ -969,13 +998,20 @@ async function loadLocalSkillSources(projectDir, directories) {
969
998
  for (const entry of entries.sort((left, right) => left.name.localeCompare(right.name))) {
970
999
  if (!entry.isDirectory()) continue;
971
1000
  const filePath = join(rootRealPath, entry.name, "SKILL.md");
972
- let markdown;
1001
+ let realFilePath;
973
1002
  try {
974
- markdown = await readFile(filePath, "utf8");
1003
+ realFilePath = await realpath(filePath);
975
1004
  } catch (cause) {
976
1005
  if (cause instanceof Error && cause.code === "ENOENT") continue;
977
1006
  throw localDirectoryError(directory, `cannot read ${entry.name}/SKILL.md`, cause);
978
1007
  }
1008
+ if (!isInside$1(realFilePath, rootRealPath)) throw new LocalSkillDirectoryError(directory, `${entry.name}/SKILL.md resolves outside the skill directory`);
1009
+ let markdown;
1010
+ try {
1011
+ markdown = await readFile(realFilePath, "utf8");
1012
+ } catch (cause) {
1013
+ throw localDirectoryError(directory, `cannot read ${entry.name}/SKILL.md`, cause);
1014
+ }
979
1015
  const skill = parseSkillMarkdown(markdown, filePath);
980
1016
  if (skill.name !== entry.name) throw new LocalSkillDirectoryError(directory, `${entry.name}/SKILL.md declares the name "${skill.name}"`);
981
1017
  sources.push({
@@ -994,6 +1030,148 @@ function localDirectoryError(directory, reason, cause) {
994
1030
  return new LocalSkillDirectoryError(directory, reason, cause instanceof Error ? { cause } : void 0);
995
1031
  }
996
1032
  //#endregion
1033
+ //#region src/hook/errors.ts
1034
+ var UnknownHookError = class extends AgentyxError {
1035
+ hookName;
1036
+ requiredBy;
1037
+ knownHooks;
1038
+ constructor(hookName, requiredBy, knownHooks) {
1039
+ const origin = requiredBy === void 0 ? "" : ` (required by "${requiredBy}")`;
1040
+ const known = knownHooks.length > 0 ? [...knownHooks].sort().join(", ") : "none";
1041
+ super("unknown_hook", `Unknown hook "${hookName}"${origin}. Known hooks: ${known}.`);
1042
+ this.name = "UnknownHookError";
1043
+ this.hookName = hookName;
1044
+ this.requiredBy = requiredBy;
1045
+ this.knownHooks = knownHooks;
1046
+ }
1047
+ };
1048
+ var DuplicateHookError = class extends AgentyxError {
1049
+ hookName;
1050
+ constructor(hookName) {
1051
+ super("duplicate_hook", `Duplicate hook definition: "${hookName}".`);
1052
+ this.name = "DuplicateHookError";
1053
+ this.hookName = hookName;
1054
+ }
1055
+ };
1056
+ var InvalidHookError = class extends AgentyxError {
1057
+ origin;
1058
+ reason;
1059
+ constructor(origin, reason, options) {
1060
+ const detail = typeof reason === "string" ? reason : formatIssues$1(reason);
1061
+ super("invalid_hook", `Invalid hook in ${origin}: ${detail}`, options);
1062
+ this.name = "InvalidHookError";
1063
+ this.origin = origin;
1064
+ this.reason = detail;
1065
+ }
1066
+ };
1067
+ function formatIssues$1(error) {
1068
+ return error.issues.map((issue) => {
1069
+ const path = issue.path.map(String).join(".");
1070
+ return path === "" ? issue.message : `${path}: ${issue.message}`;
1071
+ }).join("; ");
1072
+ }
1073
+ //#endregion
1074
+ //#region src/hook/registry.ts
1075
+ function createHookRegistry(sources) {
1076
+ const byName = /* @__PURE__ */ new Map();
1077
+ for (const source of sources) {
1078
+ const name = hookNameSchema.safeParse(source.name);
1079
+ if (!name.success) throw new InvalidHookError(`Hook source "${source.name}"`, name.error);
1080
+ if (byName.has(name.data)) throw new DuplicateHookError(name.data);
1081
+ byName.set(name.data, source);
1082
+ }
1083
+ const names = [...byName.keys()];
1084
+ const loaded = /* @__PURE__ */ new Map();
1085
+ const get = (name) => {
1086
+ const cached = loaded.get(name);
1087
+ if (cached !== void 0) return cached;
1088
+ const source = byName.get(name);
1089
+ if (source === void 0) throw new UnknownHookError(name, void 0, names);
1090
+ const origin = `Hook "${name}"`;
1091
+ const hook = hookDefinitionSchema.safeParse(source.load());
1092
+ if (!hook.success) throw new InvalidHookError(origin, hook.error);
1093
+ if (hook.data.name !== name) throw new InvalidHookError(origin, `it declares the name "${hook.data.name}"`);
1094
+ loaded.set(name, hook.data);
1095
+ return hook.data;
1096
+ };
1097
+ return {
1098
+ names,
1099
+ has: (name) => byName.has(name),
1100
+ listMetadata: () => names.map((name) => {
1101
+ const hook = get(name);
1102
+ return {
1103
+ name: hook.name,
1104
+ description: hook.description,
1105
+ event: hook.event
1106
+ };
1107
+ }),
1108
+ get
1109
+ };
1110
+ }
1111
+ const builtInHookRegistry = createHookRegistry([{
1112
+ name: "session-doctor-bootstrap",
1113
+ load: () => ({
1114
+ name: "session-doctor-bootstrap",
1115
+ description: "Reports Agentyx project health at session start; silent when healthy.",
1116
+ event: "SessionStart",
1117
+ command: "npx",
1118
+ args: [
1119
+ "agentyx",
1120
+ "doctor",
1121
+ "--hook"
1122
+ ]
1123
+ })
1124
+ }]);
1125
+ const builtInHookNames = builtInHookRegistry.names;
1126
+ //#endregion
1127
+ //#region src/pack/resolver.ts
1128
+ /**
1129
+ * Resolves selected packs without hidden inheritance.
1130
+ *
1131
+ * The result preserves configured order, removes duplicates by first
1132
+ * occurrence, and validates every requested pack.
1133
+ *
1134
+ * @throws {UnknownPackError} when a requested pack is missing.
1135
+ */
1136
+ function resolvePacks(requestedPacks, registry = builtInPackRegistry) {
1137
+ const resolved = [];
1138
+ const seen = /* @__PURE__ */ new Set();
1139
+ for (const name of requestedPacks) {
1140
+ if (seen.has(name)) continue;
1141
+ if (!registry.has(name)) throw new UnknownPackError(name, void 0, [...registry.keys()]);
1142
+ seen.add(name);
1143
+ resolved.push(name);
1144
+ }
1145
+ return resolved;
1146
+ }
1147
+ //#endregion
1148
+ //#region src/hook/resolver.ts
1149
+ function collectPackHookReferences(resolvedPacks, packRegistry, hookRegistry) {
1150
+ const hooks = [];
1151
+ const seen = /* @__PURE__ */ new Set();
1152
+ for (const packName of resolvedPacks) for (const hook of packRegistry.get(packName)?.hooks ?? []) {
1153
+ const hookName = hook.name;
1154
+ if (seen.has(hookName)) continue;
1155
+ if (!hookRegistry.has(hookName)) throw new UnknownHookError(hookName, packName, hookRegistry.names);
1156
+ seen.add(hookName);
1157
+ hooks.push(hook);
1158
+ }
1159
+ return hooks;
1160
+ }
1161
+ function filterEffectiveHooks(hooks, enabledCapabilities) {
1162
+ const enabled = new Set(enabledCapabilities);
1163
+ return hooks.filter((hook) => hook.activation === "default" || enabled.has(hook.name)).map((hook) => hook.name);
1164
+ }
1165
+ function collectPackHooks(resolvedPacks, packRegistry, hookRegistry, enabledCapabilities = []) {
1166
+ return filterEffectiveHooks(collectPackHookReferences(resolvedPacks, packRegistry, hookRegistry), enabledCapabilities);
1167
+ }
1168
+ function resolvePackHookReferences(requestedPacks, packRegistry = builtInPackRegistry, hookRegistry = builtInHookRegistry) {
1169
+ return collectPackHookReferences(resolvePacks(requestedPacks, packRegistry), packRegistry, hookRegistry);
1170
+ }
1171
+ function resolvePackHooks(requestedPacks, packRegistry = builtInPackRegistry, hookRegistry = builtInHookRegistry, enabledCapabilities = []) {
1172
+ return collectPackHooks(resolvePacks(requestedPacks, packRegistry), packRegistry, hookRegistry, enabledCapabilities);
1173
+ }
1174
+ //#endregion
997
1175
  //#region src/mcp/errors.ts
998
1176
  var UnknownMcpServerError = class extends AgentyxError {
999
1177
  serverName;
@@ -1151,27 +1329,6 @@ const builtInMcpServerRegistry = createMcpServerRegistry([
1151
1329
  ]);
1152
1330
  const builtInMcpServerNames = builtInMcpServerRegistry.names;
1153
1331
  //#endregion
1154
- //#region src/pack/resolver.ts
1155
- /**
1156
- * Resolves selected packs without hidden inheritance.
1157
- *
1158
- * The result preserves configured order, removes duplicates by first
1159
- * occurrence, and validates every requested pack.
1160
- *
1161
- * @throws {UnknownPackError} when a requested pack is missing.
1162
- */
1163
- function resolvePacks(requestedPacks, registry = builtInPackRegistry) {
1164
- const resolved = [];
1165
- const seen = /* @__PURE__ */ new Set();
1166
- for (const name of requestedPacks) {
1167
- if (seen.has(name)) continue;
1168
- if (!registry.has(name)) throw new UnknownPackError(name, void 0, [...registry.keys()]);
1169
- seen.add(name);
1170
- resolved.push(name);
1171
- }
1172
- return resolved;
1173
- }
1174
- //#endregion
1175
1332
  //#region src/mcp/resolver.ts
1176
1333
  function collectPackMcpServerReferences(resolvedPacks, packRegistry, mcpRegistry) {
1177
1334
  const servers = [];
@@ -1347,12 +1504,17 @@ function resolvePackTools(requestedPacks, packRegistry = builtInPackRegistry, to
1347
1504
  * @throws {UnknownPackError} when a configured pack is missing.
1348
1505
  * @throws {UnknownSkillError} when a pack references an unknown skill.
1349
1506
  */
1350
- function resolveAgentyxConfig(config, registry = builtInPackRegistry, skillRegistry = builtInSkillRegistry, mcpRegistry = builtInMcpServerRegistry, toolRegistry = builtInToolRegistry) {
1507
+ function resolveAgentyxConfig(config, registry = builtInPackRegistry, skillRegistry = builtInSkillRegistry, mcpRegistry = builtInMcpServerRegistry, toolRegistry = builtInToolRegistry, hookRegistry = builtInHookRegistry) {
1351
1508
  const requestedPacks = [...config.packs];
1352
1509
  const resolvedPacks = resolvePacks(requestedPacks, registry);
1353
1510
  const declaredMcpServers = collectPackMcpServerReferences(resolvedPacks, registry, mcpRegistry);
1354
1511
  const declaredTools = collectPackToolReferences(resolvedPacks, registry, toolRegistry);
1355
- const knownOptionalCapabilities = [...declaredMcpServers.filter((server) => server.activation === "optional").map((server) => server.name), ...declaredTools.filter((tool) => tool.activation === "optional").map((tool) => tool.name)];
1512
+ const declaredHooks = collectPackHookReferences(resolvedPacks, registry, hookRegistry);
1513
+ const knownOptionalCapabilities = [
1514
+ ...declaredMcpServers.filter((server) => server.activation === "optional").map((server) => server.name),
1515
+ ...declaredTools.filter((tool) => tool.activation === "optional").map((tool) => tool.name),
1516
+ ...declaredHooks.filter((hook) => hook.activation === "optional").map((hook) => hook.name)
1517
+ ];
1356
1518
  for (const capability of config.enable) if (!knownOptionalCapabilities.includes(capability)) throw new UnknownEnabledCapabilityError(capability, knownOptionalCapabilities);
1357
1519
  return {
1358
1520
  requestedPacks,
@@ -1362,6 +1524,8 @@ function resolveAgentyxConfig(config, registry = builtInPackRegistry, skillRegis
1362
1524
  mcpServers: filterEffectiveMcpServers(declaredMcpServers, config.enable),
1363
1525
  declaredTools,
1364
1526
  tools: filterEffectiveTools(declaredTools, config.enable),
1527
+ declaredHooks,
1528
+ hooks: filterEffectiveHooks(declaredHooks, config.enable),
1365
1529
  enabled: [...config.enable],
1366
1530
  targets: [...config.targets]
1367
1531
  };
@@ -1440,7 +1604,26 @@ const mcpManifestEntrySchema = z.strictObject({
1440
1604
  hash: contentHashSchema,
1441
1605
  created: z.boolean()
1442
1606
  });
1443
- const installManifestEntrySchema = z.discriminatedUnion("kind", [skillManifestEntrySchema, mcpManifestEntrySchema]);
1607
+ /**
1608
+ * A provider hook configuration file Agentyx contributed entries to.
1609
+ *
1610
+ * Shares the `mcp` entry's shape and rationale: the file is shared with the
1611
+ * user, so the entry records the hook names Agentyx added rather than
1612
+ * claiming the whole document.
1613
+ */
1614
+ const hookManifestEntrySchema = z.strictObject({
1615
+ kind: z.literal("hook"),
1616
+ path: managedPathSchema,
1617
+ hooks: z.array(z.string().min(1, "Hook names must be non-empty strings.")),
1618
+ targets: targetsSchema,
1619
+ hash: contentHashSchema,
1620
+ created: z.boolean()
1621
+ });
1622
+ const installManifestEntrySchema = z.discriminatedUnion("kind", [
1623
+ skillManifestEntrySchema,
1624
+ mcpManifestEntrySchema,
1625
+ hookManifestEntrySchema
1626
+ ]);
1444
1627
  /** The `.agentyx.lock.json` record of everything Agentyx installed into a project. */
1445
1628
  const installManifestSchema = z.strictObject({
1446
1629
  version: z.literal(1),
@@ -1517,13 +1700,21 @@ async function loadInstallManifest(projectPath = process.cwd()) {
1517
1700
  * touches the filesystem.
1518
1701
  */
1519
1702
  function formatInstallManifest(manifest) {
1520
- const entries = [...manifest.entries].map((entry) => entry.kind === "skill" ? {
1521
- ...entry,
1522
- targets: sorted(entry.targets)
1523
- } : {
1524
- ...entry,
1525
- targets: sorted(entry.targets),
1526
- servers: sorted(entry.servers)
1703
+ const entries = [...manifest.entries].map((entry) => {
1704
+ if (entry.kind === "skill") return {
1705
+ ...entry,
1706
+ targets: sorted(entry.targets)
1707
+ };
1708
+ if (entry.kind === "mcp") return {
1709
+ ...entry,
1710
+ targets: sorted(entry.targets),
1711
+ servers: sorted(entry.servers)
1712
+ };
1713
+ return {
1714
+ ...entry,
1715
+ targets: sorted(entry.targets),
1716
+ hooks: sorted(entry.hooks)
1717
+ };
1527
1718
  }).sort((left, right) => left.path.localeCompare(right.path));
1528
1719
  return `${JSON.stringify({
1529
1720
  version: manifest.version,
@@ -1792,6 +1983,6 @@ function trustedSourceLoadError(sourceName, reason, cause) {
1792
1983
  return new TrustedSourceLoadError(sourceName, reason, cause instanceof Error ? { cause } : void 0);
1793
1984
  }
1794
1985
  //#endregion
1795
- export { AGENTYX_CONFIG_FILENAME, AGENTYX_CONFIG_SCHEMA_ID, AGENTYX_MANIFEST_FILENAME, AgentyxConfigNotFoundError, AgentyxConfigParseError, AgentyxConfigValidationError, AgentyxError, AgentyxManifestParseError, AgentyxManifestValidationError, CircularPackDependencyError, DuplicateMcpServerError, DuplicatePackError, DuplicateSkillError, DuplicateToolError, DuplicateTrustedSourceError, INSTALL_MANIFEST_VERSION, InvalidMcpServerError, InvalidSkillError, InvalidToolError, LocalSkillDirectoryError, MCP_CAPABILITY_LEVELS, MCP_CONTEXT_COSTS, PACKAGE_MANAGERS, PACK_CATEGORIES, TOOL_ACTIVATION_LEVELS, TrustedSourceLoadError, UnknownEnabledCapabilityError, UnknownMcpServerError, UnknownPackError, UnknownSkillError, UnknownToolError, UnknownTrustedSourceError, agentyxConfigPath, agentyxConfigSchema, agentyxCoreName, agentyxManifestPath, agentyxTargetSchema, buildAgentyxConfig, buildAgentyxConfigJsonSchema, builtInMcpServerNames, builtInMcpServerRegistry, builtInPackRegistry, builtInPacks, builtInSkillNames, builtInSkillRegistry, builtInToolNames, builtInToolRegistry, codexPluginManifestSchema, collectPackMcpServerReferences, collectPackMcpServers, collectPackToolReferences, createMcpServerRegistry, createPackRegistry, createSkillRegistry, createToolRegistry, createTrustedSourceRegistry, detectProject, emptyInstallManifest, enabledCapabilityNameSchema, filterEffectiveMcpServers, filterEffectiveTools, formatAgentyxConfig, formatInstallManifest, formatSkillMarkdown, getCoreStatus, getTrustedSourceDefinition, hashContent, inspectTrustedSource, installManifestEntrySchema, installManifestSchema, knownTrustedSourceRegistry, knownTrustedSources, loadAgentyxConfig, loadAgentyxProject, loadInstallManifest, manifestEntriesByPath, mcpCapabilityLevelSchema, mcpContextCostSchema, mcpEnvReferenceSchema, mcpManifestEntrySchema, mcpServerDefinitionSchema, mcpServerReferenceSchema, packCategorySchema, packDefinitionSchema, packNameSchema, parseAgentyxConfig, parseInstallManifest, parseSkillMarkdown, resolveAgentyxConfig, resolvePackMcpServerReferences, resolvePackMcpServers, resolvePackSkills, resolvePackToolReferences, resolvePackTools, resolvePacks, skillDefinitionSchema, skillDirectorySchema, skillManifestEntrySchema, toolActivationLevelSchema, toolDefinitionSchema, toolNameSchema, toolReferenceSchema, trustedSourceDefinitionSchema, trustedSourceNameSchema, trustedSourcePathSchema, trustedSourceReferenceSchema, trustedSourceSkillSummarySchema };
1986
+ export { AGENTYX_CONFIG_FILENAME, AGENTYX_CONFIG_SCHEMA_ID, AGENTYX_MANIFEST_FILENAME, AgentyxConfigNotFoundError, AgentyxConfigParseError, AgentyxConfigValidationError, AgentyxError, AgentyxManifestParseError, AgentyxManifestValidationError, CircularPackDependencyError, DuplicateHookError, DuplicateMcpServerError, DuplicatePackError, DuplicateSkillError, DuplicateToolError, DuplicateTrustedSourceError, HOOK_ACTIVATION_LEVELS, HOOK_EVENTS, INSTALL_MANIFEST_VERSION, InvalidHookError, InvalidMcpServerError, InvalidSkillError, InvalidToolError, LocalSkillDirectoryError, MCP_CAPABILITY_LEVELS, MCP_CONTEXT_COSTS, PACKAGE_MANAGERS, PACK_CATEGORIES, TOOL_ACTIVATION_LEVELS, TrustedSourceLoadError, UnknownEnabledCapabilityError, UnknownHookError, UnknownMcpServerError, UnknownPackError, UnknownSkillError, UnknownToolError, UnknownTrustedSourceError, agentyxConfigPath, agentyxConfigSchema, agentyxCoreName, agentyxManifestPath, agentyxTargetSchema, buildAgentyxConfig, buildAgentyxConfigJsonSchema, builtInHookNames, builtInHookRegistry, builtInMcpServerNames, builtInMcpServerRegistry, builtInPackRegistry, builtInPacks, builtInSkillNames, builtInSkillRegistry, builtInToolNames, builtInToolRegistry, codexPluginManifestSchema, collectPackHookReferences, collectPackHooks, collectPackMcpServerReferences, collectPackMcpServers, collectPackToolReferences, createHookRegistry, createMcpServerRegistry, createPackRegistry, createSkillRegistry, createToolRegistry, createTrustedSourceRegistry, detectProject, emptyInstallManifest, enabledCapabilityNameSchema, filterEffectiveHooks, filterEffectiveMcpServers, filterEffectiveTools, formatAgentyxConfig, formatInstallManifest, formatSkillMarkdown, getCoreStatus, getTrustedSourceDefinition, hashContent, hookActivationLevelSchema, hookDefinitionSchema, hookEventSchema, hookManifestEntrySchema, hookNameSchema, hookReferenceSchema, inspectTrustedSource, installManifestEntrySchema, installManifestSchema, knownTrustedSourceRegistry, knownTrustedSources, loadAgentyxConfig, loadAgentyxProject, loadInstallManifest, manifestEntriesByPath, mcpCapabilityLevelSchema, mcpContextCostSchema, mcpEnvReferenceSchema, mcpManifestEntrySchema, mcpServerDefinitionSchema, mcpServerReferenceSchema, packCategorySchema, packDefinitionSchema, packNameSchema, parseAgentyxConfig, parseInstallManifest, parseSkillMarkdown, resolveAgentyxConfig, resolvePackHookReferences, resolvePackHooks, resolvePackMcpServerReferences, resolvePackMcpServers, resolvePackSkills, resolvePackToolReferences, resolvePackTools, resolvePacks, skillDefinitionSchema, skillDirectorySchema, skillManifestEntrySchema, toolActivationLevelSchema, toolDefinitionSchema, toolNameSchema, toolReferenceSchema, trustedSourceDefinitionSchema, trustedSourceNameSchema, trustedSourcePathSchema, trustedSourceReferenceSchema, trustedSourceSkillSummarySchema };
1796
1987
 
1797
1988
  //# sourceMappingURL=index.mjs.map