prismalens 0.3.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.
Files changed (118) hide show
  1. package/dist/bin/prismalens.js +39 -50
  2. package/dist/chunk-2Z7QZSIS.js +20 -0
  3. package/dist/chunk-5BT3XQOG.js +2990 -0
  4. package/dist/chunk-6N4PHBII.js +30 -0
  5. package/dist/chunk-CTKCK7QT.js +387 -0
  6. package/dist/chunk-CVSS5JPC.js +130 -0
  7. package/dist/chunk-HPE5CTO4.js +22 -0
  8. package/dist/chunk-PTBCAI34.js +34 -0
  9. package/dist/chunk-PVQVFRIV.js +452 -0
  10. package/dist/chunk-QDK5PAI3.js +155 -0
  11. package/dist/chunk-SSEIMBQ2.js +204 -0
  12. package/dist/chunk-TGP6QTFO.js +156 -0
  13. package/dist/chunk-V6M6ISKI.js +161 -0
  14. package/dist/chunk-XH6DIKTA.js +83 -0
  15. package/dist/src/cli/auth.js +112 -101
  16. package/dist/src/cli/doctor.js +184 -187
  17. package/dist/src/cli/flags.js +6 -32
  18. package/dist/src/cli/grouping.js +16 -227
  19. package/dist/src/cli/init.js +54 -48
  20. package/dist/src/cli/investigate.js +23 -465
  21. package/dist/src/cli/listen.js +550 -286
  22. package/dist/src/cli/report.js +70 -67
  23. package/dist/src/cli/serve.js +260 -30
  24. package/dist/src/cli/status.js +87 -86
  25. package/package.json +16 -7
  26. package/dist/bin/prismalens.d.ts +0 -3
  27. package/dist/bin/prismalens.d.ts.map +0 -1
  28. package/dist/bin/prismalens.js.map +0 -1
  29. package/dist/src/cli/auth.d.ts +0 -3
  30. package/dist/src/cli/auth.d.ts.map +0 -1
  31. package/dist/src/cli/auth.js.map +0 -1
  32. package/dist/src/cli/doctor.d.ts +0 -18
  33. package/dist/src/cli/doctor.d.ts.map +0 -1
  34. package/dist/src/cli/doctor.js.map +0 -1
  35. package/dist/src/cli/flags.d.ts +0 -2
  36. package/dist/src/cli/flags.d.ts.map +0 -1
  37. package/dist/src/cli/flags.js.map +0 -1
  38. package/dist/src/cli/grouping.d.ts +0 -18
  39. package/dist/src/cli/grouping.d.ts.map +0 -1
  40. package/dist/src/cli/grouping.js.map +0 -1
  41. package/dist/src/cli/init.d.ts +0 -3
  42. package/dist/src/cli/init.d.ts.map +0 -1
  43. package/dist/src/cli/init.js.map +0 -1
  44. package/dist/src/cli/investigate.d.ts +0 -115
  45. package/dist/src/cli/investigate.d.ts.map +0 -1
  46. package/dist/src/cli/investigate.js.map +0 -1
  47. package/dist/src/cli/listen.d.ts +0 -56
  48. package/dist/src/cli/listen.d.ts.map +0 -1
  49. package/dist/src/cli/listen.js.map +0 -1
  50. package/dist/src/cli/report.d.ts +0 -24
  51. package/dist/src/cli/report.d.ts.map +0 -1
  52. package/dist/src/cli/report.js.map +0 -1
  53. package/dist/src/cli/serve.d.ts +0 -3
  54. package/dist/src/cli/serve.d.ts.map +0 -1
  55. package/dist/src/cli/serve.js.map +0 -1
  56. package/dist/src/cli/status.d.ts +0 -19
  57. package/dist/src/cli/status.d.ts.map +0 -1
  58. package/dist/src/cli/status.js.map +0 -1
  59. package/dist/src/config/loader.d.ts +0 -22
  60. package/dist/src/config/loader.d.ts.map +0 -1
  61. package/dist/src/config/loader.js +0 -195
  62. package/dist/src/config/loader.js.map +0 -1
  63. package/dist/src/config/schema.d.ts +0 -465
  64. package/dist/src/config/schema.d.ts.map +0 -1
  65. package/dist/src/config/schema.js +0 -219
  66. package/dist/src/config/schema.js.map +0 -1
  67. package/dist/src/core/caps.d.ts +0 -36
  68. package/dist/src/core/caps.d.ts.map +0 -1
  69. package/dist/src/core/caps.js +0 -36
  70. package/dist/src/core/caps.js.map +0 -1
  71. package/dist/src/core/db.d.ts +0 -3
  72. package/dist/src/core/db.d.ts.map +0 -1
  73. package/dist/src/core/db.js +0 -105
  74. package/dist/src/core/db.js.map +0 -1
  75. package/dist/src/core/detect-repo.d.ts +0 -4
  76. package/dist/src/core/detect-repo.d.ts.map +0 -1
  77. package/dist/src/core/detect-repo.js +0 -28
  78. package/dist/src/core/detect-repo.js.map +0 -1
  79. package/dist/src/core/file-session-store.d.ts +0 -10
  80. package/dist/src/core/file-session-store.d.ts.map +0 -1
  81. package/dist/src/core/file-session-store.js +0 -34
  82. package/dist/src/core/file-session-store.js.map +0 -1
  83. package/dist/src/core/parse-stdin.d.ts +0 -2
  84. package/dist/src/core/parse-stdin.d.ts.map +0 -1
  85. package/dist/src/core/parse-stdin.js +0 -21
  86. package/dist/src/core/parse-stdin.js.map +0 -1
  87. package/dist/src/core/run-investigation.d.ts +0 -54
  88. package/dist/src/core/run-investigation.d.ts.map +0 -1
  89. package/dist/src/core/run-investigation.js +0 -202
  90. package/dist/src/core/run-investigation.js.map +0 -1
  91. package/dist/src/core/session.d.ts +0 -63
  92. package/dist/src/core/session.d.ts.map +0 -1
  93. package/dist/src/core/session.js +0 -45
  94. package/dist/src/core/session.js.map +0 -1
  95. package/dist/src/core/slack-notify.d.ts +0 -9
  96. package/dist/src/core/slack-notify.d.ts.map +0 -1
  97. package/dist/src/core/slack-notify.js +0 -57
  98. package/dist/src/core/slack-notify.js.map +0 -1
  99. package/dist/src/core/sqlite-session-store.d.ts +0 -39
  100. package/dist/src/core/sqlite-session-store.d.ts.map +0 -1
  101. package/dist/src/core/sqlite-session-store.js +0 -239
  102. package/dist/src/core/sqlite-session-store.js.map +0 -1
  103. package/dist/src/http/server.d.ts +0 -31
  104. package/dist/src/http/server.d.ts.map +0 -1
  105. package/dist/src/http/server.js +0 -164
  106. package/dist/src/http/server.js.map +0 -1
  107. package/dist/src/jsonrpc/server.d.ts +0 -44
  108. package/dist/src/jsonrpc/server.d.ts.map +0 -1
  109. package/dist/src/jsonrpc/server.js +0 -267
  110. package/dist/src/jsonrpc/server.js.map +0 -1
  111. package/dist/src/jsonrpc/types.d.ts +0 -12
  112. package/dist/src/jsonrpc/types.d.ts.map +0 -1
  113. package/dist/src/jsonrpc/types.js +0 -4
  114. package/dist/src/jsonrpc/types.js.map +0 -1
  115. package/dist/src/version.d.ts +0 -8
  116. package/dist/src/version.d.ts.map +0 -1
  117. package/dist/src/version.js +0 -27
  118. package/dist/src/version.js.map +0 -1
