piclaw 0.0.4 → 0.0.6
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/.output/nitro.json +1 -1
- package/.output/public/assets/dist-D51xeTP2.js +12 -0
- package/.output/public/assets/index-B3x2_en6.css +1 -0
- package/.output/public/assets/index-SfjxJZSD.js +38 -0
- package/.output/public/assets/md4x-CNLJ57xO.wasm +0 -0
- package/.output/public/assets/md4x-CyfQToGJ.js +1 -0
- package/.output/public/assets/wasm-Cm7RZrwg.js +1 -0
- package/.output/public/icon.svg +25 -0
- package/.output/public/index.html +3 -2
- package/.output/public/manifest.json +1 -1
- package/.output/server/_chunks/bun.mjs +49 -0
- package/.output/server/_chunks/commands.mjs +280 -0
- package/.output/server/_chunks/config.mjs +2 -4
- package/.output/server/_chunks/db.mjs +11 -5
- package/.output/server/_chunks/logger.mjs +1 -1
- package/.output/server/_chunks/node.mjs +31 -0
- package/.output/server/_chunks/ntfy.mjs +45 -0
- package/.output/server/_chunks/pi.mjs +33 -1
- package/.output/server/_chunks/renderer-template.mjs +1 -1
- package/.output/server/_chunks/{bootstrap.mjs → server.mjs} +203 -205
- package/.output/server/_chunks/session.mjs +249 -40
- package/.output/server/_chunks/settings.mjs +1 -1
- package/.output/server/_chunks/terminal.mjs +35 -20
- package/.output/server/_chunks/virtual.mjs +129 -0
- package/.output/server/_jid_.delete.mjs +2 -2
- package/.output/server/_jid_.patch.mjs +30 -3
- package/.output/server/_jid_2.delete.mjs +2 -2
- package/.output/server/_libs/@aws-sdk/client-bedrock-runtime+[...].mjs +13148 -13149
- package/.output/server/_libs/@aws-sdk/credential-provider-http+[...].mjs +1 -1
- package/.output/server/_libs/@aws-sdk/credential-provider-ini+[...].mjs +2 -2
- package/.output/server/_libs/@aws-sdk/credential-provider-process+[...].mjs +1 -1
- package/.output/server/_libs/@aws-sdk/credential-provider-sso+[...].mjs +1 -1
- package/.output/server/_libs/@aws-sdk/credential-provider-web-identity+[...].mjs +1 -1
- package/.output/server/_libs/@google/genai.mjs +2 -2
- package/.output/server/_libs/@mariozechner/pi-agent-core+[...].mjs +40 -74
- package/.output/server/_libs/@mariozechner/pi-coding-agent+[...].mjs +1315 -1210
- package/.output/server/_libs/@smithy/credential-provider-imds+[...].mjs +3 -3
- package/.output/server/_libs/_.mjs +3 -2
- package/.output/server/_libs/_100.mjs +3 -0
- package/.output/server/_libs/_101.mjs +2 -0
- package/.output/server/_libs/_102.mjs +3 -0
- package/.output/server/_libs/_103.mjs +2 -0
- package/.output/server/_libs/_16.mjs +2 -5
- package/.output/server/_libs/_17.mjs +2 -3
- package/.output/server/_libs/_18.mjs +2 -3
- package/.output/server/_libs/_19.mjs +2 -4
- package/.output/server/_libs/_2.mjs +2 -3
- package/.output/server/_libs/_20.mjs +2 -2
- package/.output/server/_libs/_21.mjs +2 -0
- package/.output/server/_libs/_22.mjs +2 -0
- package/.output/server/_libs/_23.mjs +2 -0
- package/.output/server/_libs/_24.mjs +2 -0
- package/.output/server/_libs/_25.mjs +2 -0
- package/.output/server/_libs/_26.mjs +2 -0
- package/.output/server/_libs/_27.mjs +2 -0
- package/.output/server/_libs/_28.mjs +2 -0
- package/.output/server/_libs/_29.mjs +2 -0
- package/.output/server/_libs/_30.mjs +2 -0
- package/.output/server/_libs/_31.mjs +2 -0
- package/.output/server/_libs/_32.mjs +2 -0
- package/.output/server/_libs/_33.mjs +2 -0
- package/.output/server/_libs/_34.mjs +2 -0
- package/.output/server/_libs/_35.mjs +2 -0
- package/.output/server/_libs/_36.mjs +2 -0
- package/.output/server/_libs/_37.mjs +2 -0
- package/.output/server/_libs/_38.mjs +2 -0
- package/.output/server/_libs/_39.mjs +2 -0
- package/.output/server/_libs/_40.mjs +2 -0
- package/.output/server/_libs/_41.mjs +2 -0
- package/.output/server/_libs/_42.mjs +2 -0
- package/.output/server/_libs/_43.mjs +2 -0
- package/.output/server/_libs/_44.mjs +2 -0
- package/.output/server/_libs/_45.mjs +2 -0
- package/.output/server/_libs/_46.mjs +2 -0
- package/.output/server/_libs/_47.mjs +2 -0
- package/.output/server/_libs/_48.mjs +2 -0
- package/.output/server/_libs/_49.mjs +2 -0
- package/.output/server/_libs/_50.mjs +2 -0
- package/.output/server/_libs/_51.mjs +2 -0
- package/.output/server/_libs/_52.mjs +2 -0
- package/.output/server/_libs/_53.mjs +2 -0
- package/.output/server/_libs/_54.mjs +2 -0
- package/.output/server/_libs/_55.mjs +2 -0
- package/.output/server/_libs/_56.mjs +2 -0
- package/.output/server/_libs/_57.mjs +2 -0
- package/.output/server/_libs/_58.mjs +2 -0
- package/.output/server/_libs/_59.mjs +2 -0
- package/.output/server/_libs/_60.mjs +2 -0
- package/.output/server/_libs/_61.mjs +2 -0
- package/.output/server/_libs/_62.mjs +2 -0
- package/.output/server/_libs/_63.mjs +2 -0
- package/.output/server/_libs/_64.mjs +2 -0
- package/.output/server/_libs/_65.mjs +2 -0
- package/.output/server/_libs/_66.mjs +2 -0
- package/.output/server/_libs/_67.mjs +2 -0
- package/.output/server/_libs/_68.mjs +2 -0
- package/.output/server/_libs/_69.mjs +2 -0
- package/.output/server/_libs/_70.mjs +2 -0
- package/.output/server/_libs/_71.mjs +2 -0
- package/.output/server/_libs/_72.mjs +2 -0
- package/.output/server/_libs/_73.mjs +2 -0
- package/.output/server/_libs/_74.mjs +2 -0
- package/.output/server/_libs/_75.mjs +2 -0
- package/.output/server/_libs/_76.mjs +2 -0
- package/.output/server/_libs/_77.mjs +2 -0
- package/.output/server/_libs/_78.mjs +2 -0
- package/.output/server/_libs/_79.mjs +2 -0
- package/.output/server/_libs/_80.mjs +2 -0
- package/.output/server/_libs/_81.mjs +2 -0
- package/.output/server/_libs/_82.mjs +2 -0
- package/.output/server/_libs/_83.mjs +2 -0
- package/.output/server/_libs/_84.mjs +2 -0
- package/.output/server/_libs/_85.mjs +2 -0
- package/.output/server/_libs/_86.mjs +2 -0
- package/.output/server/_libs/_87.mjs +2 -0
- package/.output/server/_libs/_88.mjs +2 -0
- package/.output/server/_libs/_89.mjs +2 -0
- package/.output/server/_libs/_90.mjs +2 -0
- package/.output/server/_libs/_91.mjs +2 -0
- package/.output/server/_libs/_92.mjs +2 -0
- package/.output/server/_libs/_93.mjs +2 -0
- package/.output/server/_libs/_94.mjs +2 -0
- package/.output/server/_libs/_95.mjs +2 -0
- package/.output/server/_libs/_96.mjs +2 -0
- package/.output/server/_libs/_97.mjs +2 -0
- package/.output/server/_libs/_98.mjs +2 -0
- package/.output/server/_libs/_99.mjs +5 -0
- package/.output/server/_libs/amdefine.mjs +188 -0
- package/.output/server/_libs/aws-sdk__nested-clients.mjs +1 -1
- package/.output/server/_libs/compressjs.mjs +50 -0
- package/.output/server/_libs/diff.mjs +137 -0
- package/.output/server/_libs/get-uri.mjs +1 -1
- package/.output/server/_libs/http-proxy-agent.mjs +1 -1
- package/.output/server/_libs/https-proxy-agent.mjs +1 -1
- package/.output/server/_libs/just-bash+[...].mjs +80359 -0
- package/.output/server/_libs/md4x.mjs +73 -0
- package/.output/server/_libs/mixmark-io__domino.mjs +14801 -0
- package/.output/server/_libs/node-fetch.mjs +1 -1
- package/.output/server/_libs/node-liblzma.mjs +1107 -0
- package/.output/server/_libs/pac-proxy-agent+[...].mjs +1 -1
- package/.output/server/_libs/proxy-agent+proxy-from-env.mjs +1 -1
- package/.output/server/_libs/smithy__core.mjs +1 -1
- package/.output/server/_routes/api/files/delete.mjs +2 -2
- package/.output/server/_routes/api/files/groups.mjs +14 -0
- package/.output/server/_routes/api/files/raw.mjs +1 -1
- package/.output/server/_routes/api/files/read.mjs +1 -1
- package/.output/server/_routes/api/files/watch.mjs +1 -1
- package/.output/server/_routes/api/files/write.mjs +3 -2
- package/.output/server/_routes/api/files.mjs +1 -1
- package/.output/server/_routes/api/groups.mjs +2 -2
- package/.output/server/_routes/api/groups2.mjs +3 -2
- package/.output/server/_routes/api/health.mjs +2 -2
- package/.output/server/_routes/api/logs.mjs +4 -2
- package/.output/server/_routes/api/ntfy/setup.mjs +54 -0
- package/.output/server/_routes/api/ntfy/status.mjs +12 -0
- package/.output/server/_routes/api/pi/apikey.mjs +1 -1
- package/.output/server/_routes/api/pi/apikey_providers.mjs +1 -1
- package/.output/server/_routes/api/pi/commands.mjs +6 -0
- package/.output/server/_routes/api/pi/login/events.mjs +1 -1
- package/.output/server/_routes/api/pi/login/respond.mjs +1 -1
- package/.output/server/_routes/api/pi/login.mjs +1 -1
- package/.output/server/_routes/api/pi/logout.mjs +1 -1
- package/.output/server/_routes/api/pi/models.mjs +1 -1
- package/.output/server/_routes/api/pi/status.mjs +1 -1
- package/.output/server/_routes/api/send.mjs +22 -3
- package/.output/server/_routes/api/status.mjs +9 -7
- package/.output/server/_routes/api/tasks2.mjs +2 -2
- package/.output/server/_routes/api/telegram/setup.mjs +2 -2
- package/.output/server/_routes/api/telegram/status.mjs +2 -2
- package/.output/server/_routes/api/terminal2.mjs +3 -2
- package/.output/server/_utils.mjs +12 -4
- package/.output/server/build/md4x.wasm +0 -0
- package/.output/server/index.mjs +223 -149
- package/.output/server/node_modules/@mongodb-js/zstd/lib/index.js +55 -0
- package/.output/server/node_modules/@mongodb-js/zstd/package.json +51 -0
- package/.output/server/package.json +1 -0
- package/README.md +118 -24
- package/bin/piclaw.mjs +39 -1
- package/package.json +16 -13
- package/.output/public/assets/client-TIs-Ghqj.js +0 -9
- package/.output/public/assets/dist-BVjfG3ok.js +0 -12
- package/.output/public/assets/dist-DJh8l6yS.js +0 -1
- package/.output/public/assets/index-BNNEMkNV.js +0 -39
- package/.output/public/assets/index-CdWBxO5V.css +0 -1
- package/.output/public/assets/react-DFP7nCmh.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as __require, t as __commonJSMin } from "../_runtime.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { s as require_src } from "./@mariozechner/pi-coding-agent+[...].mjs";
|
|
3
3
|
import { t as require_dist$3 } from "./agent-base.mjs";
|
|
4
4
|
import { t as require_dist$4 } from "./https-proxy-agent.mjs";
|
|
5
5
|
import { t as require_dist$5 } from "./http-proxy-agent.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as __require, t as __commonJSMin } from "../_runtime.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { s as require_src } from "./@mariozechner/pi-coding-agent+[...].mjs";
|
|
3
3
|
import { t as require_dist$1 } from "./agent-base.mjs";
|
|
4
4
|
import { t as require_dist$2 } from "./https-proxy-agent.mjs";
|
|
5
5
|
import { t as require_lru_cache } from "./lru-cache.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { o as __toCommonJS, t as __commonJSMin } from "../_runtime.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { Ct as dist_es_exports, wt as init_dist_es } from "./@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
3
3
|
var require_event_streams = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
4
4
|
var utilUtf8 = (init_dist_es(), __toCommonJS(dist_es_exports));
|
|
5
5
|
var EventStreamSerde = class {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { a as defineHandler, n as HTTPError } from "../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { r as resolveGroupPath, t as READONLY_FOLDERS } from "../../../_utils.mjs";
|
|
3
3
|
import { rm } from "node:fs/promises";
|
|
4
4
|
var delete_post_default = defineHandler(async (event) => {
|
|
5
5
|
const body = await event.req.json();
|
|
6
6
|
if (!body.path || body.path === "." || body.path === "/") throw new HTTPError("cannot delete group root", { status: 400 });
|
|
7
|
-
if (body.folder
|
|
7
|
+
if (READONLY_FOLDERS.has(body.folder)) throw new HTTPError("folder is read-only", { status: 403 });
|
|
8
8
|
await rm(await resolveGroupPath(body.folder, body.path), { recursive: true });
|
|
9
9
|
return { ok: true };
|
|
10
10
|
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { a as defineHandler } from "../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
+
import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
|
|
3
|
+
import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
4
|
+
import { t as server } from "../../../_chunks/server.mjs";
|
|
5
|
+
import { n as VIRTUAL_GROUPS } from "../../../_utils.mjs";
|
|
6
|
+
var groups_get_default = defineHandler(() => {
|
|
7
|
+
const groups = server.getRegisteredGroups();
|
|
8
|
+
return [...VIRTUAL_GROUPS, ...Object.entries(groups).map(([jid, g]) => ({
|
|
9
|
+
jid,
|
|
10
|
+
name: g.name,
|
|
11
|
+
folder: g.folder
|
|
12
|
+
}))];
|
|
13
|
+
});
|
|
14
|
+
export { groups_get_default as default };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as defineHandler } from "../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { r as resolveGroupPath } from "../../../_utils.mjs";
|
|
3
3
|
import { t as index_lite_default } from "../../../_libs/mime.mjs";
|
|
4
4
|
import { createReadStream } from "node:fs";
|
|
5
5
|
import { stat } from "node:fs/promises";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as defineHandler } from "../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { r as resolveGroupPath } from "../../../_utils.mjs";
|
|
3
3
|
import { readFile } from "node:fs/promises";
|
|
4
4
|
var read_get_default = defineHandler(async (event) => {
|
|
5
5
|
return { content: await readFile(await resolveGroupPath(event.url.searchParams.get("folder") || "", event.url.searchParams.get("path") || ""), "utf-8") };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as defineHandler, i as createEventStream } from "../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { r as resolveGroupPath } from "../../../_utils.mjs";
|
|
3
3
|
import { watch } from "node:fs";
|
|
4
4
|
var watch_get_default = defineHandler(async (event) => {
|
|
5
5
|
const dirPath = await resolveGroupPath(event.url.searchParams.get("folder") || "", event.url.searchParams.get("path") || ".");
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { a as defineHandler } from "../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import {
|
|
1
|
+
import { a as defineHandler, n as HTTPError } from "../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
+
import { r as resolveGroupPath, t as READONLY_FOLDERS } from "../../../_utils.mjs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
5
5
|
var write_post_default = defineHandler(async (event) => {
|
|
6
6
|
const body = await event.req.json();
|
|
7
|
+
if (READONLY_FOLDERS.has(body.folder)) throw new HTTPError("folder is read-only", { status: 403 });
|
|
7
8
|
const filePath = await resolveGroupPath(body.folder, body.path);
|
|
8
9
|
await mkdir(path.dirname(filePath), { recursive: true });
|
|
9
10
|
await writeFile(filePath, body.content, "utf-8");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as defineHandler } from "../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { r as resolveGroupPath } from "../../_utils.mjs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { readdir, stat } from "node:fs/promises";
|
|
5
5
|
var index_get_default = defineHandler(async (event) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as defineHandler } from "../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import "../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
3
2
|
import "../../_libs/@mariozechner/pi-agent-core+[...].mjs";
|
|
4
|
-
import
|
|
3
|
+
import "../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
4
|
+
import { t as server } from "../../_chunks/server.mjs";
|
|
5
5
|
var index_get_default = defineHandler(() => {
|
|
6
6
|
const groups = server.getRegisteredGroups();
|
|
7
7
|
return Object.entries(groups).map(([jid, g]) => ({
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { a as defineHandler, n as HTTPError } from "../../_libs/h3+rou3+srvx.mjs";
|
|
2
2
|
import { t as createLogger } from "../../_chunks/logger.mjs";
|
|
3
|
-
import "../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
4
3
|
import "../../_libs/@mariozechner/pi-agent-core+[...].mjs";
|
|
5
|
-
import
|
|
4
|
+
import "../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
5
|
+
import { t as server } from "../../_chunks/server.mjs";
|
|
6
6
|
var logger = createLogger("api:groups");
|
|
7
7
|
var index_post_default = defineHandler(async (event) => {
|
|
8
8
|
const { jid, name, folder, trigger, model } = await event.req.json();
|
|
@@ -12,6 +12,7 @@ var index_post_default = defineHandler(async (event) => {
|
|
|
12
12
|
folder,
|
|
13
13
|
trigger: trigger || `@${server.assistantName}`,
|
|
14
14
|
requiresTrigger: !!trigger,
|
|
15
|
+
thinkingLevel: "medium",
|
|
15
16
|
added_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
16
17
|
...model ? { model } : {}
|
|
17
18
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as defineHandler } from "../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import "../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
3
2
|
import "../../_libs/@mariozechner/pi-agent-core+[...].mjs";
|
|
4
|
-
import
|
|
3
|
+
import "../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
4
|
+
import { r as startTime } from "../../_chunks/server.mjs";
|
|
5
5
|
var health_get_default = defineHandler(() => ({
|
|
6
6
|
ok: true,
|
|
7
7
|
uptimeMs: Date.now() - startTime
|
|
@@ -11,10 +11,12 @@ var logs_get_default = defineHandler((event) => {
|
|
|
11
11
|
};
|
|
12
12
|
if (event.req.headers.get("accept")?.includes("text/event-stream")) {
|
|
13
13
|
const stream = createEventStream(event);
|
|
14
|
-
const
|
|
14
|
+
const sendLogs = async () => {
|
|
15
15
|
const logs = getSystemLogs(opts);
|
|
16
16
|
await stream.push({ data: JSON.stringify(logs) });
|
|
17
|
-
}
|
|
17
|
+
};
|
|
18
|
+
const interval = setInterval(sendLogs, 1e3);
|
|
19
|
+
sendLogs();
|
|
18
20
|
stream.onClosed(() => {
|
|
19
21
|
clearInterval(interval);
|
|
20
22
|
});
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { a as defineHandler, n as HTTPError } from "../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
+
import { t as createLogger } from "../../../_chunks/logger.mjs";
|
|
3
|
+
import { i as setNtfyConfig, n as getNtfyConfig, r as sendNtfyNotification, t as clearNtfyConfig } from "../../../_chunks/ntfy.mjs";
|
|
4
|
+
var logger = createLogger("api:ntfy");
|
|
5
|
+
var setup_post_default = defineHandler(async (event) => {
|
|
6
|
+
const body = await event.req.json();
|
|
7
|
+
const { action } = body;
|
|
8
|
+
if (action === "disconnect") {
|
|
9
|
+
clearNtfyConfig();
|
|
10
|
+
logger.info("ntfy config removed");
|
|
11
|
+
return {
|
|
12
|
+
ok: true,
|
|
13
|
+
configured: false
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
if (action === "connect") {
|
|
17
|
+
const serverUrl = String(body.serverUrl || "https://ntfy.sh").trim();
|
|
18
|
+
const topic = String(body.topic || "").trim();
|
|
19
|
+
const token = body.token ? String(body.token).trim() : void 0;
|
|
20
|
+
if (!topic) throw new HTTPError("topic is required", { status: 400 });
|
|
21
|
+
setNtfyConfig({
|
|
22
|
+
serverUrl,
|
|
23
|
+
topic,
|
|
24
|
+
...token ? { token } : {}
|
|
25
|
+
});
|
|
26
|
+
logger.info({
|
|
27
|
+
serverUrl,
|
|
28
|
+
topic
|
|
29
|
+
}, "ntfy configured");
|
|
30
|
+
return {
|
|
31
|
+
ok: true,
|
|
32
|
+
configured: true,
|
|
33
|
+
serverUrl,
|
|
34
|
+
topic
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
if (action === "test") {
|
|
38
|
+
const config = getNtfyConfig();
|
|
39
|
+
if (!config) throw new HTTPError("ntfy is not configured", { status: 400 });
|
|
40
|
+
try {
|
|
41
|
+
await sendNtfyNotification(config, {
|
|
42
|
+
title: "PiClaw Test",
|
|
43
|
+
message: "ntfy notification is working!",
|
|
44
|
+
tags: ["white_check_mark", "robot"]
|
|
45
|
+
});
|
|
46
|
+
return { ok: true };
|
|
47
|
+
} catch (err) {
|
|
48
|
+
logger.error({ err }, "ntfy test notification failed");
|
|
49
|
+
throw new HTTPError(`Test failed: ${err instanceof Error ? err.message : String(err)}`, { status: 500 });
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
throw new HTTPError("Invalid action. Use 'connect', 'disconnect', or 'test'", { status: 400 });
|
|
53
|
+
});
|
|
54
|
+
export { setup_post_default as default };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { a as defineHandler } from "../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
+
import { n as getNtfyConfig } from "../../../_chunks/ntfy.mjs";
|
|
3
|
+
var status_get_default = defineHandler(() => {
|
|
4
|
+
const config = getNtfyConfig();
|
|
5
|
+
return {
|
|
6
|
+
configured: !!config,
|
|
7
|
+
serverUrl: config?.serverUrl ?? null,
|
|
8
|
+
topic: config?.topic ?? null,
|
|
9
|
+
hasToken: !!config?.token
|
|
10
|
+
};
|
|
11
|
+
});
|
|
12
|
+
export { status_get_default as default };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as defineHandler, n as HTTPError } from "../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
3
2
|
import { r as modelRegistry, t as authStorage } from "../../../_chunks/session.mjs";
|
|
4
3
|
import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
|
|
4
|
+
import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
5
5
|
import { t as API_KEY_PROVIDERS } from "../../../_chunks/providers.mjs";
|
|
6
6
|
var apikey_post_default = defineHandler(async (event) => {
|
|
7
7
|
const { provider, key } = await event.req.json();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as defineHandler } from "../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
3
2
|
import { t as authStorage } from "../../../_chunks/session.mjs";
|
|
4
3
|
import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
|
|
4
|
+
import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
5
5
|
import { t as API_KEY_PROVIDERS } from "../../../_chunks/providers.mjs";
|
|
6
6
|
var apikey_providers_get_default = defineHandler(() => {
|
|
7
7
|
return API_KEY_PROVIDERS.map((p) => ({
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { a as defineHandler } from "../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
+
import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
|
|
3
|
+
import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
4
|
+
import { t as commandDescriptions } from "../../../_chunks/commands.mjs";
|
|
5
|
+
var commands_get_default = defineHandler(() => commandDescriptions);
|
|
6
|
+
export { commands_get_default as default };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as defineHandler, c as getQuery, i as createEventStream, n as HTTPError } from "../../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import "../../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
3
2
|
import "../../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
|
|
3
|
+
import "../../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
4
4
|
import { t as LoginSession } from "../../../../_chunks/login.mjs";
|
|
5
5
|
var events_get_default = defineHandler((event) => {
|
|
6
6
|
const loginId = getQuery(event).loginId;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as defineHandler, n as HTTPError } from "../../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import "../../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
3
2
|
import "../../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
|
|
3
|
+
import "../../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
4
4
|
import { t as LoginSession } from "../../../../_chunks/login.mjs";
|
|
5
5
|
var respond_post_default = defineHandler(async (event) => {
|
|
6
6
|
const { loginId, value } = await event.req.json();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as defineHandler, n as HTTPError } from "../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
3
2
|
import { t as authStorage } from "../../../_chunks/session.mjs";
|
|
4
3
|
import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
|
|
4
|
+
import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
5
5
|
import { t as LoginSession } from "../../../_chunks/login.mjs";
|
|
6
6
|
var index_post_default = defineHandler(async (event) => {
|
|
7
7
|
const { providerId } = await event.req.json();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as defineHandler, n as HTTPError } from "../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
3
2
|
import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
|
|
3
|
+
import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
4
4
|
import { t as LoginSession } from "../../../_chunks/login.mjs";
|
|
5
5
|
var logout_post_default = defineHandler(async (event) => {
|
|
6
6
|
const { provider } = await event.req.json();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { a as defineHandler } from "../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
3
2
|
import { r as modelRegistry } from "../../../_chunks/session.mjs";
|
|
4
3
|
import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
|
|
4
|
+
import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
5
5
|
import { r as readPiSettings } from "../../../_chunks/settings.mjs";
|
|
6
6
|
var models_get_default = defineHandler(async () => {
|
|
7
7
|
const models = modelRegistry.getAvailable();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { a as defineHandler } from "../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
3
2
|
import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
|
|
3
|
+
import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
4
4
|
import { t as getPiSdkStatus } from "../../../_chunks/pi.mjs";
|
|
5
5
|
var status_get_default = defineHandler(() => getPiSdkStatus());
|
|
6
6
|
export { status_get_default as default };
|
|
@@ -1,14 +1,33 @@
|
|
|
1
1
|
import { a as defineHandler, n as HTTPError } from "../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import "../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
3
2
|
import "../../_libs/@mariozechner/pi-agent-core+[...].mjs";
|
|
3
|
+
import "../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
4
4
|
import { T as storeMessage, w as storeChatMetadata } from "../../_chunks/db.mjs";
|
|
5
|
-
import {
|
|
5
|
+
import { i as tryPriorityCommand, n as tryBashCommand } from "../../_chunks/commands.mjs";
|
|
6
|
+
import { t as server } from "../../_chunks/server.mjs";
|
|
6
7
|
import crypto from "node:crypto";
|
|
7
8
|
var send_post_default = defineHandler(async (event) => {
|
|
8
9
|
const { jid, message, sender } = await event.req.json();
|
|
9
10
|
if (!jid || !message) throw new HTTPError("jid and message required", { status: 400 });
|
|
10
11
|
const senderName = sender || "Admin";
|
|
11
12
|
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
13
|
+
const group = server.getRegisteredGroups()[jid];
|
|
14
|
+
const trimmed = message.trim();
|
|
15
|
+
if (group && tryBashCommand({
|
|
16
|
+
chatJid: jid,
|
|
17
|
+
group,
|
|
18
|
+
server
|
|
19
|
+
}, trimmed)) return {
|
|
20
|
+
ok: true,
|
|
21
|
+
method: "bash_command"
|
|
22
|
+
};
|
|
23
|
+
if (group && tryPriorityCommand({
|
|
24
|
+
chatJid: jid,
|
|
25
|
+
group,
|
|
26
|
+
server
|
|
27
|
+
}, trimmed)) return {
|
|
28
|
+
ok: true,
|
|
29
|
+
method: "priority_command"
|
|
30
|
+
};
|
|
12
31
|
storeMessage({
|
|
13
32
|
id: crypto.randomUUID(),
|
|
14
33
|
chat_jid: jid,
|
|
@@ -20,7 +39,7 @@ var send_post_default = defineHandler(async (event) => {
|
|
|
20
39
|
is_bot_message: false
|
|
21
40
|
});
|
|
22
41
|
storeChatMetadata(jid, now, void 0, "admin");
|
|
23
|
-
if (
|
|
42
|
+
if (group) {
|
|
24
43
|
server.queue.enqueueMessageCheck(jid);
|
|
25
44
|
return {
|
|
26
45
|
ok: true,
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import { a as defineHandler } from "../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import "../../
|
|
2
|
+
import { c as getSystemInfo } from "../../_chunks/session.mjs";
|
|
3
3
|
import "../../_libs/@mariozechner/pi-agent-core+[...].mjs";
|
|
4
|
+
import "../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
4
5
|
import { a as getAllChats, c as getAllTasks } from "../../_chunks/db.mjs";
|
|
5
|
-
import {
|
|
6
|
-
var status_get_default = defineHandler(() => ({
|
|
6
|
+
import { r as startTime, t as server } from "../../_chunks/server.mjs";
|
|
7
|
+
var status_get_default = defineHandler(async () => ({
|
|
7
8
|
uptimeMs: Date.now() - startTime,
|
|
8
|
-
assistantName: server
|
|
9
|
-
groupCount: Object.keys(server
|
|
9
|
+
assistantName: server?.assistantName,
|
|
10
|
+
groupCount: Object.keys(server?.getRegisteredGroups()).length,
|
|
10
11
|
chatCount: getAllChats().length,
|
|
11
12
|
activeTaskCount: getAllTasks().filter((t) => t.status === "active").length,
|
|
12
|
-
activeAgents: server
|
|
13
|
-
queueSize: server
|
|
13
|
+
activeAgents: server?.queue.activeCount,
|
|
14
|
+
queueSize: server?.queue.size,
|
|
15
|
+
systemInfo: await getSystemInfo()
|
|
14
16
|
}));
|
|
15
17
|
export { status_get_default as default };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { a as defineHandler, n as HTTPError } from "../../_libs/h3+rou3+srvx.mjs";
|
|
2
2
|
import { t as createLogger } from "../../_chunks/logger.mjs";
|
|
3
|
-
import "../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
4
3
|
import "../../_libs/@mariozechner/pi-agent-core+[...].mjs";
|
|
4
|
+
import "../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
5
5
|
import { n as createTask } from "../../_chunks/db.mjs";
|
|
6
|
-
import { t as server } from "../../_chunks/
|
|
6
|
+
import { t as server } from "../../_chunks/server.mjs";
|
|
7
7
|
import crypto from "node:crypto";
|
|
8
8
|
var logger = createLogger("api:tasks");
|
|
9
9
|
var index_post_default = defineHandler(async (event) => {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { a as defineHandler, n as HTTPError } from "../../../_libs/h3+rou3+srvx.mjs";
|
|
2
2
|
import { t as createLogger } from "../../../_chunks/logger.mjs";
|
|
3
|
-
import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
4
3
|
import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
|
|
5
|
-
import
|
|
4
|
+
import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
5
|
+
import { t as server } from "../../../_chunks/server.mjs";
|
|
6
6
|
var logger = createLogger("api:telegram");
|
|
7
7
|
var setup_post_default = defineHandler(async (event) => {
|
|
8
8
|
const body = await event.req.json();
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { a as defineHandler } from "../../../_libs/h3+rou3+srvx.mjs";
|
|
2
|
-
import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
3
2
|
import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
|
|
3
|
+
import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
|
|
4
4
|
import { l as getConfig } from "../../../_chunks/db.mjs";
|
|
5
|
-
import { t as server } from "../../../_chunks/
|
|
5
|
+
import { t as server } from "../../../_chunks/server.mjs";
|
|
6
6
|
var status_get_default = defineHandler(() => {
|
|
7
7
|
const config = getConfig("telegram");
|
|
8
8
|
const connected = server.telegram?.isConnected() ?? false;
|
|
@@ -2,11 +2,12 @@ import { a as defineHandler } from "../../_libs/h3+rou3+srvx.mjs";
|
|
|
2
2
|
import { t as terminalManager } from "../../_chunks/terminal.mjs";
|
|
3
3
|
var index_post_default = defineHandler(async (event) => {
|
|
4
4
|
const body = await event.req.json().catch(() => ({}));
|
|
5
|
-
const session = terminalManager.create({
|
|
5
|
+
const session = await terminalManager.create({
|
|
6
6
|
cols: body.cols,
|
|
7
7
|
rows: body.rows,
|
|
8
8
|
cwd: body.cwd,
|
|
9
|
-
label: body.label
|
|
9
|
+
label: body.label,
|
|
10
|
+
virtual: body.virtual
|
|
10
11
|
});
|
|
11
12
|
return {
|
|
12
13
|
id: session.id,
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
import { n as HTTPError } from "./_libs/h3+rou3+srvx.mjs";
|
|
2
2
|
import { r as GROUPS_DIR } from "./_chunks/config.mjs";
|
|
3
3
|
import path from "node:path";
|
|
4
|
-
import { stat } from "node:fs/promises";
|
|
5
4
|
import os from "node:os";
|
|
6
|
-
|
|
5
|
+
import { stat } from "node:fs/promises";
|
|
6
|
+
var HOME_DIR = os.homedir();
|
|
7
|
+
var VIRTUAL_FOLDERS = { "~home": HOME_DIR };
|
|
8
|
+
const READONLY_FOLDERS = new Set(["~home"]);
|
|
9
|
+
const VIRTUAL_GROUPS = [{
|
|
10
|
+
jid: "~home",
|
|
11
|
+
name: "~/",
|
|
12
|
+
folder: "~home",
|
|
13
|
+
readonly: true
|
|
14
|
+
}];
|
|
7
15
|
async function resolveGroupPath(folder, relativePath = ".") {
|
|
8
16
|
if (!folder) throw new HTTPError("folder is required", { status: 400 });
|
|
9
|
-
const groupRoot = folder
|
|
17
|
+
const groupRoot = VIRTUAL_FOLDERS[folder] ?? path.join(GROUPS_DIR, folder);
|
|
10
18
|
const resolved = path.resolve(groupRoot, relativePath);
|
|
11
19
|
if (!resolved.startsWith(groupRoot)) throw new HTTPError("path traversal not allowed", { status: 400 });
|
|
12
20
|
try {
|
|
@@ -17,4 +25,4 @@ async function resolveGroupPath(folder, relativePath = ".") {
|
|
|
17
25
|
}
|
|
18
26
|
return resolved;
|
|
19
27
|
}
|
|
20
|
-
export { resolveGroupPath as t };
|
|
28
|
+
export { VIRTUAL_GROUPS as n, resolveGroupPath as r, READONLY_FOLDERS as t };
|
|
Binary file
|