agent-contracts 0.11.0 → 0.11.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 +70 -0
- package/dist/cli.js +193 -91
- package/dist/cli.js.map +1 -1
- package/dist/index.js +163 -61
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -158,11 +158,11 @@ function __metadata(metadataKey, metadataValue) {
|
|
|
158
158
|
}
|
|
159
159
|
function __awaiter(thisArg, _arguments, P2, generator) {
|
|
160
160
|
function adopt(value) {
|
|
161
|
-
return value instanceof P2 ? value : new P2(function(
|
|
162
|
-
|
|
161
|
+
return value instanceof P2 ? value : new P2(function(resolve7) {
|
|
162
|
+
resolve7(value);
|
|
163
163
|
});
|
|
164
164
|
}
|
|
165
|
-
return new (P2 || (P2 = Promise))(function(
|
|
165
|
+
return new (P2 || (P2 = Promise))(function(resolve7, reject) {
|
|
166
166
|
function fulfilled(value) {
|
|
167
167
|
try {
|
|
168
168
|
step(generator.next(value));
|
|
@@ -178,7 +178,7 @@ function __awaiter(thisArg, _arguments, P2, generator) {
|
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
180
|
function step(result) {
|
|
181
|
-
result.done ?
|
|
181
|
+
result.done ? resolve7(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
182
182
|
}
|
|
183
183
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
184
184
|
});
|
|
@@ -369,14 +369,14 @@ function __asyncValues(o3) {
|
|
|
369
369
|
}, i3);
|
|
370
370
|
function verb(n3) {
|
|
371
371
|
i3[n3] = o3[n3] && function(v2) {
|
|
372
|
-
return new Promise(function(
|
|
373
|
-
v2 = o3[n3](v2), settle(
|
|
372
|
+
return new Promise(function(resolve7, reject) {
|
|
373
|
+
v2 = o3[n3](v2), settle(resolve7, reject, v2.done, v2.value);
|
|
374
374
|
});
|
|
375
375
|
};
|
|
376
376
|
}
|
|
377
|
-
function settle(
|
|
377
|
+
function settle(resolve7, reject, d2, v2) {
|
|
378
378
|
Promise.resolve(v2).then(function(v3) {
|
|
379
|
-
|
|
379
|
+
resolve7({ value: v3, done: d2 });
|
|
380
380
|
}, reject);
|
|
381
381
|
}
|
|
382
382
|
}
|
|
@@ -13032,11 +13032,11 @@ function __metadata2(metadataKey, metadataValue) {
|
|
|
13032
13032
|
}
|
|
13033
13033
|
function __awaiter2(thisArg, _arguments, P2, generator) {
|
|
13034
13034
|
function adopt(value) {
|
|
13035
|
-
return value instanceof P2 ? value : new P2(function(
|
|
13036
|
-
|
|
13035
|
+
return value instanceof P2 ? value : new P2(function(resolve7) {
|
|
13036
|
+
resolve7(value);
|
|
13037
13037
|
});
|
|
13038
13038
|
}
|
|
13039
|
-
return new (P2 || (P2 = Promise))(function(
|
|
13039
|
+
return new (P2 || (P2 = Promise))(function(resolve7, reject) {
|
|
13040
13040
|
function fulfilled(value) {
|
|
13041
13041
|
try {
|
|
13042
13042
|
step(generator.next(value));
|
|
@@ -13052,7 +13052,7 @@ function __awaiter2(thisArg, _arguments, P2, generator) {
|
|
|
13052
13052
|
}
|
|
13053
13053
|
}
|
|
13054
13054
|
function step(result) {
|
|
13055
|
-
result.done ?
|
|
13055
|
+
result.done ? resolve7(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
13056
13056
|
}
|
|
13057
13057
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
13058
13058
|
});
|
|
@@ -13230,14 +13230,14 @@ function __asyncValues2(o3) {
|
|
|
13230
13230
|
}, i3);
|
|
13231
13231
|
function verb(n3) {
|
|
13232
13232
|
i3[n3] = o3[n3] && function(v2) {
|
|
13233
|
-
return new Promise(function(
|
|
13234
|
-
v2 = o3[n3](v2), settle(
|
|
13233
|
+
return new Promise(function(resolve7, reject) {
|
|
13234
|
+
v2 = o3[n3](v2), settle(resolve7, reject, v2.done, v2.value);
|
|
13235
13235
|
});
|
|
13236
13236
|
};
|
|
13237
13237
|
}
|
|
13238
|
-
function settle(
|
|
13238
|
+
function settle(resolve7, reject, d2, v2) {
|
|
13239
13239
|
Promise.resolve(v2).then(function(v3) {
|
|
13240
|
-
|
|
13240
|
+
resolve7({ value: v3, done: d2 });
|
|
13241
13241
|
}, reject);
|
|
13242
13242
|
}
|
|
13243
13243
|
}
|
|
@@ -15151,7 +15151,7 @@ function consumeBody() {
|
|
|
15151
15151
|
let accum = [];
|
|
15152
15152
|
let accumBytes = 0;
|
|
15153
15153
|
let abort = false;
|
|
15154
|
-
return new Body.Promise(function(
|
|
15154
|
+
return new Body.Promise(function(resolve7, reject) {
|
|
15155
15155
|
let resTimeout;
|
|
15156
15156
|
if (_this4.timeout) {
|
|
15157
15157
|
resTimeout = setTimeout(function() {
|
|
@@ -15185,7 +15185,7 @@ function consumeBody() {
|
|
|
15185
15185
|
}
|
|
15186
15186
|
clearTimeout(resTimeout);
|
|
15187
15187
|
try {
|
|
15188
|
-
|
|
15188
|
+
resolve7(Buffer.concat(accum, accumBytes));
|
|
15189
15189
|
} catch (err) {
|
|
15190
15190
|
reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, "system", err));
|
|
15191
15191
|
}
|
|
@@ -15448,7 +15448,7 @@ function fetch(url, opts) {
|
|
|
15448
15448
|
throw new Error("native promise missing, set fetch.Promise to your favorite alternative");
|
|
15449
15449
|
}
|
|
15450
15450
|
Body.Promise = fetch.Promise;
|
|
15451
|
-
return new fetch.Promise(function(
|
|
15451
|
+
return new fetch.Promise(function(resolve7, reject) {
|
|
15452
15452
|
const request = new Request(url, opts);
|
|
15453
15453
|
const options = getNodeRequestOptions(request);
|
|
15454
15454
|
const send = (options.protocol === "https:" ? https : http).request;
|
|
@@ -15581,7 +15581,7 @@ function fetch(url, opts) {
|
|
|
15581
15581
|
requestOpts.body = void 0;
|
|
15582
15582
|
requestOpts.headers.delete("content-length");
|
|
15583
15583
|
}
|
|
15584
|
-
|
|
15584
|
+
resolve7(fetch(new Request(locationURL, requestOpts)));
|
|
15585
15585
|
finalize();
|
|
15586
15586
|
return;
|
|
15587
15587
|
}
|
|
@@ -15602,7 +15602,7 @@ function fetch(url, opts) {
|
|
|
15602
15602
|
const codings = headers.get("Content-Encoding");
|
|
15603
15603
|
if (!request.compress || request.method === "HEAD" || codings === null || res.statusCode === 204 || res.statusCode === 304) {
|
|
15604
15604
|
response = new Response(body, response_options);
|
|
15605
|
-
|
|
15605
|
+
resolve7(response);
|
|
15606
15606
|
return;
|
|
15607
15607
|
}
|
|
15608
15608
|
const zlibOptions = {
|
|
@@ -15612,7 +15612,7 @@ function fetch(url, opts) {
|
|
|
15612
15612
|
if (codings == "gzip" || codings == "x-gzip") {
|
|
15613
15613
|
body = body.pipe(zlib.createGunzip(zlibOptions));
|
|
15614
15614
|
response = new Response(body, response_options);
|
|
15615
|
-
|
|
15615
|
+
resolve7(response);
|
|
15616
15616
|
return;
|
|
15617
15617
|
}
|
|
15618
15618
|
if (codings == "deflate" || codings == "x-deflate") {
|
|
@@ -15624,12 +15624,12 @@ function fetch(url, opts) {
|
|
|
15624
15624
|
body = body.pipe(zlib.createInflateRaw());
|
|
15625
15625
|
}
|
|
15626
15626
|
response = new Response(body, response_options);
|
|
15627
|
-
|
|
15627
|
+
resolve7(response);
|
|
15628
15628
|
});
|
|
15629
15629
|
raw.on("end", function() {
|
|
15630
15630
|
if (!response) {
|
|
15631
15631
|
response = new Response(body, response_options);
|
|
15632
|
-
|
|
15632
|
+
resolve7(response);
|
|
15633
15633
|
}
|
|
15634
15634
|
});
|
|
15635
15635
|
return;
|
|
@@ -15637,11 +15637,11 @@ function fetch(url, opts) {
|
|
|
15637
15637
|
if (codings == "br" && typeof zlib.createBrotliDecompress === "function") {
|
|
15638
15638
|
body = body.pipe(zlib.createBrotliDecompress());
|
|
15639
15639
|
response = new Response(body, response_options);
|
|
15640
|
-
|
|
15640
|
+
resolve7(response);
|
|
15641
15641
|
return;
|
|
15642
15642
|
}
|
|
15643
15643
|
response = new Response(body, response_options);
|
|
15644
|
-
|
|
15644
|
+
resolve7(response);
|
|
15645
15645
|
});
|
|
15646
15646
|
writeToStream(req, request);
|
|
15647
15647
|
});
|
|
@@ -16354,13 +16354,13 @@ var require_file = __commonJS({
|
|
|
16354
16354
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16355
16355
|
var fs_1 = __require("fs");
|
|
16356
16356
|
function resolveFile(ref) {
|
|
16357
|
-
return new Promise((
|
|
16357
|
+
return new Promise((resolve7, reject) => {
|
|
16358
16358
|
const path = ref.href();
|
|
16359
16359
|
fs_1.readFile(path, "utf8", (err, data) => {
|
|
16360
16360
|
if (err) {
|
|
16361
16361
|
reject(err);
|
|
16362
16362
|
} else {
|
|
16363
|
-
|
|
16363
|
+
resolve7(data);
|
|
16364
16364
|
}
|
|
16365
16365
|
});
|
|
16366
16366
|
});
|
|
@@ -23963,12 +23963,12 @@ var require_reader = __commonJS({
|
|
|
23963
23963
|
}
|
|
23964
23964
|
} else {
|
|
23965
23965
|
try {
|
|
23966
|
-
return await new Promise((
|
|
23966
|
+
return await new Promise((resolve7, reject) => {
|
|
23967
23967
|
fs.readFile(name, opts.encoding, (err, data) => {
|
|
23968
23968
|
if (err !== null) {
|
|
23969
23969
|
reject(err);
|
|
23970
23970
|
} else {
|
|
23971
|
-
|
|
23971
|
+
resolve7(data);
|
|
23972
23972
|
}
|
|
23973
23973
|
});
|
|
23974
23974
|
});
|
|
@@ -40853,14 +40853,14 @@ var require_AsyncFromSyncIteratorContinuation = __commonJS({
|
|
|
40853
40853
|
if (!$Promise) {
|
|
40854
40854
|
throw new $SyntaxError("This environment does not support Promises.");
|
|
40855
40855
|
}
|
|
40856
|
-
return new $Promise(function(
|
|
40856
|
+
return new $Promise(function(resolve7) {
|
|
40857
40857
|
var done = IteratorComplete(result);
|
|
40858
40858
|
var value = IteratorValue(result);
|
|
40859
40859
|
var valueWrapper = PromiseResolve($Promise, value);
|
|
40860
40860
|
var onFulfilled = function(value2) {
|
|
40861
40861
|
return CreateIteratorResultObject(value2, done);
|
|
40862
40862
|
};
|
|
40863
|
-
|
|
40863
|
+
resolve7($then(valueWrapper, onFulfilled));
|
|
40864
40864
|
});
|
|
40865
40865
|
};
|
|
40866
40866
|
}
|
|
@@ -41408,7 +41408,7 @@ var require_CreateAsyncFromSyncIterator = __commonJS({
|
|
|
41408
41408
|
var O2 = this;
|
|
41409
41409
|
SLOT.assert(O2, "[[SyncIteratorRecord]]");
|
|
41410
41410
|
var argsLength = arguments.length;
|
|
41411
|
-
return new $Promise(function(
|
|
41411
|
+
return new $Promise(function(resolve7) {
|
|
41412
41412
|
var syncIteratorRecord = SLOT.get(O2, "[[SyncIteratorRecord]]");
|
|
41413
41413
|
var result;
|
|
41414
41414
|
if (argsLength > 0) {
|
|
@@ -41416,7 +41416,7 @@ var require_CreateAsyncFromSyncIterator = __commonJS({
|
|
|
41416
41416
|
} else {
|
|
41417
41417
|
result = IteratorNext(syncIteratorRecord);
|
|
41418
41418
|
}
|
|
41419
|
-
|
|
41419
|
+
resolve7(AsyncFromSyncIteratorContinuation(result));
|
|
41420
41420
|
});
|
|
41421
41421
|
},
|
|
41422
41422
|
"return": function() {
|
|
@@ -41427,12 +41427,12 @@ var require_CreateAsyncFromSyncIterator = __commonJS({
|
|
|
41427
41427
|
SLOT.assert(O2, "[[SyncIteratorRecord]]");
|
|
41428
41428
|
var valueIsPresent = arguments.length > 0;
|
|
41429
41429
|
var value = valueIsPresent ? arguments[0] : void 0;
|
|
41430
|
-
return new $Promise(function(
|
|
41430
|
+
return new $Promise(function(resolve7, reject) {
|
|
41431
41431
|
var syncIterator = SLOT.get(O2, "[[SyncIteratorRecord]]")["[[Iterator]]"];
|
|
41432
41432
|
var iteratorReturn = GetMethod(syncIterator, "return");
|
|
41433
41433
|
if (typeof iteratorReturn === "undefined") {
|
|
41434
41434
|
var iterResult = CreateIteratorResultObject(value, true);
|
|
41435
|
-
Call(
|
|
41435
|
+
Call(resolve7, void 0, [iterResult]);
|
|
41436
41436
|
return;
|
|
41437
41437
|
}
|
|
41438
41438
|
var result;
|
|
@@ -41445,7 +41445,7 @@ var require_CreateAsyncFromSyncIterator = __commonJS({
|
|
|
41445
41445
|
Call(reject, void 0, [new $TypeError("Iterator `return` method returned a non-object value.")]);
|
|
41446
41446
|
return;
|
|
41447
41447
|
}
|
|
41448
|
-
|
|
41448
|
+
resolve7(AsyncFromSyncIteratorContinuation(result));
|
|
41449
41449
|
});
|
|
41450
41450
|
},
|
|
41451
41451
|
"throw": function() {
|
|
@@ -41456,7 +41456,7 @@ var require_CreateAsyncFromSyncIterator = __commonJS({
|
|
|
41456
41456
|
SLOT.assert(O2, "[[SyncIteratorRecord]]");
|
|
41457
41457
|
var valueIsPresent = arguments.length > 0;
|
|
41458
41458
|
var value = valueIsPresent ? arguments[0] : void 0;
|
|
41459
|
-
return new $Promise(function(
|
|
41459
|
+
return new $Promise(function(resolve7, reject) {
|
|
41460
41460
|
var syncIterator = SLOT.get(O2, "[[SyncIteratorRecord]]")["[[Iterator]]"];
|
|
41461
41461
|
var throwMethod = GetMethod(syncIterator, "throw");
|
|
41462
41462
|
if (typeof throwMethod === "undefined") {
|
|
@@ -41473,7 +41473,7 @@ var require_CreateAsyncFromSyncIterator = __commonJS({
|
|
|
41473
41473
|
Call(reject, void 0, [new $TypeError("Iterator `throw` method returned a non-object value.")]);
|
|
41474
41474
|
return;
|
|
41475
41475
|
}
|
|
41476
|
-
|
|
41476
|
+
resolve7(AsyncFromSyncIteratorContinuation(
|
|
41477
41477
|
result
|
|
41478
41478
|
/* , promiseCapability */
|
|
41479
41479
|
));
|
|
@@ -54021,6 +54021,8 @@ async function checkDriftFromConfig(dsl, renderTargets) {
|
|
|
54021
54021
|
|
|
54022
54022
|
// src/config/binding-loader.ts
|
|
54023
54023
|
import { readFile as readFile4 } from "fs/promises";
|
|
54024
|
+
import { dirname as dirname5, resolve as resolve5 } from "path";
|
|
54025
|
+
import { stat as stat2 } from "fs/promises";
|
|
54024
54026
|
import { parse as parseYaml3 } from "yaml";
|
|
54025
54027
|
|
|
54026
54028
|
// src/config/loader.ts
|
|
@@ -54158,30 +54160,130 @@ function resolveDslPath(dirArg, dirArgDefault, config) {
|
|
|
54158
54160
|
return resolve4(dirArgDefault);
|
|
54159
54161
|
}
|
|
54160
54162
|
|
|
54163
|
+
// src/config/binding-merger.ts
|
|
54164
|
+
function isRecord3(v2) {
|
|
54165
|
+
return typeof v2 === "object" && v2 !== null && !Array.isArray(v2);
|
|
54166
|
+
}
|
|
54167
|
+
var BINDING_MERGE_SECTIONS = ["guardrail_impl", "outputs"];
|
|
54168
|
+
function mergeBinding(base, project) {
|
|
54169
|
+
const hasExtends = typeof project["extends"] === "string";
|
|
54170
|
+
const result = { ...base, ...project };
|
|
54171
|
+
for (const section of BINDING_MERGE_SECTIONS) {
|
|
54172
|
+
const baseVal = base[section];
|
|
54173
|
+
const projVal = project[section];
|
|
54174
|
+
if (projVal === void 0) {
|
|
54175
|
+
continue;
|
|
54176
|
+
}
|
|
54177
|
+
const baseMap = isRecord3(baseVal) ? baseVal : {};
|
|
54178
|
+
result[section] = mergeEntityMaps(
|
|
54179
|
+
baseMap,
|
|
54180
|
+
projVal,
|
|
54181
|
+
section,
|
|
54182
|
+
hasExtends
|
|
54183
|
+
);
|
|
54184
|
+
}
|
|
54185
|
+
if (project["reporting"] !== void 0 && isRecord3(base["reporting"]) && isRecord3(project["reporting"])) {
|
|
54186
|
+
result["reporting"] = deepMergeEntities(
|
|
54187
|
+
base["reporting"],
|
|
54188
|
+
project["reporting"],
|
|
54189
|
+
"reporting",
|
|
54190
|
+
hasExtends
|
|
54191
|
+
);
|
|
54192
|
+
}
|
|
54193
|
+
delete result["extends"];
|
|
54194
|
+
return result;
|
|
54195
|
+
}
|
|
54196
|
+
|
|
54161
54197
|
// src/config/binding-loader.ts
|
|
54162
|
-
async function
|
|
54163
|
-
|
|
54164
|
-
|
|
54165
|
-
|
|
54198
|
+
async function loadRawBinding(filePath) {
|
|
54199
|
+
let content;
|
|
54200
|
+
try {
|
|
54201
|
+
content = await readFile4(filePath, "utf8");
|
|
54202
|
+
} catch {
|
|
54203
|
+
throw new ConfigLoadError(
|
|
54204
|
+
`Failed to read binding file: ${filePath}`,
|
|
54205
|
+
filePath
|
|
54206
|
+
);
|
|
54207
|
+
}
|
|
54208
|
+
try {
|
|
54209
|
+
return parseYaml3(content);
|
|
54210
|
+
} catch (err) {
|
|
54211
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
54212
|
+
throw new ConfigLoadError(
|
|
54213
|
+
`Invalid YAML syntax in binding file ${filePath}: ${msg}`,
|
|
54214
|
+
filePath
|
|
54215
|
+
);
|
|
54216
|
+
}
|
|
54217
|
+
}
|
|
54218
|
+
async function resolveBindingExtends(raw, filePath, seen) {
|
|
54219
|
+
const extendsValue = raw["extends"];
|
|
54220
|
+
if (typeof extendsValue !== "string") {
|
|
54221
|
+
return raw;
|
|
54222
|
+
}
|
|
54223
|
+
const bindingDir = dirname5(filePath);
|
|
54224
|
+
let basePath;
|
|
54225
|
+
if (extendsValue.startsWith("./") || extendsValue.startsWith("../")) {
|
|
54226
|
+
basePath = resolve5(bindingDir, extendsValue);
|
|
54227
|
+
} else {
|
|
54166
54228
|
try {
|
|
54167
|
-
|
|
54229
|
+
const resolved = import.meta.resolve(extendsValue);
|
|
54230
|
+
basePath = new URL(resolved).pathname;
|
|
54168
54231
|
} catch {
|
|
54169
54232
|
throw new ConfigLoadError(
|
|
54170
|
-
`
|
|
54233
|
+
`Could not resolve binding extends package: ${extendsValue}`,
|
|
54171
54234
|
filePath
|
|
54172
54235
|
);
|
|
54173
54236
|
}
|
|
54174
|
-
|
|
54175
|
-
|
|
54176
|
-
|
|
54177
|
-
|
|
54178
|
-
const
|
|
54179
|
-
|
|
54180
|
-
|
|
54181
|
-
|
|
54182
|
-
|
|
54237
|
+
}
|
|
54238
|
+
try {
|
|
54239
|
+
const s2 = await stat2(basePath);
|
|
54240
|
+
if (s2.isDirectory()) {
|
|
54241
|
+
const candidates = ["binding.yaml", "binding.yml"];
|
|
54242
|
+
let found = false;
|
|
54243
|
+
for (const name of candidates) {
|
|
54244
|
+
const candidate = resolve5(basePath, name);
|
|
54245
|
+
try {
|
|
54246
|
+
const cs = await stat2(candidate);
|
|
54247
|
+
if (cs.isFile()) {
|
|
54248
|
+
basePath = candidate;
|
|
54249
|
+
found = true;
|
|
54250
|
+
break;
|
|
54251
|
+
}
|
|
54252
|
+
} catch {
|
|
54253
|
+
continue;
|
|
54254
|
+
}
|
|
54255
|
+
}
|
|
54256
|
+
if (!found) {
|
|
54257
|
+
throw new ConfigLoadError(
|
|
54258
|
+
`No binding.yaml found in directory: ${basePath}`,
|
|
54259
|
+
filePath
|
|
54260
|
+
);
|
|
54261
|
+
}
|
|
54183
54262
|
}
|
|
54184
|
-
|
|
54263
|
+
} catch (err) {
|
|
54264
|
+
if (err instanceof ConfigLoadError) throw err;
|
|
54265
|
+
throw new ConfigLoadError(
|
|
54266
|
+
`Base binding path not found: ${basePath}`,
|
|
54267
|
+
filePath
|
|
54268
|
+
);
|
|
54269
|
+
}
|
|
54270
|
+
if (seen.has(basePath)) {
|
|
54271
|
+
throw new ConfigLoadError(
|
|
54272
|
+
`Circular binding extends detected: ${basePath}`,
|
|
54273
|
+
filePath
|
|
54274
|
+
);
|
|
54275
|
+
}
|
|
54276
|
+
seen.add(basePath);
|
|
54277
|
+
const baseRaw = await loadRawBinding(basePath);
|
|
54278
|
+
const resolvedBase = await resolveBindingExtends(baseRaw, basePath, seen);
|
|
54279
|
+
return mergeBinding(resolvedBase, raw);
|
|
54280
|
+
}
|
|
54281
|
+
async function loadBindings(bindingPaths) {
|
|
54282
|
+
const results = [];
|
|
54283
|
+
for (const filePath of bindingPaths) {
|
|
54284
|
+
const raw = await loadRawBinding(filePath);
|
|
54285
|
+
const merged = await resolveBindingExtends(raw, filePath, /* @__PURE__ */ new Set([filePath]));
|
|
54286
|
+
const result = SoftwareBindingSchema.safeParse(merged);
|
|
54185
54287
|
if (!result.success) {
|
|
54186
54288
|
const issues = result.error.issues.map((i3) => ` ${i3.path.join(".")}: ${i3.message}`).join("\n");
|
|
54187
54289
|
throw new ConfigLoadError(
|
|
@@ -54197,7 +54299,7 @@ ${issues}`,
|
|
|
54197
54299
|
|
|
54198
54300
|
// src/guardrail-generator/generator.ts
|
|
54199
54301
|
import { readFile as readFile5, writeFile as writeFile2, mkdir as mkdir2, chmod } from "fs/promises";
|
|
54200
|
-
import { resolve as
|
|
54302
|
+
import { resolve as resolve6, dirname as dirname6 } from "path";
|
|
54201
54303
|
import Handlebars2 from "handlebars";
|
|
54202
54304
|
|
|
54203
54305
|
// src/guardrail-generator/resolve-checks.ts
|
|
@@ -54338,7 +54440,7 @@ async function generateGuardrails(options) {
|
|
|
54338
54440
|
if (pathResult.diagnostics.some((d2) => d2.severity === "error")) {
|
|
54339
54441
|
continue;
|
|
54340
54442
|
}
|
|
54341
|
-
const targetPath =
|
|
54443
|
+
const targetPath = resolve6(config.configDir, pathResult.resolved);
|
|
54342
54444
|
let templateContent;
|
|
54343
54445
|
if (outputDef.inline_template) {
|
|
54344
54446
|
templateContent = outputDef.inline_template;
|
|
@@ -54351,7 +54453,7 @@ async function generateGuardrails(options) {
|
|
|
54351
54453
|
});
|
|
54352
54454
|
continue;
|
|
54353
54455
|
}
|
|
54354
|
-
const templatePath =
|
|
54456
|
+
const templatePath = resolve6(config.configDir, outputDef.template);
|
|
54355
54457
|
try {
|
|
54356
54458
|
templateContent = await readFile5(templatePath, "utf8");
|
|
54357
54459
|
} catch {
|
|
@@ -54388,9 +54490,9 @@ async function generateGuardrails(options) {
|
|
|
54388
54490
|
};
|
|
54389
54491
|
const compiled = Handlebars2.compile(templateContent, { noEscape: true });
|
|
54390
54492
|
const output = compiled(groupCtx);
|
|
54391
|
-
const groupTarget =
|
|
54493
|
+
const groupTarget = resolve6(targetPath, groupKey);
|
|
54392
54494
|
if (!dryRun) {
|
|
54393
|
-
await mkdir2(
|
|
54495
|
+
await mkdir2(dirname6(groupTarget), { recursive: true });
|
|
54394
54496
|
await writeFile2(groupTarget, output, "utf8");
|
|
54395
54497
|
if (outputDef.executable) {
|
|
54396
54498
|
await chmod(groupTarget, 493);
|
|
@@ -54402,7 +54504,7 @@ async function generateGuardrails(options) {
|
|
|
54402
54504
|
const compiled = Handlebars2.compile(templateContent, { noEscape: true });
|
|
54403
54505
|
const output = compiled(ctx);
|
|
54404
54506
|
if (!dryRun) {
|
|
54405
|
-
await mkdir2(
|
|
54507
|
+
await mkdir2(dirname6(targetPath), { recursive: true });
|
|
54406
54508
|
await writeFile2(targetPath, output, "utf8");
|
|
54407
54509
|
if (outputDef.executable) {
|
|
54408
54510
|
await chmod(targetPath, 493);
|