@@ -1,267 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- // Copyright 2026 Sumit Patel
3
- /**
4
- * JSON-RPC 2.0 server over stdio (newline-delimited JSON) — the LIVE channel for
5
- * the desktop app / API (ADR-0007/0010). This REPLACES file-read as the live
6
- * channel; the ~/.prismalens workspace stays the durable record (events.jsonl +
7
- * report.json), written exactly as the `investigate` command writes it.
8
- *
9
- * Wire framing: one JSON value per line in BOTH directions — requests on stdin,
10
- * responses + notifications on stdout.
11
- *
12
- * Methods:
13
- * - initialize -> { protocolVersion, serverInfo: { name, version } }
14
- * - investigate -> drives the shared conductor (`conductRun`, ADR-0018), emitting
15
- * an `investigate/event` NOTIFICATION per canonical event, then resolving with
16
- * { runId, report }. A no-evidence run resolves to a JSON-RPC error (-32000).
17
- *
18
- * Robustness: a malformed or failed request becomes a JSON-RPC error response —
19
- * the server never crashes on bad input.
20
- */
21
- import { randomUUID } from "node:crypto";
22
- import { resolve } from "node:path";
23
- import { createInterface } from "node:readline";
24
- import { conductRun, SANDBOX_MODES, } from "@prismalens/engine";
25
- import { JSONRPCErrorException, JSONRPCServer, } from "json-rpc-2.0";
26
- import { resolveRunSandbox } from "../cli/investigate.js";
27
- import { loadConfig } from "../config/loader.js";
28
- import { resolveRepoSlug } from "../core/detect-repo.js";
29
- import { createFileSessionStore } from "../core/file-session-store.js";
30
- import { resolveInvestigation, } from "../core/run-investigation.js";
31
- import { createSessionManager } from "../core/session.js";
32
- const PROTOCOL_VERSION = 1;
33
- // JSON-RPC 2.0 error codes (spec-reserved range + one server-defined code).
34
- const PARSE_ERROR = -32700;
35
- const INVALID_PARAMS = -32602;
36
- const INTERNAL_ERROR = -32603;
37
- /** No evidence gathered — the harness branch failed (mirrors the engine guard). */
38
- const NO_EVIDENCE = -32000;
39
- // ---------------------------------------------------------------------------
40
- // Param parsing (typesafe — no `as any`)
41
- // ---------------------------------------------------------------------------
42
- function isRecord(x) {
43
- return x !== null && typeof x === "object" && !Array.isArray(x);
44
- }
45
- function str(x) {
46
- return typeof x === "string" ? x : undefined;
47
- }
48
- /**
49
- * Coerce raw RPC params into the typed investigate shape. Unknown fields are
50
- * dropped; a SUPPLIED `sandbox`/`maxTurns` that is malformed (wrong type, not a
51
- * sandbox mode, non-positive-integer) THROWS `-32602` — absent is fine, invalid
52
- * is never silently swallowed (the silent-accept antipattern the #148 audit flags).
53
- */
54
- export function parseInvestigateParams(raw) {
55
- const p = isRecord(raw) ? raw : {};
56
- const out = {};
57
- if (isRecord(p.alert))
58
- out.alert = p.alert;
59
- const query = str(p.query);
60
- if (query)
61
- out.query = query;
62
- const repo = str(p.repo);
63
- if (repo)
64
- out.repo = repo;
65
- const harness = str(p.harness);
66
- if (harness)
67
- out.harness = harness;
68
- const model = str(p.model);
69
- if (model)
70
- out.model = model;
71
- const config = str(p.config);
72
- if (config)
73
- out.config = config;
74
- const service = str(p.service);
75
- if (service)
76
- out.service = service;
77
- const mode = str(p.mode);
78
- if (mode)
79
- out.mode = mode;
80
- if (typeof p.dangerouslySkipPermissions === "boolean") {
81
- out.dangerouslySkipPermissions = p.dangerouslySkipPermissions;
82
- }
83
- if (p.sandbox !== undefined) {
84
- const sandbox = str(p.sandbox);
85
- if (!sandbox || !SANDBOX_MODES.includes(sandbox)) {
86
- throw new JSONRPCErrorException(`Invalid sandbox mode ${JSON.stringify(p.sandbox)}. Expected one of: ${SANDBOX_MODES.join(", ")}.`, INVALID_PARAMS);
87
- }
88
- out.sandbox = sandbox;
89
- }
90
- if (p.maxTurns !== undefined) {
91
- if (typeof p.maxTurns !== "number" ||
92
- !Number.isInteger(p.maxTurns) ||
93
- p.maxTurns <= 0) {
94
- throw new JSONRPCErrorException(`Invalid maxTurns ${JSON.stringify(p.maxTurns)}. Expected a positive integer.`, INVALID_PARAMS);
95
- }
96
- out.maxTurns = p.maxTurns;
97
- }
98
- return out;
99
- }
100
- // ---------------------------------------------------------------------------
101
- // Server
102
- // ---------------------------------------------------------------------------
103
- /**
104
- * Run the JSON-RPC server until the input stream closes. Reads requests
105
- * line-by-line, dispatches by method, and writes responses/notifications back as
106
- * newline-delimited JSON. Resolves when stdin ends.
107
- */
108
- export async function runJsonRpcServer(options) {
109
- const input = options.input ?? process.stdin;
110
- const output = options.output ?? process.stdout;
111
- const write = (message) => {
112
- output.write(`${JSON.stringify(message)}\n`);
113
- };
114
- const notify = (method, params) => {
115
- write({ jsonrpc: "2.0", method, params });
116
- };
117
- // --- methods ---
118
- const handleInitialize = () => ({
119
- protocolVersion: PROTOCOL_VERSION,
120
- serverInfo: { name: "prismalens", version: options.version },
121
- });
122
- const handleInvestigate = async (rawParams) => {
123
- const params = parseInvestigateParams(rawParams);
124
- // cwd = --repo (a local repo path) else the current directory. Merge config
125
- // (global -> project -> --model), mirroring the `investigate` command.
126
- const cwd = params.repo ? resolve(params.repo) : process.cwd();
127
- const config = await loadConfig({
128
- ...(params.config ? { configPath: params.config } : {}),
129
- cwd,
130
- cliOverrides: { ...(params.model ? { model: params.model } : {}) },
131
- });
132
- // The single posture dial (ADR-0017): dangerouslySkipPermissions wins over
133
- // mode, aliasing straight to "dangerous".
134
- const permissionMode = params.dangerouslySkipPermissions
135
- ? "dangerous"
136
- : params.mode;
137
- // Resolve the isolation boundary (ADR-0020): the RPC `sandbox` param wins over
138
- // `agent.sandbox` — the CLI's `--sandbox` parity. The serve path must NOT silently
139
- // drop to the cooperative floor when config/params ask for enforcement (ADR-0017).
140
- // An explicit srt/e2b that cannot arm (or is asked of a non-ACP harness) becomes a
141
- // JSON-RPC error; `auto` degrades honestly, its requested-vs-actual pair threaded
142
- // into the run fidelity below. The boundary is CALLER-OWNED — torn down in the finally.
143
- const harnessName = params.harness ?? config.agent.default;
144
- const sandboxMode = params.sandbox ?? config.agent.sandbox;
145
- let selection;
146
- try {
147
- selection = (await resolveRunSandbox(harnessName, sandboxMode, config))
148
- .selection;
149
- }
150
- catch (err) {
151
- throw new JSONRPCErrorException(err instanceof Error ? err.message : String(err), INVALID_PARAMS);
152
- }
153
- try {
154
- let resolved;
155
- try {
156
- resolved = resolveInvestigation({
157
- ...(params.alert ? { alert: params.alert } : {}),
158
- ...(params.query ? { query: params.query } : {}),
159
- ...(params.repo ? { repo: params.repo } : {}),
160
- ...(params.harness ? { harness: params.harness } : {}),
161
- ...(params.service ? { service: params.service } : {}),
162
- ...(permissionMode ? { permissionMode } : {}),
163
- ...(selection
164
- ? {
165
- sandbox: selection.sandbox,
166
- requestedSandbox: selection.requested,
167
- }
168
- : {}),
169
- ...(params.maxTurns ? { maxTurns: params.maxTurns } : {}),
170
- }, config);
171
- }
172
- catch (err) {
173
- throw new JSONRPCErrorException(err instanceof Error ? err.message : String(err), INVALID_PARAMS);
174
- }
175
- const { context, harness, synth, harnessName, fidelity, maxBranches } = resolved;
176
- const primaryAlert = context.alerts[0];
177
- // Persist to the session workspace exactly as the investigate command does,
178
- // wrapped as a conductRun store adapter (ADR-0018).
179
- const runId = randomUUID();
180
- const repoSlug = await resolveRepoSlug(config.repo, cwd);
181
- const sessions = createSessionManager(config.workspace.dir);
182
- const fileSession = createFileSessionStore(sessions, {
183
- runId,
184
- alertname: primaryAlert.alertname,
185
- agent: harnessName,
186
- ...(repoSlug ? { repo: repoSlug } : {}),
187
- });
188
- // Drive the supervisor LIVE via the shared conductor: emit each canonical
189
- // event as an `investigate/event` notification; conductRun owns persistence
190
- // + the terminal report/no-evidence/error outcome.
191
- const outcome = await conductRun({
192
- context,
193
- harness,
194
- synth,
195
- fidelity,
196
- runId,
197
- ...(maxBranches !== undefined ? { maxBranches } : {}),
198
- }, {
199
- sink: (event) => {
200
- notify("investigate/event", { runId, event });
201
- },
202
- store: fileSession.store,
203
- });
204
- if (!outcome.report) {
205
- throw new JSONRPCErrorException(outcome.error ?? "investigation produced no evidence", outcome.failureKind === "no-evidence" ? NO_EVIDENCE : INTERNAL_ERROR, { runId });
206
- }
207
- return { runId: outcome.runId, report: outcome.report };
208
- }
209
- finally {
210
- // The serve path owns the resolved boundary's lifecycle (ADR-0020) — tear it
211
- // down whichever way the run exited (report, no-evidence, error, or throw).
212
- if (selection)
213
- await selection.sandbox.destroy();
214
- }
215
- };
216
- const server = new JSONRPCServer();
217
- server.addMethod("initialize", () => handleInitialize());
218
- server.addMethod("investigate", (params) => handleInvestigate(params));
219
- server.mapErrorToJSONRPCErrorResponse = (id, error) => {
220
- if (error instanceof JSONRPCErrorException) {
221
- return {
222
- jsonrpc: "2.0",
223
- id,
224
- error: {
225
- code: error.code,
226
- message: error.message,
227
- ...(error.data !== undefined ? { data: error.data } : {}),
228
- },
229
- };
230
- }
231
- return {
232
- jsonrpc: "2.0",
233
- id,
234
- error: {
235
- code: INTERNAL_ERROR,
236
- message: error instanceof Error ? error.message : String(error),
237
- },
238
- };
239
- };
240
- const handleLine = (line) => {
241
- const trimmed = line.trim();
242
- if (!trimmed)
243
- return;
244
- let parsed;
245
- try {
246
- parsed = JSON.parse(trimmed);
247
- }
248
- catch {
249
- write({
250
- jsonrpc: "2.0",
251
- id: null,
252
- error: { code: PARSE_ERROR, message: "Parse error: invalid JSON" },
253
- });
254
- return;
255
- }
256
- void server.receive(parsed).then((response) => {
257
- if (response)
258
- write(response);
259
- });
260
- };
261
- const rl = createInterface({ input, crlfDelay: Number.POSITIVE_INFINITY });
262
- rl.on("line", handleLine);
263
- await new Promise((resolveClose) => {
264
- rl.on("close", () => resolveClose());
265
- });
266
- }
267
- //# sourceMappingURL=server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/jsonrpc/server.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,6BAA6B;AAE7B;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,EACN,UAAU,EACV,aAAa,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACN,qBAAqB,EAGrB,aAAa,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAEN,oBAAoB,GACpB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAE3B,4EAA4E;AAC5E,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC;AAC3B,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC;AAC9B,MAAM,cAAc,GAAG,CAAC,KAAK,CAAC;AAC9B,mFAAmF;AACnF,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC;AAW3B,8EAA8E;AAC9E,yCAAyC;AACzC,8EAA8E;AAE9E,SAAS,QAAQ,CAAC,CAAU;IAC3B,OAAO,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,GAAG,CAAC,CAAU;IACtB,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAwBD;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAY;IAClD,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;QAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,KAAK;QAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;IAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,IAAI,IAAI;QAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,OAAO;QAAE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACnC,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3B,IAAI,KAAK;QAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;IAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC7B,IAAI,MAAM;QAAE,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;IAChC,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,OAAO;QAAE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACnC,MAAM,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACzB,IAAI,IAAI;QAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAC1B,IAAI,OAAO,CAAC,CAAC,0BAA0B,KAAK,SAAS,EAAE,CAAC;QACvD,GAAG,CAAC,0BAA0B,GAAG,CAAC,CAAC,0BAA0B,CAAC;IAC/D,CAAC;IACD,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAsB,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,qBAAqB,CAC9B,wBAAwB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,sBAAsB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAClG,cAAc,CACd,CAAC;QACH,CAAC;QACD,GAAG,CAAC,OAAO,GAAG,OAAsB,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC9B,IACC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;YAC9B,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC7B,CAAC,CAAC,QAAQ,IAAI,CAAC,EACd,CAAC;YACF,MAAM,IAAI,qBAAqB,CAC9B,oBAAoB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,EAC9E,cAAc,CACd,CAAC;QACH,CAAC;QACD,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;IAC3B,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC;AAED,8EAA8E;AAC9E,SAAS;AACT,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,OAA6B;IAE7B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC;IAEhD,MAAM,KAAK,GAAG,CAAC,OAA8C,EAAQ,EAAE;QACtE,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,MAAe,EAAQ,EAAE;QACxD,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,kBAAkB;IAElB,MAAM,gBAAgB,GAAG,GAAY,EAAE,CAAC,CAAC;QACxC,eAAe,EAAE,gBAAgB;QACjC,UAAU,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE;KAC5D,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,KAAK,EAAE,SAAkB,EAAoB,EAAE;QACxE,MAAM,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAEjD,4EAA4E;QAC5E,uEAAuE;QACvE,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;YAC/B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG;YACH,YAAY,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;SAClE,CAAC,CAAC;QAEH,2EAA2E;QAC3E,0CAA0C;QAC1C,MAAM,cAAc,GAAG,MAAM,CAAC,0BAA0B;YACvD,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;QAEf,+EAA+E;QAC/E,mFAAmF;QACnF,mFAAmF;QACnF,mFAAmF;QACnF,kFAAkF;QAClF,wFAAwF;QACxF,MAAM,WAAW,GACf,MAAM,CAAC,OAAiC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QACnE,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAC3D,IAAI,SAAkC,CAAC;QACvC,IAAI,CAAC;YACJ,SAAS,GAAG,CAAC,MAAM,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;iBACrE,SAAS,CAAC;QACb,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACd,MAAM,IAAI,qBAAqB,CAC9B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAChD,cAAc,CACd,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACJ,IAAI,QAA+B,CAAC;YACpC,IAAI,CAAC;gBACJ,QAAQ,GAAG,oBAAoB,CAC9B;oBACC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChD,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7C,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtD,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtD,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC7C,GAAG,CAAC,SAAS;wBACZ,CAAC,CAAC;4BACA,OAAO,EAAE,SAAS,CAAC,OAAO;4BAC1B,gBAAgB,EAAE,SAAS,CAAC,SAAS;yBACrC;wBACF,CAAC,CAAC,EAAE,CAAC;oBACN,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzD,EACD,MAAM,CACN,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,MAAM,IAAI,qBAAqB,CAC9B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAChD,cAAc,CACd,CAAC;YACH,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,GACpE,QAAQ,CAAC;YACV,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAEvC,4EAA4E;YAC5E,oDAAoD;YACpD,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACzD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC5D,MAAM,WAAW,GAAG,sBAAsB,CAAC,QAAQ,EAAE;gBACpD,KAAK;gBACL,SAAS,EAAE,YAAY,CAAC,SAAS;gBACjC,KAAK,EAAE,WAAW;gBAClB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvC,CAAC,CAAC;YAEH,0EAA0E;YAC1E,4EAA4E;YAC5E,mDAAmD;YACnD,MAAM,OAAO,GAAG,MAAM,UAAU,CAC/B;gBACC,OAAO;gBACP,OAAO;gBACP,KAAK;gBACL,QAAQ;gBACR,KAAK;gBACL,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrD,EACD;gBACC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;oBACf,MAAM,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBACD,KAAK,EAAE,WAAW,CAAC,KAAK;aACxB,CACD,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACrB,MAAM,IAAI,qBAAqB,CAC9B,OAAO,CAAC,KAAK,IAAI,oCAAoC,EACrD,OAAO,CAAC,WAAW,KAAK,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,EACpE,EAAE,KAAK,EAAE,CACT,CAAC;YACH,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACzD,CAAC;gBAAS,CAAC;YACV,6EAA6E;YAC7E,4EAA4E;YAC5E,IAAI,SAAS;gBAAE,MAAM,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAClD,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;IACnC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACzD,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,MAAe,EAAE,EAAE,CACnD,iBAAiB,CAAC,MAAM,CAAC,CACzB,CAAC;IACF,MAAM,CAAC,8BAA8B,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;QACrD,IAAI,KAAK,YAAY,qBAAqB,EAAE,CAAC;YAC5C,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,EAAE;gBACF,KAAK,EAAE;oBACN,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzD;aACD,CAAC;QACH,CAAC;QACD,OAAO;YACN,OAAO,EAAE,KAAK;YACd,EAAE;YACF,KAAK,EAAE;gBACN,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC/D;SACD,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAQ,EAAE;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,MAAe,CAAC;QACpB,IAAI,CAAC;YACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACR,KAAK,CAAC;gBACL,OAAO,EAAE,KAAK;gBACd,EAAE,EAAE,IAAI;gBACR,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,2BAA2B,EAAE;aAClE,CAAC,CAAC;YACH,OAAO;QACR,CAAC;QACD,KAAK,MAAM,CAAC,OAAO,CAAC,MAAwB,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC/D,IAAI,QAAQ;gBAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,EAAE,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC3E,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1B,MAAM,IAAI,OAAO,CAAO,CAAC,YAAY,EAAE,EAAE;QACxC,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * JSON-RPC 2.0 wire types — the newline-delimited JSON framing shared over stdio:
3
- * one JSON value per line in both directions. Requests and responses now come
4
- * from json-rpc-2.0; only the outbound notification (which the library does not
5
- * model) stays hand-framed here.
6
- */
7
- export interface JsonRpcNotification {
8
- jsonrpc: "2.0";
9
- method: string;
10
- params: unknown;
11
- }
12
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/jsonrpc/types.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CAChB"}
@@ -1,4 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- // Copyright 2026 Sumit Patel
3
- export {};
4
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/jsonrpc/types.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,6BAA6B"}
@@ -1,8 +0,0 @@
1
- /**
2
- * The package version, read from package.json at runtime so the number lives
3
- * in exactly one place (bumped by changesets). Walks up from this file until
4
- * the CLI's own package.json is found — the depth differs between dev
5
- * (src/version.ts via tsx) and the build (dist/src/version.js).
6
- */
7
- export declare function cliVersion(): string;
8
- //# sourceMappingURL=version.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAcnC"}
@@ -1,27 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- // Copyright 2026 Sumit Patel
3
- import { readFileSync } from "node:fs";
4
- import { dirname, join } from "node:path";
5
- import { fileURLToPath } from "node:url";
6
- /**
7
- * The package version, read from package.json at runtime so the number lives
8
- * in exactly one place (bumped by changesets). Walks up from this file until
9
- * the CLI's own package.json is found — the depth differs between dev
10
- * (src/version.ts via tsx) and the build (dist/src/version.js).
11
- */
12
- export function cliVersion() {
13
- let dir = dirname(fileURLToPath(import.meta.url));
14
- for (let i = 0; i < 4; i++) {
15
- try {
16
- const pkg = JSON.parse(readFileSync(join(dir, "package.json"), "utf8"));
17
- if (pkg.name === "prismalens" && pkg.version)
18
- return pkg.version;
19
- }
20
- catch {
21
- // not here — keep walking up
22
- }
23
- dir = dirname(dir);
24
- }
25
- return "0.0.0";
26
- }
27
- //# sourceMappingURL=version.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,6BAA6B;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,UAAU,UAAU;IACzB,IAAI,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACrB,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CACR,CAAC;YACzC,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,OAAO;gBAAE,OAAO,GAAG,CAAC,OAAO,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC;YACR,6BAA6B;QAC9B,CAAC;QACD,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,OAAO,CAAC;AAChB,CAAC"}