prismalens 0.0.2 → 0.1.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 +12 -2
- package/dist/bin/prismalens.js +13 -0
- package/dist/bin/prismalens.js.map +1 -1
- package/dist/src/cli/doctor.d.ts +15 -1
- package/dist/src/cli/doctor.d.ts.map +1 -1
- package/dist/src/cli/doctor.js +107 -56
- package/dist/src/cli/doctor.js.map +1 -1
- package/dist/src/cli/flags.d.ts +2 -0
- package/dist/src/cli/flags.d.ts.map +1 -0
- package/dist/src/cli/flags.js +25 -0
- package/dist/src/cli/flags.js.map +1 -0
- package/dist/src/cli/grouping.d.ts +18 -0
- package/dist/src/cli/grouping.d.ts.map +1 -0
- package/dist/src/cli/grouping.js +227 -0
- package/dist/src/cli/grouping.js.map +1 -0
- package/dist/src/cli/init.d.ts.map +1 -1
- package/dist/src/cli/init.js +26 -11
- package/dist/src/cli/init.js.map +1 -1
- package/dist/src/cli/investigate.d.ts +12 -0
- package/dist/src/cli/investigate.d.ts.map +1 -1
- package/dist/src/cli/investigate.js +142 -140
- package/dist/src/cli/investigate.js.map +1 -1
- package/dist/src/cli/listen.d.ts +50 -0
- package/dist/src/cli/listen.d.ts.map +1 -0
- package/dist/src/cli/listen.js +298 -0
- package/dist/src/cli/listen.js.map +1 -0
- package/dist/src/cli/report.d.ts +19 -0
- package/dist/src/cli/report.d.ts.map +1 -0
- package/dist/src/cli/report.js +60 -0
- package/dist/src/cli/report.js.map +1 -0
- package/dist/src/cli/serve.d.ts.map +1 -1
- package/dist/src/cli/serve.js +11 -2
- package/dist/src/cli/serve.js.map +1 -1
- package/dist/src/cli/status.d.ts +14 -0
- package/dist/src/cli/status.d.ts.map +1 -0
- package/dist/src/cli/status.js +83 -0
- package/dist/src/cli/status.js.map +1 -0
- package/dist/src/config/loader.d.ts.map +1 -1
- package/dist/src/config/loader.js +28 -2
- package/dist/src/config/loader.js.map +1 -1
- package/dist/src/config/schema.d.ts +121 -0
- package/dist/src/config/schema.d.ts.map +1 -1
- package/dist/src/config/schema.js +47 -1
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/core/caps.d.ts +36 -0
- package/dist/src/core/caps.d.ts.map +1 -0
- package/dist/src/core/caps.js +36 -0
- package/dist/src/core/caps.js.map +1 -0
- package/dist/src/core/db.d.ts +3 -0
- package/dist/src/core/db.d.ts.map +1 -0
- package/dist/src/core/db.js +105 -0
- package/dist/src/core/db.js.map +1 -0
- package/dist/src/core/file-session-store.js +2 -2
- package/dist/src/core/file-session-store.js.map +1 -1
- package/dist/src/core/run-investigation.d.ts +12 -0
- package/dist/src/core/run-investigation.d.ts.map +1 -1
- package/dist/src/core/run-investigation.js +86 -30
- package/dist/src/core/run-investigation.js.map +1 -1
- package/dist/src/core/session.d.ts +22 -1
- package/dist/src/core/session.d.ts.map +1 -1
- package/dist/src/core/session.js +6 -129
- package/dist/src/core/session.js.map +1 -1
- package/dist/src/core/slack-notify.d.ts +9 -0
- package/dist/src/core/slack-notify.d.ts.map +1 -0
- package/dist/src/core/slack-notify.js +57 -0
- package/dist/src/core/slack-notify.js.map +1 -0
- package/dist/src/core/sqlite-session-store.d.ts +39 -0
- package/dist/src/core/sqlite-session-store.d.ts.map +1 -0
- package/dist/src/core/sqlite-session-store.js +239 -0
- package/dist/src/core/sqlite-session-store.js.map +1 -0
- package/dist/src/http/server.d.ts +26 -0
- package/dist/src/http/server.d.ts.map +1 -0
- package/dist/src/http/server.js +151 -0
- package/dist/src/http/server.js.map +1 -0
- package/package.json +6 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grouping.js","sourceRoot":"","sources":["../../../src/cli/grouping.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/init.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/init.ts"],"names":[],"mappings":";AAiFA,wBA8BG"}
|
package/dist/src/cli/init.js
CHANGED
|
@@ -15,6 +15,7 @@ import { INVESTIGATION_DEFAULTS } from "@prismalens/config/investigation";
|
|
|
15
15
|
import { defineCommand } from "citty";
|
|
16
16
|
import consola from "consola";
|
|
17
17
|
import { AgentConfigSchema, PlConfigSchema, } from "../config/schema.js";
|
|
18
|
+
import { assertKnownFlags } from "./flags.js";
|
|
18
19
|
const CONFIG_FILENAME = "prismalens.config.yaml";
|
|
19
20
|
/** Render a commented default config, sourcing live values from schema defaults. */
|
|
20
21
|
function renderDefaultConfig(d) {
|
|
@@ -61,6 +62,13 @@ telemetry:
|
|
|
61
62
|
# Where runs, events, and reports are stored.
|
|
62
63
|
workspace:
|
|
63
64
|
base_dir: ${d.workspace.base_dir}
|
|
65
|
+
|
|
66
|
+
# \`pl listen\` — token-authed local webhook intake (Alertmanager). The token is
|
|
67
|
+
# REQUIRED to start listening; keep it out of the file via env interpolation.
|
|
68
|
+
# listen:
|
|
69
|
+
# port: ${d.listen.port}
|
|
70
|
+
# token: "\${PRISMALENS_LISTEN_TOKEN}"
|
|
71
|
+
# max_pending: ${d.listen.max_pending}
|
|
64
72
|
`;
|
|
65
73
|
}
|
|
66
74
|
export default defineCommand({
|
|
@@ -68,18 +76,25 @@ export default defineCommand({
|
|
|
68
76
|
name: "init",
|
|
69
77
|
description: `Scaffold a ${CONFIG_FILENAME} in the current directory`,
|
|
70
78
|
},
|
|
71
|
-
async run() {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
79
|
+
async run({ args, cmd }) {
|
|
80
|
+
try {
|
|
81
|
+
assertKnownFlags(args, cmd);
|
|
82
|
+
const configPath = resolve(process.cwd(), CONFIG_FILENAME);
|
|
83
|
+
if (existsSync(configPath)) {
|
|
84
|
+
consola.info(`${CONFIG_FILENAME} already exists at ${configPath} — leaving it untouched.`);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
// PlConfigSchema.parse({}) yields the fully-defaulted config; the scaffold
|
|
88
|
+
// renders those exact values so it never drifts from the schema.
|
|
89
|
+
const defaults = PlConfigSchema.parse({});
|
|
90
|
+
await writeFile(configPath, renderDefaultConfig(defaults), "utf-8");
|
|
91
|
+
consola.success(`Created ${configPath}`);
|
|
92
|
+
consola.info("Edit it for your stack, then run `prismalens doctor` to verify your environment.");
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
consola.error(err instanceof Error ? err.message : String(err));
|
|
96
|
+
process.exit(1);
|
|
76
97
|
}
|
|
77
|
-
// PlConfigSchema.parse({}) yields the fully-defaulted config; the scaffold
|
|
78
|
-
// renders those exact values so it never drifts from the schema.
|
|
79
|
-
const defaults = PlConfigSchema.parse({});
|
|
80
|
-
await writeFile(configPath, renderDefaultConfig(defaults), "utf-8");
|
|
81
|
-
consola.success(`Created ${configPath}`);
|
|
82
|
-
consola.info("Edit it for your stack, then run `prismalens doctor` to verify your environment.");
|
|
83
98
|
},
|
|
84
99
|
});
|
|
85
100
|
//# sourceMappingURL=init.js.map
|
package/dist/src/cli/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/init.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,6BAA6B;AAE7B;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EACN,iBAAiB,EAEjB,cAAc,GACd,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/init.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,6BAA6B;AAE7B;;;;;;;GAOG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EACN,iBAAiB,EAEjB,cAAc,GACd,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAEjD,oFAAoF;AACpF,SAAS,mBAAmB,CAAC,CAAW;IACvC,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,OAAO;SACpD,aAAa,EAAE;SACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtB,OAAO;;;;;;;;;;mCAU2B,cAAc;aACpC,CAAC,CAAC,KAAK,CAAC,OAAO;;;;;;;;mBAQT,sBAAsB,CAAC,SAAS,CAAC,aAAa;qBAC5C,sBAAsB,CAAC,SAAS,CAAC,eAAe;YACzD,sBAAsB,CAAC,SAAS,CAAC,MAAM;;;;;;;;;;;;;;;;;;cAkBrC,CAAC,CAAC,SAAS,CAAC,QAAQ;;;;;YAKtB,CAAC,CAAC,MAAM,CAAC,IAAI;;mBAEN,CAAC,CAAC,MAAM,CAAC,WAAW;CACtC,CAAC;AACF,CAAC;AAED,eAAe,aAAa,CAAC;IAC5B,IAAI,EAAE;QACL,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,cAAc,eAAe,2BAA2B;KACrE;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;QACtB,IAAI,CAAC;YACJ,gBAAgB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,eAAe,CAAC,CAAC;YAC3D,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CACX,GAAG,eAAe,sBAAsB,UAAU,0BAA0B,CAC5E,CAAC;gBACF,OAAO;YACR,CAAC;YAED,2EAA2E;YAC3E,iEAAiE;YACjE,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC1C,MAAM,SAAS,CAAC,UAAU,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;YAEpE,OAAO,CAAC,OAAO,CAAC,WAAW,UAAU,EAAE,CAAC,CAAC;YACzC,OAAO,CAAC,IAAI,CACX,kFAAkF,CAClF,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC;CACD,CAAC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type HarnessId } from "@prismalens/config/harness";
|
|
2
|
+
import type { CanonicalEvent } from "@prismalens/contracts";
|
|
2
3
|
import { type SandboxMode, type SandboxSelection } from "@prismalens/engine";
|
|
3
4
|
import type { PlConfig } from "../config/schema.js";
|
|
4
5
|
declare const _default: import("citty").CommandDef<{
|
|
@@ -57,6 +58,10 @@ declare const _default: import("citty").CommandDef<{
|
|
|
57
58
|
readonly default: false;
|
|
58
59
|
readonly description: "Suppress progress + the human renderer (errors still go to stderr).";
|
|
59
60
|
};
|
|
61
|
+
readonly "max-turns": {
|
|
62
|
+
readonly type: "string";
|
|
63
|
+
readonly description: "Per-run turn ceiling for the default harness.";
|
|
64
|
+
};
|
|
60
65
|
}>;
|
|
61
66
|
export default _default;
|
|
62
67
|
/**
|
|
@@ -100,4 +105,11 @@ export declare function resolveSandboxGuard(harness: HarnessId, mode: SandboxMod
|
|
|
100
105
|
takesSandbox: boolean;
|
|
101
106
|
blocked: boolean;
|
|
102
107
|
};
|
|
108
|
+
/**
|
|
109
|
+
* Render one live-timeline line for a streamed canonical event, or null when the
|
|
110
|
+
* event carries nothing worth a line (an agent_step with neither text nor calls).
|
|
111
|
+
* The terminal `report` event is captured by the caller, not lined here.
|
|
112
|
+
* Exported for the `listen` path, which prints the same timeline per webhook run.
|
|
113
|
+
*/
|
|
114
|
+
export declare function liveTimelineEntry(event: CanonicalEvent): string | null;
|
|
103
115
|
//# sourceMappingURL=investigate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"investigate.d.ts","sourceRoot":"","sources":["../../../src/cli/investigate.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"investigate.d.ts","sourceRoot":"","sources":["../../../src/cli/investigate.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAoB,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE9E,OAAO,KAAK,EACX,cAAc,EAKd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAIN,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWpD,wBAyQG;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,EAAE,CA0BhE;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,iBAAiB,CACtC,OAAO,EAAE,SAAS,EAClB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,QAAQ,GACd,OAAO,CAAC;IACV,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gFAAgF;IAChF,eAAe,EAAE,OAAO,CAAC;CACzB,CAAC,CAyBD;AA2BD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,SAAS,EAClB,IAAI,EAAE,WAAW,GACf;IAAE,YAAY,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAI7C;AAMD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,CAkBtE"}
|
|
@@ -32,10 +32,11 @@ import { createFileSessionStore } from "../core/file-session-store.js";
|
|
|
32
32
|
import { parseStdin } from "../core/parse-stdin.js";
|
|
33
33
|
import { resolveInvestigation, } from "../core/run-investigation.js";
|
|
34
34
|
import { createSessionManager } from "../core/session.js";
|
|
35
|
+
import { assertKnownFlags } from "./flags.js";
|
|
35
36
|
export default defineCommand({
|
|
36
37
|
meta: {
|
|
37
38
|
name: "investigate",
|
|
38
|
-
description: "Run a read-only root-cause investigation of a firing alert (two-tier engine, ADR-0008)
|
|
39
|
+
description: "Run a read-only root-cause investigation of a firing alert (two-tier engine, ADR-0008).\n\nExamples:\n $ pl investigate -q 'Why did the database crash?' --max-turns 30",
|
|
39
40
|
},
|
|
40
41
|
args: {
|
|
41
42
|
repo: {
|
|
@@ -93,84 +94,84 @@ export default defineCommand({
|
|
|
93
94
|
default: false,
|
|
94
95
|
description: "Suppress progress + the human renderer (errors still go to stderr).",
|
|
95
96
|
},
|
|
97
|
+
"max-turns": {
|
|
98
|
+
type: "string",
|
|
99
|
+
description: "Per-run turn ceiling for the default harness.",
|
|
100
|
+
},
|
|
96
101
|
},
|
|
97
|
-
async run({ args }) {
|
|
98
|
-
const json = Boolean(args.json);
|
|
99
|
-
// In --json mode stdout must be machine-clean, so suppress all info-level
|
|
100
|
-
// chatter (consola routes info/log/success to stdout, warn/error to stderr).
|
|
101
|
-
// The AI SDK's stdout warning banner is disabled bin-wide (bin/prismalens.ts).
|
|
102
|
-
const quiet = Boolean(args.quiet) || json;
|
|
103
|
-
const info = (msg) => {
|
|
104
|
-
if (!quiet)
|
|
105
|
-
consola.info(msg);
|
|
106
|
-
};
|
|
107
|
-
const success = (msg) => {
|
|
108
|
-
if (!quiet)
|
|
109
|
-
consola.success(msg);
|
|
110
|
-
};
|
|
111
|
-
// One-line live timeline entries (no consola icon, so the stream reads cleanly).
|
|
112
|
-
const line = (msg) => {
|
|
113
|
-
if (!quiet)
|
|
114
|
-
consola.log(msg);
|
|
115
|
-
};
|
|
116
|
-
// (1) Resolve the seed alert + config + harness + reduce model. The seed is a
|
|
117
|
-
// piped FiringAlert JSON (the stdin channel) or, failing that, --query.
|
|
118
|
-
const piped = await parseStdin();
|
|
119
|
-
// cwd = --repo (a local repo path) else the current directory.
|
|
120
|
-
const cwd = args.repo ? resolve(args.repo) : process.cwd();
|
|
121
|
-
// Load + merge config (global → project → CLI overrides); --model overrides agent.model.
|
|
122
|
-
const config = await loadConfig({
|
|
123
|
-
...(args.config ? { configPath: args.config } : {}),
|
|
124
|
-
cwd,
|
|
125
|
-
cliOverrides: { ...(args.model ? { model: args.model } : {}) },
|
|
126
|
-
});
|
|
127
|
-
// Session label: config `repo` (owner/name) wins; else git auto-detect; else none.
|
|
128
|
-
const repoSlug = await resolveRepoSlug(config.repo, cwd);
|
|
129
|
-
// The single posture dial (ADR-0017): --dangerously-skip-permissions wins over
|
|
130
|
-
// --mode, aliasing straight to "dangerous".
|
|
131
|
-
const permissionMode = args.dangerouslySkipPermissions
|
|
132
|
-
? "dangerous"
|
|
133
|
-
: args.mode;
|
|
134
|
-
// Resolve the isolation boundary (ADR-0020): --sandbox wins over agent.sandbox.
|
|
135
|
-
// Only ACP-transport harnesses are spawned as a child the engine can place
|
|
136
|
-
// inside a boundary (the Agent SDK harness runs in-process). Fail fast ONLY when
|
|
137
|
-
// the mode DEMANDS an enforced boundary (`srt`/`e2b`) a non-ACP harness cannot
|
|
138
|
-
// honour (ADR-0017 — never claim an enforcement that would not apply). `auto` and
|
|
139
|
-
// `process` with a non-ACP harness run WITHOUT a sandbox silently: `auto` means
|
|
140
|
-
// best-effort, and the best available for an in-process harness is none — nothing
|
|
141
|
-
// is claimed, so nothing is dishonest. The sandbox is CALLER-OWNED — destroyed in
|
|
142
|
-
// the finally.
|
|
143
|
-
const harnessName = args.harness ?? config.agent.default;
|
|
144
|
-
const sandboxMode = args.sandbox ?? config.agent.sandbox;
|
|
145
|
-
let selection = null;
|
|
102
|
+
async run({ args, cmd }) {
|
|
146
103
|
try {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
//
|
|
150
|
-
//
|
|
151
|
-
//
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
if (
|
|
155
|
-
info(
|
|
104
|
+
assertKnownFlags(args, cmd);
|
|
105
|
+
const json = Boolean(args.json);
|
|
106
|
+
// In --json mode stdout must be machine-clean, so suppress all info-level
|
|
107
|
+
// chatter (consola routes info/log/success to stdout, warn/error to stderr).
|
|
108
|
+
// The AI SDK's stdout warning banner is disabled bin-wide (bin/prismalens.ts).
|
|
109
|
+
const quiet = Boolean(args.quiet) || json;
|
|
110
|
+
const info = (msg) => {
|
|
111
|
+
if (!quiet)
|
|
112
|
+
consola.info(msg);
|
|
113
|
+
};
|
|
114
|
+
const success = (msg) => {
|
|
115
|
+
if (!quiet)
|
|
116
|
+
consola.success(msg);
|
|
117
|
+
};
|
|
118
|
+
// One-line live timeline entries (no consola icon, so the stream reads cleanly).
|
|
119
|
+
const line = (msg) => {
|
|
120
|
+
if (!quiet)
|
|
121
|
+
consola.log(msg);
|
|
122
|
+
};
|
|
123
|
+
// (1) Resolve the seed alert + config + harness + reduce model. The seed is a
|
|
124
|
+
// piped FiringAlert JSON (the stdin channel) or, failing that, --query.
|
|
125
|
+
const piped = await parseStdin();
|
|
126
|
+
// cwd = --repo (a local repo path) else the current directory.
|
|
127
|
+
const cwd = args.repo ? resolve(args.repo) : process.cwd();
|
|
128
|
+
// Load + merge config (global → project → CLI overrides); --model overrides agent.model.
|
|
129
|
+
const config = await loadConfig({
|
|
130
|
+
...(args.config ? { configPath: args.config } : {}),
|
|
131
|
+
cwd,
|
|
132
|
+
cliOverrides: { ...(args.model ? { model: args.model } : {}) },
|
|
133
|
+
});
|
|
134
|
+
const maxTurns = args["max-turns"]
|
|
135
|
+
? Number(args["max-turns"])
|
|
136
|
+
: config.agent.max_turns;
|
|
137
|
+
// Session label: config `repo` (owner/name) wins; else git auto-detect; else none.
|
|
138
|
+
const repoSlug = await resolveRepoSlug(config.repo, cwd);
|
|
139
|
+
// The single posture dial (ADR-0017): --dangerously-skip-permissions wins over
|
|
140
|
+
// --mode, aliasing straight to "dangerous".
|
|
141
|
+
const permissionMode = args.dangerouslySkipPermissions
|
|
142
|
+
? "dangerous"
|
|
143
|
+
: args.mode;
|
|
144
|
+
// Resolve the isolation boundary (ADR-0020): --sandbox wins over agent.sandbox.
|
|
145
|
+
// Only ACP-transport harnesses are spawned as a child the engine can place
|
|
146
|
+
// inside a boundary (the Agent SDK harness runs in-process). Fail fast ONLY when
|
|
147
|
+
// the mode DEMANDS an enforced boundary (`srt`/`e2b`) a non-ACP harness cannot
|
|
148
|
+
// honour (ADR-0017 — never claim an enforcement that would not apply). `auto` and
|
|
149
|
+
// `process` with a non-ACP harness run WITHOUT a sandbox silently: `auto` means
|
|
150
|
+
// best-effort, and the best available for an in-process harness is none — nothing
|
|
151
|
+
// is claimed, so nothing is dishonest. The sandbox is CALLER-OWNED — destroyed in
|
|
152
|
+
// the finally.
|
|
153
|
+
const harnessName = args.harness ?? config.agent.default;
|
|
154
|
+
const sandboxMode = args.sandbox ?? config.agent.sandbox;
|
|
155
|
+
let selection = null;
|
|
156
|
+
try {
|
|
157
|
+
const resolvedSandbox = await resolveRunSandbox(harnessName, sandboxMode, config);
|
|
158
|
+
selection = resolvedSandbox.selection;
|
|
159
|
+
// Honest fidelity (ADR-0017): a silent degrade would mislead — name it, with
|
|
160
|
+
// the self-check's reason (srt absent, or its egress bridge dead — B.1.1).
|
|
161
|
+
// An EXPECTED degrade (WSL: known-unreliable bridge, probe skipped) logs
|
|
162
|
+
// calmly instead of warning on every dev-machine run.
|
|
163
|
+
if (selection && resolvedSandbox.degradeReason) {
|
|
164
|
+
if (resolvedSandbox.degradeExpected) {
|
|
165
|
+
info(`Sandbox: ${selection.actual} (${resolvedSandbox.degradeReason}).`);
|
|
166
|
+
}
|
|
167
|
+
else {
|
|
168
|
+
consola.warn(`Sandbox 'auto' degraded to the ${selection.actual} (cooperative, not an OS boundary): ${resolvedSandbox.degradeReason}.`);
|
|
169
|
+
}
|
|
156
170
|
}
|
|
157
|
-
else {
|
|
158
|
-
|
|
171
|
+
else if (selection?.actual === "srt") {
|
|
172
|
+
info("Sandbox: srt (enforced OS boundary).");
|
|
159
173
|
}
|
|
160
|
-
|
|
161
|
-
else if (selection?.actual === "srt") {
|
|
162
|
-
info("Sandbox: srt (enforced OS boundary).");
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
catch (err) {
|
|
166
|
-
consola.error(err instanceof Error ? err.message : String(err));
|
|
167
|
-
process.exitCode = 1;
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
try {
|
|
171
|
-
let resolved;
|
|
172
|
-
try {
|
|
173
|
-
resolved = resolveInvestigation({
|
|
174
|
+
const resolved = resolveInvestigation({
|
|
174
175
|
...(piped ? { alert: piped } : {}),
|
|
175
176
|
...(args.query ? { query: args.query } : {}),
|
|
176
177
|
...(args.repo ? { repo: args.repo } : {}),
|
|
@@ -183,74 +184,74 @@ export default defineCommand({
|
|
|
183
184
|
requestedSandbox: selection.requested,
|
|
184
185
|
}
|
|
185
186
|
: {}),
|
|
187
|
+
...(maxTurns ? { maxTurns } : {}),
|
|
186
188
|
}, config);
|
|
189
|
+
const { context, harness, synth, fidelity, maxBranches } = resolved;
|
|
190
|
+
const primaryAlert = context.alerts[0];
|
|
191
|
+
if (!synth.configured) {
|
|
192
|
+
info("No Tier-1 provider configured (checked env + _FILE for: ANTHROPIC_API_KEY, OPENAI_API_KEY, GOOGLE_API_KEY, GROQ_API_KEY, OLLAMA_API_KEY) — reports will be RAW harness pass-through (un-synthesized). This is supported.");
|
|
193
|
+
}
|
|
194
|
+
// (2) Create the run workspace + session under workspace.base_dir, wrapped as
|
|
195
|
+
// a conductRun store adapter (ADR-0018).
|
|
196
|
+
const runId = randomUUID();
|
|
197
|
+
const sessions = createSessionManager(config.workspace.base_dir);
|
|
198
|
+
const fileSession = createFileSessionStore(sessions, {
|
|
199
|
+
runId,
|
|
200
|
+
alertname: primaryAlert.alertname,
|
|
201
|
+
agent: harnessName,
|
|
202
|
+
...(repoSlug ? { repo: repoSlug } : {}),
|
|
203
|
+
});
|
|
204
|
+
info(`Investigating "${primaryAlert.alertname}" with ${harnessName} in ${cwd} (run ${runId})`);
|
|
205
|
+
// (3) Drive the supervisor LIVE via the shared conductor: print a one-line
|
|
206
|
+
// timeline entry per event; conductRun owns persistence + the terminal
|
|
207
|
+
// report/no-evidence/error outcome.
|
|
208
|
+
const outcome = await conductRun({
|
|
209
|
+
context,
|
|
210
|
+
harness,
|
|
211
|
+
synth,
|
|
212
|
+
fidelity,
|
|
213
|
+
runId,
|
|
214
|
+
...(maxBranches !== undefined ? { maxBranches } : {}),
|
|
215
|
+
}, {
|
|
216
|
+
sink: (event) => {
|
|
217
|
+
const entry = liveTimelineEntry(event);
|
|
218
|
+
if (entry)
|
|
219
|
+
line(entry);
|
|
220
|
+
},
|
|
221
|
+
store: fileSession.store,
|
|
222
|
+
});
|
|
223
|
+
if (!outcome.report) {
|
|
224
|
+
consola.error(outcome.error);
|
|
225
|
+
process.exitCode = 1;
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
228
|
+
const report = outcome.report;
|
|
229
|
+
// (4) Output. --output writes report JSON to a file; --json prints it to
|
|
230
|
+
// stdout; otherwise render the ordered-evidence report for humans.
|
|
231
|
+
if (args.output) {
|
|
232
|
+
const outPath = resolve(args.output);
|
|
233
|
+
await writeFile(outPath, `${JSON.stringify(report, null, 2)}\n`, "utf-8");
|
|
234
|
+
success(`Report written to ${outPath}`);
|
|
235
|
+
}
|
|
236
|
+
if (json) {
|
|
237
|
+
process.stdout.write(`${JSON.stringify(report, null, 2)}\n`);
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
if (!quiet) {
|
|
241
|
+
renderReport(report);
|
|
242
|
+
success(`Report saved to ${join(fileSession.workspacePath(), "report.json")}`);
|
|
243
|
+
}
|
|
187
244
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
const { context, harness, synth, harnessName, fidelity, maxBranches } = resolved;
|
|
194
|
-
const primaryAlert = context.alerts[0];
|
|
195
|
-
if (!synth.apiKey) {
|
|
196
|
-
consola.warn("No OLLAMA_API_KEY / OPENAI_API_KEY in the environment — the synthesis call will likely fail (BYO-key, ADR-0006).");
|
|
197
|
-
}
|
|
198
|
-
// (2) Create the run workspace + session under workspace.base_dir, wrapped as
|
|
199
|
-
// a conductRun store adapter (ADR-0018).
|
|
200
|
-
const runId = randomUUID();
|
|
201
|
-
const sessions = createSessionManager(config.workspace.base_dir);
|
|
202
|
-
const fileSession = createFileSessionStore(sessions, {
|
|
203
|
-
runId,
|
|
204
|
-
alertname: primaryAlert.alertname,
|
|
205
|
-
agent: harnessName,
|
|
206
|
-
...(repoSlug ? { repo: repoSlug } : {}),
|
|
207
|
-
});
|
|
208
|
-
info(`Investigating "${primaryAlert.alertname}" with ${harnessName} in ${cwd} (run ${runId})`);
|
|
209
|
-
// (3) Drive the supervisor LIVE via the shared conductor: print a one-line
|
|
210
|
-
// timeline entry per event; conductRun owns persistence + the terminal
|
|
211
|
-
// report/no-evidence/error outcome.
|
|
212
|
-
const outcome = await conductRun({
|
|
213
|
-
context,
|
|
214
|
-
harness,
|
|
215
|
-
synth,
|
|
216
|
-
fidelity,
|
|
217
|
-
runId,
|
|
218
|
-
...(maxBranches !== undefined ? { maxBranches } : {}),
|
|
219
|
-
}, {
|
|
220
|
-
sink: (event) => {
|
|
221
|
-
const entry = liveTimelineEntry(event);
|
|
222
|
-
if (entry)
|
|
223
|
-
line(entry);
|
|
224
|
-
},
|
|
225
|
-
store: fileSession.store,
|
|
226
|
-
});
|
|
227
|
-
if (!outcome.report) {
|
|
228
|
-
consola.error(outcome.error);
|
|
229
|
-
process.exitCode = 1;
|
|
230
|
-
return;
|
|
231
|
-
}
|
|
232
|
-
const report = outcome.report;
|
|
233
|
-
// (4) Output. --output writes report JSON to a file; --json prints it to
|
|
234
|
-
// stdout; otherwise render the ordered-evidence report for humans.
|
|
235
|
-
if (args.output) {
|
|
236
|
-
const outPath = resolve(args.output);
|
|
237
|
-
await writeFile(outPath, `${JSON.stringify(report, null, 2)}\n`, "utf-8");
|
|
238
|
-
success(`Report written to ${outPath}`);
|
|
239
|
-
}
|
|
240
|
-
if (json) {
|
|
241
|
-
process.stdout.write(`${JSON.stringify(report, null, 2)}\n`);
|
|
242
|
-
return;
|
|
243
|
-
}
|
|
244
|
-
if (!quiet) {
|
|
245
|
-
renderReport(report);
|
|
246
|
-
success(`Report saved to ${join(fileSession.workspacePath(), "report.json")}`);
|
|
245
|
+
finally {
|
|
246
|
+
// The command owns the resolved boundary's lifecycle (ADR-0020) — tear it
|
|
247
|
+
// down whichever way the run exited (report, no-evidence, error, or throw).
|
|
248
|
+
if (selection)
|
|
249
|
+
await selection.sandbox.destroy();
|
|
247
250
|
}
|
|
248
251
|
}
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
if (selection)
|
|
253
|
-
await selection.sandbox.destroy();
|
|
252
|
+
catch (err) {
|
|
253
|
+
consola.error(err instanceof Error ? err.message : String(err));
|
|
254
|
+
process.exit(1);
|
|
254
255
|
}
|
|
255
256
|
},
|
|
256
257
|
});
|
|
@@ -373,8 +374,9 @@ export function resolveSandboxGuard(harness, mode) {
|
|
|
373
374
|
* Render one live-timeline line for a streamed canonical event, or null when the
|
|
374
375
|
* event carries nothing worth a line (an agent_step with neither text nor calls).
|
|
375
376
|
* The terminal `report` event is captured by the caller, not lined here.
|
|
377
|
+
* Exported for the `listen` path, which prints the same timeline per webhook run.
|
|
376
378
|
*/
|
|
377
|
-
function liveTimelineEntry(event) {
|
|
379
|
+
export function liveTimelineEntry(event) {
|
|
378
380
|
switch (event.kind) {
|
|
379
381
|
case "agent_step": {
|
|
380
382
|
const firstLine = event.text.trim().split("\n", 1)[0]?.trim() ?? "";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"investigate.js","sourceRoot":"","sources":["../../../src/cli/investigate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"investigate.js","sourceRoot":"","sources":["../../../src/cli/investigate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { conductRun as engineConductRun } from "@prismalens/engine";
|
|
2
|
+
import type { PlConfig } from "../config/schema.js";
|
|
3
|
+
import { type CapsGate } from "../core/caps.js";
|
|
4
|
+
import { type ListenServer } from "../http/server.js";
|
|
5
|
+
import { resolveRunSandbox as realResolveRunSandbox } from "./investigate.js";
|
|
6
|
+
export interface InvestigationRunnerOptions {
|
|
7
|
+
/** Project dir each run resolves config + repo against. Default: process.cwd(). */
|
|
8
|
+
cwd?: string;
|
|
9
|
+
/** Explicit config file path (else the loader's global→project hierarchy). */
|
|
10
|
+
configPath?: string;
|
|
11
|
+
/** One line per streamed canonical event (the live timeline). */
|
|
12
|
+
log: (line: string) => void;
|
|
13
|
+
}
|
|
14
|
+
import type { ConductedOutcome } from "@prismalens/engine";
|
|
15
|
+
export interface InvestigationRunnerDeps {
|
|
16
|
+
conductRun?: typeof engineConductRun;
|
|
17
|
+
resolveRunSandbox?: typeof realResolveRunSandbox;
|
|
18
|
+
notify?: (webhookUrl: string, alertname: string, outcome: ConductedOutcome) => Promise<void>;
|
|
19
|
+
capsGate?: CapsGate;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Build the per-alert investigation executor the intake server drives — the
|
|
23
|
+
* `handleInvestigate` chain (jsonrpc/server.ts) minus the RPC framing. Rejects
|
|
24
|
+
* on a failed run (the server logs it and keeps serving); the sandbox is
|
|
25
|
+
* CALLER-OWNED and destroyed in `finally` (ADR-0020), matching investigate/serve.
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* Per-payload repo/cwd resolution (issue #58 AC5): the alert's service label
|
|
29
|
+
* (`service`/`namespace`/`job`) → `services[name].repo` → a `repos` entry's
|
|
30
|
+
* `local_path`, else the value itself when it is an existing local checkout.
|
|
31
|
+
* No label / no catalog match / no checkout ⇒ the listen cwd, exactly like a
|
|
32
|
+
* manual `pl investigate` run from that directory (single-player default).
|
|
33
|
+
*/
|
|
34
|
+
export declare function resolveRepoPath(alert: Record<string, unknown>, config: PlConfig): string;
|
|
35
|
+
export declare function createInvestigationRunner(options: InvestigationRunnerOptions, deps?: InvestigationRunnerDeps): (runId: string, alerts: Record<string, unknown>[]) => Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* The command body behind `pl listen`, separated from citty so it's testable:
|
|
38
|
+
* load config, demand a token, start the intake server wired to the real (or
|
|
39
|
+
* injected) investigation chain. Returns the running server (the caller owns
|
|
40
|
+
* `close()`; the CLI just lets it hold the event loop open).
|
|
41
|
+
*/
|
|
42
|
+
export declare function startListenFromConfig(options: InvestigationRunnerOptions, deps?: InvestigationRunnerDeps): Promise<ListenServer>;
|
|
43
|
+
declare const _default: import("citty").CommandDef<{
|
|
44
|
+
readonly config: {
|
|
45
|
+
readonly type: "string";
|
|
46
|
+
readonly description: "Path to prismalens.config.yaml (else global→project hierarchy).";
|
|
47
|
+
};
|
|
48
|
+
}>;
|
|
49
|
+
export default _default;
|
|
50
|
+
//# sourceMappingURL=listen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listen.d.ts","sourceRoot":"","sources":["../../../src/cli/listen.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAIpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACN,KAAK,QAAQ,EAGb,MAAM,iBAAiB,CAAC;AASzB,OAAO,EACN,KAAK,YAAY,EAGjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAEN,iBAAiB,IAAI,qBAAqB,EAC1C,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,0BAA0B;IAC1C,mFAAmF;IACnF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5B;AAED,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAQ3D,MAAM,WAAW,uBAAuB;IACvC,UAAU,CAAC,EAAE,OAAO,gBAAgB,CAAC;IACrC,iBAAiB,CAAC,EAAE,OAAO,qBAAqB,CAAC;IACjD,MAAM,CAAC,EAAE,CACR,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,KACrB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACpB;AAED;;;;;GAKG;AACH;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,EAAE,QAAQ,GACd,MAAM,CAmBR;AAED,wBAAgB,yBAAyB,CACxC,OAAO,EAAE,0BAA0B,EACnC,IAAI,GAAE,uBAA4B,GAChC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CA4KrE;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,0BAA0B,EACnC,IAAI,GAAE,uBAA4B,GAChC,OAAO,CAAC,YAAY,CAAC,CAgEvB;;;;;;;AAED,wBAiCG"}
|