agentmail 0.2.21 → 0.3.1
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/cjs/BaseClient.js +2 -2
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.js +5 -5
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/wrapper/Client.d.ts +29 -0
- package/dist/cjs/wrapper/Client.js +111 -0
- package/dist/cjs/wrapper/WebsocketsClient.d.ts +8 -0
- package/dist/cjs/wrapper/WebsocketsClient.js +74 -0
- package/dist/cjs/wrapper/index.d.ts +1 -0
- package/dist/cjs/wrapper/index.js +5 -0
- package/dist/cjs/wrapper/mpp.d.ts +2 -0
- package/dist/cjs/wrapper/mpp.js +25 -0
- package/dist/cjs/wrapper/probe402.d.ts +1 -0
- package/dist/cjs/wrapper/probe402.js +22 -0
- package/dist/cjs/wrapper/x402.d.ts +2 -0
- package/dist/cjs/wrapper/x402.js +64 -0
- package/dist/esm/BaseClient.mjs +2 -2
- package/dist/esm/index.d.mts +1 -1
- package/dist/esm/index.mjs +1 -1
- package/dist/esm/version.d.mts +1 -1
- package/dist/esm/version.mjs +1 -1
- package/dist/esm/wrapper/Client.d.mts +29 -0
- package/dist/esm/wrapper/Client.mjs +74 -0
- package/dist/esm/wrapper/WebsocketsClient.d.mts +8 -0
- package/dist/esm/wrapper/WebsocketsClient.mjs +37 -0
- package/dist/esm/wrapper/index.d.mts +1 -0
- package/dist/esm/wrapper/index.mjs +1 -0
- package/dist/esm/wrapper/mpp.d.mts +2 -0
- package/dist/esm/wrapper/mpp.mjs +22 -0
- package/dist/esm/wrapper/probe402.d.mts +1 -0
- package/dist/esm/wrapper/probe402.mjs +19 -0
- package/dist/esm/wrapper/x402.d.mts +2 -0
- package/dist/esm/wrapper/x402.mjs +28 -0
- package/dist/llms-full.txt +52 -361
- package/package.json +1 -1
package/dist/cjs/BaseClient.js
CHANGED
|
@@ -43,8 +43,8 @@ function normalizeClientOptions(options) {
|
|
|
43
43
|
const headers = (0, headers_js_1.mergeHeaders)({
|
|
44
44
|
"X-Fern-Language": "JavaScript",
|
|
45
45
|
"X-Fern-SDK-Name": "agentmail",
|
|
46
|
-
"X-Fern-SDK-Version": "0.
|
|
47
|
-
"User-Agent": "agentmail/0.
|
|
46
|
+
"X-Fern-SDK-Version": "0.3.1",
|
|
47
|
+
"User-Agent": "agentmail/0.3.1",
|
|
48
48
|
"X-Fern-Runtime": core.RUNTIME.type,
|
|
49
49
|
"X-Fern-Runtime-Version": core.RUNTIME.version,
|
|
50
50
|
}, options === null || options === void 0 ? void 0 : options.headers);
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as AgentMail from "./api/index.js";
|
|
2
2
|
export type { BaseClientOptions, BaseRequestOptions } from "./BaseClient.js";
|
|
3
|
-
export { AgentMailClient } from "./
|
|
3
|
+
export { AgentMailClient } from "./wrapper/index.js";
|
|
4
4
|
export { AgentMailEnvironment, type AgentMailEnvironmentUrls } from "./environments.js";
|
|
5
5
|
export { AgentMailError, AgentMailTimeoutError } from "./errors/index.js";
|
|
6
6
|
export * from "./exports.js";
|
package/dist/cjs/index.js
CHANGED
|
@@ -38,12 +38,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.serialization = exports.AgentMailTimeoutError = exports.AgentMailError = exports.AgentMailEnvironment = exports.AgentMailClient = exports.AgentMail = void 0;
|
|
40
40
|
exports.AgentMail = __importStar(require("./api/index.js"));
|
|
41
|
-
var
|
|
42
|
-
Object.defineProperty(exports, "AgentMailClient", { enumerable: true, get: function () { return
|
|
41
|
+
var index_js_1 = require("./wrapper/index.js");
|
|
42
|
+
Object.defineProperty(exports, "AgentMailClient", { enumerable: true, get: function () { return index_js_1.AgentMailClient; } });
|
|
43
43
|
var environments_js_1 = require("./environments.js");
|
|
44
44
|
Object.defineProperty(exports, "AgentMailEnvironment", { enumerable: true, get: function () { return environments_js_1.AgentMailEnvironment; } });
|
|
45
|
-
var
|
|
46
|
-
Object.defineProperty(exports, "AgentMailError", { enumerable: true, get: function () { return
|
|
47
|
-
Object.defineProperty(exports, "AgentMailTimeoutError", { enumerable: true, get: function () { return
|
|
45
|
+
var index_js_2 = require("./errors/index.js");
|
|
46
|
+
Object.defineProperty(exports, "AgentMailError", { enumerable: true, get: function () { return index_js_2.AgentMailError; } });
|
|
47
|
+
Object.defineProperty(exports, "AgentMailTimeoutError", { enumerable: true, get: function () { return index_js_2.AgentMailTimeoutError; } });
|
|
48
48
|
__exportStar(require("./exports.js"), exports);
|
|
49
49
|
exports.serialization = __importStar(require("./serialization/index.js"));
|
package/dist/cjs/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "0.
|
|
1
|
+
export declare const SDK_VERSION = "0.3.1";
|
package/dist/cjs/version.js
CHANGED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { x402Client } from "@x402/fetch";
|
|
2
|
+
import type { Mppx } from "mppx/client";
|
|
3
|
+
import { Supplier } from "../core/index.js";
|
|
4
|
+
import { AgentMailClient as FernAgentMailClient } from "../Client.js";
|
|
5
|
+
import { WebsocketsClient } from "./WebsocketsClient.js";
|
|
6
|
+
type SharedOptions = Omit<FernAgentMailClient.Options, "apiKey">;
|
|
7
|
+
export declare namespace AgentMailClient {
|
|
8
|
+
type Options = SharedOptions & ({
|
|
9
|
+
x402: x402Client;
|
|
10
|
+
mpp?: never;
|
|
11
|
+
apiKey?: never;
|
|
12
|
+
} | {
|
|
13
|
+
mpp: Mppx.Mppx;
|
|
14
|
+
x402?: never;
|
|
15
|
+
apiKey?: never;
|
|
16
|
+
} | {
|
|
17
|
+
apiKey?: Supplier<string>;
|
|
18
|
+
x402?: never;
|
|
19
|
+
mpp?: never;
|
|
20
|
+
});
|
|
21
|
+
type RequestOptions = FernAgentMailClient.RequestOptions;
|
|
22
|
+
}
|
|
23
|
+
export declare class AgentMailClient extends FernAgentMailClient {
|
|
24
|
+
protected _websockets: WebsocketsClient | undefined;
|
|
25
|
+
private readonly _getPaymentHeaders;
|
|
26
|
+
get websockets(): WebsocketsClient;
|
|
27
|
+
constructor(options?: AgentMailClient.Options);
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
45
|
+
var t = {};
|
|
46
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
47
|
+
t[p] = s[p];
|
|
48
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
49
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
50
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
51
|
+
t[p[i]] = s[p[i]];
|
|
52
|
+
}
|
|
53
|
+
return t;
|
|
54
|
+
};
|
|
55
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
56
|
+
exports.AgentMailClient = void 0;
|
|
57
|
+
const index_js_1 = require("../core/index.js");
|
|
58
|
+
const NoOpAuthProvider_js_1 = require("../core/auth/NoOpAuthProvider.js");
|
|
59
|
+
const environments_js_1 = require("../environments.js");
|
|
60
|
+
const Client_js_1 = require("../Client.js");
|
|
61
|
+
const WebsocketsClient_js_1 = require("./WebsocketsClient.js");
|
|
62
|
+
const x402_js_1 = require("./x402.js");
|
|
63
|
+
const mpp_js_1 = require("./mpp.js");
|
|
64
|
+
class AgentMailClient extends Client_js_1.AgentMailClient {
|
|
65
|
+
get websockets() {
|
|
66
|
+
var _a;
|
|
67
|
+
return ((_a = this._websockets) !== null && _a !== void 0 ? _a : (this._websockets = new WebsocketsClient_js_1.WebsocketsClient(this._options, this._getPaymentHeaders)));
|
|
68
|
+
}
|
|
69
|
+
constructor(options = {}) {
|
|
70
|
+
if (options.x402) {
|
|
71
|
+
const { x402 } = options, rest = __rest(options, ["x402"]);
|
|
72
|
+
let wrappedFetch;
|
|
73
|
+
const fernOptions = Object.assign(Object.assign({}, rest), { authProvider: new NoOpAuthProvider_js_1.NoOpAuthProvider(), fetch: (input, init) => __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
if (!wrappedFetch) {
|
|
75
|
+
const mod = yield Promise.resolve().then(() => __importStar(require("@x402/fetch")));
|
|
76
|
+
wrappedFetch = mod.wrapFetchWithPayment(fetch, x402);
|
|
77
|
+
}
|
|
78
|
+
return wrappedFetch(input, init);
|
|
79
|
+
}) });
|
|
80
|
+
if (!fernOptions.environment && !fernOptions.baseUrl) {
|
|
81
|
+
fernOptions.environment = environments_js_1.AgentMailEnvironment.ProdX402;
|
|
82
|
+
}
|
|
83
|
+
super(fernOptions);
|
|
84
|
+
this._getPaymentHeaders = (wsUrl) => (0, x402_js_1.getPaymentHeaders)(wsUrl, x402);
|
|
85
|
+
}
|
|
86
|
+
else if (options.mpp) {
|
|
87
|
+
const { mpp } = options, rest = __rest(options, ["mpp"]);
|
|
88
|
+
const fernOptions = Object.assign(Object.assign({}, rest), { authProvider: new NoOpAuthProvider_js_1.NoOpAuthProvider(), fetch: mpp.fetch });
|
|
89
|
+
if (!fernOptions.environment && !fernOptions.baseUrl) {
|
|
90
|
+
fernOptions.environment = environments_js_1.AgentMailEnvironment.ProdMpp;
|
|
91
|
+
}
|
|
92
|
+
super(fernOptions);
|
|
93
|
+
this._getPaymentHeaders = (wsUrl) => (0, mpp_js_1.getPaymentHeaders)(wsUrl, mpp);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
let fernOptions = options;
|
|
97
|
+
if (!fernOptions.environment && !fernOptions.baseUrl) {
|
|
98
|
+
fernOptions = Object.assign(Object.assign({}, fernOptions), { environment: () => __awaiter(this, void 0, void 0, function* () {
|
|
99
|
+
var _a;
|
|
100
|
+
const apiKey = (_a = (yield index_js_1.Supplier.get(fernOptions.apiKey))) !== null && _a !== void 0 ? _a : process.env.AGENTMAIL_API_KEY;
|
|
101
|
+
if (apiKey === null || apiKey === void 0 ? void 0 : apiKey.startsWith("am_eu_"))
|
|
102
|
+
return environments_js_1.AgentMailEnvironment.EuProd;
|
|
103
|
+
return environments_js_1.AgentMailEnvironment.Prod;
|
|
104
|
+
}) });
|
|
105
|
+
}
|
|
106
|
+
super(fernOptions);
|
|
107
|
+
this._getPaymentHeaders = undefined;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.AgentMailClient = AgentMailClient;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { WebsocketsClient as FernWebsocketsClient } from "../api/resources/websockets/client/Client.js";
|
|
2
|
+
import type { WebsocketsSocket } from "../api/resources/websockets/client/Socket.js";
|
|
3
|
+
export type GetPaymentHeaders = (wsUrl: string) => Promise<Record<string, string>>;
|
|
4
|
+
export declare class WebsocketsClient extends FernWebsocketsClient {
|
|
5
|
+
private readonly _getPaymentHeaders;
|
|
6
|
+
constructor(options: FernWebsocketsClient.Options, getPaymentHeaders?: GetPaymentHeaders);
|
|
7
|
+
connect(args?: FernWebsocketsClient.ConnectArgs): Promise<WebsocketsSocket>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.WebsocketsClient = void 0;
|
|
46
|
+
const Client_js_1 = require("../api/resources/websockets/client/Client.js");
|
|
47
|
+
const core = __importStar(require("../core/index.js"));
|
|
48
|
+
const environments = __importStar(require("../environments.js"));
|
|
49
|
+
class WebsocketsClient extends Client_js_1.WebsocketsClient {
|
|
50
|
+
constructor(options, getPaymentHeaders) {
|
|
51
|
+
super(options);
|
|
52
|
+
this._getPaymentHeaders = getPaymentHeaders;
|
|
53
|
+
}
|
|
54
|
+
connect() {
|
|
55
|
+
const _super = Object.create(null, {
|
|
56
|
+
connect: { get: () => super.connect }
|
|
57
|
+
});
|
|
58
|
+
return __awaiter(this, arguments, void 0, function* (args = {}) {
|
|
59
|
+
var _a, _b, _c;
|
|
60
|
+
if (this._getPaymentHeaders) {
|
|
61
|
+
const wsUrl = core.url.join((_a = (yield core.Supplier.get(this._options.baseUrl))) !== null && _a !== void 0 ? _a : ((_b = (yield core.Supplier.get(this._options.environment))) !== null && _b !== void 0 ? _b : environments.AgentMailEnvironment.Prod)
|
|
62
|
+
.websockets, "/v0");
|
|
63
|
+
const paymentHeaders = yield this._getPaymentHeaders(wsUrl);
|
|
64
|
+
return _super.connect.call(this, Object.assign(Object.assign({}, args), { headers: Object.assign(Object.assign({}, paymentHeaders), args.headers) }));
|
|
65
|
+
}
|
|
66
|
+
if (!args.apiKey) {
|
|
67
|
+
const apiKey = (_c = (yield core.Supplier.get(this._options.apiKey))) !== null && _c !== void 0 ? _c : process.env.AGENTMAIL_API_KEY;
|
|
68
|
+
return _super.connect.call(this, Object.assign(Object.assign({}, args), { apiKey }));
|
|
69
|
+
}
|
|
70
|
+
return _super.connect.call(this, args);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.WebsocketsClient = WebsocketsClient;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { AgentMailClient } from "./Client.js";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AgentMailClient = void 0;
|
|
4
|
+
var Client_js_1 = require("./Client.js");
|
|
5
|
+
Object.defineProperty(exports, "AgentMailClient", { enumerable: true, get: function () { return Client_js_1.AgentMailClient; } });
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.getPaymentHeaders = getPaymentHeaders;
|
|
13
|
+
const probe402_js_1 = require("./probe402.js");
|
|
14
|
+
function getPaymentHeaders(wsUrl, mpp) {
|
|
15
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
const response = yield (0, probe402_js_1.probe402)(wsUrl);
|
|
17
|
+
const credential = yield mpp.createCredential(response);
|
|
18
|
+
const signed = mpp.transport.setCredential(new Request(wsUrl), credential);
|
|
19
|
+
const headers = {};
|
|
20
|
+
signed.headers.forEach((value, key) => {
|
|
21
|
+
headers[key] = value;
|
|
22
|
+
});
|
|
23
|
+
return headers;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function probe402(wsUrl: string): Promise<Response>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.probe402 = probe402;
|
|
13
|
+
function probe402(wsUrl) {
|
|
14
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
15
|
+
const httpUrl = wsUrl.replace(/^wss:\/\//, "https://").replace(/^ws:\/\//, "http://");
|
|
16
|
+
const response = yield fetch(httpUrl);
|
|
17
|
+
if (response.status !== 402) {
|
|
18
|
+
throw new Error(`Expected 402 from ${httpUrl} but got ${response.status}`);
|
|
19
|
+
}
|
|
20
|
+
return response;
|
|
21
|
+
});
|
|
22
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.getPaymentHeaders = getPaymentHeaders;
|
|
46
|
+
const probe402_js_1 = require("./probe402.js");
|
|
47
|
+
function getPaymentHeaders(wsUrl, client) {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
const { x402HTTPClient } = yield Promise.resolve().then(() => __importStar(require("@x402/fetch")));
|
|
50
|
+
const httpClient = new x402HTTPClient(client);
|
|
51
|
+
const response = yield (0, probe402_js_1.probe402)(wsUrl);
|
|
52
|
+
let body;
|
|
53
|
+
try {
|
|
54
|
+
body = JSON.parse(yield response.text());
|
|
55
|
+
}
|
|
56
|
+
catch (_a) {
|
|
57
|
+
body = undefined;
|
|
58
|
+
}
|
|
59
|
+
const getHeader = (name) => response.headers.get(name);
|
|
60
|
+
const paymentRequired = httpClient.getPaymentRequiredResponse(getHeader, body);
|
|
61
|
+
const paymentPayload = yield httpClient.createPaymentPayload(paymentRequired);
|
|
62
|
+
return httpClient.encodePaymentSignatureHeader(paymentPayload);
|
|
63
|
+
});
|
|
64
|
+
}
|
package/dist/esm/BaseClient.mjs
CHANGED
|
@@ -6,8 +6,8 @@ export function normalizeClientOptions(options) {
|
|
|
6
6
|
const headers = mergeHeaders({
|
|
7
7
|
"X-Fern-Language": "JavaScript",
|
|
8
8
|
"X-Fern-SDK-Name": "agentmail",
|
|
9
|
-
"X-Fern-SDK-Version": "0.
|
|
10
|
-
"User-Agent": "agentmail/0.
|
|
9
|
+
"X-Fern-SDK-Version": "0.3.1",
|
|
10
|
+
"User-Agent": "agentmail/0.3.1",
|
|
11
11
|
"X-Fern-Runtime": core.RUNTIME.type,
|
|
12
12
|
"X-Fern-Runtime-Version": core.RUNTIME.version,
|
|
13
13
|
}, options === null || options === void 0 ? void 0 : options.headers);
|
package/dist/esm/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as AgentMail from "./api/index.mjs";
|
|
2
2
|
export type { BaseClientOptions, BaseRequestOptions } from "./BaseClient.mjs";
|
|
3
|
-
export { AgentMailClient } from "./
|
|
3
|
+
export { AgentMailClient } from "./wrapper/index.mjs";
|
|
4
4
|
export { AgentMailEnvironment, type AgentMailEnvironmentUrls } from "./environments.mjs";
|
|
5
5
|
export { AgentMailError, AgentMailTimeoutError } from "./errors/index.mjs";
|
|
6
6
|
export * from "./exports.mjs";
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export * as AgentMail from "./api/index.mjs";
|
|
2
|
-
export { AgentMailClient } from "./
|
|
2
|
+
export { AgentMailClient } from "./wrapper/index.mjs";
|
|
3
3
|
export { AgentMailEnvironment } from "./environments.mjs";
|
|
4
4
|
export { AgentMailError, AgentMailTimeoutError } from "./errors/index.mjs";
|
|
5
5
|
export * from "./exports.mjs";
|
package/dist/esm/version.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "0.
|
|
1
|
+
export declare const SDK_VERSION = "0.3.1";
|
package/dist/esm/version.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const SDK_VERSION = "0.
|
|
1
|
+
export const SDK_VERSION = "0.3.1";
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { x402Client } from "@x402/fetch";
|
|
2
|
+
import type { Mppx } from "mppx/client";
|
|
3
|
+
import { Supplier } from "../core/index.mjs";
|
|
4
|
+
import { AgentMailClient as FernAgentMailClient } from "../Client.mjs";
|
|
5
|
+
import { WebsocketsClient } from "./WebsocketsClient.mjs";
|
|
6
|
+
type SharedOptions = Omit<FernAgentMailClient.Options, "apiKey">;
|
|
7
|
+
export declare namespace AgentMailClient {
|
|
8
|
+
type Options = SharedOptions & ({
|
|
9
|
+
x402: x402Client;
|
|
10
|
+
mpp?: never;
|
|
11
|
+
apiKey?: never;
|
|
12
|
+
} | {
|
|
13
|
+
mpp: Mppx.Mppx;
|
|
14
|
+
x402?: never;
|
|
15
|
+
apiKey?: never;
|
|
16
|
+
} | {
|
|
17
|
+
apiKey?: Supplier<string>;
|
|
18
|
+
x402?: never;
|
|
19
|
+
mpp?: never;
|
|
20
|
+
});
|
|
21
|
+
type RequestOptions = FernAgentMailClient.RequestOptions;
|
|
22
|
+
}
|
|
23
|
+
export declare class AgentMailClient extends FernAgentMailClient {
|
|
24
|
+
protected _websockets: WebsocketsClient | undefined;
|
|
25
|
+
private readonly _getPaymentHeaders;
|
|
26
|
+
get websockets(): WebsocketsClient;
|
|
27
|
+
constructor(options?: AgentMailClient.Options);
|
|
28
|
+
}
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
11
|
+
var t = {};
|
|
12
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
13
|
+
t[p] = s[p];
|
|
14
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
15
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
16
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
17
|
+
t[p[i]] = s[p[i]];
|
|
18
|
+
}
|
|
19
|
+
return t;
|
|
20
|
+
};
|
|
21
|
+
import { Supplier } from "../core/index.mjs";
|
|
22
|
+
import { NoOpAuthProvider } from "../core/auth/NoOpAuthProvider.mjs";
|
|
23
|
+
import { AgentMailEnvironment } from "../environments.mjs";
|
|
24
|
+
import { AgentMailClient as FernAgentMailClient } from "../Client.mjs";
|
|
25
|
+
import { WebsocketsClient } from "./WebsocketsClient.mjs";
|
|
26
|
+
import { getPaymentHeaders as getX402PaymentHeaders } from "./x402.mjs";
|
|
27
|
+
import { getPaymentHeaders as getMppPaymentHeaders } from "./mpp.mjs";
|
|
28
|
+
export class AgentMailClient extends FernAgentMailClient {
|
|
29
|
+
get websockets() {
|
|
30
|
+
var _a;
|
|
31
|
+
return ((_a = this._websockets) !== null && _a !== void 0 ? _a : (this._websockets = new WebsocketsClient(this._options, this._getPaymentHeaders)));
|
|
32
|
+
}
|
|
33
|
+
constructor(options = {}) {
|
|
34
|
+
if (options.x402) {
|
|
35
|
+
const { x402 } = options, rest = __rest(options, ["x402"]);
|
|
36
|
+
let wrappedFetch;
|
|
37
|
+
const fernOptions = Object.assign(Object.assign({}, rest), { authProvider: new NoOpAuthProvider(), fetch: (input, init) => __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
if (!wrappedFetch) {
|
|
39
|
+
const mod = yield import("@x402/fetch");
|
|
40
|
+
wrappedFetch = mod.wrapFetchWithPayment(fetch, x402);
|
|
41
|
+
}
|
|
42
|
+
return wrappedFetch(input, init);
|
|
43
|
+
}) });
|
|
44
|
+
if (!fernOptions.environment && !fernOptions.baseUrl) {
|
|
45
|
+
fernOptions.environment = AgentMailEnvironment.ProdX402;
|
|
46
|
+
}
|
|
47
|
+
super(fernOptions);
|
|
48
|
+
this._getPaymentHeaders = (wsUrl) => getX402PaymentHeaders(wsUrl, x402);
|
|
49
|
+
}
|
|
50
|
+
else if (options.mpp) {
|
|
51
|
+
const { mpp } = options, rest = __rest(options, ["mpp"]);
|
|
52
|
+
const fernOptions = Object.assign(Object.assign({}, rest), { authProvider: new NoOpAuthProvider(), fetch: mpp.fetch });
|
|
53
|
+
if (!fernOptions.environment && !fernOptions.baseUrl) {
|
|
54
|
+
fernOptions.environment = AgentMailEnvironment.ProdMpp;
|
|
55
|
+
}
|
|
56
|
+
super(fernOptions);
|
|
57
|
+
this._getPaymentHeaders = (wsUrl) => getMppPaymentHeaders(wsUrl, mpp);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
let fernOptions = options;
|
|
61
|
+
if (!fernOptions.environment && !fernOptions.baseUrl) {
|
|
62
|
+
fernOptions = Object.assign(Object.assign({}, fernOptions), { environment: () => __awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
var _a;
|
|
64
|
+
const apiKey = (_a = (yield Supplier.get(fernOptions.apiKey))) !== null && _a !== void 0 ? _a : process.env.AGENTMAIL_API_KEY;
|
|
65
|
+
if (apiKey === null || apiKey === void 0 ? void 0 : apiKey.startsWith("am_eu_"))
|
|
66
|
+
return AgentMailEnvironment.EuProd;
|
|
67
|
+
return AgentMailEnvironment.Prod;
|
|
68
|
+
}) });
|
|
69
|
+
}
|
|
70
|
+
super(fernOptions);
|
|
71
|
+
this._getPaymentHeaders = undefined;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { WebsocketsClient as FernWebsocketsClient } from "../api/resources/websockets/client/Client.mjs";
|
|
2
|
+
import type { WebsocketsSocket } from "../api/resources/websockets/client/Socket.mjs";
|
|
3
|
+
export type GetPaymentHeaders = (wsUrl: string) => Promise<Record<string, string>>;
|
|
4
|
+
export declare class WebsocketsClient extends FernWebsocketsClient {
|
|
5
|
+
private readonly _getPaymentHeaders;
|
|
6
|
+
constructor(options: FernWebsocketsClient.Options, getPaymentHeaders?: GetPaymentHeaders);
|
|
7
|
+
connect(args?: FernWebsocketsClient.ConnectArgs): Promise<WebsocketsSocket>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { WebsocketsClient as FernWebsocketsClient } from "../api/resources/websockets/client/Client.mjs";
|
|
11
|
+
import * as core from "../core/index.mjs";
|
|
12
|
+
import * as environments from "../environments.mjs";
|
|
13
|
+
export class WebsocketsClient extends FernWebsocketsClient {
|
|
14
|
+
constructor(options, getPaymentHeaders) {
|
|
15
|
+
super(options);
|
|
16
|
+
this._getPaymentHeaders = getPaymentHeaders;
|
|
17
|
+
}
|
|
18
|
+
connect() {
|
|
19
|
+
const _super = Object.create(null, {
|
|
20
|
+
connect: { get: () => super.connect }
|
|
21
|
+
});
|
|
22
|
+
return __awaiter(this, arguments, void 0, function* (args = {}) {
|
|
23
|
+
var _a, _b, _c;
|
|
24
|
+
if (this._getPaymentHeaders) {
|
|
25
|
+
const wsUrl = core.url.join((_a = (yield core.Supplier.get(this._options.baseUrl))) !== null && _a !== void 0 ? _a : ((_b = (yield core.Supplier.get(this._options.environment))) !== null && _b !== void 0 ? _b : environments.AgentMailEnvironment.Prod)
|
|
26
|
+
.websockets, "/v0");
|
|
27
|
+
const paymentHeaders = yield this._getPaymentHeaders(wsUrl);
|
|
28
|
+
return _super.connect.call(this, Object.assign(Object.assign({}, args), { headers: Object.assign(Object.assign({}, paymentHeaders), args.headers) }));
|
|
29
|
+
}
|
|
30
|
+
if (!args.apiKey) {
|
|
31
|
+
const apiKey = (_c = (yield core.Supplier.get(this._options.apiKey))) !== null && _c !== void 0 ? _c : process.env.AGENTMAIL_API_KEY;
|
|
32
|
+
return _super.connect.call(this, Object.assign(Object.assign({}, args), { apiKey }));
|
|
33
|
+
}
|
|
34
|
+
return _super.connect.call(this, args);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { AgentMailClient } from "./Client.mjs";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { AgentMailClient } from "./Client.mjs";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { probe402 } from "./probe402.mjs";
|
|
11
|
+
export function getPaymentHeaders(wsUrl, mpp) {
|
|
12
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
13
|
+
const response = yield probe402(wsUrl);
|
|
14
|
+
const credential = yield mpp.createCredential(response);
|
|
15
|
+
const signed = mpp.transport.setCredential(new Request(wsUrl), credential);
|
|
16
|
+
const headers = {};
|
|
17
|
+
signed.headers.forEach((value, key) => {
|
|
18
|
+
headers[key] = value;
|
|
19
|
+
});
|
|
20
|
+
return headers;
|
|
21
|
+
});
|
|
22
|
+
}
|