@absol-labs/agent 0.7.3 → 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 +19 -4
- package/dist/discovery/registry.d.ts +110 -305
- package/dist/discovery/registry.d.ts.map +1 -1
- package/dist/discovery/registry.js +141 -318
- package/dist/discovery/registry.js.map +1 -1
- package/dist/frameworks/agentkit.d.ts.map +1 -1
- package/dist/frameworks/agentkit.js +23 -6
- package/dist/frameworks/agentkit.js.map +1 -1
- package/dist/gateway/caller-auth-gateway.d.ts +103 -2
- package/dist/gateway/caller-auth-gateway.d.ts.map +1 -1
- package/dist/gateway/caller-auth-gateway.js +176 -19
- package/dist/gateway/caller-auth-gateway.js.map +1 -1
- package/dist/gateway/http-server.d.ts +12 -0
- package/dist/gateway/http-server.d.ts.map +1 -1
- package/dist/gateway/http-server.js +45 -1
- package/dist/gateway/http-server.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/wallet/autonomous-wallet-store.d.ts +123 -0
- package/dist/wallet/autonomous-wallet-store.d.ts.map +1 -0
- package/dist/wallet/autonomous-wallet-store.js +318 -0
- package/dist/wallet/autonomous-wallet-store.js.map +1 -0
- package/dist/wallet/autonomous-wallet.d.ts +14 -39
- package/dist/wallet/autonomous-wallet.d.ts.map +1 -1
- package/dist/wallet/autonomous-wallet.js +12 -145
- package/dist/wallet/autonomous-wallet.js.map +1 -1
- package/dist/wallet/cdp-sdk.d.ts +23 -0
- package/dist/wallet/cdp-sdk.d.ts.map +1 -0
- package/dist/wallet/cdp-sdk.js +27 -0
- package/dist/wallet/cdp-sdk.js.map +1 -0
- package/dist/wallet/encrypted-file-credential-store.d.ts +41 -0
- package/dist/wallet/encrypted-file-credential-store.d.ts.map +1 -0
- package/dist/wallet/encrypted-file-credential-store.js +221 -0
- package/dist/wallet/encrypted-file-credential-store.js.map +1 -0
- package/dist/wallet/provider.d.ts +1 -1
- package/dist/wallet/provider.d.ts.map +1 -1
- package/dist/wallet/provider.js +8 -3
- package/dist/wallet/provider.js.map +1 -1
- package/dist/wallet/secret-service-probe.d.ts +56 -0
- package/dist/wallet/secret-service-probe.d.ts.map +1 -0
- package/dist/wallet/secret-service-probe.js +407 -0
- package/dist/wallet/secret-service-probe.js.map +1 -0
- package/dist/zktls/reclaim-js-sdk.d.ts +24 -0
- package/dist/zktls/reclaim-js-sdk.d.ts.map +1 -0
- package/dist/zktls/reclaim-js-sdk.js +29 -0
- package/dist/zktls/reclaim-js-sdk.js.map +1 -0
- package/dist/zktls/reclaim.d.ts +14 -2
- package/dist/zktls/reclaim.d.ts.map +1 -1
- package/dist/zktls/reclaim.js +29 -6
- package/dist/zktls/reclaim.js.map +1 -1
- package/dist/zktls/t2-delivery-proof.d.ts +8 -1
- package/dist/zktls/t2-delivery-proof.d.ts.map +1 -1
- package/dist/zktls/t2-delivery-proof.js +22 -6
- package/dist/zktls/t2-delivery-proof.js.map +1 -1
- package/docs/agent-layer.md +150 -0
- package/docs/autonomous-privy-wallet.md +133 -0
- package/docs/crewai.md +70 -0
- package/docs/eliza.md +109 -0
- package/docs/langchain.md +63 -0
- package/docs/mcp-hosted.md +137 -0
- package/docs/privy-embedded-wallet.md +102 -0
- package/docs/quickstart.md +370 -0
- package/docs/threat-model.md +160 -0
- package/package.json +19 -6
- package/src/discovery/registry.ts +242 -414
- package/src/frameworks/agentkit.ts +24 -5
- package/src/gateway/caller-auth-gateway.ts +281 -15
- package/src/gateway/http-server.ts +64 -0
- package/src/index.ts +24 -0
- package/src/wallet/autonomous-wallet-store.ts +487 -0
- package/src/wallet/autonomous-wallet.ts +57 -224
- package/src/wallet/cdp-sdk.ts +33 -0
- package/src/wallet/encrypted-file-credential-store.ts +341 -0
- package/src/wallet/provider.ts +16 -9
- package/src/wallet/secret-service-probe.ts +487 -0
- package/src/zktls/reclaim-js-sdk.ts +50 -0
- package/src/zktls/reclaim.ts +57 -23
- package/src/zktls/t2-delivery-proof.ts +28 -10
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { createCipheriv, createDecipheriv, createHash, randomBytes, scrypt, } from "node:crypto";
|
|
2
|
+
import { chmod, mkdir, readFile, rename, rm, writeFile, } from "node:fs/promises";
|
|
3
|
+
import { homedir } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { promisify } from "node:util";
|
|
6
|
+
import { AutonomousWalletError, isRecord, validateStoredRecord, } from "./autonomous-wallet-store.js";
|
|
7
|
+
const scryptAsync = promisify(scrypt);
|
|
8
|
+
/** Environment variable holding the externally-managed encryption secret. */
|
|
9
|
+
export const METRIK_WALLET_ENCRYPTION_KEY_ENV = "METRIK_WALLET_ENCRYPTION_KEY";
|
|
10
|
+
/** Environment variable overriding where encrypted wallet files are written. */
|
|
11
|
+
export const METRIK_WALLET_STORE_DIR_ENV = "METRIK_WALLET_STORE_DIR";
|
|
12
|
+
const ENVELOPE_VERSION = 1;
|
|
13
|
+
const CIPHER = "aes-256-gcm";
|
|
14
|
+
const KEY_LENGTH = 32;
|
|
15
|
+
const IV_LENGTH = 12;
|
|
16
|
+
const SALT_LENGTH = 16;
|
|
17
|
+
const SCRYPT_PARAMETERS = Object.freeze({ N: 16_384, r: 8, p: 1 });
|
|
18
|
+
const MINIMUM_SECRET_LENGTH = 16;
|
|
19
|
+
const FILE_MODE = 0o600;
|
|
20
|
+
const DIRECTORY_MODE = 0o700;
|
|
21
|
+
/**
|
|
22
|
+
* Durable credential store for headless hosts (servers, containers, VMs, CI
|
|
23
|
+
* runners) that have no OS credential manager.
|
|
24
|
+
*
|
|
25
|
+
* The wallet record is encrypted at rest with AES-256-GCM under a key derived
|
|
26
|
+
* with scrypt from an externally-supplied secret and a fresh random salt per
|
|
27
|
+
* write; the IV is fresh per write and the ciphertext is authenticated against
|
|
28
|
+
* the store key. The secret is never written to disk, so the "no plaintext key
|
|
29
|
+
* on disk" guarantee still holds — but unlike the Linux kernel keyring the file
|
|
30
|
+
* survives a reboot, which is what a fund-controlling key requires.
|
|
31
|
+
*/
|
|
32
|
+
export class EncryptedFileCredentialStore {
|
|
33
|
+
directory;
|
|
34
|
+
secret;
|
|
35
|
+
constructor(options = {}) {
|
|
36
|
+
const env = options.env ?? process.env;
|
|
37
|
+
const secret = options.encryptionKey ?? env[METRIK_WALLET_ENCRYPTION_KEY_ENV];
|
|
38
|
+
if (typeof secret !== "string" || secret.trim() === "") {
|
|
39
|
+
throw new AutonomousWalletError("invalid-config", `EncryptedFileCredentialStore requires an encryption secret: set ${METRIK_WALLET_ENCRYPTION_KEY_ENV} (from your secret manager) or pass encryptionKey. Without it the stored wallet key cannot be decrypted.`);
|
|
40
|
+
}
|
|
41
|
+
if (secret.trim().length < MINIMUM_SECRET_LENGTH) {
|
|
42
|
+
throw new AutonomousWalletError("invalid-config", `the autonomous wallet encryption secret must be at least ${MINIMUM_SECRET_LENGTH} characters; generate one with "openssl rand -base64 32"`);
|
|
43
|
+
}
|
|
44
|
+
this.secret = secret.trim();
|
|
45
|
+
this.directory =
|
|
46
|
+
options.directory ??
|
|
47
|
+
env[METRIK_WALLET_STORE_DIR_ENV] ??
|
|
48
|
+
join(homedir(), ".metrik", "autonomous-wallets");
|
|
49
|
+
}
|
|
50
|
+
async load(key) {
|
|
51
|
+
const path = this.pathFor(key);
|
|
52
|
+
let raw;
|
|
53
|
+
try {
|
|
54
|
+
raw = await readFile(path, "utf8");
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
if (isNotFound(error))
|
|
58
|
+
return null;
|
|
59
|
+
throw new AutonomousWalletError("store-failure", `encrypted wallet file at ${path} could not be read`, { cause: error });
|
|
60
|
+
}
|
|
61
|
+
const envelope = parseEnvelope(raw, path);
|
|
62
|
+
const digest = digestOf(key);
|
|
63
|
+
if (envelope.keyDigest !== digest) {
|
|
64
|
+
throw new AutonomousWalletError("store-failure", `encrypted wallet file at ${path} belongs to a different store key`);
|
|
65
|
+
}
|
|
66
|
+
const derived = await scryptAsync(this.secret, Buffer.from(envelope.kdf.saltBase64, "base64"), KEY_LENGTH, { N: envelope.kdf.N, r: envelope.kdf.r, p: envelope.kdf.p });
|
|
67
|
+
let plaintext;
|
|
68
|
+
try {
|
|
69
|
+
const decipher = createDecipheriv(CIPHER, derived, Buffer.from(envelope.ivBase64, "base64"));
|
|
70
|
+
decipher.setAAD(additionalData(digest));
|
|
71
|
+
decipher.setAuthTag(Buffer.from(envelope.tagBase64, "base64"));
|
|
72
|
+
plaintext = Buffer.concat([
|
|
73
|
+
decipher.update(Buffer.from(envelope.ciphertextBase64, "base64")),
|
|
74
|
+
decipher.final(),
|
|
75
|
+
]).toString("utf8");
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
throw new AutonomousWalletError("store-failure", `encrypted wallet file at ${path} failed authenticated decryption: the ${METRIK_WALLET_ENCRYPTION_KEY_ENV} secret does not match the one used to write it, or the file was modified. Restore the original secret; the wallet key cannot be recovered without it.`, { cause: error });
|
|
79
|
+
}
|
|
80
|
+
try {
|
|
81
|
+
return validateStoredRecord(JSON.parse(plaintext));
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
if (error instanceof AutonomousWalletError)
|
|
85
|
+
throw error;
|
|
86
|
+
throw new AutonomousWalletError("store-failure", `encrypted wallet file at ${path} contains invalid wallet data`, { cause: error });
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async save(key, record) {
|
|
90
|
+
const path = this.pathFor(key);
|
|
91
|
+
const digest = digestOf(key);
|
|
92
|
+
try {
|
|
93
|
+
await mkdir(this.directory, { recursive: true, mode: DIRECTORY_MODE });
|
|
94
|
+
const salt = randomBytes(SALT_LENGTH);
|
|
95
|
+
const iv = randomBytes(IV_LENGTH);
|
|
96
|
+
const derived = await scryptAsync(this.secret, salt, KEY_LENGTH, SCRYPT_PARAMETERS);
|
|
97
|
+
const cipher = createCipheriv(CIPHER, derived, iv);
|
|
98
|
+
cipher.setAAD(additionalData(digest));
|
|
99
|
+
const ciphertext = Buffer.concat([
|
|
100
|
+
cipher.update(Buffer.from(JSON.stringify(record), "utf8")),
|
|
101
|
+
cipher.final(),
|
|
102
|
+
]);
|
|
103
|
+
const envelope = {
|
|
104
|
+
v: ENVELOPE_VERSION,
|
|
105
|
+
cipher: CIPHER,
|
|
106
|
+
kdf: {
|
|
107
|
+
name: "scrypt",
|
|
108
|
+
...SCRYPT_PARAMETERS,
|
|
109
|
+
saltBase64: salt.toString("base64"),
|
|
110
|
+
},
|
|
111
|
+
ivBase64: iv.toString("base64"),
|
|
112
|
+
tagBase64: cipher.getAuthTag().toString("base64"),
|
|
113
|
+
ciphertextBase64: ciphertext.toString("base64"),
|
|
114
|
+
keyDigest: digest,
|
|
115
|
+
};
|
|
116
|
+
const temporaryPath = `${path}.${randomBytes(6).toString("hex")}.tmp`;
|
|
117
|
+
await writeFile(temporaryPath, JSON.stringify(envelope), {
|
|
118
|
+
mode: FILE_MODE,
|
|
119
|
+
});
|
|
120
|
+
// writeFile's mode is subject to the process umask; force 0600.
|
|
121
|
+
await chmod(temporaryPath, FILE_MODE);
|
|
122
|
+
await rename(temporaryPath, path);
|
|
123
|
+
await chmod(path, FILE_MODE);
|
|
124
|
+
}
|
|
125
|
+
catch (error) {
|
|
126
|
+
throw new AutonomousWalletError("store-failure", `encrypted wallet file at ${path} could not be written`, { cause: error });
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
async probeDurability() {
|
|
130
|
+
const probePath = join(this.directory, `.durability-probe-${randomBytes(6).toString("hex")}`);
|
|
131
|
+
try {
|
|
132
|
+
await mkdir(this.directory, { recursive: true, mode: DIRECTORY_MODE });
|
|
133
|
+
await writeFile(probePath, "metrik-durability-probe", {
|
|
134
|
+
mode: FILE_MODE,
|
|
135
|
+
});
|
|
136
|
+
const observed = await readFile(probePath, "utf8");
|
|
137
|
+
if (observed !== "metrik-durability-probe") {
|
|
138
|
+
return {
|
|
139
|
+
durability: "volatile",
|
|
140
|
+
backend: "encrypted-file",
|
|
141
|
+
detail: `the probe file at ${this.directory} did not read back with the value written`,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
return {
|
|
145
|
+
durability: "durable",
|
|
146
|
+
backend: "encrypted-file",
|
|
147
|
+
detail: `AES-256-GCM encrypted files under ${this.directory} persist across reboots; the key is derived from ${METRIK_WALLET_ENCRYPTION_KEY_ENV}, which you must keep in your secret manager`,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
return {
|
|
152
|
+
durability: "volatile",
|
|
153
|
+
backend: "encrypted-file",
|
|
154
|
+
detail: `${this.directory} is not writable: ${error instanceof Error ? error.message : String(error)}`,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
finally {
|
|
158
|
+
await rm(probePath, { force: true }).catch(() => undefined);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/** Absolute path of the encrypted file backing `key`. */
|
|
162
|
+
pathFor(key) {
|
|
163
|
+
if (key.trim() === "") {
|
|
164
|
+
throw new AutonomousWalletError("invalid-config", "secure store key is required");
|
|
165
|
+
}
|
|
166
|
+
// Hash the key so an arbitrary store key can never traverse the directory.
|
|
167
|
+
return join(this.directory, `${digestOf(key)}.metrik-wallet.json`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
function additionalData(keyDigest) {
|
|
171
|
+
return Buffer.from(`metrik-autonomous-wallet-v${ENVELOPE_VERSION}:${keyDigest}`, "utf8");
|
|
172
|
+
}
|
|
173
|
+
function digestOf(key) {
|
|
174
|
+
return createHash("sha256").update(key, "utf8").digest("hex");
|
|
175
|
+
}
|
|
176
|
+
function isNotFound(error) {
|
|
177
|
+
return (typeof error === "object" &&
|
|
178
|
+
error !== null &&
|
|
179
|
+
error.code === "ENOENT");
|
|
180
|
+
}
|
|
181
|
+
function parseEnvelope(raw, path) {
|
|
182
|
+
let parsed;
|
|
183
|
+
try {
|
|
184
|
+
parsed = JSON.parse(raw);
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
throw new AutonomousWalletError("store-failure", `encrypted wallet file at ${path} is not valid JSON`, { cause: error });
|
|
188
|
+
}
|
|
189
|
+
const kdf = isRecord(parsed) ? parsed.kdf : undefined;
|
|
190
|
+
if (!isRecord(parsed) ||
|
|
191
|
+
parsed.v !== ENVELOPE_VERSION ||
|
|
192
|
+
parsed.cipher !== CIPHER ||
|
|
193
|
+
typeof parsed.ivBase64 !== "string" ||
|
|
194
|
+
typeof parsed.tagBase64 !== "string" ||
|
|
195
|
+
typeof parsed.ciphertextBase64 !== "string" ||
|
|
196
|
+
typeof parsed.keyDigest !== "string" ||
|
|
197
|
+
!isRecord(kdf) ||
|
|
198
|
+
kdf.name !== "scrypt" ||
|
|
199
|
+
typeof kdf.N !== "number" ||
|
|
200
|
+
typeof kdf.r !== "number" ||
|
|
201
|
+
typeof kdf.p !== "number" ||
|
|
202
|
+
typeof kdf.saltBase64 !== "string") {
|
|
203
|
+
throw new AutonomousWalletError("store-failure", `encrypted wallet file at ${path} has an unsupported envelope`);
|
|
204
|
+
}
|
|
205
|
+
return {
|
|
206
|
+
v: ENVELOPE_VERSION,
|
|
207
|
+
cipher: CIPHER,
|
|
208
|
+
kdf: {
|
|
209
|
+
name: "scrypt",
|
|
210
|
+
N: kdf.N,
|
|
211
|
+
r: kdf.r,
|
|
212
|
+
p: kdf.p,
|
|
213
|
+
saltBase64: kdf.saltBase64,
|
|
214
|
+
},
|
|
215
|
+
ivBase64: parsed.ivBase64,
|
|
216
|
+
tagBase64: parsed.tagBase64,
|
|
217
|
+
ciphertextBase64: parsed.ciphertextBase64,
|
|
218
|
+
keyDigest: parsed.keyDigest,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=encrypted-file-credential-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encrypted-file-credential-store.js","sourceRoot":"","sources":["../../src/wallet/encrypted-file-credential-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type StreamProofClientConfig } from "@absol-labs/sdk";
|
|
2
|
-
import {
|
|
2
|
+
import type { EvmServerAccount, EvmSmartAccount } from "@coinbase/cdp-sdk";
|
|
3
3
|
import { type Account, type Address } from "viem";
|
|
4
4
|
import { VerifiedStreamAgentClient, type AgentSdkClientFactory } from "../sdk/client.js";
|
|
5
5
|
export declare class AgentWalletConfigError extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/wallet/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/wallet/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/wallet/provider.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { loadCdpSdk } from "./cdp-sdk.js";
|
|
2
2
|
import { custom, toHex, getTypesForEIP712Domain, serializeTypedData, isAddress, } from "viem";
|
|
3
3
|
import { parseAccount, privateKeyToAccount, toAccount } from "viem/accounts";
|
|
4
4
|
import { z } from "zod";
|
|
@@ -49,7 +49,11 @@ export async function resolveAgentWallet(input, options = {}) {
|
|
|
49
49
|
privy: { appId: input.privy.appId, chainId },
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
-
|
|
52
|
+
// An injected factory keeps its synchronous public signature; only the DEFAULT
|
|
53
|
+
// path is async, because it lazily loads the optional @coinbase/cdp-sdk peer.
|
|
54
|
+
const cdpClient = options.createCdpClient === undefined
|
|
55
|
+
? await defaultCdpClientFactory(input.cdp)
|
|
56
|
+
: options.createCdpClient(input.cdp);
|
|
53
57
|
const owner = await cdpClient.evm.getOrCreateAccount({
|
|
54
58
|
name: input.cdp.ownerName,
|
|
55
59
|
});
|
|
@@ -175,7 +179,8 @@ export function parseAgentWalletEnv(env = process.env) {
|
|
|
175
179
|
},
|
|
176
180
|
};
|
|
177
181
|
}
|
|
178
|
-
function defaultCdpClientFactory(config) {
|
|
182
|
+
async function defaultCdpClientFactory(config) {
|
|
183
|
+
const { CdpClient } = await loadCdpSdk();
|
|
179
184
|
return new CdpClient({
|
|
180
185
|
...(config.apiKeyId === undefined ? {} : { apiKeyId: config.apiKeyId }),
|
|
181
186
|
...(config.apiKeySecret === undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/wallet/provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/wallet/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export interface SecretServiceProbeResult {
|
|
2
|
+
readonly available: boolean;
|
|
3
|
+
/** Human-readable reason, safe to surface in an error message. */
|
|
4
|
+
readonly detail: string;
|
|
5
|
+
}
|
|
6
|
+
export interface ProbeSecretServiceOptions {
|
|
7
|
+
readonly env?: NodeJS.ProcessEnv;
|
|
8
|
+
readonly timeoutMs?: number;
|
|
9
|
+
readonly uid?: number;
|
|
10
|
+
}
|
|
11
|
+
export interface EncodeMethodCallInput {
|
|
12
|
+
readonly serial: number;
|
|
13
|
+
readonly path: string;
|
|
14
|
+
readonly interfaceName: string;
|
|
15
|
+
readonly member: string;
|
|
16
|
+
readonly destination: string;
|
|
17
|
+
readonly signature?: string;
|
|
18
|
+
readonly body?: Buffer;
|
|
19
|
+
}
|
|
20
|
+
/** Exported for unit tests: encodes one METHOD_CALL message. */
|
|
21
|
+
export declare function encodeMethodCall(input: EncodeMethodCallInput): Buffer;
|
|
22
|
+
/** Exported for unit tests: encodes a single-STRING message body. */
|
|
23
|
+
export declare function encodeStringBody(value: string): Buffer;
|
|
24
|
+
export interface DBusMessage {
|
|
25
|
+
readonly type: number;
|
|
26
|
+
readonly serial: number;
|
|
27
|
+
readonly replySerial?: number;
|
|
28
|
+
readonly signature?: string;
|
|
29
|
+
readonly errorName?: string;
|
|
30
|
+
readonly body: Buffer;
|
|
31
|
+
readonly littleEndian: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Exported for unit tests: decodes as many complete messages as `buffer` holds
|
|
35
|
+
* and returns the undecoded remainder. Throws on a malformed stream.
|
|
36
|
+
*/
|
|
37
|
+
export declare function decodeMessages(buffer: Buffer): {
|
|
38
|
+
readonly messages: readonly DBusMessage[];
|
|
39
|
+
readonly rest: Buffer;
|
|
40
|
+
};
|
|
41
|
+
type BusAddress = {
|
|
42
|
+
readonly kind: "path";
|
|
43
|
+
readonly path: string;
|
|
44
|
+
} | {
|
|
45
|
+
readonly kind: "error";
|
|
46
|
+
readonly detail: string;
|
|
47
|
+
};
|
|
48
|
+
/** Exported for unit tests. */
|
|
49
|
+
export declare function resolveSessionBusPath(env: NodeJS.ProcessEnv): BusAddress;
|
|
50
|
+
/**
|
|
51
|
+
* Asks the D-Bus session bus whether `org.freedesktop.secrets` has an owner.
|
|
52
|
+
* Never throws; every failure path resolves to `available: false`.
|
|
53
|
+
*/
|
|
54
|
+
export declare function probeSecretServiceAvailable(options?: ProbeSecretServiceOptions): Promise<SecretServiceProbeResult>;
|
|
55
|
+
export {};
|
|
56
|
+
//# sourceMappingURL=secret-service-probe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-service-probe.d.ts","sourceRoot":"","sources":["../../src/wallet/secret-service-probe.ts"],"names":[],"mappings":"AAyCA,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,kEAAkE;IAClE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAgFD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,gEAAgE;AAChE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CA4BrE;AAED,qEAAqE;AACrE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAItD;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG;IAC9C,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAoFA;AAED,KAAK,UAAU,GACX;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,+BAA+B;AAC/B,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,UAAU,CAwCxE;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,wBAAwB,CAAC,CAmJnC"}
|