@opendatalabs/connect 0.8.1 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -0
- package/dist/cli/bin.d.ts +3 -0
- package/dist/cli/bin.d.ts.map +1 -0
- package/dist/cli/bin.js +15 -0
- package/dist/cli/bin.js.map +1 -0
- package/dist/cli/index.d.ts +89 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +3844 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/main.d.ts +2 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +10 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/mcp-server.d.ts +15 -0
- package/dist/cli/mcp-server.d.ts.map +1 -0
- package/dist/cli/mcp-server.js +199 -0
- package/dist/cli/mcp-server.js.map +1 -0
- package/dist/cli/queries.d.ts +128 -0
- package/dist/cli/queries.d.ts.map +1 -0
- package/dist/cli/queries.js +415 -0
- package/dist/cli/queries.js.map +1 -0
- package/dist/cli/render/capabilities.d.ts +9 -0
- package/dist/cli/render/capabilities.d.ts.map +1 -0
- package/dist/cli/render/capabilities.js +24 -0
- package/dist/cli/render/capabilities.js.map +1 -0
- package/dist/cli/render/connect-renderer.d.ts +18 -0
- package/dist/cli/render/connect-renderer.d.ts.map +1 -0
- package/dist/cli/render/connect-renderer.js +255 -0
- package/dist/cli/render/connect-renderer.js.map +1 -0
- package/dist/cli/render/format.d.ts +27 -0
- package/dist/cli/render/format.d.ts.map +1 -0
- package/dist/cli/render/format.js +111 -0
- package/dist/cli/render/format.js.map +1 -0
- package/dist/cli/render/index.d.ts +7 -0
- package/dist/cli/render/index.d.ts.map +1 -0
- package/dist/cli/render/index.js +7 -0
- package/dist/cli/render/index.js.map +1 -0
- package/dist/cli/render/progress.d.ts +11 -0
- package/dist/cli/render/progress.d.ts.map +1 -0
- package/dist/cli/render/progress.js +56 -0
- package/dist/cli/render/progress.js.map +1 -0
- package/dist/cli/render/symbols.d.ts +11 -0
- package/dist/cli/render/symbols.d.ts.map +1 -0
- package/dist/cli/render/symbols.js +21 -0
- package/dist/cli/render/symbols.js.map +1 -0
- package/dist/cli/render/theme.d.ts +15 -0
- package/dist/cli/render/theme.d.ts.map +1 -0
- package/dist/cli/render/theme.js +41 -0
- package/dist/cli/render/theme.js.map +1 -0
- package/dist/cli/search-select.d.ts +17 -0
- package/dist/cli/search-select.d.ts.map +1 -0
- package/dist/cli/search-select.js +29 -0
- package/dist/cli/search-select.js.map +1 -0
- package/dist/cli/update-check-worker.d.ts +2 -0
- package/dist/cli/update-check-worker.d.ts.map +1 -0
- package/dist/cli/update-check-worker.js +55 -0
- package/dist/cli/update-check-worker.js.map +1 -0
- package/dist/cli/update-check.d.ts +21 -0
- package/dist/cli/update-check.d.ts.map +1 -0
- package/dist/cli/update-check.js +52 -0
- package/dist/cli/update-check.js.map +1 -0
- package/dist/connectors/index.d.ts +2 -0
- package/dist/connectors/index.d.ts.map +1 -0
- package/dist/connectors/index.js +2 -0
- package/dist/connectors/index.js.map +1 -0
- package/dist/connectors/registry.d.ts +55 -0
- package/dist/connectors/registry.d.ts.map +1 -0
- package/dist/connectors/registry.js +298 -0
- package/dist/connectors/registry.js.map +1 -0
- package/dist/core/cli-types.d.ts +692 -0
- package/dist/core/cli-types.d.ts.map +1 -0
- package/dist/core/cli-types.js +322 -0
- package/dist/core/cli-types.js.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/paths.d.ts +28 -0
- package/dist/core/paths.d.ts.map +1 -0
- package/dist/core/paths.js +89 -0
- package/dist/core/paths.js.map +1 -0
- package/dist/core/state-store.d.ts +39 -0
- package/dist/core/state-store.d.ts.map +1 -0
- package/dist/core/state-store.js +101 -0
- package/dist/core/state-store.js.map +1 -0
- package/dist/core/types.d.ts +2 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/personal-server/client.d.ts +34 -0
- package/dist/personal-server/client.d.ts.map +1 -0
- package/dist/personal-server/client.js +94 -0
- package/dist/personal-server/client.js.map +1 -0
- package/dist/personal-server/index.d.ts +18 -0
- package/dist/personal-server/index.d.ts.map +1 -0
- package/dist/personal-server/index.js +123 -0
- package/dist/personal-server/index.js.map +1 -0
- package/dist/personal-server/scope-resolver.d.ts +22 -0
- package/dist/personal-server/scope-resolver.d.ts.map +1 -0
- package/dist/personal-server/scope-resolver.js +68 -0
- package/dist/personal-server/scope-resolver.js.map +1 -0
- package/dist/runtime/core/contracts.d.ts +84 -0
- package/dist/runtime/core/contracts.d.ts.map +1 -0
- package/dist/runtime/core/contracts.js +2 -0
- package/dist/runtime/core/contracts.js.map +1 -0
- package/dist/runtime/core/index.d.ts +2 -0
- package/dist/runtime/core/index.d.ts.map +1 -0
- package/dist/runtime/core/index.js +2 -0
- package/dist/runtime/core/index.js.map +1 -0
- package/dist/runtime/index.d.ts +4 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +3 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/managed-playwright.d.ts +42 -0
- package/dist/runtime/managed-playwright.d.ts.map +1 -0
- package/dist/runtime/managed-playwright.js +178 -0
- package/dist/runtime/managed-playwright.js.map +1 -0
- package/dist/runtime/playwright/browser.d.ts +12 -0
- package/dist/runtime/playwright/browser.d.ts.map +1 -0
- package/dist/runtime/playwright/browser.js +229 -0
- package/dist/runtime/playwright/browser.js.map +1 -0
- package/dist/runtime/playwright/in-process-run.d.ts +6 -0
- package/dist/runtime/playwright/in-process-run.d.ts.map +1 -0
- package/dist/runtime/playwright/in-process-run.js +628 -0
- package/dist/runtime/playwright/in-process-run.js.map +1 -0
- package/dist/runtime/playwright/index.d.ts +3 -0
- package/dist/runtime/playwright/index.d.ts.map +1 -0
- package/dist/runtime/playwright/index.js +3 -0
- package/dist/runtime/playwright/index.js.map +1 -0
- package/dist/runtime/repo-paths.d.ts +2 -0
- package/dist/runtime/repo-paths.d.ts.map +1 -0
- package/dist/runtime/repo-paths.js +36 -0
- package/dist/runtime/repo-paths.js.map +1 -0
- package/dist/server/config.d.ts +2 -0
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +1 -0
- package/dist/server/config.js.map +1 -1
- package/dist/server/connect.d.ts.map +1 -1
- package/dist/server/connect.js +4 -0
- package/dist/server/connect.js.map +1 -1
- package/dist/skills/index.d.ts +4 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +3 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/paths.d.ts +33 -0
- package/dist/skills/paths.d.ts.map +1 -0
- package/dist/skills/paths.js +81 -0
- package/dist/skills/paths.js.map +1 -0
- package/dist/skills/registry.d.ts +48 -0
- package/dist/skills/registry.d.ts.map +1 -0
- package/dist/skills/registry.js +173 -0
- package/dist/skills/registry.js.map +1 -0
- package/package.json +51 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/playwright/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,yBAAyB,EACzB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-paths.d.ts","sourceRoot":"","sources":["../../src/runtime/repo-paths.ts"],"names":[],"mappings":"AAGA,wBAAgB,qBAAqB,CAAC,GAAG,SAAgB,GAAG,MAAM,GAAG,IAAI,CAwCxE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
export function findDataConnectorsDir(cwd = process.cwd()) {
|
|
4
|
+
const candidates = [];
|
|
5
|
+
const seen = new Set();
|
|
6
|
+
const pushCandidate = (value) => {
|
|
7
|
+
if (!value) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
const resolved = path.resolve(value);
|
|
11
|
+
if (seen.has(resolved)) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
seen.add(resolved);
|
|
15
|
+
candidates.push(resolved);
|
|
16
|
+
};
|
|
17
|
+
pushCandidate(process.env.VANA_DATA_CONNECTORS_DIR);
|
|
18
|
+
let currentDir = path.resolve(cwd);
|
|
19
|
+
while (true) {
|
|
20
|
+
pushCandidate(currentDir);
|
|
21
|
+
pushCandidate(path.join(currentDir, "data-connectors"));
|
|
22
|
+
const parentDir = path.dirname(currentDir);
|
|
23
|
+
if (parentDir === currentDir) {
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
currentDir = parentDir;
|
|
27
|
+
}
|
|
28
|
+
for (const candidate of candidates) {
|
|
29
|
+
if (fs.existsSync(path.join(candidate, "registry.json")) &&
|
|
30
|
+
fs.existsSync(path.join(candidate, "skills", "vana-connect", "scripts"))) {
|
|
31
|
+
return candidate;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=repo-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-paths.js","sourceRoot":"","sources":["../../src/runtime/repo-paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,qBAAqB,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACvD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAE,EAAE;QAClD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAEpD,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,IAAI,EAAE,CAAC;QACZ,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;QAExD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM;QACR,CAAC;QACD,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IACE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YACpD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,EACxE,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/server/config.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export interface VanaConfig {
|
|
|
3
3
|
privateKey: `0x${string}`;
|
|
4
4
|
scopes: string[];
|
|
5
5
|
appUrl: string;
|
|
6
|
+
dataSource?: string;
|
|
6
7
|
environment?: VanaEnvironment;
|
|
7
8
|
}
|
|
8
9
|
/**
|
|
@@ -31,6 +32,7 @@ export declare function createVanaConfig(config: {
|
|
|
31
32
|
privateKey: `0x${string}`;
|
|
32
33
|
scopes: string[];
|
|
33
34
|
appUrl: string;
|
|
35
|
+
dataSource?: string;
|
|
34
36
|
environment?: VanaEnvironment;
|
|
35
37
|
}): VanaConfig;
|
|
36
38
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,eAAe,CAAC;CAC/B,GAAG,UAAU,CAoCb"}
|
package/dist/server/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/server/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAUnE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAMhC;IACC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,IAAI,YAAY,CACpB,qDAAqD,EACrD,gBAAgB,CAAC,cAAc,CAChC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,YAAY,CACpB,gCAAgC,EAChC,gBAAgB,CAAC,cAAc,CAChC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,YAAY,CACpB,0DAA0D,EAC1D,gBAAgB,CAAC,cAAc,CAChC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,IAAI,YAAY,CACpB,2DAA2D,EAC3D,gBAAgB,CAAC,cAAc,CAChC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/server/connect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAK1B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../../src/server/connect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,iBAAiB,EAClB,MAAM,kBAAkB,CAAC;AAK1B;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,iBAAiB,CAAC,CA0C5B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA8BlC"}
|
package/dist/server/connect.js
CHANGED
|
@@ -41,6 +41,10 @@ export async function connect(config) {
|
|
|
41
41
|
if (typeof config.appUrl === "string" && config.appUrl.trim().length > 0) {
|
|
42
42
|
connectUrl.searchParams.set("appUrl", config.appUrl.trim());
|
|
43
43
|
}
|
|
44
|
+
if (typeof config.dataSource === "string" &&
|
|
45
|
+
config.dataSource.trim().length > 0) {
|
|
46
|
+
connectUrl.searchParams.set("dataSource", config.dataSource.trim());
|
|
47
|
+
}
|
|
44
48
|
try {
|
|
45
49
|
const deepLinkParams = new URL(relayResult.deepLinkUrl);
|
|
46
50
|
const secret = deepLinkParams.searchParams.get("secret");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/server/connect.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/server/connect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { listAvailableSkills, fetchSkillToCache, installSkill, readInstalledSkills, } from "./registry.js";
|
|
2
|
+
export type { SkillRegistryEntry, AvailableSkill } from "./registry.js";
|
|
3
|
+
export { getSkillsCacheDir, findSkillsDir, getClaudeSkillsDir, getAgentsSkillsDir, getSkillInstallDirs, isClaudeCodeInstalled, } from "./paths.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,GACpB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { listAvailableSkills, fetchSkillToCache, installSkill, readInstalledSkills, } from "./registry.js";
|
|
2
|
+
export { getSkillsCacheDir, findSkillsDir, getClaudeSkillsDir, getAgentsSkillsDir, getSkillInstallDirs, isClaudeCodeInstalled, } from "./paths.js";
|
|
3
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/skills/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the local cache directory for downloaded skills.
|
|
3
|
+
* @returns Absolute path to `~/.vana/skills/`
|
|
4
|
+
*/
|
|
5
|
+
export declare function getSkillsCacheDir(): string;
|
|
6
|
+
/**
|
|
7
|
+
* Walks up from `cwd` looking for a `skills/registry.json` file.
|
|
8
|
+
* Returns the path to the `skills/` directory if found, or `null`.
|
|
9
|
+
*
|
|
10
|
+
* Also checks for the env override `VANA_SKILLS_DIR`.
|
|
11
|
+
*/
|
|
12
|
+
export declare function findSkillsDir(cwd?: string): string | null;
|
|
13
|
+
/**
|
|
14
|
+
* Returns the universal agent skills directory (cross-agent standard).
|
|
15
|
+
* @returns Absolute path to `~/.agents/skills/`
|
|
16
|
+
*/
|
|
17
|
+
export declare function getAgentsSkillsDir(): string;
|
|
18
|
+
/**
|
|
19
|
+
* Returns the Claude Code skills directory.
|
|
20
|
+
* @returns Absolute path to `~/.claude/skills/`
|
|
21
|
+
*/
|
|
22
|
+
export declare function getClaudeSkillsDir(): string;
|
|
23
|
+
/**
|
|
24
|
+
* Detects whether Claude Code is installed by checking for `~/.claude/`.
|
|
25
|
+
*/
|
|
26
|
+
export declare function isClaudeCodeInstalled(): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Returns all directories where skills should be installed.
|
|
29
|
+
* Always includes the universal `.agents/skills/` path.
|
|
30
|
+
* Adds `~/.claude/skills/` if Claude Code is detected.
|
|
31
|
+
*/
|
|
32
|
+
export declare function getSkillInstallDirs(): string[];
|
|
33
|
+
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/skills/paths.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,SAAgB,GAAG,MAAM,GAAG,IAAI,CAoChE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAM9C"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import os from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { getVanaHome } from "../core/paths.js";
|
|
5
|
+
/**
|
|
6
|
+
* Returns the local cache directory for downloaded skills.
|
|
7
|
+
* @returns Absolute path to `~/.vana/skills/`
|
|
8
|
+
*/
|
|
9
|
+
export function getSkillsCacheDir() {
|
|
10
|
+
return path.join(getVanaHome(), "skills");
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Walks up from `cwd` looking for a `skills/registry.json` file.
|
|
14
|
+
* Returns the path to the `skills/` directory if found, or `null`.
|
|
15
|
+
*
|
|
16
|
+
* Also checks for the env override `VANA_SKILLS_DIR`.
|
|
17
|
+
*/
|
|
18
|
+
export function findSkillsDir(cwd = process.cwd()) {
|
|
19
|
+
const candidates = [];
|
|
20
|
+
const seen = new Set();
|
|
21
|
+
const pushCandidate = (value) => {
|
|
22
|
+
if (!value) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const resolved = path.resolve(value);
|
|
26
|
+
if (seen.has(resolved)) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
seen.add(resolved);
|
|
30
|
+
candidates.push(resolved);
|
|
31
|
+
};
|
|
32
|
+
pushCandidate(process.env.VANA_SKILLS_DIR);
|
|
33
|
+
let currentDir = path.resolve(cwd);
|
|
34
|
+
while (true) {
|
|
35
|
+
pushCandidate(path.join(currentDir, "skills"));
|
|
36
|
+
const parentDir = path.dirname(currentDir);
|
|
37
|
+
if (parentDir === currentDir) {
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
currentDir = parentDir;
|
|
41
|
+
}
|
|
42
|
+
for (const candidate of candidates) {
|
|
43
|
+
if (fs.existsSync(path.join(candidate, "registry.json"))) {
|
|
44
|
+
return candidate;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Returns the universal agent skills directory (cross-agent standard).
|
|
51
|
+
* @returns Absolute path to `~/.agents/skills/`
|
|
52
|
+
*/
|
|
53
|
+
export function getAgentsSkillsDir() {
|
|
54
|
+
return path.join(os.homedir(), ".agents", "skills");
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Returns the Claude Code skills directory.
|
|
58
|
+
* @returns Absolute path to `~/.claude/skills/`
|
|
59
|
+
*/
|
|
60
|
+
export function getClaudeSkillsDir() {
|
|
61
|
+
return path.join(os.homedir(), ".claude", "skills");
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Detects whether Claude Code is installed by checking for `~/.claude/`.
|
|
65
|
+
*/
|
|
66
|
+
export function isClaudeCodeInstalled() {
|
|
67
|
+
return fs.existsSync(path.join(os.homedir(), ".claude"));
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Returns all directories where skills should be installed.
|
|
71
|
+
* Always includes the universal `.agents/skills/` path.
|
|
72
|
+
* Adds `~/.claude/skills/` if Claude Code is detected.
|
|
73
|
+
*/
|
|
74
|
+
export function getSkillInstallDirs() {
|
|
75
|
+
const dirs = [getAgentsSkillsDir()];
|
|
76
|
+
if (isClaudeCodeInstalled()) {
|
|
77
|
+
dirs.push(getClaudeSkillsDir());
|
|
78
|
+
}
|
|
79
|
+
return dirs;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/skills/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IAC/C,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAE/B,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAE,EAAE;QAClD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACnB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAE3C,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,OAAO,IAAI,EAAE,CAAC;QACZ,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE/C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM;QACR,CAAC;QACD,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC;YACzD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB;IACjC,MAAM,IAAI,GAAG,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACpC,IAAI,qBAAqB,EAAE,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export interface SkillRegistryEntry {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
version: string;
|
|
6
|
+
files: {
|
|
7
|
+
skill: string;
|
|
8
|
+
supplemental?: string[];
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export interface AvailableSkill {
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
description: string;
|
|
15
|
+
version: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* List all available skills from the registry.
|
|
19
|
+
* Tries a local `skills/` directory first, then falls back to remote.
|
|
20
|
+
*/
|
|
21
|
+
export declare function listAvailableSkills(skillsDir?: string): Promise<AvailableSkill[]>;
|
|
22
|
+
/**
|
|
23
|
+
* Fetch a skill's files to the local cache directory.
|
|
24
|
+
* @returns The path to the cached SKILL.md
|
|
25
|
+
*/
|
|
26
|
+
export declare function fetchSkillToCache(skillId: string, cacheDir?: string, skillsDir?: string): Promise<{
|
|
27
|
+
skillPath: string;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Install a skill to all detected agent skill directories.
|
|
31
|
+
*
|
|
32
|
+
* Installs to `~/.agents/skills/vana-{id}/` (universal) and
|
|
33
|
+
* `~/.claude/skills/vana-{id}/` if Claude Code is detected.
|
|
34
|
+
*/
|
|
35
|
+
export declare function installSkill(skillId: string, skillsDir?: string): Promise<{
|
|
36
|
+
installedPath: string;
|
|
37
|
+
installedPaths: string[];
|
|
38
|
+
}>;
|
|
39
|
+
/**
|
|
40
|
+
* Read installed skills from all known agent skills directories.
|
|
41
|
+
* Checks both `~/.agents/skills/` and `~/.claude/skills/` for `vana-*` dirs.
|
|
42
|
+
* Deduplicates by skill ID.
|
|
43
|
+
*/
|
|
44
|
+
export declare function readInstalledSkills(): Promise<Array<{
|
|
45
|
+
id: string;
|
|
46
|
+
path: string;
|
|
47
|
+
}>>;
|
|
48
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/skills/registry.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACnD;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,cAAc,EAAE,CAAC,CAQ3B;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAkChC;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAkD9D;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAClD,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CACpC,CAiCA"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { findSkillsDir, getSkillInstallDirs, getSkillsCacheDir, } from "./paths.js";
|
|
4
|
+
const SKILLS_REGISTRY_URL = "https://raw.githubusercontent.com/vana-com/vana-connect/feat/connect-cli-v1/skills/registry.json";
|
|
5
|
+
const SKILLS_BASE_URL = "https://raw.githubusercontent.com/vana-com/vana-connect/feat/connect-cli-v1/skills";
|
|
6
|
+
/**
|
|
7
|
+
* List all available skills from the registry.
|
|
8
|
+
* Tries a local `skills/` directory first, then falls back to remote.
|
|
9
|
+
*/
|
|
10
|
+
export async function listAvailableSkills(skillsDir) {
|
|
11
|
+
const registry = await loadSkillsRegistry(skillsDir);
|
|
12
|
+
return (registry.skills ?? []).map((entry) => ({
|
|
13
|
+
id: entry.id,
|
|
14
|
+
name: entry.name,
|
|
15
|
+
description: entry.description,
|
|
16
|
+
version: entry.version,
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Fetch a skill's files to the local cache directory.
|
|
21
|
+
* @returns The path to the cached SKILL.md
|
|
22
|
+
*/
|
|
23
|
+
export async function fetchSkillToCache(skillId, cacheDir, skillsDir) {
|
|
24
|
+
const resolvedCacheDir = cacheDir ?? getSkillsCacheDir();
|
|
25
|
+
const registry = await loadSkillsRegistry(skillsDir);
|
|
26
|
+
const match = (registry.skills ?? []).find((entry) => entry.id.toLowerCase() === skillId.toLowerCase());
|
|
27
|
+
if (!match) {
|
|
28
|
+
throw new Error(`No skill found with id "${skillId}".`);
|
|
29
|
+
}
|
|
30
|
+
// Fetch the main skill file
|
|
31
|
+
await copyOrFetchSkillFile(match.files.skill, resolvedCacheDir, skillsDir ?? findSkillsDir() ?? undefined);
|
|
32
|
+
// Fetch supplemental files if any
|
|
33
|
+
if (match.files.supplemental) {
|
|
34
|
+
for (const supplementalPath of match.files.supplemental) {
|
|
35
|
+
await copyOrFetchSkillFile(supplementalPath, resolvedCacheDir, skillsDir ?? findSkillsDir() ?? undefined).catch(() => {
|
|
36
|
+
// Supplemental file fetch failure is non-fatal.
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
skillPath: path.join(resolvedCacheDir, match.files.skill),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Install a skill to all detected agent skill directories.
|
|
46
|
+
*
|
|
47
|
+
* Installs to `~/.agents/skills/vana-{id}/` (universal) and
|
|
48
|
+
* `~/.claude/skills/vana-{id}/` if Claude Code is detected.
|
|
49
|
+
*/
|
|
50
|
+
export async function installSkill(skillId, skillsDir) {
|
|
51
|
+
const cacheDir = getSkillsCacheDir();
|
|
52
|
+
const registry = await loadSkillsRegistry(skillsDir);
|
|
53
|
+
const match = (registry.skills ?? []).find((entry) => entry.id.toLowerCase() === skillId.toLowerCase());
|
|
54
|
+
if (!match) {
|
|
55
|
+
throw new Error(`No skill found with id "${skillId}".`);
|
|
56
|
+
}
|
|
57
|
+
// Fetch to cache first
|
|
58
|
+
await fetchSkillToCache(skillId, cacheDir, skillsDir);
|
|
59
|
+
const installDirs = getSkillInstallDirs();
|
|
60
|
+
const installedPaths = [];
|
|
61
|
+
for (const baseDir of installDirs) {
|
|
62
|
+
const installDir = path.join(baseDir, `vana-${match.id}`);
|
|
63
|
+
await fs.mkdir(installDir, { recursive: true });
|
|
64
|
+
// Copy the main skill file
|
|
65
|
+
const cachedSkillPath = path.join(cacheDir, match.files.skill);
|
|
66
|
+
const installedSkillPath = path.join(installDir, "SKILL.md");
|
|
67
|
+
const content = await fs.readFile(cachedSkillPath);
|
|
68
|
+
await fs.writeFile(installedSkillPath, content);
|
|
69
|
+
// Copy supplemental files if any
|
|
70
|
+
if (match.files.supplemental) {
|
|
71
|
+
for (const supplementalRelPath of match.files.supplemental) {
|
|
72
|
+
const cachedPath = path.join(cacheDir, supplementalRelPath);
|
|
73
|
+
const skillDirPrefix = match.id + "/";
|
|
74
|
+
const relFromSkillDir = supplementalRelPath.startsWith(skillDirPrefix)
|
|
75
|
+
? supplementalRelPath.slice(skillDirPrefix.length)
|
|
76
|
+
: path.basename(supplementalRelPath);
|
|
77
|
+
const installedPath = path.join(installDir, relFromSkillDir);
|
|
78
|
+
try {
|
|
79
|
+
await fs.mkdir(path.dirname(installedPath), { recursive: true });
|
|
80
|
+
const fileContent = await fs.readFile(cachedPath);
|
|
81
|
+
await fs.writeFile(installedPath, fileContent);
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
// Non-fatal if supplemental file is missing from cache.
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
installedPaths.push(installDir);
|
|
89
|
+
}
|
|
90
|
+
return { installedPath: installedPaths[0], installedPaths };
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Read installed skills from all known agent skills directories.
|
|
94
|
+
* Checks both `~/.agents/skills/` and `~/.claude/skills/` for `vana-*` dirs.
|
|
95
|
+
* Deduplicates by skill ID.
|
|
96
|
+
*/
|
|
97
|
+
export async function readInstalledSkills() {
|
|
98
|
+
const installDirs = getSkillInstallDirs();
|
|
99
|
+
const seen = new Set();
|
|
100
|
+
const installed = [];
|
|
101
|
+
for (const baseDir of installDirs) {
|
|
102
|
+
try {
|
|
103
|
+
const entries = await fs.readdir(baseDir, { withFileTypes: true });
|
|
104
|
+
for (const entry of entries) {
|
|
105
|
+
if (!entry.isDirectory() || !entry.name.startsWith("vana-")) {
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
const id = entry.name.replace(/^vana-/, "");
|
|
109
|
+
if (seen.has(id))
|
|
110
|
+
continue;
|
|
111
|
+
const skillPath = path.join(baseDir, entry.name, "SKILL.md");
|
|
112
|
+
try {
|
|
113
|
+
await fs.access(skillPath);
|
|
114
|
+
seen.add(id);
|
|
115
|
+
installed.push({
|
|
116
|
+
id,
|
|
117
|
+
path: path.join(baseDir, entry.name),
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// Directory exists but no SKILL.md — skip.
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
// Directory doesn't exist — skip.
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return installed;
|
|
130
|
+
}
|
|
131
|
+
async function loadSkillsRegistry(skillsDir) {
|
|
132
|
+
const resolvedDir = skillsDir ?? findSkillsDir() ?? undefined;
|
|
133
|
+
if (resolvedDir) {
|
|
134
|
+
try {
|
|
135
|
+
const localRegistry = await fs.readFile(path.join(resolvedDir, "registry.json"), "utf8");
|
|
136
|
+
return JSON.parse(localRegistry);
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
// Fall through to remote fetch.
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
const response = await fetch(SKILLS_REGISTRY_URL, {
|
|
143
|
+
headers: { "User-Agent": "@opendatalabs/connect" },
|
|
144
|
+
});
|
|
145
|
+
if (!response.ok) {
|
|
146
|
+
throw new Error(`Failed to load skills registry: ${response.status}`);
|
|
147
|
+
}
|
|
148
|
+
return (await response.json());
|
|
149
|
+
}
|
|
150
|
+
async function copyOrFetchSkillFile(relativePath, cacheDir, skillsDir) {
|
|
151
|
+
const destination = path.join(cacheDir, relativePath);
|
|
152
|
+
await fs.mkdir(path.dirname(destination), { recursive: true });
|
|
153
|
+
if (skillsDir) {
|
|
154
|
+
const localPath = path.join(skillsDir, relativePath);
|
|
155
|
+
try {
|
|
156
|
+
const content = await fs.readFile(localPath);
|
|
157
|
+
await fs.writeFile(destination, content);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
// Fall through to remote fetch.
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
const response = await fetch(`${SKILLS_BASE_URL}/${relativePath}`, {
|
|
165
|
+
headers: { "User-Agent": "@opendatalabs/connect" },
|
|
166
|
+
});
|
|
167
|
+
if (!response.ok) {
|
|
168
|
+
throw new Error(`Failed to download ${relativePath}: ${response.status}`);
|
|
169
|
+
}
|
|
170
|
+
const content = Buffer.from(await response.arrayBuffer());
|
|
171
|
+
await fs.writeFile(destination, content);
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/skills/registry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opendatalabs/connect",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "SDK for integrating Vana Data Portability 'Connect data' flows",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -16,6 +16,9 @@
|
|
|
16
16
|
"publishConfig": {
|
|
17
17
|
"access": "public"
|
|
18
18
|
},
|
|
19
|
+
"bin": {
|
|
20
|
+
"vana": "./dist/cli/bin.js"
|
|
21
|
+
},
|
|
19
22
|
"files": [
|
|
20
23
|
"dist"
|
|
21
24
|
],
|
|
@@ -35,12 +38,39 @@
|
|
|
35
38
|
"./core": {
|
|
36
39
|
"types": "./dist/core/index.d.ts",
|
|
37
40
|
"import": "./dist/core/index.js"
|
|
41
|
+
},
|
|
42
|
+
"./runtime": {
|
|
43
|
+
"types": "./dist/runtime/index.d.ts",
|
|
44
|
+
"import": "./dist/runtime/index.js"
|
|
45
|
+
},
|
|
46
|
+
"./connectors": {
|
|
47
|
+
"types": "./dist/connectors/index.d.ts",
|
|
48
|
+
"import": "./dist/connectors/index.js"
|
|
49
|
+
},
|
|
50
|
+
"./cli": {
|
|
51
|
+
"types": "./dist/cli/main.d.ts",
|
|
52
|
+
"import": "./dist/cli/main.js"
|
|
38
53
|
}
|
|
39
54
|
},
|
|
40
55
|
"scripts": {
|
|
41
56
|
"build": "tsc --build",
|
|
42
|
-
"
|
|
57
|
+
"build:sea": "npx -y node@25 ./scripts/build-sea.mjs",
|
|
58
|
+
"build:sea:smoke": "npx -y node@25 ./scripts/build-sea.mjs --smoke",
|
|
59
|
+
"clean": "node ./scripts/clean-build.mjs",
|
|
60
|
+
"cli": "node dist/cli/bin.js",
|
|
61
|
+
"demo:vhs": "pnpm build && node ./scripts/render-vhs.mjs",
|
|
62
|
+
"demo:vhs:fixtures": "node ./scripts/prepare-vhs-fixtures.mjs",
|
|
63
|
+
"demo:transcripts": "pnpm build && node ./scripts/capture-cli-transcripts.mjs",
|
|
64
|
+
"pack:check": "node ./scripts/assert-pack-contents.mjs",
|
|
65
|
+
"sea:check": "node ./scripts/assert-sea-artifact.mjs",
|
|
66
|
+
"homebrew:check": "node ./scripts/assert-homebrew-formula-sync.mjs",
|
|
67
|
+
"release:check-demo-assets": "node ./scripts/assert-release-demo-assets.mjs",
|
|
68
|
+
"release:watch": "node ./scripts/watch-release-lane.mjs",
|
|
43
69
|
"skills:sync": "node scripts/sync-skills.js",
|
|
70
|
+
"test:install:unix": "sh ./scripts/test-install-unix.sh",
|
|
71
|
+
"test:install:windows": "pwsh -File ./scripts/test-install-windows.ps1",
|
|
72
|
+
"test:install:github-release": "sh ./scripts/test-install-github-release.sh",
|
|
73
|
+
"test:runtime:cookie-import": "vitest run test/runtime/browser.test.ts",
|
|
44
74
|
"test": "vitest run",
|
|
45
75
|
"test:watch": "vitest",
|
|
46
76
|
"test:e2e": "vitest run --config test/e2e/vitest.config.ts",
|
|
@@ -49,6 +79,10 @@
|
|
|
49
79
|
"lint:eslint:fix": "eslint --fix 'src/**/*.ts' 'src/**/*.tsx'",
|
|
50
80
|
"format": "prettier --write .",
|
|
51
81
|
"format:check": "prettier --check .",
|
|
82
|
+
"package-managers:generate": "node ./scripts/generate-package-manager-metadata.mjs",
|
|
83
|
+
"preflight:cli": "pnpm test test/core/state-store.test.ts test/cli/render-format.test.ts test/runtime/in-process-run.test.ts test/cli/index.test.ts && pnpm build && pnpm format:check && pnpm demo:transcripts",
|
|
84
|
+
"release:collect-assets": "node ./scripts/collect-release-assets.mjs",
|
|
85
|
+
"runtime:footprint": "node ./scripts/report-runtime-footprint.mjs",
|
|
52
86
|
"validate": "npm run lint && npm run lint:eslint && npm run format:check && npm test",
|
|
53
87
|
"prepare": "husky"
|
|
54
88
|
},
|
|
@@ -64,9 +98,21 @@
|
|
|
64
98
|
"engines": {
|
|
65
99
|
"node": ">=20.0.0"
|
|
66
100
|
},
|
|
101
|
+
"dependencies": {
|
|
102
|
+
"@inquirer/prompts": "8.3.0",
|
|
103
|
+
"@inquirer/search": "^4.1.6",
|
|
104
|
+
"@modelcontextprotocol/sdk": "^1.27.1",
|
|
105
|
+
"chromium-bidi": "15.0.0",
|
|
106
|
+
"commander": "14.0.3",
|
|
107
|
+
"fuse.js": "^7.1.0",
|
|
108
|
+
"ora": "^8.2.0",
|
|
109
|
+
"picocolors": "^1.1.1",
|
|
110
|
+
"playwright": "1.58.2",
|
|
111
|
+
"zod": "4.3.6"
|
|
112
|
+
},
|
|
67
113
|
"peerDependencies": {
|
|
68
|
-
"
|
|
69
|
-
"
|
|
114
|
+
"react": ">=18.0.0",
|
|
115
|
+
"viem": "^2.0.0"
|
|
70
116
|
},
|
|
71
117
|
"peerDependenciesMeta": {
|
|
72
118
|
"react": {
|
|
@@ -84,6 +130,7 @@
|
|
|
84
130
|
"@types/node": "^25.2.0",
|
|
85
131
|
"@types/react": "^19.0.0",
|
|
86
132
|
"conventional-changelog-conventionalcommits": "^9.1.0",
|
|
133
|
+
"esbuild": "^0.27.4",
|
|
87
134
|
"eslint": "^9.39.2",
|
|
88
135
|
"eslint-config-prettier": "^10.1.8",
|
|
89
136
|
"husky": "^9.1.7",
|