aui-agent-builder 0.4.32 → 0.4.33
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/api-client/apollo-client.d.ts +55 -0
- package/dist/api-client/apollo-client.d.ts.map +1 -1
- package/dist/api-client/apollo-client.js +45 -2
- package/dist/api-client/apollo-client.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +46 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/push.js +49 -0
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/vault.d.ts +25 -0
- package/dist/commands/vault.d.ts.map +1 -0
- package/dist/commands/vault.js +220 -0
- package/dist/commands/vault.js.map +1 -0
- package/dist/index.js +85 -0
- package/dist/index.js.map +1 -1
- package/dist/services/integration.service.d.ts +1 -1
- package/dist/services/integration.service.d.ts.map +1 -1
- package/dist/services/integration.service.js +4 -2
- package/dist/services/integration.service.js.map +1 -1
- package/dist/services/kb-identity.d.ts +54 -0
- package/dist/services/kb-identity.d.ts.map +1 -0
- package/dist/services/kb-identity.js +152 -0
- package/dist/services/kb-identity.js.map +1 -0
- package/dist/services/kb-view.service.d.ts.map +1 -1
- package/dist/services/kb-view.service.js +14 -3
- package/dist/services/kb-view.service.js.map +1 -1
- package/dist/services/vault.service.d.ts +58 -0
- package/dist/services/vault.service.d.ts.map +1 -0
- package/dist/services/vault.service.js +143 -0
- package/dist/services/vault.service.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/vault.d.ts +31 -0
- package/dist/types/vault.d.ts.map +1 -0
- package/dist/types/vault.js +10 -0
- package/dist/types/vault.js.map +1 -0
- package/dist/ui/views/VaultView.d.ts +19 -0
- package/dist/ui/views/VaultView.d.ts.map +1 -0
- package/dist/ui/views/VaultView.js +35 -0
- package/dist/ui/views/VaultView.js.map +1 -0
- package/dist/utils/json-output.d.ts +11 -0
- package/dist/utils/json-output.d.ts.map +1 -1
- package/dist/utils/json-output.js +19 -1
- package/dist/utils/json-output.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RAG knowledge-base rename guard.
|
|
3
|
+
*
|
|
4
|
+
* A RAG KB is identified by its name: AS provisions it under
|
|
5
|
+
* to_screaming_snake_case(integration name) and KBM resolves it by that name at
|
|
6
|
+
* runtime. Renaming a provisioned integration between pushes forks that identity
|
|
7
|
+
* — a new empty KB is provisioned (or the old one deleted) while the content
|
|
8
|
+
* stays in the original — so runtime RAG silently returns nothing. The guard
|
|
9
|
+
* anchors on the stable knowledge_base_id the CLI writes into kb.json: if its
|
|
10
|
+
* server KB no longer resolves from the local name, the name was changed.
|
|
11
|
+
*/
|
|
12
|
+
import fs from "fs";
|
|
13
|
+
import path from "path";
|
|
14
|
+
/** Mirror agent-settings-transcoder `to_screaming_snake_case` — keep in sync. */
|
|
15
|
+
function toScreamingSnake(name) {
|
|
16
|
+
if (!name)
|
|
17
|
+
return "";
|
|
18
|
+
let code = name.replace(/-/g, "_").replace(/ /g, "_").toUpperCase();
|
|
19
|
+
code = code.replace(/^[_| ]+/, "");
|
|
20
|
+
code = code.replace(/[^A-Z0-9_]+/g, "");
|
|
21
|
+
code = code.replace(/_+/g, "_");
|
|
22
|
+
return code;
|
|
23
|
+
}
|
|
24
|
+
/** Mirror knowledge-base-manager `name_to_kebab` (the runtime KB-name lookup key). */
|
|
25
|
+
function nameToKebab(name) {
|
|
26
|
+
return name
|
|
27
|
+
.trim()
|
|
28
|
+
.replace(/[\s\-_]+/g, "-")
|
|
29
|
+
.replace(/^-+|-+$/g, "")
|
|
30
|
+
.toLowerCase();
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The key a name resolves a KB to at runtime — provisioning's
|
|
34
|
+
* to_screaming_snake_case composed with KBM's name_to_kebab. Two names share a
|
|
35
|
+
* key IFF they resolve to the same KB, so separator / case / punctuation
|
|
36
|
+
* differences never produce a false-positive rename.
|
|
37
|
+
*/
|
|
38
|
+
export function kbResolutionKey(name) {
|
|
39
|
+
return nameToKebab(toScreamingSnake(name));
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Flag each provisioned local KB whose name no longer resolves to the server KB
|
|
43
|
+
* its id points at. Skips unprovisioned bindings (no id — first push) and ids
|
|
44
|
+
* absent from the server (deleted/foreign — nothing to orphan).
|
|
45
|
+
*/
|
|
46
|
+
export function detectKbRenames(bindings, serverKbNameById) {
|
|
47
|
+
const violations = [];
|
|
48
|
+
for (const b of bindings) {
|
|
49
|
+
if (!b.knowledgeBaseId)
|
|
50
|
+
continue;
|
|
51
|
+
const serverName = serverKbNameById.get(b.knowledgeBaseId);
|
|
52
|
+
if (!serverName)
|
|
53
|
+
continue;
|
|
54
|
+
const bound = kbResolutionKey(serverName);
|
|
55
|
+
// kb.json name drives content upload; integration name drives provisioning
|
|
56
|
+
// + runtime resolution — either renamed away from the bound KB forks it.
|
|
57
|
+
if (kbResolutionKey(b.kbJsonName) !== bound) {
|
|
58
|
+
violations.push({
|
|
59
|
+
dir: b.dir,
|
|
60
|
+
knowledgeBaseId: b.knowledgeBaseId,
|
|
61
|
+
boundName: serverName,
|
|
62
|
+
localName: b.kbJsonName,
|
|
63
|
+
source: "kb.json name",
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
if (b.integrationName !== undefined &&
|
|
67
|
+
kbResolutionKey(b.integrationName) !== bound) {
|
|
68
|
+
violations.push({
|
|
69
|
+
dir: b.dir,
|
|
70
|
+
knowledgeBaseId: b.knowledgeBaseId,
|
|
71
|
+
boundName: serverName,
|
|
72
|
+
localName: b.integrationName,
|
|
73
|
+
source: "integration name",
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return violations;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Scan `knowledge-hubs/<dir>/kb.json` and `integrations.aui.json` (RAG
|
|
81
|
+
* entries) into the bindings the guard checks. Folder name == integration
|
|
82
|
+
* `code`. Returns [] when there are no knowledge-hub folders.
|
|
83
|
+
*/
|
|
84
|
+
export function loadKbBindings(projectRoot) {
|
|
85
|
+
const hubsRoot = path.join(projectRoot, "knowledge-hubs");
|
|
86
|
+
if (!fs.existsSync(hubsRoot))
|
|
87
|
+
return [];
|
|
88
|
+
const ragNameByCode = readRagIntegrationNames(projectRoot);
|
|
89
|
+
const bindings = [];
|
|
90
|
+
for (const dir of fs.readdirSync(hubsRoot)) {
|
|
91
|
+
const kbJsonPath = path.join(hubsRoot, dir, "kb.json");
|
|
92
|
+
if (!fs.existsSync(kbJsonPath))
|
|
93
|
+
continue;
|
|
94
|
+
let raw;
|
|
95
|
+
try {
|
|
96
|
+
raw = JSON.parse(fs.readFileSync(kbJsonPath, "utf-8"));
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
continue; // unreadable kb.json — readKbFolder surfaces this elsewhere
|
|
100
|
+
}
|
|
101
|
+
if (!raw.name)
|
|
102
|
+
continue;
|
|
103
|
+
bindings.push({
|
|
104
|
+
dir,
|
|
105
|
+
kbJsonName: raw.name,
|
|
106
|
+
knowledgeBaseId: raw.knowledge_base_id,
|
|
107
|
+
integrationName: ragNameByCode.get(dir),
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
return bindings;
|
|
111
|
+
}
|
|
112
|
+
/** code -> display name for every RAG entry in integrations.aui.json. */
|
|
113
|
+
function readRagIntegrationNames(projectRoot) {
|
|
114
|
+
const out = new Map();
|
|
115
|
+
const integPath = path.join(projectRoot, "integrations.aui.json");
|
|
116
|
+
if (!fs.existsSync(integPath))
|
|
117
|
+
return out;
|
|
118
|
+
try {
|
|
119
|
+
const parsed = JSON.parse(fs.readFileSync(integPath, "utf-8"));
|
|
120
|
+
for (const i of parsed.integrations ?? []) {
|
|
121
|
+
if (i.type === "RAG" && i.code && i.name)
|
|
122
|
+
out.set(i.code, i.name);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
// malformed integrations.aui.json — schema validation surfaces it
|
|
127
|
+
}
|
|
128
|
+
return out;
|
|
129
|
+
}
|
|
130
|
+
/** Build the actionable error shown when a rename is blocked. */
|
|
131
|
+
export function formatRenameLockError(violations) {
|
|
132
|
+
const byDir = new Map();
|
|
133
|
+
for (const v of violations)
|
|
134
|
+
if (!byDir.has(v.dir))
|
|
135
|
+
byDir.set(v.dir, v);
|
|
136
|
+
const lines = [...byDir.values()].map((v) => ` • knowledge-hubs/${v.dir} is bound to knowledge base ${v.boundName} ` +
|
|
137
|
+
`[id ${v.knowledgeBaseId}], but the local ${v.source} "${v.localName}" no longer resolves to it.`);
|
|
138
|
+
return [
|
|
139
|
+
"Knowledge base rename blocked.",
|
|
140
|
+
"",
|
|
141
|
+
"A RAG knowledge base is identified by its name. Renaming it provisions a",
|
|
142
|
+
"new, empty knowledge base and orphans the indexed content — runtime RAG",
|
|
143
|
+
"then returns nothing.",
|
|
144
|
+
"",
|
|
145
|
+
...lines,
|
|
146
|
+
"",
|
|
147
|
+
"To proceed, either:",
|
|
148
|
+
" - revert the name(s) above to match the bound knowledge base, or",
|
|
149
|
+
" - delete this integration and create a new one to start a fresh knowledge base.",
|
|
150
|
+
].join("\n");
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=kb-identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kb-identity.js","sourceRoot":"","sources":["../../src/services/kb-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kb-view.service.d.ts","sourceRoot":"","sources":["../../src/services/kb-view.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EACL,YAAY,EACZ,KAAK,WAAW,EAKhB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,EAEjB,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"kb-view.service.d.ts","sourceRoot":"","sources":["../../src/services/kb-view.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EACL,YAAY,EACZ,KAAK,WAAW,EAKhB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,EAEjB,MAAM,iCAAiC,CAAC;AAGzC,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,eAAe,EAAE,CAAC;IACjC,cAAc,EAAE,gBAAgB,EAAE,CAAC;IACnC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AA8CD,wBAAsB,cAAc,CAClC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,aAAa,GAAE,OAAe,EAC9B,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,oBAAoB,CAAC,CAoH/B;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CA8E/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,EAAE,CAYpE;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAoDxE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,WAAW,CAKd"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
import * as fs from "fs";
|
|
12
12
|
import * as path from "path";
|
|
13
|
+
import { ValidationError } from "../errors/index.js";
|
|
13
14
|
/**
|
|
14
15
|
* Sanitize a knowledge base name into a safe directory name.
|
|
15
16
|
*/
|
|
@@ -25,6 +26,15 @@ function slugifyResourceTitle(title) {
|
|
|
25
26
|
const cleaned = title.replace(/[^a-zA-Z0-9._-]+/g, "_").replace(/^_+|_+$/g, "");
|
|
26
27
|
return cleaned.slice(0, 120) || "untitled";
|
|
27
28
|
}
|
|
29
|
+
// Throw rather than skip a title-less entry — a manifest missing it would be
|
|
30
|
+
// orphan-reconciled server-side, deleting the resource.
|
|
31
|
+
function requireResourceTitle(title, kbName, kind) {
|
|
32
|
+
if (typeof title === "string" && title.trim() !== "")
|
|
33
|
+
return title;
|
|
34
|
+
throw new ValidationError(`Knowledge base "${kbName}": a ${kind} entry in kb.json is missing its required "title".`, {
|
|
35
|
+
suggestion: "kb.json is managed for you — to add a file, drop it into the KB folder and run `aui push` (don't list files by name in kb.json). Run `aui pull` to restore a valid manifest.",
|
|
36
|
+
});
|
|
37
|
+
}
|
|
28
38
|
// Regex split (not `new URL().pathname`) avoids the WHATWG parser's auto-%-
|
|
29
39
|
// encode of unsafe path chars, which then double-encodes via encodeURIComponent.
|
|
30
40
|
function rewriteFakeGcsUrl(url) {
|
|
@@ -159,10 +169,11 @@ export function readKbFolder(kbDir) {
|
|
|
159
169
|
}
|
|
160
170
|
if (!raw.name)
|
|
161
171
|
return null;
|
|
172
|
+
const kbName = raw.name;
|
|
162
173
|
const tabularFiles = [];
|
|
163
174
|
const tabularSidecars = new Set();
|
|
164
175
|
for (const entry of raw.tabular_files || []) {
|
|
165
|
-
const sidecarName = `${slugifyResourceTitle(entry.title)}.json`;
|
|
176
|
+
const sidecarName = `${slugifyResourceTitle(requireResourceTitle(entry.title, kbName, "tabular_files"))}.json`;
|
|
166
177
|
const sidecarPath = path.join(kbDir, sidecarName);
|
|
167
178
|
tabularSidecars.add(sidecarName);
|
|
168
179
|
if (fs.existsSync(sidecarPath)) {
|
|
@@ -183,7 +194,7 @@ export function readKbFolder(kbDir) {
|
|
|
183
194
|
const markdownFiles = [];
|
|
184
195
|
const markdownSidecars = new Set();
|
|
185
196
|
for (const entry of raw.markdown_files || []) {
|
|
186
|
-
const sidecarName = `${slugifyResourceTitle(entry.title)}.md`;
|
|
197
|
+
const sidecarName = `${slugifyResourceTitle(requireResourceTitle(entry.title, kbName, "markdown_files"))}.md`;
|
|
187
198
|
const sidecarPath = path.join(kbDir, sidecarName);
|
|
188
199
|
markdownSidecars.add(sidecarName);
|
|
189
200
|
if (fs.existsSync(sidecarPath)) {
|
|
@@ -199,7 +210,7 @@ export function readKbFolder(kbDir) {
|
|
|
199
210
|
const websites = [];
|
|
200
211
|
const websiteSidecars = new Set();
|
|
201
212
|
for (const entry of raw.websites || []) {
|
|
202
|
-
const sidecarName = `${slugifyResourceTitle(entry.title || entry.url)}.md`;
|
|
213
|
+
const sidecarName = `${slugifyResourceTitle(requireResourceTitle(entry.title || entry.url, kbName, "websites"))}.md`;
|
|
203
214
|
const sidecarPath = path.join(kbDir, sidecarName);
|
|
204
215
|
websiteSidecars.add(sidecarName);
|
|
205
216
|
if (fs.existsSync(sidecarPath)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kb-view.service.js","sourceRoot":"","sources":["../../src/services/kb-view.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAgC7B;;GAEG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI;SACR,WAAW,EAAE;SACb,OAAO,CAAC,gBAAgB,EAAE,GAAG,CAAC;SAC9B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa;IACzC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAChF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,UAAU,CAAC;AAC7C,CAAC;AAED,4EAA4E;AAC5E,iFAAiF;AACjF,SAAS,iBAAiB,CAAC,GAAW;IACpC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACnE,IAAI,CAAC,KAAK;QAAE,OAAO,GAAG,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;IACjC,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IACrC,OAAO,sCAAsC,MAAM,MAAM,kBAAkB,CAAC,UAAU,CAAC,YAAY,CAAC;AACtG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAoB,EACpB,KAAkB,EAClB,SAAiB,EACjB,gBAAyB,KAAK,EAC9B,SAAkB;IAElB,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1D,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC;QACnC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC;KACrC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5F,MAAM,MAAM,GAAiB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAE1E,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACtD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtE,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,eAAe,IAAI,EAAE,EAAE,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpE,KAAK,MAAM,EAAE,IAAI,EAAE,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;YACzC,IAAI,EAAE,CAAC,YAAY,EAAE,CAAC;gBACpB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,oBAAoB,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACzE,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAChC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;YACzC,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC5E,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAChC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;gBACrB,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrF,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAChC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAED,uEAAuE;QACvE,wEAAwE;QACxE,MAAM,MAAM,GAAsB;YAChC,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,aAAa,EAAE,EAAE,CAAC,aAAa,IAAI,EAAE;YACrC,cAAc,EAAE,EAAE,CAAC,cAAc,IAAI,EAAE;SACxC,CAAC;QACF,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM;YAAE,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;QACrE,IAAI,EAAE,CAAC,WAAW;YAAE,MAAM,CAAC,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC;QACxD,IAAI,EAAE,CAAC,QAAQ;YAAE,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;QAE/C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC/C,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACrE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;QACxD,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IAC/G,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAA6B,CAAC;IACvD,KAAK,MAAM,IAAI,IAAI,eAAe,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;QAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC;QAC/D,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,SAAS,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpE,IAAI,aAAa,EAAE,CAAC;YAClB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBACtD,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;oBAC9E,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;oBACnC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACtD,SAAS,EAAE,CAAC;gBACd,CAAC;gBAAC,OAAO,GAAY,EAAE,CAAC;oBACtB,mEAAmE;oBACnE,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBAC7D,OAAO,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,aAAa,MAAM,GAAG,EAAE,CAAC,CAAC;gBACzE,CAAC;YACH,CAAC;QACH,CAAC;QAED,wEAAwE;QACxE,+CAA+C;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAsB;gBAChC,IAAI,EAAE,MAAM;gBACZ,aAAa,EAAE,EAAE;gBACjB,cAAc,EAAE,EAAE;aACnB,CAAC;YACF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YACrE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAEA,yCAAyC;IAC1C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,eAAe,IAAI,EAAE;QAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACvE,KAAK,MAAM,IAAI,IAAI,eAAe,CAAC,KAAK,IAAI,EAAE;QAAE,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAEzF,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,IAAI;QACxB,aAAa;QACb,SAAS;QACT,YAAY;KACb,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAC/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5C,IAAI,GAA+B,CAAC;IACpC,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAA+B,CAAC;IACvF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAE3B,MAAM,YAAY,GAAsB,EAAE,CAAC;IAC3C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;QAC5C,MAAM,WAAW,GAAG,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QAChE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAClD,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,IAAI,MAA0B,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAuB,CAAC;YACnF,CAAC;YAAC,MAAM,CAAC;gBACP,+DAA+D;gBAC/D,OAAO,IAAI,CAAC;YACd,CAAC;YACD,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAuB,EAAE,CAAC;IAC7C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3C,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;QAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAClD,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACtD,aAAa,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,qFAAqF;IACrF,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;QAC3E,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAClD,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACtD,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,EAAE;SACnB,WAAW,CAAC,KAAK,CAAC;SAClB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SAChH,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAE1C,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,IAAI;QAC9B,QAAQ;QACR,aAAa,EAAE,YAAY;QAC3B,cAAc,EAAE,aAAa;QAC7B,WAAW;KACZ,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;IACxD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IAEtC,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;YAAE,SAAS;QACnD,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,MAAoB,EACpB,KAAkB,EAClB,SAAiB,EACjB,MAAc,EACd,SAAkB;IAElB,MAAM,GAAG,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,sEAAsE;IACtE,sEAAsE;IACtE,gEAAgE;IAChE,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAC5B,CAAC,EAAE,EAAE,EAAE,CACL,EAAE,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;QAC3B,EAAE,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QAC5B,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QACtB,EAAE,CAAC,QAAQ,IAAI,IAAI,CACtB,CAAC;IACF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAsB;YACjC,KAAK;YACL,eAAe,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBACtC,MAAM,KAAK,GAAsB;oBAC/B,IAAI,EAAE,EAAE,CAAC,IAAI;oBACb,WAAW,EAAE,EAAE,CAAC,WAAW;oBAC3B,aAAa,EAAE,EAAE,CAAC,aAAa;oBAC/B,cAAc,EAAE,EAAE,CAAC,cAAc;iBAClC,CAAC;gBACF,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;oBAAE,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBACzD,IAAI,EAAE,CAAC,QAAQ,IAAI,IAAI;oBAAE,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;gBACtD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC;YACF,UAAU,EAAE,MAAM;SACnB,CAAC;QACF,IAAI,SAAS;YAAE,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;QAC9C,MAAM,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjC,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;YAC7B,aAAa,IAAI,EAAE,CAAC,aAAa,CAAC,MAAM,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC3F,CAAC;IACH,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAC1C,MAAM,MAAM,CAAC,WAAW,CAAC;YACvB,KAAK,EAAE,EAAE,CAAC,WAAW;YACrB,KAAK;YACL,UAAU,EAAE,MAAM;YAClB,mBAAmB,EAAE,EAAE,CAAC,IAAI;YAC5B,0BAA0B,EAAE,EAAE,CAAC,WAAW,IAAI,SAAS;YACvD,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;QACH,SAAS,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;IACrC,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAI1B;IACC,MAAM,KAAK,GAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;IAC1D,IAAI,IAAI,CAAC,SAAS;QAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;IACtD,IAAI,IAAI,CAAC,cAAc;QAAE,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC;IACrE,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"kb-view.service.js","sourceRoot":"","sources":["../../src/services/kb-view.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vault secrets service — manage user-owned secrets from the CLI.
|
|
3
|
+
*
|
|
4
|
+
* The CLI is name + scope based and friendly; the apollo-api proxy
|
|
5
|
+
* (`/v1/vault/secrets`) and agent-settings own storage + encryption.
|
|
6
|
+
* apollo's get/delete are by `secret_id`, so name-based `get`/`rm` resolve the
|
|
7
|
+
* id via the list endpoint first.
|
|
8
|
+
*
|
|
9
|
+
* Secret values only ever travel in the create body. Reads return a masked
|
|
10
|
+
* `preview` (never the value), so nothing here needs to mask output.
|
|
11
|
+
*/
|
|
12
|
+
import type { UserSession } from "../config/index.js";
|
|
13
|
+
import type { ApolloClient, ApolloVaultSecretRead, VaultRecordScope } from "../api-client/apollo-client.js";
|
|
14
|
+
import { type ScopeIds } from "./integration.service.js";
|
|
15
|
+
import type { VaultScopeLevel } from "../types/vault.js";
|
|
16
|
+
export interface VaultContext {
|
|
17
|
+
session: UserSession;
|
|
18
|
+
scope: ScopeIds;
|
|
19
|
+
client: ApolloClient;
|
|
20
|
+
}
|
|
21
|
+
export interface VaultScopeOverrides {
|
|
22
|
+
organizationId?: string;
|
|
23
|
+
accountId?: string;
|
|
24
|
+
networkId?: string;
|
|
25
|
+
/** Agent project dir whose `.auirc` supplies scope (defaults to the cwd's). */
|
|
26
|
+
path?: string;
|
|
27
|
+
}
|
|
28
|
+
/** Resolve auth + scope (from flags / .auirc / session) and build the apollo client. */
|
|
29
|
+
export declare function resolveVaultContext(overrides?: VaultScopeOverrides): Promise<VaultContext>;
|
|
30
|
+
/** Validate a secret reference name (used as `{{vault.NAME}}`). */
|
|
31
|
+
export declare function validateSecretName(name: string): void;
|
|
32
|
+
/** Normalize a `--scope` value to a level, defaulting to `agent`. */
|
|
33
|
+
export declare function parseScopeLevel(value?: string): VaultScopeLevel;
|
|
34
|
+
/**
|
|
35
|
+
* Build the RecordScope to send to agent-settings. `agent` == NETWORK scope
|
|
36
|
+
* (the agent is a network). Extra ids are harmless — agent-settings keys the
|
|
37
|
+
* secret by the scope `type` + its matching id.
|
|
38
|
+
*/
|
|
39
|
+
export declare function buildVaultScope(level: VaultScopeLevel, scope: ScopeIds): VaultRecordScope;
|
|
40
|
+
export interface SetSecretParams {
|
|
41
|
+
name: string;
|
|
42
|
+
value: string;
|
|
43
|
+
level: VaultScopeLevel;
|
|
44
|
+
description?: string;
|
|
45
|
+
}
|
|
46
|
+
/** Create or rotate a secret (server-side upsert by name + scope). */
|
|
47
|
+
export declare function setSecret(ctx: VaultContext, params: SetSecretParams): Promise<ApolloVaultSecretRead>;
|
|
48
|
+
/** List secrets visible in the current scope chain (metadata + masked preview). */
|
|
49
|
+
export declare function listSecrets(ctx: VaultContext): Promise<ApolloVaultSecretRead[]>;
|
|
50
|
+
/** Find a single secret by name within the current scope chain. */
|
|
51
|
+
export declare function getSecretByName(ctx: VaultContext, name: string): Promise<ApolloVaultSecretRead>;
|
|
52
|
+
/** Delete a secret by name (resolves the id via list, then DELETE). */
|
|
53
|
+
export declare function removeSecretByName(ctx: VaultContext, name: string): Promise<{
|
|
54
|
+
name: string;
|
|
55
|
+
id: string;
|
|
56
|
+
message: string;
|
|
57
|
+
}>;
|
|
58
|
+
//# sourceMappingURL=vault.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault.service.d.ts","sourceRoot":"","sources":["../../src/services/vault.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EACV,YAAY,EAEZ,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKzD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wFAAwF;AACxF,wBAAsB,mBAAmB,CACvC,SAAS,GAAE,mBAAwB,GAClC,OAAO,CAAC,YAAY,CAAC,CAuBvB;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAOrD;AAED,qEAAqE;AACrE,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,CAM/D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,QAAQ,GACd,gBAAgB,CAmClB;AAeD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,sEAAsE;AACtE,wBAAsB,SAAS,CAC7B,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,qBAAqB,CAAC,CAsBhC;AAED,mFAAmF;AACnF,wBAAsB,WAAW,CAC/B,GAAG,EAAE,YAAY,GAChB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAElC;AAED,mEAAmE;AACnE,wBAAsB,eAAe,CACnC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,qBAAqB,CAAC,CAUhC;AAED,uEAAuE;AACvE,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAIxD"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vault secrets service — manage user-owned secrets from the CLI.
|
|
3
|
+
*
|
|
4
|
+
* The CLI is name + scope based and friendly; the apollo-api proxy
|
|
5
|
+
* (`/v1/vault/secrets`) and agent-settings own storage + encryption.
|
|
6
|
+
* apollo's get/delete are by `secret_id`, so name-based `get`/`rm` resolve the
|
|
7
|
+
* id via the list endpoint first.
|
|
8
|
+
*
|
|
9
|
+
* Secret values only ever travel in the create body. Reads return a masked
|
|
10
|
+
* `preview` (never the value), so nothing here needs to mask output.
|
|
11
|
+
*/
|
|
12
|
+
import { buildApolloClient, getAuthenticatedSession, resolveScopeIds, } from "./integration.service.js";
|
|
13
|
+
import { getOrgScopedToken } from "./auth.service.js";
|
|
14
|
+
import { CLIError, ValidationError } from "../errors/index.js";
|
|
15
|
+
/** Reference names are UPPER_SNAKE_CASE — same constraint agent-settings enforces. */
|
|
16
|
+
const SECRET_NAME_PATTERN = /^[A-Z][A-Z0-9_]*$/;
|
|
17
|
+
/** Resolve auth + scope (from flags / .auirc / session) and build the apollo client. */
|
|
18
|
+
export async function resolveVaultContext(overrides = {}) {
|
|
19
|
+
const session = await getAuthenticatedSession();
|
|
20
|
+
const scope = resolveScopeIds(session, {
|
|
21
|
+
organizationId: overrides.organizationId,
|
|
22
|
+
accountId: overrides.accountId,
|
|
23
|
+
networkId: overrides.networkId,
|
|
24
|
+
}, overrides.path);
|
|
25
|
+
// Cross-org: the login token is scoped to the user's default org, but the
|
|
26
|
+
// project's `.auirc` (or --organization-id) can target an agent in a
|
|
27
|
+
// DIFFERENT org. apollo-api / the gateway trust the token's org claim, so
|
|
28
|
+
// mint a token scoped to the resolved org before hitting the vault endpoints
|
|
29
|
+
// (mirrors `apollo.tsx`). No-op — zero network calls — when they already
|
|
30
|
+
// match, and best-effort (falls back to the login token) on any failure.
|
|
31
|
+
const authToken = await getOrgScopedToken(session.auth_token, scope.organizationId, {
|
|
32
|
+
apiUrl: session.api_url,
|
|
33
|
+
environment: session.environment,
|
|
34
|
+
});
|
|
35
|
+
const client = buildApolloClient({ ...session, auth_token: authToken }, scope);
|
|
36
|
+
return { session, scope, client };
|
|
37
|
+
}
|
|
38
|
+
/** Validate a secret reference name (used as `{{vault.NAME}}`). */
|
|
39
|
+
export function validateSecretName(name) {
|
|
40
|
+
if (!SECRET_NAME_PATTERN.test(name)) {
|
|
41
|
+
throw new ValidationError(`Invalid secret name '${name}'. Use UPPER_SNAKE_CASE (e.g. STRIPE_KEY).`, { suggestion: "Names must match ^[A-Z][A-Z0-9_]*$ — letters, digits and underscores." });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/** Normalize a `--scope` value to a level, defaulting to `agent`. */
|
|
45
|
+
export function parseScopeLevel(value) {
|
|
46
|
+
const v = (value || "agent").toLowerCase();
|
|
47
|
+
if (v === "agent" || v === "account" || v === "organization")
|
|
48
|
+
return v;
|
|
49
|
+
throw new ValidationError(`Invalid --scope '${value}'. Use one of: agent, account, organization.`);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Build the RecordScope to send to agent-settings. `agent` == NETWORK scope
|
|
53
|
+
* (the agent is a network). Extra ids are harmless — agent-settings keys the
|
|
54
|
+
* secret by the scope `type` + its matching id.
|
|
55
|
+
*/
|
|
56
|
+
export function buildVaultScope(level, scope) {
|
|
57
|
+
switch (level) {
|
|
58
|
+
case "agent":
|
|
59
|
+
if (!scope.networkId) {
|
|
60
|
+
throw new ValidationError("No agent (network) id found for agent-scoped secret.", { suggestion: "Run inside an agent project (with .auirc) or pass --network-id <id>." });
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
type: "NETWORK",
|
|
64
|
+
network_id: scope.networkId,
|
|
65
|
+
account_id: scope.accountId || undefined,
|
|
66
|
+
organization_id: scope.organizationId || undefined,
|
|
67
|
+
network_category_id: scope.networkCategoryId || undefined,
|
|
68
|
+
};
|
|
69
|
+
case "account":
|
|
70
|
+
if (!scope.accountId) {
|
|
71
|
+
throw new ValidationError("No account id found for account-scoped secret.", {
|
|
72
|
+
suggestion: "Pass --account-id <id> or select an account first.",
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
type: "ACCOUNT",
|
|
77
|
+
account_id: scope.accountId,
|
|
78
|
+
organization_id: scope.organizationId || undefined,
|
|
79
|
+
};
|
|
80
|
+
case "organization":
|
|
81
|
+
if (!scope.organizationId) {
|
|
82
|
+
throw new ValidationError("No organization id found for organization-scoped secret.", {
|
|
83
|
+
suggestion: "Pass --organization-id <id> or select an organization first.",
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
return { type: "ORGANIZATION", organization_id: scope.organizationId };
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/** Scope-chain query params for list (most-specific-per-name reduction happens server-side). */
|
|
90
|
+
function listScopeParams(scope) {
|
|
91
|
+
return {
|
|
92
|
+
networkId: scope.networkId || undefined,
|
|
93
|
+
accountId: scope.accountId || undefined,
|
|
94
|
+
organizationId: scope.organizationId || undefined,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/** Create or rotate a secret (server-side upsert by name + scope). */
|
|
98
|
+
export async function setSecret(ctx, params) {
|
|
99
|
+
validateSecretName(params.name);
|
|
100
|
+
if (!params.value) {
|
|
101
|
+
throw new ValidationError("Secret value is empty.", {
|
|
102
|
+
suggestion: "Provide a non-empty value via stdin, the prompt, or --value.",
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
if (!ctx.scope.userId) {
|
|
106
|
+
throw new ValidationError("No user id in session; cannot attribute the secret.", {
|
|
107
|
+
suggestion: "Re-run `aui login` to refresh your session.",
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
const scope = buildVaultScope(params.level, ctx.scope);
|
|
111
|
+
const body = {
|
|
112
|
+
name: params.name,
|
|
113
|
+
value: params.value,
|
|
114
|
+
description: params.description,
|
|
115
|
+
scope,
|
|
116
|
+
created_by: ctx.scope.userId,
|
|
117
|
+
updated_by: ctx.scope.userId,
|
|
118
|
+
};
|
|
119
|
+
return ctx.client.createVaultSecret(body);
|
|
120
|
+
}
|
|
121
|
+
/** List secrets visible in the current scope chain (metadata + masked preview). */
|
|
122
|
+
export async function listSecrets(ctx) {
|
|
123
|
+
return ctx.client.listVaultSecrets(listScopeParams(ctx.scope));
|
|
124
|
+
}
|
|
125
|
+
/** Find a single secret by name within the current scope chain. */
|
|
126
|
+
export async function getSecretByName(ctx, name) {
|
|
127
|
+
const secrets = await listSecrets(ctx);
|
|
128
|
+
const match = secrets.find((s) => s.name === name);
|
|
129
|
+
if (!match) {
|
|
130
|
+
throw new CLIError(`Secret '${name}' not found in the current scope.`, {
|
|
131
|
+
code: "API_NOT_FOUND",
|
|
132
|
+
suggestion: "Check the name and scope (try `aui vault list`).",
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
return match;
|
|
136
|
+
}
|
|
137
|
+
/** Delete a secret by name (resolves the id via list, then DELETE). */
|
|
138
|
+
export async function removeSecretByName(ctx, name) {
|
|
139
|
+
const match = await getSecretByName(ctx, name);
|
|
140
|
+
const result = await ctx.client.deleteVaultSecret(match.id);
|
|
141
|
+
return { name, id: match.id, message: result?.message || "Secret deleted successfully" };
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=vault.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault.service.js","sourceRoot":"","sources":["../../src/services/vault.service.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
package/dist/types/index.js
CHANGED
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vault secret types for the `aui vault` command group.
|
|
3
|
+
*
|
|
4
|
+
* The CLI manages secrets by name + scope; the apollo-api proxy and
|
|
5
|
+
* agent-settings own the storage. The decrypted value is write-only — it is
|
|
6
|
+
* only ever sent on create and is never returned by reads (which expose a
|
|
7
|
+
* masked `preview`).
|
|
8
|
+
*/
|
|
9
|
+
/** Scope a secret lives at. `agent` maps to the NETWORK scope (the agent == network). */
|
|
10
|
+
export type VaultScopeLevel = "agent" | "account" | "organization";
|
|
11
|
+
/** Shared options accepted by the `aui vault` subcommands. */
|
|
12
|
+
export interface VaultCommandOptions {
|
|
13
|
+
/** Scope level: agent (default) | account | organization. */
|
|
14
|
+
scope?: string;
|
|
15
|
+
/** Optional human description (set only). */
|
|
16
|
+
description?: string;
|
|
17
|
+
/** Raw secret value (set only). Discouraged — prefer stdin or the hidden prompt. */
|
|
18
|
+
value?: string;
|
|
19
|
+
/** Read the value from stdin (set only). */
|
|
20
|
+
stdin?: boolean;
|
|
21
|
+
/** Skip the confirmation prompt (rm only). */
|
|
22
|
+
yes?: boolean;
|
|
23
|
+
/** Agent project directory (defaults to the current project). */
|
|
24
|
+
path?: string;
|
|
25
|
+
/** Scope id overrides (default to .auirc / session). */
|
|
26
|
+
organizationId?: string;
|
|
27
|
+
accountId?: string;
|
|
28
|
+
networkId?: string;
|
|
29
|
+
}
|
|
30
|
+
export type { ApolloVaultSecretRead as VaultSecret } from "../api-client/apollo-client.js";
|
|
31
|
+
//# sourceMappingURL=vault.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../../src/types/vault.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,yFAAyF;AACzF,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,cAAc,CAAC;AAEnE,8DAA8D;AAC9D,MAAM,WAAW,mBAAmB;IAClC,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8CAA8C;IAC9C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAGD,YAAY,EAAE,qBAAqB,IAAI,WAAW,EAAE,MAAM,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vault secret types for the `aui vault` command group.
|
|
3
|
+
*
|
|
4
|
+
* The CLI manages secrets by name + scope; the apollo-api proxy and
|
|
5
|
+
* agent-settings own the storage. The decrypted value is write-only — it is
|
|
6
|
+
* only ever sent on create and is never returned by reads (which expose a
|
|
7
|
+
* masked `preview`).
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=vault.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/types/vault.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { VaultSecret } from "../../types/vault.js";
|
|
2
|
+
/** Human-readable scope label, e.g. "NETWORK:6a39...". Never shows a value. */
|
|
3
|
+
export declare function scopeLabel(secret: VaultSecret): string;
|
|
4
|
+
interface VaultListViewProps {
|
|
5
|
+
secrets: VaultSecret[];
|
|
6
|
+
}
|
|
7
|
+
export declare function VaultListView({ secrets }: VaultListViewProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
interface VaultSecretViewProps {
|
|
9
|
+
secret: VaultSecret;
|
|
10
|
+
}
|
|
11
|
+
export declare function VaultSecretView({ secret }: VaultSecretViewProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export declare function VaultSecretSavedView({ secret }: VaultSecretViewProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
interface VaultSecretDeletedViewProps {
|
|
14
|
+
name: string;
|
|
15
|
+
message: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function VaultSecretDeletedView({ name, message, }: VaultSecretDeletedViewProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=VaultView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VaultView.d.ts","sourceRoot":"","sources":["../../../src/ui/views/VaultView.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,+EAA+E;AAC/E,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAKtD;AAoBD,UAAU,kBAAkB;IAC1B,OAAO,EAAE,WAAW,EAAE,CAAC;CACxB;AAED,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,kBAAkB,2CAoD5D;AAID,UAAU,oBAAoB;IAC5B,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,2CAO/D;AAID,wBAAgB,oBAAoB,CAAC,EAAE,MAAM,EAAE,EAAE,oBAAoB,2CAcpE;AAID,UAAU,2BAA2B;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,OAAO,GACR,EAAE,2BAA2B,2CAM7B"}
|