visionclaw 0.1.182 → 0.1.183-beta.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/assets/visionclaw_pricing.jpeg +0 -0
- package/dist/agent/heartbeat-manager.d.ts.map +1 -1
- package/dist/agent/heartbeat-manager.js +6 -3
- package/dist/agent/heartbeat-manager.js.map +1 -1
- package/dist/billing/billing-handler.d.ts +26 -35
- package/dist/billing/billing-handler.d.ts.map +1 -1
- package/dist/billing/billing-handler.js +91 -87
- package/dist/billing/billing-handler.js.map +1 -1
- package/dist/billing/types.d.ts +22 -6
- package/dist/billing/types.d.ts.map +1 -1
- package/dist/billing/types.js +8 -1
- package/dist/billing/types.js.map +1 -1
- package/dist/channels/interface.d.ts +9 -0
- package/dist/channels/interface.d.ts.map +1 -1
- package/dist/channels/manager.d.ts +5 -1
- package/dist/channels/manager.d.ts.map +1 -1
- package/dist/channels/manager.js +13 -0
- package/dist/channels/manager.js.map +1 -1
- package/dist/channels/telegram.d.ts +12 -6
- package/dist/channels/telegram.d.ts.map +1 -1
- package/dist/channels/telegram.js +58 -7
- package/dist/channels/telegram.js.map +1 -1
- package/dist/onboarding/onboarding-service-client.d.ts +7 -0
- package/dist/onboarding/onboarding-service-client.d.ts.map +1 -1
- package/dist/onboarding/onboarding-service-client.js +29 -0
- package/dist/onboarding/onboarding-service-client.js.map +1 -1
- package/dist-agent/bundle.cjs +237 -91
- package/package.json +2 -2
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat-manager.d.ts","sourceRoot":"","sources":["../../src/agent/heartbeat-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAEL,KAAK,oBAAoB,EAEzB,KAAK,kBAAkB,EACxB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAwB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AA+CnF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAwC;IACtD,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,uBAAuB,CAA8B;IAC7D,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,mBAAmB,CAAqB;gBAEpC,MAAM,EAAE,gBAAgB;IAQpC;;;;OAIG;IACG,IAAI,CACR,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,YAAY,EAAE,kBAAkB,GAAG,IAAI,GACtC,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"heartbeat-manager.d.ts","sourceRoot":"","sources":["../../src/agent/heartbeat-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAEL,KAAK,oBAAoB,EAEzB,KAAK,kBAAkB,EACxB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAwB,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AA+CnF,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAwC;IACtD,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,uBAAuB,CAA8B;IAC7D,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,mBAAmB,CAAqB;gBAEpC,MAAM,EAAE,gBAAgB;IAQpC;;;;OAIG;IACG,IAAI,CACR,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,MAAM,GAAG,SAAS,EAClC,YAAY,EAAE,kBAAkB,GAAG,IAAI,GACtC,OAAO,CAAC,IAAI,CAAC;IAiFhB,4CAA4C;IAC5C,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,uEAAuE;IACvE,IAAI,sBAAsB,IAAI,kBAAkB,CAE/C;IAED,sFAAsF;IACtF,IAAI,gBAAgB,IAAI,oBAAoB,EAAE,CAE7C;IAED,wFAAwF;IACxF,IAAI,kBAAkB,IAAI,MAAM,GAAG,SAAS,CAE3C;IAED;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC;QAChC,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;QAChC,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,IAAI,CAAC;IAKT;;;OAGG;IACG,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAqC1C;;;OAGG;IACG,4BAA4B,IAAI,OAAO,CAAC,kBAAkB,CAAC;IA2BjE;;;OAGG;IACH,iBAAiB,IAAI,IAAI;IAkBzB;;;OAGG;IACH,gBAAgB,IAAI,IAAI;CAmBzB"}
|
|
@@ -12,7 +12,7 @@ import { isOnboardingComplete } from "../config/index.js";
|
|
|
12
12
|
import { createCollectDataHandler } from "./data-collector.js";
|
|
13
13
|
import { createUpgradeHandler } from "./upgrade-handler.js";
|
|
14
14
|
import { createUsageHandler } from "./usage-handler.js";
|
|
15
|
-
import {
|
|
15
|
+
import { BillingHandler } from "../billing/billing-handler.js";
|
|
16
16
|
import { setSharedGeminiApiKey } from "../gemini-credentials.js";
|
|
17
17
|
import { setSharedPhonecallApiKey } from "../phonecall-credentials.js";
|
|
18
18
|
import { setSharedTosCredentials } from "../tos-credentials.js";
|
|
@@ -85,9 +85,12 @@ export class HeartbeatManager {
|
|
|
85
85
|
busy: false,
|
|
86
86
|
onboardingComplete: isOnboardingComplete(),
|
|
87
87
|
};
|
|
88
|
-
// Register
|
|
88
|
+
// Register billing handler for bundle purchases.
|
|
89
|
+
// Subscription payment is handled by the subscription gate (subscription-gate.ts),
|
|
90
|
+
// not via a command — the gate reads plans from the heartbeat response directly.
|
|
89
91
|
if (telegramChatId) {
|
|
90
|
-
|
|
92
|
+
const billing = new BillingHandler(channelManager, telegramChatId, this.client);
|
|
93
|
+
this.commandDispatcher.registerHandler("bundle_purchase", billing.handleBundlePurchase);
|
|
91
94
|
}
|
|
92
95
|
try {
|
|
93
96
|
const startupResp = await this.client.heartbeatStrict(startupPayload);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat-manager.js","sourceRoot":"","sources":["../../src/agent/heartbeat-manager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EACL,uBAAuB,GAIxB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAA2B,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"heartbeat-manager.js","sourceRoot":"","sources":["../../src/agent/heartbeat-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,59 +1,50 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* pay-as-you-go (`request_payment`) heartbeat commands.
|
|
2
|
+
* Billing handler for bundle purchases and subscription plan selection.
|
|
4
3
|
*
|
|
5
4
|
* This is deterministic bot code — the LLM agent is never involved in
|
|
6
|
-
* payment flows. The handler:
|
|
5
|
+
* payment flows. The handler manages:
|
|
7
6
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
7
|
+
* **Bundle flow** (`bundle_purchase` command):
|
|
8
|
+
* 1. Admin dispatches bundle_purchase via heartbeat command
|
|
9
|
+
* 2. Sends an amount selection prompt (inline keyboard) to the owner
|
|
10
|
+
* 3. Listens for `billing_bundle_selected` events from Telegram
|
|
11
|
+
* 4. Creates a one-time Stripe Checkout Session via the backend
|
|
12
|
+
* 5. Sends the checkout URL to the owner
|
|
13
|
+
*
|
|
14
|
+
* **Subscription plan selection** (triggered by subscription gate, not a command):
|
|
15
|
+
* The subscription gate sends the plan keyboard directly when the subscription
|
|
16
|
+
* expires. This handler listens for `billing_plan_selected` events and creates
|
|
17
|
+
* the corresponding Stripe Checkout Session.
|
|
13
18
|
*/
|
|
14
19
|
import type { CommandHandler } from "../agent/command-dispatcher.js";
|
|
15
20
|
import type { ChannelManager } from "../channels/manager.js";
|
|
16
|
-
import type { BillingPlanSelectedEvent, BillingPaygSelectedEvent } from "../channels/interface.js";
|
|
17
21
|
import type { OnboardingServiceClient } from "../onboarding/onboarding-service-client.js";
|
|
18
22
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* (in HeartbeatManager) to avoid duplicate registrations.
|
|
23
|
+
* Billing handler for bundle purchases and subscription plan selection.
|
|
24
|
+
* Instantiated once at startup; event listeners are wired in the constructor.
|
|
22
25
|
*/
|
|
23
26
|
export declare class BillingHandler {
|
|
24
27
|
private readonly channelManager;
|
|
25
28
|
private readonly ownerChatId;
|
|
26
|
-
private
|
|
29
|
+
private serviceClient;
|
|
27
30
|
constructor(channelManager: ChannelManager, ownerChatId: number, serviceClient: OnboardingServiceClient | null);
|
|
28
31
|
/**
|
|
29
|
-
*
|
|
30
|
-
* Parses the payload and sends a plan selection prompt.
|
|
31
|
-
*/
|
|
32
|
-
readonly handlePaymentRequired: CommandHandler;
|
|
33
|
-
/**
|
|
34
|
-
* Handle a `billing_plan_selected` event (user tapped a plan button).
|
|
35
|
-
* Creates a Stripe Checkout Session and sends the link.
|
|
36
|
-
*/
|
|
37
|
-
handlePlanSelected(event: BillingPlanSelectedEvent): Promise<void>;
|
|
38
|
-
/**
|
|
39
|
-
* CommandHandler for the `request_payment` heartbeat command.
|
|
40
|
-
* Parses the payload and sends an amount selection prompt.
|
|
32
|
+
* Update the service client reference (e.g. after the client is lazily created).
|
|
41
33
|
*/
|
|
42
|
-
|
|
34
|
+
setServiceClient(client: OnboardingServiceClient): void;
|
|
43
35
|
/**
|
|
44
|
-
*
|
|
45
|
-
*
|
|
36
|
+
* Called when the owner selects a subscription plan from the inline keyboard.
|
|
37
|
+
* The keyboard is sent by the subscription gate (subscription-gate.ts),
|
|
38
|
+
* not by a command handler.
|
|
46
39
|
*/
|
|
47
|
-
|
|
40
|
+
private handlePlanSelected;
|
|
48
41
|
/**
|
|
49
|
-
*
|
|
50
|
-
* a command result.
|
|
42
|
+
* CommandHandler for `bundle_purchase`: sends amount picker to the owner.
|
|
51
43
|
*/
|
|
52
|
-
|
|
44
|
+
handleBundlePurchase: CommandHandler;
|
|
53
45
|
/**
|
|
54
|
-
*
|
|
55
|
-
* the resulting URL to the owner via Telegram.
|
|
46
|
+
* Called when the owner selects a bundle amount from the inline keyboard.
|
|
56
47
|
*/
|
|
57
|
-
private
|
|
48
|
+
private handleBundleSelected;
|
|
58
49
|
}
|
|
59
50
|
//# sourceMappingURL=billing-handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing-handler.d.ts","sourceRoot":"","sources":["../../src/billing/billing-handler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"billing-handler.d.ts","sourceRoot":"","sources":["../../src/billing/billing-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAW1F;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,aAAa,CAAiC;gBAGpD,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,uBAAuB,GAAG,IAAI;IAiB/C;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;IAMvD;;;;OAIG;YACW,kBAAkB;IA4DhC;;OAEG;IACH,oBAAoB,EAAE,cAAc,CAmClC;IAEF;;OAEG;YACW,oBAAoB;CAyDnC"}
|
|
@@ -1,26 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* pay-as-you-go (`request_payment`) heartbeat commands.
|
|
2
|
+
* Billing handler for bundle purchases and subscription plan selection.
|
|
4
3
|
*
|
|
5
4
|
* This is deterministic bot code — the LLM agent is never involved in
|
|
6
|
-
* payment flows. The handler:
|
|
5
|
+
* payment flows. The handler manages:
|
|
7
6
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
7
|
+
* **Bundle flow** (`bundle_purchase` command):
|
|
8
|
+
* 1. Admin dispatches bundle_purchase via heartbeat command
|
|
9
|
+
* 2. Sends an amount selection prompt (inline keyboard) to the owner
|
|
10
|
+
* 3. Listens for `billing_bundle_selected` events from Telegram
|
|
11
|
+
* 4. Creates a one-time Stripe Checkout Session via the backend
|
|
12
|
+
* 5. Sends the checkout URL to the owner
|
|
13
|
+
*
|
|
14
|
+
* **Subscription plan selection** (triggered by subscription gate, not a command):
|
|
15
|
+
* The subscription gate sends the plan keyboard directly when the subscription
|
|
16
|
+
* expires. This handler listens for `billing_plan_selected` events and creates
|
|
17
|
+
* the corresponding Stripe Checkout Session.
|
|
13
18
|
*/
|
|
19
|
+
import { BUNDLE_ALLOWED_AMOUNTS } from "./types.js";
|
|
14
20
|
import { logger } from "../logger.js";
|
|
15
|
-
const
|
|
21
|
+
const MAX_CHECKOUT_RETRIES = 2;
|
|
16
22
|
const RETRY_DELAY_MS = 2_000;
|
|
17
23
|
function sleep(ms) {
|
|
18
24
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
19
25
|
}
|
|
20
26
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* (in HeartbeatManager) to avoid duplicate registrations.
|
|
27
|
+
* Billing handler for bundle purchases and subscription plan selection.
|
|
28
|
+
* Instantiated once at startup; event listeners are wired in the constructor.
|
|
24
29
|
*/
|
|
25
30
|
export class BillingHandler {
|
|
26
31
|
channelManager;
|
|
@@ -30,125 +35,124 @@ export class BillingHandler {
|
|
|
30
35
|
this.channelManager = channelManager;
|
|
31
36
|
this.ownerChatId = ownerChatId;
|
|
32
37
|
this.serviceClient = serviceClient;
|
|
38
|
+
// Wire up event listeners once at construction time.
|
|
39
|
+
// billing_plan_selected: fired when the owner taps a plan in the subscription
|
|
40
|
+
// gate keyboard (subscription-gate.ts sends the prompt, we handle the response).
|
|
41
|
+
channelManager.on("billing_plan_selected", (event) => {
|
|
42
|
+
void this.handlePlanSelected(event);
|
|
43
|
+
});
|
|
44
|
+
channelManager.on("billing_bundle_selected", (event) => {
|
|
45
|
+
void this.handleBundleSelected(event);
|
|
46
|
+
});
|
|
33
47
|
}
|
|
34
|
-
// ── Subscription flow ──────────────────────────────────────────────
|
|
35
48
|
/**
|
|
36
|
-
*
|
|
37
|
-
* Parses the payload and sends a plan selection prompt.
|
|
49
|
+
* Update the service client reference (e.g. after the client is lazily created).
|
|
38
50
|
*/
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
: [];
|
|
44
|
-
if (plans.length === 0) {
|
|
45
|
-
logger.warn("[billing] payment_required received with no plans");
|
|
46
|
-
return {
|
|
47
|
-
status: "failed",
|
|
48
|
-
result: JSON.stringify({ error: "No plans in payload" }),
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
const typedPayload = {
|
|
52
|
-
message: typeof raw.message === "string" ? raw.message : undefined,
|
|
53
|
-
plans,
|
|
54
|
-
};
|
|
55
|
-
logger.system(`[billing] Payment required received with ${typedPayload.plans.length} plan(s)`);
|
|
56
|
-
return this.sendPrompt(() => this.channelManager.sendTelegramPaymentPrompt(this.ownerChatId, typedPayload), "billing");
|
|
57
|
-
};
|
|
51
|
+
setServiceClient(client) {
|
|
52
|
+
this.serviceClient = client;
|
|
53
|
+
}
|
|
54
|
+
// ── Subscription plan selection (triggered by subscription gate) ──────
|
|
58
55
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
56
|
+
* Called when the owner selects a subscription plan from the inline keyboard.
|
|
57
|
+
* The keyboard is sent by the subscription gate (subscription-gate.ts),
|
|
58
|
+
* not by a command handler.
|
|
61
59
|
*/
|
|
62
60
|
async handlePlanSelected(event) {
|
|
63
|
-
|
|
61
|
+
if (!this.serviceClient) {
|
|
62
|
+
logger.warn("[billing] No service client — cannot create checkout session");
|
|
63
|
+
await this.channelManager.sendMessage("telegram", String(event.chatId), "Payment is not configured. Please contact support.");
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
logger.system(`[billing] Plan selected: ${event.planId} by chat ${event.chatId}`);
|
|
67
|
+
for (let attempt = 0; attempt <= MAX_CHECKOUT_RETRIES; attempt++) {
|
|
68
|
+
try {
|
|
69
|
+
const result = await this.serviceClient.createCheckoutSession(event.planId, event.chatId);
|
|
70
|
+
if (result?.checkoutUrl) {
|
|
71
|
+
await this.channelManager.sendTelegramCheckoutLink(event.chatId, event.planName, result.checkoutUrl);
|
|
72
|
+
logger.system(`[billing] Checkout URL sent to chat ${event.chatId} for plan ${event.planId}`);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (attempt < MAX_CHECKOUT_RETRIES) {
|
|
76
|
+
logger.warn(`[billing] Checkout session attempt ${attempt + 1} failed, retrying...`);
|
|
77
|
+
await this.channelManager.sendMessage("telegram", String(event.chatId), "Payment setup failed, retrying...");
|
|
78
|
+
await sleep(RETRY_DELAY_MS);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
const errMsg = err instanceof Error ? err.message : String(err);
|
|
83
|
+
logger.err(`[billing] Checkout session attempt ${attempt + 1} error: ${errMsg}`);
|
|
84
|
+
if (attempt < MAX_CHECKOUT_RETRIES) {
|
|
85
|
+
await sleep(RETRY_DELAY_MS);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
logger.err("[billing] All checkout session attempts failed");
|
|
90
|
+
await this.channelManager.sendMessage("telegram", String(event.chatId), "Payment setup failed. Please try again later.");
|
|
64
91
|
}
|
|
65
|
-
// ──
|
|
92
|
+
// ── Bundle flow ──────────────────────────────────────────────────────
|
|
66
93
|
/**
|
|
67
|
-
* CommandHandler for
|
|
68
|
-
* Parses the payload and sends an amount selection prompt.
|
|
94
|
+
* CommandHandler for `bundle_purchase`: sends amount picker to the owner.
|
|
69
95
|
*/
|
|
70
|
-
|
|
96
|
+
handleBundlePurchase = async (_commandId, payload) => {
|
|
71
97
|
const raw = (payload ?? {});
|
|
72
|
-
const amounts = Array.isArray(raw.amounts)
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
return {
|
|
76
|
-
status: "failed",
|
|
77
|
-
result: JSON.stringify({ error: "No amounts in payload" }),
|
|
78
|
-
};
|
|
79
|
-
}
|
|
98
|
+
const amounts = Array.isArray(raw.amounts)
|
|
99
|
+
? raw.amounts
|
|
100
|
+
: [...BUNDLE_ALLOWED_AMOUNTS];
|
|
80
101
|
const typedPayload = {
|
|
81
102
|
reason: typeof raw.reason === "string" ? raw.reason : undefined,
|
|
82
103
|
amounts,
|
|
83
104
|
};
|
|
84
|
-
logger.system(`[
|
|
85
|
-
return this.sendPrompt(() => this.channelManager.sendTelegramPaygPrompt(this.ownerChatId, typedPayload), "payg");
|
|
86
|
-
};
|
|
87
|
-
/**
|
|
88
|
-
* Handle a `billing_payg_selected` event (user tapped an amount button).
|
|
89
|
-
* Creates a one-time Stripe Payment Link and sends the URL.
|
|
90
|
-
*/
|
|
91
|
-
async handlePaygSelected(event) {
|
|
92
|
-
await this.createAndSendLink(event.chatId, "payg", `$${event.amount} Top-Up`, (client) => client.createPaymentLink(event.amount, event.chatId));
|
|
93
|
-
}
|
|
94
|
-
// ── Shared helpers ─────────────────────────────────────────────────
|
|
95
|
-
/**
|
|
96
|
-
* Send a Telegram prompt (plan picker or amount picker) and return
|
|
97
|
-
* a command result.
|
|
98
|
-
*/
|
|
99
|
-
async sendPrompt(send, tag) {
|
|
105
|
+
logger.system(`[billing] Bundle purchase command received with ${typedPayload.amounts.length} amount(s)`);
|
|
100
106
|
try {
|
|
101
|
-
await
|
|
107
|
+
await this.channelManager.sendTelegramBundlePrompt(this.ownerChatId, typedPayload);
|
|
102
108
|
return {
|
|
103
109
|
status: "completed",
|
|
104
|
-
result: JSON.stringify({ message:
|
|
110
|
+
result: JSON.stringify({ message: "Bundle prompt sent to owner" }),
|
|
105
111
|
};
|
|
106
112
|
}
|
|
107
113
|
catch (err) {
|
|
108
114
|
const errMsg = err instanceof Error ? err.message : String(err);
|
|
109
|
-
logger.err(`[
|
|
115
|
+
logger.err(`[billing] Failed to send bundle prompt: ${errMsg}`);
|
|
110
116
|
return {
|
|
111
117
|
status: "failed",
|
|
112
118
|
result: JSON.stringify({ error: errMsg }),
|
|
113
119
|
};
|
|
114
120
|
}
|
|
115
|
-
}
|
|
121
|
+
};
|
|
116
122
|
/**
|
|
117
|
-
*
|
|
118
|
-
* the resulting URL to the owner via Telegram.
|
|
123
|
+
* Called when the owner selects a bundle amount from the inline keyboard.
|
|
119
124
|
*/
|
|
120
|
-
async
|
|
125
|
+
async handleBundleSelected(event) {
|
|
121
126
|
if (!this.serviceClient) {
|
|
122
|
-
logger.warn(
|
|
123
|
-
await this.channelManager.sendMessage("telegram", String(chatId), "Payment is not configured. Please contact support.");
|
|
127
|
+
logger.warn("[billing] No service client — cannot create bundle purchase");
|
|
128
|
+
await this.channelManager.sendMessage("telegram", String(event.chatId), "Payment is not configured. Please contact support.");
|
|
124
129
|
return;
|
|
125
130
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {
|
|
131
|
+
logger.system(`[billing] Bundle amount selected: $${event.amount} by chat ${event.chatId}`);
|
|
132
|
+
for (let attempt = 0; attempt <= MAX_CHECKOUT_RETRIES; attempt++) {
|
|
129
133
|
try {
|
|
130
|
-
const result = await
|
|
134
|
+
const result = await this.serviceClient.createBundlePurchase(event.amount, event.chatId);
|
|
131
135
|
if (result?.checkoutUrl) {
|
|
132
|
-
await this.channelManager.sendTelegramCheckoutLink(chatId,
|
|
133
|
-
logger.system(`[
|
|
136
|
+
await this.channelManager.sendTelegramCheckoutLink(event.chatId, `$${event.amount} Bundle Top-Up`, result.checkoutUrl);
|
|
137
|
+
logger.system(`[billing] Bundle checkout URL sent to chat ${event.chatId} for $${event.amount}`);
|
|
134
138
|
return;
|
|
135
139
|
}
|
|
136
|
-
if (attempt <
|
|
137
|
-
logger.warn(`[
|
|
138
|
-
await this.channelManager.sendMessage("telegram", String(chatId), "
|
|
140
|
+
if (attempt < MAX_CHECKOUT_RETRIES) {
|
|
141
|
+
logger.warn(`[billing] Bundle checkout attempt ${attempt + 1} failed, retrying...`);
|
|
142
|
+
await this.channelManager.sendMessage("telegram", String(event.chatId), "Bundle purchase setup failed, retrying...");
|
|
139
143
|
await sleep(RETRY_DELAY_MS);
|
|
140
144
|
}
|
|
141
145
|
}
|
|
142
146
|
catch (err) {
|
|
143
147
|
const errMsg = err instanceof Error ? err.message : String(err);
|
|
144
|
-
logger.err(`[
|
|
145
|
-
if (attempt <
|
|
148
|
+
logger.err(`[billing] Bundle checkout attempt ${attempt + 1} error: ${errMsg}`);
|
|
149
|
+
if (attempt < MAX_CHECKOUT_RETRIES) {
|
|
146
150
|
await sleep(RETRY_DELAY_MS);
|
|
147
151
|
}
|
|
148
152
|
}
|
|
149
153
|
}
|
|
150
|
-
logger.err(
|
|
151
|
-
await this.channelManager.sendMessage("telegram", String(chatId), "
|
|
154
|
+
logger.err("[billing] All bundle checkout attempts failed");
|
|
155
|
+
await this.channelManager.sendMessage("telegram", String(event.chatId), "Bundle purchase setup failed. Please try again later.");
|
|
152
156
|
}
|
|
153
157
|
}
|
|
154
158
|
//# sourceMappingURL=billing-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing-handler.js","sourceRoot":"","sources":["../../src/billing/billing-handler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"billing-handler.js","sourceRoot":"","sources":["../../src/billing/billing-handler.ts"],"names":[],"mappings":"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"}
|
package/dist/billing/types.d.ts
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* Types for the billing / payment system.
|
|
3
3
|
*
|
|
4
4
|
* Stripe Checkout Sessions for recurring subscriptions.
|
|
5
|
-
* Plans are served from the backend via the
|
|
5
|
+
* Plans are served from the backend via the heartbeat response and displayed
|
|
6
|
+
* by the subscription gate when the subscription expires.
|
|
6
7
|
*/
|
|
7
8
|
/**
|
|
8
|
-
* A plan
|
|
9
|
+
* A subscription plan served by the backend.
|
|
9
10
|
*/
|
|
10
11
|
export interface BillingPlan {
|
|
11
12
|
id: string;
|
|
@@ -15,12 +16,11 @@ export interface BillingPlan {
|
|
|
15
16
|
description: string;
|
|
16
17
|
}
|
|
17
18
|
/**
|
|
18
|
-
* Payload
|
|
19
|
-
* The backend
|
|
20
|
-
* including the available plans from the billing_plans table.
|
|
19
|
+
* Payload used by the subscription gate to display plan choices.
|
|
20
|
+
* The backend provides plan data in the heartbeat response.
|
|
21
21
|
*/
|
|
22
22
|
export interface PaymentRequiredPayload {
|
|
23
|
-
/** Optional message
|
|
23
|
+
/** Optional message to display to the user */
|
|
24
24
|
message?: string;
|
|
25
25
|
/** Available subscription plans (populated by the backend) */
|
|
26
26
|
plans: BillingPlan[];
|
|
@@ -30,4 +30,20 @@ export interface PaymentRequiredPayload {
|
|
|
30
30
|
*/
|
|
31
31
|
export declare const BILLING_CALLBACK_PREFIX = "billing:";
|
|
32
32
|
export declare const BILLING_PLAN_CALLBACK_PREFIX = "billing:plan:";
|
|
33
|
+
export declare const BILLING_BUNDLE_CALLBACK_PREFIX = "billing:bundle:";
|
|
34
|
+
/**
|
|
35
|
+
* Allowed dollar amounts for bundle (one-time top-up) purchases.
|
|
36
|
+
* Keep in sync with BUNDLE_ALLOWED_AMOUNTS in services/onboarding/src/lib/billing.ts.
|
|
37
|
+
*/
|
|
38
|
+
export declare const BUNDLE_ALLOWED_AMOUNTS: readonly number[];
|
|
39
|
+
/**
|
|
40
|
+
* Payload carried by the `bundle_purchase` heartbeat command.
|
|
41
|
+
* The admin triggers this with a list of allowed dollar amounts.
|
|
42
|
+
*/
|
|
43
|
+
export interface BundlePurchasePayload {
|
|
44
|
+
/** Reason the bundle was offered (e.g. "Admin offered bundle top-up") */
|
|
45
|
+
reason?: string;
|
|
46
|
+
/** Allowed dollar amounts the user can pick from */
|
|
47
|
+
amounts: number[];
|
|
48
|
+
}
|
|
33
49
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/billing/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/billing/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,aAAa,CAAC;AAClD,eAAO,MAAM,4BAA4B,kBAAkB,CAAC;AAC5D,eAAO,MAAM,8BAA8B,oBAAoB,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAAsB,CAAC;AAE3E;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB"}
|
package/dist/billing/types.js
CHANGED
|
@@ -2,11 +2,18 @@
|
|
|
2
2
|
* Types for the billing / payment system.
|
|
3
3
|
*
|
|
4
4
|
* Stripe Checkout Sessions for recurring subscriptions.
|
|
5
|
-
* Plans are served from the backend via the
|
|
5
|
+
* Plans are served from the backend via the heartbeat response and displayed
|
|
6
|
+
* by the subscription gate when the subscription expires.
|
|
6
7
|
*/
|
|
7
8
|
/**
|
|
8
9
|
* Callback data prefixes used in Telegram inline keyboard buttons.
|
|
9
10
|
*/
|
|
10
11
|
export const BILLING_CALLBACK_PREFIX = "billing:";
|
|
11
12
|
export const BILLING_PLAN_CALLBACK_PREFIX = "billing:plan:";
|
|
13
|
+
export const BILLING_BUNDLE_CALLBACK_PREFIX = "billing:bundle:";
|
|
14
|
+
/**
|
|
15
|
+
* Allowed dollar amounts for bundle (one-time top-up) purchases.
|
|
16
|
+
* Keep in sync with BUNDLE_ALLOWED_AMOUNTS in services/onboarding/src/lib/billing.ts.
|
|
17
|
+
*/
|
|
18
|
+
export const BUNDLE_ALLOWED_AMOUNTS = [10, 20, 50, 100];
|
|
12
19
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/billing/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/billing/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwBH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAC;AAClD,MAAM,CAAC,MAAM,4BAA4B,GAAG,eAAe,CAAC;AAC5D,MAAM,CAAC,MAAM,8BAA8B,GAAG,iBAAiB,CAAC;AAEhE;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAsB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC"}
|
|
@@ -170,6 +170,14 @@ export interface BillingPlanSelectedEvent {
|
|
|
170
170
|
planId: string;
|
|
171
171
|
planName: string;
|
|
172
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* Payload emitted when the owner selects a bundle amount via inline keyboard.
|
|
175
|
+
* The billing handler uses this to create a one-time Stripe Checkout Session.
|
|
176
|
+
*/
|
|
177
|
+
export interface BillingBundleSelectedEvent {
|
|
178
|
+
chatId: number;
|
|
179
|
+
amount: number;
|
|
180
|
+
}
|
|
173
181
|
/**
|
|
174
182
|
* Payload emitted when the owner toggles the WeChat monitor via /wechat-monitor on|off.
|
|
175
183
|
*/
|
|
@@ -201,6 +209,7 @@ export interface ChannelEvents {
|
|
|
201
209
|
android_use_request: (req: AndroidUseRequest) => void;
|
|
202
210
|
wechat_monitor_request: (req: WechatMonitorRequest) => void;
|
|
203
211
|
billing_plan_selected: (event: BillingPlanSelectedEvent) => void;
|
|
212
|
+
billing_bundle_selected: (event: BillingBundleSelectedEvent) => void;
|
|
204
213
|
error: (err: Error) => void;
|
|
205
214
|
}
|
|
206
215
|
//# sourceMappingURL=interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/channels/interface.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/channels/interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EventEmitter } from "node:events";
|
|
2
2
|
import type { VisionClawConfig } from "../config/types.js";
|
|
3
3
|
import type { ChannelAdapter, MessageAttachment, ReplyContext } from "./interface.js";
|
|
4
|
-
import type { PaymentRequiredPayload } from "../billing/types.js";
|
|
4
|
+
import type { PaymentRequiredPayload, BundlePurchasePayload } from "../billing/types.js";
|
|
5
5
|
import type { MessageQueue } from "./queue.js";
|
|
6
6
|
/**
|
|
7
7
|
* Manages all enabled channel adapters.
|
|
@@ -47,6 +47,10 @@ export declare class ChannelManager extends EventEmitter {
|
|
|
47
47
|
* Send a Stripe Checkout link via the Telegram adapter.
|
|
48
48
|
*/
|
|
49
49
|
sendTelegramCheckoutLink(chatId: number, planName: string, checkoutUrl: string): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Send a bundle amount selection prompt via the Telegram adapter.
|
|
52
|
+
*/
|
|
53
|
+
sendTelegramBundlePrompt(chatId: number, payload: BundlePurchasePayload): Promise<void>;
|
|
50
54
|
/**
|
|
51
55
|
* Update the Discord adapter's allowed channel IDs.
|
|
52
56
|
* Called after owner onboarding completes with IDs from owner.json.
|