@shrkcrft/config 0.1.0-alpha.2 → 0.1.0-alpha.21
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/config-loader.d.ts.map +1 -1
- package/dist/config-loader.js +2 -11
- package/dist/config-schema.d.ts +38 -0
- package/dist/config-schema.d.ts.map +1 -1
- package/dist/config-schema.js +42 -0
- package/dist/config-validator.d.ts.map +1 -1
- package/dist/config-validator.js +55 -0
- package/dist/sharkcraft-config.d.ts +35 -0
- package/dist/sharkcraft-config.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../src/config-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sourceRoot":"","sources":["../src/config-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,QAAQ,EACb,KAAK,MAAM,EACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAKhE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAID,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,CA+DjG"}
|
package/dist/config-loader.js
CHANGED
|
@@ -1,15 +1,6 @@
|
|
|
1
|
-
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
2
|
-
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
3
|
-
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
4
|
-
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
5
|
-
});
|
|
6
|
-
}
|
|
7
|
-
return path;
|
|
8
|
-
};
|
|
9
1
|
import { existsSync } from 'node:fs';
|
|
10
2
|
import * as nodePath from 'node:path';
|
|
11
|
-
import {
|
|
12
|
-
import { AppErrorImpl, ERROR_CODES, err, ok } from '@shrkcrft/core';
|
|
3
|
+
import { AppErrorImpl, ERROR_CODES, err, importModuleViaLoader, ok, } from '@shrkcrft/core';
|
|
13
4
|
import { withDefaults } from "./default-config.js";
|
|
14
5
|
import { detectProjectRoot, findSharkcraftDir } from "./project-config-resolver.js";
|
|
15
6
|
import { SharkCraftConfigSchema } from "./config-schema.js";
|
|
@@ -26,7 +17,7 @@ export async function loadProjectConfig(startDir) {
|
|
|
26
17
|
if (!existsSync(fullPath))
|
|
27
18
|
continue;
|
|
28
19
|
try {
|
|
29
|
-
const mod =
|
|
20
|
+
const mod = await importModuleViaLoader(fullPath);
|
|
30
21
|
const userConfig = (mod.default ?? mod) || {};
|
|
31
22
|
const parsed = SharkCraftConfigSchema.safeParse(userConfig);
|
|
32
23
|
if (!parsed.success) {
|
package/dist/config-schema.d.ts
CHANGED
|
@@ -36,6 +36,44 @@ export declare const SharkCraftConfigSchema: z.ZodObject<{
|
|
|
36
36
|
usage: z.ZodOptional<z.ZodObject<{
|
|
37
37
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
38
38
|
}, z.core.$strict>>;
|
|
39
|
+
delegation: z.ZodOptional<z.ZodObject<{
|
|
40
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
41
|
+
provider: z.ZodOptional<z.ZodEnum<{
|
|
42
|
+
auto: "auto";
|
|
43
|
+
ollama: "ollama";
|
|
44
|
+
llamacpp: "llamacpp";
|
|
45
|
+
}>>;
|
|
46
|
+
model: z.ZodOptional<z.ZodString>;
|
|
47
|
+
recipes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
48
|
+
id: z.ZodString;
|
|
49
|
+
title: z.ZodOptional<z.ZodString>;
|
|
50
|
+
match: z.ZodOptional<z.ZodObject<{
|
|
51
|
+
keywords: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
52
|
+
fileGlobs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
53
|
+
}, z.core.$strict>>;
|
|
54
|
+
guardrailGlobs: z.ZodArray<z.ZodString>;
|
|
55
|
+
allowedOps: z.ZodArray<z.ZodString>;
|
|
56
|
+
provider: z.ZodOptional<z.ZodEnum<{
|
|
57
|
+
auto: "auto";
|
|
58
|
+
ollama: "ollama";
|
|
59
|
+
llamacpp: "llamacpp";
|
|
60
|
+
}>>;
|
|
61
|
+
model: z.ZodOptional<z.ZodString>;
|
|
62
|
+
maxAttempts: z.ZodOptional<z.ZodNumber>;
|
|
63
|
+
maxBudgetMs: z.ZodOptional<z.ZodNumber>;
|
|
64
|
+
riskCeiling: z.ZodOptional<z.ZodEnum<{
|
|
65
|
+
low: "low";
|
|
66
|
+
medium: "medium";
|
|
67
|
+
}>>;
|
|
68
|
+
verificationIds: z.ZodArray<z.ZodString>;
|
|
69
|
+
}, z.core.$strict>>>;
|
|
70
|
+
recipeOverrides: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
71
|
+
model: z.ZodOptional<z.ZodString>;
|
|
72
|
+
verificationIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
73
|
+
guardrailGlobs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
74
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
75
|
+
}, z.core.$strict>>>;
|
|
76
|
+
}, z.core.$strict>>;
|
|
39
77
|
}, z.core.$strict>;
|
|
40
78
|
export type SharkCraftConfigInput = z.infer<typeof SharkCraftConfigSchema>;
|
|
41
79
|
//# sourceMappingURL=config-schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../src/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["../src/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAyBxB;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0ExB,CAAC;AAEZ,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
|
package/dist/config-schema.js
CHANGED
|
@@ -1,4 +1,26 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
/** One delegate-worker recipe (see `IDelegateRecipe`). */
|
|
3
|
+
const DelegateRecipeSchema = z
|
|
4
|
+
.object({
|
|
5
|
+
id: z.string(),
|
|
6
|
+
title: z.string().optional(),
|
|
7
|
+
match: z
|
|
8
|
+
.object({
|
|
9
|
+
keywords: z.array(z.string()).optional(),
|
|
10
|
+
fileGlobs: z.array(z.string()).optional(),
|
|
11
|
+
})
|
|
12
|
+
.strict()
|
|
13
|
+
.optional(),
|
|
14
|
+
guardrailGlobs: z.array(z.string()),
|
|
15
|
+
allowedOps: z.array(z.string()),
|
|
16
|
+
provider: z.enum(['auto', 'ollama', 'llamacpp']).optional(),
|
|
17
|
+
model: z.string().optional(),
|
|
18
|
+
maxAttempts: z.number().int().positive().optional(),
|
|
19
|
+
maxBudgetMs: z.number().int().positive().optional(),
|
|
20
|
+
riskCeiling: z.enum(['low', 'medium']).optional(),
|
|
21
|
+
verificationIds: z.array(z.string()),
|
|
22
|
+
})
|
|
23
|
+
.strict();
|
|
2
24
|
/**
|
|
3
25
|
* Zod schema for sharkcraft.config.ts. Used by the loader and the doctor to
|
|
4
26
|
* surface clear errors for malformed configs. We don't replace ISharkCraftConfig
|
|
@@ -52,5 +74,25 @@ export const SharkCraftConfigSchema = z
|
|
|
52
74
|
})
|
|
53
75
|
.strict()
|
|
54
76
|
.optional(),
|
|
77
|
+
// Local-LLM delegate worker (see `shrk delegate`).
|
|
78
|
+
delegation: z
|
|
79
|
+
.object({
|
|
80
|
+
enabled: z.boolean().optional(),
|
|
81
|
+
provider: z.enum(['auto', 'ollama', 'llamacpp']).optional(),
|
|
82
|
+
model: z.string().optional(),
|
|
83
|
+
recipes: z.array(DelegateRecipeSchema).optional(),
|
|
84
|
+
recipeOverrides: z
|
|
85
|
+
.record(z.string(), z
|
|
86
|
+
.object({
|
|
87
|
+
model: z.string().optional(),
|
|
88
|
+
verificationIds: z.array(z.string()).optional(),
|
|
89
|
+
guardrailGlobs: z.array(z.string()).optional(),
|
|
90
|
+
enabled: z.boolean().optional(),
|
|
91
|
+
})
|
|
92
|
+
.strict())
|
|
93
|
+
.optional(),
|
|
94
|
+
})
|
|
95
|
+
.strict()
|
|
96
|
+
.optional(),
|
|
55
97
|
})
|
|
56
98
|
.strict();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-validator.d.ts","sourceRoot":"","sources":["../src/config-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,qBAAqB,EAAE,CAAC;CACjC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,sBAAsB,
|
|
1
|
+
{"version":3,"file":"config-validator.d.ts","sourceRoot":"","sources":["../src/config-validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,qBAAqB,EAAE,CAAC;CACjC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,sBAAsB,CAkFhF"}
|
package/dist/config-validator.js
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
export function validateConfig(config) {
|
|
2
|
+
// Defensive: a malformed config file can deserialize to null / a non-object.
|
|
3
|
+
// Report it as a single root error instead of throwing on `config.<field>`.
|
|
4
|
+
if (config === null || typeof config !== 'object') {
|
|
5
|
+
return {
|
|
6
|
+
valid: false,
|
|
7
|
+
issues: [{ field: '<root>', message: 'config must be an object', severity: 'error' }],
|
|
8
|
+
};
|
|
9
|
+
}
|
|
2
10
|
const issues = [];
|
|
3
11
|
if (config.defaultMaxTokens !== undefined && config.defaultMaxTokens <= 0) {
|
|
4
12
|
issues.push({
|
|
@@ -16,5 +24,52 @@ export function validateConfig(config) {
|
|
|
16
24
|
if (config.projectName !== undefined && typeof config.projectName !== 'string') {
|
|
17
25
|
issues.push({ field: 'projectName', message: 'projectName must be a string', severity: 'error' });
|
|
18
26
|
}
|
|
27
|
+
// Delegation: every recipe's verificationIds MUST resolve to a configured
|
|
28
|
+
// verificationCommands[].id. This is the only way a delegate recipe runs a
|
|
29
|
+
// verify command — a dangling id would silently un-gate a delegated edit, so
|
|
30
|
+
// it is a hard error (and `shrk doctor` surfaces it).
|
|
31
|
+
const knownVerificationIds = new Set((config.verificationCommands ?? []).map((v) => v.id));
|
|
32
|
+
const recipes = config.delegation?.recipes ?? [];
|
|
33
|
+
const seenRecipeIds = new Set();
|
|
34
|
+
for (const recipe of recipes) {
|
|
35
|
+
if (seenRecipeIds.has(recipe.id)) {
|
|
36
|
+
issues.push({
|
|
37
|
+
field: `delegation.recipes[${recipe.id}]`,
|
|
38
|
+
message: `duplicate delegate recipe id "${recipe.id}"`,
|
|
39
|
+
severity: 'error',
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
seenRecipeIds.add(recipe.id);
|
|
43
|
+
if ((recipe.guardrailGlobs ?? []).length === 0) {
|
|
44
|
+
issues.push({
|
|
45
|
+
field: `delegation.recipes[${recipe.id}].guardrailGlobs`,
|
|
46
|
+
message: `recipe "${recipe.id}" must declare at least one guardrail glob (a worker with no blast-radius fence is refused)`,
|
|
47
|
+
severity: 'error',
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
if ((recipe.allowedOps ?? []).length === 0) {
|
|
51
|
+
issues.push({
|
|
52
|
+
field: `delegation.recipes[${recipe.id}].allowedOps`,
|
|
53
|
+
message: `recipe "${recipe.id}" must declare at least one allowed op`,
|
|
54
|
+
severity: 'error',
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
if ((recipe.verificationIds ?? []).length === 0) {
|
|
58
|
+
issues.push({
|
|
59
|
+
field: `delegation.recipes[${recipe.id}].verificationIds`,
|
|
60
|
+
message: `recipe "${recipe.id}" must declare at least one verificationId — a delegate edit with no deterministic gate would apply unverified`,
|
|
61
|
+
severity: 'error',
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
for (const id of recipe.verificationIds ?? []) {
|
|
65
|
+
if (!knownVerificationIds.has(id)) {
|
|
66
|
+
issues.push({
|
|
67
|
+
field: `delegation.recipes[${recipe.id}].verificationIds`,
|
|
68
|
+
message: `unknown verification id "${id}" — define it in verificationCommands[] (a delegate recipe can only NAME a verification command, never inject one)`,
|
|
69
|
+
severity: 'error',
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
19
74
|
return { valid: issues.every((i) => i.severity !== 'error'), issues };
|
|
20
75
|
}
|
|
@@ -65,6 +65,41 @@ export interface ISharkCraftConfig {
|
|
|
65
65
|
* regardless of this field.
|
|
66
66
|
*/
|
|
67
67
|
usage?: IUsageConfig;
|
|
68
|
+
/**
|
|
69
|
+
* Local-LLM delegate worker configuration (see `shrk delegate`).
|
|
70
|
+
*
|
|
71
|
+
* Declares the MECHANICAL task recipes a repo lets a local model produce
|
|
72
|
+
* edits for. Every recipe's edit enters the world only as a signed synthetic
|
|
73
|
+
* plan that the deterministic engine verifies — so a recipe is just a fenced
|
|
74
|
+
* description of a delegatable task, never executable code.
|
|
75
|
+
*/
|
|
76
|
+
delegation?: IDelegationConfig;
|
|
77
|
+
}
|
|
78
|
+
export type { IDelegateRecipe, IDelegateRecipeMatch } from '@shrkcrft/core';
|
|
79
|
+
import type { IDelegateRecipe } from '@shrkcrft/core';
|
|
80
|
+
/**
|
|
81
|
+
* Per-recipe override, keyed by recipe id. Lets a project tune a PACK-contributed
|
|
82
|
+
* recipe (or disable it) without forking it — change the model / verification /
|
|
83
|
+
* guardrail globs, or set `enabled: false` to drop it from the catalog.
|
|
84
|
+
*/
|
|
85
|
+
export interface IDelegateRecipeOverride {
|
|
86
|
+
model?: string;
|
|
87
|
+
verificationIds?: readonly string[];
|
|
88
|
+
guardrailGlobs?: readonly string[];
|
|
89
|
+
enabled?: boolean;
|
|
90
|
+
}
|
|
91
|
+
/** Project-level delegate-worker settings + the recipe catalog. */
|
|
92
|
+
export interface IDelegationConfig {
|
|
93
|
+
/** Master switch; when false, `shrk delegate run` refuses. Default true. */
|
|
94
|
+
enabled?: boolean;
|
|
95
|
+
/** Default local provider for every recipe that doesn't override it. */
|
|
96
|
+
provider?: 'auto' | 'ollama' | 'llamacpp';
|
|
97
|
+
/** Default model for every recipe that doesn't override it. */
|
|
98
|
+
model?: string;
|
|
99
|
+
/** Inline project recipes. */
|
|
100
|
+
recipes?: readonly IDelegateRecipe[];
|
|
101
|
+
/** Overrides for pack- (or inline-) contributed recipes, keyed by recipe id. */
|
|
102
|
+
recipeOverrides?: Readonly<Record<string, IDelegateRecipeOverride>>;
|
|
68
103
|
}
|
|
69
104
|
export interface ISurfaceConfig {
|
|
70
105
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharkcraft-config.d.ts","sourceRoot":"","sources":["../src/sharkcraft-config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,sCAAsC;IACtC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,sEAAsE;IACtE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAEvD;;;OAGG;IACH,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEnC;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IAEzB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"sharkcraft-config.d.ts","sourceRoot":"","sources":["../src/sharkcraft-config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shrkcrft/config",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
3
|
+
"version": "0.1.0-alpha.21",
|
|
4
4
|
"description": "SharkCraft config loader: sharkcraft.config.ts discovery, defaults, zod-validated schema.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "SharkCraft contributors",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "./dist/index.js",
|
|
9
|
-
"types": "./dist/index.d.
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
10
|
"exports": {
|
|
11
11
|
".": {
|
|
12
12
|
"types": "./dist/index.d.ts",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"typecheck": "tsc --noEmit -p tsconfig.json"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@shrkcrft/core": "^0.1.0-alpha.
|
|
46
|
+
"@shrkcrft/core": "^0.1.0-alpha.21",
|
|
47
47
|
"zod": "^3.25.0 || ^4.0.0"
|
|
48
48
|
},
|
|
49
49
|
"publishConfig": {
|