@fro.bot/systematic 3.0.2 → 3.0.3

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/cli.js CHANGED
@@ -9,7 +9,7 @@ import {
9
9
  modify,
10
10
  parse,
11
11
  parseTree
12
- } from "./index-yskzf7vh.js";
12
+ } from "./index-6yz7bra8.js";
13
13
 
14
14
  // src/cli.ts
15
15
  import fs2 from "fs";
@@ -16074,6 +16074,9 @@ var REMOVED_BUNDLED_AGENT_NAMES = [
16074
16074
  "security-sentinel",
16075
16075
  "workflow/lint"
16076
16076
  ];
16077
+ var REMOVED_BUNDLED_AGENT_CATEGORIES = [
16078
+ "docs"
16079
+ ];
16077
16080
 
16078
16081
  // src/lib/config-schema.ts
16079
16082
  var permissionSettingSchema = exports_external.enum(["ask", "allow", "deny"]);
@@ -16296,16 +16299,19 @@ var CURRENT_AGENT_NAMES_SET = new Set([
16296
16299
  ...BUNDLED_AGENT_NAMES,
16297
16300
  ...BUNDLED_AGENT_QUALIFIED_IDS
16298
16301
  ]);
16302
+ var REMOVED_AGENT_CATEGORIES_SET = new Set(REMOVED_BUNDLED_AGENT_CATEGORIES);
16299
16303
  function computeDroppedNames(names, allowedSet) {
16300
16304
  return names.filter((n) => !allowedSet.has(n));
16301
16305
  }
16302
16306
  var MIGRATION_DOCS_URL = "https://fro.bot/systematic/guides/v3-migration/";
16303
- function warnDroppedNames(dropped, field, warned) {
16307
+ function warnDroppedNames(dropped, field, warned, removalVersion) {
16304
16308
  for (const name of dropped) {
16305
16309
  if (warned.has(name))
16306
16310
  continue;
16307
16311
  warned.add(name);
16308
- console.warn(`[systematic] "${name}" in \`${field}\` is no longer a bundled name and will be ignored. Remove it from your config to silence this warning. See ${MIGRATION_DOCS_URL} for migration guidance.`);
16312
+ const displayName = field === "categories" ? `${field}.${name}` : name;
16313
+ const removalNote = removalVersion ? ` It was removed in ${removalVersion}.` : "";
16314
+ console.warn(`[systematic] "${displayName}" in \`${field}\` is no longer a bundled name and will be ignored.${removalNote} Remove it from your config to silence this warning. See ${MIGRATION_DOCS_URL} for migration guidance.`);
16309
16315
  }
16310
16316
  }
16311
16317
  function resolveConfigPath(dir, basename) {
@@ -16443,7 +16449,15 @@ function loadConfigWithSources(projectDir) {
16443
16449
  const projectSource = loadConfigSource(paths.projectConfig, "project");
16444
16450
  const customSource = paths.customConfig ? loadConfigSource(paths.customConfig, "custom") : null;
16445
16451
  const sources = [userSource, projectSource, customSource].filter((source) => source !== null);
16446
- const overlays = mergeOverlaySources(sources);
16452
+ const mergedOverlays = mergeOverlaySources(sources);
16453
+ const droppedCategories = Object.keys(mergedOverlays.categories).filter((name) => REMOVED_AGENT_CATEGORIES_SET.has(name));
16454
+ const warned = new Set;
16455
+ warnDroppedNames(droppedCategories, "categories", warned, "v3.0.0");
16456
+ const droppedCategorySet = new Set(droppedCategories);
16457
+ const overlays = droppedCategorySet.size === 0 ? mergedOverlays : {
16458
+ ...mergedOverlays,
16459
+ categories: Object.fromEntries(Object.entries(mergedOverlays.categories).filter(([key]) => !droppedCategorySet.has(key)))
16460
+ };
16447
16461
  const userConfig = userSource?.config;
16448
16462
  const projectConfig = projectSource?.config;
16449
16463
  const customConfig = customSource?.config;
@@ -16461,7 +16475,6 @@ function loadConfigWithSources(projectDir) {
16461
16475
  categories: overlayValues(overlays.categories),
16462
16476
  skills_as_commands: customConfig?.skills_as_commands ?? projectConfig?.skills_as_commands ?? userConfig?.skills_as_commands ?? DEFAULT_CONFIG.skills_as_commands
16463
16477
  };
16464
- const warned = new Set;
16465
16478
  const droppedSkills = computeDroppedNames(result.disabled_skills, CURRENT_SKILL_NAMES_SET);
16466
16479
  warnDroppedNames(droppedSkills, "disabled_skills", warned);
16467
16480
  const droppedAgents = computeDroppedNames(result.disabled_agents, CURRENT_AGENT_NAMES_SET);
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ import {
14
14
  loadConfigWithSources,
15
15
  parseFrontmatter,
16
16
  walkDir
17
- } from "./index-yskzf7vh.js";
17
+ } from "./index-6yz7bra8.js";
18
18
 
19
19
  // src/index.ts
20
20
  import fs8 from "fs";
@@ -40,7 +40,7 @@ export declare function computeDroppedNames(names: readonly string[], allowedSet
40
40
  * single load call -- callers must NOT share it across independent loads.
41
41
  * Passing a fresh set per load ensures no cross-load suppression.
42
42
  */
43
- export declare function warnDroppedNames(dropped: string[], field: string, warned: Set<string>): void;
43
+ export declare function warnDroppedNames(dropped: string[], field: string, warned: Set<string>, removalVersion?: string): void;
44
44
  export declare function loadConfig(projectDir: string): SystematicConfig;
45
45
  export declare function loadConfigWithSources(projectDir: string): SourceAwareConfigResult;
46
46
  export declare function getConfigPaths(projectDir: string): {
@@ -13,3 +13,4 @@
13
13
  */
14
14
  export declare const REMOVED_BUNDLED_SKILL_NAMES: readonly string[];
15
15
  export declare const REMOVED_BUNDLED_AGENT_NAMES: readonly string[];
16
+ export declare const REMOVED_BUNDLED_AGENT_CATEGORIES: readonly string[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fro.bot/systematic",
3
- "version": "3.0.2",
3
+ "version": "3.0.3",
4
4
  "description": "Structured engineering workflows for OpenCode",
5
5
  "type": "module",
6
6
  "homepage": "https://fro.bot/systematic",