@runeya/runeya 2.0.23 → 2.0.24
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/index.js +1 -1
- package/package.json +1 -1
- package/{src-3TOPUVAK.js → src-EGBDYHL5.js} +196 -46
- package/src-EGBDYHL5.js.map +1 -0
- package/src-3TOPUVAK.js.map +0 -1
package/index.js
CHANGED
|
@@ -201,7 +201,7 @@ function listenWithRetry(server, port, host, wss, maxRetries = 20, delay = 500)
|
|
|
201
201
|
});
|
|
202
202
|
}
|
|
203
203
|
async function main() {
|
|
204
|
-
const { createLocalServer, pullEnv, PullEnvError } = await import("./src-
|
|
204
|
+
const { createLocalServer, pullEnv, PullEnvError } = await import("./src-EGBDYHL5.js");
|
|
205
205
|
if (isPullEnv) {
|
|
206
206
|
if (!serviceArg) {
|
|
207
207
|
console.error("Error: --service (-s) is required with --pull-env");
|
package/package.json
CHANGED
|
@@ -5671,6 +5671,119 @@ var KanbanStore = class {
|
|
|
5671
5671
|
var kanbanStore = new KanbanStore();
|
|
5672
5672
|
|
|
5673
5673
|
// ../server/src/services/kanban-commands.ts
|
|
5674
|
+
async function executeKanbanCommands(boardId, cardId, commands, conversationId) {
|
|
5675
|
+
if (commands.length === 0) return;
|
|
5676
|
+
let board = await kanbanStore.get(boardId);
|
|
5677
|
+
if (!board) {
|
|
5678
|
+
console.warn(`[kanban-commands] Board ${boardId} not found, skipping ${commands.length} command(s)`);
|
|
5679
|
+
return;
|
|
5680
|
+
}
|
|
5681
|
+
const cardExistsInBoard = () => board.columns.some((col) => col.cards.some((c) => c.id === cardId));
|
|
5682
|
+
if (!cardExistsInBoard()) {
|
|
5683
|
+
for (let attempt = 1; attempt <= 5; attempt++) {
|
|
5684
|
+
console.warn(`[kanban-commands] Card ${cardId} not found in board, retry ${attempt}/5...`);
|
|
5685
|
+
await new Promise((r) => setTimeout(r, 500 * attempt));
|
|
5686
|
+
board = await kanbanStore.get(boardId);
|
|
5687
|
+
if (!board) return;
|
|
5688
|
+
if (cardExistsInBoard()) break;
|
|
5689
|
+
}
|
|
5690
|
+
if (!cardExistsInBoard()) {
|
|
5691
|
+
console.error(`[kanban-commands] Card ${cardId} still not found after retries, skipping ${commands.length} command(s)`);
|
|
5692
|
+
return;
|
|
5693
|
+
}
|
|
5694
|
+
}
|
|
5695
|
+
for (const cmd of commands) {
|
|
5696
|
+
if (cmd.type === "move_card" && cmd.columnTitle) {
|
|
5697
|
+
const moved = moveCard(board, cardId, cmd.columnTitle);
|
|
5698
|
+
if (!moved) console.warn(`[kanban-commands] move_card failed: card=${cardId} target="${cmd.columnTitle}"`);
|
|
5699
|
+
} else if (cmd.type === "add_comment" && cmd.comment) {
|
|
5700
|
+
addComment(board, cardId, cmd.comment, conversationId);
|
|
5701
|
+
} else if (cmd.type === "add_card" && cmd.columnTitle && cmd.cardTitle) {
|
|
5702
|
+
addCardToColumn(board, cmd.columnTitle, cmd.cardTitle, cmd.cardContent);
|
|
5703
|
+
}
|
|
5704
|
+
}
|
|
5705
|
+
await kanbanStore.update({ id: board.id, columns: board.columns });
|
|
5706
|
+
}
|
|
5707
|
+
async function executeKanbanBoardCommands(boardId, commands) {
|
|
5708
|
+
if (commands.length === 0) return;
|
|
5709
|
+
const board = await kanbanStore.get(boardId);
|
|
5710
|
+
if (!board) return;
|
|
5711
|
+
for (const cmd of commands) {
|
|
5712
|
+
if (cmd.type === "add_card" && cmd.columnTitle && cmd.cardTitle) {
|
|
5713
|
+
addCardToColumn(board, cmd.columnTitle, cmd.cardTitle, cmd.cardContent);
|
|
5714
|
+
}
|
|
5715
|
+
}
|
|
5716
|
+
await kanbanStore.update({ id: board.id, columns: board.columns });
|
|
5717
|
+
}
|
|
5718
|
+
function moveCard(board, cardId, targetColTitle) {
|
|
5719
|
+
let sourceCol = "";
|
|
5720
|
+
let card = null;
|
|
5721
|
+
let sourceColIdx = -1;
|
|
5722
|
+
let cardIdx = -1;
|
|
5723
|
+
for (let ci = 0; ci < board.columns.length; ci++) {
|
|
5724
|
+
const col = board.columns[ci];
|
|
5725
|
+
const idx = col.cards.findIndex((c) => c.id === cardId);
|
|
5726
|
+
if (idx !== -1) {
|
|
5727
|
+
sourceCol = col.title;
|
|
5728
|
+
card = col.cards[idx];
|
|
5729
|
+
sourceColIdx = ci;
|
|
5730
|
+
cardIdx = idx;
|
|
5731
|
+
break;
|
|
5732
|
+
}
|
|
5733
|
+
}
|
|
5734
|
+
if (!card || sourceColIdx === -1) return false;
|
|
5735
|
+
const targetCol = board.columns.find(
|
|
5736
|
+
(c) => c.title.toLowerCase() === targetColTitle.toLowerCase()
|
|
5737
|
+
);
|
|
5738
|
+
if (!targetCol) {
|
|
5739
|
+
console.warn(`[kanban-commands] Target column "${targetColTitle}" not found. Available: ${board.columns.map((c) => c.title).join(", ")}`);
|
|
5740
|
+
return false;
|
|
5741
|
+
}
|
|
5742
|
+
if (targetCol.id === board.columns[sourceColIdx].id) return true;
|
|
5743
|
+
board.columns[sourceColIdx].cards.splice(cardIdx, 1);
|
|
5744
|
+
card.order = targetCol.cards.length;
|
|
5745
|
+
card.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
5746
|
+
card.history = [...card.history ?? [], {
|
|
5747
|
+
type: "moved",
|
|
5748
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
5749
|
+
detail: `"${sourceCol}" \u2192 "${targetCol.title}"`,
|
|
5750
|
+
author: "ai"
|
|
5751
|
+
}];
|
|
5752
|
+
targetCol.cards.push(card);
|
|
5753
|
+
return true;
|
|
5754
|
+
}
|
|
5755
|
+
function addCardToColumn(board, columnTitle, cardTitle, cardContent) {
|
|
5756
|
+
const col = board.columns.find((c) => c.title.toLowerCase() === columnTitle.toLowerCase());
|
|
5757
|
+
if (!col) return;
|
|
5758
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
5759
|
+
const card = {
|
|
5760
|
+
id: randomUUID5(),
|
|
5761
|
+
title: cardTitle,
|
|
5762
|
+
markdown: cardContent ?? "",
|
|
5763
|
+
images: [],
|
|
5764
|
+
order: col.cards.length,
|
|
5765
|
+
history: [{ type: "created", timestamp: now, detail: `AI \u2014 In column "${col.title}"` }],
|
|
5766
|
+
createdAt: now,
|
|
5767
|
+
updatedAt: now
|
|
5768
|
+
};
|
|
5769
|
+
col.cards.push(card);
|
|
5770
|
+
}
|
|
5771
|
+
function addComment(board, cardId, comment, conversationId) {
|
|
5772
|
+
for (const col of board.columns) {
|
|
5773
|
+
const card = col.cards.find((c) => c.id === cardId);
|
|
5774
|
+
if (card) {
|
|
5775
|
+
card.history = [...card.history ?? [], {
|
|
5776
|
+
type: "comment",
|
|
5777
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
5778
|
+
detail: comment,
|
|
5779
|
+
author: "ai",
|
|
5780
|
+
...conversationId ? { conversationId } : {}
|
|
5781
|
+
}];
|
|
5782
|
+
card.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
5783
|
+
return;
|
|
5784
|
+
}
|
|
5785
|
+
}
|
|
5786
|
+
}
|
|
5674
5787
|
function generateKanbanSystemPrompt(board, cardId) {
|
|
5675
5788
|
let currentColTitle = "";
|
|
5676
5789
|
let card = null;
|
|
@@ -10701,16 +10814,52 @@ var kanbanQueueRouter = router({
|
|
|
10701
10814
|
})
|
|
10702
10815
|
});
|
|
10703
10816
|
|
|
10704
|
-
// ../server/src/trpc/routers/
|
|
10817
|
+
// ../server/src/trpc/routers/kanban.ts
|
|
10705
10818
|
import { z as z20 } from "zod";
|
|
10819
|
+
var kanbanRouter = router({
|
|
10820
|
+
moveCard: protectedProcedure.input(z20.object({
|
|
10821
|
+
boardId: z20.string().max(128),
|
|
10822
|
+
cardId: z20.string().max(128),
|
|
10823
|
+
targetColumn: z20.string().max(256)
|
|
10824
|
+
})).mutation(async ({ input }) => {
|
|
10825
|
+
await executeKanbanCommands(input.boardId, input.cardId, [
|
|
10826
|
+
{ type: "move_card", columnTitle: input.targetColumn }
|
|
10827
|
+
]);
|
|
10828
|
+
return { ok: true };
|
|
10829
|
+
}),
|
|
10830
|
+
addComment: protectedProcedure.input(z20.object({
|
|
10831
|
+
boardId: z20.string().max(128),
|
|
10832
|
+
cardId: z20.string().max(128),
|
|
10833
|
+
comment: z20.string().max(2e4)
|
|
10834
|
+
})).mutation(async ({ input }) => {
|
|
10835
|
+
await executeKanbanCommands(input.boardId, input.cardId, [
|
|
10836
|
+
{ type: "add_comment", comment: input.comment }
|
|
10837
|
+
]);
|
|
10838
|
+
return { ok: true };
|
|
10839
|
+
}),
|
|
10840
|
+
addCard: protectedProcedure.input(z20.object({
|
|
10841
|
+
boardId: z20.string().max(128),
|
|
10842
|
+
column: z20.string().max(256),
|
|
10843
|
+
title: z20.string().max(512),
|
|
10844
|
+
content: z20.string().max(2e4).optional()
|
|
10845
|
+
})).mutation(async ({ input }) => {
|
|
10846
|
+
await executeKanbanBoardCommands(input.boardId, [
|
|
10847
|
+
{ type: "add_card", columnTitle: input.column, cardTitle: input.title, cardContent: input.content }
|
|
10848
|
+
]);
|
|
10849
|
+
return { ok: true };
|
|
10850
|
+
})
|
|
10851
|
+
});
|
|
10852
|
+
|
|
10853
|
+
// ../server/src/trpc/routers/terminal.ts
|
|
10854
|
+
import { z as z21 } from "zod";
|
|
10706
10855
|
import { TRPCError as TRPCError17 } from "@trpc/server";
|
|
10707
10856
|
var terminalRouter = router({
|
|
10708
10857
|
/** Create a PTY shell session on the target agent */
|
|
10709
|
-
create: protectedProcedure.input(
|
|
10710
|
-
agentId:
|
|
10711
|
-
cwd:
|
|
10712
|
-
cols:
|
|
10713
|
-
rows:
|
|
10858
|
+
create: protectedProcedure.input(z21.object({
|
|
10859
|
+
agentId: z21.string().max(128),
|
|
10860
|
+
cwd: z21.string().max(512).optional(),
|
|
10861
|
+
cols: z21.number().int().min(1).max(512).optional(),
|
|
10862
|
+
rows: z21.number().int().min(1).max(256).optional()
|
|
10714
10863
|
})).mutation(async ({ input }) => {
|
|
10715
10864
|
const result = await agentManager.agentMutation(
|
|
10716
10865
|
input.agentId,
|
|
@@ -10720,10 +10869,10 @@ var terminalRouter = router({
|
|
|
10720
10869
|
return result;
|
|
10721
10870
|
}),
|
|
10722
10871
|
/** Send keystrokes / data to a PTY session */
|
|
10723
|
-
write: protectedProcedure.input(
|
|
10724
|
-
agentId:
|
|
10725
|
-
sessionId:
|
|
10726
|
-
data:
|
|
10872
|
+
write: protectedProcedure.input(z21.object({
|
|
10873
|
+
agentId: z21.string().max(128),
|
|
10874
|
+
sessionId: z21.string().max(128),
|
|
10875
|
+
data: z21.string().max(65536)
|
|
10727
10876
|
})).mutation(async ({ input }) => {
|
|
10728
10877
|
await agentManager.agentMutation(
|
|
10729
10878
|
input.agentId,
|
|
@@ -10733,11 +10882,11 @@ var terminalRouter = router({
|
|
|
10733
10882
|
return { ok: true };
|
|
10734
10883
|
}),
|
|
10735
10884
|
/** Resize the PTY */
|
|
10736
|
-
resize: protectedProcedure.input(
|
|
10737
|
-
agentId:
|
|
10738
|
-
sessionId:
|
|
10739
|
-
cols:
|
|
10740
|
-
rows:
|
|
10885
|
+
resize: protectedProcedure.input(z21.object({
|
|
10886
|
+
agentId: z21.string().max(128),
|
|
10887
|
+
sessionId: z21.string().max(128),
|
|
10888
|
+
cols: z21.number().int().min(1).max(512),
|
|
10889
|
+
rows: z21.number().int().min(1).max(256)
|
|
10741
10890
|
})).mutation(async ({ input }) => {
|
|
10742
10891
|
await agentManager.agentMutation(
|
|
10743
10892
|
input.agentId,
|
|
@@ -10747,9 +10896,9 @@ var terminalRouter = router({
|
|
|
10747
10896
|
return { ok: true };
|
|
10748
10897
|
}),
|
|
10749
10898
|
/** Destroy a PTY session */
|
|
10750
|
-
destroy: protectedProcedure.input(
|
|
10751
|
-
agentId:
|
|
10752
|
-
sessionId:
|
|
10899
|
+
destroy: protectedProcedure.input(z21.object({
|
|
10900
|
+
agentId: z21.string().max(128),
|
|
10901
|
+
sessionId: z21.string().max(128)
|
|
10753
10902
|
})).mutation(async ({ input }) => {
|
|
10754
10903
|
await agentManager.agentMutation(
|
|
10755
10904
|
input.agentId,
|
|
@@ -10759,9 +10908,9 @@ var terminalRouter = router({
|
|
|
10759
10908
|
return { ok: true };
|
|
10760
10909
|
}),
|
|
10761
10910
|
/** Stream PTY output — proxied via AgentWSBridge dynamic subscription */
|
|
10762
|
-
onData: protectedProcedure.input(
|
|
10763
|
-
agentId:
|
|
10764
|
-
sessionId:
|
|
10911
|
+
onData: protectedProcedure.input(z21.object({
|
|
10912
|
+
agentId: z21.string().max(128),
|
|
10913
|
+
sessionId: z21.string().max(128)
|
|
10765
10914
|
})).subscription(async function* ({ input }) {
|
|
10766
10915
|
const queue = [];
|
|
10767
10916
|
let resolve6 = null;
|
|
@@ -10810,11 +10959,11 @@ var terminalRouter = router({
|
|
|
10810
10959
|
});
|
|
10811
10960
|
|
|
10812
10961
|
// ../server/src/trpc/routers/utility.ts
|
|
10813
|
-
import { z as
|
|
10962
|
+
import { z as z22 } from "zod";
|
|
10814
10963
|
var MAX_WAIT_MS = 5 * 60 * 1e3;
|
|
10815
10964
|
var utilityRouter = router({
|
|
10816
|
-
wait: protectedProcedure.input(
|
|
10817
|
-
ms:
|
|
10965
|
+
wait: protectedProcedure.input(z22.object({
|
|
10966
|
+
ms: z22.number().int().min(0).max(MAX_WAIT_MS)
|
|
10818
10967
|
})).mutation(async ({ input }) => {
|
|
10819
10968
|
await new Promise((resolve6) => setTimeout(resolve6, input.ms));
|
|
10820
10969
|
return { waited: input.ms };
|
|
@@ -10822,15 +10971,15 @@ var utilityRouter = router({
|
|
|
10822
10971
|
});
|
|
10823
10972
|
|
|
10824
10973
|
// ../server/src/trpc/routers/wiki.ts
|
|
10825
|
-
import { z as
|
|
10974
|
+
import { z as z23 } from "zod";
|
|
10826
10975
|
import { TRPCError as TRPCError18 } from "@trpc/server";
|
|
10827
10976
|
import { readFile as readFile13, readdir as readdir5, stat as stat3, realpath, writeFile as writeFile11, mkdir as mkdir14, rename as rename10, rm as rm2 } from "fs/promises";
|
|
10828
10977
|
import { resolve as resolvePath, join as join16, relative, sep as sep3, dirname as dirname3 } from "path";
|
|
10829
|
-
var SCOPE_SCHEMA =
|
|
10830
|
-
|
|
10831
|
-
|
|
10978
|
+
var SCOPE_SCHEMA = z23.union([
|
|
10979
|
+
z23.literal("global"),
|
|
10980
|
+
z23.string().regex(/^service:[A-Za-z0-9_-]{1,128}$/, "Invalid service scope")
|
|
10832
10981
|
]);
|
|
10833
|
-
var REL_PATH_SCHEMA =
|
|
10982
|
+
var REL_PATH_SCHEMA = z23.string().min(1).max(512).regex(/^[A-Za-z0-9_./-]+$/).refine((p) => !p.includes("..") && !p.startsWith("/"), {
|
|
10834
10983
|
message: "Path must be a relative path without traversal"
|
|
10835
10984
|
});
|
|
10836
10985
|
var MAX_FILES = 500;
|
|
@@ -10850,9 +10999,9 @@ var IGNORED_DIRS = /* @__PURE__ */ new Set([
|
|
|
10850
10999
|
"target",
|
|
10851
11000
|
"out"
|
|
10852
11001
|
]);
|
|
10853
|
-
var DocsEntrySchema =
|
|
10854
|
-
|
|
10855
|
-
|
|
11002
|
+
var DocsEntrySchema = z23.lazy(() => z23.union([
|
|
11003
|
+
z23.object({ type: z23.literal("file"), name: z23.string(), path: z23.string() }),
|
|
11004
|
+
z23.object({ type: z23.literal("dir"), name: z23.string(), path: z23.string(), children: z23.array(DocsEntrySchema) })
|
|
10856
11005
|
]));
|
|
10857
11006
|
async function resolveScope(scope) {
|
|
10858
11007
|
if (scope === "global") {
|
|
@@ -10942,7 +11091,7 @@ async function resolveSafeLocal(root, relPath, requireExist) {
|
|
|
10942
11091
|
return resolvePath(realParent, target.slice(parent.length).replace(/^[\\/]+/, ""));
|
|
10943
11092
|
}
|
|
10944
11093
|
var wikiRouter = router({
|
|
10945
|
-
list: protectedProcedure.input(
|
|
11094
|
+
list: protectedProcedure.input(z23.object({ scope: SCOPE_SCHEMA })).output(z23.object({ root: z23.string(), entries: z23.array(DocsEntrySchema), truncated: z23.boolean() })).query(async ({ input }) => {
|
|
10946
11095
|
const target = await resolveScope(input.scope);
|
|
10947
11096
|
if (target.mode === "agent") {
|
|
10948
11097
|
return agentManager.agentQuery(target.agentId, "wiki.listRepoMarkdown", { cwd: target.cwd });
|
|
@@ -10951,7 +11100,7 @@ var wikiRouter = router({
|
|
|
10951
11100
|
const entries = await walkLocal(target.root, target.root, 0, counter);
|
|
10952
11101
|
return { root: target.root, entries, truncated: counter.n >= MAX_FILES };
|
|
10953
11102
|
}),
|
|
10954
|
-
read: protectedProcedure.input(
|
|
11103
|
+
read: protectedProcedure.input(z23.object({ scope: SCOPE_SCHEMA, path: REL_PATH_SCHEMA })).output(z23.object({ path: z23.string(), content: z23.string() })).query(async ({ input }) => {
|
|
10955
11104
|
if (!/\.(md|markdown)$/i.test(input.path)) {
|
|
10956
11105
|
throw new TRPCError18({ code: "BAD_REQUEST", message: "Seuls les .md/.markdown sont autoris\xE9s" });
|
|
10957
11106
|
}
|
|
@@ -10966,7 +11115,7 @@ var wikiRouter = router({
|
|
|
10966
11115
|
const content = await readFile13(file, "utf-8");
|
|
10967
11116
|
return { path: input.path, content };
|
|
10968
11117
|
}),
|
|
10969
|
-
write: protectedProcedure.input(
|
|
11118
|
+
write: protectedProcedure.input(z23.object({ scope: SCOPE_SCHEMA, path: REL_PATH_SCHEMA, content: z23.string().max(5e6) })).mutation(async ({ input }) => {
|
|
10970
11119
|
if (!/\.(md|markdown)$/i.test(input.path)) {
|
|
10971
11120
|
throw new TRPCError18({ code: "BAD_REQUEST", message: "Seuls les .md/.markdown sont autoris\xE9s" });
|
|
10972
11121
|
}
|
|
@@ -10979,7 +11128,7 @@ var wikiRouter = router({
|
|
|
10979
11128
|
await writeFile11(file, input.content, "utf-8");
|
|
10980
11129
|
return { path: input.path, ok: true };
|
|
10981
11130
|
}),
|
|
10982
|
-
createFile: protectedProcedure.input(
|
|
11131
|
+
createFile: protectedProcedure.input(z23.object({ scope: SCOPE_SCHEMA, path: REL_PATH_SCHEMA })).mutation(async ({ input }) => {
|
|
10983
11132
|
if (!/\.(md|markdown)$/i.test(input.path)) {
|
|
10984
11133
|
throw new TRPCError18({ code: "BAD_REQUEST", message: "Seuls les .md/.markdown sont autoris\xE9s" });
|
|
10985
11134
|
}
|
|
@@ -10998,7 +11147,7 @@ var wikiRouter = router({
|
|
|
10998
11147
|
await writeFile11(file, "", "utf-8");
|
|
10999
11148
|
return { path: input.path, ok: true };
|
|
11000
11149
|
}),
|
|
11001
|
-
createDir: protectedProcedure.input(
|
|
11150
|
+
createDir: protectedProcedure.input(z23.object({ scope: SCOPE_SCHEMA, path: REL_PATH_SCHEMA })).mutation(async ({ input }) => {
|
|
11002
11151
|
const target = await resolveScope(input.scope);
|
|
11003
11152
|
if (target.mode === "agent") {
|
|
11004
11153
|
return agentManager.agentMutation(target.agentId, "wiki.createDir", { cwd: target.cwd, path: input.path });
|
|
@@ -11007,7 +11156,7 @@ var wikiRouter = router({
|
|
|
11007
11156
|
await mkdir14(dir, { recursive: true });
|
|
11008
11157
|
return { path: input.path, ok: true };
|
|
11009
11158
|
}),
|
|
11010
|
-
rename: protectedProcedure.input(
|
|
11159
|
+
rename: protectedProcedure.input(z23.object({ scope: SCOPE_SCHEMA, fromPath: REL_PATH_SCHEMA, toPath: REL_PATH_SCHEMA })).mutation(async ({ input }) => {
|
|
11011
11160
|
const target = await resolveScope(input.scope);
|
|
11012
11161
|
if (target.mode === "agent") {
|
|
11013
11162
|
return agentManager.agentMutation(target.agentId, "wiki.renamePath", { cwd: target.cwd, fromPath: input.fromPath, toPath: input.toPath });
|
|
@@ -11024,7 +11173,7 @@ var wikiRouter = router({
|
|
|
11024
11173
|
await rename10(from, to);
|
|
11025
11174
|
return { fromPath: input.fromPath, toPath: input.toPath, ok: true };
|
|
11026
11175
|
}),
|
|
11027
|
-
ensureRoot: protectedProcedure.input(
|
|
11176
|
+
ensureRoot: protectedProcedure.input(z23.object({ scope: SCOPE_SCHEMA })).mutation(async ({ input }) => {
|
|
11028
11177
|
if (input.scope === "global") {
|
|
11029
11178
|
await resolveScope("global");
|
|
11030
11179
|
return { ok: true };
|
|
@@ -11037,7 +11186,7 @@ var wikiRouter = router({
|
|
|
11037
11186
|
const cwd = (service.docsPath?.trim() || service.cwd || ".").toString();
|
|
11038
11187
|
return agentManager.agentMutation(agentId, "wiki.ensureRoot", { cwd });
|
|
11039
11188
|
}),
|
|
11040
|
-
delete: protectedProcedure.input(
|
|
11189
|
+
delete: protectedProcedure.input(z23.object({ scope: SCOPE_SCHEMA, path: REL_PATH_SCHEMA })).mutation(async ({ input }) => {
|
|
11041
11190
|
const target = await resolveScope(input.scope);
|
|
11042
11191
|
if (target.mode === "agent") {
|
|
11043
11192
|
return agentManager.agentMutation(target.agentId, "wiki.deletePath", { cwd: target.cwd, path: input.path });
|
|
@@ -11058,7 +11207,7 @@ var configRouter = router({
|
|
|
11058
11207
|
});
|
|
11059
11208
|
|
|
11060
11209
|
// ../server/src/trpc/routers/cloud-sync.ts
|
|
11061
|
-
import { z as
|
|
11210
|
+
import { z as z24 } from "zod";
|
|
11062
11211
|
import { TRPCError as TRPCError19 } from "@trpc/server";
|
|
11063
11212
|
|
|
11064
11213
|
// ../server/src/services/cloud-sync-store.ts
|
|
@@ -11682,9 +11831,9 @@ var cloudSyncRouter = router({
|
|
|
11682
11831
|
* to sync a project whose secrets will not open.
|
|
11683
11832
|
*/
|
|
11684
11833
|
link: protectedProcedure.input(
|
|
11685
|
-
|
|
11686
|
-
orgId:
|
|
11687
|
-
cloudUrl:
|
|
11834
|
+
z24.object({
|
|
11835
|
+
orgId: z24.string().min(1).max(128),
|
|
11836
|
+
cloudUrl: z24.string().url().max(2048)
|
|
11688
11837
|
})
|
|
11689
11838
|
).mutation(async ({ input }) => {
|
|
11690
11839
|
await reconcileOrgCanary(input.orgId);
|
|
@@ -11693,7 +11842,7 @@ var cloudSyncRouter = router({
|
|
|
11693
11842
|
return { success: true };
|
|
11694
11843
|
}),
|
|
11695
11844
|
/** Stop syncing an org and forget its token. */
|
|
11696
|
-
unlink: protectedProcedure.input(
|
|
11845
|
+
unlink: protectedProcedure.input(z24.object({ orgId: z24.string().min(1).max(128) })).mutation(async ({ input }) => {
|
|
11697
11846
|
cloudSyncBridge.disconnect(input.orgId);
|
|
11698
11847
|
await cloudSyncStore.remove(input.orgId);
|
|
11699
11848
|
return { success: true };
|
|
@@ -11731,6 +11880,7 @@ var appRouter = router({
|
|
|
11731
11880
|
git: gitRouter,
|
|
11732
11881
|
debug: debugRouter,
|
|
11733
11882
|
kanbanQueue: kanbanQueueRouter,
|
|
11883
|
+
kanban: kanbanRouter,
|
|
11734
11884
|
terminal: terminalRouter,
|
|
11735
11885
|
utility: utilityRouter,
|
|
11736
11886
|
wiki: wikiRouter,
|
|
@@ -13811,4 +13961,4 @@ export {
|
|
|
13811
13961
|
createLocalServer,
|
|
13812
13962
|
pullEnv
|
|
13813
13963
|
};
|
|
13814
|
-
//# sourceMappingURL=src-
|
|
13964
|
+
//# sourceMappingURL=src-EGBDYHL5.js.map
|