@jait/gateway 0.1.446 → 0.1.448
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/dist/db/migrations.d.ts.map +1 -1
- package/dist/db/migrations.js +24 -0
- package/dist/db/migrations.js.map +1 -1
- package/dist/db/schema.d.ts +216 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +18 -1
- package/dist/db/schema.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -1
- package/dist/routes/secrets.d.ts +2 -1
- package/dist/routes/secrets.d.ts.map +1 -1
- package/dist/routes/secrets.js +49 -1
- package/dist/routes/secrets.js.map +1 -1
- package/dist/routes/user-questions.d.ts +5 -0
- package/dist/routes/user-questions.d.ts.map +1 -0
- package/dist/routes/user-questions.js +55 -0
- package/dist/routes/user-questions.js.map +1 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +5 -1
- package/dist/server.js.map +1 -1
- package/dist/services/secret-input.d.ts +8 -0
- package/dist/services/secret-input.d.ts.map +1 -1
- package/dist/services/secret-input.js +4 -0
- package/dist/services/secret-input.js.map +1 -1
- package/dist/services/user-questions.d.ts +57 -0
- package/dist/services/user-questions.d.ts.map +1 -0
- package/dist/services/user-questions.js +74 -0
- package/dist/services/user-questions.js.map +1 -0
- package/dist/services/user-secrets.d.ts +24 -0
- package/dist/services/user-secrets.d.ts.map +1 -0
- package/dist/services/user-secrets.js +135 -0
- package/dist/services/user-secrets.js.map +1 -0
- package/dist/tools/index.d.ts +5 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +6 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/ssh-tools.d.ts +3 -2
- package/dist/tools/ssh-tools.d.ts.map +1 -1
- package/dist/tools/ssh-tools.js +37 -14
- package/dist/tools/ssh-tools.js.map +1 -1
- package/dist/tools/tool-names.d.ts +1 -0
- package/dist/tools/tool-names.d.ts.map +1 -1
- package/dist/tools/tool-names.js +1 -0
- package/dist/tools/tool-names.js.map +1 -1
- package/dist/tools/user-question-tools.d.ts +21 -0
- package/dist/tools/user-question-tools.d.ts.map +1 -0
- package/dist/tools/user-question-tools.js +102 -0
- package/dist/tools/user-question-tools.js.map +1 -0
- package/package.json +2 -2
- package/web-dist/assets/{_basePickBy-C0xeMzCL.js → _basePickBy-Bc6UdCdT.js} +1 -1
- package/web-dist/assets/{_baseUniq-Cpdd1tWi.js → _baseUniq-DzUyT7Ee.js} +1 -1
- package/web-dist/assets/{arc-DDghAyfu.js → arc-ChGEqaKj.js} +1 -1
- package/web-dist/assets/{architectureDiagram-2XIMDMQ5-7aPVlRJf.js → architectureDiagram-2XIMDMQ5-BRcWEEPa.js} +1 -1
- package/web-dist/assets/{blockDiagram-WCTKOSBZ-Dl78blHG.js → blockDiagram-WCTKOSBZ-Bh2AAS5z.js} +1 -1
- package/web-dist/assets/{c4Diagram-IC4MRINW-B2wl4mK7.js → c4Diagram-IC4MRINW-B-GUekEC.js} +1 -1
- package/web-dist/assets/channel-DEeHX2qe.js +1 -0
- package/web-dist/assets/{chunk-4BX2VUAB-CFyL6aiX.js → chunk-4BX2VUAB-C9XAkN98.js} +1 -1
- package/web-dist/assets/{chunk-55IACEB6-9wd7GXuK.js → chunk-55IACEB6-DEi50I4F.js} +1 -1
- package/web-dist/assets/{chunk-FMBD7UC4-CQ82NDdR.js → chunk-FMBD7UC4-DhfCvr_U.js} +1 -1
- package/web-dist/assets/{chunk-JSJVCQXG-Y0Xr5a6D.js → chunk-JSJVCQXG-Cl2B84-o.js} +1 -1
- package/web-dist/assets/{chunk-KX2RTZJC-Z8E9D02W.js → chunk-KX2RTZJC-5TDNeZs6.js} +1 -1
- package/web-dist/assets/{chunk-NQ4KR5QH-uaZGuHDD.js → chunk-NQ4KR5QH-C7nV19Rf.js} +1 -1
- package/web-dist/assets/{chunk-QZHKN3VN-BMT2EPyC.js → chunk-QZHKN3VN-DjTQjo5o.js} +1 -1
- package/web-dist/assets/{chunk-WL4C6EOR-khAV39Vx.js → chunk-WL4C6EOR-C1y8LiwK.js} +1 -1
- package/web-dist/assets/classDiagram-VBA2DB6C-NSujoGVP.js +1 -0
- package/web-dist/assets/classDiagram-v2-RAHNMMFH-NSujoGVP.js +1 -0
- package/web-dist/assets/clone-gQx_UC94.js +1 -0
- package/web-dist/assets/{cose-bilkent-S5V4N54A-DHsyHTZd.js → cose-bilkent-S5V4N54A-DWZuetCQ.js} +1 -1
- package/web-dist/assets/{dagre-KLK3FWXG-oK4s-Hdt.js → dagre-KLK3FWXG-BguFlSu8.js} +1 -1
- package/web-dist/assets/{diagram-E7M64L7V-C8k51-cC.js → diagram-E7M64L7V-BHoXHTBQ.js} +1 -1
- package/web-dist/assets/{diagram-IFDJBPK2-EwISt7PA.js → diagram-IFDJBPK2-BH1KuVoR.js} +1 -1
- package/web-dist/assets/{diagram-P4PSJMXO-ySZDscia.js → diagram-P4PSJMXO-DzmI92wi.js} +1 -1
- package/web-dist/assets/{erDiagram-INFDFZHY-EVWjA3sf.js → erDiagram-INFDFZHY-DhPySoRH.js} +1 -1
- package/web-dist/assets/{flowDiagram-PKNHOUZH-zj5HRAsJ.js → flowDiagram-PKNHOUZH-B8rsLK73.js} +1 -1
- package/web-dist/assets/{ganttDiagram-A5KZAMGK-Bp5NgGcR.js → ganttDiagram-A5KZAMGK-C9PzafWj.js} +1 -1
- package/web-dist/assets/{gitGraphDiagram-K3NZZRJ6-0-hbfXPF.js → gitGraphDiagram-K3NZZRJ6-B63xW-2Q.js} +1 -1
- package/web-dist/assets/{graph-BggyKMfo.js → graph-C9mMDCcr.js} +1 -1
- package/web-dist/assets/index-3BL6LO8a.css +32 -0
- package/web-dist/assets/{index-Bd1Lr-k3.js → index-BMYCqYkB.js} +1 -1
- package/web-dist/assets/{index-Bo7mi4sI.js → index-BPwPJpYZ.js} +369 -364
- package/web-dist/assets/{index-vH_IM2Q6.js → index-DSjk8m2P.js} +1 -1
- package/web-dist/assets/{infoDiagram-LFFYTUFH-DrlqUeU4.js → infoDiagram-LFFYTUFH-WJ7KdTZP.js} +1 -1
- package/web-dist/assets/{ishikawaDiagram-PHBUUO56-C3SnWGNp.js → ishikawaDiagram-PHBUUO56-lHMnXc_C.js} +1 -1
- package/web-dist/assets/{journeyDiagram-4ABVD52K-DEeW_yOb.js → journeyDiagram-4ABVD52K-CMc4-04T.js} +1 -1
- package/web-dist/assets/{kanban-definition-K7BYSVSG-FM29gKpg.js → kanban-definition-K7BYSVSG-BEKroW9P.js} +1 -1
- package/web-dist/assets/{layout-Bbnt-sKP.js → layout-CwEchOb5.js} +1 -1
- package/web-dist/assets/{linear-DIEA_S_R.js → linear-BFaxdUXA.js} +1 -1
- package/web-dist/assets/{mindmap-definition-YRQLILUH-D-8c-93p.js → mindmap-definition-YRQLILUH-CCfHUOkA.js} +1 -1
- package/web-dist/assets/{pieDiagram-SKSYHLDU-srcpZS8v.js → pieDiagram-SKSYHLDU-Bzw8nMCN.js} +1 -1
- package/web-dist/assets/{quadrantDiagram-337W2JSQ-BV5SE8BI.js → quadrantDiagram-337W2JSQ-CJHrd5YD.js} +1 -1
- package/web-dist/assets/{requirementDiagram-Z7DCOOCP-EaiMvJWs.js → requirementDiagram-Z7DCOOCP-BWrRSM45.js} +1 -1
- package/web-dist/assets/{sankeyDiagram-WA2Y5GQK-lAl01ROV.js → sankeyDiagram-WA2Y5GQK-g-r8jr9g.js} +1 -1
- package/web-dist/assets/{sequenceDiagram-2WXFIKYE-BCmIdbbn.js → sequenceDiagram-2WXFIKYE-Bm0p0GzV.js} +1 -1
- package/web-dist/assets/{stateDiagram-RAJIS63D-BV4lQzYf.js → stateDiagram-RAJIS63D-LpyCbpJS.js} +1 -1
- package/web-dist/assets/stateDiagram-v2-FVOUBMTO-JC4WIlrr.js +1 -0
- package/web-dist/assets/{timeline-definition-YZTLITO2-Z9qknQl4.js → timeline-definition-YZTLITO2-CPrHf7SM.js} +1 -1
- package/web-dist/assets/{treemap-KZPCXAKY-DelChN1K.js → treemap-KZPCXAKY-B756_pbl.js} +1 -1
- package/web-dist/assets/{vennDiagram-LZ73GAT5-Dq4AW_h7.js → vennDiagram-LZ73GAT5-Cz5ojK-9.js} +1 -1
- package/web-dist/assets/{xychartDiagram-JWTSCODW-NnFseC2a.js → xychartDiagram-JWTSCODW-99aPXl3C.js} +1 -1
- package/web-dist/index.html +2 -2
- package/web-dist/assets/channel-BuilH7Pv.js +0 -1
- package/web-dist/assets/classDiagram-VBA2DB6C-CgHdYKIM.js +0 -1
- package/web-dist/assets/classDiagram-v2-RAHNMMFH-CgHdYKIM.js +0 -1
- package/web-dist/assets/clone-4Hng0_3M.js +0 -1
- package/web-dist/assets/index-Cq8IOQ36.css +0 -32
- package/web-dist/assets/stateDiagram-v2-FVOUBMTO-CIxheqQG.js +0 -1
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export interface UserQuestionOption {
|
|
2
|
+
label: string;
|
|
3
|
+
description?: string;
|
|
4
|
+
recommended?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface UserQuestion {
|
|
7
|
+
id: string;
|
|
8
|
+
header: string;
|
|
9
|
+
question: string;
|
|
10
|
+
multiSelect?: boolean;
|
|
11
|
+
options?: UserQuestionOption[];
|
|
12
|
+
allowFreeformInput?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface UserQuestionAnswer {
|
|
15
|
+
selected: string[];
|
|
16
|
+
freeText: string | null;
|
|
17
|
+
skipped: boolean;
|
|
18
|
+
}
|
|
19
|
+
export interface UserQuestionRequest {
|
|
20
|
+
id: string;
|
|
21
|
+
sessionId: string;
|
|
22
|
+
userId: string | null;
|
|
23
|
+
requestedBy: string | null;
|
|
24
|
+
title: string;
|
|
25
|
+
questions: UserQuestion[];
|
|
26
|
+
createdAt: string;
|
|
27
|
+
expiresAt: string;
|
|
28
|
+
status: "pending" | "submitted" | "cancelled" | "timeout";
|
|
29
|
+
}
|
|
30
|
+
export interface UserQuestionResult {
|
|
31
|
+
answers: Record<string, UserQuestionAnswer>;
|
|
32
|
+
}
|
|
33
|
+
export interface UserQuestionServiceOptions {
|
|
34
|
+
defaultTimeoutMs?: number;
|
|
35
|
+
onRequest?: (request: UserQuestionRequest) => void;
|
|
36
|
+
onResolved?: (request: UserQuestionRequest) => void;
|
|
37
|
+
}
|
|
38
|
+
export declare class UserQuestionService {
|
|
39
|
+
private readonly pending;
|
|
40
|
+
private readonly defaultTimeoutMs;
|
|
41
|
+
private readonly onRequest?;
|
|
42
|
+
private readonly onResolved?;
|
|
43
|
+
constructor(options?: UserQuestionServiceOptions);
|
|
44
|
+
ask(input: {
|
|
45
|
+
sessionId: string;
|
|
46
|
+
userId?: string | null;
|
|
47
|
+
requestedBy?: string | null;
|
|
48
|
+
title?: string;
|
|
49
|
+
questions: UserQuestion[];
|
|
50
|
+
timeoutMs?: number;
|
|
51
|
+
}): Promise<UserQuestionResult | null>;
|
|
52
|
+
listPending(sessionId?: string, userId?: string | null): UserQuestionRequest[];
|
|
53
|
+
submit(requestId: string, result: UserQuestionResult, userId?: string | null): boolean;
|
|
54
|
+
cancel(requestId: string, userId?: string | null): boolean;
|
|
55
|
+
private resolveRequest;
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=user-questions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-questions.d.ts","sourceRoot":"","sources":["../../src/services/user-questions.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,YAAY,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;CAC3D;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC7C;AAQD,MAAM,WAAW,0BAA0B;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACnD,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;CACrD;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAClE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAyC;IACpE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAyC;gBAEzD,OAAO,GAAE,0BAA+B;IAMpD,GAAG,CAAC,KAAK,EAAE;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,YAAY,EAAE,CAAC;QAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAwBtC,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,mBAAmB,EAAE;IAU9E,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAQtF,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAQ1D,OAAO,CAAC,cAAc;CAavB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { uuidv7 } from "../db/uuidv7.js";
|
|
2
|
+
export class UserQuestionService {
|
|
3
|
+
pending = new Map();
|
|
4
|
+
defaultTimeoutMs;
|
|
5
|
+
onRequest;
|
|
6
|
+
onResolved;
|
|
7
|
+
constructor(options = {}) {
|
|
8
|
+
this.defaultTimeoutMs = options.defaultTimeoutMs ?? 300_000;
|
|
9
|
+
this.onRequest = options.onRequest;
|
|
10
|
+
this.onResolved = options.onResolved;
|
|
11
|
+
}
|
|
12
|
+
ask(input) {
|
|
13
|
+
const now = new Date();
|
|
14
|
+
const expiresAt = new Date(now.getTime() + (input.timeoutMs ?? this.defaultTimeoutMs));
|
|
15
|
+
const request = {
|
|
16
|
+
id: uuidv7(),
|
|
17
|
+
sessionId: input.sessionId,
|
|
18
|
+
userId: input.userId ?? null,
|
|
19
|
+
requestedBy: input.requestedBy ?? null,
|
|
20
|
+
title: input.title?.trim() || "Input requested",
|
|
21
|
+
questions: input.questions,
|
|
22
|
+
createdAt: now.toISOString(),
|
|
23
|
+
expiresAt: expiresAt.toISOString(),
|
|
24
|
+
status: "pending",
|
|
25
|
+
};
|
|
26
|
+
return new Promise((resolve) => {
|
|
27
|
+
const timer = setTimeout(() => {
|
|
28
|
+
this.resolveRequest(request.id, null, "timeout");
|
|
29
|
+
}, input.timeoutMs ?? this.defaultTimeoutMs);
|
|
30
|
+
this.pending.set(request.id, { request, resolve, timer });
|
|
31
|
+
this.onRequest?.(request);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
listPending(sessionId, userId) {
|
|
35
|
+
return [...this.pending.values()]
|
|
36
|
+
.map((entry) => entry.request)
|
|
37
|
+
.filter((request) => {
|
|
38
|
+
if (sessionId && request.sessionId !== sessionId)
|
|
39
|
+
return false;
|
|
40
|
+
if (userId && request.userId && request.userId !== userId)
|
|
41
|
+
return false;
|
|
42
|
+
return true;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
submit(requestId, result, userId) {
|
|
46
|
+
const entry = this.pending.get(requestId);
|
|
47
|
+
if (!entry)
|
|
48
|
+
return false;
|
|
49
|
+
if (entry.request.userId && entry.request.userId !== (userId ?? null))
|
|
50
|
+
return false;
|
|
51
|
+
this.resolveRequest(requestId, result, "submitted");
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
cancel(requestId, userId) {
|
|
55
|
+
const entry = this.pending.get(requestId);
|
|
56
|
+
if (!entry)
|
|
57
|
+
return false;
|
|
58
|
+
if (entry.request.userId && entry.request.userId !== (userId ?? null))
|
|
59
|
+
return false;
|
|
60
|
+
this.resolveRequest(requestId, null, "cancelled");
|
|
61
|
+
return true;
|
|
62
|
+
}
|
|
63
|
+
resolveRequest(requestId, result, status) {
|
|
64
|
+
const entry = this.pending.get(requestId);
|
|
65
|
+
if (!entry)
|
|
66
|
+
return;
|
|
67
|
+
this.pending.delete(requestId);
|
|
68
|
+
clearTimeout(entry.timer);
|
|
69
|
+
const request = { ...entry.request, status };
|
|
70
|
+
entry.resolve(result);
|
|
71
|
+
this.onResolved?.(request);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=user-questions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-questions.js","sourceRoot":"","sources":["../../src/services/user-questions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { JaitDB } from "../db/connection.js";
|
|
2
|
+
import { userSecrets } from "../db/schema.js";
|
|
3
|
+
export type UserSecretRecord = Omit<typeof userSecrets.$inferSelect, "encryptedValue" | "iv" | "authTag">;
|
|
4
|
+
export interface SaveUserSecretParams {
|
|
5
|
+
userId?: string | null;
|
|
6
|
+
type: string;
|
|
7
|
+
key: string;
|
|
8
|
+
label: string;
|
|
9
|
+
value: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class UserSecretService {
|
|
12
|
+
private readonly db;
|
|
13
|
+
private readonly key;
|
|
14
|
+
constructor(db: JaitDB, encryptionSecret: string);
|
|
15
|
+
list(userId?: string | null, type?: string): UserSecretRecord[];
|
|
16
|
+
getValue(userId: string | null | undefined, type: string, key: string): string | null;
|
|
17
|
+
save(params: SaveUserSecretParams): UserSecretRecord;
|
|
18
|
+
delete(id: string, userId?: string | null): boolean;
|
|
19
|
+
private getById;
|
|
20
|
+
private markUsed;
|
|
21
|
+
private encrypt;
|
|
22
|
+
private decrypt;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=user-secrets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-secrets.d.ts","sourceRoot":"","sources":["../../src/services/user-secrets.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,WAAW,CAAC,YAAY,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAE1G,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAUD,qBAAa,iBAAiB;IAGhB,OAAO,CAAC,QAAQ,CAAC,EAAE;IAF/B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEA,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM;IAIjE,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAoB/D,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAerF,IAAI,CAAC,MAAM,EAAE,oBAAoB,GAAG,gBAAgB;IAqDpD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO;IAOnD,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,QAAQ;IAQhB,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,OAAO;CAQhB"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { createCipheriv, createDecipheriv, createHash, randomBytes } from "node:crypto";
|
|
2
|
+
import { and, desc, eq, isNull } from "drizzle-orm";
|
|
3
|
+
import { userSecrets } from "../db/schema.js";
|
|
4
|
+
import { uuidv7 } from "../db/uuidv7.js";
|
|
5
|
+
function normalize(value) {
|
|
6
|
+
return value.trim();
|
|
7
|
+
}
|
|
8
|
+
function deriveKey(secret) {
|
|
9
|
+
return createHash("sha256").update(`jait:user-secrets:${secret}`).digest();
|
|
10
|
+
}
|
|
11
|
+
export class UserSecretService {
|
|
12
|
+
db;
|
|
13
|
+
key;
|
|
14
|
+
constructor(db, encryptionSecret) {
|
|
15
|
+
this.db = db;
|
|
16
|
+
this.key = deriveKey(encryptionSecret);
|
|
17
|
+
}
|
|
18
|
+
list(userId, type) {
|
|
19
|
+
const conditions = [userId ? eq(userSecrets.userId, userId) : isNull(userSecrets.userId)];
|
|
20
|
+
if (type)
|
|
21
|
+
conditions.push(eq(userSecrets.type, type));
|
|
22
|
+
return this.db
|
|
23
|
+
.select({
|
|
24
|
+
id: userSecrets.id,
|
|
25
|
+
userId: userSecrets.userId,
|
|
26
|
+
type: userSecrets.type,
|
|
27
|
+
key: userSecrets.key,
|
|
28
|
+
label: userSecrets.label,
|
|
29
|
+
createdAt: userSecrets.createdAt,
|
|
30
|
+
updatedAt: userSecrets.updatedAt,
|
|
31
|
+
lastUsedAt: userSecrets.lastUsedAt,
|
|
32
|
+
})
|
|
33
|
+
.from(userSecrets)
|
|
34
|
+
.where(and(...conditions))
|
|
35
|
+
.orderBy(desc(userSecrets.updatedAt))
|
|
36
|
+
.all();
|
|
37
|
+
}
|
|
38
|
+
getValue(userId, type, key) {
|
|
39
|
+
const row = this.db
|
|
40
|
+
.select()
|
|
41
|
+
.from(userSecrets)
|
|
42
|
+
.where(and(userId ? eq(userSecrets.userId, userId) : isNull(userSecrets.userId), eq(userSecrets.type, type), eq(userSecrets.key, key)))
|
|
43
|
+
.get();
|
|
44
|
+
if (!row)
|
|
45
|
+
return null;
|
|
46
|
+
this.markUsed(row.id, userId);
|
|
47
|
+
return this.decrypt(row.encryptedValue, row.iv, row.authTag);
|
|
48
|
+
}
|
|
49
|
+
save(params) {
|
|
50
|
+
const type = normalize(params.type);
|
|
51
|
+
const key = normalize(params.key);
|
|
52
|
+
const label = normalize(params.label);
|
|
53
|
+
const value = params.value;
|
|
54
|
+
if (!type)
|
|
55
|
+
throw new Error("Secret type is required");
|
|
56
|
+
if (!key)
|
|
57
|
+
throw new Error("Secret key is required");
|
|
58
|
+
if (!label)
|
|
59
|
+
throw new Error("Secret label is required");
|
|
60
|
+
if (!value)
|
|
61
|
+
throw new Error("Secret value is required");
|
|
62
|
+
const existing = this.db
|
|
63
|
+
.select({ id: userSecrets.id })
|
|
64
|
+
.from(userSecrets)
|
|
65
|
+
.where(and(params.userId ? eq(userSecrets.userId, params.userId) : isNull(userSecrets.userId), eq(userSecrets.type, type), eq(userSecrets.key, key)))
|
|
66
|
+
.get();
|
|
67
|
+
const encrypted = this.encrypt(value);
|
|
68
|
+
const now = new Date().toISOString();
|
|
69
|
+
if (existing) {
|
|
70
|
+
this.db
|
|
71
|
+
.update(userSecrets)
|
|
72
|
+
.set({
|
|
73
|
+
label,
|
|
74
|
+
encryptedValue: encrypted.encryptedValue,
|
|
75
|
+
iv: encrypted.iv,
|
|
76
|
+
authTag: encrypted.authTag,
|
|
77
|
+
updatedAt: now,
|
|
78
|
+
})
|
|
79
|
+
.where(eq(userSecrets.id, existing.id))
|
|
80
|
+
.run();
|
|
81
|
+
return this.getById(existing.id, params.userId);
|
|
82
|
+
}
|
|
83
|
+
const id = uuidv7();
|
|
84
|
+
this.db.insert(userSecrets).values({
|
|
85
|
+
id,
|
|
86
|
+
userId: params.userId ?? null,
|
|
87
|
+
type,
|
|
88
|
+
key,
|
|
89
|
+
label,
|
|
90
|
+
encryptedValue: encrypted.encryptedValue,
|
|
91
|
+
iv: encrypted.iv,
|
|
92
|
+
authTag: encrypted.authTag,
|
|
93
|
+
createdAt: now,
|
|
94
|
+
updatedAt: now,
|
|
95
|
+
lastUsedAt: null,
|
|
96
|
+
}).run();
|
|
97
|
+
return this.getById(id, params.userId);
|
|
98
|
+
}
|
|
99
|
+
delete(id, userId) {
|
|
100
|
+
const existing = this.getById(id, userId);
|
|
101
|
+
if (!existing)
|
|
102
|
+
return false;
|
|
103
|
+
this.db.delete(userSecrets).where(eq(userSecrets.id, id)).run();
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
getById(id, userId) {
|
|
107
|
+
return this.list(userId).find((secret) => secret.id === id);
|
|
108
|
+
}
|
|
109
|
+
markUsed(id, userId) {
|
|
110
|
+
this.db
|
|
111
|
+
.update(userSecrets)
|
|
112
|
+
.set({ lastUsedAt: new Date().toISOString() })
|
|
113
|
+
.where(userId ? and(eq(userSecrets.id, id), eq(userSecrets.userId, userId)) : eq(userSecrets.id, id))
|
|
114
|
+
.run();
|
|
115
|
+
}
|
|
116
|
+
encrypt(value) {
|
|
117
|
+
const iv = randomBytes(12);
|
|
118
|
+
const cipher = createCipheriv("aes-256-gcm", this.key, iv);
|
|
119
|
+
const encrypted = Buffer.concat([cipher.update(value, "utf8"), cipher.final()]);
|
|
120
|
+
return {
|
|
121
|
+
encryptedValue: encrypted.toString("base64"),
|
|
122
|
+
iv: iv.toString("base64"),
|
|
123
|
+
authTag: cipher.getAuthTag().toString("base64"),
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
decrypt(encryptedValue, iv, authTag) {
|
|
127
|
+
const decipher = createDecipheriv("aes-256-gcm", this.key, Buffer.from(iv, "base64"));
|
|
128
|
+
decipher.setAuthTag(Buffer.from(authTag, "base64"));
|
|
129
|
+
return Buffer.concat([
|
|
130
|
+
decipher.update(Buffer.from(encryptedValue, "base64")),
|
|
131
|
+
decipher.final(),
|
|
132
|
+
]).toString("utf8");
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=user-secrets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-secrets.js","sourceRoot":"","sources":["../../src/services/user-secrets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAYzC,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,SAAS,SAAS,CAAC,MAAc;IAC/B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;AAC7E,CAAC;AAED,MAAM,OAAO,iBAAiB;IAGC;IAFZ,GAAG,CAAS;IAE7B,YAA6B,EAAU,EAAE,gBAAwB;QAApC,OAAE,GAAF,EAAE,CAAQ;QACrC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,MAAsB,EAAE,IAAa;QACxC,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1F,IAAI,IAAI;YAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,EAAE;aACX,MAAM,CAAC;YACN,EAAE,EAAE,WAAW,CAAC,EAAE;YAClB,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,GAAG,EAAE,WAAW,CAAC,GAAG;YACpB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,UAAU,EAAE,WAAW,CAAC,UAAU;SACnC,CAAC;aACD,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;aACzB,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;aACpC,GAAG,EAAE,CAAC;IACX,CAAC;IAED,QAAQ,CAAC,MAAiC,EAAE,IAAY,EAAE,GAAW;QACnE,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,MAAM,EAAE;aACR,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,CAAC,GAAG,CACR,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EACpE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAC1B,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CACzB,CAAC;aACD,GAAG,EAAE,CAAC;QACT,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,CAAC,MAA4B;QAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACtD,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACpD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAExD,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE;aACrB,MAAM,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC;aAC9B,IAAI,CAAC,WAAW,CAAC;aACjB,KAAK,CAAC,GAAG,CACR,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAClF,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,EAC1B,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CACzB,CAAC;aACD,GAAG,EAAE,CAAC;QACT,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,EAAE;iBACJ,MAAM,CAAC,WAAW,CAAC;iBACnB,GAAG,CAAC;gBACH,KAAK;gBACL,cAAc,EAAE,SAAS,CAAC,cAAc;gBACxC,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,SAAS,EAAE,GAAG;aACf,CAAC;iBACD,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;iBACtC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAE,CAAC;QACnD,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;YACjC,EAAE;YACF,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;YAC7B,IAAI;YACJ,GAAG;YACH,KAAK;YACL,cAAc,EAAE,SAAS,CAAC,cAAc;YACxC,EAAE,EAAE,SAAS,CAAC,EAAE;YAChB,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;YACd,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAE,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,MAAsB;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC5B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,OAAO,CAAC,EAAU,EAAE,MAAsB;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;IAEO,QAAQ,CAAC,EAAU,EAAE,MAAsB;QACjD,IAAI,CAAC,EAAE;aACJ,MAAM,CAAC,WAAW,CAAC;aACnB,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;aAC7C,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;aACpG,GAAG,EAAE,CAAC;IACX,CAAC;IAEO,OAAO,CAAC,KAAa;QAC3B,MAAM,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAChF,OAAO;YACL,cAAc,EAAE,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC5C,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACzB,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;SAChD,CAAC;IACJ,CAAC;IAEO,OAAO,CAAC,cAAsB,EAAE,EAAU,EAAE,OAAe;QACjE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtF,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC,MAAM,CAAC;YACnB,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;YACtD,QAAQ,CAAC,KAAK,EAAE;SACjB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;CACF"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export { createCronAddTool, createCronListTool, createCronRemoveTool, createCron
|
|
|
8
8
|
export { createGatewayStatusTool } from "./gateway-tools.js";
|
|
9
9
|
export { createWorkspaceAssignRepositoryTool } from "./workspace-tools.js";
|
|
10
10
|
export { createJaitTodosTool } from "./repo-proposal-tools.js";
|
|
11
|
+
export { createUserAskTool } from "./user-question-tools.js";
|
|
11
12
|
export { createScreenShareTool, createScreenCaptureTool, createScreenRecordTool, createOsTool } from "./screen-share-tools.js";
|
|
12
13
|
export { createBrowserNavigateTool, createBrowserSnapshotTool, createBrowserInspectTool, createBrowserInteractionTools, createWebFetchTool, createWebSearchTool, createBrowserSandboxStartTool, } from "./browser-tools.js";
|
|
13
14
|
export { createMemorySaveTool, createMemorySearchTool, createMemoryForgetTool, createMemoryListTool, createMemoryUpdateTool, } from "./memory-tools.js";
|
|
@@ -45,6 +46,8 @@ import type { ProviderRegistry } from "../providers/registry.js";
|
|
|
45
46
|
import type { PreviewService } from "../services/preview.js";
|
|
46
47
|
import type { ArchitectureDiagramService } from "../services/architecture-diagrams.js";
|
|
47
48
|
import type { SecretInputService } from "../services/secret-input.js";
|
|
49
|
+
import type { UserQuestionService } from "../services/user-questions.js";
|
|
50
|
+
import type { UserSecretService } from "../services/user-secrets.js";
|
|
48
51
|
import type { WorkspaceService } from "../services/workspaces.js";
|
|
49
52
|
import type { RepositoryService } from "../services/repositories.js";
|
|
50
53
|
import type { GitService } from "../services/git.js";
|
|
@@ -80,6 +83,8 @@ export interface ToolRegistryDeps {
|
|
|
80
83
|
previewService?: PreviewService;
|
|
81
84
|
architectureDiagramService?: ArchitectureDiagramService;
|
|
82
85
|
secretInputService?: SecretInputService;
|
|
86
|
+
userQuestionService?: UserQuestionService;
|
|
87
|
+
userSecretService?: UserSecretService;
|
|
83
88
|
skillRegistry?: import("../skills/index.js").SkillRegistry;
|
|
84
89
|
}
|
|
85
90
|
/** Create a ToolRegistry with all gateway tools pre-registered. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.js
CHANGED
|
@@ -7,6 +7,7 @@ export { createCronAddTool, createCronListTool, createCronRemoveTool, createCron
|
|
|
7
7
|
export { createGatewayStatusTool } from "./gateway-tools.js";
|
|
8
8
|
export { createWorkspaceAssignRepositoryTool } from "./workspace-tools.js";
|
|
9
9
|
export { createJaitTodosTool } from "./repo-proposal-tools.js";
|
|
10
|
+
export { createUserAskTool } from "./user-question-tools.js";
|
|
10
11
|
export { createScreenShareTool, createScreenCaptureTool, createScreenRecordTool, createOsTool } from "./screen-share-tools.js";
|
|
11
12
|
export { createBrowserNavigateTool, createBrowserSnapshotTool, createBrowserInspectTool, createBrowserInteractionTools, createWebFetchTool, createWebSearchTool, createBrowserSandboxStartTool, } from "./browser-tools.js";
|
|
12
13
|
export { createMemorySaveTool, createMemorySearchTool, createMemoryForgetTool, createMemoryListTool, createMemoryUpdateTool, } from "./memory-tools.js";
|
|
@@ -36,6 +37,7 @@ import { createCronAddTool, createCronListTool, createCronRemoveTool, createCron
|
|
|
36
37
|
import { createGatewayStatusTool } from "./gateway-tools.js";
|
|
37
38
|
import { createWorkspaceAssignRepositoryTool } from "./workspace-tools.js";
|
|
38
39
|
import { createJaitTodosTool } from "./repo-proposal-tools.js";
|
|
40
|
+
import { createUserAskTool } from "./user-question-tools.js";
|
|
39
41
|
import { createScreenShareTool, createScreenCaptureTool, createScreenRecordTool, createOsTool } from "./screen-share-tools.js";
|
|
40
42
|
import { createBrowserNavigateTool, createBrowserSnapshotTool, createBrowserInspectTool, createBrowserInteractionTools, createWebFetchTool, createWebSearchTool, createBrowserSandboxStartTool, } from "./browser-tools.js";
|
|
41
43
|
import { createMemorySaveTool, createMemorySearchTool, createMemoryForgetTool, createMemoryListTool, createMemoryUpdateTool, } from "./memory-tools.js";
|
|
@@ -131,6 +133,9 @@ export function createToolRegistry(surfaceRegistry, deps = {}) {
|
|
|
131
133
|
threadService: deps.threadService,
|
|
132
134
|
}));
|
|
133
135
|
}
|
|
136
|
+
if (deps.userQuestionService) {
|
|
137
|
+
tools.register(createUserAskTool(deps.userQuestionService));
|
|
138
|
+
}
|
|
134
139
|
// Self-update / redeploy tool
|
|
135
140
|
if (deps.config && deps.shutdown) {
|
|
136
141
|
tools.register(createRedeployTool({
|
|
@@ -192,7 +197,7 @@ export function createToolRegistry(surfaceRegistry, deps = {}) {
|
|
|
192
197
|
// Network tools
|
|
193
198
|
tools.register(createNetworkScanTool());
|
|
194
199
|
tools.register(createElevatedRunTool(deps.secretInputService));
|
|
195
|
-
tools.register(createSshRunTool(deps.secretInputService));
|
|
200
|
+
tools.register(createSshRunTool(deps.secretInputService, undefined, deps.userSecretService));
|
|
196
201
|
// Architecture tools
|
|
197
202
|
tools.register(createArchitectureTool(deps.ws, deps.architectureDiagramService));
|
|
198
203
|
// Maintenance tools
|
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ToolDefinition } from "./contracts.js";
|
|
2
2
|
import type { SecretInputService } from "../services/secret-input.js";
|
|
3
|
+
import type { UserSecretService } from "../services/user-secrets.js";
|
|
3
4
|
interface SshRunInput {
|
|
4
5
|
host: string;
|
|
5
6
|
username: string;
|
|
@@ -41,8 +42,8 @@ export type SshPtyFactory = (command: string, args: string[], options: {
|
|
|
41
42
|
cwd: string;
|
|
42
43
|
env: Record<string, string | undefined>;
|
|
43
44
|
}) => PtyProcess;
|
|
44
|
-
export declare function createSshRunTool(secretInput?: SecretInputService, ptyFactory?: SshPtyFactory): ToolDefinition<SshRunInput>;
|
|
45
|
-
export declare function createSshSessionStartTool(secretInput?: SecretInputService, ptyFactory?: SshPtyFactory): ToolDefinition<SshSessionStartInput>;
|
|
45
|
+
export declare function createSshRunTool(secretInput?: SecretInputService, ptyFactory?: SshPtyFactory, userSecrets?: UserSecretService): ToolDefinition<SshRunInput>;
|
|
46
|
+
export declare function createSshSessionStartTool(secretInput?: SecretInputService, ptyFactory?: SshPtyFactory, userSecrets?: UserSecretService): ToolDefinition<SshSessionStartInput>;
|
|
46
47
|
export declare function createSshSessionRunTool(): ToolDefinition<SshSessionRunInput>;
|
|
47
48
|
export declare function createSshSessionCloseTool(): ToolDefinition<SshSessionCloseInput>;
|
|
48
49
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssh-tools.d.ts","sourceRoot":"","sources":["../../src/tools/ssh-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,cAAc,EAAc,MAAM,gBAAgB,CAAC;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"ssh-tools.d.ts","sourceRoot":"","sources":["../../src/tools/ssh-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,cAAc,EAAc,MAAM,gBAAgB,CAAC;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAKrE,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IAChC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,UAAU,oBAAoB;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IAChC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,kBAAkB;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,oBAAoB;IAC5B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,UAAU;IAClB,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IACzC,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACzE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CACzC,KAAK,UAAU,CAAC;AA0VjB,wBAAgB,gBAAgB,CAAC,WAAW,CAAC,EAAE,kBAAkB,EAAE,UAAU,CAAC,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC,WAAW,CAAC,CA+E3J;AAED,wBAAgB,yBAAyB,CAAC,WAAW,CAAC,EAAE,kBAAkB,EAAE,UAAU,CAAC,EAAE,aAAa,EAAE,WAAW,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC,oBAAoB,CAAC,CA6D7K;AAED,wBAAgB,uBAAuB,IAAI,cAAc,CAAC,kBAAkB,CAAC,CAwC5E;AAED,wBAAgB,yBAAyB,IAAI,cAAc,CAAC,oBAAoB,CAAC,CAgChF"}
|
package/dist/tools/ssh-tools.js
CHANGED
|
@@ -2,6 +2,7 @@ import { createRequire } from "node:module";
|
|
|
2
2
|
import { uuidv7 } from "../db/uuidv7.js";
|
|
3
3
|
const require = createRequire(import.meta.url);
|
|
4
4
|
const sshSessions = new Map();
|
|
5
|
+
const SSH_PASSWORD_SECRET_TYPE = "ssh-password";
|
|
5
6
|
function loadNodePty() {
|
|
6
7
|
return require("node-pty").spawn;
|
|
7
8
|
}
|
|
@@ -27,6 +28,9 @@ function validateTargetPart(value, label) {
|
|
|
27
28
|
return `${label} cannot contain whitespace, quotes, or @`;
|
|
28
29
|
return null;
|
|
29
30
|
}
|
|
31
|
+
function sshPasswordSecretKey(input) {
|
|
32
|
+
return `${input.username}@${input.host}:${input.port ?? 22}`;
|
|
33
|
+
}
|
|
30
34
|
function buildSshArgs(input) {
|
|
31
35
|
const args = [
|
|
32
36
|
"-p", String(input.port),
|
|
@@ -128,10 +132,14 @@ function runCommandInSshSession(session, command, timeoutMs, context) {
|
|
|
128
132
|
session.pty.write(`${command}\nprintf '\\n${marker}:%s\\n' "$?"\r`);
|
|
129
133
|
});
|
|
130
134
|
}
|
|
131
|
-
async function getPasswordIfNeeded(secretInput, input, context, requestedBy) {
|
|
135
|
+
async function getPasswordIfNeeded(secretInput, userSecrets, input, context, requestedBy) {
|
|
132
136
|
const authMethod = input.authMethod ?? "key";
|
|
133
137
|
if (authMethod === "key")
|
|
134
138
|
return null;
|
|
139
|
+
const secretKey = sshPasswordSecretKey(input);
|
|
140
|
+
const saved = userSecrets?.getValue(context.userId, SSH_PASSWORD_SECRET_TYPE, secretKey);
|
|
141
|
+
if (saved)
|
|
142
|
+
return saved;
|
|
135
143
|
if (!secretInput)
|
|
136
144
|
return undefined;
|
|
137
145
|
return secretInput.requestSecret({
|
|
@@ -140,6 +148,10 @@ async function getPasswordIfNeeded(secretInput, input, context, requestedBy) {
|
|
|
140
148
|
title: "SSH password",
|
|
141
149
|
prompt: `Password for ${input.username}@${input.host}`,
|
|
142
150
|
requestedBy,
|
|
151
|
+
rememberable: true,
|
|
152
|
+
rememberLabel: `SSH password for ${input.username}@${input.host}`,
|
|
153
|
+
secretType: SSH_PASSWORD_SECRET_TYPE,
|
|
154
|
+
secretKey,
|
|
143
155
|
timeoutMs: input.timeoutMs && input.timeoutMs > 120_000 ? input.timeoutMs : 120_000,
|
|
144
156
|
});
|
|
145
157
|
}
|
|
@@ -280,7 +292,7 @@ function runSshInPty(input, context, ptyFactory) {
|
|
|
280
292
|
}, { once: true });
|
|
281
293
|
});
|
|
282
294
|
}
|
|
283
|
-
export function createSshRunTool(secretInput, ptyFactory) {
|
|
295
|
+
export function createSshRunTool(secretInput, ptyFactory, userSecrets) {
|
|
284
296
|
return {
|
|
285
297
|
name: "ssh.run",
|
|
286
298
|
description: "Run a command on a remote Linux server over SSH. Uses key auth by default so it never asks for a password in chat unless authMethod is explicitly set to password.",
|
|
@@ -310,16 +322,27 @@ export function createSshRunTool(secretInput, ptyFactory) {
|
|
|
310
322
|
const authMethod = input.authMethod ?? "key";
|
|
311
323
|
let password = null;
|
|
312
324
|
if (authMethod === "password") {
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
325
|
+
const secretKey = sshPasswordSecretKey({ ...input, port: input.port ?? 22 });
|
|
326
|
+
const saved = userSecrets?.getValue(context.userId, SSH_PASSWORD_SECRET_TYPE, secretKey);
|
|
327
|
+
if (saved) {
|
|
328
|
+
password = saved;
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
if (!secretInput)
|
|
332
|
+
return { ok: false, message: "Secret input service is unavailable" };
|
|
333
|
+
password = await secretInput.requestSecret({
|
|
334
|
+
sessionId: context.sessionId,
|
|
335
|
+
userId: context.userId,
|
|
336
|
+
title: "SSH password",
|
|
337
|
+
prompt: `Password for ${input.username}@${input.host}`,
|
|
338
|
+
requestedBy: "ssh.run",
|
|
339
|
+
rememberable: true,
|
|
340
|
+
rememberLabel: `SSH password for ${input.username}@${input.host}`,
|
|
341
|
+
secretType: SSH_PASSWORD_SECRET_TYPE,
|
|
342
|
+
secretKey,
|
|
343
|
+
timeoutMs: input.timeoutMs && input.timeoutMs > 120_000 ? input.timeoutMs : 120_000,
|
|
344
|
+
});
|
|
345
|
+
}
|
|
323
346
|
if (!password)
|
|
324
347
|
return { ok: false, message: "SSH password was not provided" };
|
|
325
348
|
}
|
|
@@ -349,7 +372,7 @@ export function createSshRunTool(secretInput, ptyFactory) {
|
|
|
349
372
|
},
|
|
350
373
|
};
|
|
351
374
|
}
|
|
352
|
-
export function createSshSessionStartTool(secretInput, ptyFactory) {
|
|
375
|
+
export function createSshSessionStartTool(secretInput, ptyFactory, userSecrets) {
|
|
353
376
|
return {
|
|
354
377
|
name: "ssh.session.start",
|
|
355
378
|
description: "Start a persistent SSH PTY session to a remote Linux server. Uses key auth by default so it never asks for a password in chat unless authMethod is explicitly set to password.",
|
|
@@ -375,7 +398,7 @@ export function createSshSessionStartTool(secretInput, ptyFactory) {
|
|
|
375
398
|
const userError = validateTargetPart(input.username, "username");
|
|
376
399
|
if (hostError || userError)
|
|
377
400
|
return { ok: false, message: hostError ?? userError };
|
|
378
|
-
const password = await getPasswordIfNeeded(secretInput, input, context, "ssh.session.start");
|
|
401
|
+
const password = await getPasswordIfNeeded(secretInput, userSecrets, input, context, "ssh.session.start");
|
|
379
402
|
if (password === undefined)
|
|
380
403
|
return { ok: false, message: "Secret input service is unavailable" };
|
|
381
404
|
if ((input.authMethod ?? "key") === "password" && !password) {
|