prismalens 0.2.0 → 0.4.0
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 +29 -13
- package/dist/bin/prismalens.js +39 -50
- package/dist/chunk-2Z7QZSIS.js +20 -0
- package/dist/chunk-5BT3XQOG.js +2990 -0
- package/dist/chunk-6N4PHBII.js +30 -0
- package/dist/chunk-CTKCK7QT.js +387 -0
- package/dist/chunk-CVSS5JPC.js +130 -0
- package/dist/chunk-HPE5CTO4.js +22 -0
- package/dist/chunk-PTBCAI34.js +34 -0
- package/dist/chunk-PVQVFRIV.js +452 -0
- package/dist/chunk-QDK5PAI3.js +155 -0
- package/dist/chunk-SSEIMBQ2.js +204 -0
- package/dist/chunk-TGP6QTFO.js +156 -0
- package/dist/chunk-V6M6ISKI.js +161 -0
- package/dist/chunk-XH6DIKTA.js +83 -0
- package/dist/src/cli/auth.js +112 -101
- package/dist/src/cli/doctor.js +184 -187
- package/dist/src/cli/flags.js +6 -29
- package/dist/src/cli/grouping.js +16 -227
- package/dist/src/cli/init.js +58 -52
- package/dist/src/cli/investigate.js +23 -465
- package/dist/src/cli/listen.js +550 -286
- package/dist/src/cli/report.js +70 -67
- package/dist/src/cli/serve.js +260 -30
- package/dist/src/cli/status.js +87 -86
- package/package.json +16 -7
- package/dist/bin/prismalens.d.ts +0 -3
- package/dist/bin/prismalens.d.ts.map +0 -1
- package/dist/bin/prismalens.js.map +0 -1
- package/dist/src/cli/auth.d.ts +0 -3
- package/dist/src/cli/auth.d.ts.map +0 -1
- package/dist/src/cli/auth.js.map +0 -1
- package/dist/src/cli/doctor.d.ts +0 -18
- package/dist/src/cli/doctor.d.ts.map +0 -1
- package/dist/src/cli/doctor.js.map +0 -1
- package/dist/src/cli/flags.d.ts +0 -2
- package/dist/src/cli/flags.d.ts.map +0 -1
- package/dist/src/cli/flags.js.map +0 -1
- package/dist/src/cli/grouping.d.ts +0 -18
- package/dist/src/cli/grouping.d.ts.map +0 -1
- package/dist/src/cli/grouping.js.map +0 -1
- package/dist/src/cli/init.d.ts +0 -3
- package/dist/src/cli/init.d.ts.map +0 -1
- package/dist/src/cli/init.js.map +0 -1
- package/dist/src/cli/investigate.d.ts +0 -115
- package/dist/src/cli/investigate.d.ts.map +0 -1
- package/dist/src/cli/investigate.js.map +0 -1
- package/dist/src/cli/listen.d.ts +0 -56
- package/dist/src/cli/listen.d.ts.map +0 -1
- package/dist/src/cli/listen.js.map +0 -1
- package/dist/src/cli/report.d.ts +0 -24
- package/dist/src/cli/report.d.ts.map +0 -1
- package/dist/src/cli/report.js.map +0 -1
- package/dist/src/cli/serve.d.ts +0 -3
- package/dist/src/cli/serve.d.ts.map +0 -1
- package/dist/src/cli/serve.js.map +0 -1
- package/dist/src/cli/status.d.ts +0 -19
- package/dist/src/cli/status.d.ts.map +0 -1
- package/dist/src/cli/status.js.map +0 -1
- package/dist/src/config/loader.d.ts +0 -22
- package/dist/src/config/loader.d.ts.map +0 -1
- package/dist/src/config/loader.js +0 -193
- package/dist/src/config/loader.js.map +0 -1
- package/dist/src/config/schema.d.ts +0 -463
- package/dist/src/config/schema.d.ts.map +0 -1
- package/dist/src/config/schema.js +0 -217
- package/dist/src/config/schema.js.map +0 -1
- package/dist/src/core/caps.d.ts +0 -36
- package/dist/src/core/caps.d.ts.map +0 -1
- package/dist/src/core/caps.js +0 -36
- package/dist/src/core/caps.js.map +0 -1
- package/dist/src/core/db.d.ts +0 -3
- package/dist/src/core/db.d.ts.map +0 -1
- package/dist/src/core/db.js +0 -105
- package/dist/src/core/db.js.map +0 -1
- package/dist/src/core/detect-repo.d.ts +0 -4
- package/dist/src/core/detect-repo.d.ts.map +0 -1
- package/dist/src/core/detect-repo.js +0 -28
- package/dist/src/core/detect-repo.js.map +0 -1
- package/dist/src/core/file-session-store.d.ts +0 -10
- package/dist/src/core/file-session-store.d.ts.map +0 -1
- package/dist/src/core/file-session-store.js +0 -34
- package/dist/src/core/file-session-store.js.map +0 -1
- package/dist/src/core/parse-stdin.d.ts +0 -2
- package/dist/src/core/parse-stdin.d.ts.map +0 -1
- package/dist/src/core/parse-stdin.js +0 -21
- package/dist/src/core/parse-stdin.js.map +0 -1
- package/dist/src/core/run-investigation.d.ts +0 -54
- package/dist/src/core/run-investigation.d.ts.map +0 -1
- package/dist/src/core/run-investigation.js +0 -200
- package/dist/src/core/run-investigation.js.map +0 -1
- package/dist/src/core/session.d.ts +0 -63
- package/dist/src/core/session.d.ts.map +0 -1
- package/dist/src/core/session.js +0 -45
- package/dist/src/core/session.js.map +0 -1
- package/dist/src/core/slack-notify.d.ts +0 -9
- package/dist/src/core/slack-notify.d.ts.map +0 -1
- package/dist/src/core/slack-notify.js +0 -57
- package/dist/src/core/slack-notify.js.map +0 -1
- package/dist/src/core/sqlite-session-store.d.ts +0 -39
- package/dist/src/core/sqlite-session-store.d.ts.map +0 -1
- package/dist/src/core/sqlite-session-store.js +0 -239
- package/dist/src/core/sqlite-session-store.js.map +0 -1
- package/dist/src/http/server.d.ts +0 -31
- package/dist/src/http/server.d.ts.map +0 -1
- package/dist/src/http/server.js +0 -164
- package/dist/src/http/server.js.map +0 -1
- package/dist/src/jsonrpc/server.d.ts +0 -15
- package/dist/src/jsonrpc/server.d.ts.map +0 -1
- package/dist/src/jsonrpc/server.js +0 -244
- package/dist/src/jsonrpc/server.js.map +0 -1
- package/dist/src/jsonrpc/types.d.ts +0 -12
- package/dist/src/jsonrpc/types.d.ts.map +0 -1
- package/dist/src/jsonrpc/types.js +0 -4
- package/dist/src/jsonrpc/types.js.map +0 -1
- package/dist/src/version.d.ts +0 -8
- package/dist/src/version.d.ts.map +0 -1
- package/dist/src/version.js +0 -27
- package/dist/src/version.js.map +0 -1
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
-
// Copyright 2026 Sumit Patel
|
|
3
|
-
/**
|
|
4
|
-
* Config loader (ADR-0010/0014).
|
|
5
|
-
*
|
|
6
|
-
* Resolution order (later overrides earlier — deep-merge; arrays replace):
|
|
7
|
-
* 1. Built-in defaults (Zod `.default()`)
|
|
8
|
-
* 2. User layer: ~/.config/prismalens/config.yaml (the XDG config dir; BYO-key
|
|
9
|
-
* creds live in env per ADR-0006, never here)
|
|
10
|
-
* 3. Project layer: the explicit `--config` path, else the nearest
|
|
11
|
-
* `prismalens.config.yaml` found by walking UP from cwd to the root
|
|
12
|
-
* 4. Project-local: `prismalens.config.local.yaml` beside the project config — a
|
|
13
|
-
* gitignored per-checkout override
|
|
14
|
-
* 5. CLI flag overrides
|
|
15
|
-
*
|
|
16
|
-
* `${VAR}` patterns in string values are interpolated from the environment (throws
|
|
17
|
-
* on an unset var), then the merged object is validated by the schema.
|
|
18
|
-
*
|
|
19
|
-
* Deferred ADR-0014 layers (pulled in with their consumers, not speculatively):
|
|
20
|
-
* - a curated env-overlay layer — today `${VAR}` interpolation already covers env
|
|
21
|
-
* access from within the config;
|
|
22
|
-
* - the reserved managed layer — there is no managed config source in the
|
|
23
|
-
* local-first OSS build (it belongs to the cloud tier);
|
|
24
|
-
* - the permission allow/deny list UNION (deny-wins) — coupled to the tool-seam
|
|
25
|
-
* that enforces it (its own slice), so it lands there, not in the merge.
|
|
26
|
-
*/
|
|
27
|
-
import { existsSync } from "node:fs";
|
|
28
|
-
import { readFile } from "node:fs/promises";
|
|
29
|
-
import { dirname, join, parse as parsePath, resolve } from "node:path";
|
|
30
|
-
import consola from "consola";
|
|
31
|
-
import envPaths from "env-paths";
|
|
32
|
-
import { parse as parseYaml } from "yaml";
|
|
33
|
-
import { ZodError } from "zod";
|
|
34
|
-
import { PlConfigSchema } from "./schema.js";
|
|
35
|
-
const PROJECT_CONFIG_FILENAME = "prismalens.config.yaml";
|
|
36
|
-
const PROJECT_LOCAL_CONFIG_FILENAME = "prismalens.config.local.yaml";
|
|
37
|
-
const USER_CONFIG_FILENAME = "config.yaml";
|
|
38
|
-
/** Find the nearest project config by walking up from `cwd` to the filesystem root. */
|
|
39
|
-
export function findConfigFile(cwd = process.cwd()) {
|
|
40
|
-
let dir = resolve(cwd);
|
|
41
|
-
const { root } = parsePath(dir);
|
|
42
|
-
for (;;) {
|
|
43
|
-
const candidate = join(dir, PROJECT_CONFIG_FILENAME);
|
|
44
|
-
if (existsSync(candidate))
|
|
45
|
-
return candidate;
|
|
46
|
-
if (dir === root)
|
|
47
|
-
return undefined;
|
|
48
|
-
dir = dirname(dir);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
/** The user-global config in the XDG config dir (~/.config/prismalens/config.yaml). */
|
|
52
|
-
function userConfigFile() {
|
|
53
|
-
const candidate = join(envPaths("prismalens", { suffix: "" }).config, USER_CONFIG_FILENAME);
|
|
54
|
-
return existsSync(candidate) ? candidate : undefined;
|
|
55
|
-
}
|
|
56
|
-
/** The gitignored project-local override beside the project config (else in cwd). */
|
|
57
|
-
function projectLocalConfigFile(projectFile, cwd) {
|
|
58
|
-
const dir = projectFile ? dirname(projectFile) : resolve(cwd);
|
|
59
|
-
const candidate = join(dir, PROJECT_LOCAL_CONFIG_FILENAME);
|
|
60
|
-
return existsSync(candidate) ? candidate : undefined;
|
|
61
|
-
}
|
|
62
|
-
async function readYamlFile(filePath) {
|
|
63
|
-
try {
|
|
64
|
-
const content = await readFile(filePath, "utf-8");
|
|
65
|
-
return parseYaml(content) ?? {};
|
|
66
|
-
}
|
|
67
|
-
catch (err) {
|
|
68
|
-
if (err.code === "ENOENT")
|
|
69
|
-
return {};
|
|
70
|
-
throw err;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
const ENV_VAR_PATTERN = /\$\{([^}]+)\}/g;
|
|
74
|
-
/** Replace `${VAR}` in every string value (recursively). Throws on an unset var. */
|
|
75
|
-
function interpolateDeep(value) {
|
|
76
|
-
if (typeof value === "string") {
|
|
77
|
-
return value.replace(ENV_VAR_PATTERN, (_, name) => {
|
|
78
|
-
const v = process.env[name];
|
|
79
|
-
if (v === undefined) {
|
|
80
|
-
throw new Error(`Config references unset environment variable "${name}" (as \${${name}})`);
|
|
81
|
-
}
|
|
82
|
-
return v;
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
if (Array.isArray(value))
|
|
86
|
-
return value.map(interpolateDeep);
|
|
87
|
-
if (value !== null && typeof value === "object") {
|
|
88
|
-
const out = {};
|
|
89
|
-
for (const [k, v] of Object.entries(value))
|
|
90
|
-
out[k] = interpolateDeep(v);
|
|
91
|
-
return out;
|
|
92
|
-
}
|
|
93
|
-
return value;
|
|
94
|
-
}
|
|
95
|
-
function isObject(v) {
|
|
96
|
-
return v !== null && typeof v === "object" && !Array.isArray(v);
|
|
97
|
-
}
|
|
98
|
-
/** Deep-merge `source` over `target`. Arrays replace; objects merge recursively. */
|
|
99
|
-
function deepMerge(target, source) {
|
|
100
|
-
const out = { ...target };
|
|
101
|
-
for (const [k, sv] of Object.entries(source)) {
|
|
102
|
-
const tv = out[k];
|
|
103
|
-
out[k] = isObject(sv) && isObject(tv) ? deepMerge(tv, sv) : sv;
|
|
104
|
-
}
|
|
105
|
-
return out;
|
|
106
|
-
}
|
|
107
|
-
function applyCliOverrides(config, o) {
|
|
108
|
-
const patch = {};
|
|
109
|
-
const agent = {};
|
|
110
|
-
if (o.agent !== undefined)
|
|
111
|
-
agent.default = o.agent;
|
|
112
|
-
if (o.model !== undefined)
|
|
113
|
-
agent.model = o.model;
|
|
114
|
-
if (Object.keys(agent).length > 0)
|
|
115
|
-
patch.agent = agent;
|
|
116
|
-
const telemetry = {};
|
|
117
|
-
if (o.prometheusUrl !== undefined)
|
|
118
|
-
telemetry.prometheusUrl = o.prometheusUrl;
|
|
119
|
-
if (o.alertmanagerUrl !== undefined)
|
|
120
|
-
telemetry.alertmanagerUrl = o.alertmanagerUrl;
|
|
121
|
-
if (o.apiUrl !== undefined)
|
|
122
|
-
telemetry.apiUrl = o.apiUrl;
|
|
123
|
-
if (Object.keys(telemetry).length > 0)
|
|
124
|
-
patch.telemetry = telemetry;
|
|
125
|
-
return deepMerge(config, patch);
|
|
126
|
-
}
|
|
127
|
-
function warnUnknownKeys(input, output, path = []) {
|
|
128
|
-
for (const key in input) {
|
|
129
|
-
if (!Object.hasOwn(output, key)) {
|
|
130
|
-
consola.warn(`Unknown config key ignored: ${[...path, key].join(".")}`);
|
|
131
|
-
}
|
|
132
|
-
else if (isObject(input[key]) && isObject(output[key])) {
|
|
133
|
-
warnUnknownKeys(input[key], output[key], [...path, key]);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
/** Load, merge, interpolate, and validate the config. Result is frozen. */
|
|
138
|
-
export async function loadConfig(options = {}) {
|
|
139
|
-
const cwd = options.cwd ?? process.cwd();
|
|
140
|
-
if (options.configPath) {
|
|
141
|
-
const resolvedPath = resolve(options.configPath);
|
|
142
|
-
if (!existsSync(resolvedPath)) {
|
|
143
|
-
throw new Error(`Configuration file not found: ${resolvedPath}`);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
const userFile = userConfigFile();
|
|
147
|
-
const projectFile = options.configPath
|
|
148
|
-
? resolve(options.configPath)
|
|
149
|
-
: findConfigFile(cwd);
|
|
150
|
-
const projectLocalFile = projectLocalConfigFile(projectFile, cwd);
|
|
151
|
-
let merged = {};
|
|
152
|
-
const readFiles = [];
|
|
153
|
-
if (userFile) {
|
|
154
|
-
merged = deepMerge(merged, await readYamlFile(userFile));
|
|
155
|
-
readFiles.push(userFile);
|
|
156
|
-
}
|
|
157
|
-
if (projectFile) {
|
|
158
|
-
merged = deepMerge(merged, await readYamlFile(projectFile));
|
|
159
|
-
readFiles.push(projectFile);
|
|
160
|
-
}
|
|
161
|
-
if (projectLocalFile && projectLocalFile !== projectFile) {
|
|
162
|
-
merged = deepMerge(merged, await readYamlFile(projectLocalFile));
|
|
163
|
-
readFiles.push(projectLocalFile);
|
|
164
|
-
}
|
|
165
|
-
if (options.cliOverrides) {
|
|
166
|
-
merged = applyCliOverrides(merged, options.cliOverrides);
|
|
167
|
-
}
|
|
168
|
-
const interpolated = interpolateDeep(merged);
|
|
169
|
-
let config;
|
|
170
|
-
let attribution = "in config";
|
|
171
|
-
if (readFiles.length === 1) {
|
|
172
|
-
attribution = `in ${readFiles[0]}`;
|
|
173
|
-
}
|
|
174
|
-
else if (readFiles.length > 1) {
|
|
175
|
-
attribution = `(merged from: ${readFiles.join(", ")})`;
|
|
176
|
-
}
|
|
177
|
-
try {
|
|
178
|
-
config = PlConfigSchema.parse(interpolated);
|
|
179
|
-
warnUnknownKeys(interpolated, config);
|
|
180
|
-
}
|
|
181
|
-
catch (err) {
|
|
182
|
-
if (err instanceof ZodError) {
|
|
183
|
-
const issues = err.issues
|
|
184
|
-
.map((i) => `${i.path.length > 0 ? i.path.join(".") : "<root>"}: ${i.message}`)
|
|
185
|
-
.join("\n");
|
|
186
|
-
throw new Error(`Invalid configuration ${attribution}:\n${issues}`);
|
|
187
|
-
}
|
|
188
|
-
const detail = err instanceof Error ? err.message : String(err);
|
|
189
|
-
throw new Error(`Invalid PrismaLens configuration: ${detail}`);
|
|
190
|
-
}
|
|
191
|
-
return Object.freeze(config);
|
|
192
|
-
}
|
|
193
|
-
//# sourceMappingURL=loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/config/loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,463 +0,0 @@
|
|
|
1
|
-
import { z } from "zod";
|
|
2
|
-
/**
|
|
3
|
-
* The single posture dial (ADR-0017) — prismalens does not build a permission
|
|
4
|
-
* policy engine; it exposes this one dial and translates it to each harness's
|
|
5
|
-
* native config. Defaults to the safest posture, `read-only`.
|
|
6
|
-
*/
|
|
7
|
-
export declare const PermissionConfigSchema: z.ZodObject<{
|
|
8
|
-
mode: z.ZodDefault<z.ZodEnum<["read-only", "supervised", "auto", "dangerous"]>>;
|
|
9
|
-
}, "strip", z.ZodTypeAny, {
|
|
10
|
-
mode: "read-only" | "supervised" | "auto" | "dangerous";
|
|
11
|
-
}, {
|
|
12
|
-
mode?: "read-only" | "supervised" | "auto" | "dangerous" | undefined;
|
|
13
|
-
}>;
|
|
14
|
-
/**
|
|
15
|
-
* Arbitrary harness-native passthrough (ADR-0017) — e.g. Agent SDK query options
|
|
16
|
-
* for `claude-code`, or `args` (extra CLI args) for `deepagents`. Kept untyped
|
|
17
|
-
* here (per-harness runners narrow it); prismalens does not validate the shape,
|
|
18
|
-
* it defers to the harness.
|
|
19
|
-
*/
|
|
20
|
-
export declare const HarnessNativeConfigSchema: z.ZodObject<{
|
|
21
|
-
native: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
22
|
-
}, "strip", z.ZodTypeAny, {
|
|
23
|
-
native?: Record<string, unknown> | undefined;
|
|
24
|
-
}, {
|
|
25
|
-
native?: Record<string, unknown> | undefined;
|
|
26
|
-
}>;
|
|
27
|
-
/**
|
|
28
|
-
* Best-effort resource caps for the sandboxed harness run (ADR-0020: "resource
|
|
29
|
-
* limits are part of the contract"). All optional with NO defaults — an unset knob
|
|
30
|
-
* means "no cap", never a value that would lie about being enforced. What actually
|
|
31
|
-
* takes effect is provider-dependent (the `process` floor enforces only
|
|
32
|
-
* `wall_clock_ms`; `srt` adds memory/cpu when `systemd-run` is present).
|
|
33
|
-
*/
|
|
34
|
-
export declare const AgentLimitsConfigSchema: z.ZodObject<{
|
|
35
|
-
/** Wall-clock deadline (ms) — enforced by every sandbox provider. */
|
|
36
|
-
wall_clock_ms: z.ZodOptional<z.ZodNumber>;
|
|
37
|
-
/** Memory ceiling (MB) — best-effort (srt+systemd-run only). */
|
|
38
|
-
memory_mb: z.ZodOptional<z.ZodNumber>;
|
|
39
|
-
/** CPU quota (whole/fractional cores) — best-effort (srt+systemd-run only). */
|
|
40
|
-
cpu_cores: z.ZodOptional<z.ZodNumber>;
|
|
41
|
-
}, "strip", z.ZodTypeAny, {
|
|
42
|
-
wall_clock_ms?: number | undefined;
|
|
43
|
-
memory_mb?: number | undefined;
|
|
44
|
-
cpu_cores?: number | undefined;
|
|
45
|
-
}, {
|
|
46
|
-
wall_clock_ms?: number | undefined;
|
|
47
|
-
memory_mb?: number | undefined;
|
|
48
|
-
cpu_cores?: number | undefined;
|
|
49
|
-
}>;
|
|
50
|
-
/** Tier-2 harness backend the supervisor rents (ADR-0008). */
|
|
51
|
-
export declare const AgentConfigSchema: z.ZodObject<{
|
|
52
|
-
default: z.ZodDefault<z.ZodEnum<["deepagents", "claude-code", "codex"]>>;
|
|
53
|
-
/**
|
|
54
|
-
* BARE model id (e.g. "gpt-oss:120b") — the chosen harness applies its own
|
|
55
|
-
* provider prefix (ADR-0017: deepagents prepends "openai:"; Claude Code takes it
|
|
56
|
-
* bare). Also reused as the Tier-1 reduce model id. Omit to let the harness pick
|
|
57
|
-
* its own default.
|
|
58
|
-
*/
|
|
59
|
-
model: z.ZodOptional<z.ZodString>;
|
|
60
|
-
/** The posture dial (ADR-0017). Defaults to `read-only`. */
|
|
61
|
-
permissions: z.ZodEffects<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>, {
|
|
62
|
-
mode: "read-only" | "supervised" | "auto" | "dangerous";
|
|
63
|
-
}, Record<string, unknown> | undefined>;
|
|
64
|
-
/**
|
|
65
|
-
* The isolation boundary the harness runs in (ADR-0020): `process` (the always-on
|
|
66
|
-
* cooperative floor), `srt` (enforced OS boundary), or `auto` (srt WHEN its egress
|
|
67
|
-
* bridge is healthy — the self-check, B.1.1 — else the floor; the degrade is honest,
|
|
68
|
-
* never silent). Defaults to `auto`: honest precisely BECAUSE of the self-check, which
|
|
69
|
-
* is what makes it safe to prefer the enforced boundary by default.
|
|
70
|
-
*/
|
|
71
|
-
sandbox: z.ZodDefault<z.ZodEnum<["auto", "process", "srt", "e2b"]>>;
|
|
72
|
-
/**
|
|
73
|
-
* Best-effort resource caps for the sandboxed harness (ADR-0020). Optional; an
|
|
74
|
-
* omitted section means "no caps" (the object defaults to `{}` after parse).
|
|
75
|
-
*/
|
|
76
|
-
limits: z.ZodEffects<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>, {
|
|
77
|
-
wall_clock_ms?: number | undefined;
|
|
78
|
-
memory_mb?: number | undefined;
|
|
79
|
-
cpu_cores?: number | undefined;
|
|
80
|
-
}, Record<string, unknown> | undefined>;
|
|
81
|
-
/**
|
|
82
|
-
* Per-alert fan-out cap (ADR-0016 decision 2): the max branches the supervisor
|
|
83
|
-
* runs when a context carries multiple alerts. Optional — omitted ⇒ the engine
|
|
84
|
-
* default (3). A single-alert run always uses one branch regardless.
|
|
85
|
-
*/
|
|
86
|
-
max_branches: z.ZodOptional<z.ZodNumber>;
|
|
87
|
-
max_turns: z.ZodOptional<z.ZodNumber>;
|
|
88
|
-
}, "strip", z.ZodTypeAny, {
|
|
89
|
-
default: "deepagents" | "claude-code" | "codex";
|
|
90
|
-
permissions: {
|
|
91
|
-
mode: "read-only" | "supervised" | "auto" | "dangerous";
|
|
92
|
-
};
|
|
93
|
-
sandbox: "auto" | "process" | "srt" | "e2b";
|
|
94
|
-
limits: {
|
|
95
|
-
wall_clock_ms?: number | undefined;
|
|
96
|
-
memory_mb?: number | undefined;
|
|
97
|
-
cpu_cores?: number | undefined;
|
|
98
|
-
};
|
|
99
|
-
model?: string | undefined;
|
|
100
|
-
max_branches?: number | undefined;
|
|
101
|
-
max_turns?: number | undefined;
|
|
102
|
-
}, {
|
|
103
|
-
default?: "deepagents" | "claude-code" | "codex" | undefined;
|
|
104
|
-
model?: string | undefined;
|
|
105
|
-
permissions?: Record<string, unknown> | undefined;
|
|
106
|
-
sandbox?: "auto" | "process" | "srt" | "e2b" | undefined;
|
|
107
|
-
limits?: Record<string, unknown> | undefined;
|
|
108
|
-
max_branches?: number | undefined;
|
|
109
|
-
max_turns?: number | undefined;
|
|
110
|
-
}>;
|
|
111
|
-
export declare const WorkspaceConfigSchema: z.ZodObject<{
|
|
112
|
-
base_dir: z.ZodDefault<z.ZodString>;
|
|
113
|
-
}, "strip", z.ZodTypeAny, {
|
|
114
|
-
base_dir: string;
|
|
115
|
-
}, {
|
|
116
|
-
base_dir?: string | undefined;
|
|
117
|
-
}>;
|
|
118
|
-
/**
|
|
119
|
-
* Run-budget guardrails for `pl listen` (issue #62): non-dollar caps only.
|
|
120
|
-
* `max_concurrent`/`max_per_hour` gate dispatch; `max_turns` is threaded into the
|
|
121
|
-
* default harness as a per-run runaway guard (no default ⇒ the harness's own default).
|
|
122
|
-
*/
|
|
123
|
-
export declare const ListenCapsConfigSchema: z.ZodObject<{
|
|
124
|
-
/** Max investigations running at once. Default 2. */
|
|
125
|
-
max_concurrent: z.ZodDefault<z.ZodNumber>;
|
|
126
|
-
/** Max investigations started per trailing hour. Default 10. */
|
|
127
|
-
max_per_hour: z.ZodDefault<z.ZodNumber>;
|
|
128
|
-
/** Per-run turn ceiling for the default harness. Unset ⇒ the harness default. */
|
|
129
|
-
max_turns: z.ZodOptional<z.ZodNumber>;
|
|
130
|
-
}, "strip", z.ZodTypeAny, {
|
|
131
|
-
max_concurrent: number;
|
|
132
|
-
max_per_hour: number;
|
|
133
|
-
max_turns?: number | undefined;
|
|
134
|
-
}, {
|
|
135
|
-
max_turns?: number | undefined;
|
|
136
|
-
max_concurrent?: number | undefined;
|
|
137
|
-
max_per_hour?: number | undefined;
|
|
138
|
-
}>;
|
|
139
|
-
/**
|
|
140
|
-
* `pl listen` webhook intake (issue #58, Phase 1 R1). `token` is REQUIRED to
|
|
141
|
-
* start listening but optional here so every other command parses a config
|
|
142
|
-
* without it; set it via env interpolation (`token: "${PRISMALENS_LISTEN_TOKEN}"`)
|
|
143
|
-
* rather than a literal. The grouping_window_ms configures the debounce window.
|
|
144
|
-
*/
|
|
145
|
-
export declare const ListenConfigSchema: z.ZodObject<{
|
|
146
|
-
/** Local intake host. Default 127.0.0.1. */
|
|
147
|
-
host: z.ZodDefault<z.ZodString>;
|
|
148
|
-
/** Local intake port (4181: clear of 9090/9093/3000/8080 defaults). 0 = ephemeral. */
|
|
149
|
-
port: z.ZodDefault<z.ZodNumber>;
|
|
150
|
-
/** Shared bearer token Alertmanager presents; unset ⇒ `pl listen` refuses to start. */
|
|
151
|
-
token: z.ZodOptional<z.ZodString>;
|
|
152
|
-
/** Max alerts waiting or running at once; default 8. */
|
|
153
|
-
max_pending: z.ZodDefault<z.ZodNumber>;
|
|
154
|
-
/** Grouping window in milliseconds to debounce alerts into one investigation. */
|
|
155
|
-
grouping_window_ms: z.ZodDefault<z.ZodNumber>;
|
|
156
|
-
/**
|
|
157
|
-
* Slack incoming-webhook URL for report delivery (issue #61). Optional — unset ⇒
|
|
158
|
-
* delivery disabled. Set via env interpolation (slack_webhook_url:
|
|
159
|
-
* "${PRISMALENS_SLACK_WEBHOOK_URL}") so the secret stays in env (ADR-0006).
|
|
160
|
-
*/
|
|
161
|
-
slack_webhook_url: z.ZodOptional<z.ZodString>;
|
|
162
|
-
/** Run-budget guardrails (issue #62). Always present with defaults after parse. */
|
|
163
|
-
caps: z.ZodEffects<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>, {
|
|
164
|
-
max_concurrent: number;
|
|
165
|
-
max_per_hour: number;
|
|
166
|
-
max_turns?: number | undefined;
|
|
167
|
-
}, Record<string, unknown> | undefined>;
|
|
168
|
-
}, "strip", z.ZodTypeAny, {
|
|
169
|
-
host: string;
|
|
170
|
-
port: number;
|
|
171
|
-
max_pending: number;
|
|
172
|
-
grouping_window_ms: number;
|
|
173
|
-
caps: {
|
|
174
|
-
max_concurrent: number;
|
|
175
|
-
max_per_hour: number;
|
|
176
|
-
max_turns?: number | undefined;
|
|
177
|
-
};
|
|
178
|
-
token?: string | undefined;
|
|
179
|
-
slack_webhook_url?: string | undefined;
|
|
180
|
-
}, {
|
|
181
|
-
host?: string | undefined;
|
|
182
|
-
port?: number | undefined;
|
|
183
|
-
token?: string | undefined;
|
|
184
|
-
max_pending?: number | undefined;
|
|
185
|
-
grouping_window_ms?: number | undefined;
|
|
186
|
-
slack_webhook_url?: string | undefined;
|
|
187
|
-
caps?: Record<string, unknown> | undefined;
|
|
188
|
-
}>;
|
|
189
|
-
/**
|
|
190
|
-
* Read-only telemetry + app endpoints the harness may query. Mirrors the engine's
|
|
191
|
-
* TelemetryEndpoints (camelCase) so a loaded config can be handed straight to
|
|
192
|
-
* `InvestigateOptions.telemetry`. All optional here — resolved/overridden per run.
|
|
193
|
-
*/
|
|
194
|
-
export declare const TelemetryConfigSchema: z.ZodObject<{
|
|
195
|
-
prometheusUrl: z.ZodOptional<z.ZodString>;
|
|
196
|
-
alertmanagerUrl: z.ZodOptional<z.ZodString>;
|
|
197
|
-
apiUrl: z.ZodOptional<z.ZodString>;
|
|
198
|
-
}, "strip", z.ZodTypeAny, {
|
|
199
|
-
prometheusUrl?: string | undefined;
|
|
200
|
-
alertmanagerUrl?: string | undefined;
|
|
201
|
-
apiUrl?: string | undefined;
|
|
202
|
-
}, {
|
|
203
|
-
prometheusUrl?: string | undefined;
|
|
204
|
-
alertmanagerUrl?: string | undefined;
|
|
205
|
-
apiUrl?: string | undefined;
|
|
206
|
-
}>;
|
|
207
|
-
/**
|
|
208
|
-
* A service in the catalog (ADR-0015). The CLI maps the matched entry into the
|
|
209
|
-
* investigation context's `service` field so a single-alert run carries the affected
|
|
210
|
-
* service's repo/tier/deps, not just the bare alert.
|
|
211
|
-
*/
|
|
212
|
-
export declare const ServiceConfigSchema: z.ZodObject<{
|
|
213
|
-
tier: z.ZodOptional<z.ZodString>;
|
|
214
|
-
/** owner/name slug or a local path the harness reads. */
|
|
215
|
-
repo: z.ZodOptional<z.ZodString>;
|
|
216
|
-
/** Direct dependency service names (blast-radius seed). */
|
|
217
|
-
depends_on: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
218
|
-
}, "strip", z.ZodTypeAny, {
|
|
219
|
-
depends_on: string[];
|
|
220
|
-
tier?: string | undefined;
|
|
221
|
-
repo?: string | undefined;
|
|
222
|
-
}, {
|
|
223
|
-
tier?: string | undefined;
|
|
224
|
-
repo?: string | undefined;
|
|
225
|
-
depends_on?: string[] | undefined;
|
|
226
|
-
}>;
|
|
227
|
-
/** A read-only log-query system the harness may curl (Loki/Elasticsearch/…). */
|
|
228
|
-
export declare const LogSourceConfigSchema: z.ZodObject<{
|
|
229
|
-
kind: z.ZodOptional<z.ZodString>;
|
|
230
|
-
url: z.ZodOptional<z.ZodString>;
|
|
231
|
-
}, "strip", z.ZodTypeAny, {
|
|
232
|
-
kind?: string | undefined;
|
|
233
|
-
url?: string | undefined;
|
|
234
|
-
}, {
|
|
235
|
-
kind?: string | undefined;
|
|
236
|
-
url?: string | undefined;
|
|
237
|
-
}>;
|
|
238
|
-
/** Free-form `{ source: { key: value } }` connection hints for alert ingestion. */
|
|
239
|
-
export declare const AlertSourceConfigSchema: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
240
|
-
export declare const RepoConfigSchema: z.ZodObject<{
|
|
241
|
-
repo: z.ZodString;
|
|
242
|
-
local_path: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
243
|
-
alert_sources: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
244
|
-
}, "strip", z.ZodTypeAny, {
|
|
245
|
-
repo: string;
|
|
246
|
-
local_path: string | null;
|
|
247
|
-
alert_sources?: Record<string, Record<string, string>> | undefined;
|
|
248
|
-
}, {
|
|
249
|
-
repo: string;
|
|
250
|
-
local_path?: string | null | undefined;
|
|
251
|
-
alert_sources?: Record<string, Record<string, string>> | undefined;
|
|
252
|
-
}>;
|
|
253
|
-
export declare const SynthConfigSchema: z.ZodObject<{
|
|
254
|
-
provider: z.ZodOptional<z.ZodEnum<["anthropic" | "openai" | "google" | "ollama" | "groq" | "custom", ...("anthropic" | "openai" | "google" | "ollama" | "groq" | "custom")[]]>>;
|
|
255
|
-
model: z.ZodOptional<z.ZodString>;
|
|
256
|
-
base_url: z.ZodOptional<z.ZodString>;
|
|
257
|
-
}, "strip", z.ZodTypeAny, {
|
|
258
|
-
provider?: "anthropic" | "openai" | "google" | "ollama" | "groq" | "custom" | undefined;
|
|
259
|
-
model?: string | undefined;
|
|
260
|
-
base_url?: string | undefined;
|
|
261
|
-
}, {
|
|
262
|
-
provider?: "anthropic" | "openai" | "google" | "ollama" | "groq" | "custom" | undefined;
|
|
263
|
-
model?: string | undefined;
|
|
264
|
-
base_url?: string | undefined;
|
|
265
|
-
}>;
|
|
266
|
-
export declare const PlConfigSchema: z.ZodObject<{
|
|
267
|
-
$schema: z.ZodOptional<z.ZodString>;
|
|
268
|
-
/** Convenience single-repo default (owner/name); `repos` is the multi-repo map. */
|
|
269
|
-
repo: z.ZodOptional<z.ZodString>;
|
|
270
|
-
repos: z.ZodEffects<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
271
|
-
repo: z.ZodString;
|
|
272
|
-
local_path: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
273
|
-
alert_sources: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
274
|
-
}, "strip", z.ZodTypeAny, {
|
|
275
|
-
repo: string;
|
|
276
|
-
local_path: string | null;
|
|
277
|
-
alert_sources?: Record<string, Record<string, string>> | undefined;
|
|
278
|
-
}, {
|
|
279
|
-
repo: string;
|
|
280
|
-
local_path?: string | null | undefined;
|
|
281
|
-
alert_sources?: Record<string, Record<string, string>> | undefined;
|
|
282
|
-
}>>>, Record<string, {
|
|
283
|
-
repo: string;
|
|
284
|
-
local_path: string | null;
|
|
285
|
-
alert_sources?: Record<string, Record<string, string>> | undefined;
|
|
286
|
-
}>, Record<string, {
|
|
287
|
-
repo: string;
|
|
288
|
-
local_path?: string | null | undefined;
|
|
289
|
-
alert_sources?: Record<string, Record<string, string>> | undefined;
|
|
290
|
-
}> | undefined>;
|
|
291
|
-
/** Service catalog (ADR-0015) — keyed by service name; maps into the context. */
|
|
292
|
-
services: z.ZodEffects<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
293
|
-
tier: z.ZodOptional<z.ZodString>;
|
|
294
|
-
/** owner/name slug or a local path the harness reads. */
|
|
295
|
-
repo: z.ZodOptional<z.ZodString>;
|
|
296
|
-
/** Direct dependency service names (blast-radius seed). */
|
|
297
|
-
depends_on: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
298
|
-
}, "strip", z.ZodTypeAny, {
|
|
299
|
-
depends_on: string[];
|
|
300
|
-
tier?: string | undefined;
|
|
301
|
-
repo?: string | undefined;
|
|
302
|
-
}, {
|
|
303
|
-
tier?: string | undefined;
|
|
304
|
-
repo?: string | undefined;
|
|
305
|
-
depends_on?: string[] | undefined;
|
|
306
|
-
}>>>, Record<string, {
|
|
307
|
-
depends_on: string[];
|
|
308
|
-
tier?: string | undefined;
|
|
309
|
-
repo?: string | undefined;
|
|
310
|
-
}>, Record<string, {
|
|
311
|
-
tier?: string | undefined;
|
|
312
|
-
repo?: string | undefined;
|
|
313
|
-
depends_on?: string[] | undefined;
|
|
314
|
-
}> | undefined>;
|
|
315
|
-
/** Read-only log-query system the harness may query. */
|
|
316
|
-
logs: z.ZodEffects<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>, {
|
|
317
|
-
kind?: string | undefined;
|
|
318
|
-
url?: string | undefined;
|
|
319
|
-
}, Record<string, unknown> | undefined>;
|
|
320
|
-
agent: z.ZodEffects<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>, {
|
|
321
|
-
default: "deepagents" | "claude-code" | "codex";
|
|
322
|
-
permissions: {
|
|
323
|
-
mode: "read-only" | "supervised" | "auto" | "dangerous";
|
|
324
|
-
};
|
|
325
|
-
sandbox: "auto" | "process" | "srt" | "e2b";
|
|
326
|
-
limits: {
|
|
327
|
-
wall_clock_ms?: number | undefined;
|
|
328
|
-
memory_mb?: number | undefined;
|
|
329
|
-
cpu_cores?: number | undefined;
|
|
330
|
-
};
|
|
331
|
-
model?: string | undefined;
|
|
332
|
-
max_branches?: number | undefined;
|
|
333
|
-
max_turns?: number | undefined;
|
|
334
|
-
}, Record<string, unknown> | undefined>;
|
|
335
|
-
synth: z.ZodEffects<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>, {
|
|
336
|
-
provider?: "anthropic" | "openai" | "google" | "ollama" | "groq" | "custom" | undefined;
|
|
337
|
-
model?: string | undefined;
|
|
338
|
-
base_url?: string | undefined;
|
|
339
|
-
}, Record<string, unknown> | undefined>;
|
|
340
|
-
workspace: z.ZodEffects<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>, {
|
|
341
|
-
base_dir: string;
|
|
342
|
-
}, Record<string, unknown> | undefined>;
|
|
343
|
-
listen: z.ZodEffects<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>, {
|
|
344
|
-
host: string;
|
|
345
|
-
port: number;
|
|
346
|
-
max_pending: number;
|
|
347
|
-
grouping_window_ms: number;
|
|
348
|
-
caps: {
|
|
349
|
-
max_concurrent: number;
|
|
350
|
-
max_per_hour: number;
|
|
351
|
-
max_turns?: number | undefined;
|
|
352
|
-
};
|
|
353
|
-
token?: string | undefined;
|
|
354
|
-
slack_webhook_url?: string | undefined;
|
|
355
|
-
}, Record<string, unknown> | undefined>;
|
|
356
|
-
telemetry: z.ZodEffects<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>, {
|
|
357
|
-
prometheusUrl?: string | undefined;
|
|
358
|
-
alertmanagerUrl?: string | undefined;
|
|
359
|
-
apiUrl?: string | undefined;
|
|
360
|
-
}, Record<string, unknown> | undefined>;
|
|
361
|
-
alert_sources: z.ZodEffects<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>>, Record<string, Record<string, string>>, Record<string, Record<string, string>> | undefined>;
|
|
362
|
-
/** Per-harness native passthrough (ADR-0017), keyed by harness id. */
|
|
363
|
-
harnesses: z.ZodEffects<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
364
|
-
native: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
365
|
-
}, "strip", z.ZodTypeAny, {
|
|
366
|
-
native?: Record<string, unknown> | undefined;
|
|
367
|
-
}, {
|
|
368
|
-
native?: Record<string, unknown> | undefined;
|
|
369
|
-
}>>>, Record<string, {
|
|
370
|
-
native?: Record<string, unknown> | undefined;
|
|
371
|
-
}>, Record<string, {
|
|
372
|
-
native?: Record<string, unknown> | undefined;
|
|
373
|
-
}> | undefined>;
|
|
374
|
-
}, "strip", z.ZodTypeAny, {
|
|
375
|
-
listen: {
|
|
376
|
-
host: string;
|
|
377
|
-
port: number;
|
|
378
|
-
max_pending: number;
|
|
379
|
-
grouping_window_ms: number;
|
|
380
|
-
caps: {
|
|
381
|
-
max_concurrent: number;
|
|
382
|
-
max_per_hour: number;
|
|
383
|
-
max_turns?: number | undefined;
|
|
384
|
-
};
|
|
385
|
-
token?: string | undefined;
|
|
386
|
-
slack_webhook_url?: string | undefined;
|
|
387
|
-
};
|
|
388
|
-
alert_sources: Record<string, Record<string, string>>;
|
|
389
|
-
repos: Record<string, {
|
|
390
|
-
repo: string;
|
|
391
|
-
local_path: string | null;
|
|
392
|
-
alert_sources?: Record<string, Record<string, string>> | undefined;
|
|
393
|
-
}>;
|
|
394
|
-
services: Record<string, {
|
|
395
|
-
depends_on: string[];
|
|
396
|
-
tier?: string | undefined;
|
|
397
|
-
repo?: string | undefined;
|
|
398
|
-
}>;
|
|
399
|
-
logs: {
|
|
400
|
-
kind?: string | undefined;
|
|
401
|
-
url?: string | undefined;
|
|
402
|
-
};
|
|
403
|
-
agent: {
|
|
404
|
-
default: "deepagents" | "claude-code" | "codex";
|
|
405
|
-
permissions: {
|
|
406
|
-
mode: "read-only" | "supervised" | "auto" | "dangerous";
|
|
407
|
-
};
|
|
408
|
-
sandbox: "auto" | "process" | "srt" | "e2b";
|
|
409
|
-
limits: {
|
|
410
|
-
wall_clock_ms?: number | undefined;
|
|
411
|
-
memory_mb?: number | undefined;
|
|
412
|
-
cpu_cores?: number | undefined;
|
|
413
|
-
};
|
|
414
|
-
model?: string | undefined;
|
|
415
|
-
max_branches?: number | undefined;
|
|
416
|
-
max_turns?: number | undefined;
|
|
417
|
-
};
|
|
418
|
-
synth: {
|
|
419
|
-
provider?: "anthropic" | "openai" | "google" | "ollama" | "groq" | "custom" | undefined;
|
|
420
|
-
model?: string | undefined;
|
|
421
|
-
base_url?: string | undefined;
|
|
422
|
-
};
|
|
423
|
-
workspace: {
|
|
424
|
-
base_dir: string;
|
|
425
|
-
};
|
|
426
|
-
telemetry: {
|
|
427
|
-
prometheusUrl?: string | undefined;
|
|
428
|
-
alertmanagerUrl?: string | undefined;
|
|
429
|
-
apiUrl?: string | undefined;
|
|
430
|
-
};
|
|
431
|
-
harnesses: Record<string, {
|
|
432
|
-
native?: Record<string, unknown> | undefined;
|
|
433
|
-
}>;
|
|
434
|
-
repo?: string | undefined;
|
|
435
|
-
$schema?: string | undefined;
|
|
436
|
-
}, {
|
|
437
|
-
listen?: Record<string, unknown> | undefined;
|
|
438
|
-
repo?: string | undefined;
|
|
439
|
-
alert_sources?: Record<string, Record<string, string>> | undefined;
|
|
440
|
-
$schema?: string | undefined;
|
|
441
|
-
repos?: Record<string, {
|
|
442
|
-
repo: string;
|
|
443
|
-
local_path?: string | null | undefined;
|
|
444
|
-
alert_sources?: Record<string, Record<string, string>> | undefined;
|
|
445
|
-
}> | undefined;
|
|
446
|
-
services?: Record<string, {
|
|
447
|
-
tier?: string | undefined;
|
|
448
|
-
repo?: string | undefined;
|
|
449
|
-
depends_on?: string[] | undefined;
|
|
450
|
-
}> | undefined;
|
|
451
|
-
logs?: Record<string, unknown> | undefined;
|
|
452
|
-
agent?: Record<string, unknown> | undefined;
|
|
453
|
-
synth?: Record<string, unknown> | undefined;
|
|
454
|
-
workspace?: Record<string, unknown> | undefined;
|
|
455
|
-
telemetry?: Record<string, unknown> | undefined;
|
|
456
|
-
harnesses?: Record<string, {
|
|
457
|
-
native?: Record<string, unknown> | undefined;
|
|
458
|
-
}> | undefined;
|
|
459
|
-
}>;
|
|
460
|
-
export type PlConfigInput = z.input<typeof PlConfigSchema>;
|
|
461
|
-
/** The validated, defaults-applied config consumed by the CLI commands. */
|
|
462
|
-
export type PlConfig = z.output<typeof PlConfigSchema>;
|
|
463
|
-
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/config/schema.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;;;;;;EAEjC,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;;;;;;EAEpC,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB;IACnC,qEAAqE;;IAErE,gEAAgE;;IAEhE,+EAA+E;;;;;;;;;;EAE9E,CAAC;AAEH,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB;;IAE7B;;;;;OAKG;;IAEH,4DAA4D;;;;IAE5D;;;;;;OAMG;;IAEH;;;OAGG;;;;;;IAEH;;;;OAIG;;;;;;;;;;;;;;;;;;;;;;;;;EAGF,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;EAEhC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,sBAAsB;IAClC,qDAAqD;;IAErD,gEAAgE;;IAEhE,iFAAiF;;;;;;;;;;EAEhF,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;IAC9B,4CAA4C;;IAE5C,sFAAsF;;IAEtF,uFAAuF;;IAEvF,wDAAwD;;IAExD,iFAAiF;;IAEjF;;;;OAIG;;IAEH,mFAAmF;;;;;;;;;;;;;;;;;;;;;;;;;;EAElF,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;EAIhC,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;IAE/B,yDAAyD;;IAEzD,2DAA2D;;;;;;;;;;EAE1D,CAAC;AAEH,gFAAgF;AAChF,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAC;AAEH,mFAAmF;AACnF,eAAO,MAAM,uBAAuB,iEAGnC,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAI3B,CAAC;AAuBH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;EAI5B,CAAC;AAEH,eAAO,MAAM,cAAc;;IAE1B,mFAAmF;;;;;;;;;;;;;;;;;;;;;;;IAMnF,iFAAiF;;;QA3DjF,yDAAyD;;QAEzD,2DAA2D;;;;;;;;;;;;;;;;;;;IA8D3D,wDAAwD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUxD,sEAAsE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKrE,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC3D,2EAA2E;AAC3E,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC"}
|