@fro.bot/systematic 2.9.0 → 2.9.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.
- package/README.md +4 -4
- package/dist/cli.js +1 -1
- package/dist/{index-488txzkn.js → index-d5ewqz8w.js} +1 -1
- package/dist/index.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -305,7 +305,7 @@ Configuration is loaded from multiple locations and merged (later sources overri
|
|
|
305
305
|
},
|
|
306
306
|
"agents": {
|
|
307
307
|
"security-sentinel": {
|
|
308
|
-
"
|
|
308
|
+
"variant": "thinking"
|
|
309
309
|
},
|
|
310
310
|
"workflow/systematic-implementer": {
|
|
311
311
|
"steps": 20
|
|
@@ -326,11 +326,11 @@ Configuration is loaded from multiple locations and merged (later sources overri
|
|
|
326
326
|
| `bootstrap.enabled` | `boolean` | `true` | Inject the `using-systematic` guide into system prompts |
|
|
327
327
|
| `bootstrap.file` | `string` | — | Custom bootstrap file path (overrides default) |
|
|
328
328
|
|
|
329
|
-
Agent overlays support `model`, `variant`, `temperature`, `top_p`, `permission`, `mode`, `color`, `steps`, `hidden`, exact-agent-only `disable`, and managed `skills`. `skills` uses bundled skill frontmatter names like `ce:review`; it is a shortcut that writes OpenCode `permission.skill` rules, not a native OpenCode agent field. Because `
|
|
329
|
+
Agent overlays support `model`, `variant`, `temperature`, `top_p`, `permission`, `mode`, `color`, `steps`, `hidden`, exact-agent-only `disable`, and managed `skills`. `color` accepts `#RGB`, `#RRGGBB`, or OpenCode named color tokens matching `[a-zA-Z][a-zA-Z0-9-]*`; whitespace/freeform numeric strings are rejected. `skills` uses bundled skill frontmatter names like `ce:review`; it is a shortcut that writes OpenCode `permission.skill` rules, not a native OpenCode agent field. Because `model` controls provider routing/cost/privacy and `permission`/`skills` control tool access, those fields are only accepted from user config or `$OPENCODE_CONFIG_DIR/systematic.json`. Project config may tune non-sensitive presentation and runtime fields such as `variant`, `temperature`, `top_p`, `mode`, `color`, `steps`, `hidden`, or exact-agent `disable`, but it cannot choose model/provider routing or loosen permission/capability policy.
|
|
330
330
|
|
|
331
|
-
Systematic separates config-source precedence from overlay precedence. Config files merge in this order: user config, project config, then `$OPENCODE_CONFIG_DIR/systematic.json` if set. Higher-priority `agents.<key>` and `categories.<id>` entries replace lower-priority entries wholesale, while unrelated keys survive. Project overlays are the exception for
|
|
331
|
+
Systematic separates config-source precedence from overlay precedence. Config files merge in this order: user config, project config, then `$OPENCODE_CONFIG_DIR/systematic.json` if set. Higher-priority `agents.<key>` and `categories.<id>` entries replace lower-priority entries wholesale, while unrelated keys survive. Project overlays are the exception for trust-sensitive fields: same-key project overlays preserve user-level `model`, `permission`, and `skills` fields instead of erasing them. After the effective config is built, exact `agents` overlays beat category overlays, which beat built-in policy defaults, bundled markdown defaults, and OpenCode inherited defaults.
|
|
332
332
|
|
|
333
|
-
Bundled agents omit `model` by default so OpenCode model inheritance keeps working. Systematic emits a `model` only when you configure one explicitly; provider-specific zero-config model defaults are intentionally deferred.
|
|
333
|
+
Bundled agents omit `model` by default so OpenCode model inheritance keeps working. Systematic emits a `model` only when you configure one explicitly in user or custom config; provider-specific zero-config model defaults are intentionally deferred.
|
|
334
334
|
|
|
335
335
|
Native OpenCode agents with the same emitted key are full replacements. An exact Systematic overlay for that key conflicts, while category overlays skip native replacements and continue applying to other bundled agents. Use one canonical agent key form across config sources (`security-sentinel` or `review/security-sentinel`) because alias collisions fail duplicate-target validation.
|
|
336
336
|
|
package/dist/cli.js
CHANGED
|
@@ -856,7 +856,7 @@ var DEFAULT_CONFIG = {
|
|
|
856
856
|
agents: {},
|
|
857
857
|
categories: {}
|
|
858
858
|
};
|
|
859
|
-
var SECURITY_OVERLAY_FIELDS = new Set(["permission", "skills"]);
|
|
859
|
+
var SECURITY_OVERLAY_FIELDS = new Set(["model", "permission", "skills"]);
|
|
860
860
|
function isErrorWithCode(error) {
|
|
861
861
|
return error instanceof Error && "code" in error;
|
|
862
862
|
}
|
package/dist/index.js
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
loadConfig,
|
|
13
13
|
loadConfigWithSources,
|
|
14
14
|
parseFrontmatter
|
|
15
|
-
} from "./index-
|
|
15
|
+
} from "./index-d5ewqz8w.js";
|
|
16
16
|
|
|
17
17
|
// src/index.ts
|
|
18
18
|
import fs4 from "fs";
|
|
@@ -287,7 +287,7 @@ function validateTopP(sourcePath, keyPath, value) {
|
|
|
287
287
|
}
|
|
288
288
|
}
|
|
289
289
|
function validatePositiveInteger(sourcePath, keyPath, value) {
|
|
290
|
-
if (!Number.isInteger(value) || value < 1) {
|
|
290
|
+
if (typeof value !== "number" || !Number.isInteger(value) || value < 1) {
|
|
291
291
|
throwConfigError(sourcePath, keyPath, "must be a positive integer");
|
|
292
292
|
}
|
|
293
293
|
}
|