brass-runtime 1.17.0 → 1.18.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 +36 -3
- package/dist/agent/cli/main.cjs +31 -32
- package/dist/agent/cli/main.js +3 -4
- package/dist/agent/cli/main.mjs +3 -4
- package/dist/agent/index.cjs +4 -5
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.js +3 -4
- package/dist/agent/index.mjs +3 -4
- package/dist/{chunk-7X3K5RMS.js → chunk-22HZQG5F.js} +9 -11
- package/dist/{chunk-GLE2WY7Z.cjs → chunk-2JHJ4YHS.cjs} +417 -124
- package/dist/{chunk-Q2I37RP3.cjs → chunk-2OW6IFY2.cjs} +44 -323
- package/dist/{chunk-7ZPEZ57L.cjs → chunk-5LC7V2OZ.cjs} +18 -20
- package/dist/{chunk-AGR5B2BC.cjs → chunk-5RZ7YITF.cjs} +564 -12
- package/dist/{chunk-DNFJLJMW.mjs → chunk-6MLAZPBL.mjs} +48 -24
- package/dist/{chunk-EJ6BPYVR.mjs → chunk-6V2AWT4R.mjs} +1 -1
- package/dist/{chunk-3AYM6WPJ.js → chunk-7DU7IQHK.js} +20 -299
- package/dist/{chunk-SK7UZRNI.mjs → chunk-7GBJYOX7.mjs} +528 -23
- package/dist/chunk-7TKI527D.cjs +123 -0
- package/dist/{chunk-52OB2ROS.js → chunk-7VQLEN37.js} +2 -4
- package/dist/{chunk-KH4SYAOS.mjs → chunk-B5FKOLTB.mjs} +20 -299
- package/dist/{chunk-FHQGHPMO.mjs → chunk-BC6Q6BCO.mjs} +2 -4
- package/dist/{chunk-4P2HHGAX.mjs → chunk-COOW7BJX.mjs} +32 -11
- package/dist/{chunk-2HQTDLHF.mjs → chunk-EEN5OTCR.mjs} +555 -3
- package/dist/{chunk-KZJQ723N.cjs → chunk-EICAJDNX.cjs} +13 -15
- package/dist/chunk-ELIECDYN.cjs +33 -0
- package/dist/{chunk-GYM3LLGS.mjs → chunk-H626ZTDZ.mjs} +399 -106
- package/dist/{chunk-C3MDXTRZ.js → chunk-HCJ4S3YB.js} +48 -24
- package/dist/{chunk-7JIJOVCT.js → chunk-IPSMXUWA.js} +2 -4
- package/dist/{chunk-4ROBZFL6.cjs → chunk-J6DUHITE.cjs} +6 -8
- package/dist/{chunk-6RY2FFN4.mjs → chunk-JWIEMBE6.mjs} +9 -11
- package/dist/{chunk-PD4EJTQC.cjs → chunk-KNTJ7FQB.cjs} +5 -5
- package/dist/chunk-KTGDLBLD.mjs +123 -0
- package/dist/chunk-LSYQ3C2M.js +33 -0
- package/dist/{chunk-RKGKFN2A.js → chunk-OW5VHAOE.js} +1 -1
- package/dist/{chunk-EOC4UHBS.mjs → chunk-RBHNOKH4.mjs} +2 -2
- package/dist/{chunk-6IXXWIUM.js → chunk-S4HXADU4.js} +555 -3
- package/dist/{chunk-FH2X7BVP.js → chunk-TTSPIU3U.js} +399 -106
- package/dist/{chunk-5QC7LRZ3.js → chunk-UAKAF32U.js} +2 -2
- package/dist/{chunk-CZIVE6NT.cjs → chunk-UUMKZJRJ.cjs} +48 -24
- package/dist/{chunk-MBEJI5HF.mjs → chunk-WCBNXPN6.mjs} +2 -4
- package/dist/{chunk-52PPNNI4.cjs → chunk-WGE2FEZE.cjs} +2 -2
- package/dist/{chunk-WBGRHGBP.cjs → chunk-WI7GZF3B.cjs} +114 -93
- package/dist/chunk-WUDHOZIH.js +6234 -0
- package/dist/{chunk-F6XWZQY4.cjs → chunk-WVSZOPGQ.cjs} +583 -78
- package/dist/chunk-XPIMJQYS.cjs +6234 -0
- package/dist/{chunk-VWIPB6I5.js → chunk-YGR2IN4R.js} +528 -23
- package/dist/chunk-YM3EDNYD.js +123 -0
- package/dist/chunk-YWLLH27R.mjs +33 -0
- package/dist/{chunk-BKK77SBA.js → chunk-YZ5LQ32F.js} +32 -11
- package/dist/chunk-Z3ZZMQUZ.mjs +6234 -0
- package/dist/core/index.cjs +37 -9
- package/dist/core/index.d.ts +19 -152
- package/dist/core/index.js +86 -58
- package/dist/core/index.mjs +86 -58
- package/dist/defaultClient-Cid0JoUR.d.ts +1648 -0
- package/dist/{effect-DIUHZ9IN.d.ts → effect-DnGUuhw6.d.ts} +22 -1
- package/dist/http/index.cjs +206 -59
- package/dist/http/index.d.ts +55 -819
- package/dist/http/index.js +220 -73
- package/dist/http/index.mjs +220 -73
- package/dist/http/testing.cjs +31 -10
- package/dist/http/testing.d.ts +16 -5
- package/dist/http/testing.js +29 -8
- package/dist/http/testing.mjs +29 -8
- package/dist/index.cjs +116 -88
- package/dist/index.d.ts +9 -8
- package/dist/index.js +87 -59
- package/dist/index.mjs +87 -59
- package/dist/{schedule-CK3Ml_7p.d.ts → layer-D2LFcBVx.d.ts} +176 -2
- package/dist/observability/index.cjs +20 -7
- package/dist/observability/index.d.ts +32 -8
- package/dist/observability/index.js +19 -6
- package/dist/observability/index.mjs +19 -6
- package/dist/perf/cli.cjs +26 -28
- package/dist/perf/cli.js +11 -13
- package/dist/perf/cli.mjs +11 -13
- package/dist/perf/index.cjs +13 -15
- package/dist/perf/index.js +11 -13
- package/dist/perf/index.mjs +11 -13
- package/dist/schema/index.cjs +2 -2
- package/dist/schema/index.js +1 -1
- package/dist/schema/index.mjs +1 -1
- package/dist/{server-D6JZ15_e.d.ts → server-Bf1zNYZk.d.ts} +5 -5
- package/dist/{stream-B4oK9JFP.d.ts → stream-I7bkvF7a.d.ts} +1 -1
- package/dist/{tracer-Hwt1cl7h.d.ts → tracer-DF83nLn6.d.ts} +2 -2
- package/dist/{tracing-DqbTKGcf.d.ts → tracing-CWV4gT0u.d.ts} +1 -1
- package/docs/README.md +2 -0
- package/docs/ai/PUBLIC_API.md +28 -7
- package/docs/articles/brass-runtime-http-observability.md +467 -0
- package/docs/frameworks/angular.md +51 -0
- package/docs/frameworks/express.md +58 -0
- package/docs/frameworks/fastify.md +49 -0
- package/docs/frameworks/nestjs.md +53 -0
- package/docs/frameworks/nextjs.md +55 -0
- package/docs/frameworks/react.md +44 -0
- package/docs/frameworks/vanilla.md +56 -0
- package/docs/guides/layers.md +130 -0
- package/docs/http-recipes.md +31 -1
- package/docs/http.md +50 -1
- package/docs/observability.md +132 -0
- package/docs/performance-profiler.md +6 -2
- package/docs/recipes/layers.md +46 -2
- package/docs/recipes/testing.md +25 -0
- package/package.json +6 -2
- package/dist/chunk-3LOYJFRR.cjs +0 -300
- package/dist/chunk-3Y2RIUMM.js +0 -300
- package/dist/chunk-5EC274J5.cjs +0 -2874
- package/dist/chunk-5VRJNBLZ.mjs +0 -2874
- package/dist/chunk-62AZW6UT.cjs +0 -313
- package/dist/chunk-74ZTY6CP.js +0 -2871
- package/dist/chunk-7CMJS3QE.mjs +0 -2871
- package/dist/chunk-A2OM6NEH.mjs +0 -194
- package/dist/chunk-B33ICAKP.js +0 -313
- package/dist/chunk-JF5WGYJJ.cjs +0 -194
- package/dist/chunk-KN32XNTH.mjs +0 -313
- package/dist/chunk-KQLYONSE.cjs +0 -2871
- package/dist/chunk-L2SYFEBS.js +0 -194
- package/dist/chunk-MIIYDLGM.js +0 -2874
- package/dist/chunk-PWC3RBQE.mjs +0 -300
- package/dist/client-CZHU674n.d.ts +0 -820
package/README.md
CHANGED
|
@@ -9,6 +9,10 @@ Built without `Promise`/`async`/`await` as the primary semantic primitive. Effec
|
|
|
9
9
|
npm i brass-runtime
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
+
Runnable framework examples live in the
|
|
13
|
+
[repository examples](https://github.com/BaldrVivaldelli/brass-runtime/tree/main/examples).
|
|
14
|
+
They are kept out of the npm package so installs stay small.
|
|
15
|
+
|
|
12
16
|
---
|
|
13
17
|
|
|
14
18
|
## What it does
|
|
@@ -159,9 +163,30 @@ console.log(http.compression?.stats());
|
|
|
159
163
|
deduplication, priority scheduling, retry, adaptive concurrency, safe-method
|
|
160
164
|
response cache, decompression, stats, `cancelAll`, and JSON/text helpers. Use
|
|
161
165
|
`preset: "production"` when you want that production-ready shape explicitly,
|
|
162
|
-
`preset: "balanced"` to skip the default cache,
|
|
163
|
-
|
|
164
|
-
|
|
166
|
+
`preset: "balanced"` to skip the default cache, `preset: "highThroughputProxy"`
|
|
167
|
+
for hot BFF/proxy paths without lifecycle queues or Brass timers by default,
|
|
168
|
+
`preset: "proxy"` as the shorter compatibility alias, or `preset: "minimal"`
|
|
169
|
+
for a cheap wire client with the same helper API. `preset: "default"` remains
|
|
170
|
+
the same full preset for compatibility.
|
|
171
|
+
|
|
172
|
+
On Node BFF/proxy services, pair the proxy preset with the first-party
|
|
173
|
+
`node:http` transport when the default `fetch` backend is the bottleneck.
|
|
174
|
+
The Node-only factory below wires that recommended shape directly:
|
|
175
|
+
|
|
176
|
+
```ts
|
|
177
|
+
import { toPromise } from "brass-runtime";
|
|
178
|
+
import { makeNodeHttpProxyClient } from "brass-runtime/http";
|
|
179
|
+
|
|
180
|
+
const http = makeNodeHttpProxyClient({
|
|
181
|
+
baseUrl: "https://api.example.com",
|
|
182
|
+
nodeTransport: {
|
|
183
|
+
maxSockets: 512,
|
|
184
|
+
maxFreeSockets: 512,
|
|
185
|
+
},
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
await toPromise(http.shutdown(), {}); // also destroys owned Node agents
|
|
189
|
+
```
|
|
165
190
|
|
|
166
191
|
The HTTP stack is meant to replace the usual `fetch` wrapper plus Zod/Valibot
|
|
167
192
|
glue: schemas are dependency-free, responses and request bodies are validated in
|
|
@@ -460,6 +485,14 @@ It also reads `req.policy` automatically: logs and span attributes include
|
|
|
460
485
|
Metric labels stay conservative by default; opt into stable labels with
|
|
461
486
|
`withHttpObservability({ policy: { labelKeys: ["preset", "lane", "poolKey"] } })`.
|
|
462
487
|
|
|
488
|
+
For hot proxy paths, keep HTTP metrics separate from runtime hooks:
|
|
489
|
+
`makeObservability({ metrics: false, logs: false, traces: false })`,
|
|
490
|
+
`preset: "proxy"`, `withHttpObservability({ spans: false, logs: false,
|
|
491
|
+
injectTraceHeaders: false, includeHostLabel: false })`. For sampled spans on
|
|
492
|
+
the same path, avoid global runtime hooks and use
|
|
493
|
+
`withHttpObservability({ spans: { events: false, sampleRate: 0.001 },
|
|
494
|
+
spanSink: observability.tracer, injectTraceHeaders: false })`.
|
|
495
|
+
|
|
463
496
|
### Performance profiler
|
|
464
497
|
|
|
465
498
|
```bash
|
package/dist/agent/cli/main.cjs
CHANGED
|
@@ -17,18 +17,17 @@
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _chunkJ6DUHITEcjs = require('../../chunk-J6DUHITE.cjs');
|
|
21
21
|
require('../../chunk-SA6HUJVI.cjs');
|
|
22
|
-
require('../../chunk-JF5WGYJJ.cjs');
|
|
23
22
|
|
|
24
23
|
|
|
25
|
-
var
|
|
24
|
+
var _chunk2JHJ4YHScjs = require('../../chunk-2JHJ4YHS.cjs');
|
|
26
25
|
|
|
27
26
|
|
|
28
27
|
|
|
29
28
|
|
|
30
29
|
var _chunkMVGUEJ5Zcjs = require('../../chunk-MVGUEJ5Z.cjs');
|
|
31
|
-
require('../../chunk-
|
|
30
|
+
require('../../chunk-UUMKZJRJ.cjs');
|
|
32
31
|
require('../../chunk-OBGZSXTJ.cjs');
|
|
33
32
|
|
|
34
33
|
// src/agent/cli/approvals.ts
|
|
@@ -57,7 +56,7 @@ var makeCliApprovalService = (options = {}) => ({
|
|
|
57
56
|
_optionalChain([output, 'optionalAccess', _ => _.write, 'optionalCall', _2 => _2(`
|
|
58
57
|
Approval required (${request.risk})
|
|
59
58
|
`)]);
|
|
60
|
-
_optionalChain([output, 'optionalAccess', _3 => _3.write, 'optionalCall', _4 => _4(`Action: ${
|
|
59
|
+
_optionalChain([output, 'optionalAccess', _3 => _3.write, 'optionalCall', _4 => _4(`Action: ${_chunkJ6DUHITEcjs.summarizeAgentAction.call(void 0, request.action)}
|
|
61
60
|
`)]);
|
|
62
61
|
_optionalChain([output, 'optionalAccess', _5 => _5.write, 'optionalCall', _6 => _6(`Reason: ${request.reason}
|
|
63
62
|
`)]);
|
|
@@ -1104,7 +1103,7 @@ var parseCliArgs = (argv) => {
|
|
|
1104
1103
|
}
|
|
1105
1104
|
if (arg === "--preset" || arg.startsWith("--preset=")) {
|
|
1106
1105
|
const [value, nextIndex] = readFlagValue(argv, index, "--preset");
|
|
1107
|
-
if (!
|
|
1106
|
+
if (!_chunkJ6DUHITEcjs.isAgentPreset.call(void 0, value)) {
|
|
1108
1107
|
throw new Error("--preset requires one of: fix-tests, inspect, typecheck, lint");
|
|
1109
1108
|
}
|
|
1110
1109
|
preset = value;
|
|
@@ -1280,7 +1279,7 @@ var parseBatchGoal = (value, path) => {
|
|
|
1280
1279
|
if (cwd !== void 0 && typeof cwd !== "string") throw new Error(`${path}.cwd must be a string.`);
|
|
1281
1280
|
if (patchFile !== void 0 && typeof patchFile !== "string") throw new Error(`${path}.patchFile must be a string.`);
|
|
1282
1281
|
if (saveRunDir !== void 0 && typeof saveRunDir !== "string") throw new Error(`${path}.saveRunDir must be a string.`);
|
|
1283
|
-
if (preset !== void 0 && (typeof preset !== "string" || !
|
|
1282
|
+
if (preset !== void 0 && (typeof preset !== "string" || !_chunkJ6DUHITEcjs.isAgentPreset.call(void 0, preset))) {
|
|
1284
1283
|
throw new Error(`${path}.preset must be one of: fix-tests, inspect, typecheck, lint.`);
|
|
1285
1284
|
}
|
|
1286
1285
|
if (mode !== void 0 && (typeof mode !== "string" || !isAgentMode(mode))) {
|
|
@@ -1324,7 +1323,7 @@ var readBatchFile = async (cwd, batchFile) => {
|
|
|
1324
1323
|
var resolveBatchGoalText = (item, fallbackPatchFile) => {
|
|
1325
1324
|
if (typeof item === "string") return item;
|
|
1326
1325
|
if (item.goal) return item.goal;
|
|
1327
|
-
if (item.preset) return
|
|
1326
|
+
if (item.preset) return _chunkJ6DUHITEcjs.goalForAgentPreset.call(void 0, item.preset);
|
|
1328
1327
|
if (_nullishCoalesce(item.patchFile, () => ( fallbackPatchFile))) return "apply supplied patch";
|
|
1329
1328
|
return "";
|
|
1330
1329
|
};
|
|
@@ -1351,7 +1350,7 @@ var resolveBatchRuns = (items, parsed, config) => items.map((item, index) => {
|
|
|
1351
1350
|
};
|
|
1352
1351
|
});
|
|
1353
1352
|
var resolveParsedConfig = async (parsed) => {
|
|
1354
|
-
const workspaceDiscovery =
|
|
1353
|
+
const workspaceDiscovery = _chunkJ6DUHITEcjs.discoverNodeWorkspaceRoot.call(void 0, parsed.cwd, {
|
|
1355
1354
|
enabled: parsed.discoverWorkspace
|
|
1356
1355
|
});
|
|
1357
1356
|
const cwdResolved = workspaceDiscovery.cwd;
|
|
@@ -1359,7 +1358,7 @@ var resolveParsedConfig = async (parsed) => {
|
|
|
1359
1358
|
...parsed,
|
|
1360
1359
|
cwd: cwdResolved
|
|
1361
1360
|
};
|
|
1362
|
-
const loaded = await
|
|
1361
|
+
const loaded = await _chunkJ6DUHITEcjs.loadNodeAgentConfig.call(void 0, {
|
|
1363
1362
|
cwd: cwdResolved,
|
|
1364
1363
|
configPath: parsed.configPath,
|
|
1365
1364
|
noConfig: parsed.noConfig
|
|
@@ -1375,7 +1374,7 @@ var resolveParsedConfig = async (parsed) => {
|
|
|
1375
1374
|
const batchRuns = resolveBatchRuns(batchItems, parsedAtWorkspace, loaded.config);
|
|
1376
1375
|
return {
|
|
1377
1376
|
...parsedAtWorkspace,
|
|
1378
|
-
goalText: parsed.goalText || (parsed.preset ?
|
|
1377
|
+
goalText: parsed.goalText || (parsed.preset ? _chunkJ6DUHITEcjs.goalForAgentPreset.call(void 0, parsed.preset) : parsed.patchFile ? "apply supplied patch" : parsed.goalText),
|
|
1379
1378
|
mode: parsed.modeSpecified ? parsed.mode : parsed.preset === "inspect" ? "read-only" : _nullishCoalesce(loaded.config.mode, () => ( parsed.mode)),
|
|
1380
1379
|
approval: parsed.approvalSpecified ? parsed.approval : _nullishCoalesce(loaded.config.approval, () => ( parsed.approval)),
|
|
1381
1380
|
config: loaded.config,
|
|
@@ -1499,7 +1498,7 @@ var envByName = (name) => name ? process.env[name] : void 0;
|
|
|
1499
1498
|
var makeGoogleLLMFromEnv = (config) => {
|
|
1500
1499
|
const apiKey = _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(envByName(_optionalChain([config, 'optionalAccess', _39 => _39.apiKeyEnv])), () => ( process.env.BRASS_GOOGLE_API_KEY)), () => ( process.env.GOOGLE_API_KEY)), () => ( process.env.GEMINI_API_KEY));
|
|
1501
1500
|
if (!apiKey) return void 0;
|
|
1502
|
-
return
|
|
1501
|
+
return _chunkJ6DUHITEcjs.makeGoogleGenerativeAILLM.call(void 0, {
|
|
1503
1502
|
apiKey,
|
|
1504
1503
|
model: _nullishCoalesce(_nullishCoalesce(_nullishCoalesce(process.env.BRASS_GOOGLE_MODEL, () => ( process.env.BRASS_LLM_MODEL)), () => ( _optionalChain([config, 'optionalAccess', _40 => _40.model]))), () => ( "gemini-2.5-flash")),
|
|
1505
1504
|
apiVersion: _nullishCoalesce(_nullishCoalesce(process.env.BRASS_GOOGLE_API_VERSION, () => ( _optionalChain([config, 'optionalAccess', _41 => _41.apiVersion]))), () => ( "v1beta")),
|
|
@@ -1517,12 +1516,12 @@ var makeOpenAICompatibleLLMFromEnv = (config) => {
|
|
|
1517
1516
|
const apiKey = _nullishCoalesce(envByName(_optionalChain([config, 'optionalAccess', _50 => _50.apiKeyEnv])), () => ( process.env.BRASS_LLM_API_KEY));
|
|
1518
1517
|
const model = _nullishCoalesce(_nullishCoalesce(process.env.BRASS_LLM_MODEL, () => ( _optionalChain([config, 'optionalAccess', _51 => _51.model]))), () => ( "gpt-4.1"));
|
|
1519
1518
|
if (!endpoint || !apiKey) return void 0;
|
|
1520
|
-
return
|
|
1519
|
+
return _chunkJ6DUHITEcjs.makeOpenAICompatibleLLM.call(void 0, { endpoint, apiKey, model });
|
|
1521
1520
|
};
|
|
1522
1521
|
var makeLLMFromEnv = (config) => {
|
|
1523
1522
|
const provider = _optionalChain([(_nullishCoalesce(process.env.BRASS_LLM_PROVIDER, () => ( _optionalChain([config, 'optionalAccess', _52 => _52.provider])))), 'optionalAccess', _53 => _53.trim, 'call', _54 => _54(), 'access', _55 => _55.toLowerCase, 'call', _56 => _56()]);
|
|
1524
1523
|
const fakeResponse = _nullishCoalesce(process.env.BRASS_FAKE_LLM_RESPONSE, () => ( _optionalChain([config, 'optionalAccess', _57 => _57.fakeResponse])));
|
|
1525
|
-
if (provider === "fake") return
|
|
1524
|
+
if (provider === "fake") return _chunkJ6DUHITEcjs.makeFakeLLM.call(void 0, { content: fakeResponse });
|
|
1526
1525
|
if (provider === "google" || provider === "gemini") {
|
|
1527
1526
|
const google = makeGoogleLLMFromEnv(config);
|
|
1528
1527
|
if (!google) {
|
|
@@ -1544,7 +1543,7 @@ var makeLLMFromEnv = (config) => {
|
|
|
1544
1543
|
if (provider) {
|
|
1545
1544
|
throw new Error(`Unsupported LLM provider: ${provider}`);
|
|
1546
1545
|
}
|
|
1547
|
-
return _nullishCoalesce(_nullishCoalesce(makeGoogleLLMFromEnv(config), () => ( makeOpenAICompatibleLLMFromEnv(config))), () => (
|
|
1546
|
+
return _nullishCoalesce(_nullishCoalesce(makeGoogleLLMFromEnv(config), () => ( makeOpenAICompatibleLLMFromEnv(config))), () => ( _chunkJ6DUHITEcjs.makeFakeLLM.call(void 0, { content: fakeResponse })));
|
|
1548
1547
|
};
|
|
1549
1548
|
var parseApprovalModeFromEnv = () => {
|
|
1550
1549
|
const raw = _optionalChain([process, 'access', _58 => _58.env, 'access', _59 => _59.BRASS_AGENT_APPROVAL, 'optionalAccess', _60 => _60.trim, 'call', _61 => _61(), 'access', _62 => _62.toLowerCase, 'call', _63 => _63()]);
|
|
@@ -1567,9 +1566,9 @@ var makeApprovalServiceFromCli = (parsed) => {
|
|
|
1567
1566
|
const mode = resolveApprovalMode(parsed);
|
|
1568
1567
|
switch (mode) {
|
|
1569
1568
|
case "approve":
|
|
1570
|
-
return
|
|
1569
|
+
return _chunkJ6DUHITEcjs.autoApproveApprovals;
|
|
1571
1570
|
case "deny":
|
|
1572
|
-
return
|
|
1571
|
+
return _chunkJ6DUHITEcjs.makeAutoDenyApprovals.call(void 0, "Approval rejected because the CLI is running without interactive input. Use --yes to auto-approve.");
|
|
1573
1572
|
case "interactive":
|
|
1574
1573
|
return makeCliApprovalService();
|
|
1575
1574
|
}
|
|
@@ -1701,32 +1700,32 @@ var createHumanEventSink = (configPath) => ({
|
|
|
1701
1700
|
console.log("");
|
|
1702
1701
|
break;
|
|
1703
1702
|
case "agent.action.started":
|
|
1704
|
-
console.log(`\u2192 ${
|
|
1703
|
+
console.log(`\u2192 ${_chunkJ6DUHITEcjs.summarizeAgentAction.call(void 0, event.action)}`);
|
|
1705
1704
|
break;
|
|
1706
1705
|
case "agent.action.completed": {
|
|
1707
|
-
const status =
|
|
1708
|
-
console.log(`${statusIcon2(status)} ${
|
|
1706
|
+
const status = _chunkJ6DUHITEcjs.observationStatus.call(void 0, event.observation);
|
|
1707
|
+
console.log(`${statusIcon2(status)} ${_chunkJ6DUHITEcjs.summarizeAgentObservation.call(void 0, event.observation)} ${formatDuration(event.durationMs)}`);
|
|
1709
1708
|
break;
|
|
1710
1709
|
}
|
|
1711
1710
|
case "agent.action.failed":
|
|
1712
1711
|
if (event.error._tag !== "ToolTimeout" && event.error._tag !== "PermissionDenied" && event.error._tag !== "ApprovalRejected") {
|
|
1713
|
-
console.log(`\u2717 ${
|
|
1712
|
+
console.log(`\u2717 ${_chunkJ6DUHITEcjs.summarizeAgentAction.call(void 0, event.action)} failed with ${event.error._tag} ${formatDuration(event.durationMs)}`);
|
|
1714
1713
|
}
|
|
1715
1714
|
break;
|
|
1716
1715
|
case "agent.tool.timeout":
|
|
1717
|
-
console.log(`! ${
|
|
1716
|
+
console.log(`! ${_chunkJ6DUHITEcjs.summarizeAgentAction.call(void 0, event.action)} timed out after ${event.timeoutMs}ms`);
|
|
1718
1717
|
break;
|
|
1719
1718
|
case "agent.permission.denied":
|
|
1720
|
-
console.log(`\u2717 ${
|
|
1719
|
+
console.log(`\u2717 ${_chunkJ6DUHITEcjs.summarizeAgentAction.call(void 0, event.action)} denied: ${event.reason}`);
|
|
1721
1720
|
break;
|
|
1722
1721
|
case "agent.approval.requested":
|
|
1723
|
-
console.log(`? approval required for ${
|
|
1722
|
+
console.log(`? approval required for ${_chunkJ6DUHITEcjs.summarizeAgentAction.call(void 0, event.action)} (${event.risk})`);
|
|
1724
1723
|
break;
|
|
1725
1724
|
case "agent.approval.resolved":
|
|
1726
1725
|
if (event.approved) {
|
|
1727
|
-
console.log(`\u2713 approval granted for ${
|
|
1726
|
+
console.log(`\u2713 approval granted for ${_chunkJ6DUHITEcjs.summarizeAgentAction.call(void 0, event.action)}`);
|
|
1728
1727
|
} else {
|
|
1729
|
-
console.log(`\u2717 approval rejected for ${
|
|
1728
|
+
console.log(`\u2717 approval rejected for ${_chunkJ6DUHITEcjs.summarizeAgentAction.call(void 0, event.action)}${event.reason ? `: ${event.reason}` : ""}`);
|
|
1730
1729
|
}
|
|
1731
1730
|
break;
|
|
1732
1731
|
case "agent.patch.applied":
|
|
@@ -1831,13 +1830,13 @@ var printHumanFinalSummary = (state) => {
|
|
|
1831
1830
|
};
|
|
1832
1831
|
var makeEventsSink = (parsed, compactOptions) => parsed.output === "human" ? createHumanEventSink(parsed.resolvedConfigPath) : parsed.output === "events-json" ? createJsonEventSink(compactOptions) : parsed.output === "protocol-json" ? createProtocolEventSink(compactOptions) : void 0;
|
|
1833
1832
|
var makeAgentEnv = (parsed, events) => {
|
|
1834
|
-
const shell =
|
|
1833
|
+
const shell = _chunkJ6DUHITEcjs.NodeShell;
|
|
1835
1834
|
return {
|
|
1836
1835
|
shell,
|
|
1837
|
-
fs:
|
|
1838
|
-
patch:
|
|
1836
|
+
fs: _chunkJ6DUHITEcjs.makeNodeFileSystem.call(void 0, shell),
|
|
1837
|
+
patch: _chunkJ6DUHITEcjs.makeNodePatchService.call(void 0, shell),
|
|
1839
1838
|
llm: makeLLMFromEnv(parsed.config.llm),
|
|
1840
|
-
permissions:
|
|
1839
|
+
permissions: _chunkJ6DUHITEcjs.makeConfiguredPermissions.call(void 0, parsed.config.permissions),
|
|
1841
1840
|
approvals: makeApprovalServiceFromCli(parsed),
|
|
1842
1841
|
...events ? { events } : {},
|
|
1843
1842
|
...parsed.config.tools ? { toolPolicies: parsed.config.tools } : {}
|
|
@@ -1854,10 +1853,10 @@ var singleRunFromParsed = (parsed) => ({
|
|
|
1854
1853
|
});
|
|
1855
1854
|
var runCliAgent = async (parsed, run, compactOptions, events) => {
|
|
1856
1855
|
const env = makeAgentEnv(parsed, events);
|
|
1857
|
-
const runtime = new (0,
|
|
1856
|
+
const runtime = new (0, _chunk2JHJ4YHScjs.Runtime)({ env });
|
|
1858
1857
|
const initialPatch = run.patchFile ? await readPatchFile(run.cwd, run.patchFile) : void 0;
|
|
1859
1858
|
const state = await runtime.toPromise(
|
|
1860
|
-
|
|
1859
|
+
_chunkJ6DUHITEcjs.runAgent.call(void 0, runtime, {
|
|
1861
1860
|
id: `agent-${Date.now()}-${run.index + 1}`,
|
|
1862
1861
|
cwd: run.cwd,
|
|
1863
1862
|
text: run.goalText,
|
package/dist/agent/cli/main.js
CHANGED
|
@@ -17,18 +17,17 @@ import {
|
|
|
17
17
|
runAgent,
|
|
18
18
|
summarizeAgentAction,
|
|
19
19
|
summarizeAgentObservation
|
|
20
|
-
} from "../../chunk-
|
|
20
|
+
} from "../../chunk-7VQLEN37.js";
|
|
21
21
|
import "../../chunk-UCUBNWM2.js";
|
|
22
|
-
import "../../chunk-L2SYFEBS.js";
|
|
23
22
|
import {
|
|
24
23
|
Runtime
|
|
25
|
-
} from "../../chunk-
|
|
24
|
+
} from "../../chunk-TTSPIU3U.js";
|
|
26
25
|
import {
|
|
27
26
|
Cause,
|
|
28
27
|
Exit,
|
|
29
28
|
asyncEffect
|
|
30
29
|
} from "../../chunk-UB4B6OFY.js";
|
|
31
|
-
import "../../chunk-
|
|
30
|
+
import "../../chunk-HCJ4S3YB.js";
|
|
32
31
|
import "../../chunk-3RG5ZIWI.js";
|
|
33
32
|
|
|
34
33
|
// src/agent/cli/approvals.ts
|
package/dist/agent/cli/main.mjs
CHANGED
|
@@ -17,18 +17,17 @@ import {
|
|
|
17
17
|
runAgent,
|
|
18
18
|
summarizeAgentAction,
|
|
19
19
|
summarizeAgentObservation
|
|
20
|
-
} from "../../chunk-
|
|
20
|
+
} from "../../chunk-WCBNXPN6.mjs";
|
|
21
21
|
import "../../chunk-B5JD23U7.mjs";
|
|
22
|
-
import "../../chunk-A2OM6NEH.mjs";
|
|
23
22
|
import {
|
|
24
23
|
Runtime
|
|
25
|
-
} from "../../chunk-
|
|
24
|
+
} from "../../chunk-H626ZTDZ.mjs";
|
|
26
25
|
import {
|
|
27
26
|
Cause,
|
|
28
27
|
Exit,
|
|
29
28
|
asyncEffect
|
|
30
29
|
} from "../../chunk-36I3M4UC.mjs";
|
|
31
|
-
import "../../chunk-
|
|
30
|
+
import "../../chunk-6MLAZPBL.mjs";
|
|
32
31
|
import "../../chunk-Y6FXYEAI.mjs";
|
|
33
32
|
|
|
34
33
|
// src/agent/cli/approvals.ts
|
package/dist/agent/index.cjs
CHANGED
|
@@ -73,12 +73,11 @@
|
|
|
73
73
|
|
|
74
74
|
|
|
75
75
|
|
|
76
|
-
var
|
|
76
|
+
var _chunkJ6DUHITEcjs = require('../chunk-J6DUHITE.cjs');
|
|
77
77
|
require('../chunk-SA6HUJVI.cjs');
|
|
78
|
-
require('../chunk-
|
|
79
|
-
require('../chunk-GLE2WY7Z.cjs');
|
|
78
|
+
require('../chunk-2JHJ4YHS.cjs');
|
|
80
79
|
require('../chunk-MVGUEJ5Z.cjs');
|
|
81
|
-
require('../chunk-
|
|
80
|
+
require('../chunk-UUMKZJRJ.cjs');
|
|
82
81
|
require('../chunk-OBGZSXTJ.cjs');
|
|
83
82
|
|
|
84
83
|
|
|
@@ -155,4 +154,4 @@ require('../chunk-OBGZSXTJ.cjs');
|
|
|
155
154
|
|
|
156
155
|
|
|
157
156
|
|
|
158
|
-
exports.AGENT_CONFIG_FILE_NAMES =
|
|
157
|
+
exports.AGENT_CONFIG_FILE_NAMES = _chunkJ6DUHITEcjs.AGENT_CONFIG_FILE_NAMES; exports.NodeShell = _chunkJ6DUHITEcjs.NodeShell; exports.PROJECT_LOCKFILE_PROBES = _chunkJ6DUHITEcjs.PROJECT_LOCKFILE_PROBES; exports.PROJECT_PROFILE_PROBES = _chunkJ6DUHITEcjs.PROJECT_PROFILE_PROBES; exports.autoApproveApprovals = _chunkJ6DUHITEcjs.autoApproveApprovals; exports.canAutoRollback = _chunkJ6DUHITEcjs.canAutoRollback; exports.canRequestPatchRepair = _chunkJ6DUHITEcjs.canRequestPatchRepair; exports.commandForScript = _chunkJ6DUHITEcjs.commandForScript; exports.decideNextAction = _chunkJ6DUHITEcjs.decideNextAction; exports.defaultPermissions = _chunkJ6DUHITEcjs.defaultPermissions; exports.deriveContextSearchQueries = _chunkJ6DUHITEcjs.deriveContextSearchQueries; exports.describeCommandDiscovery = _chunkJ6DUHITEcjs.describeCommandDiscovery; exports.describeContextDiscovery = _chunkJ6DUHITEcjs.describeContextDiscovery; exports.describeLanguagePolicy = _chunkJ6DUHITEcjs.describeLanguagePolicy; exports.describePatchQuality = _chunkJ6DUHITEcjs.describePatchQuality; exports.describeProjectProfile = _chunkJ6DUHITEcjs.describeProjectProfile; exports.describeRollbackSafety = _chunkJ6DUHITEcjs.describeRollbackSafety; exports.discoverNodeWorkspaceRoot = _chunkJ6DUHITEcjs.discoverNodeWorkspaceRoot; exports.discoverPackageManager = _chunkJ6DUHITEcjs.discoverPackageManager; exports.discoverProjectProfile = _chunkJ6DUHITEcjs.discoverProjectProfile; exports.discoverValidationCommands = _chunkJ6DUHITEcjs.discoverValidationCommands; exports.emitAgentEvent = _chunkJ6DUHITEcjs.emitAgentEvent; exports.emitAgentEvents = _chunkJ6DUHITEcjs.emitAgentEvents; exports.errorEventFor = _chunkJ6DUHITEcjs.errorEventFor; exports.extractLikelyFilePaths = _chunkJ6DUHITEcjs.extractLikelyFilePaths; exports.extractPatchPaths = _chunkJ6DUHITEcjs.extractPatchPaths; exports.extractUnifiedDiff = _chunkJ6DUHITEcjs.extractUnifiedDiff; exports.goalForAgentPreset = _chunkJ6DUHITEcjs.goalForAgentPreset; exports.inferUserLanguage = _chunkJ6DUHITEcjs.inferUserLanguage; exports.initialAgentState = _chunkJ6DUHITEcjs.initialAgentState; exports.invokeAction = _chunkJ6DUHITEcjs.invokeAction; exports.isAgentConfigApprovalMode = _chunkJ6DUHITEcjs.isAgentConfigApprovalMode; exports.isAgentConfigLLMProvider = _chunkJ6DUHITEcjs.isAgentConfigLLMProvider; exports.isAgentConfigMode = _chunkJ6DUHITEcjs.isAgentConfigMode; exports.isAgentPreset = _chunkJ6DUHITEcjs.isAgentPreset; exports.isRedactionEnabled = _chunkJ6DUHITEcjs.isRedactionEnabled; exports.isTerminal = _chunkJ6DUHITEcjs.isTerminal; exports.latestUnappliedPatch = _chunkJ6DUHITEcjs.latestUnappliedPatch; exports.loadNodeAgentConfig = _chunkJ6DUHITEcjs.loadNodeAgentConfig; exports.makeAutoDenyApprovals = _chunkJ6DUHITEcjs.makeAutoDenyApprovals; exports.makeConfiguredPermissions = _chunkJ6DUHITEcjs.makeConfiguredPermissions; exports.makeFakeLLM = _chunkJ6DUHITEcjs.makeFakeLLM; exports.makeGoogleGenerativeAILLM = _chunkJ6DUHITEcjs.makeGoogleGenerativeAILLM; exports.makeNodeFileSystem = _chunkJ6DUHITEcjs.makeNodeFileSystem; exports.makeNodePatchService = _chunkJ6DUHITEcjs.makeNodePatchService; exports.makeOpenAICompatibleLLM = _chunkJ6DUHITEcjs.makeOpenAICompatibleLLM; exports.nextContextDiscoveryAction = _chunkJ6DUHITEcjs.nextContextDiscoveryAction; exports.nextProjectProbeAction = _chunkJ6DUHITEcjs.nextProjectProbeAction; exports.nextUnrunValidationCommand = _chunkJ6DUHITEcjs.nextUnrunValidationCommand; exports.nowMillis = _chunkJ6DUHITEcjs.nowMillis; exports.observationEventFor = _chunkJ6DUHITEcjs.observationEventFor; exports.observationStatus = _chunkJ6DUHITEcjs.observationStatus; exports.parseProjectPackageJson = _chunkJ6DUHITEcjs.parseProjectPackageJson; exports.patchQualitySummary = _chunkJ6DUHITEcjs.patchQualitySummary; exports.patchRepairAttemptsUsed = _chunkJ6DUHITEcjs.patchRepairAttemptsUsed; exports.patchValidationStatus = _chunkJ6DUHITEcjs.patchValidationStatus; exports.projectProfileProbePending = _chunkJ6DUHITEcjs.projectProfileProbePending; exports.redactText = _chunkJ6DUHITEcjs.redactText; exports.reduceAgentState = _chunkJ6DUHITEcjs.reduceAgentState; exports.responseLanguageName = _chunkJ6DUHITEcjs.responseLanguageName; exports.retry = _chunkJ6DUHITEcjs.retry; exports.rollbackSafetySummary = _chunkJ6DUHITEcjs.rollbackSafetySummary; exports.runAgent = _chunkJ6DUHITEcjs.runAgent; exports.runStatusFor = _chunkJ6DUHITEcjs.runStatusFor; exports.shouldContinueRollbackStack = _chunkJ6DUHITEcjs.shouldContinueRollbackStack; exports.sleep = _chunkJ6DUHITEcjs.sleep; exports.spanishLike = _chunkJ6DUHITEcjs.spanishLike; exports.splitCommand = _chunkJ6DUHITEcjs.splitCommand; exports.summarizeAgentAction = _chunkJ6DUHITEcjs.summarizeAgentAction; exports.summarizeAgentObservation = _chunkJ6DUHITEcjs.summarizeAgentObservation; exports.summarizeContextDiscovery = _chunkJ6DUHITEcjs.summarizeContextDiscovery; exports.timeout = _chunkJ6DUHITEcjs.timeout; exports.unappliedPatchStack = _chunkJ6DUHITEcjs.unappliedPatchStack; exports.workspaceValidationStatus = _chunkJ6DUHITEcjs.workspaceValidationStatus;
|
package/dist/agent/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as Async,
|
|
1
|
+
import { A as Async, b as Runtime, S as Scope } from '../effect-DnGUuhw6.js';
|
|
2
2
|
|
|
3
3
|
type AgentMode = "read-only" | "propose" | "write" | "autonomous";
|
|
4
4
|
type AgentPackageManager = "npm" | "pnpm" | "yarn" | "bun";
|
package/dist/agent/index.js
CHANGED
|
@@ -73,12 +73,11 @@ import {
|
|
|
73
73
|
timeout,
|
|
74
74
|
unappliedPatchStack,
|
|
75
75
|
workspaceValidationStatus
|
|
76
|
-
} from "../chunk-
|
|
76
|
+
} from "../chunk-7VQLEN37.js";
|
|
77
77
|
import "../chunk-UCUBNWM2.js";
|
|
78
|
-
import "../chunk-
|
|
79
|
-
import "../chunk-FH2X7BVP.js";
|
|
78
|
+
import "../chunk-TTSPIU3U.js";
|
|
80
79
|
import "../chunk-UB4B6OFY.js";
|
|
81
|
-
import "../chunk-
|
|
80
|
+
import "../chunk-HCJ4S3YB.js";
|
|
82
81
|
import "../chunk-3RG5ZIWI.js";
|
|
83
82
|
export {
|
|
84
83
|
AGENT_CONFIG_FILE_NAMES,
|
package/dist/agent/index.mjs
CHANGED
|
@@ -73,12 +73,11 @@ import {
|
|
|
73
73
|
timeout,
|
|
74
74
|
unappliedPatchStack,
|
|
75
75
|
workspaceValidationStatus
|
|
76
|
-
} from "../chunk-
|
|
76
|
+
} from "../chunk-WCBNXPN6.mjs";
|
|
77
77
|
import "../chunk-B5JD23U7.mjs";
|
|
78
|
-
import "../chunk-
|
|
79
|
-
import "../chunk-GYM3LLGS.mjs";
|
|
78
|
+
import "../chunk-H626ZTDZ.mjs";
|
|
80
79
|
import "../chunk-36I3M4UC.mjs";
|
|
81
|
-
import "../chunk-
|
|
80
|
+
import "../chunk-6MLAZPBL.mjs";
|
|
82
81
|
import "../chunk-Y6FXYEAI.mjs";
|
|
83
82
|
export {
|
|
84
83
|
AGENT_CONFIG_FILE_NAMES,
|
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
import {
|
|
2
2
|
makeFiberRef,
|
|
3
3
|
makeRuntimeRecorder
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import {
|
|
6
|
-
makeDefaultHttpClient
|
|
7
|
-
} from "./chunk-74ZTY6CP.js";
|
|
8
|
-
import {
|
|
9
|
-
makeHttp
|
|
10
|
-
} from "./chunk-MIIYDLGM.js";
|
|
4
|
+
} from "./chunk-UAKAF32U.js";
|
|
11
5
|
import {
|
|
12
6
|
withHttpObservability
|
|
13
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-YGR2IN4R.js";
|
|
14
8
|
import {
|
|
15
9
|
makeObservability
|
|
16
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-YZ5LQ32F.js";
|
|
17
11
|
import {
|
|
18
12
|
EventBus
|
|
19
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-OW5VHAOE.js";
|
|
14
|
+
import {
|
|
15
|
+
makeDefaultHttpClient,
|
|
16
|
+
makeHttp
|
|
17
|
+
} from "./chunk-WUDHOZIH.js";
|
|
20
18
|
import {
|
|
21
19
|
Runtime,
|
|
22
20
|
Scheduler
|
|
23
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-TTSPIU3U.js";
|
|
24
22
|
import {
|
|
25
23
|
asyncFlatMap,
|
|
26
24
|
asyncSucceed,
|