pi-forge 1.3.6 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.md +1 -1
  2. package/dist/client/assets/{CodeMirrorEditor-BH6J6WhM.js → CodeMirrorEditor-UkZexOVi.js} +2 -2
  3. package/dist/client/assets/{CodeMirrorEditor-BH6J6WhM.js.map → CodeMirrorEditor-UkZexOVi.js.map} +1 -1
  4. package/dist/client/assets/index-BIo72Bz6.css +1 -0
  5. package/dist/client/assets/{index-bJJrpg1R.js → index-BnOWCOqe.js} +83 -82
  6. package/dist/client/assets/index-BnOWCOqe.js.map +1 -0
  7. package/dist/client/index.html +2 -2
  8. package/dist/client/sw.js +1 -1
  9. package/dist/client/sw.js.map +1 -1
  10. package/dist/server/agent-bash-operations.js +49 -0
  11. package/dist/server/agent-bash-operations.js.map +1 -0
  12. package/dist/server/agent-tool-overrides.js +98 -0
  13. package/dist/server/agent-tool-overrides.js.map +1 -0
  14. package/dist/server/agent-tool-policy.js +104 -0
  15. package/dist/server/agent-tool-policy.js.map +1 -0
  16. package/dist/server/cli.js +168 -2
  17. package/dist/server/cli.js.map +1 -1
  18. package/dist/server/config.js +99 -5
  19. package/dist/server/config.js.map +1 -1
  20. package/dist/server/extensions-discovery.js +7 -0
  21. package/dist/server/extensions-discovery.js.map +1 -1
  22. package/dist/server/file-references.js +11 -5
  23. package/dist/server/file-references.js.map +1 -1
  24. package/dist/server/git-clone.js +17 -2
  25. package/dist/server/git-clone.js.map +1 -1
  26. package/dist/server/git-runner.js +58 -3
  27. package/dist/server/git-runner.js.map +1 -1
  28. package/dist/server/index.js +2 -0
  29. package/dist/server/index.js.map +1 -1
  30. package/dist/server/ldap-auth.js +103 -0
  31. package/dist/server/ldap-auth.js.map +1 -0
  32. package/dist/server/lifecycle-notifications.js +44 -0
  33. package/dist/server/lifecycle-notifications.js.map +1 -0
  34. package/dist/server/mcp/manager.js +20 -0
  35. package/dist/server/mcp/manager.js.map +1 -1
  36. package/dist/server/mcp/tool-bridge.js +48 -13
  37. package/dist/server/mcp/tool-bridge.js.map +1 -1
  38. package/dist/server/orchestration/config.js +10 -36
  39. package/dist/server/orchestration/config.js.map +1 -1
  40. package/dist/server/orchestration/event-bridge.js +69 -28
  41. package/dist/server/orchestration/event-bridge.js.map +1 -1
  42. package/dist/server/orchestration/inbox.js +157 -124
  43. package/dist/server/orchestration/inbox.js.map +1 -1
  44. package/dist/server/orchestration/init.js +1 -1
  45. package/dist/server/orchestration/store.js +44 -4
  46. package/dist/server/orchestration/store.js.map +1 -1
  47. package/dist/server/orchestration/tools.js +35 -118
  48. package/dist/server/orchestration/tools.js.map +1 -1
  49. package/dist/server/orchestration/types.js +8 -4
  50. package/dist/server/orchestration/types.js.map +1 -1
  51. package/dist/server/orchestration/worker-lifecycle.js +1 -1
  52. package/dist/server/orchestration/worker-lifecycle.js.map +1 -1
  53. package/dist/server/processes/manager.js +2 -0
  54. package/dist/server/processes/manager.js.map +1 -1
  55. package/dist/server/processes/tool.js +4 -1
  56. package/dist/server/processes/tool.js.map +1 -1
  57. package/dist/server/pty-manager.js +4 -0
  58. package/dist/server/pty-manager.js.map +1 -1
  59. package/dist/server/routes/_schemas.js +6 -0
  60. package/dist/server/routes/_schemas.js.map +1 -1
  61. package/dist/server/routes/auth.js +31 -9
  62. package/dist/server/routes/auth.js.map +1 -1
  63. package/dist/server/routes/control.js +52 -13
  64. package/dist/server/routes/control.js.map +1 -1
  65. package/dist/server/routes/exec.js +2 -56
  66. package/dist/server/routes/exec.js.map +1 -1
  67. package/dist/server/routes/git.js +38 -4
  68. package/dist/server/routes/git.js.map +1 -1
  69. package/dist/server/routes/health.js +3 -4
  70. package/dist/server/routes/health.js.map +1 -1
  71. package/dist/server/routes/orchestration.js +31 -7
  72. package/dist/server/routes/orchestration.js.map +1 -1
  73. package/dist/server/routes/projects.js +3 -1
  74. package/dist/server/routes/projects.js.map +1 -1
  75. package/dist/server/routes/prompt.js +40 -2
  76. package/dist/server/routes/prompt.js.map +1 -1
  77. package/dist/server/routes/quick-actions.js +2 -0
  78. package/dist/server/routes/quick-actions.js.map +1 -1
  79. package/dist/server/routes/sessions.js +110 -5
  80. package/dist/server/routes/sessions.js.map +1 -1
  81. package/dist/server/routes/stream.js +77 -2
  82. package/dist/server/routes/stream.js.map +1 -1
  83. package/dist/server/session-registry.js +173 -41
  84. package/dist/server/session-registry.js.map +1 -1
  85. package/dist/server/sse-bridge.js +39 -29
  86. package/dist/server/sse-bridge.js.map +1 -1
  87. package/dist/server/subagents-external.js +319 -0
  88. package/dist/server/subagents-external.js.map +1 -0
  89. package/package.json +2 -1
  90. package/dist/client/assets/index-BszHzUYE.css +0 -1
  91. package/dist/client/assets/index-bJJrpg1R.js.map +0 -1
