@ametyst/cli 0.2.34 → 0.2.43
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/index.js +391 -220
- package/package.json +7 -7
package/dist/index.js
CHANGED
|
@@ -2908,10 +2908,10 @@ var require_commander = __commonJS({
|
|
|
2908
2908
|
}
|
|
2909
2909
|
});
|
|
2910
2910
|
|
|
2911
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
2911
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/contracts/RecoveryEscrowFactory.js
|
|
2912
2912
|
var RecoveryEscrowFactoryAbi, RecoveryEscrowFactoryBytecode;
|
|
2913
2913
|
var init_RecoveryEscrowFactory = __esm({
|
|
2914
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
2914
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/contracts/RecoveryEscrowFactory.js"() {
|
|
2915
2915
|
"use strict";
|
|
2916
2916
|
init_esm_shims();
|
|
2917
2917
|
RecoveryEscrowFactoryAbi = [
|
|
@@ -2989,10 +2989,10 @@ var init_RecoveryEscrowFactory = __esm({
|
|
|
2989
2989
|
}
|
|
2990
2990
|
});
|
|
2991
2991
|
|
|
2992
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
2992
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/contracts/PaymentManager.js
|
|
2993
2993
|
var PaymentManagerAbi, PaymentManagerBytecode;
|
|
2994
2994
|
var init_PaymentManager = __esm({
|
|
2995
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
2995
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/contracts/PaymentManager.js"() {
|
|
2996
2996
|
"use strict";
|
|
2997
2997
|
init_esm_shims();
|
|
2998
2998
|
PaymentManagerAbi = [
|
|
@@ -5068,10 +5068,10 @@ var init_PaymentManager = __esm({
|
|
|
5068
5068
|
}
|
|
5069
5069
|
});
|
|
5070
5070
|
|
|
5071
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
5071
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/contracts/MockToken.js
|
|
5072
5072
|
var MockTokenAbi, MockTokenBytecode;
|
|
5073
5073
|
var init_MockToken = __esm({
|
|
5074
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
5074
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/contracts/MockToken.js"() {
|
|
5075
5075
|
"use strict";
|
|
5076
5076
|
init_esm_shims();
|
|
5077
5077
|
MockTokenAbi = [
|
|
@@ -5813,10 +5813,10 @@ var init_MockToken = __esm({
|
|
|
5813
5813
|
}
|
|
5814
5814
|
});
|
|
5815
5815
|
|
|
5816
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
5816
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/contracts/PaymentManagersRegistry.js
|
|
5817
5817
|
var PaymentManagersRegistryAbi, PaymentManagersRegistryBytecode;
|
|
5818
5818
|
var init_PaymentManagersRegistry = __esm({
|
|
5819
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
5819
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/contracts/PaymentManagersRegistry.js"() {
|
|
5820
5820
|
"use strict";
|
|
5821
5821
|
init_esm_shims();
|
|
5822
5822
|
PaymentManagersRegistryAbi = [
|
|
@@ -5876,10 +5876,10 @@ var init_PaymentManagersRegistry = __esm({
|
|
|
5876
5876
|
}
|
|
5877
5877
|
});
|
|
5878
5878
|
|
|
5879
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
5879
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/contracts/FacilitatorsRegistry.js
|
|
5880
5880
|
var FacilitatorsRegistryAbi, FacilitatorsRegistryBytecode;
|
|
5881
5881
|
var init_FacilitatorsRegistry = __esm({
|
|
5882
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
5882
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/contracts/FacilitatorsRegistry.js"() {
|
|
5883
5883
|
"use strict";
|
|
5884
5884
|
init_esm_shims();
|
|
5885
5885
|
FacilitatorsRegistryAbi = [
|
|
@@ -6001,10 +6001,10 @@ var init_FacilitatorsRegistry = __esm({
|
|
|
6001
6001
|
}
|
|
6002
6002
|
});
|
|
6003
6003
|
|
|
6004
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
6004
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/contracts/TimestampPolicy.js
|
|
6005
6005
|
var TimestampPolicyAbi, TimestampPolicyBytecode;
|
|
6006
6006
|
var init_TimestampPolicy = __esm({
|
|
6007
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
6007
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/contracts/TimestampPolicy.js"() {
|
|
6008
6008
|
"use strict";
|
|
6009
6009
|
init_esm_shims();
|
|
6010
6010
|
TimestampPolicyAbi = [
|
|
@@ -6276,10 +6276,10 @@ var init_TimestampPolicy = __esm({
|
|
|
6276
6276
|
}
|
|
6277
6277
|
});
|
|
6278
6278
|
|
|
6279
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
6279
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/contracts/SpendingLimitPolicy.js
|
|
6280
6280
|
var SpendingLimitPolicyAbi, SpendingLimitPolicyBytecode;
|
|
6281
6281
|
var init_SpendingLimitPolicy = __esm({
|
|
6282
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
6282
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/contracts/SpendingLimitPolicy.js"() {
|
|
6283
6283
|
"use strict";
|
|
6284
6284
|
init_esm_shims();
|
|
6285
6285
|
SpendingLimitPolicyAbi = [
|
|
@@ -6581,10 +6581,10 @@ var init_SpendingLimitPolicy = __esm({
|
|
|
6581
6581
|
}
|
|
6582
6582
|
});
|
|
6583
6583
|
|
|
6584
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
6584
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/contracts/AmetystCreditToken.js
|
|
6585
6585
|
var AmetystCreditTokenAbi, AmetystCreditTokenBytecode;
|
|
6586
6586
|
var init_AmetystCreditToken = __esm({
|
|
6587
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
6587
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/contracts/AmetystCreditToken.js"() {
|
|
6588
6588
|
"use strict";
|
|
6589
6589
|
init_esm_shims();
|
|
6590
6590
|
AmetystCreditTokenAbi = [
|
|
@@ -63889,10 +63889,10 @@ var init_constants = __esm({
|
|
|
63889
63889
|
}
|
|
63890
63890
|
});
|
|
63891
63891
|
|
|
63892
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
63892
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/config/constants.js
|
|
63893
63893
|
var CHAINS, MODULE_TYPES, KERNEL_CONFIG, PolicyFlags;
|
|
63894
63894
|
var init_constants2 = __esm({
|
|
63895
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
63895
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/config/constants.js"() {
|
|
63896
63896
|
"use strict";
|
|
63897
63897
|
init_esm_shims();
|
|
63898
63898
|
init_chains();
|
|
@@ -63918,7 +63918,7 @@ var init_constants2 = __esm({
|
|
|
63918
63918
|
}
|
|
63919
63919
|
});
|
|
63920
63920
|
|
|
63921
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
63921
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/utils/money.js
|
|
63922
63922
|
function toBaseUnits(decimal, decimals = 6) {
|
|
63923
63923
|
if (typeof decimal !== "string" || decimal.trim().length === 0) {
|
|
63924
63924
|
throw new Error("toBaseUnits: input must be a non-empty string");
|
|
@@ -64004,17 +64004,17 @@ function safeBaseUnitsString(input) {
|
|
|
64004
64004
|
}
|
|
64005
64005
|
var DECIMAL_PATTERN;
|
|
64006
64006
|
var init_money = __esm({
|
|
64007
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
64007
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/utils/money.js"() {
|
|
64008
64008
|
"use strict";
|
|
64009
64009
|
init_esm_shims();
|
|
64010
64010
|
DECIMAL_PATTERN = /^-?\d+(\.\d+)?$/;
|
|
64011
64011
|
}
|
|
64012
64012
|
});
|
|
64013
64013
|
|
|
64014
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
64014
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/utils/types.js
|
|
64015
64015
|
var types2;
|
|
64016
64016
|
var init_types = __esm({
|
|
64017
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
64017
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/utils/types.js"() {
|
|
64018
64018
|
"use strict";
|
|
64019
64019
|
init_esm_shims();
|
|
64020
64020
|
init_esm2();
|
|
@@ -75707,10 +75707,10 @@ var init_esm5 = __esm({
|
|
|
75707
75707
|
}
|
|
75708
75708
|
});
|
|
75709
75709
|
|
|
75710
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
75710
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/credential/initialization.js
|
|
75711
75711
|
var initialization;
|
|
75712
75712
|
var init_initialization = __esm({
|
|
75713
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
75713
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/credential/initialization.js"() {
|
|
75714
75714
|
"use strict";
|
|
75715
75715
|
init_esm_shims();
|
|
75716
75716
|
init_RecoveryEscrowFactory();
|
|
@@ -76078,10 +76078,10 @@ var init_esm6 = __esm({
|
|
|
76078
76078
|
}
|
|
76079
76079
|
});
|
|
76080
76080
|
|
|
76081
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
76081
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/credential/passkeys.js
|
|
76082
76082
|
var passkeys;
|
|
76083
76083
|
var init_passkeys = __esm({
|
|
76084
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
76084
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/credential/passkeys.js"() {
|
|
76085
76085
|
"use strict";
|
|
76086
76086
|
init_esm_shims();
|
|
76087
76087
|
init_esm2();
|
|
@@ -76168,10 +76168,10 @@ var init_passkeys = __esm({
|
|
|
76168
76168
|
}
|
|
76169
76169
|
});
|
|
76170
76170
|
|
|
76171
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
76171
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/credential/financial-accounts.js
|
|
76172
76172
|
var financialAccounts;
|
|
76173
76173
|
var init_financial_accounts = __esm({
|
|
76174
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
76174
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/credential/financial-accounts.js"() {
|
|
76175
76175
|
"use strict";
|
|
76176
76176
|
init_esm_shims();
|
|
76177
76177
|
init_esm2();
|
|
@@ -77029,10 +77029,10 @@ var init_financial_accounts = __esm({
|
|
|
77029
77029
|
}
|
|
77030
77030
|
});
|
|
77031
77031
|
|
|
77032
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
77032
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/credential/oauth.js
|
|
77033
77033
|
var oauth;
|
|
77034
77034
|
var init_oauth = __esm({
|
|
77035
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
77035
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/credential/oauth.js"() {
|
|
77036
77036
|
"use strict";
|
|
77037
77037
|
init_esm_shims();
|
|
77038
77038
|
oauth = class {
|
|
@@ -77076,10 +77076,10 @@ var init_oauth = __esm({
|
|
|
77076
77076
|
}
|
|
77077
77077
|
});
|
|
77078
77078
|
|
|
77079
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
77079
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/credential/internal-wallet.js
|
|
77080
77080
|
var internalWallet;
|
|
77081
77081
|
var init_internal_wallet = __esm({
|
|
77082
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
77082
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/credential/internal-wallet.js"() {
|
|
77083
77083
|
"use strict";
|
|
77084
77084
|
init_esm_shims();
|
|
77085
77085
|
init_accounts();
|
|
@@ -77119,10 +77119,10 @@ var init_internal_wallet = __esm({
|
|
|
77119
77119
|
}
|
|
77120
77120
|
});
|
|
77121
77121
|
|
|
77122
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
77122
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/admin-api/admin.js
|
|
77123
77123
|
var adminApi;
|
|
77124
77124
|
var init_admin = __esm({
|
|
77125
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
77125
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/admin-api/admin.js"() {
|
|
77126
77126
|
"use strict";
|
|
77127
77127
|
init_esm_shims();
|
|
77128
77128
|
adminApi = class {
|
|
@@ -77158,14 +77158,33 @@ var init_admin = __esm({
|
|
|
77158
77158
|
async createCardProposal(adminToken, payload) {
|
|
77159
77159
|
return this.adminApis.createCardProposal(adminToken, payload);
|
|
77160
77160
|
}
|
|
77161
|
+
/**
|
|
77162
|
+
* Access gate (sprint-0007 Step 2, ADR-005): upsert an email as allowed —
|
|
77163
|
+
* POST /api/v1/allowed-email. `isDesignPartner` defaults true server-side.
|
|
77164
|
+
*/
|
|
77165
|
+
async allowEmail(adminToken, payload) {
|
|
77166
|
+
return this.adminApis.allowEmail(adminToken, payload);
|
|
77167
|
+
}
|
|
77168
|
+
/** List access-gate rows — GET /api/v1/allowed-emails; optional `status` filter (omit = all). */
|
|
77169
|
+
async listAllowedEmails(adminToken, query = {}) {
|
|
77170
|
+
return this.adminApis.listAllowedEmails(adminToken, query);
|
|
77171
|
+
}
|
|
77172
|
+
/** Remove an email from the access gate — DELETE /api/v1/allowed-email. */
|
|
77173
|
+
async revokeEmail(adminToken, payload) {
|
|
77174
|
+
return this.adminApis.revokeEmail(adminToken, payload);
|
|
77175
|
+
}
|
|
77176
|
+
/** Promote a waitlisted email to allowed — POST /api/v1/allowed-email/promote. */
|
|
77177
|
+
async promoteEmail(adminToken, payload) {
|
|
77178
|
+
return this.adminApis.promoteEmail(adminToken, payload);
|
|
77179
|
+
}
|
|
77161
77180
|
};
|
|
77162
77181
|
}
|
|
77163
77182
|
});
|
|
77164
77183
|
|
|
77165
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
77184
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/buyer/permissions.js
|
|
77166
77185
|
var permissions;
|
|
77167
77186
|
var init_permissions = __esm({
|
|
77168
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
77187
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/buyer/permissions.js"() {
|
|
77169
77188
|
"use strict";
|
|
77170
77189
|
init_esm_shims();
|
|
77171
77190
|
init_esm2();
|
|
@@ -77454,10 +77473,10 @@ var init_permissions = __esm({
|
|
|
77454
77473
|
}
|
|
77455
77474
|
});
|
|
77456
77475
|
|
|
77457
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
77476
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/buyer/admin.js
|
|
77458
77477
|
var buyerAdmin;
|
|
77459
77478
|
var init_admin2 = __esm({
|
|
77460
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
77479
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/buyer/admin.js"() {
|
|
77461
77480
|
"use strict";
|
|
77462
77481
|
init_esm_shims();
|
|
77463
77482
|
buyerAdmin = class {
|
|
@@ -77469,10 +77488,10 @@ var init_admin2 = __esm({
|
|
|
77469
77488
|
}
|
|
77470
77489
|
});
|
|
77471
77490
|
|
|
77472
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
77491
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/buyer/virtual-wallets-managers.js
|
|
77473
77492
|
var virtualWalletsManagers;
|
|
77474
77493
|
var init_virtual_wallets_managers = __esm({
|
|
77475
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
77494
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/buyer/virtual-wallets-managers.js"() {
|
|
77476
77495
|
"use strict";
|
|
77477
77496
|
init_esm_shims();
|
|
77478
77497
|
init_types();
|
|
@@ -77676,7 +77695,7 @@ var init_virtual_wallets_managers = __esm({
|
|
|
77676
77695
|
description,
|
|
77677
77696
|
policyAssociated: policyId
|
|
77678
77697
|
});
|
|
77679
|
-
return { signerAddress, signerPrivateKey };
|
|
77698
|
+
return { signerAddress, signerPrivateKey, id: response?.id };
|
|
77680
77699
|
}
|
|
77681
77700
|
async getVirtualWalletDataFromMainApp(jwtToken, id) {
|
|
77682
77701
|
const response = await this.buyerAPIs.getVirtualWalletDataFromMainApp(jwtToken, { id: Number(id) });
|
|
@@ -84572,13 +84591,13 @@ var init_esm9 = __esm({
|
|
|
84572
84591
|
}
|
|
84573
84592
|
});
|
|
84574
84593
|
|
|
84575
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
84594
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/buyer/transactions.js
|
|
84576
84595
|
function normalizeNetwork(network) {
|
|
84577
84596
|
return NETWORK_ALIASES[network.toLowerCase()] ?? network;
|
|
84578
84597
|
}
|
|
84579
84598
|
var NETWORK_ALIASES, ZERO_ADDRESS, NON_AUTH_COUNTERPARTY_TYPE, PAYMENT_MANAGERS_REGISTRY_ABI, ERC2612_PERMIT_ABI, ZERO_DOMAIN_SEPARATOR, DeferredEvmClientScheme, transactions;
|
|
84580
84599
|
var init_transactions = __esm({
|
|
84581
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
84600
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/buyer/transactions.js"() {
|
|
84582
84601
|
"use strict";
|
|
84583
84602
|
init_esm_shims();
|
|
84584
84603
|
init_esm2();
|
|
@@ -85993,10 +86012,10 @@ var init_transactions = __esm({
|
|
|
85993
86012
|
}
|
|
85994
86013
|
});
|
|
85995
86014
|
|
|
85996
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
86015
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/apis/sellerAPIs.js
|
|
85997
86016
|
var sellerAPIs;
|
|
85998
86017
|
var init_sellerAPIs = __esm({
|
|
85999
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
86018
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/apis/sellerAPIs.js"() {
|
|
86000
86019
|
"use strict";
|
|
86001
86020
|
init_esm_shims();
|
|
86002
86021
|
sellerAPIs = class {
|
|
@@ -86405,10 +86424,10 @@ var init_esm10 = __esm({
|
|
|
86405
86424
|
}
|
|
86406
86425
|
});
|
|
86407
86426
|
|
|
86408
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
86427
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/seller/facilitator.js
|
|
86409
86428
|
var TOKEN_META_ABI, facilitator;
|
|
86410
86429
|
var init_facilitator = __esm({
|
|
86411
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
86430
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/seller/facilitator.js"() {
|
|
86412
86431
|
"use strict";
|
|
86413
86432
|
init_esm_shims();
|
|
86414
86433
|
init_esm2();
|
|
@@ -86735,10 +86754,10 @@ var init_facilitator = __esm({
|
|
|
86735
86754
|
}
|
|
86736
86755
|
});
|
|
86737
86756
|
|
|
86738
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
86757
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/seller/commerce.js
|
|
86739
86758
|
var commerce;
|
|
86740
86759
|
var init_commerce = __esm({
|
|
86741
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
86760
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/seller/commerce.js"() {
|
|
86742
86761
|
"use strict";
|
|
86743
86762
|
init_esm_shims();
|
|
86744
86763
|
init_money();
|
|
@@ -87124,10 +87143,10 @@ var init_commerce = __esm({
|
|
|
87124
87143
|
}
|
|
87125
87144
|
});
|
|
87126
87145
|
|
|
87127
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
87146
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/mcp/mcp.js
|
|
87128
87147
|
var MCPManager;
|
|
87129
87148
|
var init_mcp = __esm({
|
|
87130
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
87149
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/mcp/mcp.js"() {
|
|
87131
87150
|
"use strict";
|
|
87132
87151
|
init_esm_shims();
|
|
87133
87152
|
MCPManager = class {
|
|
@@ -87149,7 +87168,7 @@ var init_mcp = __esm({
|
|
|
87149
87168
|
async fetchCapabilityIndex(apiKey) {
|
|
87150
87169
|
try {
|
|
87151
87170
|
const res = await this.buyerApis.getCapabilitiesIndex(apiKey);
|
|
87152
|
-
return { status: "ok", providers: res.providers };
|
|
87171
|
+
return { status: "ok", providers: res.providers, isDesignPartner: res.isDesignPartner };
|
|
87153
87172
|
} catch (err) {
|
|
87154
87173
|
return { status: "nok", error: err instanceof Error ? err.message : String(err) };
|
|
87155
87174
|
}
|
|
@@ -87190,10 +87209,10 @@ var init_mcp = __esm({
|
|
|
87190
87209
|
}
|
|
87191
87210
|
});
|
|
87192
87211
|
|
|
87193
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
87212
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/buyer/compounded-skills.js
|
|
87194
87213
|
var compoundedSkills;
|
|
87195
87214
|
var init_compounded_skills = __esm({
|
|
87196
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
87215
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/buyer/compounded-skills.js"() {
|
|
87197
87216
|
"use strict";
|
|
87198
87217
|
init_esm_shims();
|
|
87199
87218
|
compoundedSkills = class {
|
|
@@ -87261,10 +87280,10 @@ var init_compounded_skills = __esm({
|
|
|
87261
87280
|
}
|
|
87262
87281
|
});
|
|
87263
87282
|
|
|
87264
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
87283
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/buyer/loops.js
|
|
87265
87284
|
var loops;
|
|
87266
87285
|
var init_loops = __esm({
|
|
87267
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
87286
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/buyer/loops.js"() {
|
|
87268
87287
|
"use strict";
|
|
87269
87288
|
init_esm_shims();
|
|
87270
87289
|
loops = class {
|
|
@@ -87332,10 +87351,10 @@ var init_loops = __esm({
|
|
|
87332
87351
|
}
|
|
87333
87352
|
});
|
|
87334
87353
|
|
|
87335
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
87354
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/buyer/brain.js
|
|
87336
87355
|
var brain;
|
|
87337
87356
|
var init_brain = __esm({
|
|
87338
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
87357
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/buyer/brain.js"() {
|
|
87339
87358
|
"use strict";
|
|
87340
87359
|
init_esm_shims();
|
|
87341
87360
|
brain = class {
|
|
@@ -96408,10 +96427,10 @@ var init_server3 = __esm({
|
|
|
96408
96427
|
}
|
|
96409
96428
|
});
|
|
96410
96429
|
|
|
96411
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
96430
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/seller/transactions.js
|
|
96412
96431
|
var sellerTransactions;
|
|
96413
96432
|
var init_transactions2 = __esm({
|
|
96414
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
96433
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/managers/seller/transactions.js"() {
|
|
96415
96434
|
"use strict";
|
|
96416
96435
|
init_esm_shims();
|
|
96417
96436
|
init_server();
|
|
@@ -96590,10 +96609,10 @@ var init_transactions2 = __esm({
|
|
|
96590
96609
|
}
|
|
96591
96610
|
});
|
|
96592
96611
|
|
|
96593
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
96612
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/utils/actions.js
|
|
96594
96613
|
var kernelAccountAbi, actions;
|
|
96595
96614
|
var init_actions3 = __esm({
|
|
96596
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
96615
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/utils/actions.js"() {
|
|
96597
96616
|
"use strict";
|
|
96598
96617
|
init_esm_shims();
|
|
96599
96618
|
init_esm2();
|
|
@@ -96720,7 +96739,7 @@ var init_actions3 = __esm({
|
|
|
96720
96739
|
}
|
|
96721
96740
|
});
|
|
96722
96741
|
|
|
96723
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
96742
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/apis/credentialAPIs.js
|
|
96724
96743
|
function arrayBufferToBase64Url(buffer2) {
|
|
96725
96744
|
const bytes = new Uint8Array(buffer2);
|
|
96726
96745
|
let binary = "";
|
|
@@ -96731,7 +96750,7 @@ function arrayBufferToBase64Url(buffer2) {
|
|
|
96731
96750
|
}
|
|
96732
96751
|
var credentialAPIs;
|
|
96733
96752
|
var init_credentialAPIs = __esm({
|
|
96734
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
96753
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/apis/credentialAPIs.js"() {
|
|
96735
96754
|
"use strict";
|
|
96736
96755
|
init_esm_shims();
|
|
96737
96756
|
credentialAPIs = class {
|
|
@@ -97066,10 +97085,10 @@ var init_credentialAPIs = __esm({
|
|
|
97066
97085
|
}
|
|
97067
97086
|
});
|
|
97068
97087
|
|
|
97069
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
97088
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/apis/buyerAPIs.js
|
|
97070
97089
|
var buyerAPIs;
|
|
97071
97090
|
var init_buyerAPIs = __esm({
|
|
97072
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
97091
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/apis/buyerAPIs.js"() {
|
|
97073
97092
|
"use strict";
|
|
97074
97093
|
init_esm_shims();
|
|
97075
97094
|
buyerAPIs = class {
|
|
@@ -97532,10 +97551,10 @@ var init_buyerAPIs = __esm({
|
|
|
97532
97551
|
}
|
|
97533
97552
|
});
|
|
97534
97553
|
|
|
97535
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
97554
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/apis/adminAPIs.js
|
|
97536
97555
|
var DEFAULT_ADMIN_API_URL, adminAPIs;
|
|
97537
97556
|
var init_adminAPIs = __esm({
|
|
97538
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
97557
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/apis/adminAPIs.js"() {
|
|
97539
97558
|
"use strict";
|
|
97540
97559
|
init_esm_shims();
|
|
97541
97560
|
DEFAULT_ADMIN_API_URL = "http://localhost:3001";
|
|
@@ -97612,6 +97631,41 @@ var init_adminAPIs = __esm({
|
|
|
97612
97631
|
json: payload
|
|
97613
97632
|
});
|
|
97614
97633
|
}
|
|
97634
|
+
/**
|
|
97635
|
+
* POST /api/v1/allowed-email — upsert an email as allowed on the access gate.
|
|
97636
|
+
* `isDesignPartner` defaults true server-side (ADR-005).
|
|
97637
|
+
*/
|
|
97638
|
+
async allowEmail(adminToken, payload) {
|
|
97639
|
+
return this.request("/api/v1/allowed-email", {
|
|
97640
|
+
method: "POST",
|
|
97641
|
+
token: adminToken,
|
|
97642
|
+
json: payload
|
|
97643
|
+
});
|
|
97644
|
+
}
|
|
97645
|
+
/** GET /api/v1/allowed-emails — list gate rows; optional `status` filter (omit = all rows). */
|
|
97646
|
+
async listAllowedEmails(adminToken, query = {}) {
|
|
97647
|
+
const qs = query.status ? `?status=${encodeURIComponent(query.status)}` : "";
|
|
97648
|
+
return this.request(`/api/v1/allowed-emails${qs}`, {
|
|
97649
|
+
method: "GET",
|
|
97650
|
+
token: adminToken
|
|
97651
|
+
});
|
|
97652
|
+
}
|
|
97653
|
+
/** DELETE /api/v1/allowed-email — remove an email from the access gate. */
|
|
97654
|
+
async revokeEmail(adminToken, payload) {
|
|
97655
|
+
return this.request("/api/v1/allowed-email", {
|
|
97656
|
+
method: "DELETE",
|
|
97657
|
+
token: adminToken,
|
|
97658
|
+
json: payload
|
|
97659
|
+
});
|
|
97660
|
+
}
|
|
97661
|
+
/** POST /api/v1/allowed-email/promote — flip a waitlisted row to allowed. */
|
|
97662
|
+
async promoteEmail(adminToken, payload) {
|
|
97663
|
+
return this.request("/api/v1/allowed-email/promote", {
|
|
97664
|
+
method: "POST",
|
|
97665
|
+
token: adminToken,
|
|
97666
|
+
json: payload
|
|
97667
|
+
});
|
|
97668
|
+
}
|
|
97615
97669
|
};
|
|
97616
97670
|
}
|
|
97617
97671
|
});
|
|
@@ -97623,7 +97677,7 @@ var require_XMLHttpRequest = __commonJS({
|
|
|
97623
97677
|
init_esm_shims();
|
|
97624
97678
|
var fs = __require("fs");
|
|
97625
97679
|
var Url = __require("url");
|
|
97626
|
-
var
|
|
97680
|
+
var spawn4 = __require("child_process").spawn;
|
|
97627
97681
|
module.exports = XMLHttpRequest3;
|
|
97628
97682
|
XMLHttpRequest3.XMLHttpRequest = XMLHttpRequest3;
|
|
97629
97683
|
function XMLHttpRequest3(opts) {
|
|
@@ -97919,7 +97973,7 @@ var require_XMLHttpRequest = __commonJS({
|
|
|
97919
97973
|
var syncFile = ".node-xmlhttprequest-sync-" + process.pid;
|
|
97920
97974
|
fs.writeFileSync(syncFile, "", "utf8");
|
|
97921
97975
|
var execString = "var http = require('http'), https = require('https'), fs = require('fs');var doRequest = http" + (ssl ? "s" : "") + ".request;var options = " + JSON.stringify(options) + ";var responseText = '';var responseData = Buffer.alloc(0);var req = doRequest(options, function(response) {response.on('data', function(chunk) { var data = Buffer.from(chunk); responseText += data.toString('utf8'); responseData = Buffer.concat([responseData, data]);});response.on('end', function() {fs.writeFileSync('" + contentFile + "', JSON.stringify({err: null, data: {statusCode: response.statusCode, headers: response.headers, text: responseText, data: responseData.toString('base64')}}), 'utf8');fs.unlinkSync('" + syncFile + "');});response.on('error', function(error) {fs.writeFileSync('" + contentFile + "', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('" + syncFile + "');});}).on('error', function(error) {fs.writeFileSync('" + contentFile + "', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');fs.unlinkSync('" + syncFile + "');});" + (data ? "req.write('" + JSON.stringify(data).slice(1, -1).replace(/'/g, "\\'") + "');" : "") + "req.end();";
|
|
97922
|
-
var syncProc =
|
|
97976
|
+
var syncProc = spawn4(process.argv[0], ["-e", execString]);
|
|
97923
97977
|
var statusText;
|
|
97924
97978
|
while (fs.existsSync(syncFile)) {
|
|
97925
97979
|
}
|
|
@@ -103139,7 +103193,7 @@ var init_esm_debug3 = __esm({
|
|
|
103139
103193
|
}
|
|
103140
103194
|
});
|
|
103141
103195
|
|
|
103142
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
103196
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/events/eventSubscriber.js
|
|
103143
103197
|
function isValidApprovalEvent(payload) {
|
|
103144
103198
|
if (typeof payload !== "object" || payload === null)
|
|
103145
103199
|
return false;
|
|
@@ -103154,7 +103208,7 @@ function isValidApprovalEvent(payload) {
|
|
|
103154
103208
|
}
|
|
103155
103209
|
var ERC20_TRANSFER_ABI, AmetystEventSubscriber;
|
|
103156
103210
|
var init_eventSubscriber = __esm({
|
|
103157
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
103211
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/events/eventSubscriber.js"() {
|
|
103158
103212
|
"use strict";
|
|
103159
103213
|
init_esm_shims();
|
|
103160
103214
|
init_esm_debug3();
|
|
@@ -103527,10 +103581,10 @@ var init_eventSubscriber = __esm({
|
|
|
103527
103581
|
}
|
|
103528
103582
|
});
|
|
103529
103583
|
|
|
103530
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
103584
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/client.js
|
|
103531
103585
|
var AmetystSDK;
|
|
103532
103586
|
var init_client4 = __esm({
|
|
103533
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
103587
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/client.js"() {
|
|
103534
103588
|
"use strict";
|
|
103535
103589
|
init_esm_shims();
|
|
103536
103590
|
init_initialization();
|
|
@@ -103621,13 +103675,13 @@ var init_client4 = __esm({
|
|
|
103621
103675
|
}
|
|
103622
103676
|
});
|
|
103623
103677
|
|
|
103624
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
103678
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/utils/timing.js
|
|
103625
103679
|
function logTiming(scope, step2, elapsedMs, totalMs) {
|
|
103626
103680
|
console.error(`[timing] scope=${scope} step=${step2} elapsed_ms=${elapsedMs} total_ms=${totalMs}`);
|
|
103627
103681
|
}
|
|
103628
103682
|
var TimingCollector;
|
|
103629
103683
|
var init_timing = __esm({
|
|
103630
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
103684
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/core/utils/timing.js"() {
|
|
103631
103685
|
"use strict";
|
|
103632
103686
|
init_esm_shims();
|
|
103633
103687
|
TimingCollector = class {
|
|
@@ -103670,7 +103724,7 @@ var init_timing = __esm({
|
|
|
103670
103724
|
}
|
|
103671
103725
|
});
|
|
103672
103726
|
|
|
103673
|
-
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
103727
|
+
// node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/index.js
|
|
103674
103728
|
var dist_exports = {};
|
|
103675
103729
|
__export(dist_exports, {
|
|
103676
103730
|
AmetystCreditTokenAbi: () => AmetystCreditTokenAbi,
|
|
@@ -103708,7 +103762,7 @@ __export(dist_exports, {
|
|
|
103708
103762
|
toBaseUnits: () => toBaseUnits
|
|
103709
103763
|
});
|
|
103710
103764
|
var init_dist = __esm({
|
|
103711
|
-
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.
|
|
103765
|
+
"node_modules/.pnpm/@ametyst-dev+sdk-prod@0.8.34_@zerodev+webauthn-key@5.5.0_viem@2.38.6_typescript@5.2.2_z_3ee131b6fc8710c7b30af9f02d6dcbaa/node_modules/@ametyst-dev/sdk-prod/dist/index.js"() {
|
|
103712
103766
|
"use strict";
|
|
103713
103767
|
init_esm_shims();
|
|
103714
103768
|
init_RecoveryEscrowFactory();
|
|
@@ -106439,7 +106493,7 @@ var require_dist = __commonJS({
|
|
|
106439
106493
|
});
|
|
106440
106494
|
};
|
|
106441
106495
|
}
|
|
106442
|
-
var
|
|
106496
|
+
var prompts4 = require_prompts();
|
|
106443
106497
|
var passOn = ["suggest", "format", "onState", "validate", "onRender", "type"];
|
|
106444
106498
|
var noop = () => {
|
|
106445
106499
|
};
|
|
@@ -106490,7 +106544,7 @@ var require_dist = __commonJS({
|
|
|
106490
106544
|
var _question2 = question;
|
|
106491
106545
|
name = _question2.name;
|
|
106492
106546
|
type = _question2.type;
|
|
106493
|
-
if (
|
|
106547
|
+
if (prompts4[type] === void 0) {
|
|
106494
106548
|
throw new Error(`prompt type (${type}) is not defined`);
|
|
106495
106549
|
}
|
|
106496
106550
|
if (override2[question.name] !== void 0) {
|
|
@@ -106501,7 +106555,7 @@ var require_dist = __commonJS({
|
|
|
106501
106555
|
}
|
|
106502
106556
|
}
|
|
106503
106557
|
try {
|
|
106504
|
-
answer = prompt._injected ? getInjectedAnswer(prompt._injected, question.initial) : yield
|
|
106558
|
+
answer = prompt._injected ? getInjectedAnswer(prompt._injected, question.initial) : yield prompts4[type](question);
|
|
106505
106559
|
answers[name] = answer = yield getFormattedAnswer(question, answer, true);
|
|
106506
106560
|
quit = yield onSubmit(question, answer, answers);
|
|
106507
106561
|
} catch (err) {
|
|
@@ -106533,7 +106587,7 @@ var require_dist = __commonJS({
|
|
|
106533
106587
|
}
|
|
106534
106588
|
module.exports = Object.assign(prompt, {
|
|
106535
106589
|
prompt,
|
|
106536
|
-
prompts:
|
|
106590
|
+
prompts: prompts4,
|
|
106537
106591
|
inject,
|
|
106538
106592
|
override
|
|
106539
106593
|
});
|
|
@@ -108652,7 +108706,7 @@ var require_lib = __commonJS({
|
|
|
108652
108706
|
"node_modules/.pnpm/prompts@2.4.2/node_modules/prompts/lib/index.js"(exports, module) {
|
|
108653
108707
|
"use strict";
|
|
108654
108708
|
init_esm_shims();
|
|
108655
|
-
var
|
|
108709
|
+
var prompts4 = require_prompts2();
|
|
108656
108710
|
var passOn = ["suggest", "format", "onState", "validate", "onRender", "type"];
|
|
108657
108711
|
var noop = () => {
|
|
108658
108712
|
};
|
|
@@ -108684,7 +108738,7 @@ var require_lib = __commonJS({
|
|
|
108684
108738
|
throw new Error("prompt message is required");
|
|
108685
108739
|
}
|
|
108686
108740
|
({ name, type } = question);
|
|
108687
|
-
if (
|
|
108741
|
+
if (prompts4[type] === void 0) {
|
|
108688
108742
|
throw new Error(`prompt type (${type}) is not defined`);
|
|
108689
108743
|
}
|
|
108690
108744
|
if (override2[question.name] !== void 0) {
|
|
@@ -108695,7 +108749,7 @@ var require_lib = __commonJS({
|
|
|
108695
108749
|
}
|
|
108696
108750
|
}
|
|
108697
108751
|
try {
|
|
108698
|
-
answer = prompt._injected ? getInjectedAnswer(prompt._injected, question.initial) : await
|
|
108752
|
+
answer = prompt._injected ? getInjectedAnswer(prompt._injected, question.initial) : await prompts4[type](question);
|
|
108699
108753
|
answers[name] = answer = await getFormattedAnswer(question, answer, true);
|
|
108700
108754
|
quit = await onSubmit(question, answer, answers);
|
|
108701
108755
|
} catch (err) {
|
|
@@ -108718,7 +108772,7 @@ var require_lib = __commonJS({
|
|
|
108718
108772
|
function override(answers) {
|
|
108719
108773
|
prompt._override = Object.assign({}, answers);
|
|
108720
108774
|
}
|
|
108721
|
-
module.exports = Object.assign(prompt, { prompt, prompts:
|
|
108775
|
+
module.exports = Object.assign(prompt, { prompt, prompts: prompts4, inject, override });
|
|
108722
108776
|
}
|
|
108723
108777
|
});
|
|
108724
108778
|
|
|
@@ -109208,6 +109262,132 @@ For step-by-step setup, see: docs/onboarding-employee.md`);
|
|
|
109208
109262
|
}
|
|
109209
109263
|
}
|
|
109210
109264
|
|
|
109265
|
+
// src/commands/init.ts
|
|
109266
|
+
init_esm_shims();
|
|
109267
|
+
var import_prompts3 = __toESM(require_prompts3(), 1);
|
|
109268
|
+
import { spawn } from "child_process";
|
|
109269
|
+
|
|
109270
|
+
// src/commands/wallet.ts
|
|
109271
|
+
init_esm_shims();
|
|
109272
|
+
var import_prompts2 = __toESM(require_prompts3(), 1);
|
|
109273
|
+
init_paths();
|
|
109274
|
+
init_core();
|
|
109275
|
+
async function walletImportCommand(options) {
|
|
109276
|
+
ensureDirectories();
|
|
109277
|
+
if (loadVault() && !options.force) {
|
|
109278
|
+
const { proceed } = await (0, import_prompts2.default)({
|
|
109279
|
+
type: "confirm",
|
|
109280
|
+
name: "proceed",
|
|
109281
|
+
message: "A wallet is already saved. Overwrite it with the imported key?",
|
|
109282
|
+
initial: false
|
|
109283
|
+
});
|
|
109284
|
+
if (!proceed) {
|
|
109285
|
+
console.log("Import cancelled. Existing wallet kept.");
|
|
109286
|
+
return;
|
|
109287
|
+
}
|
|
109288
|
+
}
|
|
109289
|
+
let privateKey = options.walletKey?.trim();
|
|
109290
|
+
if (!privateKey) {
|
|
109291
|
+
const res = await (0, import_prompts2.default)({
|
|
109292
|
+
type: "password",
|
|
109293
|
+
name: "privateKey",
|
|
109294
|
+
message: "Paste the session private key (0x-hex, shown once during web onboarding)"
|
|
109295
|
+
});
|
|
109296
|
+
privateKey = typeof res.privateKey === "string" ? res.privateKey.trim() : void 0;
|
|
109297
|
+
}
|
|
109298
|
+
if (!privateKey) {
|
|
109299
|
+
console.error("A private key is required. Nothing imported.");
|
|
109300
|
+
process.exit(1);
|
|
109301
|
+
}
|
|
109302
|
+
let passphrase = options.passphrase;
|
|
109303
|
+
if (!passphrase) {
|
|
109304
|
+
const res = await (0, import_prompts2.default)({
|
|
109305
|
+
type: "password",
|
|
109306
|
+
name: "passphrase",
|
|
109307
|
+
message: "Choose a passphrase to encrypt the key locally"
|
|
109308
|
+
});
|
|
109309
|
+
passphrase = typeof res.passphrase === "string" ? res.passphrase : void 0;
|
|
109310
|
+
}
|
|
109311
|
+
if (!passphrase) {
|
|
109312
|
+
console.error("A passphrase is required. Nothing imported.");
|
|
109313
|
+
process.exit(1);
|
|
109314
|
+
}
|
|
109315
|
+
let keystoreJson;
|
|
109316
|
+
try {
|
|
109317
|
+
keystoreJson = importWallet(privateKey, passphrase);
|
|
109318
|
+
} catch (e) {
|
|
109319
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
109320
|
+
console.error(`Import failed: ${msg}`);
|
|
109321
|
+
process.exit(1);
|
|
109322
|
+
}
|
|
109323
|
+
persistVault(keystoreJson);
|
|
109324
|
+
const address = getWalletAddress(keystoreJson);
|
|
109325
|
+
console.log(`Wallet imported and encrypted locally. Address: ${address}`);
|
|
109326
|
+
console.log("The key stays on this machine \u2014 Ametyst never receives it. Run 'claude' to start; unlock with your passphrase on first spend.");
|
|
109327
|
+
}
|
|
109328
|
+
var walletCommand = new Command("wallet").description("Manage the local Ametyst wallet keystore");
|
|
109329
|
+
walletCommand.command("import").description("Import a pasted session private key into the local passphrase-encrypted keystore (non-custodial)").option("--wallet-key <key>", "Raw session private key (0x-hex). Omit to be prompted (masked).").option("--passphrase <passphrase>", "Passphrase to encrypt the key locally. Omit to be prompted (masked).").option("--force", "Overwrite an existing saved wallet without confirmation").action(walletImportCommand);
|
|
109330
|
+
|
|
109331
|
+
// src/commands/init.ts
|
|
109332
|
+
var ONBOARDING_SEED = `You are onboarding a brand-new Ametyst design partner who just ran \`ametyst init\`. Their wallet is already provisioned and NON-CUSTODIAL: during web onboarding their passkey approved a 1-year "Full access" policy on a session key + whitelisted the curated merchants, and that session key is now loaded in this CLI. They can spend immediately and start with a small grant of credits already on the wallet. Never ask for a passphrase proactively and never call start_session \u2014 the spend tool asks lazily only when a real payment needs it. Be warm, concrete, fast. Goal of these first minutes: ONE successful spend, not a lecture. Do NOT use the word "banking".
|
|
109333
|
+
|
|
109334
|
+
Step 1 \u2014 Orient (2 sentences max): explain that their agent can now pay for real external services on their behalf \u2014 web search, data enrichment, scraping, LLM calls, and more \u2014 under a spending policy they control. Their wallet is set up, already funded with starter credits, and ready now.
|
|
109335
|
+
|
|
109336
|
+
Step 2 \u2014 Branch on whether they already have skills. Check the current workspace for a \`.claude/skills/\` directory (skill folders each with a SKILL.md).
|
|
109337
|
+
- If they HAVE local skills: offer to move them into Ametyst so they live centrally. Call getCompound with intent "publish local skills to Ametyst" and follow the ops-publish-to-ametyst procedure it returns (which now also moves the local originals into \`.claude/deprecated-skills/\` and re-pulls the Ametyst versions). Confirm before moving anything. Their starter prompts (Step 3) are then built around what their own skills DO.
|
|
109338
|
+
- If they have NO local skills: skip publishing. Ask ONE question: "What's something you'd love an agent to just\u2026 do for you?" Their starter prompts are built around that answer.
|
|
109339
|
+
|
|
109340
|
+
Step 3 \u2014 One real spend + tailored prompts. Take the driver from Step 2 and call getAllowlist({ intent: "<goal, imperative>" }) to show the providers available under their policy. Present the 2-3 best matches plainly and let THEM pick \u2014 never auto-pick, never requestAccess/spend on your own (getAllowlist returns stop:true for this reason). Once they choose, walk them through the actual spend so they see it work end-to-end. If the wallet needs unlocking, the spend tool tells you to ask for the passphrase at that moment \u2014 only then. Then hand them 2-3 copy-pasteable starter prompts tailored to the same driver, each mapping to a real allowlisted provider. Mention they can browse the full catalog anytime with findServices.
|
|
109341
|
+
|
|
109342
|
+
Step 4 \u2014 Credits. They begin with a starter grant already on the wallet. There is no self-serve top-up; when they need more they ask their Ametyst contact.
|
|
109343
|
+
|
|
109344
|
+
Guardrails: NON-CUSTODIAL (never imply Ametyst signs for them; their session key in this CLI signs spends under the policy their passkey approved); never ask for the passphrase up front; never call start_session proactively; never promise a provider not in getAllowlist/findServices; in the publish branch never DELETE a local skill (the ops-publish compound MOVES it to deprecated-skills, only after confirmation); keep momentum \u2014 one working spend beats a perfect explanation.`;
|
|
109345
|
+
function buildInitLaunchArgs(seed = ONBOARDING_SEED) {
|
|
109346
|
+
return {
|
|
109347
|
+
cmd: "claude",
|
|
109348
|
+
args: [
|
|
109349
|
+
seed,
|
|
109350
|
+
// Eager-load MCP tools: with tool search enabled, the Ametyst MCP tools
|
|
109351
|
+
// (getAllowlist, spend, findServices, getCompound) are deferred behind a
|
|
109352
|
+
// ToolSearch step that smaller orchestrator models never perform, so the
|
|
109353
|
+
// seeded script's tool calls would never resolve (BUG-15). Mirrors the
|
|
109354
|
+
// compound/loop launch.
|
|
109355
|
+
"--settings",
|
|
109356
|
+
'{"env":{"ENABLE_TOOL_SEARCH":"false"}}'
|
|
109357
|
+
],
|
|
109358
|
+
cwd: process.cwd()
|
|
109359
|
+
};
|
|
109360
|
+
}
|
|
109361
|
+
async function initCommand(options = {}) {
|
|
109362
|
+
const res = await (0, import_prompts3.default)({
|
|
109363
|
+
type: "password",
|
|
109364
|
+
name: "apiKey",
|
|
109365
|
+
message: "Paste your Ametyst manager API key (from web onboarding)"
|
|
109366
|
+
});
|
|
109367
|
+
const apiKey = typeof res.apiKey === "string" ? res.apiKey.trim() : void 0;
|
|
109368
|
+
if (!apiKey) {
|
|
109369
|
+
console.error("An API key is required. Nothing initialized.");
|
|
109370
|
+
process.exit(1);
|
|
109371
|
+
return;
|
|
109372
|
+
}
|
|
109373
|
+
await loginCommand({ apiKey });
|
|
109374
|
+
await walletImportCommand({ force: options.force });
|
|
109375
|
+
const launch = buildInitLaunchArgs();
|
|
109376
|
+
console.log("\nLaunching Claude Code to finish onboarding\u2026");
|
|
109377
|
+
const child = spawn(launch.cmd, launch.args, { cwd: launch.cwd, stdio: "inherit" });
|
|
109378
|
+
const exitCode = await new Promise((resolve) => {
|
|
109379
|
+
child.on("exit", (code) => resolve(code ?? 0));
|
|
109380
|
+
child.on("error", (e) => {
|
|
109381
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
109382
|
+
console.error(
|
|
109383
|
+
`Could not launch 'claude' (${msg}). Login + wallet import succeeded \u2014 run 'claude' yourself to finish onboarding.`
|
|
109384
|
+
);
|
|
109385
|
+
resolve(1);
|
|
109386
|
+
});
|
|
109387
|
+
});
|
|
109388
|
+
if (exitCode !== 0) process.exit(exitCode);
|
|
109389
|
+
}
|
|
109390
|
+
|
|
109211
109391
|
// src/commands/logout.ts
|
|
109212
109392
|
init_esm_shims();
|
|
109213
109393
|
init_credentials();
|
|
@@ -109671,6 +109851,13 @@ function stripConversationalGuidance(res) {
|
|
|
109671
109851
|
return mutated ? { ...res, content: nextContent } : res;
|
|
109672
109852
|
}
|
|
109673
109853
|
|
|
109854
|
+
// src/mcp-server/autoshare-gate.ts
|
|
109855
|
+
init_esm_shims();
|
|
109856
|
+
var AUTO_SHARE_EVERY_N_TOOL_CALLS = 25;
|
|
109857
|
+
function shouldAutoShare(toolCallCount2, isDesignPartner) {
|
|
109858
|
+
return isDesignPartner === true && toolCallCount2 > 0 && toolCallCount2 % AUTO_SHARE_EVERY_N_TOOL_CALLS === 0;
|
|
109859
|
+
}
|
|
109860
|
+
|
|
109674
109861
|
// src/loops/materialize.ts
|
|
109675
109862
|
init_esm_shims();
|
|
109676
109863
|
init_paths();
|
|
@@ -109946,8 +110133,44 @@ Tell the user they have pending card proposals to review in the Ametyst app, the
|
|
|
109946
110133
|
};
|
|
109947
110134
|
}
|
|
109948
110135
|
const res = await handler(params);
|
|
110136
|
+
maybeAutoShareOnToolCall();
|
|
109949
110137
|
return isNonInteractive() ? stripConversationalGuidance(res) : res;
|
|
109950
110138
|
});
|
|
110139
|
+
var toolCallCount = 0;
|
|
110140
|
+
var shutdownShareFired = false;
|
|
110141
|
+
function fireAutoShare() {
|
|
110142
|
+
const apiKey = currentCredentials.apiKey;
|
|
110143
|
+
if (!apiKey) return;
|
|
110144
|
+
void (async () => {
|
|
110145
|
+
try {
|
|
110146
|
+
const { mcp } = await getSDK();
|
|
110147
|
+
await mcp.shareSession(apiKey, { sessionId, trigger: "auto" });
|
|
110148
|
+
} catch {
|
|
110149
|
+
}
|
|
110150
|
+
})();
|
|
110151
|
+
}
|
|
110152
|
+
function maybeAutoShareOnToolCall() {
|
|
110153
|
+
toolCallCount += 1;
|
|
110154
|
+
if (shouldAutoShare(toolCallCount, capabilityIndexCache?.isDesignPartner ?? false)) {
|
|
110155
|
+
fireAutoShare();
|
|
110156
|
+
}
|
|
110157
|
+
}
|
|
110158
|
+
function fireAutoShareOnShutdown() {
|
|
110159
|
+
if (shutdownShareFired) return;
|
|
110160
|
+
shutdownShareFired = true;
|
|
110161
|
+
if (toolCallCount > 0 && capabilityIndexCache?.isDesignPartner === true) {
|
|
110162
|
+
fireAutoShare();
|
|
110163
|
+
}
|
|
110164
|
+
}
|
|
110165
|
+
process.on("beforeExit", fireAutoShareOnShutdown);
|
|
110166
|
+
process.on("SIGINT", () => {
|
|
110167
|
+
fireAutoShareOnShutdown();
|
|
110168
|
+
process.exit(0);
|
|
110169
|
+
});
|
|
110170
|
+
process.on("SIGTERM", () => {
|
|
110171
|
+
fireAutoShareOnShutdown();
|
|
110172
|
+
process.exit(0);
|
|
110173
|
+
});
|
|
109951
110174
|
function getEndpointSessionData(endpoint) {
|
|
109952
110175
|
return endpointSessionCache.get(endpoint) ?? null;
|
|
109953
110176
|
}
|
|
@@ -110032,6 +110255,15 @@ function formatRecentTransactions(transactions2, limit = 10) {
|
|
|
110032
110255
|
type: tx?.type ?? null
|
|
110033
110256
|
}));
|
|
110034
110257
|
}
|
|
110258
|
+
function resolveTransactionsMessage(txRecords, hasFinancialJwt) {
|
|
110259
|
+
if (Array.isArray(txRecords)) {
|
|
110260
|
+
return txRecords.length === 0 ? "No transactions yet \u2014 this wallet hasn't spent anything." : null;
|
|
110261
|
+
}
|
|
110262
|
+
if (!hasFinancialJwt) {
|
|
110263
|
+
return "Transaction history isn't available from the CLI \u2014 sign in to the web app to see your full spend history. The wallet status above is current.";
|
|
110264
|
+
}
|
|
110265
|
+
return "Transaction history is temporarily unavailable \u2014 the wallet status above is still current.";
|
|
110266
|
+
}
|
|
110035
110267
|
var POLICY_MONEY_FIELDS = /* @__PURE__ */ new Set([
|
|
110036
110268
|
"spendingLimit",
|
|
110037
110269
|
"amount",
|
|
@@ -110333,7 +110565,7 @@ async function fetchCapabilityIndex(apiKey, force = false) {
|
|
|
110333
110565
|
const { mcp } = await getSDK();
|
|
110334
110566
|
const res = await mcp.fetchCapabilityIndex(apiKey);
|
|
110335
110567
|
if (res.status === "ok") {
|
|
110336
|
-
capabilityIndexCache = { providers: res.providers };
|
|
110568
|
+
capabilityIndexCache = { providers: res.providers, isDesignPartner: res.isDesignPartner };
|
|
110337
110569
|
return capabilityIndexCache;
|
|
110338
110570
|
}
|
|
110339
110571
|
console.warn("[capability-index] fetch failed:", res.error);
|
|
@@ -110604,8 +110836,10 @@ async function initializeCredentials(walletKeystoreJson, eoaAddress, config) {
|
|
|
110604
110836
|
);
|
|
110605
110837
|
try {
|
|
110606
110838
|
const wallets = walletsCache || [];
|
|
110607
|
-
const approvedWallet =
|
|
110608
|
-
|
|
110839
|
+
const approvedWallet = findCurrentApprovedWallet(
|
|
110840
|
+
wallets,
|
|
110841
|
+
eoaAddress,
|
|
110842
|
+
currentCredentials.pendingWalletId
|
|
110609
110843
|
);
|
|
110610
110844
|
if (approvedWallet) {
|
|
110611
110845
|
console.error("\u2705 Found approved wallet from backend \u2014 authorization data stored");
|
|
@@ -110781,6 +111015,17 @@ var approvalWaitConfig = (() => {
|
|
|
110781
111015
|
delay: (ms) => new Promise((resolve) => setTimeout(resolve, ms))
|
|
110782
111016
|
};
|
|
110783
111017
|
})();
|
|
111018
|
+
function findCurrentApprovedWallet(wallets, eoaAddress, pendingWalletId) {
|
|
111019
|
+
if (!Array.isArray(wallets)) return void 0;
|
|
111020
|
+
if (pendingWalletId) {
|
|
111021
|
+
return wallets.find(
|
|
111022
|
+
(w) => String(w?.id) === String(pendingWalletId) && w?.status === "approved"
|
|
111023
|
+
);
|
|
111024
|
+
}
|
|
111025
|
+
return wallets.find(
|
|
111026
|
+
(w) => w?.address?.toLowerCase() === eoaAddress?.toLowerCase() && w?.status === "approved"
|
|
111027
|
+
);
|
|
111028
|
+
}
|
|
110784
111029
|
async function tryResolvePendingApproval(probe) {
|
|
110785
111030
|
if (currentCredentials.authorizationStatus === "approved") return true;
|
|
110786
111031
|
if (currentCredentials.authorizationStatus !== "pending" || !currentCredentials.apiKey || !currentCredentials.eoaAddress) {
|
|
@@ -110789,8 +111034,10 @@ async function tryResolvePendingApproval(probe) {
|
|
|
110789
111034
|
try {
|
|
110790
111035
|
const freshWallets = await fetchVirtualWalletsFromBackend(currentCredentials.apiKey, true);
|
|
110791
111036
|
if (probe) probe.fetched = true;
|
|
110792
|
-
const approvedWallet =
|
|
110793
|
-
|
|
111037
|
+
const approvedWallet = findCurrentApprovedWallet(
|
|
111038
|
+
freshWallets,
|
|
111039
|
+
currentCredentials.eoaAddress,
|
|
111040
|
+
currentCredentials.pendingWalletId
|
|
110794
111041
|
);
|
|
110795
111042
|
if (!approvedWallet) return false;
|
|
110796
111043
|
console.error("\u2705 [approval-wait] Backend says approved \u2014 syncing");
|
|
@@ -110822,6 +111069,31 @@ async function autoWaitForApproval() {
|
|
|
110822
111069
|
}
|
|
110823
111070
|
return false;
|
|
110824
111071
|
}
|
|
111072
|
+
function buildPendingApprovalNotice() {
|
|
111073
|
+
const message = "Authorization request sent \u2014 PENDING your approval. Approve it in the Ametyst web app admin panel (in your notifications there) with your passkey. I'm waiting and will proceed automatically the moment you approve it.";
|
|
111074
|
+
return {
|
|
111075
|
+
message,
|
|
111076
|
+
say_to_user: "I've sent the authorization request and it's now pending your approval. Please open the Ametyst web app admin panel, go to your notifications, and approve the request with your passkey. I'll keep waiting and continue automatically as soon as you approve it \u2014 no need to do anything else here."
|
|
111077
|
+
};
|
|
111078
|
+
}
|
|
111079
|
+
var pendingApprovalNotifier = async (notice) => {
|
|
111080
|
+
const rawServer = server.nativeServer?.server;
|
|
111081
|
+
if (typeof rawServer?.notification === "function") {
|
|
111082
|
+
await rawServer.notification({
|
|
111083
|
+
method: "notifications/message",
|
|
111084
|
+
params: { level: "info", logger: "ametyst.requestAccess", data: notice.message }
|
|
111085
|
+
});
|
|
111086
|
+
}
|
|
111087
|
+
};
|
|
111088
|
+
async function emitPendingApprovalNotice() {
|
|
111089
|
+
const notice = buildPendingApprovalNotice();
|
|
111090
|
+
console.error(`\u23F3 [requestAccess] ${notice.message}`);
|
|
111091
|
+
try {
|
|
111092
|
+
await pendingApprovalNotifier(notice);
|
|
111093
|
+
} catch {
|
|
111094
|
+
}
|
|
111095
|
+
return notice;
|
|
111096
|
+
}
|
|
110825
111097
|
async function onAuthorizationApproved(data) {
|
|
110826
111098
|
try {
|
|
110827
111099
|
console.error("\u2705 Authorization approved!");
|
|
@@ -111125,7 +111397,9 @@ server.tool(
|
|
|
111125
111397
|
currentCredentials.eoaAddress
|
|
111126
111398
|
);
|
|
111127
111399
|
currentCredentials.authorizationStatus = "pending";
|
|
111400
|
+
currentCredentials.pendingWalletId = result.id ? String(result.id) : void 0;
|
|
111128
111401
|
console.error(`\u2705 [requestAccess] Authorization request sent for ${result.signerAddress}`);
|
|
111402
|
+
await emitPendingApprovalNotice();
|
|
111129
111403
|
const approved = await autoWaitForApproval();
|
|
111130
111404
|
if (approved) {
|
|
111131
111405
|
return {
|
|
@@ -111314,9 +111588,10 @@ server.tool(
|
|
|
111314
111588
|
if (budget) result.policyBudget = budget;
|
|
111315
111589
|
}
|
|
111316
111590
|
let txRecords = transactionsCache;
|
|
111317
|
-
|
|
111591
|
+
const financialJwt = currentCredentials.jwtToken;
|
|
111592
|
+
if (financialJwt) {
|
|
111318
111593
|
try {
|
|
111319
|
-
txRecords = await fetchTransactionsFromBackend(
|
|
111594
|
+
txRecords = await fetchTransactionsFromBackend(financialJwt, true);
|
|
111320
111595
|
} catch (txErr) {
|
|
111321
111596
|
console.error("\u26A0\uFE0F [getWalletStatus] Transactions read failed \u2014 using cached list:", txErr instanceof Error ? txErr.message : String(txErr));
|
|
111322
111597
|
}
|
|
@@ -111324,11 +111599,10 @@ server.tool(
|
|
|
111324
111599
|
if (txRecords) {
|
|
111325
111600
|
result.recentTransactions = formatRecentTransactions(txRecords, 10);
|
|
111326
111601
|
result.totalTransactions = txRecords.length;
|
|
111327
|
-
|
|
111328
|
-
|
|
111329
|
-
|
|
111330
|
-
|
|
111331
|
-
result.transactionsMessage = "Transaction history is temporarily unavailable (backend read failed) \u2014 the wallet status above is still current.";
|
|
111602
|
+
}
|
|
111603
|
+
const transactionsMessage = resolveTransactionsMessage(txRecords, Boolean(financialJwt));
|
|
111604
|
+
if (transactionsMessage) {
|
|
111605
|
+
result.transactionsMessage = transactionsMessage;
|
|
111332
111606
|
}
|
|
111333
111607
|
if (allowlistCache) {
|
|
111334
111608
|
result.allowlist = allowlistCache;
|
|
@@ -111435,13 +111709,13 @@ server.tool(
|
|
|
111435
111709
|
server.tool(
|
|
111436
111710
|
{
|
|
111437
111711
|
name: "share_design_partner_session",
|
|
111438
|
-
description: "Share the current session with the Ametyst team as design-partner feedback: a
|
|
111712
|
+
description: "Share the current session with the Ametyst team as design-partner feedback: a concise summary you generate PLUS this session's MCP tool-trace (auto-attached server-side). Use when the user authorizes sharing feedback, hit a snag, or wants to send feedback about their experience. ONE STEP \u2014 when the user authorizes the share, WRITE a concise summary of the session yourself (goal + a short summary of what happened) and call this tool ONCE to post it immediately: there is no second confirmation step and the user does not need to type anything. The user's authorization IS the consent. PRIVACY: this shares the goal/summary you provide plus the session's tool-trace (the list of MCP tool calls made this session) with Ametyst \u2014 only share when the user has authorized it.",
|
|
111439
111713
|
inputs: [
|
|
111440
111714
|
{
|
|
111441
111715
|
name: "goal",
|
|
111442
111716
|
type: "string",
|
|
111443
|
-
required:
|
|
111444
|
-
description: "What the design partner was trying to do (the
|
|
111717
|
+
required: false,
|
|
111718
|
+
description: "What the design partner was trying to do \u2014 you (the agent) write this from the session; the user need not type it."
|
|
111445
111719
|
},
|
|
111446
111720
|
{
|
|
111447
111721
|
name: "where_stuck",
|
|
@@ -111453,13 +111727,7 @@ server.tool(
|
|
|
111453
111727
|
name: "summary",
|
|
111454
111728
|
type: "string",
|
|
111455
111729
|
required: false,
|
|
111456
|
-
description: "
|
|
111457
|
-
},
|
|
111458
|
-
{
|
|
111459
|
-
name: "confirmed",
|
|
111460
|
-
type: "boolean",
|
|
111461
|
-
required: false,
|
|
111462
|
-
description: "Must be true to actually share. Leave false/unset on the first call \u2014 the tool halts and asks you to get the user's explicit consent first, then call again with confirmed: true."
|
|
111730
|
+
description: "A concise summary of the session / feedback that you (the agent) generate. Optional but recommended."
|
|
111463
111731
|
}
|
|
111464
111732
|
]
|
|
111465
111733
|
},
|
|
@@ -111468,57 +111736,16 @@ server.tool(
|
|
|
111468
111736
|
const goal = typeof params.goal === "string" ? params.goal.trim() : "";
|
|
111469
111737
|
const where_stuck = typeof params.where_stuck === "string" && params.where_stuck.trim() ? params.where_stuck.trim() : void 0;
|
|
111470
111738
|
const summary = typeof params.summary === "string" && params.summary.trim() ? params.summary.trim() : void 0;
|
|
111471
|
-
const confirmed = params.confirmed === true;
|
|
111472
|
-
if (!confirmed) {
|
|
111473
|
-
return {
|
|
111474
|
-
content: [
|
|
111475
|
-
{
|
|
111476
|
-
type: "text",
|
|
111477
|
-
text: JSON.stringify({
|
|
111478
|
-
success: true,
|
|
111479
|
-
awaiting_consent: true,
|
|
111480
|
-
will_share: {
|
|
111481
|
-
goal: goal || void 0,
|
|
111482
|
-
where_stuck,
|
|
111483
|
-
summary,
|
|
111484
|
-
tool_trace: "This session's MCP tool-trace will be attached automatically."
|
|
111485
|
-
},
|
|
111486
|
-
guidance: {
|
|
111487
|
-
say_to_user: "Before I share this with the Ametyst team, here's exactly what will be sent \u2014 the goal, where you got stuck, and the summary above, PLUS this session's tool-trace (the list of MCP tool calls made this session). Is it OK to share this with Ametyst?",
|
|
111488
|
-
next_action: "Show the user the will_share fields verbatim, get their explicit yes, then call share_design_partner_session AGAIN with the same fields plus confirmed: true. Do not fabricate consent.",
|
|
111489
|
-
stop: true
|
|
111490
|
-
}
|
|
111491
|
-
})
|
|
111492
|
-
}
|
|
111493
|
-
]
|
|
111494
|
-
};
|
|
111495
|
-
}
|
|
111496
111739
|
if (!currentCredentials.apiKey) {
|
|
111497
111740
|
return {
|
|
111498
111741
|
content: [{ type: "text", text: JSON.stringify({ success: false, error: "No API key configured." }) }]
|
|
111499
111742
|
};
|
|
111500
111743
|
}
|
|
111501
|
-
|
|
111502
|
-
return {
|
|
111503
|
-
content: [
|
|
111504
|
-
{
|
|
111505
|
-
type: "text",
|
|
111506
|
-
text: JSON.stringify({
|
|
111507
|
-
success: false,
|
|
111508
|
-
error: "goal_required",
|
|
111509
|
-
guidance: {
|
|
111510
|
-
say_to_user: "I need to know what you were trying to do before I can share this.",
|
|
111511
|
-
next_action: "Ask the user for the goal, then call share_design_partner_session again with confirmed: true."
|
|
111512
|
-
}
|
|
111513
|
-
})
|
|
111514
|
-
}
|
|
111515
|
-
]
|
|
111516
|
-
};
|
|
111517
|
-
}
|
|
111744
|
+
const effectiveGoal = goal || summary || "Design-partner session feedback";
|
|
111518
111745
|
const { mcp } = await getSDK();
|
|
111519
111746
|
const res = await mcp.shareSession(currentCredentials.apiKey, {
|
|
111520
111747
|
sessionId,
|
|
111521
|
-
goal,
|
|
111748
|
+
goal: effectiveGoal,
|
|
111522
111749
|
whereStuck: where_stuck,
|
|
111523
111750
|
summary
|
|
111524
111751
|
});
|
|
@@ -112065,8 +112292,10 @@ server.tool(
|
|
|
112065
112292
|
} catch {
|
|
112066
112293
|
}
|
|
112067
112294
|
}
|
|
112068
|
-
const approvedWallet =
|
|
112069
|
-
|
|
112295
|
+
const approvedWallet = findCurrentApprovedWallet(
|
|
112296
|
+
wallets,
|
|
112297
|
+
currentCredentials.eoaAddress,
|
|
112298
|
+
currentCredentials.pendingWalletId
|
|
112070
112299
|
);
|
|
112071
112300
|
if (approvedWallet && currentCredentials.authorizationStatus !== "approved") {
|
|
112072
112301
|
currentCredentials.walletAddress = approvedWallet.walletAddress || approvedWallet.kernelAccountAddress;
|
|
@@ -112905,7 +113134,7 @@ async function startMCPServer(walletKeystoreJson, eoaAddress, config, versionNot
|
|
|
112905
113134
|
|
|
112906
113135
|
// src/version.ts
|
|
112907
113136
|
init_esm_shims();
|
|
112908
|
-
var CLI_VERSION = true ? "0.2.
|
|
113137
|
+
var CLI_VERSION = true ? "0.2.43" : "0.0.0-dev";
|
|
112909
113138
|
|
|
112910
113139
|
// src/version-check.ts
|
|
112911
113140
|
init_esm_shims();
|
|
@@ -113246,7 +113475,7 @@ async function statusCommand() {
|
|
|
113246
113475
|
console.log("Not initialized");
|
|
113247
113476
|
return;
|
|
113248
113477
|
}
|
|
113249
|
-
const walletJson =
|
|
113478
|
+
const walletJson = loadVault();
|
|
113250
113479
|
if (!walletJson) {
|
|
113251
113480
|
console.log("No wallet");
|
|
113252
113481
|
} else {
|
|
@@ -113319,7 +113548,7 @@ When you finish cleanly (VISION met / queue drained), write "status: done" and "
|
|
|
113319
113548
|
|
|
113320
113549
|
// src/loops/run.ts
|
|
113321
113550
|
init_esm_shims();
|
|
113322
|
-
import { spawn } from "child_process";
|
|
113551
|
+
import { spawn as spawn2 } from "child_process";
|
|
113323
113552
|
import { existsSync as existsSync6, readFileSync as readFileSync7, rmSync as rmSync2, writeFileSync as writeFileSync7 } from "fs";
|
|
113324
113553
|
import { join as join6 } from "path";
|
|
113325
113554
|
function killTree(pid) {
|
|
@@ -113357,7 +113586,7 @@ blast_radius: steps=${est.steps} paid=${est.paidSteps} estEur=${est.estCostEur ?
|
|
|
113357
113586
|
),
|
|
113358
113587
|
{ mode: 384 }
|
|
113359
113588
|
);
|
|
113360
|
-
const child =
|
|
113589
|
+
const child = spawn2(launch.cmd, launch.args, { cwd: launch.cwd, stdio: "inherit", detached: true });
|
|
113361
113590
|
const onSignal = () => {
|
|
113362
113591
|
if (child.pid) killTree(child.pid);
|
|
113363
113592
|
process.exit(130);
|
|
@@ -113623,7 +113852,7 @@ init_esm_shims();
|
|
|
113623
113852
|
|
|
113624
113853
|
// src/compounds/run.ts
|
|
113625
113854
|
init_esm_shims();
|
|
113626
|
-
import { spawn as
|
|
113855
|
+
import { spawn as spawn3 } from "child_process";
|
|
113627
113856
|
|
|
113628
113857
|
// src/compounds/launch.ts
|
|
113629
113858
|
init_esm_shims();
|
|
@@ -113679,7 +113908,7 @@ async function runCompound(compoundId, opts = {}) {
|
|
|
113679
113908
|
if (got.status !== "ok") throw new Error(`compound not found: ${got.error}`);
|
|
113680
113909
|
const compound = got.skill;
|
|
113681
113910
|
const launch = buildCompoundLaunchArgs(compound.markdownBody ?? "", opts, compound.slug);
|
|
113682
|
-
const child =
|
|
113911
|
+
const child = spawn3(launch.cmd, launch.args, { cwd: launch.cwd, stdio: "inherit", detached: true });
|
|
113683
113912
|
const onSignal = () => {
|
|
113684
113913
|
if (child.pid) killTree2(child.pid);
|
|
113685
113914
|
process.exit(130);
|
|
@@ -113783,70 +114012,12 @@ compoundCommand.command("schedules").description("List scheduled compounds").act
|
|
|
113783
114012
|
console.log(s.length ? s.join("\n") : "no scheduled compounds");
|
|
113784
114013
|
});
|
|
113785
114014
|
|
|
113786
|
-
// src/commands/wallet.ts
|
|
113787
|
-
init_esm_shims();
|
|
113788
|
-
var import_prompts2 = __toESM(require_prompts3(), 1);
|
|
113789
|
-
init_paths();
|
|
113790
|
-
init_core();
|
|
113791
|
-
async function walletImportCommand(options) {
|
|
113792
|
-
ensureDirectories();
|
|
113793
|
-
if (loadVault() && !options.force) {
|
|
113794
|
-
const { proceed } = await (0, import_prompts2.default)({
|
|
113795
|
-
type: "confirm",
|
|
113796
|
-
name: "proceed",
|
|
113797
|
-
message: "A wallet is already saved. Overwrite it with the imported key?",
|
|
113798
|
-
initial: false
|
|
113799
|
-
});
|
|
113800
|
-
if (!proceed) {
|
|
113801
|
-
console.log("Import cancelled. Existing wallet kept.");
|
|
113802
|
-
return;
|
|
113803
|
-
}
|
|
113804
|
-
}
|
|
113805
|
-
let privateKey = options.walletKey?.trim();
|
|
113806
|
-
if (!privateKey) {
|
|
113807
|
-
const res = await (0, import_prompts2.default)({
|
|
113808
|
-
type: "password",
|
|
113809
|
-
name: "privateKey",
|
|
113810
|
-
message: "Paste the session private key (0x-hex, shown once during web onboarding)"
|
|
113811
|
-
});
|
|
113812
|
-
privateKey = typeof res.privateKey === "string" ? res.privateKey.trim() : void 0;
|
|
113813
|
-
}
|
|
113814
|
-
if (!privateKey) {
|
|
113815
|
-
console.error("A private key is required. Nothing imported.");
|
|
113816
|
-
process.exit(1);
|
|
113817
|
-
}
|
|
113818
|
-
let passphrase = options.passphrase;
|
|
113819
|
-
if (!passphrase) {
|
|
113820
|
-
const res = await (0, import_prompts2.default)({
|
|
113821
|
-
type: "password",
|
|
113822
|
-
name: "passphrase",
|
|
113823
|
-
message: "Choose a passphrase to encrypt the key locally"
|
|
113824
|
-
});
|
|
113825
|
-
passphrase = typeof res.passphrase === "string" ? res.passphrase : void 0;
|
|
113826
|
-
}
|
|
113827
|
-
if (!passphrase) {
|
|
113828
|
-
console.error("A passphrase is required. Nothing imported.");
|
|
113829
|
-
process.exit(1);
|
|
113830
|
-
}
|
|
113831
|
-
let keystoreJson;
|
|
113832
|
-
try {
|
|
113833
|
-
keystoreJson = importWallet(privateKey, passphrase);
|
|
113834
|
-
} catch (e) {
|
|
113835
|
-
const msg = e instanceof Error ? e.message : String(e);
|
|
113836
|
-
console.error(`Import failed: ${msg}`);
|
|
113837
|
-
process.exit(1);
|
|
113838
|
-
}
|
|
113839
|
-
persistVault(keystoreJson);
|
|
113840
|
-
const address = getWalletAddress(keystoreJson);
|
|
113841
|
-
console.log(`Wallet imported and encrypted locally. Address: ${address}`);
|
|
113842
|
-
console.log("The key stays on this machine \u2014 Ametyst never receives it. Run 'claude' to start; unlock with your passphrase on first spend.");
|
|
113843
|
-
}
|
|
113844
|
-
var walletCommand = new Command("wallet").description("Manage the local Ametyst wallet keystore");
|
|
113845
|
-
walletCommand.command("import").description("Import a pasted session private key into the local passphrase-encrypted keystore (non-custodial)").option("--wallet-key <key>", "Raw session private key (0x-hex). Omit to be prompted (masked).").option("--passphrase <passphrase>", "Passphrase to encrypt the key locally. Omit to be prompted (masked).").option("--force", "Overwrite an existing saved wallet without confirmation").action(walletImportCommand);
|
|
113846
|
-
|
|
113847
114015
|
// src/index.ts
|
|
113848
114016
|
var program2 = new Command();
|
|
113849
114017
|
program2.name("ametyst").description("Ametyst CLI \u2014 local wallet + MCP server for agents").version(CLI_VERSION);
|
|
114018
|
+
program2.command("init").description(
|
|
114019
|
+
"One-command onboarding: log in, import your pre-approved session key, and launch Claude Code with the embedded Ametyst onboarding script"
|
|
114020
|
+
).option("--force", "Overwrite an existing saved wallet without confirmation").action(initCommand);
|
|
113850
114021
|
program2.command("login").description("Validate API key, store it securely, and register Ametyst MCP in Claude Code").option("--api-key <key>", "API key from /join page").action(loginCommand);
|
|
113851
114022
|
program2.command("logout").description("Remove the Ametyst credential and MCP entry from Claude Code").action(logoutCommand);
|
|
113852
114023
|
program2.command("serve").description("Start the MCP server").action(serveCommand);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ametyst/cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.43",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Ametyst CLI — embedded MCP server, wallet ops, agent payments",
|
|
6
6
|
"type": "module",
|
|
@@ -37,14 +37,14 @@
|
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@ametyst-dev/sdk-prod": "^0.8.
|
|
40
|
+
"@ametyst-dev/sdk-prod": "^0.8.34",
|
|
41
41
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
42
42
|
"@napi-rs/keyring": "1.1.7",
|
|
43
43
|
"mcp-use": "1.24.2"
|
|
44
44
|
},
|
|
45
45
|
"_comment_optionalDependencies": "Injected at publish-time by publish-staging.yml / publish-prod.yml via `npm pkg set` with the version being published. Not committed here so pnpm install (locally + CI) doesn't try to resolve sub-package versions that may not exist on the registry between releases.",
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@ametyst-dev/sdk-prod": "^0.8.
|
|
47
|
+
"@ametyst-dev/sdk-prod": "^0.8.34",
|
|
48
48
|
"@napi-rs/cli": "2.18.4",
|
|
49
49
|
"@types/node": "20.19.39",
|
|
50
50
|
"@types/prompts": "2.4.9",
|
|
@@ -78,10 +78,10 @@
|
|
|
78
78
|
"esbuild@>=0.27.3 <0.28.1": "0.28.1"
|
|
79
79
|
},
|
|
80
80
|
"optionalDependencies": {
|
|
81
|
-
"@ametyst/cli-darwin-arm64": "0.2.
|
|
82
|
-
"@ametyst/cli-darwin-x64": "0.2.
|
|
83
|
-
"@ametyst/cli-linux-x64-gnu": "0.2.
|
|
84
|
-
"@ametyst/cli-win32-x64-msvc": "0.2.
|
|
81
|
+
"@ametyst/cli-darwin-arm64": "0.2.43",
|
|
82
|
+
"@ametyst/cli-darwin-x64": "0.2.43",
|
|
83
|
+
"@ametyst/cli-linux-x64-gnu": "0.2.43",
|
|
84
|
+
"@ametyst/cli-win32-x64-msvc": "0.2.43"
|
|
85
85
|
},
|
|
86
86
|
"scripts": {
|
|
87
87
|
"build:native": "cd native && cargo build --release && napi build --release",
|