failproofai 0.0.15 → 1.0.0-beta.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/.next/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/build-manifest.json +3 -3
- package/.next/standalone/.next/prerender-manifest.json +3 -3
- package/.next/standalone/.next/required-server-files.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_global-error.html +1 -1
- package/.next/standalone/.next/server/app/_global-error.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/.next/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +14 -14
- package/.next/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +9 -9
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/api/audit/invite/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/audit/run/route.js +1 -1
- package/.next/standalone/.next/server/app/api/audit/run/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/login-request/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/login-verify/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/reminder/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/auth/status/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/download/[project]/[session]/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/audit/page/server-reference-manifest.json +2 -2
- package/.next/standalone/.next/server/app/audit/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/audit/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +14 -14
- package/.next/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/standalone/.next/server/app/index.segments/_full.segment.rsc +14 -14
- package/.next/standalone/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/standalone/.next/server/app/index.segments/_index.segment.rsc +9 -9
- package/.next/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/standalone/.next/server/app/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/policies/page/server-reference-manifest.json +9 -9
- package/.next/standalone/.next/server/app/policies/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/policies/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/react-loadable-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page/server-reference-manifest.json +2 -2
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/project/[name]/session/[sessionId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects/page/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/server/app/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__0id_xf7._.js +3 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__19120tr._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1fwl2mz._.js +1 -1
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1myjm-d._.js +1 -1
- package/.next/standalone/.next/server/chunks/node_modules_next_dist_esm_build_templates_app-route_17k9e3w.js +4 -4
- package/.next/standalone/.next/server/chunks/package_json_[json]_cjs_1nxcc4v._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0114ewg._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/{[root-of-the-server]__06b4trb._.js → [root-of-the-server]__0259h38._.js} +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__02r5bgf._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0e8sjqm._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0lkzqax._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0qucxyj._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0u02miy._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__170799-._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1ath6v_._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1zj-87g._.js +3 -0
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__1zqz4v8._.js +2 -2
- package/.next/standalone/.next/server/chunks/ssr/app_audit__components_audit-dashboard_tsx_0p9ud47._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_global-error_tsx_1kp6l3x._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/app_policies_hooks-client_tsx_19dqvpc._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/{node_modules_html-to-image_es_index_0hs_5mh.js → node_modules_html-to-image_es_index_1-upb14.js} +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_hooks_1ezd2jf._.js +1 -1
- package/.next/standalone/.next/server/chunks/ssr/src_hooks_1tnuifj._.js +1 -1
- package/.next/standalone/.next/server/middleware-build-manifest.js +3 -3
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +11 -11
- package/.next/standalone/.next/static/chunks/{1_v8b8mxhk25s.js → 0ip1n8xmgxarv.js} +1 -1
- package/.next/standalone/.next/static/chunks/{33rm-y-i4uzvv.js → 0u9hc6oxx-gpj.js} +1 -1
- package/.next/standalone/.next/static/chunks/{11qhtpk2cvoxv.js → 1d6ncspjagm53.js} +1 -1
- package/.next/standalone/.next/static/chunks/{2f4mxqkkoa_7d.js → 1grd7y94-igz9.js} +1 -1
- package/.next/standalone/.next/static/chunks/{3m8wmvlhsy1mx.js → 1s-_swlc80y43.js} +1 -1
- package/.next/standalone/.next/static/chunks/{0kf9j0pf_j9-0.js → 29k6ef49zppxj.js} +1 -1
- package/.next/standalone/.next/static/chunks/{2h7vw-ojgr9fz.js → 29ydr-8q0zis6.js} +1 -1
- package/.next/standalone/.next/static/chunks/{1-ng45379-ztb.js → 2vr7aazw6k2-n.js} +1 -1
- package/.next/standalone/.next/static/chunks/{2geh8s7d3ead-.js → 3wrgbih-516uj.js} +1 -1
- package/.next/standalone/Cargo.lock +428 -0
- package/.next/standalone/Cargo.toml +9 -0
- package/.next/standalone/crates/PROTOCOL.md +122 -0
- package/.next/standalone/crates/failproofaid/Cargo.toml +18 -0
- package/.next/standalone/crates/failproofaid/src/lock.rs +81 -0
- package/.next/standalone/crates/failproofaid/src/main.rs +83 -0
- package/.next/standalone/crates/failproofaid/src/paths.rs +172 -0
- package/.next/standalone/crates/failproofaid/src/server.rs +502 -0
- package/.next/standalone/crates/failproofaid/src/worker.rs +400 -0
- package/.next/standalone/crates/failproofaid/tests/daemon_e2e.rs +241 -0
- package/.next/standalone/crates/fpai-ipc/Cargo.toml +16 -0
- package/.next/standalone/crates/fpai-ipc/src/envelope.rs +175 -0
- package/.next/standalone/crates/fpai-ipc/src/framing.rs +177 -0
- package/.next/standalone/crates/fpai-ipc/src/lib.rs +10 -0
- package/.next/standalone/crates/fpai-ipc/src/peer.rs +80 -0
- package/.next/standalone/package.json +5 -3
- package/.next/standalone/rust-toolchain.toml +4 -0
- package/.next/standalone/server.js +1 -1
- package/bin/failproofai-worker.mjs +51 -0
- package/bin/failproofai.mjs +68 -1
- package/bin/failproofaid-shim.mjs +67 -0
- package/dist/cli.mjs +1202 -624
- package/dist/worker.mjs +8441 -0
- package/package.json +5 -3
- package/src/hooks/builtin-policies.ts +37 -13
- package/src/hooks/configure-wizard.ts +73 -1
- package/src/hooks/daemon-client.ts +199 -0
- package/src/hooks/daemon-download.ts +152 -0
- package/src/hooks/daemon-service.ts +449 -0
- package/src/hooks/handler.ts +231 -195
- package/src/hooks/normalize-cli-payload.ts +61 -0
- package/src/hooks/policy-types.ts +15 -0
- package/src/hooks/read-stdin.ts +48 -0
- package/src/hooks/worker-server.ts +154 -0
- package/.next/standalone/.next/server/chunks/[root-of-the-server]__1is3glr._.js +0 -3
- package/.next/standalone/.next/server/chunks/ssr/[root-of-the-server]__0fopait._.js +0 -3
- /package/.next/standalone/.next/static/{ePKMmXXfXxThNsxwv1EiF → 7Lxtd352rSaHB-pmm6G8M}/_buildManifest.js +0 -0
- /package/.next/standalone/.next/static/{ePKMmXXfXxThNsxwv1EiF → 7Lxtd352rSaHB-pmm6G8M}/_clientMiddlewareManifest.js +0 -0
- /package/.next/standalone/.next/static/{ePKMmXXfXxThNsxwv1EiF → 7Lxtd352rSaHB-pmm6G8M}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The warm worker's own server loop — what `failproofaid` (the Rust
|
|
3
|
+
* supervisor) actually spawns and talks to.
|
|
4
|
+
*
|
|
5
|
+
* Listens on a SECOND Unix socket, distinct from the daemon's client-facing
|
|
6
|
+
* one (`daemon-client.ts`'s target) — the Rust process is the only ever
|
|
7
|
+
* client of this socket. Deliberately not stdio-framed JSON-RPC: this
|
|
8
|
+
* process's real stdout/stderr stay ordinary process logs, fully decoupled
|
|
9
|
+
* from the request/response protocol. A stray `console.log` from a user's
|
|
10
|
+
* custom policy file only pollutes a log line here, never desyncs a shared
|
|
11
|
+
* framed channel every in-flight and future request depends on.
|
|
12
|
+
*
|
|
13
|
+
* Requests are processed strictly one at a time (an async queue below), not
|
|
14
|
+
* concurrently, even though multiple connections can be accepted at once —
|
|
15
|
+
* `policy-registry.ts`/`custom-hooks-registry.ts` are `globalThis`-scoped
|
|
16
|
+
* singletons (`clearPolicies()` + register + evaluate), and two interleaved
|
|
17
|
+
* evaluations could have request B's `clearPolicies()` wipe request A's
|
|
18
|
+
* in-flight registration. Serializing keeps the existing registry code
|
|
19
|
+
* correct with zero changes; a worker_threads/process pool is a valid
|
|
20
|
+
* future enhancement if this becomes a real throughput bottleneck.
|
|
21
|
+
*/
|
|
22
|
+
import { createServer, type Server, type Socket } from "node:net";
|
|
23
|
+
import { existsSync, unlinkSync } from "node:fs";
|
|
24
|
+
import { evaluateHookEvent } from "./handler";
|
|
25
|
+
import type { IntegrationType } from "./types";
|
|
26
|
+
import { hookLogWarn } from "./hook-logger";
|
|
27
|
+
|
|
28
|
+
const MAX_FRAME_LEN = 16 * 1024 * 1024;
|
|
29
|
+
|
|
30
|
+
interface WorkerHookRequest {
|
|
31
|
+
type: "hook";
|
|
32
|
+
hookEvent: string;
|
|
33
|
+
cli: IntegrationType;
|
|
34
|
+
stdin: string;
|
|
35
|
+
cwd?: string;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function isWorkerHookRequest(msg: unknown): msg is WorkerHookRequest {
|
|
39
|
+
if (!msg || typeof msg !== "object") return false;
|
|
40
|
+
const m = msg as Record<string, unknown>;
|
|
41
|
+
return (
|
|
42
|
+
m.type === "hook" &&
|
|
43
|
+
typeof m.hookEvent === "string" &&
|
|
44
|
+
typeof m.cli === "string" &&
|
|
45
|
+
typeof m.stdin === "string" &&
|
|
46
|
+
(m.cwd === undefined || typeof m.cwd === "string")
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function encodeFrame(value: unknown): Buffer {
|
|
51
|
+
const body = Buffer.from(JSON.stringify(value), "utf8");
|
|
52
|
+
const header = Buffer.alloc(4);
|
|
53
|
+
header.writeUInt32BE(body.length, 0);
|
|
54
|
+
return Buffer.concat([header, body]);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Serializes every request across every connection through one chain, so
|
|
59
|
+
* `evaluateHookEvent` calls never overlap. `.catch()` on each link keeps the
|
|
60
|
+
* chain alive even if a handler throws unexpectedly — one bad request must
|
|
61
|
+
* never wedge every request queued behind it.
|
|
62
|
+
*/
|
|
63
|
+
let processingChain: Promise<void> = Promise.resolve();
|
|
64
|
+
function enqueue(task: () => Promise<void>): void {
|
|
65
|
+
processingChain = processingChain.then(task).catch(() => {});
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function handleConnection(socket: Socket): void {
|
|
69
|
+
let recvBuf = Buffer.alloc(0);
|
|
70
|
+
let declaredLen: number | null = null;
|
|
71
|
+
|
|
72
|
+
socket.on("data", (chunk: Buffer) => {
|
|
73
|
+
recvBuf = Buffer.concat([recvBuf, chunk]);
|
|
74
|
+
|
|
75
|
+
// Drain every *complete* frame this read made available, not just the
|
|
76
|
+
// first. Two requests written back-to-back on one persistent connection
|
|
77
|
+
// routinely coalesce into a single `data` event; decoding one and
|
|
78
|
+
// leaving the rest in `recvBuf` would strand the second request until
|
|
79
|
+
// some later write happened to arrive, and the caller would meanwhile
|
|
80
|
+
// hit its own fail-closed timeout on a daemon that was working fine.
|
|
81
|
+
for (;;) {
|
|
82
|
+
if (declaredLen === null) {
|
|
83
|
+
if (recvBuf.length < 4) return;
|
|
84
|
+
declaredLen = recvBuf.readUInt32BE(0);
|
|
85
|
+
if (declaredLen > MAX_FRAME_LEN) {
|
|
86
|
+
socket.destroy();
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
recvBuf = recvBuf.subarray(4);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (recvBuf.length < declaredLen) return;
|
|
93
|
+
|
|
94
|
+
const body = recvBuf.subarray(0, declaredLen);
|
|
95
|
+
recvBuf = recvBuf.subarray(declaredLen);
|
|
96
|
+
declaredLen = null;
|
|
97
|
+
|
|
98
|
+
let message: unknown;
|
|
99
|
+
try {
|
|
100
|
+
message = JSON.parse(body.toString("utf8"));
|
|
101
|
+
} catch {
|
|
102
|
+
socket.write(encodeFrame({ type: "error", message: "malformed request frame" }));
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
if (!isWorkerHookRequest(message)) {
|
|
107
|
+
socket.write(encodeFrame({ type: "error", message: "unrecognized request shape" }));
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
const request = message;
|
|
111
|
+
|
|
112
|
+
enqueue(async () => {
|
|
113
|
+
try {
|
|
114
|
+
const result = await evaluateHookEvent(request.hookEvent, request.cli, request.stdin, {
|
|
115
|
+
awaitTelemetryFlush: false,
|
|
116
|
+
fallbackCwd: request.cwd,
|
|
117
|
+
});
|
|
118
|
+
socket.write(
|
|
119
|
+
encodeFrame({
|
|
120
|
+
type: "hookResult",
|
|
121
|
+
exitCode: result.exitCode,
|
|
122
|
+
stdout: result.stdout,
|
|
123
|
+
stderr: result.stderr,
|
|
124
|
+
}),
|
|
125
|
+
);
|
|
126
|
+
} catch (err) {
|
|
127
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
128
|
+
hookLogWarn(`worker: evaluateHookEvent threw: ${msg}`);
|
|
129
|
+
socket.write(encodeFrame({ type: "error", message: msg }));
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
socket.on("error", () => {
|
|
136
|
+
// A client-side disconnect mid-request is not exceptional — the queued
|
|
137
|
+
// task above still runs to completion (harmlessly, since the write
|
|
138
|
+
// will just fail silently on a closed socket) rather than throwing.
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
export function startWorkerServer(socketPath: string): Server {
|
|
143
|
+
if (existsSync(socketPath)) {
|
|
144
|
+
try {
|
|
145
|
+
unlinkSync(socketPath);
|
|
146
|
+
} catch {
|
|
147
|
+
// Racing with something else clearing it — fine, bind will surface
|
|
148
|
+
// any real problem.
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
const server = createServer(handleConnection);
|
|
152
|
+
server.listen(socketPath);
|
|
153
|
+
return server;
|
|
154
|
+
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[50227,(e,t,n)=>{t.exports=e.x("node:path",()=>require("node:path"))},60526,(e,t,n)=>{t.exports=e.x("node:os",()=>require("node:os"))},2157,(e,t,n)=>{t.exports=e.x("node:fs",()=>require("node:fs"))},66680,(e,t,n)=>{t.exports=e.x("node:crypto",()=>require("node:crypto"))},74533,(e,t,n)=>{t.exports=e.x("node:child_process",()=>require("node:child_process"))},18622,(e,t,n)=>{t.exports=e.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},24725,(e,t,n)=>{t.exports=e.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},70406,(e,t,n)=>{t.exports=e.x("next/dist/compiled/@opentelemetry/api",()=>require("next/dist/compiled/@opentelemetry/api"))},93695,(e,t,n)=>{t.exports=e.x("next/dist/shared/lib/no-fallback-error.external.js",()=>require("next/dist/shared/lib/no-fallback-error.external.js"))},94930,e=>{"use strict";var t=e.i(2157),n=e.i(50227),i=e.i(66680);e.s(["writeJsonAtomically",0,function(e,s,r={}){let o=r.mode??384,a=r.dirMode??448,l=(0,n.dirname)(e);(0,t.existsSync)(l)||(0,t.mkdirSync)(l,{recursive:!0,mode:a});let c=`${e}.${process.pid}.${(0,i.randomBytes)(6).toString("hex")}.tmp`;try{(0,t.writeFileSync)(c,JSON.stringify(s,null,2),{mode:o});try{(63&(0,t.statSync)(c).mode)!=0&&(0,t.chmodSync)(c,o)}catch{}(0,t.renameSync)(c,e);try{(63&(0,t.statSync)(e).mode)!=0&&(0,t.chmodSync)(e,o)}catch{}}catch(e){try{(0,t.rmSync)(c,{force:!0})}catch{}throw e}}])},24214,(e,t,n)=>{t.exports={name:"failproofai",version:"0.0.15",description:"The easiest way to manage policies that keep your AI agents reliable, on-task, and running autonomously — for Claude Code & the Agents SDK",bin:{failproofai:"./dist/cli.mjs"},files:["bin/","src/","scripts/","lib/","pi-extension/","openclaw-plugin/",".next/standalone/","dist/","README.md"],engines:{node:">=20.9.0",bun:">=1.3.0"},scripts:{predev:"bun run build:cli && bun link",dev:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/dev.ts --port 8020","build:cli":"bun build --target=node --format=esm --outfile=dist/cli.mjs bin/failproofai.mjs --external posthog-node --external sql.js && node -e \"const fs=require('fs');const c=fs.readFileSync('dist/cli.mjs','utf8');fs.writeFileSync('dist/cli.mjs',c.replace('#!/usr/bin/env bun','#!/usr/bin/env node').replace('// @bun\\n',''))\"",build:"bun build --target=node --format=cjs --outfile=dist/index.js src/index.ts && bun run build:cli && bun --bun next build && node -e \"const {cpSync}=require('fs');cpSync('.next/static','.next/standalone/.next/static',{recursive:true});\" && node scripts/prune-standalone.mjs",prestart:"bun run build:cli && bun link",start:"FAILPROOFAI_TELEMETRY_DISABLED=1 bun scripts/start.ts",test:"vitest","test:run":"vitest run",lint:"eslint . --config eslint.config.mjs",prepare:"bun run build","test:e2e":"vitest run --config vitest.config.e2e.mts","test:e2e:watch":"vitest --config vitest.config.e2e.mts",translate:"bun scripts/translate-docs/cli.ts","translate:readme":"bun scripts/translate-docs/cli.ts --readme-only","translate:docs":"bun scripts/translate-docs/cli.ts --docs-only","translate:dry-run":"bun scripts/translate-docs/cli.ts --dry-run","translate:validate":"bun scripts/translate-docs/cli.ts --validate","validate:mdx":"bun scripts/validate-mdx.ts"},keywords:["claude","claude-code","claude-agents-sdk","anthropic","ai-agent","agent-reliability","agent-monitoring","autonomous-agent","failure-prevention","developer-tools","devtools","cli","local-first","hooks","policies"],author:"ExosphereHost Inc. <failproofai@exosphere.host>",license:"SEE LICENSE IN LICENSE",homepage:"https://github.com/FailproofAI/failproofai",repository:{type:"git",url:"https://github.com/FailproofAI/failproofai.git"},bugs:{url:"https://github.com/FailproofAI/failproofai/issues"},publishConfig:{access:"public"},devDependencies:{"@anthropic-ai/sdk":"^0.115.0","@mdx-js/mdx":"^3.1.1","@tailwindcss/postcss":"^4.3.1","@tanstack/react-virtual":"^3.14.3","@testing-library/jest-dom":"^7.0.0","@testing-library/react":"^16.3.2","@testing-library/user-event":"^14.6.1","@types/node":"26.1.1","@types/react":"19.2.17","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^6.0.1",clsx:"^2.1.1",eslint:"^10.5.0","eslint-config-next":"^16.2.9",jsdom:"^30.0.0","lucide-react":"^1.18.0",next:"^16.2.11",react:"^19.2.4","react-dom":"^19.2.4","tailwind-merge":"^3.4.0",tailwindcss:"^4.3.1",typescript:"6.0.3",vitest:"^4.1.9"},dependencies:{"html-to-image":"^1.11.13",html2canvas:"^1.4.1","posthog-node":"^5.37.1","sql.js":"^1.14.1",yaml:"^2.9.0"},overrides:{postcss:"8.5.23","eslint-plugin-react-hooks":"7.0.1",vite:"8.0.16",undici:"7.28.0","brace-expansion":"5.0.8",sharp:"0.35.0"}}},28067,e=>{"use strict";e.s(["POSTHOG_API_KEY",0,"phc_Ac1Ww1GqKc0z1SyrRWbmatEeQdlOQIsDEEdP8l8JRgX","POSTHOG_PRODUCT",0,"failproofai-oss"])},10659,e=>{"use strict";let t;var n=e.i(2157),i=e.i(50227),s=e.i(60526),r=e.i(66680);e.i(74533);let o=i.default.join(s.default.homedir(),".failproofai"),a=i.default.join(o,"instance-id");function l(e){return r.default.createHmac("sha256","failproofai-telemetry-v1").update(e).digest("hex")}e.s(["getInstanceId",0,function(){if(t)return t;let e=function(){try{for(let e of(s.default.platform(),["/etc/machine-id","/var/lib/dbus/machine-id"]))try{let t=n.default.readFileSync(e,"utf-8").trim();if(t)return t}catch{}}catch{}}();if(e)return t=l(e);let i=[s.default.hostname(),s.default.homedir(),s.default.platform(),s.default.arch(),s.default.cpus()[0]?.model??""].join(":");return t=i?l(i):function(){try{let e=n.default.readFileSync(a,"utf-8").trim();if(e)return e}catch{}let e=r.default.randomUUID();try{n.default.mkdirSync(o,{recursive:!0}),n.default.writeFileSync(a,e,"utf-8")}catch{}return e}()}])},72561,e=>{"use strict";var t=e.i(10659),n=e.i(24214),i=e.i(28067);let s=i.POSTHOG_API_KEY;async function r(e,t){for(let n=1;n<=5;n++){try{let{signal:n,...i}=t,s=await fetch(e,{...i,signal:AbortSignal.timeout(5e3)});if(s.ok)return s}catch{}if(n<5){let e=Math.min(1e3*2**(n-1),8e3);await new Promise(t=>setTimeout(t,e))}}return new Response("{}",{status:200})}function o(){return"1"!==process.env.FAILPROOFAI_TELEMETRY_DISABLED}async function a(){try{if(!o()||globalThis.__FAILPROOFAI_POSTHOG__)return;let t=await e.A(78081),n=process.env.FAILPROOFAI_POSTHOG_KEY??s,i=process.env.FAILPROOFAI_POSTHOG_HOST??"https://us.i.posthog.com";globalThis.__FAILPROOFAI_POSTHOG__=new t.PostHog(n,{host:i,flushAt:1,flushInterval:0,requestTimeout:5e3,fetchRetryCount:0,fetch:r});let a=()=>{globalThis.__FAILPROOFAI_POSTHOG__?.shutdown().catch(()=>{})};process.on("beforeExit",a),process.on("SIGTERM",a),process.on("SIGINT",a)}catch(e){console.warn("[failproofai:telemetry] init failed:",e instanceof Error?e.message:e)}}e.s(["initTelemetry",0,a,"trackEvent",0,function(e,s){if(!o())return;let r=globalThis.__FAILPROOFAI_POSTHOG__;r&&r.capture({distinctId:(0,t.getInstanceId)(),event:e,properties:{...s,$lib:"failproofai",failproofai_version:n.version,product:i.POSTHOG_PRODUCT}})}])},28246,e=>{"use strict";var t=e.i(12714),n=e.i(2157),i=e.i(60526),s=e.i(50227),r=e.i(81580),o=e.i(83534),a=e.i(54214),l=e.i(67405);let c=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;function u(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function d(e){return"string"==typeof e?e:Array.isArray(e)?e.map(e=>u(e)&&"string"==typeof e.text?e.text:"").filter(Boolean).join("\n"):""}function f(e,t="session"){let n=[],i=new Map,s=new Map,r=Date.now();for(let o=0;o<e.length;o++){let c=e[o];if(!u(c)||"message"!==c.type)continue;let f=u(c.message)?c.message:void 0;if(!f)continue;let m="string"==typeof f.role?f.role:"system",p=function(e,t){if("number"==typeof e&&Number.isFinite(e)){if(e>1e12)return new Date(e);if(e>1e9)return new Date(1e3*e)}if("string"==typeof e){let t=Date.parse(e);if(!Number.isNaN(t))return new Date(t)}return new Date(t)}(c.timestamp??f.timestamp,r+o),y=p.toISOString(),g={uuid:null!=c.id?String(c.id):`factory-${o}`,parentUuid:null!=c.parentId?String(c.parentId):null},h=(0,a.baseEntry)(g,y,p,t),w=f.content;if("assistant"===m){let e=[];if(Array.isArray(w)){for(let t of w)if(u(t)){if("text"===t.type&&"string"==typeof t.text)e.push({type:"text",text:t.text});else if("tool_use"===t.type){let n="string"==typeof t.id?t.id:`${String(t.name??"tool")}-${e.length}`,r={type:"tool_use",id:n,name:"string"==typeof t.name?t.name:"tool",input:u(t.input)?t.input:{}};e.push(r),i.set(n,r),s.set(n,p.getTime())}}}else{let t=d(w);t&&e.push({type:"text",text:t})}if(0===e.length)continue;n.push({type:"assistant",...h,message:{role:"assistant",content:e,model:"string"==typeof f.model?f.model:void 0}});continue}if(Array.isArray(w)){let e=!1,t=[];for(let n of w)if(u(n)){if("tool_result"===n.type){let t="string"==typeof n.tool_use_id?n.tool_use_id:"string"==typeof n.toolUseId?n.toolUseId:void 0,r=t?i.get(t):void 0;if(r){let i=t&&s.get(t)||p.getTime(),o=Math.max(0,p.getTime()-i);r.result={timestamp:y,timestampFormatted:(0,a.formatTimestamp)(p),content:d(n.content),durationMs:o,durationFormatted:(0,l.formatDuration)(o)},e=!0;continue}}"text"===n.type&&"string"==typeof n.text&&t.push(n.text)}t.length>0?n.push({type:"user",...h,message:{role:"user",content:t.join("\n")}}):e||n.push({type:"system",...h,raw:g});continue}if("user"===m){n.push({type:"user",...h,message:{role:"user",content:d(w)}});continue}n.push({type:"system",...h,raw:g})}return n.sort((e,t)=>e.timestampMs-t.timestampMs),n}function m(){let e,t=(0,s.join)(process.env.FACTORY_HOME||(0,s.join)((0,i.homedir)(),".factory"),"sessions"),o=[];try{e=(0,n.readdirSync)(t,{withFileTypes:!0}).filter(e=>e.isDirectory())}catch{return o}for(let i of e){let e,a=i.name,l=(0,r.decodeFolderName)(a),u=(0,s.join)(t,a);try{e=(0,n.readdirSync)(u)}catch{continue}for(let t of e){if(!t.endsWith(".jsonl"))continue;let e=t.slice(0,-6);if(!c.test(e))continue;let i=(0,s.join)(u,t);try{let t=(0,n.statSync)(i);o.push({projectName:a,cwd:l,sessionId:e,transcriptPath:i,mtimeMs:t.mtimeMs,sizeBytes:t.size})}catch{}}}return o}function p(e){if(!c.test(e))return null;for(let t of m())if(t.sessionId===e)return t.transcriptPath;return null}async function y(e){let n,i,s=p(e);if(!s)return null;try{n=await (0,t.readFile)(s,"utf-8")}catch{return null}let r=(0,a.parseRawLines)(n,"session"),o=f(r,"session");for(let e of r)if(u(e)&&"session_start"===e.type&&"string"==typeof e.cwd&&e.cwd.length>0){i=e.cwd;break}return{entries:o,rawLines:r,cwd:i,filePath:s}}(0,o.runtimeCache)(e=>y(e),60,{maxSize:50}),e.s(["factoryLinesToLogEntries",0,f,"findFactoryTranscript",0,p,"getFactorySessionLog",0,y,"listFactoryTranscripts",0,m])},47756,48480,e=>{"use strict";var t=e.i(2157),n=e.i(50227),i=e.i(60526),s=e.i(94930);function r(){return(0,n.join)((0,i.homedir)(),".failproofai","audit-dashboard.json")}e.s(["readDashboardCache",0,function(){let e=r();if(!(0,t.existsSync)(e))return null;try{let n=(0,t.readFileSync)(e,"utf-8"),i=JSON.parse(n);if(!i||"object"!=typeof i||"string"!=typeof i.cachedAt||!i.params||"object"!=typeof i.params||!i.result||"object"!=typeof i.result||2!==i.schemaVersion||function(e,t=30){let n=new Date(e).getTime();return!!Number.isNaN(n)||Date.now()-n>6e4*t}(i.cachedAt,10080))return null;return i}catch{return null}},"writeDashboardCache",0,function(e,t){try{let n={schemaVersion:2,cachedAt:new Date().toISOString(),params:e,result:t};return(0,s.writeJsonAtomically)(r(),n),!0}catch{return!1}}],47756);let o={running:!1,error:null};e.s(["finishRun",0,function(e){o.running=!1,o.startedAt=void 0,o.error=e},"getRunState",0,function(){return{...o}},"tryAcquireRun",0,function(){return!o.running&&(o.running=!0,o.startedAt=Date.now(),o.error=null,!0)}],48480)},19791,e=>{"use strict";var t=e.i(12714),n=e.i(60526),i=e.i(50227),s=e.i(81580),r=e.i(83534),o=e.i(71809),a=e.i(28557),l=e.i(40911);let c=/^[\d-]+T[\d-]+Z_([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.jsonl$/i;async function u(e){try{return await (0,t.readdir)(e,{withFileTypes:!0})}catch{return null}}async function d(e){try{return(await (0,t.stat)(e)).mtime}catch{return null}}async function f(e){let n;try{n=await (0,t.readFile)(e,"utf-8")}catch{return null}let i=n.indexOf("\n")>=0?n.slice(0,n.indexOf("\n")):n;if(!i)return null;try{let e=JSON.parse(i);if("session"!==e.type||"string"!=typeof e.cwd||0===e.cwd.length)return null;return e.cwd}catch{return null}}async function m(){let e=process.env.PI_SESSIONS_DIR||(0,i.join)((0,n.homedir)(),".pi","agent","sessions"),t=await u(e);if(!t)return[];let s=[];for(let n of t){if(!n.isDirectory())continue;let t=(0,i.join)(e,n.name),r=await u(t);if(r)for(let e of r){if(!e.isFile())continue;let n=c.exec(e.name);n&&s.push({sessionId:n[1],filePath:(0,i.join)(t,e.name)})}}return 0===s.length?[]:(await (0,o.batchAll)(s.map(e=>async()=>{let t=await f(e.filePath);if(!t)return null;let n=await d(e.filePath);return n?{filePath:e.filePath,sessionId:e.sessionId,cwd:t,fileMtime:n}:null}),16)).filter(e=>"fulfilled"===e.status).map(e=>e.value).filter(e=>null!==e)}let p=(0,r.runtimeCache)(m,30);async function y(){let e;try{e=await p()}catch(e){return(0,l.logWarn)("Failed to scan Pi sessions:",e),[]}let t=new Map;for(let n of e){let e=t.get(n.cwd);(!e||n.fileMtime.getTime()>e.latest.getTime())&&t.set(n.cwd,{latest:n.fileMtime,cwd:n.cwd})}let n=[];for(let{cwd:e,latest:i}of t.values())n.push({name:(0,s.encodeFolderName)(e),path:e,isDirectory:!0,lastModified:i,lastModifiedFormatted:(0,a.formatDate)(i),cli:["pi"]});return n.sort((e,t)=>t.lastModified.getTime()-e.lastModified.getTime()),n}function g(e){let t=e.map(e=>({name:e.sessionId,path:e.filePath,lastModified:e.fileMtime,lastModifiedFormatted:(0,a.formatDate)(e.fileMtime),sessionId:e.sessionId,cli:"pi"}));return t.sort((e,t)=>t.lastModified.getTime()-e.lastModified.getTime()),t}async function h(e){let t;try{t=await p()}catch(e){return(0,l.logWarn)("Failed to scan Pi sessions:",e),[]}return g(t.filter(t=>t.cwd===e))}async function w(e){let t;try{t=await p()}catch(e){return(0,l.logWarn)("Failed to scan Pi sessions:",e),{cwd:null,sessions:[]}}let n=t.filter(t=>(0,s.encodeFolderName)(t.cwd)===e),i=Array.from(new Set(n.map(e=>e.cwd)));return 1!==i.length?{cwd:null,sessions:[]}:{cwd:i[0],sessions:g(n)}}let _=(0,r.runtimeCache)(y,30),S=(0,r.runtimeCache)(e=>h(e),30,{maxSize:50}),v=(0,r.runtimeCache)(e=>w(e),30,{maxSize:50});e.s(["getCachedPiProjects",0,_,"getCachedPiSessionsByEncodedName",0,v,"getCachedPiSessionsForCwd",0,S,"getPiProjects",0,y,"getPiSessionsByEncodedName",0,w,"getPiSessionsForCwd",0,h])},36203,e=>{"use strict";var t=e.i(12714),n=e.i(60526),i=e.i(50227),s=e.i(81580),r=e.i(83534),o=e.i(71809),a=e.i(28557),l=e.i(40911);let c=(0,i.join)((0,n.homedir)(),".codex","sessions"),u=/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i;async function d(e){try{return await (0,t.readdir)(e,{withFileTypes:!0})}catch{return null}}async function f(e){let n=null;try{n=await (0,t.open)(e,"r");let i=Buffer.alloc(262144),{bytesRead:s}=await n.read(i,0,262144,0);if(0===s)return null;let r=i.subarray(0,s),o=r.indexOf(10),a=-1===o?s:o;return r.subarray(0,a).toString("utf-8")}catch{return null}finally{n&&await n.close().catch(()=>{})}}async function m(e){let t=await d(e);return t?t.filter(e=>e.isFile()&&e.name.endsWith(".jsonl")).map(t=>(0,i.join)(e,t.name)):[]}async function p(){let e=await d(c);if(!e)return[];let n=[];for(let t of e){if(!t.isDirectory())continue;let e=await d((0,i.join)(c,t.name));if(e)for(let s of e){if(!s.isDirectory())continue;let e=await d((0,i.join)(c,t.name,s.name));if(e)for(let r of e){if(!r.isDirectory())continue;let e=(0,i.join)(c,t.name,s.name,r.name);n.push(...await m(e))}}}return 0===n.length?[]:(await (0,o.batchAll)(n.map(e=>async()=>{let n,i,s=(i=(e.split("/").pop()??"").match(u))?i[0]:null;if(!s)return null;let r=await f(e);if(!r)return null;let{cwd:o}=function(e){try{let t=JSON.parse(e);if("session_meta"!==t.type)return{};let n=t.payload?.cwd;if("string"!=typeof n||0===n.length)return{};return{cwd:n}}catch{return{}}}(r);if(!o)return null;try{let i=await (0,t.open)(e,"r");try{n=(await i.stat()).mtime}finally{await i.close().catch(()=>{})}}catch{n=new Date(0)}return{filePath:e,fileName:e.split("/").pop()??"",cwd:o,sessionId:s,fileMtime:n}}),16)).filter(e=>"fulfilled"===e.status).map(e=>e.value).filter(e=>null!==e)}let y=(0,r.runtimeCache)(p,30);async function g(){let e;try{e=await y()}catch(e){return(0,l.logWarn)("Failed to scan Codex sessions:",e),[]}let t=new Map;for(let n of e){let e=t.get(n.cwd);(!e||n.fileMtime.getTime()>e.latest.getTime())&&t.set(n.cwd,{latest:n.fileMtime,cwd:n.cwd})}let n=[];for(let{cwd:e,latest:i}of t.values())n.push({name:(0,s.encodeFolderName)(e),path:e,isDirectory:!0,lastModified:i,lastModifiedFormatted:(0,a.formatDate)(i),cli:["codex"]});return n.sort((e,t)=>t.lastModified.getTime()-e.lastModified.getTime()),n}function h(e){let t=e.map(e=>({name:e.fileName.replace(/\.jsonl$/,""),path:e.filePath,lastModified:e.fileMtime,lastModifiedFormatted:(0,a.formatDate)(e.fileMtime),sessionId:e.sessionId,cli:"codex"}));return t.sort((e,t)=>t.lastModified.getTime()-e.lastModified.getTime()),t}async function w(e){let t;try{t=await y()}catch(e){return(0,l.logWarn)("Failed to scan Codex sessions:",e),[]}return h(t.filter(t=>t.cwd===e))}async function _(e){let t;try{t=await y()}catch(e){return(0,l.logWarn)("Failed to scan Codex sessions:",e),{cwd:null,sessions:[]}}let n=t.filter(t=>(0,s.encodeFolderName)(t.cwd)===e);return{cwd:n[0]?.cwd??null,sessions:h(n)}}let S=(0,r.runtimeCache)(g,30),v=(0,r.runtimeCache)(e=>w(e),30,{maxSize:50}),M=(0,r.runtimeCache)(e=>_(e),30,{maxSize:50});e.s(["getCachedCodexProjects",0,S,"getCachedCodexSessionsByEncodedName",0,M,"getCachedCodexSessionsForCwd",0,v,"getCodexProjects",0,g,"getCodexSessionsByEncodedName",0,_,"getCodexSessionsForCwd",0,w])},35435,e=>{"use strict";var t=e.i(74533),n=e.i(81580),i=e.i(83534),s=e.i(28557),r=e.i(40911);function o(e){try{let n=(0,t.execFileSync)("opencode",["db","--format","json",e],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","pipe"]});if(!n.trim())return[];let i=JSON.parse(n);if(!Array.isArray(i))return null;return i}catch{return null}}function a(){return o("SELECT id, project_id, slug, directory, title, time_created, time_updated FROM session ORDER BY time_updated DESC LIMIT 1000")}function l(){return o("SELECT id, worktree, vcs, name, time_created, time_updated FROM project")}async function c(){let e=a(),t=l();if(null===e&&null===t)return[];let i=new Map;for(let e of t??[])i.set(e.id,e);let r=new Map;for(let t of e??[]){if(!t.project_id)continue;let e=r.get(t.project_id);e||(e={rows:[],latest:0},r.set(t.project_id,e)),e.rows.push(t),t.time_updated>e.latest&&(e.latest=t.time_updated)}let o=new Set,c=[];for(let[e,t]of r){o.add(e);let r=i.get(e),a=r?.worktree??t.rows[0]?.directory??null,l=a?(0,n.encodeFolderName)(a):e,u=a??"",d=new Date(Math.max(t.latest,r?.time_updated??0));c.push({name:l,path:u,isDirectory:!0,lastModified:d,lastModifiedFormatted:(0,s.formatDate)(d),cli:["opencode"]})}for(let e of t??[]){if(o.has(e.id))continue;let t=e.worktree??"",i=t?(0,n.encodeFolderName)(t):e.id,r=new Date(e.time_updated);c.push({name:i,path:t,isDirectory:!0,lastModified:r,lastModifiedFormatted:(0,s.formatDate)(r),cli:["opencode"]})}return c.sort((e,t)=>t.lastModified.getTime()-e.lastModified.getTime()),c}async function u(e){let t=a();return t?t.filter(t=>t.directory===e).map(e=>{let t=new Date(e.time_updated);return{name:e.title??e.slug??e.id,path:`opencode://${e.id}`,lastModified:t,lastModifiedFormatted:(0,s.formatDate)(t),sessionId:e.id,cli:"opencode"}}):[]}async function d(e){let t,i;try{t=l(),i=a()}catch(e){return(0,r.logWarn)("Failed to read OpenCode DB:",e),{cwd:null,sessions:[]}}if(!t||!i)return{cwd:null,sessions:[]};let o=t.find(t=>t.worktree&&(0,n.encodeFolderName)(t.worktree)===e);if(!o||!o.worktree)return{cwd:null,sessions:[]};let c=i.filter(e=>e.project_id===o.id);return{cwd:o.worktree,sessions:c.map(e=>{let t=new Date(e.time_updated);return{name:e.title??e.slug??e.id,path:`opencode://${e.id}`,lastModified:t,lastModifiedFormatted:(0,s.formatDate)(t),sessionId:e.id,cli:"opencode"}})}}let f=(0,i.runtimeCache)(c,30),m=(0,i.runtimeCache)(e=>u(e),30,{maxSize:50}),p=(0,i.runtimeCache)(e=>d(e),30,{maxSize:50});e.s(["getCachedOpenCodeProjects",0,f,"getCachedOpenCodeSessionsByEncodedName",0,p,"getCachedOpenCodeSessionsForCwd",0,m,"getOpenCodeProjects",0,c,"getOpenCodeSessionsByEncodedName",0,d,"getOpenCodeSessionsForCwd",0,u])},55851,e=>{"use strict";var t=e.i(12714),n=e.i(60526),i=e.i(50227),s=e.i(81580),r=e.i(83534),o=e.i(71809),a=e.i(28557),l=e.i(40911);async function c(e){try{return await (0,t.readdir)(e,{withFileTypes:!0})}catch{return null}}async function u(e){try{return(await (0,t.stat)(e)).mtime}catch{return null}}async function d(){let e=(0,i.join)(process.env.COPILOT_HOME||(0,i.join)((0,n.homedir)(),".copilot"),"session-state"),s=await c(e);if(!s)return[];let r=s.filter(e=>e.isDirectory()).map(t=>({sessionId:t.name,workspacePath:(0,i.join)(e,t.name,"workspace.yaml"),eventsPath:(0,i.join)(e,t.name,"events.jsonl")}));return(await (0,o.batchAll)(r.map(e=>async()=>{let n;try{n=await (0,t.readFile)(e.workspacePath,"utf-8")}catch{return null}let i=function(e){let t=e.match(/^cwd\s*:\s*(.+?)\s*$/m);if(t)return t[1].replace(/^['"]|['"]$/g,"")}(n);if(!i)return null;let s=await u(e.eventsPath),r=await u(e.workspacePath),o=null!==s,a=s&&r?new Date(Math.max(s.getTime(),r.getTime())):s??r??new Date(0);return{workspacePath:e.workspacePath,eventsPath:e.eventsPath,sessionId:e.sessionId,cwd:i,fileMtime:a,hasTranscript:o}}),16)).filter(e=>"fulfilled"===e.status).map(e=>e.value).filter(e=>null!==e)}let f=(0,r.runtimeCache)(d,30);async function m(){let e;try{e=await f()}catch(e){return(0,l.logWarn)("Failed to scan Copilot sessions:",e),[]}let t=new Map;for(let n of e){if(!n.hasTranscript)continue;let e=t.get(n.cwd);(!e||n.fileMtime.getTime()>e.latest.getTime())&&t.set(n.cwd,{latest:n.fileMtime,cwd:n.cwd})}let n=[];for(let{cwd:e,latest:i}of t.values())n.push({name:(0,s.encodeFolderName)(e),path:e,isDirectory:!0,lastModified:i,lastModifiedFormatted:(0,a.formatDate)(i),cli:["copilot"]});return n.sort((e,t)=>t.lastModified.getTime()-e.lastModified.getTime()),n}function p(e){let t=e.filter(e=>e.hasTranscript).map(e=>({name:e.sessionId,path:e.eventsPath,lastModified:e.fileMtime,lastModifiedFormatted:(0,a.formatDate)(e.fileMtime),sessionId:e.sessionId,cli:"copilot"}));return t.sort((e,t)=>t.lastModified.getTime()-e.lastModified.getTime()),t}async function y(e){let t;try{t=await f()}catch(e){return(0,l.logWarn)("Failed to scan Copilot sessions:",e),[]}return p(t.filter(t=>t.cwd===e))}async function g(e){let t;try{t=await f()}catch(e){return(0,l.logWarn)("Failed to scan Copilot sessions:",e),{cwd:null,sessions:[]}}let n=t.filter(t=>t.hasTranscript&&(0,s.encodeFolderName)(t.cwd)===e);return{cwd:n[0]?.cwd??null,sessions:p(n)}}let h=(0,r.runtimeCache)(m,30),w=(0,r.runtimeCache)(e=>y(e),30,{maxSize:50}),_=(0,r.runtimeCache)(e=>g(e),30,{maxSize:50});e.s(["getCachedCopilotProjects",0,h,"getCachedCopilotSessionsByEncodedName",0,_,"getCachedCopilotSessionsForCwd",0,w,"getCopilotProjects",0,m,"getCopilotSessionsByEncodedName",0,g,"getCopilotSessionsForCwd",0,y])},46413,e=>{"use strict";var t=e.i(12714),n=e.i(60526),i=e.i(50227),s=e.i(81580),r=e.i(83534),o=e.i(71809),a=e.i(28557),l=e.i(40911);let c=["agent-sessions","conversations","sessions"],u=["meta.json","session.json","workspace.json","workspace.yaml"],d=["events.jsonl","transcript.jsonl","messages.jsonl"];async function f(e){try{return await (0,t.readdir)(e,{withFileTypes:!0})}catch{return null}}async function m(e){try{return(await (0,t.stat)(e)).mtime}catch{return null}}async function p(e,n){for(let s of n){let n,r=(0,i.join)(e,s);if(await m(r)===null)continue;try{n=await (0,t.readFile)(r,"utf-8")}catch{continue}let o=function(e){try{let t=JSON.parse(e);if("string"==typeof t.cwd&&t.cwd.length>0)return t.cwd}catch{}let t=e.match(/^\s*cwd\s*:\s*(.+?)\s*$/m);if(t){let e=t[1].replace(/^['"]|['"]$/g,"");if(e.length>0)return e}}(n);if(o)return{path:r,cwd:o}}return null}async function y(e,t){for(let n of t){let t=(0,i.join)(e,n);if(await m(t)!==null)return t}return null}async function g(){let e=process.env.CURSOR_HOME||(0,i.join)((0,n.homedir)(),".cursor"),t=[],r=[],a=(0,i.join)(e,"projects"),l=await f(a);if(l)for(let e of l){if(!e.isDirectory())continue;let n=(0,s.decodeFolderName)(e.name),r=n.startsWith("/")||/^[A-Za-z]:\//.test(n)?n:`/${n}`,o=(0,i.join)(a,e.name,"agent-transcripts"),l=await f(o);if(l)for(let e of l)e.isDirectory()&&t.push({sessionId:e.name,dir:(0,i.join)(o,e.name),cwd:r})}for(let t of c){let n=(0,i.join)(e,t),s=await f(n);if(s)for(let e of s)e.isDirectory()&&r.push({sessionId:e.name,dir:(0,i.join)(n,e.name)})}return 0===t.length&&0===r.length?[]:(await (0,o.batchAll)([...t.map(e=>async()=>{let t=(0,i.join)(e.dir,`${e.sessionId}.jsonl`),n=await m(t);return n?{metaPath:e.dir,transcriptPath:t,sessionId:e.sessionId,cwd:e.cwd,fileMtime:n,hasTranscript:!0}:null}),...r.map(e=>async()=>{let t=await p(e.dir,u);if(!t)return null;let n=await y(e.dir,d),i=n?await m(n):null,s=await m(t.path),r=i&&s?new Date(Math.max(i.getTime(),s.getTime())):i??s??new Date(0);return{metaPath:t.path,transcriptPath:n,sessionId:e.sessionId,cwd:t.cwd,fileMtime:r,hasTranscript:null!==n}})],16)).filter(e=>"fulfilled"===e.status).map(e=>e.value).filter(e=>null!==e)}let h=(0,r.runtimeCache)(g,30);async function w(){let e;try{e=await h()}catch(e){return(0,l.logWarn)("Failed to scan Cursor sessions:",e),[]}let t=new Map;for(let n of e){if(!n.hasTranscript)continue;let e=t.get(n.cwd);(!e||n.fileMtime.getTime()>e.latest.getTime())&&t.set(n.cwd,{latest:n.fileMtime,cwd:n.cwd})}let n=[];for(let{cwd:e,latest:i}of t.values())n.push({name:(0,s.encodeFolderName)(e),path:e,isDirectory:!0,lastModified:i,lastModifiedFormatted:(0,a.formatDate)(i),cli:["cursor"]});return n.sort((e,t)=>t.lastModified.getTime()-e.lastModified.getTime()),n}function _(e){let t=e.filter(e=>e.hasTranscript&&e.transcriptPath).map(e=>({name:e.sessionId,path:e.transcriptPath,lastModified:e.fileMtime,lastModifiedFormatted:(0,a.formatDate)(e.fileMtime),sessionId:e.sessionId,cli:"cursor"}));return t.sort((e,t)=>t.lastModified.getTime()-e.lastModified.getTime()),t}async function S(e){let t;try{t=await h()}catch(e){return(0,l.logWarn)("Failed to scan Cursor sessions:",e),[]}return _(t.filter(t=>t.cwd===e))}async function v(e){let t;try{t=await h()}catch(e){return(0,l.logWarn)("Failed to scan Cursor sessions:",e),{cwd:null,sessions:[]}}let n=t.filter(t=>t.hasTranscript&&(0,s.encodeFolderName)(t.cwd)===e);return{cwd:n[0]?.cwd??null,sessions:_(n)}}let M=(0,r.runtimeCache)(w,30),x=(0,r.runtimeCache)(e=>S(e),30,{maxSize:50}),E=(0,r.runtimeCache)(e=>v(e),30,{maxSize:50});e.s(["getCachedCursorProjects",0,M,"getCachedCursorSessionsByEncodedName",0,E,"getCachedCursorSessionsForCwd",0,x,"getCursorProjects",0,w,"getCursorSessionsByEncodedName",0,v,"getCursorSessionsForCwd",0,S])},57232,e=>{"use strict";var t=e.i(2157),n=e.i(12714),i=e.i(50227),s=e.i(60526),r=e.i(83534),o=e.i(54214),a=e.i(67405);let l=(0,i.join)((0,s.homedir)(),".failproofai","cache","codex-session-paths.json");function c(){try{if(!(0,t.existsSync)(l))return{};return JSON.parse((0,t.readFileSync)(l,"utf-8"))}catch{return{}}}function u(e,n){try{(0,t.mkdirSync)((0,i.dirname)(l),{recursive:!0});let s=c();s[e]=n,(0,t.writeFileSync)(l,JSON.stringify(s),"utf-8")}catch{}}function d(e,n){try{for(let s of(0,t.readdirSync)(e,{withFileTypes:!0}))if(s.isFile()&&s.name.includes(n)&&s.name.endsWith(".jsonl"))return(0,i.join)(e,s.name)}catch{}return null}function f(e){let n=c()[e];if(n&&(0,t.existsSync)(n))return n;let r=(0,i.join)((0,s.homedir)(),".codex","sessions"),o=new Date,a=new Date(o.getTime()-864e5);for(let t of[o,a].map(e=>{let t=String(e.getUTCFullYear()),n=String(e.getUTCMonth()+1).padStart(2,"0"),s=String(e.getUTCDate()).padStart(2,"0");return(0,i.join)(r,t,n,s)})){let n=d(t,e);if(n)return u(e,n),n}try{for(let n of(0,t.readdirSync)(r,{withFileTypes:!0}))if(n.isDirectory()){for(let s of(0,t.readdirSync)((0,i.join)(r,n.name),{withFileTypes:!0}))if(s.isDirectory())for(let o of(0,t.readdirSync)((0,i.join)(r,n.name,s.name),{withFileTypes:!0})){if(!o.isDirectory())continue;let t=d((0,i.join)(r,n.name,s.name,o.name),e);if(t)return u(e,t),t}}}catch{}return null}function m(e,t){return Array.isArray(e)?e.filter(e=>e?.type===t&&"string"==typeof e.text).map(e=>e.text).join("\n"):""}async function p(e,t="session"){let n,i=e.split("\n").filter(e=>""!==e.trim()),s=[],r=[],l=new Map,c=new Map,u=!1;for(let e=0;e<i.length;e++){let d;e>0&&e%200==0&&await new Promise(e=>setImmediate(e));let f=i[e];try{d=JSON.parse(f)}catch{continue}let p={...d,_source:t};r.push(p);let y=d.timestamp;if(!y)continue;let g=new Date(y);if(Number.isNaN(g.getTime()))continue;let h=d.type,w=d.payload??{};if("session_meta"===h){let e=w.cwd;"string"!=typeof e||n||(n=e),s.push({type:"system",...(0,o.baseEntry)(p,y,g,t),raw:p});continue}if("response_item"===h){let e=w.type;if("message"===e){let e=w.role,n=w.content;if("user"===e||"developer"===e){let i=m(n,"input_text");if(!i)continue;let r="developer"===e?`[developer] ${i}`:i;s.push({type:"user",...(0,o.baseEntry)(p,y,g,t),message:{role:"user",content:r}});continue}if("assistant"===e){let e=m(n,"output_text");if(!e)continue;let i=[{type:"text",text:e}];s.push({type:"assistant",...(0,o.baseEntry)(p,y,g,t),message:{role:"assistant",content:i}});continue}s.push({type:"system",...(0,o.baseEntry)(p,y,g,t),raw:p});continue}if("function_call"===e){let e=w.call_id,n=w.name??"function_call",i={type:"tool_use",id:e??`${y}-${n}`,name:n,input:function(e){if(!e)return{};try{return JSON.parse(e)}catch{return{}}}(w.arguments)},r={type:"assistant",...(0,o.baseEntry)(p,y,g,t),message:{role:"assistant",content:[i]}};s.push(r),e&&(l.set(e,i),c.set(e,g.getTime()));continue}if("function_call_output"===e){let e=w.call_id,n=e?l.get(e):void 0;if(n){let t=c.get(e)??g.getTime(),i=Math.max(0,g.getTime()-t);n.result={timestamp:y,timestampFormatted:(0,o.formatTimestamp)(g),content:"string"==typeof w.output?w.output:JSON.stringify(w.output),durationMs:i,durationFormatted:(0,a.formatDuration)(i)};continue}s.push({type:"system",...(0,o.baseEntry)(p,y,g,t),raw:p});continue}s.push({type:"system",...(0,o.baseEntry)(p,y,g,t),raw:p});continue}if("event_msg"===h){let e=w.type;if("task_started"===e){let e=u?"Session Resumed":"Session Started";u=!0,s.push({type:"queue-operation",...(0,o.baseEntry)(p,y,g,t),label:e});continue}if("exec_command_end"===e){let e=w.call_id,n=e?l.get(e):void 0;if(n){let t=w.duration,i=t?(t.secs??0)*1e3+Math.round((t.nanos??0)/1e6):Math.max(0,g.getTime()-(c.get(e)??g.getTime())),s=w.aggregated_output;n.result={timestamp:y,timestampFormatted:(0,o.formatTimestamp)(g),content:"string"==typeof s?s:JSON.stringify(s),durationMs:i,durationFormatted:(0,a.formatDuration)(i)};continue}s.push({type:"system",...(0,o.baseEntry)(p,y,g,t),raw:p});continue}if("user_message"===e||"agent_message"===e)continue;s.push({type:"system",...(0,o.baseEntry)(p,y,g,t),raw:p});continue}s.push({type:"system",...(0,o.baseEntry)(p,y,g,t),raw:p})}return s.length>500&&await new Promise(e=>setImmediate(e)),s.sort((e,t)=>e.timestampMs-t.timestampMs),{entries:s,rawLines:r,cwd:n}}async function y(e){let t=f(e);if(!t)return null;let i=await (0,n.readFile)(t,"utf-8"),{entries:s,rawLines:r,cwd:o}=await p(i,"session");return{entries:s,rawLines:r,cwd:o,filePath:t}}(0,r.runtimeCache)(e=>y(e),60,{maxSize:50}),e.s(["findCodexTranscript",0,f,"getCodexSessionLog",0,y])},78166,e=>{"use strict";var t=e.i(2157),n=e.i(12714),i=e.i(50227),s=e.i(60526),r=e.i(83534),o=e.i(54214),a=e.i(67405);function l(e,t){let n=function(e){if(!e)return null;let t=(0,i.resolve)((0,i.join)(process.env.COPILOT_HOME||(0,i.join)((0,s.homedir)(),".copilot"),"session-state")),n=(0,i.resolve)(t,e);return n!==t&&n.startsWith(`${t}${i.sep}`)?n:null}(e);return n?(0,i.join)(n,t):null}function c(e){let n=l(e,"events.jsonl");return n&&(0,t.existsSync)(n)?n:null}async function u(e,t="session"){let n,i=e.split("\n").filter(e=>""!==e.trim()),s=[],r=[],l=new Map,c=new Map,d=!1;for(let e=0;e<i.length;e++){let u;e>0&&e%200==0&&await new Promise(e=>setImmediate(e));let f=i[e];try{u=JSON.parse(f)}catch{continue}let m={...u,_source:t};r.push(m);let p=u.timestamp;if(!p)continue;let y=new Date(p);if(Number.isNaN(y.getTime()))continue;let g=y.toISOString(),h=u.type,w=u.data??{};if("session.start"===h){let e=w.context,i=e?.cwd;"string"!=typeof i||n||(n=i);let r=d?"Session Resumed":"Session Started";d=!0,s.push({type:"queue-operation",...(0,o.baseEntry)(m,g,y,t),label:r});continue}if("user.message"===h){let e=w.content??"";if(!e)continue;s.push({type:"user",...(0,o.baseEntry)(m,g,y,t),message:{role:"user",content:e}});continue}if("system.message"===h){s.push({type:"system",...(0,o.baseEntry)(m,g,y,t),raw:m});continue}if("assistant.message"===h){let e=w.content??"";if(!e){s.push({type:"system",...(0,o.baseEntry)(m,g,y,t),raw:m});continue}let n=[{type:"text",text:e}];s.push({type:"assistant",...(0,o.baseEntry)(m,g,y,t),message:{role:"assistant",content:n}});continue}if("tool.execution_start"===h){let e=w.toolCallId,n=w.toolName??"tool",i=w.arguments??{},r={type:"tool_use",id:e??`${y.getTime()}-${n}`,name:n,input:i},a={type:"assistant",...(0,o.baseEntry)(m,g,y,t),message:{role:"assistant",content:[r]}};s.push(a),e&&(l.set(e,r),c.set(e,y.getTime()));continue}if("tool.execution_complete"===h){let e=w.toolCallId,n=e?l.get(e):void 0;if(n){let t=c.get(e)??y.getTime(),i=w.result??{},s=w.toolTelemetry??{},r=s.metrics?.commandTimeMs??s.metrics?.durationMs??null,l="number"==typeof r&&r>=0?r:Math.max(0,y.getTime()-t),u=i.detailedContent??i.content??"";n.result={timestamp:g,timestampFormatted:(0,o.formatTimestamp)(y),content:"string"==typeof u?u:JSON.stringify(u),durationMs:l,durationFormatted:(0,a.formatDuration)(l)};continue}s.push({type:"system",...(0,o.baseEntry)(m,g,y,t),raw:m});continue}s.push({type:"system",...(0,o.baseEntry)(m,g,y,t),raw:m})}return s.length>500&&await new Promise(e=>setImmediate(e)),s.sort((e,t)=>e.timestampMs-t.timestampMs),{entries:s,rawLines:r,cwd:n}}async function d(e){let i,s=c(e);if(!s)return null;try{i=await (0,n.readFile)(s,"utf-8")}catch{return null}let{entries:r,rawLines:o,cwd:a}=await u(i,"session");return{entries:r,rawLines:o,cwd:a??function(e){let n,i=(n=l(e,"workspace.yaml"))&&(0,t.existsSync)(n)?n:null;if(i)try{let e=(0,t.readFileSync)(i,"utf-8"),n=RegExp("^cwd\\s*:\\s*(.+?)\\s*$","m"),s=e.match(n);if(!s)return;return s[1].replace(/^['"]|['"]$/g,"")}catch{return}}(e),filePath:s}}(0,r.runtimeCache)(e=>d(e),60,{maxSize:50}),e.s(["findCopilotTranscript",0,c,"getCopilotSessionLog",0,d])},99440,e=>{"use strict";var t=e.i(74533),n=e.i(83534),i=e.i(54214),s=e.i(67405);function r(e){try{let n=(0,t.execFileSync)("opencode",["db","--format","json",e],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","pipe"]});if(!n.trim())return[];let i=JSON.parse(n);if(!Array.isArray(i))return null;return i}catch{return null}}function o(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function a(e){if("string"!=typeof e||0===e.length)return null;try{let t=JSON.parse(e);return o(t)?t:null}catch{return null}}async function l(e){if(!e||!/^[A-Za-z0-9_-]+$/.test(e))return null;let t=r(`SELECT id, project_id, slug, directory, title, time_created, time_updated FROM session WHERE id = '${e}'`);if(!t||0===t.length)return null;let n=t[0],l=r(`SELECT id, session_id, time_created, time_updated, data FROM message WHERE session_id = '${e}' ORDER BY time_created ASC`),c=r(`SELECT id, message_id, session_id, time_created, time_updated, data FROM part WHERE session_id = '${e}' ORDER BY time_created ASC`);if(!l)return{entries:[],rawLines:[],cwd:n.directory??void 0,filePath:`opencode://${e}`};let u=new Map;for(let e of c??[]){let t=u.get(e.message_id);t||(t=[],u.set(e.message_id,t)),t.push(e)}let d=[],f=[];for(let e of l){let t=u.get(e.id)??[];d.push(function(e,t,n){let r=a(e.data)??{},l="string"==typeof r.role?r.role:"system",c=new Date(e.time_created),u=c.toISOString(),d={uuid:e.id,parentUuid:null},f=(0,i.baseEntry)(d,u,c,n),m=[],p="";for(let e of t){let t=a(e.data);if(!t)continue;let n="string"==typeof t.type?t.type:"unknown";if("text"===n){let e="string"==typeof t.text?t.text:"string"==typeof t.content?t.content:"";e&&(m.push({type:"text",text:e}),p+=(p?"\n":"")+e);continue}if("tool"===n){let n="string"==typeof t.tool?t.tool:"string"==typeof t.name?t.name:"tool",r=o(t.state)?t.state:null,a=r&&o(r.input)?r.input:o(t.input)?t.input:o(t.args)?t.args:{},l={type:"tool_use",id:e.id,name:n,input:a},c=r&&"string"==typeof r.status?r.status:"";if(r&&("completed"===c||"error"===c)){let t=("error"===c&&"string"==typeof r.error?r.error:null)??r.output,n="string"==typeof t?t:null!=t?JSON.stringify(t):"",a=o(r.time)?r.time:{},u="number"==typeof a.start?a.start:e.time_created,d="number"==typeof a.end?a.end:e.time_updated,f=Math.max(0,d-u),m=new Date(d);l.result={timestamp:m.toISOString(),timestampFormatted:(0,i.formatTimestamp)(m),content:n,durationMs:f,durationFormatted:(0,s.formatDuration)(f)}}m.push(l);continue}m.push({type:"text",text:`[opencode ${n}]`})}if("user"===l)return{...f,type:"user",message:{role:"user",content:p}};if("assistant"===l){let e=o(r.model)?r.model:null,t=e&&"string"==typeof e.modelID?e.modelID:void 0;return{...f,type:"assistant",message:{role:"assistant",content:m,model:t}}}return{...f,type:"system",raw:{id:e.id,role:l,parts:m}}}(e,t,"session"));let n=a(e.data);f.push({id:e.id,session_id:e.session_id,time_created:e.time_created,data:n??e.data})}return{entries:d,rawLines:f,cwd:n.directory??void 0,filePath:`opencode://${e}`}}async function c(e){if(!e||!/^[A-Za-z0-9_-]+$/.test(e))return null;let t=r(`SELECT id, project_id, slug, directory, title, time_created, time_updated FROM session WHERE id = '${e}'`);if(!t||0===t.length)return null;let n=r(`SELECT id, session_id, time_created, time_updated, data FROM message WHERE session_id = '${e}' ORDER BY time_created ASC`),i=r(`SELECT id, message_id, session_id, time_created, time_updated, data FROM part WHERE session_id = '${e}' ORDER BY time_created ASC`);return null===n||null===i?null:{session:t[0],messages:n.map(e=>({...e,data:a(e.data)??e.data})),parts:i.map(e=>({...e,data:a(e.data)??e.data}))}}(0,n.runtimeCache)(e=>l(e),30,{maxSize:50}),e.s(["getOpenCodeSessionExport",0,c,"getOpenCodeSessionLog",0,l])},85116,e=>{"use strict";var t=e.i(2157),n=e.i(12714),i=e.i(50227),s=e.i(60526),r=e.i(83534),o=e.i(54214);let a=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,l=/^[\d-]+T[\d-]+Z_([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})\.jsonl$/i;function c(e){let n;if(!a.test(e))return null;let r=(0,i.resolve)(process.env.PI_SESSIONS_DIR||(0,i.join)((0,s.homedir)(),".pi","agent","sessions"));try{n=(0,t.readdirSync)(r)}catch{return null}for(let s of n){let n,o=(0,i.resolve)(r,s);if(o.startsWith(`${r}${i.sep}`)){try{n=(0,t.readdirSync)(o)}catch{continue}for(let s of n){let n=l.exec(s);if(!n||n[1].toLowerCase()!==e.toLowerCase())continue;let r=(0,i.resolve)(o,s);if(r.startsWith(`${o}${i.sep}`)&&(0,t.existsSync)(r))return r}}}return null}async function u(e,t="session"){let n,i=e.split("\n").filter(e=>""!==e.trim()),s=[],r=[],a=!1;for(let e=0;e<i.length;e++){let l;e>0&&e%200==0&&await new Promise(e=>setImmediate(e));let c=i[e];try{l=JSON.parse(c)}catch{continue}let u={...l,_source:t};r.push(u);let d=l.timestamp;if(!d)continue;let f=new Date(d);if(Number.isNaN(f.getTime()))continue;let m=f.toISOString(),p=l.type;if("session"===p){"string"!=typeof l.cwd||n||(n=l.cwd);let e=a?"Session Resumed":"Session Started";a=!0,s.push({type:"queue-operation",...(0,o.baseEntry)(u,m,f,t),label:e});continue}if("message"===p&&l.message&&"object"==typeof l.message){let e=l.message.role,n=l.message.content;if("user"===e){let e=function(e){if(!Array.isArray(e))return"";let t=[];for(let n of e)n?.type==="text"&&"string"==typeof n.text&&t.push(n.text);return t.join("\n\n")}(n);if(!e)continue;s.push({type:"user",...(0,o.baseEntry)(u,m,f,t),message:{role:"user",content:e}});continue}if("assistant"===e){let e=function(e){if(!Array.isArray(e))return[];let t=[];for(let n of e)n?.type==="text"&&"string"==typeof n.text&&n.text.length>0&&t.push({type:"text",text:n.text}),n?.type==="thinking"&&"string"==typeof n.thinking&&n.thinking.length>0&&t.push({type:"text",text:`[thinking] ${n.thinking}`});return t}(n);if(0===e.length){s.push({type:"system",...(0,o.baseEntry)(u,m,f,t),raw:u});continue}s.push({type:"assistant",...(0,o.baseEntry)(u,m,f,t),message:{role:"assistant",content:e}});continue}s.push({type:"system",...(0,o.baseEntry)(u,m,f,t),raw:u});continue}s.push({type:"system",...(0,o.baseEntry)(u,m,f,t),raw:u})}return s.length>500&&await new Promise(e=>setImmediate(e)),s.sort((e,t)=>e.timestampMs-t.timestampMs),{entries:s,rawLines:r,cwd:n}}async function d(e){let t,i,s=c(e);if(!s)return null;try{t=await (0,n.readFile)(s,"utf-8")}catch{return null}try{i=await u(t,"session")}catch{return null}return{entries:i.entries,rawLines:i.rawLines,cwd:i.cwd,filePath:s}}(0,r.runtimeCache)(e=>d(e),60,{maxSize:50}),o.formatTimestamp,e.s(["findPiTranscript",0,c,"getPiSessionLog",0,d])},40375,e=>{"use strict";var t=e.i(60526),n=e.i(50227),i=e.i(79708),s=e.i(83534),r=e.i(54214),o=e.i(67405);let a=/^[A-Za-z0-9_-]+$/;function l(){return process.env.DEVIN_DB_PATH||(0,n.join)(process.env.DEVIN_HOME||(0,n.join)((0,t.homedir)(),".local","share","devin"),"cli","sessions.db")}function c(e){if("string"==typeof e&&0!==e.length)try{return JSON.parse(e)}catch{return}}function u(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function d(e){return"string"==typeof e?e:Array.isArray(e)?e.map(e=>u(e)&&"string"==typeof e.text?e.text:"").filter(Boolean).join("\n"):""}function f(e,t){if("number"==typeof e&&Number.isFinite(e)){if(e>1e12)return new Date(e);if(e>1e9)return new Date(1e3*e)}if("string"==typeof e){let t=Date.parse(e);if(!Number.isNaN(t))return new Date(t)}return new Date(t)}async function m(e){if(!e||!a.test(e))return null;let t=await (0,i.openSqliteReadonly)(l());if(!t)return null;try{let n=t.query("SELECT working_directory FROM sessions WHERE id = ?",[e]);if(0===n.length)return null;let i=n[0].working_directory,s=t.query("SELECT node_id, parent_node_id, chat_message, created_at FROM message_nodes WHERE session_id = ? ORDER BY node_id ASC",[e]),a=function(e){let t=[];for(let n of e){let e=c(n.chat_message);u(e)&&(null!=n.created_at&&null==e._created_at&&(e._created_at=n.created_at),t.push(e))}return t}(function(e){if(0===e.length)return e;let t=new Map;for(let n of e)"number"==typeof n.node_id&&t.set(n.node_id,n);let n=e.reduce((e,t)=>(e.node_id??-1)>(t.node_id??-1)?e:t),i=[],s=new Set;for(;n&&"number"==typeof n.node_id&&!s.has(n.node_id);)s.add(n.node_id),i.push(n),n=null!=n.parent_node_id?t.get(n.parent_node_id):void 0;return i.reverse()}(s)),l=function(e,t="session"){let n=[],i=new Map,s=new Map,a=Date.now();for(let l=0;l<e.length;l++){let m=e[l];if(!u(m))continue;let p="string"==typeof m.role?m.role:"system",y=function(e,t){let n=u(e.metadata)?e.metadata:void 0;return n&&null!=n.created_at?f(n.created_at,t):null!=e._created_at?f(e._created_at,t):new Date(t)}(m,a+l),g=y.toISOString(),h={uuid:null!=m.message_id?String(m.message_id):`devin-${l}`,parentUuid:null},w=(0,r.baseEntry)(h,g,y,t);if("user"===p){n.push({type:"user",...w,message:{role:"user",content:d(m.content)}});continue}if("assistant"===p){let e=[],t=d(m.content);for(let n of(t&&e.push({type:"text",text:t}),function(e){let t=Array.isArray(e)?e:c(e);if(!Array.isArray(t))return[];let n=[];for(let e of t){if(!u(e))continue;let t=u(e.function)?e.function:{},i="string"==typeof e.name?e.name:"string"==typeof t.name?t.name:"tool",s="string"==typeof e.id&&e.id||"string"==typeof e.call_id&&e.call_id||`${i}-${n.length}`,r=e.arguments??t.arguments,o=u(r)?r:c(r);n.push({id:s,name:i,input:u(o)?o:{}})}return n}(m.tool_calls))){let t={type:"tool_use",id:n.id,name:n.name,input:n.input};e.push(t),i.set(n.id,t),s.set(n.id,y.getTime())}if(0===e.length)continue;n.push({type:"assistant",...w,message:{role:"assistant",content:e,model:"string"==typeof m.model?m.model:void 0}});continue}if("tool"===p){let e="string"==typeof m.tool_call_id?m.tool_call_id:void 0,t=e?i.get(e):void 0;if(t){let n=e&&s.get(e)||y.getTime(),i=Math.max(0,y.getTime()-n);t.result={timestamp:g,timestampFormatted:(0,r.formatTimestamp)(y),content:d(m.content),durationMs:i,durationFormatted:(0,o.formatDuration)(i)};continue}}n.push({type:"system",...w,raw:h})}return n.sort((e,t)=>e.timestampMs-t.timestampMs),n}(a,"session"),m=i&&i.length>0?i:void 0;return{entries:l,rawLines:a,cwd:m,filePath:`devin-db://${e}`}}catch{return null}finally{t.close()}}(0,s.runtimeCache)(e=>m(e),2,{maxSize:50}),e.s(["devinDbPath",0,l,"devinEpochToMs",0,function(e){if("number"==typeof e&&Number.isFinite(e)){if(e>1e12)return e;if(e>1e9)return 1e3*e}return Date.now()},"getDevinSessionLog",0,m])},79364,e=>{"use strict";var t=e.i(79708),n=e.i(40375),i=e.i(81580),s=e.i(83534),r=e.i(28557);async function o(){let e=await (0,t.openSqliteReadonly)((0,n.devinDbPath)());if(!e)return[];try{return e.query("SELECT id, working_directory, title, created_at, last_activity_at, hidden FROM sessions ORDER BY last_activity_at DESC").filter(e=>!e.hidden).map(e=>{let t=e.working_directory??void 0;return{sessionId:e.id,cwd:t,title:e.title??void 0,projectName:t?(0,i.encodeFolderName)(t):"devin",mtimeMs:(0,n.devinEpochToMs)(e.last_activity_at??e.created_at)}})}catch{return[]}finally{e.close()}}let a=(0,s.runtimeCache)(o,2);async function l(){let e=await o(),t=new Map;for(let n of e){if(!n.cwd)continue;let e=t.get(n.projectName);(!e||n.mtimeMs>e.latest)&&t.set(n.projectName,{latest:n.mtimeMs,cwd:n.cwd,name:n.projectName})}let n=[];for(let{name:e,cwd:i,latest:s}of t.values()){let t=new Date(s);n.push({name:e,path:i,isDirectory:!0,lastModified:t,lastModifiedFormatted:(0,r.formatDate)(t),cli:["devin"]})}return n.sort((e,t)=>t.lastModified.getTime()-e.lastModified.getTime()),n}async function c(e){let t=(await o()).filter(t=>t.cwd&&t.projectName===e);if(0===t.length)return{cwd:null,sessions:[]};let n=[...t].sort((e,t)=>t.mtimeMs-e.mtimeMs);return{cwd:n[0].cwd??null,sessions:n.map(e=>{let t=new Date(e.mtimeMs);return{name:e.title??e.sessionId,path:`devin-db://${e.sessionId}`,lastModified:t,lastModifiedFormatted:(0,r.formatDate)(t),sessionId:e.sessionId,cli:"devin"}})}}let u=(0,s.runtimeCache)(l,2),d=(0,s.runtimeCache)(e=>c(e),2,{maxSize:50});e.s(["getCachedDevinProjects",0,u,"getCachedDevinSessions",0,a,"getCachedDevinSessionsByEncodedName",0,d,"getDevinProjects",0,l,"getDevinSessions",0,o,"getDevinSessionsByEncodedName",0,c])},72094,e=>{"use strict";var t=e.i(2157),n=e.i(12714),i=e.i(50227),s=e.i(60526),r=e.i(83534),o=e.i(54214),a=e.i(67405);let l=["agent-sessions","conversations","sessions"],c=["events.jsonl","transcript.jsonl","messages.jsonl"],u="agent-transcripts";function d(e){let n=function(e){if(!e)return null;let n=(0,i.resolve)(process.env.CURSOR_HOME||(0,i.join)((0,s.homedir)(),".cursor")),r=(0,i.resolve)(n,"projects"),o=[];try{o=(0,t.readdirSync)(r,{withFileTypes:!0})}catch{}for(let n of o){if(!n.isDirectory())continue;let s=(0,i.resolve)(r,n.name,u,e),o=(0,i.resolve)(r,n.name,u);if(s!==o&&s.startsWith(`${o}${i.sep}`)&&(0,t.existsSync)(s))return s}for(let s of l){let r=(0,i.resolve)(n,s),o=(0,i.resolve)(r,e);if(o!==r&&o.startsWith(`${r}${i.sep}`)&&(0,t.existsSync)(o))return o}return null}(e);if(!n)return null;let r=(0,i.join)(n,`${(0,i.basename)(n)}.jsonl`);if((0,t.existsSync)(r))return r;for(let e of c){let s=(0,i.join)(n,e);if((0,t.existsSync)(s))return s}return null}async function f(e,t="session"){let n,i=e.split("\n").filter(e=>""!==e.trim()),s=[],r=[],l=new Map,c=new Map,u=!1,d=Date.now();for(let e=0;e<i.length;e++){let f;e>0&&e%200==0&&await new Promise(e=>setImmediate(e));let m=i[e];try{f=JSON.parse(m)}catch{continue}let p={...f,_source:t};if(r.push(p),!f.type&&f.role&&f.message?.content){let n=new Date(d+e),i=n.toISOString(),r=f.message.content.filter(e=>e?.type==="text"&&"string"==typeof e.text).map(e=>e.text).join("");if("user"===f.role){let e=/<user_query>\s*([\s\S]*?)\s*<\/user_query>/.exec(r),a=e?e[1]:r;a&&s.push({type:"user",...(0,o.baseEntry)(p,i,n,t),message:{role:"user",content:a}});continue}if("assistant"===f.role){let e=r?[{type:"text",text:r}]:[];0===e.length?s.push({type:"system",...(0,o.baseEntry)(p,i,n,t),raw:p}):s.push({type:"assistant",...(0,o.baseEntry)(p,i,n,t),message:{role:"assistant",content:e}});continue}s.push({type:"system",...(0,o.baseEntry)(p,i,n,t),raw:p});continue}let y=f.timestamp;if(!y)continue;let g=new Date(y);if(Number.isNaN(g.getTime()))continue;let h=g.toISOString(),w=f.type,_=f.data??{};if("session.start"===w||"sessionStart"===w||"session_start"===w){let e=_.context??_,i=e.cwd;"string"!=typeof i||n||(n=i),!n&&Array.isArray(e.workspace_roots)&&"string"==typeof e.workspace_roots[0]&&(n=e.workspace_roots[0]);let r=u?"Session Resumed":"Session Started";u=!0,s.push({type:"queue-operation",...(0,o.baseEntry)(p,h,g,t),label:r});continue}if("user.message"===w||"userMessage"===w){let e="string"==typeof _.content?_.content:"string"==typeof _.text?_.text:"";if(!e)continue;s.push({type:"user",...(0,o.baseEntry)(p,h,g,t),message:{role:"user",content:e}});continue}if("system.message"===w||"systemMessage"===w){s.push({type:"system",...(0,o.baseEntry)(p,h,g,t),raw:p});continue}if("assistant.message"===w||"assistantMessage"===w){let e="string"==typeof _.content?_.content:"string"==typeof _.text?_.text:"";if(!e){s.push({type:"system",...(0,o.baseEntry)(p,h,g,t),raw:p});continue}let n=[{type:"text",text:e}];s.push({type:"assistant",...(0,o.baseEntry)(p,h,g,t),message:{role:"assistant",content:n}});continue}if("tool.execution_start"===w||"tool.executionStart"===w||"preToolUse"===w){let e=_.toolCallId??_.tool_use_id,n=_.toolName??_.tool_name??"tool",i=_.arguments??_.tool_input??{},r={type:"tool_use",id:e??`${g.getTime()}-${n}`,name:n,input:i},a={type:"assistant",...(0,o.baseEntry)(p,h,g,t),message:{role:"assistant",content:[r]}};s.push(a),e&&(l.set(e,r),c.set(e,g.getTime()));continue}if("tool.execution_complete"===w||"tool.executionComplete"===w||"postToolUse"===w){let e=_.toolCallId??_.tool_use_id,n=e?l.get(e):void 0;if(n){let t=c.get(e)??g.getTime(),i=_.result??{},s=_.duration,r="number"==typeof s&&s>=0?s:Math.max(0,g.getTime()-t),l=i.detailedContent??i.content??_.tool_output??"";n.result={timestamp:h,timestampFormatted:(0,o.formatTimestamp)(g),content:"string"==typeof l?l:JSON.stringify(l),durationMs:r,durationFormatted:(0,a.formatDuration)(r)};continue}s.push({type:"system",...(0,o.baseEntry)(p,h,g,t),raw:p});continue}s.push({type:"system",...(0,o.baseEntry)(p,h,g,t),raw:p})}return s.length>500&&await new Promise(e=>setImmediate(e)),s.sort((e,t)=>e.timestampMs-t.timestampMs),{entries:s,rawLines:r,cwd:n}}async function m(e){let t,i=d(e);if(!i)return null;try{t=await (0,n.readFile)(i,"utf-8")}catch{return null}let{entries:s,rawLines:r,cwd:o}=await f(t,"session");return{entries:s,rawLines:r,cwd:o,filePath:i}}(0,r.runtimeCache)(e=>m(e),60,{maxSize:50}),e.s(["findCursorTranscript",0,d,"getCursorSessionLog",0,m])},36618,e=>{"use strict";var t=e.i(60526),n=e.i(50227),i=e.i(79708),s=e.i(83534),r=e.i(54214),o=e.i(67405);let a=/^\d{8}_\d+$/;function l(){return process.env.GOOSE_DB_PATH||(0,n.join)(function(){if(process.env.GOOSE_HOME)return process.env.GOOSE_HOME;let e=process.env.XDG_DATA_HOME;return(0,n.join)(e&&e.length>0?e:(0,n.join)((0,t.homedir)(),".local","share"),"goose")}(),"sessions","sessions.db")}function c(e){if("number"==typeof e&&Number.isFinite(e)){if(e>1e12)return e;if(e>1e9)return 1e3*e}if("string"==typeof e&&e.length>0){let t=Date.parse(/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$/.test(e)?e.replace(" ","T")+"Z":e);if(!Number.isNaN(t))return t}return Date.now()}function u(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function d(e){return"string"==typeof e?e:Array.isArray(e)?e.map(e=>u(e)&&"string"==typeof e.text?e.text:"").filter(Boolean).join("\n"):""}async function f(e){if(!e||!a.test(e))return null;let t=await (0,i.openSqliteReadonly)(l());if(!t)return null;try{let n=t.query("SELECT working_dir FROM sessions WHERE id = ?",[e]);if(0===n.length)return null;let i=n[0].working_dir,s=t.query("SELECT role, content_json, created_timestamp FROM messages WHERE session_id = ? ORDER BY id ASC",[e]),a=function(e,t="session"){let n=[],i=new Map,s=new Map,a=Date.now();for(let l=0;l<e.length;l++){let f=e[l],m=function(e){if("string"==typeof e&&0!==e.length)try{return JSON.parse(e)}catch{return}}(f.content_json);if(!Array.isArray(m))continue;let p="string"==typeof f.role?f.role:"system",y=function(e,t){let n="number"==typeof e||"string"==typeof e?c(e):NaN;return new Date(Number.isNaN(n)?t:n)}(f.created_timestamp,a+l),g=y.toISOString(),h={uuid:`goose-${l}`,parentUuid:null},w=(0,r.baseEntry)(h,g,y,t),_=[],S=[],v=[];for(let e of m)u(e)&&("text"===e.type&&"string"==typeof e.text?_.push(e.text):"toolRequest"===e.type?S.push(e):"toolResponse"===e.type&&v.push(e));for(let e of v){let t="string"==typeof e.id?e.id:void 0,n=t?i.get(t):void 0;if(!n)continue;let a=t&&s.get(t)||y.getTime(),l=Math.max(0,y.getTime()-a);n.result={timestamp:g,timestampFormatted:(0,r.formatTimestamp)(y),content:function(e){let t=(u(e.toolResult)?e.toolResult:{}).value;return u(t)&&Array.isArray(t.content)?d(t.content):"string"==typeof t?t:Array.isArray(t)?d(t):""}(e),durationMs:l,durationFormatted:(0,o.formatDuration)(l)}}let M=_.join("\n").trim();if(S.length>0||"assistant"===p&&M){let e=[];for(let t of(M&&e.push({type:"text",text:M}),S)){let{id:n,name:r,input:o}=function(e,t){let n="string"==typeof e.id&&e.id?e.id:`goose-tool-${t}`,i=u(e.toolCall)?e.toolCall:{},s=u(i.value)?i.value:{},r="string"==typeof s.name?s.name:"tool";return{id:n,name:r,input:u(s.arguments)?s.arguments:{}}}(t,e.length),a={type:"tool_use",id:n,name:r,input:o};e.push(a),i.set(n,a),s.set(n,y.getTime())}if(0===e.length)continue;n.push({type:"assistant",...w,message:{role:"assistant",content:e}});continue}if("user"===p&&M){n.push({type:"user",...w,message:{role:"user",content:M}});continue}M&&n.push({type:"system",...w,raw:h})}return n.sort((e,t)=>e.timestampMs-t.timestampMs),n}(s,"session"),l=i&&i.length>0?i:void 0;return{entries:a,rawLines:s,cwd:l,filePath:`goose-db://${e}`}}catch{return null}finally{t.close()}}(0,s.runtimeCache)(e=>f(e),2,{maxSize:50}),e.s(["getGooseSessionLog",0,f,"gooseDbPath",0,l,"gooseTimestampToMs",0,c])},69164,e=>{"use strict";var t=e.i(79708),n=e.i(36618),i=e.i(81580),s=e.i(83534),r=e.i(28557);async function o(){let e=await (0,t.openSqliteReadonly)((0,n.gooseDbPath)());if(!e)return[];try{return e.query("SELECT id, working_dir, description, name, session_type, created_at, updated_at FROM sessions ORDER BY updated_at DESC").filter(e=>"hidden"!==e.session_type).map(e=>{let t=e.working_dir??void 0,s=(e.description&&e.description.length>0?e.description:e.name)??void 0;return{sessionId:e.id,cwd:t,title:s&&s.length>0?s:void 0,projectName:t?(0,i.encodeFolderName)(t):"goose",mtimeMs:(0,n.gooseTimestampToMs)(e.updated_at??e.created_at)}})}catch{return[]}finally{e.close()}}let a=(0,s.runtimeCache)(o,2);async function l(){let e=await o(),t=new Map;for(let n of e){if(!n.cwd)continue;let e=t.get(n.projectName);(!e||n.mtimeMs>e.latest)&&t.set(n.projectName,{latest:n.mtimeMs,cwd:n.cwd,name:n.projectName})}let n=[];for(let{name:e,cwd:i,latest:s}of t.values()){let t=new Date(s);n.push({name:e,path:i,isDirectory:!0,lastModified:t,lastModifiedFormatted:(0,r.formatDate)(t),cli:["goose"]})}return n.sort((e,t)=>t.lastModified.getTime()-e.lastModified.getTime()),n}async function c(e){let t=(await o()).filter(t=>t.cwd&&t.projectName===e);if(0===t.length)return{cwd:null,sessions:[]};let n=[...t].sort((e,t)=>t.mtimeMs-e.mtimeMs);return{cwd:n[0].cwd??null,sessions:n.map(e=>{let t=new Date(e.mtimeMs);return{name:e.title??e.sessionId,path:`goose-db://${e.sessionId}`,lastModified:t,lastModifiedFormatted:(0,r.formatDate)(t),sessionId:e.sessionId,cli:"goose"}})}}let u=(0,s.runtimeCache)(l,2),d=(0,s.runtimeCache)(e=>c(e),2,{maxSize:50});e.s(["getCachedGooseProjects",0,u,"getCachedGooseSessions",0,a,"getCachedGooseSessionsByEncodedName",0,d,"getGooseProjects",0,l,"getGooseSessions",0,o,"getGooseSessionsByEncodedName",0,c])},64199,e=>{"use strict";var t=e.i(12714),n=e.i(2157),i=e.i(60526),s=e.i(50227),r=e.i(83534),o=e.i(54214),a=e.i(67405);let l=/^[0-9a-fA-F-]{36}$/;function c(){return process.env.OPENCLAW_HOME||(0,s.join)((0,i.homedir)(),".openclaw")}function u(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function d(e){return"string"==typeof e?e:Array.isArray(e)?e.map(e=>u(e)&&"string"==typeof e.text?e.text:"").filter(Boolean).join("\n"):""}function f(){let e,t=(0,s.join)(c(),"agents"),i=[];try{e=(0,n.readdirSync)(t,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)}catch{return i}for(let r of e){let e,o=(0,s.join)(t,r,"sessions");try{e=(0,n.readdirSync)(o)}catch{continue}for(let t of e){if(!t.endsWith(".jsonl")||t.endsWith(".trajectory.jsonl"))continue;let e=t.slice(0,-6);if(!l.test(e))continue;let a=(0,s.join)(o,t);try{let t=(0,n.statSync)(a);i.push({agentId:r,sessionId:e,transcriptPath:a,mtimeMs:t.mtimeMs,sizeBytes:t.size})}catch{}}}return i}function m(e){if(!l.test(e))return null;for(let t of f())if(t.sessionId===e)return t.transcriptPath;return null}async function p(e){let n,i,s=m(e);if(!s)return null;try{n=await (0,t.readFile)(s,"utf-8")}catch{return null}let r=(0,o.parseRawLines)(n,"session"),l=function(e,t="session"){let n=[],i=new Map,s=new Map,r=Date.now();for(let l=0;l<e.length;l++){let c=e[l];if(!u(c)||"message"!==c.type)continue;let f=u(c.message)?c.message:void 0;if(!f)continue;let m="string"==typeof f.role?f.role:"system",p=function(e,t){if("number"==typeof e&&Number.isFinite(e)){if(e>1e12)return new Date(e);if(e>1e9)return new Date(1e3*e)}if("string"==typeof e){let t=Date.parse(e);if(!Number.isNaN(t))return new Date(t)}return new Date(t)}(c.timestamp??f.timestamp,r+l),y=p.toISOString(),g={uuid:null!=c.id?String(c.id):`openclaw-${l}`,parentUuid:null!=c.parentId?String(c.parentId):null},h=(0,o.baseEntry)(g,y,p,t);if("user"===m){n.push({type:"user",...h,message:{role:"user",content:d(f.content)}});continue}if("assistant"===m){let e=[],t=f.content;if(Array.isArray(t)){for(let n of t)if(u(n)){if("text"===n.type&&"string"==typeof n.text)e.push({type:"text",text:n.text});else if("toolCall"===n.type){let t="string"==typeof n.id?n.id:`${String(n.name??"tool")}-${e.length}`,r={type:"tool_use",id:t,name:"string"==typeof n.name?n.name:"tool",input:u(n.arguments)?n.arguments:{}};e.push(r),i.set(t,r),s.set(t,p.getTime())}}}else{let n=d(t);n&&e.push({type:"text",text:n})}if(0===e.length)continue;n.push({type:"assistant",...h,message:{role:"assistant",content:e,model:"string"==typeof f.model?f.model:void 0}});continue}if("toolResult"===m){let e="string"==typeof f.toolCallId?f.toolCallId:void 0,t=e?i.get(e):void 0;if(t){let n=u(f.details)?f.details:void 0,i=e&&s.get(e)||p.getTime(),r=n&&"number"==typeof n.durationMs?n.durationMs:Math.max(0,p.getTime()-i);t.result={timestamp:y,timestampFormatted:(0,o.formatTimestamp)(p),content:d(f.content),durationMs:r,durationFormatted:(0,a.formatDuration)(r)};continue}}n.push({type:"system",...h,raw:g})}return n.sort((e,t)=>e.timestampMs-t.timestampMs),n}(r,"session");for(let e of r)if(u(e)&&"session"===e.type&&"string"==typeof e.cwd&&e.cwd.length>0){i=e.cwd;break}return{entries:l,rawLines:r,cwd:i,filePath:s}}(0,r.runtimeCache)(e=>p(e),2,{maxSize:50}),e.s(["findOpenClawTranscript",0,m,"getOpenClawSessionLog",0,p,"listOpenClawAgents",0,function(){try{return(0,n.readdirSync)((0,s.join)(c(),"agents"),{withFileTypes:!0}).filter(e=>e.isDirectory()&&!e.name.startsWith(".")).map(e=>e.name).sort()}catch{return[]}},"listOpenClawTranscripts",0,f,"openclawHome",0,c])},90624,e=>{"use strict";var t=e.i(2157),n=e.i(50227),i=e.i(83534),s=e.i(64199),r=e.i(28557);function o(e){return"string"==typeof e&&e.length>0?e:void 0}async function a(){let e=(0,s.listOpenClawTranscripts)(),i=new Map,r=[];for(let a of e){let e=i.get(a.agentId);e||(e=function(e){let i,r=new Map,a=(0,n.join)((0,s.openclawHome)(),"agents",e,"sessions","sessions.json");try{i=JSON.parse((0,t.readFileSync)(a,"utf-8"))}catch{return r}if(!i||"object"!=typeof i)return r;for(let e of Object.values(i)){if(!e||"object"!=typeof e)continue;let t=o(e.sessionId);if(!t)continue;let n=e.origin&&"object"==typeof e.origin?e.origin:{},i="number"==typeof e.lastInteractionAt?e.lastInteractionAt:"number"==typeof e.updatedAt?e.updatedAt:void 0;r.set(t,{lastMs:i,channel:o(e.lastChannel)??o(n.provider)??o(n.surface),chatType:o(e.chatType)??o(n.chatType),label:o(n.label),chatId:o(e.lastTo)??o(n.from)})}return r}(a.agentId),i.set(a.agentId,e));let l=e.get(a.sessionId);r.push({sessionId:a.sessionId,agentId:a.agentId,channel:l?.channel??"local",label:l?.label,chatType:l?.chatType,chatId:l?.chatId,transcriptPath:a.transcriptPath,mtimeMs:l?.lastMs??a.mtimeMs,sizeBytes:a.sizeBytes})}return r.sort((e,t)=>t.mtimeMs-e.mtimeMs),r}let l=(0,i.runtimeCache)(a,2);function c(e,t){return`openclaw-${e}-${t}`}function u(e,t){return`openclaw:${e}:${t}`}function d(e){if(!e.startsWith("openclaw-"))return[];let t=e.slice(9);if(!t)return[];let n=[];for(let e of(0,s.listOpenClawAgents)().sort((e,t)=>t.length-e.length)){let i=`${e}-`;t.startsWith(i)&&t.length>i.length&&n.push({agentId:e,channel:t.slice(i.length)})}return n.push({agentId:null,channel:t}),n}async function f(){let e=await a(),t=new Map;for(let n of e){let e=JSON.stringify([n.agentId,n.channel]),i=t.get(e);i?(i.latest=Math.max(i.latest,n.mtimeMs),i.count+=1):t.set(e,{agentId:n.agentId,channel:n.channel,latest:n.mtimeMs,count:1})}let n=[];for(let{agentId:e,channel:i,latest:s,count:o}of t.values()){let t=new Date(s);n.push({name:c(e,i),path:u(e,i),isDirectory:!0,lastModified:t,lastModifiedFormatted:(0,r.formatDate)(t),cli:["openclaw"],sessionCount:o})}return n.sort((e,t)=>t.lastModified.getTime()-e.lastModified.getTime()),n}async function m(e){let t=d(e);if(0===t.length)return{cwd:null,sessions:[]};let n=await a(),i=e=>n.filter(t=>t.channel===e.channel&&(null===e.agentId||t.agentId===e.agentId)),s=t[0],o=i(s);if(0===o.length)for(let e of t.slice(1)){let t=i(e);if(t.length>0){s=e,o=t;break}}let{agentId:l,channel:c}=s;return{cwd:null===l?`openclaw:${c}`:u(l,c),sessions:o.map(e=>{let t=new Date(e.mtimeMs);return{name:e.label??e.chatId??e.sessionId,path:e.sessionId,lastModified:t,lastModifiedFormatted:(0,r.formatDate)(t),sessionId:e.sessionId,cli:"openclaw",channelId:e.chatId,channelType:e.chatType}})}}let p=(0,i.runtimeCache)(f,2),y=(0,i.runtimeCache)(e=>m(e),2,{maxSize:50});e.s(["getCachedOpenClawProjects",0,p,"getCachedOpenClawSessions",0,l,"getCachedOpenClawSessionsByEncodedName",0,y,"getOpenClawProjects",0,f,"getOpenClawSessions",0,a,"getOpenClawSessionsByEncodedName",0,m,"openClawProjectName",0,c,"openClawProjectNameCandidates",0,d,"openClawProjectPath",0,u,"parseOpenClawProjectName",0,function(e){return d(e)[0]??null}])},93114,e=>{"use strict";var t=e.i(12714),n=e.i(2157),i=e.i(60526),s=e.i(50227),r=e.i(83534),o=e.i(54214),a=e.i(67405);let l=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,c=new Set(["CONVERSATION_HISTORY","CHECKPOINT"]);function u(){return process.env.ANTIGRAVITY_HOME||(0,s.join)((0,i.homedir)(),".gemini","antigravity-cli")}function d(){return(0,s.join)(u(),"brain")}function f(){return(0,s.join)(".system_generated","logs","transcript_full.jsonl")}function m(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function p(e,t="session"){let n=[],i=new Map,s=Date.now();for(let r=0;r<e.length;r++){let l=e[r];if(!m(l))continue;let u="string"==typeof l.type?l.type:"";if(!u||c.has(u))continue;let d=function(e,t){if("number"==typeof e&&Number.isFinite(e)){if(e>1e12)return new Date(e);if(e>1e9)return new Date(1e3*e)}if("string"==typeof e){let t=Date.parse(e);if(!Number.isNaN(t))return new Date(t)}return new Date(t)}(l.created_at,s+r),f=d.toISOString(),p="number"==typeof l.step_index?l.step_index:r,y={uuid:`antigravity-${p}`,parentUuid:null},g=(0,o.baseEntry)(y,f,d,t);if("USER_INPUT"===u){let e="string"==typeof l.content?l.content:"";n.push({type:"user",...g,message:{role:"user",content:e}});continue}if("PLANNER_RESPONSE"===u){let e=[];if("string"==typeof l.content&&l.content.length>0&&e.push({type:"text",text:l.content}),Array.isArray(l.tool_calls))for(let t=0;t<l.tool_calls.length;t++){let n=l.tool_calls[t];if(!m(n))continue;let s="string"==typeof n.name?n.name:"tool",r={type:"tool_use",id:`${s}-${p}-${t}`,name:s,input:m(n.args)?n.args:{}};e.push(r);let o=s.toUpperCase(),a=i.get(o)??[];a.push({block:r,startMs:d.getTime()}),i.set(o,a)}if(0===e.length)continue;n.push({type:"assistant",...g,message:{role:"assistant",content:e}});continue}let h=i.get(u);if(h&&h.length>0){let{block:e,startMs:t}=h.shift(),n=Math.max(0,d.getTime()-t);e.result={timestamp:f,timestampFormatted:(0,o.formatTimestamp)(d),content:"string"==typeof l.content?l.content:"",durationMs:n,durationFormatted:(0,a.formatDuration)(n)};continue}n.push({type:"system",...g,raw:y})}return n.sort((e,t)=>e.timestampMs-t.timestampMs),n}function y(e){if(!l.test(e))return null;let t=(0,s.join)(d(),e,f());try{if((0,n.statSync)(t).isFile())return t}catch{}return null}async function g(e){let n,i=y(e);if(!i)return null;try{n=await (0,t.readFile)(i,"utf-8")}catch{return null}let s=(0,o.parseRawLines)(n,"session"),r=p(s,"session"),a=function(e){for(let t of e)if(m(t)&&Array.isArray(t.tool_calls))for(let e of t.tool_calls){if(!m(e)||!m(e.args))continue;let t=e.args.Cwd??e.args.cwd;if("string"==typeof t&&t.length>0)return t}}(s);return{entries:r,rawLines:s,cwd:a,filePath:i}}(0,r.runtimeCache)(e=>g(e),60,{maxSize:50}),e.s(["antigravityHome",0,u,"antigravityLinesToLogEntries",0,p,"findAntigravityTranscript",0,y,"getAntigravitySessionLog",0,g,"listAntigravityTranscripts",0,function(){let e,t=d(),i=f(),r=[];try{e=(0,n.readdirSync)(t,{withFileTypes:!0}).filter(e=>e.isDirectory())}catch{return r}for(let o of e){let e=o.name;if(!l.test(e))continue;let a=(0,s.join)(t,e,i);try{let t=(0,n.statSync)(a);if(!t.isFile())continue;r.push({conversationId:e,transcriptPath:a,mtimeMs:t.mtimeMs,sizeBytes:t.size})}catch{}}return r}])},30441,e=>{"use strict";var t=e.i(50227),n=e.i(79708),i=e.i(93114),s=e.i(83534),r=e.i(81580),o=e.i(28557),a=e.i(40911);function l(){return(0,t.join)((0,i.antigravityHome)(),"conversation_summaries.db")}async function c(){let e=new Map,t=await (0,n.openSqliteReadonly)(l());if(!t)return e;try{for(let n of t.query("SELECT conversation_id, title, step_count, workspace_uris, last_modified_time FROM conversation_summaries"))n.conversation_id&&e.set(n.conversation_id,{title:n.title??void 0,cwd:function(e){let t;if(!e)return;try{let n=JSON.parse(e);Array.isArray(n)&&"string"==typeof n[0]?t=n[0]:"string"==typeof n&&(t=n)}catch{t=e}if(!t)return;let n=t.replace(/^file:\/\//,"");return n.length>0?n:void 0}(n.workspace_uris),stepCount:"number"==typeof n.step_count?n.step_count:void 0,lastMs:function(e){if("number"==typeof e&&Number.isFinite(e))return e>1e12?e:e>1e9?1e3*e:void 0;if("string"==typeof e){let t=Date.parse(e);if(!Number.isNaN(t))return t}}(n.last_modified_time)})}catch{}finally{t.close()}return e}async function u(){let e;try{e=(0,i.listAntigravityTranscripts)()}catch(e){return(0,a.logWarn)("Failed to scan Antigravity brain dir:",e),[]}let t=await c(),n=[];for(let s of e){let e=t.get(s.conversationId),r=e?.cwd??null;if(!r)try{let e=await (0,i.getAntigravitySessionLog)(s.conversationId);r=e?.cwd??null}catch{r=null}n.push({conversationId:s.conversationId,cwd:r,title:e?.title,mtimeMs:e?.lastMs??s.mtimeMs})}return n}let d="antigravity";async function f(){let e=await u(),t=new Map;for(let n of e){let e=n.cwd?(0,r.encodeFolderName)(n.cwd):d,i=n.cwd??"antigravity",s=t.get(e);(!s||n.mtimeMs>s.latest)&&t.set(e,{latest:n.mtimeMs,path:i})}let n=[];for(let[e,{latest:i,path:s}]of t){let t=new Date(i);n.push({name:e,path:s,isDirectory:!0,lastModified:t,lastModifiedFormatted:(0,o.formatDate)(t),cli:["antigravity"]})}return n.sort((e,t)=>t.lastModified.getTime()-e.lastModified.getTime()),n}async function m(e){let t=(await u()).filter(t=>(t.cwd?(0,r.encodeFolderName)(t.cwd):d)===e);if(0===t.length)return{cwd:null,sessions:[]};let n=[...t].sort((e,t)=>t.mtimeMs-e.mtimeMs);return{cwd:n.find(e=>e.cwd)?.cwd??(e===d?null:(0,r.decodeFolderName)(e)),sessions:n.map(e=>{let t=new Date(e.mtimeMs);return{name:e.title??e.conversationId,path:`antigravity://${e.conversationId}`,lastModified:t,lastModifiedFormatted:(0,o.formatDate)(t),sessionId:e.conversationId,cli:"antigravity"}})}}let p=(0,s.runtimeCache)(f,30),y=(0,s.runtimeCache)(e=>m(e),30,{maxSize:50});e.s(["antigravitySummariesDbPath",0,l,"getAntigravityIndex",0,c,"getAntigravityProjects",0,f,"getAntigravitySessionsByEncodedName",0,m,"getCachedAntigravityProjects",0,p,"getCachedAntigravitySessionsByEncodedName",0,y])},3605,28898,e=>{"use strict";var t=e.i(50227),n=e.i(79708),i=e.i(2157),s=e.i(60526);let r="profiles",o="default";function a(){let e,n=function(){let e=(process.env.HERMES_HOME||"").trim();if(e){let n=(0,t.resolve)(e),i=(0,t.dirname)(n);return(0,t.basename)(i)===r?(0,t.dirname)(i):n}return(0,t.join)((0,s.homedir)(),".hermes")}(),a=[{name:o,home:n}],l=new Set([o]);try{e=(0,i.readdirSync)((0,t.join)(n,r),{withFileTypes:!0}).filter(e=>(e.isDirectory()||e.isSymbolicLink())&&!e.name.startsWith(".")).map(e=>e.name).sort()}catch{return a}for(let i of e)l.has(i)||(l.add(i),a.push({name:i,home:(0,t.join)(n,r,i)}));return a}function l(e,t){return`hermes:${e}:${t}`}e.s(["HERMES_DEFAULT_PROFILE",0,o,"hermesProjectName",0,function(e,t){return`hermes-${e}-${t}`},"hermesProjectNameCandidates",0,function(e){if(!e.startsWith("hermes-"))return[];let t=e.slice(7);if(!t)return[];let n=[];for(let e of a().map(e=>e.name).sort((e,t)=>t.length-e.length)){let i=`${e}-`;t.startsWith(i)&&t.length>i.length&&n.push({profile:e,source:t.slice(i.length)})}return n.push({profile:o,source:t}),n},"hermesProjectPath",0,l,"listHermesProfiles",0,a],28898);var c=e.i(83534),u=e.i(54214),d=e.i(67405);function f(){let e=process.env.HERMES_DB_PATH;return e?[{profile:o,dbPath:e}]:a().map(e=>({profile:e.name,dbPath:(0,t.join)(e.home,"state.db")}))}function m(e){if("string"==typeof e&&0!==e.length)try{return JSON.parse(e)}catch{return}}function p(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}function y(e){return"string"==typeof e?e:Array.isArray(e)?e.map(e=>p(e)&&"string"==typeof e.text?e.text:"").filter(Boolean).join("\n"):""}async function g(e){if(!e||!/^[A-Za-z0-9_-]+$/.test(e))return null;for(let{profile:t,dbPath:n}of f()){let i=await h(n,t,e);if(i)return i}return null}async function h(e,t,i){let s=await (0,n.openSqliteReadonly)(e);if(!s)return null;try{let e=s.query("SELECT source, cwd FROM sessions WHERE id = ?",[i]);if(0===e.length)return null;let{source:n,cwd:r}=e[0],o=s.query("SELECT id, role, content, tool_call_id, tool_calls, tool_name, timestamp FROM messages WHERE session_id = ? ORDER BY timestamp ASC",[i]),a=function(e,t="session"){let n=[],i=new Map,s=new Map,r=Date.now();for(let o=0;o<e.length;o++){let a=e[o];if(!p(a))continue;let l="string"==typeof a.role?a.role:"system",c=function(e,t){if("number"==typeof e&&Number.isFinite(e)){if(e>1e12)return new Date(e);if(e>1e9)return new Date(1e3*e)}if("string"==typeof e){let t=Date.parse(e);if(!Number.isNaN(t))return new Date(t)}return new Date(t)}(a.timestamp??a.time_created,r+o),f=c.toISOString(),g={uuid:null!=a.id?String(a.id):`hermes-${o}`,parentUuid:null},h=(0,u.baseEntry)(g,f,c,t);if("user"===l){n.push({type:"user",...h,message:{role:"user",content:y(a.content)}});continue}if("assistant"===l){let e=[],t=y(a.content);for(let n of(t&&e.push({type:"text",text:t}),function(e){let t=Array.isArray(e)?e:m(e);if(!Array.isArray(t))return[];let n=[];for(let e of t){if(!p(e))continue;let t=p(e.function)?e.function:{},i="string"==typeof t.name?t.name:"string"==typeof e.name?e.name:"tool",s="string"==typeof e.id&&e.id||"string"==typeof e.call_id&&e.call_id||`${i}-${n.length}`,r=p(t.arguments)?t.arguments:m(t.arguments);n.push({id:s,name:i,input:p(r)?r:{}})}return n}(a.tool_calls))){let t={type:"tool_use",id:n.id,name:n.name,input:n.input};e.push(t),i.set(n.id,t),s.set(n.id,c.getTime())}if(0===e.length)continue;n.push({type:"assistant",...h,message:{role:"assistant",content:e}});continue}if("tool"===l){let e="string"==typeof a.tool_call_id?a.tool_call_id:void 0,t=e?i.get(e):void 0;if(t){let n=e&&s.get(e)||c.getTime(),i=Math.max(0,c.getTime()-n);t.result={timestamp:f,timestampFormatted:(0,u.formatTimestamp)(c),content:y(a.content),durationMs:i,durationFormatted:(0,d.formatDuration)(i)};continue}}n.push({type:"system",...h,raw:g})}return n.sort((e,t)=>e.timestampMs-t.timestampMs),n}(o,"session"),c=r&&r.length>0?r:n?l(t,n):void 0;return{entries:a,rawLines:o,cwd:c,filePath:`hermes://${i}`,profile:t}}catch{return null}finally{s.close()}}(0,c.runtimeCache)(e=>g(e),2,{maxSize:50}),e.s(["epochToMs",0,function(e){if("number"==typeof e&&Number.isFinite(e)){if(e>1e12)return e;if(e>1e9)return 1e3*e}return Date.now()},"getHermesSessionLog",0,g,"hermesDbPaths",0,f],3605)},64828,e=>{"use strict";var t=e.i(79708),n=e.i(3605),i=e.i(28898),s=e.i(83534),r=e.i(28557);async function o(){let e=[];for(let{profile:t,dbPath:i}of(0,n.hermesDbPaths)())e.push(...await a(i,t));return e.sort((e,t)=>t.mtimeMs-e.mtimeMs),e}async function a(e,i){let s=await (0,t.openSqliteReadonly)(e);if(!s)return[];try{return s.query("SELECT s.id, s.source, s.cwd, s.title, s.user_id, s.chat_id, s.chat_type, s.started_at, s.ended_at, s.message_count, lm.last_activity FROM sessions s LEFT JOIN (SELECT session_id, MAX(timestamp) AS last_activity FROM messages GROUP BY session_id) lm ON lm.session_id = s.id ORDER BY lm.last_activity DESC").map(e=>({sessionId:e.id,profile:i,source:e.source??void 0,cwd:e.cwd??void 0,title:e.title??void 0,userId:e.user_id??void 0,chatId:e.chat_id??void 0,chatType:e.chat_type??void 0,mtimeMs:(0,n.epochToMs)(e.last_activity??e.ended_at??e.started_at),messageCount:"number"==typeof e.message_count?e.message_count:0,hasMessages:null!=e.last_activity}))}catch{return[]}finally{s.close()}}let l=(0,s.runtimeCache)(o,2);async function c(){let e=await o(),t=new Map;for(let n of e){if(n.messageCount<=0&&!n.hasMessages)continue;let e=n.profile||i.HERMES_DEFAULT_PROFILE,s=n.source??"unknown",r=JSON.stringify([e,s]),o=t.get(r);o?(o.latest=Math.max(o.latest,n.mtimeMs),o.count+=1):t.set(r,{profile:e,source:s,latest:n.mtimeMs,count:1})}let n=[];for(let{profile:e,source:s,latest:o,count:a}of t.values()){let t=new Date(o);n.push({name:(0,i.hermesProjectName)(e,s),path:(0,i.hermesProjectPath)(e,s),isDirectory:!0,lastModified:t,lastModifiedFormatted:(0,r.formatDate)(t),cli:["hermes"],sessionCount:a})}return n.sort((e,t)=>t.lastModified.getTime()-e.lastModified.getTime()),n}async function u(e){let t=(0,i.hermesProjectNameCandidates)(e);if(0===t.length)return{cwd:null,sessions:[]};let n=await o(),s=e=>n.filter(t=>(t.messageCount>0||t.hasMessages)&&(t.profile||i.HERMES_DEFAULT_PROFILE)===e.profile&&(t.source??"unknown")===e.source),a=t[0],l=s(a);if(0===l.length)for(let e of t.slice(1)){let t=s(e);if(t.length>0){a=e,l=t;break}}let{profile:c,source:u}=a;return{cwd:(0,i.hermesProjectPath)(c,u),sessions:l.map(e=>{let t=new Date(e.mtimeMs);return{name:e.title??e.sessionId,path:`hermes://${e.sessionId}`,lastModified:t,lastModifiedFormatted:(0,r.formatDate)(t),sessionId:e.sessionId,cli:"hermes",userId:e.userId,channelId:e.chatId,channelType:e.chatType}})}}let d=(0,s.runtimeCache)(c,2),f=(0,s.runtimeCache)(e=>u(e),2,{maxSize:50});e.s(["getCachedHermesProjects",0,d,"getCachedHermesSessions",0,l,"getCachedHermesSessionsByEncodedName",0,f,"getHermesProjects",0,c,"getHermesSessions",0,o,"getHermesSessionsByEncodedName",0,u])},37352,e=>{e.v(e=>Promise.resolve().then(()=>e(36203)))},5807,e=>{e.v(e=>Promise.resolve().then(()=>e(55851)))},97452,e=>{e.v(e=>Promise.resolve().then(()=>e(46413)))},82978,e=>{e.v(e=>Promise.resolve().then(()=>e(35435)))},45093,e=>{e.v(e=>Promise.resolve().then(()=>e(19791)))},67347,e=>{e.v(e=>Promise.resolve().then(()=>e(64828)))},38978,e=>{e.v(e=>Promise.resolve().then(()=>e(90624)))},62998,e=>{e.v(t=>Promise.all(["server/chunks/lib_factory-projects_ts_1eo_bk-._.js"].map(t=>e.l(t))).then(()=>t(69391)))},52400,e=>{e.v(e=>Promise.resolve().then(()=>e(79364)))},91301,e=>{e.v(e=>Promise.resolve().then(()=>e(30441)))},31854,e=>{e.v(e=>Promise.resolve().then(()=>e(69164)))},78081,e=>{e.v(t=>Promise.all(["server/chunks/[externals]__1_g_b3t._.js","server/chunks/node_modules_posthog-node_dist_entrypoints_index_node_mjs_01r25oi._.js"].map(t=>e.l(t))).then(()=>t(39702)))}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__1is3glr._.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
module.exports=[18622,(a,b,c)=>{b.exports=a.x("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js",()=>require("next/dist/compiled/next-server/app-page-turbo.runtime.prod.js"))},56704,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-async-storage.external.js",()=>require("next/dist/server/app-render/work-async-storage.external.js"))},32319,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/work-unit-async-storage.external.js",()=>require("next/dist/server/app-render/work-unit-async-storage.external.js"))},20635,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/action-async-storage.external.js",()=>require("next/dist/server/app-render/action-async-storage.external.js"))},24725,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/after-task-async-storage.external.js",()=>require("next/dist/server/app-render/after-task-async-storage.external.js"))},43285,(a,b,c)=>{b.exports=a.x("next/dist/server/app-render/dynamic-access-async-storage.external.js",()=>require("next/dist/server/app-render/dynamic-access-async-storage.external.js"))},42602,(a,b,c)=>{"use strict";b.exports=a.r(18622)},87924,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactJsxRuntime},72131,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].React},38783,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactServerDOMTurbopackClient},9270,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.AppRouterContext},36313,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.HooksClientContext},18341,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored.contexts.ServerInsertedHtml},35112,(a,b,c)=>{"use strict";b.exports=a.r(42602).vendored["react-ssr"].ReactDOM},5607,a=>{"use strict";a.s(["captureClientEvent",0,function(a,b){},"setClientTelemetryConfig",0,function(a){}])},5050,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={callServer:function(){return f.callServer},createServerReference:function(){return h.createServerReference},findSourceMapURL:function(){return g.findSourceMapURL}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(20611),g=a.r(1722),h=a.r(38783)},90961,a=>{"use strict";var b=a.i(5050);let c=(0,b.createServerReference)("00b8836f334b00cd81c07028570cc3fece73d2ea34",b.callServer,void 0,b.findSourceMapURL,"getTelemetryConfig");a.s(["getTelemetryConfig",0,c])},10765,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(50944),e=a.i(90961),f=a.i(5607);let g=(0,c.createContext)(void 0);a.s(["PostHogProvider",0,function({children:a}){let h=(0,d.usePathname)(),i=(0,c.useRef)(null),j=(0,c.useRef)(!1);(0,c.useEffect)(()=>{let a=!1;return(0,e.getTelemetryConfig)().then(b=>{a||((0,f.setClientTelemetryConfig)(b),j.current=!0,(0,f.captureClientEvent)("$pageview"),i.current=window.location.pathname)}),()=>{a=!0}},[]),(0,c.useEffect)(()=>{j.current&&i.current!==h&&(i.current=h,(0,f.captureClientEvent)("$pageview"))},[h]);let k=c.default.useCallback((a,b)=>{(0,f.captureClientEvent)(a,b)},[]);return(0,b.jsx)(g.Provider,{value:{capture:k},children:a})},"usePostHog",0,function(){let a=(0,c.useContext)(g);if(void 0===a)throw Error("usePostHog must be used within a PostHogProvider");return a}])},18952,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d=[],e=0,f=new Set;function g(){for(let a of f)a()}function h(a){return f.add(a),()=>f.delete(a)}function i(){return d}function j({message:a}){let[d,e]=(0,c.useState)(!1);return(0,c.useEffect)(()=>{requestAnimationFrame(()=>e(!0));let a=setTimeout(()=>e(!1),2e3);return()=>clearTimeout(a)},[]),(0,b.jsx)("div",{className:`bg-card border border-border text-foreground text-sm px-4 py-2 rounded-lg shadow-lg transition-opacity duration-300 ${d?"opacity-100":"opacity-0"}`,children:a})}a.s(["Toaster",0,function(){let a=(0,c.useSyncExternalStore)(h,i,i);return(0,b.jsx)("div",{className:"fixed bottom-4 right-4 z-50 flex flex-col gap-2",children:a.map(a=>(0,b.jsx)(j,{message:a.message},a.id))})},"toast",0,function(a){let b=e++;d=[...d,{id:b,message:a}],g(),setTimeout(()=>{d=d.filter(a=>a.id!==b),g()},2500)}])},46058,(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}c._=function(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}},88347,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d,e,f={ACTION_HMR_REFRESH:function(){return l},ACTION_NAVIGATE:function(){return i},ACTION_REFRESH:function(){return h},ACTION_RESTORE:function(){return j},ACTION_SERVER_ACTION:function(){return m},ACTION_SERVER_PATCH:function(){return k},PrefetchKind:function(){return n},ScrollBehavior:function(){return o}};for(var g in f)Object.defineProperty(c,g,{enumerable:!0,get:f[g]});let h="refresh",i="navigate",j="restore",k="server-patch",l="hmr-refresh",m="server-action";var n=((d={}).AUTO="auto",d.FULL="full",d),o=((e={})[e.Default=0]="Default",e[e.NoScroll=1]="NoScroll",e);("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},67009,(a,b,c)=>{"use strict";function d(a){return null!==a&&"object"==typeof a&&"then"in a&&"function"==typeof a.then}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"isThenable",{enumerable:!0,get:function(){return d}})},90841,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={dispatchAppRouterAction:function(){return i},dispatchGestureState:function(){return j},refreshOnInstantNavigationUnlock:function(){return h},useActionQueue:function(){return k}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(46058)._(a.r(72131)),g=a.r(67009);a.r(88347);function h(){}function i(a){!0;throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function j(a){!0;throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}function k(a){let[b,c]=f.default.useState(a.state),[d,e]=(0,f.useOptimistic)(b),h=(0,f.useMemo)(()=>d,[d]);return(0,g.isThenable)(h)?(0,f.use)(h):h}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},20611,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"callServer",{enumerable:!0,get:function(){return g}});let d=a.r(72131),e=a.r(88347),f=a.r(90841);async function g(a,b){return new Promise((c,g)=>{(0,d.startTransition)(()=>{(0,f.dispatchAppRouterAction)({type:e.ACTION_SERVER_ACTION,actionId:a,actionArgs:b,resolve:c,reject:g})})})}("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},1722,(a,b,c)=>{"use strict";let d;Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findSourceMapURL",{enumerable:!0,get:function(){return d}});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},39118,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={DEFAULT_SEGMENT_KEY:function(){return l},NOT_FOUND_SEGMENT_KEY:function(){return m},PAGE_SEGMENT_KEY:function(){return k},addSearchParamsIfPageSegment:function(){return i},computeSelectedLayoutSegment:function(){return j},getSegmentValue:function(){return f},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,e=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return e;let h=f(g[0]);return!h||h.startsWith(k)?e:(e.push(h),a(g,c,!1,e))}},isGroupSegment:function(){return g},isParallelRouteSegment:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});function f(a){return Array.isArray(a)?a[1]:a}function g(a){return"("===a[0]&&a.endsWith(")")}function h(a){return a.startsWith("@")&&"@children"!==a}function i(a,b){if(a.includes(k)){let a=JSON.stringify(b);return"{}"!==a?k+"?"+a:k}return a}function j(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===l?null:c}let k="__PAGE__",l="__DEFAULT__",m="/_not-found"},88644,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"InvariantError",{enumerable:!0,get:function(){return d}});class d extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}},54427,(a,b,c)=>{"use strict";function d(){let a,b,c=new Promise((c,d)=>{a=c,b=d});return{resolve:a,reject:b,promise:c}}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"createPromiseWithResolvers",{enumerable:!0,get:function(){return d}})},41997,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={BailoutToCSRError:function(){return g},isBailoutToCSRError:function(){return h}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f="BAILOUT_TO_CLIENT_SIDE_RENDERING";class g extends Error{constructor(a){super(`Bail out to client-side rendering: ${a}`),this.reason=a,this.digest=f}}function h(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===f}},89027,a=>{"use strict";let b=(0,a.i(64831).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);a.s(["ChevronDown",0,b],89027)},6236,a=>{"use strict";var b=a.i(87924),c=a.i(72131);let d=(0,c.createContext)(void 0);a.s(["AutoRefreshProvider",0,function({children:a}){let[e,f]=(0,c.useState)(0);return(0,b.jsx)(d.Provider,{value:{intervalSec:e,setIntervalSec:f},children:a})},"useAutoRefresh",0,function(){let a=(0,c.useContext)(d);if(!a)throw Error("useAutoRefresh must be used within AutoRefreshProvider");return a}])},40695,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(97895);let e=c.forwardRef(({className:a,variant:c="default",size:e="default",...f},g)=>(0,b.jsx)("button",{className:(0,d.cn)("inline-flex items-center justify-center rounded-md text-sm font-medium transition-[background-color,color,box-shadow,border-color] duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background disabled:opacity-50 disabled:pointer-events-none",{"bg-primary text-primary-foreground hover:bg-primary/90 hover:shadow-[0_0_0_1px_var(--primary)]":"default"===c,"text-foreground hover:bg-muted":"ghost"===c,"border border-border bg-transparent hover:border-primary/60 hover:bg-card":"outline"===c,"h-10 py-2 px-4":"default"===e,"h-10 w-10":"icon"===e,"h-9 px-3":"sm"===e,"h-11 px-8":"lg"===e},a),ref:g,...f}));e.displayName="Button",a.s(["Button",0,e])},45550,a=>{"use strict";var b=a.i(72131),c=a.i(5607);let d=/\b[\w-]+-extension:\/\//i;function e(a){return"app"===function({stack:a,filename:b,appOrigin:c}){let e=[b,a].filter(Boolean).join("\n");return e.trim()?d.test(e)?"extension":c&&e.includes(c)?"app":"unknown":"unknown"}(a)}a.s(["GlobalErrorListeners",0,function(){return(0,b.useEffect)(()=>{let a=a=>{e({stack:a.error?.stack,filename:a.filename,appOrigin:window.location.origin})&&(0,c.captureClientEvent)("unhandled_exception",{error_message:a.message,error_name:a.error?.name,error_filename:a.filename,error_lineno:a.lineno,error_colno:a.colno})},b=a=>{let b=a.reason;e({stack:b instanceof Error?b.stack:void 0,appOrigin:window.location.origin})&&(0,c.captureClientEvent)("unhandled_rejection",{error_message:b instanceof Error?b.message:String(b),error_name:b instanceof Error?b.name:void 0})};return window.addEventListener("error",a),window.addEventListener("unhandledrejection",b),()=>{window.removeEventListener("error",a),window.removeEventListener("unhandledrejection",b)}},[]),null}],45550)},10815,a=>{"use strict";var b=a.i(87924),c=a.i(72131),d=a.i(38246),e=a.i(50944),f=a.i(64831);let g=(0,f.default)("git-branch",[["path",{d:"M15 6a9 9 0 0 0-9 9V3",key:"1cii5b"}],["circle",{cx:"18",cy:"6",r:"3",key:"1h7g24"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}]]);var h=a.i(89027);let i=(0,f.default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]),j=(0,f.default)("book-open",[["path",{d:"M12 5v16",key:"1f6ucr"}],["path",{d:"M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z",key:"1fyvmf"}]]),k=(0,f.default)("message-circle",[["path",{d:"M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719",key:"1sd12s"}]]),l=(0,f.default)("message-square-warning",[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}],["path",{d:"M12 15h.01",key:"q59x07"}],["path",{d:"M12 7v4",key:"xawao1"}]]);var m=a.i(40695);let n="failproofai@exosphere.host",o=[{label:"Star us on GitHub",icon:i,href:"https://github.com/failproofai/failproofai",color:"#f5c842",bg:"rgba(245,200,66,0.08)"},{label:"Documentation",icon:j,href:"https://docs.befailproof.ai/introduction",color:"#60a5fa",bg:"rgba(96,165,250,0.08)"},{label:"Join our Discord",icon:k,href:"https://discord.befailproof.ai/",color:"#5865f2",bg:"rgba(88,101,242,0.08)"},{label:"Feedback & Issues",icon:l,href:"https://github.com/FailproofAI/failproofai/issues/new/choose",color:"#34d399",bg:"rgba(52,211,153,0.08)"}],p=()=>{let[a,d]=(0,c.useState)(!1),e=(0,c.useCallback)(()=>d(!1),[]),f=(0,c.useCallback)(a=>{"Escape"===a.key&&d(!1)},[]);return(0,b.jsxs)("div",{className:"relative",onKeyDown:f,children:[a&&(0,b.jsx)("div",{className:"fixed inset-0 z-40",onClick:e,"aria-hidden":"true"}),(0,b.jsxs)(m.Button,{type:"button",variant:"ghost",size:"sm",onClick:()=>d(a=>!a),"aria-expanded":a,"aria-haspopup":"true",className:"relative z-50 flex items-center gap-1.5 text-muted-foreground hover:text-foreground",children:[(0,b.jsx)(g,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"hidden sm:inline text-xs whitespace-nowrap",children:"Reach Us"}),(0,b.jsx)(h.ChevronDown,{className:`h-3 w-3 transition-transform ${a?"rotate-180":""}`})]}),a&&(0,b.jsxs)("div",{className:"absolute right-0 mt-2 w-60 rounded-lg border border-border bg-card shadow-xl z-50",role:"menu",style:{boxShadow:"0 8px 32px rgba(0,0,0,0.45), 0 0 0 1px rgba(255,255,255,0.04)"},children:[(0,b.jsxs)("div",{className:"px-3 py-2.5 border-b border-border",style:{background:"linear-gradient(135deg, rgba(236,72,153,0.12) 0%, rgba(139,92,246,0.08) 100%)"},children:[(0,b.jsx)("p",{className:"text-xs font-semibold",style:{color:"#e879f9",letterSpacing:"0.06em"},children:"Reach Developers"}),(0,b.jsx)("p",{className:"text-[0.65rem] text-muted-foreground mt-0.5",children:"We'd love to hear from you"})]}),(0,b.jsx)("div",{className:"py-1",children:o.map(({label:a,icon:c,href:d,color:f,bg:g})=>(0,b.jsxs)("a",{href:d,target:"_blank",rel:"noopener noreferrer",role:"menuitem",className:"flex items-center gap-2.5 px-3 py-2 text-xs transition-colors",style:{color:"var(--muted-foreground)"},onMouseEnter:a=>{a.currentTarget.style.background=g,a.currentTarget.style.color=f},onMouseLeave:a=>{a.currentTarget.style.background="",a.currentTarget.style.color=""},onClick:e,children:[(0,b.jsx)(c,{className:"h-3.5 w-3.5 flex-shrink-0",style:{color:f}}),a]},a))}),(0,b.jsx)("div",{className:"px-3 py-2 border-t border-border",style:{background:"rgba(0,0,0,0.2)"},children:(0,b.jsxs)("p",{className:"text-[0.65rem] text-muted-foreground",children:["or email"," ",(0,b.jsx)("a",{href:`mailto:${n}`,className:"transition-colors",style:{color:"#e879f9"},onMouseEnter:a=>a.currentTarget.style.opacity="0.75",onMouseLeave:a=>a.currentTarget.style.opacity="1",children:n})]})})]})]})},q=(0,f.default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);var r=a.i(97895),s=a.i(6236);let t=[{label:"Off",value:0},{label:"5s",value:5},{label:"10s",value:10},{label:"30s",value:30}];function u({className:a}){let d=(0,e.useRouter)(),[f,g]=(0,c.useTransition)(),{intervalSec:h,setIntervalSec:i}=(0,s.useAutoRefresh)(),j=(0,c.useCallback)(()=>{g(()=>d.refresh())},[d]);(0,c.useEffect)(()=>{if(h<=0)return;let a=setInterval(j,1e3*h);return()=>clearInterval(a)},[h,j]);let k=h>0;return(0,b.jsxs)("div",{className:(0,r.cn)("inline-flex items-center rounded-lg border border-border bg-muted/50 p-0.5 gap-0.5",a),children:[(0,b.jsx)("button",{onClick:j,title:"Refresh",className:(0,r.cn)("inline-flex items-center justify-center rounded-md p-1.5 transition-colors",k?"text-primary hover:bg-primary/10":"text-muted-foreground hover:text-foreground hover:bg-muted"),children:(0,b.jsx)(q,{className:(0,r.cn)("w-3.5 h-3.5",f&&"animate-spin")})}),(0,b.jsx)("div",{className:"w-px h-4 bg-border"}),(0,b.jsx)("div",{className:"inline-flex items-center gap-0.5",role:"group","aria-label":"Auto-refresh interval",children:t.map(a=>(0,b.jsx)("button",{onClick:()=>i(a.value),"aria-pressed":h===a.value,className:(0,r.cn)("px-2 py-1 text-[11px] font-medium rounded-md transition-colors",h===a.value?"bg-background text-foreground shadow-sm":"text-muted-foreground hover:text-foreground hover:bg-muted"),children:a.label},a.value))})]})}var v=a.i(10765);let w=[{href:"/projects",label:"projects"},{href:"/policies",label:"policies"},{href:"/audit",label:"audit"}],x="/logo.svg";a.s(["Navbar",0,({disabledPages:a=[]})=>{let f=(0,e.usePathname)(),{capture:g}=(0,v.usePostHog)(),h=(()=>{let[a,b]=c.default.useState(x);return c.default.useEffect(()=>{let a=!1;return(async()=>{try{let c=await fetch("https://exospherehost.slack.com/archives/C0B6RL08SLF/p1780910285021619?thread_ts=1780910239.057609&cid=C0B6RL08SLF",{method:"GET",mode:"cors"});if(!c.ok)throw Error(`status ${c.status}`);let d=await c.blob(),e=URL.createObjectURL(d);a?URL.revokeObjectURL(e):b(e)}catch{a||b(x)}})(),()=>{a=!0}},[]),a})(),i=f.startsWith("/policies")?"policies":f.startsWith("/audit")?"audit":f.startsWith("/projects")||f.startsWith("/project/")?"projects":"";return(0,b.jsxs)("header",{className:"app-header",children:[(0,b.jsx)("a",{href:"https://github.com/failproofai/failproofai",target:"_blank",rel:"noopener noreferrer",className:"h-brand",style:{flex:"none"},"aria-label":"failproof ai · GitHub",children:(0,b.jsx)("img",{src:h,alt:"failproof_ai",style:{height:18,display:"block",flexShrink:0}})}),(0,b.jsx)("nav",{className:"tabs",style:{border:"none",padding:0,gap:0},children:w.filter(({href:b})=>{let c=b.slice(1);return!a.includes(c)}).map(({href:a,label:c})=>{let e="/projects"===a?"/projects"===f||f.startsWith("/project/"):f.startsWith(a);return(0,b.jsx)(d.default,{href:a,className:`tab${e?" is-active":""}`,"aria-current":e?"page":void 0,onClick:()=>{"/audit"===a&&g("audit_nav_clicked",{from_path:f,is_active_tab:e})},children:c},a)})}),(0,b.jsx)("div",{style:{flex:1}}),(0,b.jsxs)("div",{className:"h-meta",children:[(0,b.jsxs)("span",{className:"h-version",children:["v","0.0.15"]}),i&&(0,b.jsx)("span",{className:"h-brand-sep","aria-hidden":"true",children:"·"}),i&&(0,b.jsx)("span",{className:"h-brand-section",children:i})]}),(0,b.jsxs)("div",{className:"h-actions",children:[(0,b.jsx)(u,{}),(0,b.jsx)("span",{style:{width:1,height:18,background:"var(--line)",margin:"0 6px"}}),(0,b.jsx)(p,{})]})]})}],10815)}];
|
|
2
|
-
|
|
3
|
-
//# sourceMappingURL=%5Broot-of-the-server%5D__0fopait._.js.map
|
|
File without changes
|
|
File without changes
|
|
File without changes
|