@@ -3,6 +3,7 @@ import { getSession } from "./session-registry.js";
3
3
  import { getPendingForSession as getPendingAskQuestions, subscribe as subscribeAskQuestions, } from "./ask-user-question/registry.js";
4
4
  import { peekCached as peekCachedTodo, subscribe as subscribeTodo } from "./todo/store.js";
5
5
  import { processManager } from "./processes/manager.js";
6
+ import { sendCustomLifecycleMessage } from "./lifecycle-notifications.js";
6
7
  /**
7
8
  * Per-client outbound-buffer cap. When Node's internal socket buffer
8
9
  * for a given client exceeds this many bytes, we drop the client
@@ -219,42 +220,51 @@ export function initProcessesFanout() {
219
220
  return;
220
221
  }
221
222
  if (event.type === "process_alert") {
222
- // Inject a user-shaped message into the live session so the
223
- // agent gets a turn to react to the process finishing. The
224
- // alertOn* flags were set at start() time and already filtered
225
- // in the manager by the time we get here, the alert is
226
- // wanted. Best-effort: `sendUserMessage` returns a Promise but
227
- // we don't await it (the SSE fanout shouldn't block on a
228
- // round-trip; agent processing happens in the background and
229
- // the result lands in the session JSONL like any other turn).
230
- //
231
- // deliverAs: "followUp" — if the agent is mid-turn, queue the
232
- // alert until that turn completes. If idle, sendUserMessage
233
- // kicks off a fresh turn immediately. Either way the user
234
- // sees the alert message in the chat as a normal user bubble
235
- // (with the `[process alert]` prefix making it obvious it's
236
- // automated).
223
+ // Lifecycle alerts are status messages, not user-authored chat.
224
+ // Custom messages let the client render a compact status card
225
+ // and let the server decide per outcome whether the parent
226
+ // agent should take a turn. Clean exits are informational;
227
+ // failures/kills preserve the old "wake the agent" behavior.
237
228
  const reasonText = event.reason === "success"
238
229
  ? `finished successfully (exit ${event.info.exitCode ?? "?"})`
239
230
  : event.reason === "failure"
240
231
  ? `failed with exit code ${event.info.exitCode ?? "?"}`
241
232
  : "was killed externally";
242
- const message = `[process alert] "${event.info.name}" (id=${event.info.id}) ${reasonText}. ` +
233
+ const content = `Process "${event.info.name}" (id=${event.info.id}) ${reasonText}. ` +
243
234
  `Use \`process output\` to inspect what it produced if you need to react.`;
244
- void live.session
245
- .sendUserMessage(message, { deliverAs: "followUp" })
246
- .catch((err) => {
247
- // Swallow — most likely failure mode is "session was
248
- // disposed between fanout and queue-write," which is benign.
249
- process.stderr.write(JSON.stringify({
250
- level: "warn",
251
- time: new Date().toISOString(),
252
- msg: "process-alert sendUserMessage failed",
253
- sessionId: event.sessionId,
254
- processId: event.info.id,
235
+ const triggerTurn = event.reason !== "success";
236
+ sendCustomLifecycleMessage(live.session, {
237
+ customType: "process-notify",
238
+ content,
239
+ display: true,
240
+ details: {
241
+ source: "process",
242
+ state: event.reason,
255
243
  reason: event.reason,
256
- err: err instanceof Error ? err.message : String(err),
257
- }) + "\n");
244
+ processId: event.info.id,
245
+ name: event.info.name,
246
+ command: event.info.command,
247
+ pid: event.info.pid,
248
+ exitCode: event.info.exitCode,
249
+ success: event.info.success,
250
+ status: event.info.status,
251
+ },
252
+ }, {
253
+ triggerTurn,
254
+ onError: (err) => {
255
+ // Swallow — most likely failure mode is "session was
256
+ // disposed between fanout and queue-write," which is benign.
257
+ process.stderr.write(JSON.stringify({
258
+ level: "warn",
259
+ time: new Date().toISOString(),
260
+ msg: "process-alert sendCustomMessage failed",
261
+ sessionId: event.sessionId,
262
+ processId: event.info.id,
263
+ reason: event.reason,
264
+ triggerTurn,
265
+ err: err instanceof Error ? err.message : String(err),
266
+ }) + "\n");
267
+ },
258
268
  });
259
269
  return;
260
270
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sse-bridge.js","sourceRoot":"","sources":["../src/sse-bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sse-bridge.js","sourceRoot":"","sources":["../src/sse-bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,319 @@
1
+ import { existsSync, watch } from "node:fs";
2
+ import { readdir, readFile } from "node:fs/promises";
3
+ import { join } from "node:path";
4
+ import * as os from "node:os";
5
+ import { SessionManager } from "@earendil-works/pi-coding-agent";
6
+ import { getSession } from "./session-registry.js";
7
+ function sanitizeTempScopeSegment(value) {
8
+ const sanitized = value
9
+ .trim()
10
+ .replace(/[^A-Za-z0-9._-]+/g, "-")
11
+ .replace(/^-+|-+$/g, "");
12
+ return sanitized || "unknown";
13
+ }
14
+ function resolveTempScopeId() {
15
+ if (typeof process.getuid === "function")
16
+ return `uid-${process.getuid()}`;
17
+ for (const key of ["USERNAME", "USER", "LOGNAME"]) {
18
+ const value = process.env[key];
19
+ if (value)
20
+ return `user-${sanitizeTempScopeSegment(value)}`;
21
+ }
22
+ try {
23
+ const username = os.userInfo().username;
24
+ if (username)
25
+ return `user-${sanitizeTempScopeSegment(username)}`;
26
+ }
27
+ catch {
28
+ // fall through
29
+ }
30
+ const homedir = process.env.USERPROFILE ?? process.env.HOME ?? os.homedir();
31
+ if (homedir)
32
+ return `home-${sanitizeTempScopeSegment(homedir)}`;
33
+ return "shared";
34
+ }
35
+ export const SUBAGENTS_TEMP_ROOT = join(os.tmpdir(), `pi-subagents-${resolveTempScopeId()}`);
36
+ export const SUBAGENTS_RESULTS_DIR = join(SUBAGENTS_TEMP_ROOT, "async-subagent-results");
37
+ export const SUBAGENTS_ASYNC_DIR = join(SUBAGENTS_TEMP_ROOT, "async-subagent-runs");
38
+ const TERMINAL_STATES = new Set(["complete", "failed", "paused"]);
39
+ const ACTIVE_STATES = new Set(["queued", "running"]);
40
+ const deliveredCompletionKeys = new Set();
41
+ const deliveredSessionListKeys = new Set();
42
+ let watcherStarted = false;
43
+ let asyncWatcher;
44
+ let resultsWatcher;
45
+ let scanTimer;
46
+ function rootRunId(runId) {
47
+ return runId?.split(/[\\/]/, 1)[0];
48
+ }
49
+ function isExternalState(value) {
50
+ return (value === "queued" ||
51
+ value === "running" ||
52
+ value === "complete" ||
53
+ value === "failed" ||
54
+ value === "paused");
55
+ }
56
+ async function readJson(path) {
57
+ try {
58
+ return JSON.parse(await readFile(path, "utf8"));
59
+ }
60
+ catch {
61
+ return undefined;
62
+ }
63
+ }
64
+ async function readStatusByRoot(root) {
65
+ const statusPath = join(SUBAGENTS_ASYNC_DIR, root, "status.json");
66
+ const status = await readJson(statusPath);
67
+ if (!isExternalState(status?.state))
68
+ return undefined;
69
+ const resultPath = join(SUBAGENTS_RESULTS_DIR, `${root}.json`);
70
+ const out = {
71
+ runId: status.runId ?? root,
72
+ rootRunId: root,
73
+ state: status.state,
74
+ isExternalLive: ACTIVE_STATES.has(status.state),
75
+ statusPath,
76
+ };
77
+ if (existsSync(resultPath))
78
+ out.resultPath = resultPath;
79
+ if (typeof status.sessionId === "string")
80
+ out.parentSessionId = status.sessionId;
81
+ if (typeof status.sessionFile === "string")
82
+ out.sessionFile = status.sessionFile;
83
+ return out;
84
+ }
85
+ function statusMatchesSession(status, sessionPath) {
86
+ if (sessionPath === undefined)
87
+ return true;
88
+ return status.sessionFile === sessionPath;
89
+ }
90
+ async function readStatusRoots() {
91
+ try {
92
+ return await readdir(SUBAGENTS_ASYNC_DIR);
93
+ }
94
+ catch {
95
+ return [];
96
+ }
97
+ }
98
+ function statusFileSessionPaths(status) {
99
+ const paths = [];
100
+ if (typeof status.sessionFile === "string")
101
+ paths.push(status.sessionFile);
102
+ for (const step of status.steps ?? []) {
103
+ if (typeof step.sessionFile === "string")
104
+ paths.push(step.sessionFile);
105
+ }
106
+ return paths;
107
+ }
108
+ async function readStatusByRootForSessionPath(root, sessionPath) {
109
+ const statusPath = join(SUBAGENTS_ASYNC_DIR, root, "status.json");
110
+ const raw = await readJson(statusPath);
111
+ if (!isExternalState(raw?.state))
112
+ return undefined;
113
+ if (!statusFileSessionPaths(raw).includes(sessionPath))
114
+ return undefined;
115
+ const base = await readStatusByRoot(root);
116
+ if (base === undefined)
117
+ return undefined;
118
+ return { ...base, sessionFile: sessionPath };
119
+ }
120
+ async function findExternalSubagentStatusForSessionPath(sessionPath) {
121
+ if (sessionPath === undefined)
122
+ return undefined;
123
+ const roots = await readStatusRoots();
124
+ for (const root of roots) {
125
+ const status = await readStatusByRootForSessionPath(root, sessionPath);
126
+ if (status !== undefined)
127
+ return status;
128
+ }
129
+ return undefined;
130
+ }
131
+ export async function getExternalSubagentStatusForRun(runId) {
132
+ const root = rootRunId(runId);
133
+ if (root === undefined || root.length === 0)
134
+ return undefined;
135
+ return readStatusByRoot(root);
136
+ }
137
+ export async function getExternalSubagentStatusForSession(info) {
138
+ const status = await getExternalSubagentStatusForRun(info.runId);
139
+ if (status !== undefined && statusMatchesSession(status, info.path))
140
+ return status;
141
+ // pi-subagents async status run ids are not always the same as the nested
142
+ // session directory segments that pi-forge discovers in the sidebar. In
143
+ // current pi-subagents, status.json can identify the child by exact
144
+ // `steps[].sessionFile` instead. That path match is the authoritative signal
145
+ // for protecting an externally running child.
146
+ return findExternalSubagentStatusForSessionPath(info.path);
147
+ }
148
+ export async function isExternallyActiveSubagentSession(info) {
149
+ const status = await getExternalSubagentStatusForSession(info);
150
+ return status?.isExternalLive === true;
151
+ }
152
+ export function readSessionMessagesFromDisk(sessionPath, workspacePath) {
153
+ const manager = SessionManager.open(sessionPath, undefined, workspacePath);
154
+ return manager.buildSessionContext().messages;
155
+ }
156
+ function formatCompletionContent(result, status) {
157
+ const state = result?.state === "paused" || status.state === "paused"
158
+ ? "paused"
159
+ : result?.success === false || status.state === "failed"
160
+ ? "failed"
161
+ : "completed";
162
+ const agent = result?.agent ?? result?.results?.[0]?.agent ?? "subagent";
163
+ const summary = result?.summary ??
164
+ result?.results?.[0]?.output ??
165
+ result?.results?.[0]?.error ??
166
+ `(background run ${status.rootRunId} ${state})`;
167
+ const sessionFile = result?.sessionFile ??
168
+ result?.results?.find((r) => typeof r.sessionFile === "string")?.sessionFile ??
169
+ status.sessionFile;
170
+ return [
171
+ `Background task ${state}: **${agent}**`,
172
+ "",
173
+ summary.trim() || "(no output)",
174
+ sessionFile ? "" : undefined,
175
+ sessionFile ? `Session file: ${sessionFile}` : undefined,
176
+ ]
177
+ .filter((line) => line !== undefined)
178
+ .join("\n");
179
+ }
180
+ async function sessionIdFromSessionReference(ref) {
181
+ if (ref === undefined)
182
+ return undefined;
183
+ if (getSession(ref) !== undefined)
184
+ return ref;
185
+ try {
186
+ const firstLine = (await readFile(ref, "utf8")).split(/\r?\n/, 1)[0];
187
+ if (firstLine === undefined)
188
+ return undefined;
189
+ const header = JSON.parse(firstLine);
190
+ return header.type === "session" && typeof header.id === "string" ? header.id : undefined;
191
+ }
192
+ catch {
193
+ return undefined;
194
+ }
195
+ }
196
+ function hasDeliveredCompletionMessage(messages, root, state, content) {
197
+ return messages.some((message) => {
198
+ if (message.role !== "custom" || message.customType !== "subagent-notify")
199
+ return false;
200
+ const details = message.details;
201
+ if (details?.source === "pi-subagents" && details.runId === root && details.state === state) {
202
+ return true;
203
+ }
204
+ // Backward-compatible durable dedupe for notifications written before we
205
+ // started persisting run metadata in details. This also covers SDK versions
206
+ // that might omit details from rebuilt custom-message state. The formatted
207
+ // completion includes the child session file when available, so exact
208
+ // content matching is stable enough to prevent restart replays without
209
+ // suppressing unrelated runs.
210
+ return message.content === content;
211
+ });
212
+ }
213
+ export async function deliverExternalSubagentCompletionForRun(root) {
214
+ const status = await readStatusByRoot(root);
215
+ if (status === undefined || !TERMINAL_STATES.has(status.state))
216
+ return;
217
+ const resultPath = join(SUBAGENTS_RESULTS_DIR, `${root}.json`);
218
+ const result = await readJson(resultPath);
219
+ const parentId = await sessionIdFromSessionReference(result?.sessionId ?? status.parentSessionId);
220
+ if (parentId === undefined)
221
+ return;
222
+ const live = getSession(parentId);
223
+ if (live === undefined)
224
+ return;
225
+ const key = `${parentId}:${root}:${status.state}`;
226
+ if (deliveredCompletionKeys.has(key))
227
+ return;
228
+ const content = formatCompletionContent(result, status);
229
+ if (hasDeliveredCompletionMessage(live.session.messages, root, status.state, content)) {
230
+ deliveredCompletionKeys.add(key);
231
+ return;
232
+ }
233
+ deliveredCompletionKeys.add(key);
234
+ await live.session.sendCustomMessage({
235
+ customType: "subagent-notify",
236
+ content,
237
+ display: true,
238
+ details: { source: "pi-subagents", runId: root, state: status.state },
239
+ }, { triggerTurn: true });
240
+ for (const c of live.clients) {
241
+ c.send({
242
+ type: "session_list_changed",
243
+ sessionId: parentId,
244
+ projectId: live.projectId,
245
+ reason: "subagent_async_complete",
246
+ });
247
+ }
248
+ }
249
+ async function deliverExternalSubagentSessionListChange(root) {
250
+ const status = await readStatusByRoot(root);
251
+ if (status === undefined)
252
+ return;
253
+ const parentId = await sessionIdFromSessionReference(status.parentSessionId);
254
+ if (parentId === undefined)
255
+ return;
256
+ const live = getSession(parentId);
257
+ if (live === undefined)
258
+ return;
259
+ const key = `${parentId}:${root}:${status.state}`;
260
+ if (TERMINAL_STATES.has(status.state)) {
261
+ if (deliveredSessionListKeys.has(key))
262
+ return;
263
+ deliveredSessionListKeys.add(key);
264
+ }
265
+ for (const c of live.clients) {
266
+ c.send({
267
+ type: "session_list_changed",
268
+ sessionId: parentId,
269
+ projectId: live.projectId,
270
+ reason: `subagent_async_${status.state}`,
271
+ });
272
+ }
273
+ }
274
+ async function scanSubagentRuns() {
275
+ let entries;
276
+ try {
277
+ entries = await readdir(SUBAGENTS_ASYNC_DIR);
278
+ }
279
+ catch {
280
+ return;
281
+ }
282
+ await Promise.all(entries.map(async (root) => {
283
+ await deliverExternalSubagentSessionListChange(root);
284
+ await deliverExternalSubagentCompletionForRun(root);
285
+ }));
286
+ }
287
+ export function startExternalSubagentsWatcher() {
288
+ if (watcherStarted)
289
+ return;
290
+ watcherStarted = true;
291
+ void scanSubagentRuns();
292
+ scanTimer = setInterval(() => void scanSubagentRuns(), 3000);
293
+ scanTimer.unref?.();
294
+ try {
295
+ asyncWatcher = watch(SUBAGENTS_ASYNC_DIR, () => void scanSubagentRuns());
296
+ asyncWatcher.unref?.();
297
+ }
298
+ catch {
299
+ // Directory may not exist until pi-subagents first runs. Explicit checks in routes still work.
300
+ }
301
+ try {
302
+ resultsWatcher = watch(SUBAGENTS_RESULTS_DIR, () => void scanSubagentRuns());
303
+ resultsWatcher.unref?.();
304
+ }
305
+ catch {
306
+ // Result files are optional and may be consumed by pi-subagents itself.
307
+ }
308
+ }
309
+ export function stopExternalSubagentsWatcher() {
310
+ asyncWatcher?.close();
311
+ resultsWatcher?.close();
312
+ if (scanTimer !== undefined)
313
+ clearInterval(scanTimer);
314
+ asyncWatcher = undefined;
315
+ resultsWatcher = undefined;
316
+ scanTimer = undefined;
317
+ watcherStarted = false;
318
+ }
319
+ //# sourceMappingURL=subagents-external.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagents-external.js","sourceRoot":"","sources":["../src/subagents-external.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAkB,MAAM,SAAS,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAyCnD,SAAS,wBAAwB,CAAC,KAAa;IAC7C,MAAM,SAAS,GAAG,KAAK;SACpB,IAAI,EAAE;SACN,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC;SACjC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC3B,OAAO,SAAS,IAAI,SAAS,CAAC;AAChC,CAAC;AAED,SAAS,kBAAkB;IACzB,IAAI,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU;QAAE,OAAO,OAAO,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAC3E,KAAK,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAU,EAAE,CAAC;QAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK;YAAE,OAAO,QAAQ,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACxC,IAAI,QAAQ;YAAE,OAAO,QAAQ,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,eAAe;IACjB,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAC5E,IAAI,OAAO;QAAE,OAAO,QAAQ,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;IAChE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAgB,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAC7F,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,mBAAmB,EAAE,wBAAwB,CAAC,CAAC;AACzF,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC;AAEpF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAwB,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;AACzF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAwB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5E,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;AAClD,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAU,CAAC;AACnD,IAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,IAAI,YAAmC,CAAC;AACxC,IAAI,cAAqC,CAAC;AAC1C,IAAI,SAAqC,CAAC;AAE1C,SAAS,SAAS,CAAC,KAAyB;IAC1C,OAAO,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,CACL,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,SAAS;QACnB,KAAK,KAAK,UAAU;QACpB,KAAK,KAAK,QAAQ;QAClB,KAAK,KAAK,QAAQ,CACnB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,QAAQ,CAAI,IAAY;IACrC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAM,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAY;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAClE,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAkB,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IAC/D,MAAM,GAAG,GAA2B;QAClC,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,IAAI;QAC3B,SAAS,EAAE,IAAI;QACf,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,cAAc,EAAE,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/C,UAAU;KACX,CAAC;IACF,IAAI,UAAU,CAAC,UAAU,CAAC;QAAE,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC;IACxD,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QAAE,GAAG,CAAC,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC;IACjF,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;QAAE,GAAG,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IACjF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAA8B,EAC9B,WAA+B;IAE/B,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC3C,OAAO,MAAM,CAAC,WAAW,KAAK,WAAW,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAuB;IACrD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC3E,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QACtC,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,8BAA8B,CAC3C,IAAY,EACZ,WAAmB;IAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAkB,UAAU,CAAC,CAAC;IACxD,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACnD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QAAE,OAAO,SAAS,CAAC;IACzE,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,EAAE,GAAG,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,wCAAwC,CACrD,WAA+B;IAE/B,IAAI,WAAW,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,KAAK,GAAG,MAAM,eAAe,EAAE,CAAC;IACtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,8BAA8B,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACvE,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,KAAyB;IAEzB,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC9D,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mCAAmC,CAAC,IAGzD;IACC,MAAM,MAAM,GAAG,MAAM,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjE,IAAI,MAAM,KAAK,SAAS,IAAI,oBAAoB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC;IAEnF,0EAA0E;IAC1E,wEAAwE;IACxE,oEAAoE;IACpE,6EAA6E;IAC7E,8CAA8C;IAC9C,OAAO,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC,CAAC,IAGvD;IACC,MAAM,MAAM,GAAG,MAAM,mCAAmC,CAAC,IAAI,CAAC,CAAC;IAC/D,OAAO,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,WAAmB,EACnB,aAAqB;IAErB,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAC3E,OAAO,OAAO,CAAC,mBAAmB,EAAE,CAAC,QAAQ,CAAC;AAChD,CAAC;AAED,SAAS,uBAAuB,CAC9B,MAAmC,EACnC,MAA8B;IAE9B,MAAM,KAAK,GACT,MAAM,EAAE,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ;QACrD,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,MAAM,EAAE,OAAO,KAAK,KAAK,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ;YACtD,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,WAAW,CAAC;IACpB,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,UAAU,CAAC;IACzE,MAAM,OAAO,GACX,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM;QAC5B,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK;QAC3B,mBAAmB,MAAM,CAAC,SAAS,IAAI,KAAK,GAAG,CAAC;IAClD,MAAM,WAAW,GACf,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ,CAAC,EAAE,WAAW;QAC5E,MAAM,CAAC,WAAW,CAAC;IACrB,OAAO;QACL,mBAAmB,KAAK,OAAO,KAAK,IAAI;QACxC,EAAE;QACF,OAAO,CAAC,IAAI,EAAE,IAAI,aAAa;QAC/B,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;QAC5B,WAAW,CAAC,CAAC,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;KACzD;SACE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;SACpC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,6BAA6B,CAAC,GAAuB;IAClE,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,CAAC,MAAM,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrE,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAqC,CAAC;QACzE,OAAO,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,6BAA6B,CACpC,QAAiC,EACjC,IAAY,EACZ,KAA4B,EAC5B,OAAe;IAEf,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,UAAU,KAAK,iBAAiB;YAAE,OAAO,KAAK,CAAC;QACxF,MAAM,OAAO,GAAG,OAAO,CAAC,OAEX,CAAC;QACd,IAAI,OAAO,EAAE,MAAM,KAAK,cAAc,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YAC5F,OAAO,IAAI,CAAC;QACd,CAAC;QAED,yEAAyE;QACzE,4EAA4E;QAC5E,2EAA2E;QAC3E,sEAAsE;QACtE,uEAAuE;QACvE,8BAA8B;QAC9B,OAAO,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uCAAuC,CAAC,IAAY;IACxE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,MAAM,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO;IACvE,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAkB,UAAU,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,MAAM,6BAA6B,CAAC,MAAM,EAAE,SAAS,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC;IAClG,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO;IACnC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO;IAC/B,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;IAClD,IAAI,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IAC7C,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxD,IAAI,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QACtF,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IACD,uBAAuB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAClC;QACE,UAAU,EAAE,iBAAiB;QAC7B,OAAO;QACP,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;KACtE,EACD,EAAE,WAAW,EAAE,IAAI,EAAE,CACtB,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC,CAAC,IAAI,CAAC;YACL,IAAI,EAAE,sBAAsB;YAC5B,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,yBAAyB;SAClC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,wCAAwC,CAAC,IAAY;IAClE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO;IACjC,MAAM,QAAQ,GAAG,MAAM,6BAA6B,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAC7E,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO;IACnC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IAClC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO;IAC/B,MAAM,GAAG,GAAG,GAAG,QAAQ,IAAI,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;IAClD,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QACtC,IAAI,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAC9C,wBAAwB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC,CAAC,IAAI,CAAC;YACL,IAAI,EAAE,sBAAsB;YAC5B,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,MAAM,EAAE,kBAAkB,MAAM,CAAC,KAAK,EAAE;SACzC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;IACT,CAAC;IACD,MAAM,OAAO,CAAC,GAAG,CACf,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,wCAAwC,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,uCAAuC,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,IAAI,cAAc;QAAE,OAAO;IAC3B,cAAc,GAAG,IAAI,CAAC;IACtB,KAAK,gBAAgB,EAAE,CAAC;IACxB,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,gBAAgB,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7D,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;IACpB,IAAI,CAAC;QACH,YAAY,GAAG,KAAK,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,KAAK,gBAAgB,EAAE,CAAC,CAAC;QACzE,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,+FAA+F;IACjG,CAAC;IACD,IAAI,CAAC;QACH,cAAc,GAAG,KAAK,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,KAAK,gBAAgB,EAAE,CAAC,CAAC;QAC7E,cAAc,CAAC,KAAK,EAAE,EAAE,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;IAC1E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,4BAA4B;IAC1C,YAAY,EAAE,KAAK,EAAE,CAAC;IACtB,cAAc,EAAE,KAAK,EAAE,CAAC;IACxB,IAAI,SAAS,KAAK,SAAS;QAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACtD,YAAY,GAAG,SAAS,CAAC;IACzB,cAAc,GAAG,SAAS,CAAC;IAC3B,SAAS,GAAG,SAAS,CAAC;IACtB,cAAc,GAAG,KAAK,CAAC;AACzB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-forge",
3
- "version": "1.3.6",
3
+ "version": "1.4.0",
4
4
  "description": "Browser UI for the pi coding agent — embedded HTTP server with a React workbench (chat, file browser, terminal, git, MCP).",
5
5
  "keywords": [
6
6
  "pi",
@@ -52,6 +52,7 @@
52
52
  "exceljs": "^4.4.0",
53
53
  "fastify": "^5.3.2",
54
54
  "jsonwebtoken": "^9.0.2",
55
+ "ldapts": "^8.1.8",
55
56
  "mammoth": "^1.12.0",
56
57
  "node-pty": "^1.0.0",
57
58
  "pdf-parse": "^2.4.5",