@agentforge-io/nest 2.0.22 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants.d.ts +1 -0
- package/dist/constants.js +2 -1
- package/dist/constants.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/services.providers.js +24 -4
- package/dist/providers/services.providers.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/dist/database/entities/auth-identity.entity.d.ts +0 -1
- package/dist/database/entities/auth-identity.entity.js +0 -6
- package/dist/database/entities/auth-identity.entity.js.map +0 -1
- package/dist/database/entities/conversation.entity.d.ts +0 -1
- package/dist/database/entities/conversation.entity.js +0 -6
- package/dist/database/entities/conversation.entity.js.map +0 -1
- package/dist/database/entities/email-token.entity.d.ts +0 -1
- package/dist/database/entities/email-token.entity.js +0 -6
- package/dist/database/entities/email-token.entity.js.map +0 -1
- package/dist/database/entities/index.d.ts +0 -7
- package/dist/database/entities/index.js +0 -16
- package/dist/database/entities/index.js.map +0 -1
- package/dist/database/entities/message.entity.d.ts +0 -1
- package/dist/database/entities/message.entity.js +0 -6
- package/dist/database/entities/message.entity.js.map +0 -1
- package/dist/database/entities/refresh-token.entity.d.ts +0 -1
- package/dist/database/entities/refresh-token.entity.js +0 -6
- package/dist/database/entities/refresh-token.entity.js.map +0 -1
- package/dist/database/entities/subscription.entity.d.ts +0 -1
- package/dist/database/entities/subscription.entity.js +0 -6
- package/dist/database/entities/subscription.entity.js.map +0 -1
- package/dist/database/entities/usage-record.entity.d.ts +0 -1
- package/dist/database/entities/usage-record.entity.js +0 -6
- package/dist/database/entities/usage-record.entity.js.map +0 -1
- package/dist/database/entities/user.entity.d.ts +0 -1
- package/dist/database/entities/user.entity.js +0 -6
- package/dist/database/entities/user.entity.js.map +0 -1
- package/dist/decorators/require-plan.decorator.d.ts +0 -2
- package/dist/decorators/require-plan.decorator.js +0 -8
- package/dist/decorators/require-plan.decorator.js.map +0 -1
- package/dist/guards/usage-limit.guard.d.ts +0 -11
- package/dist/guards/usage-limit.guard.js +0 -57
- package/dist/guards/usage-limit.guard.js.map +0 -1
- package/dist/modules/admin/admin-plans.controller.d.ts +0 -11
- package/dist/modules/admin/admin-plans.controller.js +0 -97
- package/dist/modules/admin/admin-plans.controller.js.map +0 -1
- package/dist/modules/admin/admin-tenant-agents.controller.d.ts +0 -61
- package/dist/modules/admin/admin-tenant-agents.controller.js +0 -424
- package/dist/modules/admin/admin-tenant-agents.controller.js.map +0 -1
- package/dist/modules/admin/admin-tenant-billing.controller.d.ts +0 -51
- package/dist/modules/admin/admin-tenant-billing.controller.js +0 -119
- package/dist/modules/admin/admin-tenant-billing.controller.js.map +0 -1
- package/dist/modules/admin/admin-tenants.controller.d.ts +0 -43
- package/dist/modules/admin/admin-tenants.controller.js +0 -178
- package/dist/modules/admin/admin-tenants.controller.js.map +0 -1
- package/dist/modules/admin/admin-users.controller.d.ts +0 -41
- package/dist/modules/admin/admin-users.controller.js +0 -121
- package/dist/modules/admin/admin-users.controller.js.map +0 -1
- package/dist/modules/admin/admin.module.d.ts +0 -2
- package/dist/modules/admin/admin.module.js +0 -26
- package/dist/modules/admin/admin.module.js.map +0 -1
- package/dist/modules/admin/platform-admin.guard.d.ts +0 -7
- package/dist/modules/admin/platform-admin.guard.js +0 -52
- package/dist/modules/admin/platform-admin.guard.js.map +0 -1
- package/dist/modules/auth/auth.controller.d.ts +0 -63
- package/dist/modules/auth/auth.controller.js +0 -255
- package/dist/modules/auth/auth.controller.js.map +0 -1
- package/dist/modules/auth/auth.module.d.ts +0 -4
- package/dist/modules/auth/auth.module.js +0 -71
- package/dist/modules/auth/auth.module.js.map +0 -1
- package/dist/modules/auth/auth.service.d.ts +0 -2
- package/dist/modules/auth/auth.service.js +0 -7
- package/dist/modules/auth/auth.service.js.map +0 -1
- package/dist/modules/auth/decorators/current-user.decorator.d.ts +0 -8
- package/dist/modules/auth/decorators/current-user.decorator.js +0 -12
- package/dist/modules/auth/decorators/current-user.decorator.js.map +0 -1
- package/dist/modules/auth/decorators/public.decorator.d.ts +0 -2
- package/dist/modules/auth/decorators/public.decorator.js +0 -8
- package/dist/modules/auth/decorators/public.decorator.js.map +0 -1
- package/dist/modules/auth/dto/login.dto.d.ts +0 -4
- package/dist/modules/auth/dto/login.dto.js +0 -29
- package/dist/modules/auth/dto/login.dto.js.map +0 -1
- package/dist/modules/auth/dto/register.dto.d.ts +0 -5
- package/dist/modules/auth/dto/register.dto.js +0 -36
- package/dist/modules/auth/dto/register.dto.js.map +0 -1
- package/dist/modules/auth/guards/jwt-auth.guard.d.ts +0 -9
- package/dist/modules/auth/guards/jwt-auth.guard.js +0 -37
- package/dist/modules/auth/guards/jwt-auth.guard.js.map +0 -1
- package/dist/modules/auth/guards/local-auth.guard.d.ts +0 -4
- package/dist/modules/auth/guards/local-auth.guard.js +0 -18
- package/dist/modules/auth/guards/local-auth.guard.js.map +0 -1
- package/dist/modules/auth/guards/oauth-configured.guard.d.ts +0 -11
- package/dist/modules/auth/guards/oauth-configured.guard.js +0 -51
- package/dist/modules/auth/guards/oauth-configured.guard.js.map +0 -1
- package/dist/modules/auth/oauth.controller.d.ts +0 -20
- package/dist/modules/auth/oauth.controller.js +0 -208
- package/dist/modules/auth/oauth.controller.js.map +0 -1
- package/dist/modules/auth/refresh-token.service.d.ts +0 -2
- package/dist/modules/auth/refresh-token.service.js +0 -7
- package/dist/modules/auth/refresh-token.service.js.map +0 -1
- package/dist/modules/auth/strategies/github.strategy.d.ts +0 -12
- package/dist/modules/auth/strategies/github.strategy.js +0 -57
- package/dist/modules/auth/strategies/github.strategy.js.map +0 -1
- package/dist/modules/auth/strategies/google.strategy.d.ts +0 -19
- package/dist/modules/auth/strategies/google.strategy.js +0 -56
- package/dist/modules/auth/strategies/google.strategy.js.map +0 -1
- package/dist/modules/auth/strategies/jwt.strategy.d.ts +0 -18
- package/dist/modules/auth/strategies/jwt.strategy.js +0 -49
- package/dist/modules/auth/strategies/jwt.strategy.js.map +0 -1
- package/dist/modules/auth/strategies/local.strategy.d.ts +0 -11
- package/dist/modules/auth/strategies/local.strategy.js +0 -31
- package/dist/modules/auth/strategies/local.strategy.js.map +0 -1
- package/dist/modules/billing/adapters/billing-adapter.interface.d.ts +0 -1
- package/dist/modules/billing/adapters/billing-adapter.interface.js +0 -6
- package/dist/modules/billing/adapters/billing-adapter.interface.js.map +0 -1
- package/dist/modules/billing/adapters/stripe/stripe.adapter.d.ts +0 -19
- package/dist/modules/billing/adapters/stripe/stripe.adapter.js +0 -118
- package/dist/modules/billing/adapters/stripe/stripe.adapter.js.map +0 -1
- package/dist/modules/billing/billing.controller.d.ts +0 -54
- package/dist/modules/billing/billing.controller.js +0 -180
- package/dist/modules/billing/billing.controller.js.map +0 -1
- package/dist/modules/billing/billing.module.d.ts +0 -2
- package/dist/modules/billing/billing.module.js +0 -57
- package/dist/modules/billing/billing.module.js.map +0 -1
- package/dist/modules/billing/billing.service.d.ts +0 -2
- package/dist/modules/billing/billing.service.js +0 -7
- package/dist/modules/billing/billing.service.js.map +0 -1
- package/dist/modules/billing/usage.service.d.ts +0 -2
- package/dist/modules/billing/usage.service.js +0 -6
- package/dist/modules/billing/usage.service.js.map +0 -1
- package/dist/modules/email/adapters/email-adapter.interface.d.ts +0 -1
- package/dist/modules/email/adapters/email-adapter.interface.js +0 -6
- package/dist/modules/email/adapters/email-adapter.interface.js.map +0 -1
- package/dist/modules/email/adapters/noop.adapter.d.ts +0 -1
- package/dist/modules/email/adapters/noop.adapter.js +0 -6
- package/dist/modules/email/adapters/noop.adapter.js.map +0 -1
- package/dist/modules/email/adapters/resend.adapter.d.ts +0 -1
- package/dist/modules/email/adapters/resend.adapter.js +0 -6
- package/dist/modules/email/adapters/resend.adapter.js.map +0 -1
- package/dist/modules/email/email.module.d.ts +0 -2
- package/dist/modules/email/email.module.js +0 -17
- package/dist/modules/email/email.module.js.map +0 -1
- package/dist/modules/email/email.service.d.ts +0 -1
- package/dist/modules/email/email.service.js +0 -6
- package/dist/modules/email/email.service.js.map +0 -1
- package/dist/modules/email/templates/transactional.template.d.ts +0 -18
- package/dist/modules/email/templates/transactional.template.js +0 -43
- package/dist/modules/email/templates/transactional.template.js.map +0 -1
|
@@ -1,424 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.AdminTenantAgentsController = void 0;
|
|
16
|
-
const common_1 = require("@nestjs/common");
|
|
17
|
-
const swagger_1 = require("@nestjs/swagger");
|
|
18
|
-
const core_1 = require("@agentforge/core");
|
|
19
|
-
const current_user_decorator_1 = require("../auth/decorators/current-user.decorator");
|
|
20
|
-
const platform_admin_guard_1 = require("./platform-admin.guard");
|
|
21
|
-
const AGENT_PATCH_KEYS = [
|
|
22
|
-
'slug',
|
|
23
|
-
'name',
|
|
24
|
-
'description',
|
|
25
|
-
'model',
|
|
26
|
-
'systemPrompt',
|
|
27
|
-
'context',
|
|
28
|
-
'temperature',
|
|
29
|
-
'topP',
|
|
30
|
-
'maxTokens',
|
|
31
|
-
'tools',
|
|
32
|
-
'appearance',
|
|
33
|
-
'isActive',
|
|
34
|
-
'metadata',
|
|
35
|
-
];
|
|
36
|
-
function pickAgentPatch(body) {
|
|
37
|
-
const patch = {};
|
|
38
|
-
for (const k of AGENT_PATCH_KEYS) {
|
|
39
|
-
if (k in body)
|
|
40
|
-
patch[k] = body[k];
|
|
41
|
-
}
|
|
42
|
-
return patch;
|
|
43
|
-
}
|
|
44
|
-
let AdminTenantAgentsController = class AdminTenantAgentsController {
|
|
45
|
-
constructor(tenants, agentConfigs, chatTokens, apiKeys, uploads) {
|
|
46
|
-
this.tenants = tenants;
|
|
47
|
-
this.agentConfigs = agentConfigs;
|
|
48
|
-
this.chatTokens = chatTokens;
|
|
49
|
-
this.apiKeys = apiKeys;
|
|
50
|
-
this.uploads = uploads;
|
|
51
|
-
}
|
|
52
|
-
async list(tenantId, user, q, status, limit, offset) {
|
|
53
|
-
this.ensureB2B();
|
|
54
|
-
await this.tenants.assertOwner(tenantId, user.userId, {
|
|
55
|
-
allowAnyOwner: user.isPlatformAdmin,
|
|
56
|
-
});
|
|
57
|
-
const limitNum = limit ? Number(limit) : undefined;
|
|
58
|
-
const offsetNum = offset ? Number(offset) : undefined;
|
|
59
|
-
const isActive = status === 'active' ? true : status === 'inactive' ? false : undefined;
|
|
60
|
-
const result = await this.agentConfigs.listForTenant(tenantId, {
|
|
61
|
-
q,
|
|
62
|
-
isActive,
|
|
63
|
-
limit: limitNum,
|
|
64
|
-
offset: offsetNum,
|
|
65
|
-
});
|
|
66
|
-
return {
|
|
67
|
-
items: result.items,
|
|
68
|
-
total: result.total,
|
|
69
|
-
limit: limitNum ?? null,
|
|
70
|
-
offset: offsetNum ?? 0,
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
async create(tenantId, body, user) {
|
|
74
|
-
this.ensureB2B();
|
|
75
|
-
await this.tenants.assertOwner(tenantId, user.userId, {
|
|
76
|
-
allowAnyOwner: user.isPlatformAdmin,
|
|
77
|
-
});
|
|
78
|
-
return this.agentConfigs.create({
|
|
79
|
-
tenantId,
|
|
80
|
-
slug: body?.slug,
|
|
81
|
-
name: body?.name,
|
|
82
|
-
systemPrompt: body?.systemPrompt,
|
|
83
|
-
description: body?.description,
|
|
84
|
-
model: body?.model,
|
|
85
|
-
context: body?.context,
|
|
86
|
-
temperature: body?.temperature,
|
|
87
|
-
topP: body?.topP,
|
|
88
|
-
maxTokens: body?.maxTokens,
|
|
89
|
-
tools: body?.tools,
|
|
90
|
-
isActive: body?.isActive,
|
|
91
|
-
createdByUserId: user.userId,
|
|
92
|
-
metadata: body?.metadata,
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
async getOne(tenantId, agentId, user) {
|
|
96
|
-
this.ensureB2B();
|
|
97
|
-
await this.tenants.assertOwner(tenantId, user.userId, {
|
|
98
|
-
allowAnyOwner: user.isPlatformAdmin,
|
|
99
|
-
});
|
|
100
|
-
return this.agentConfigs.getByIdForTenant(agentId, tenantId);
|
|
101
|
-
}
|
|
102
|
-
async update(tenantId, agentId, body, user) {
|
|
103
|
-
this.ensureB2B();
|
|
104
|
-
await this.tenants.assertOwner(tenantId, user.userId, {
|
|
105
|
-
allowAnyOwner: user.isPlatformAdmin,
|
|
106
|
-
});
|
|
107
|
-
const patch = pickAgentPatch(body ?? {});
|
|
108
|
-
return this.agentConfigs.update(agentId, tenantId, patch);
|
|
109
|
-
}
|
|
110
|
-
async deactivate(tenantId, agentId, user) {
|
|
111
|
-
this.ensureB2B();
|
|
112
|
-
await this.tenants.assertOwner(tenantId, user.userId, {
|
|
113
|
-
allowAnyOwner: user.isPlatformAdmin,
|
|
114
|
-
});
|
|
115
|
-
await this.agentConfigs.deactivate(agentId, tenantId);
|
|
116
|
-
}
|
|
117
|
-
async signAvatar(tenantId, agentId, body, user) {
|
|
118
|
-
this.ensureB2B();
|
|
119
|
-
if (!this.uploads) {
|
|
120
|
-
throw new common_1.NotImplementedException({
|
|
121
|
-
error: 'uploads_not_configured',
|
|
122
|
-
message: 'No upload adapter wired. Pass adapters.uploadAdapter to createAgentForge.',
|
|
123
|
-
});
|
|
124
|
-
}
|
|
125
|
-
await this.tenants.assertOwner(tenantId, user.userId, {
|
|
126
|
-
allowAnyOwner: user.isPlatformAdmin,
|
|
127
|
-
});
|
|
128
|
-
await this.agentConfigs.getByIdForTenant(agentId, tenantId);
|
|
129
|
-
return this.uploads.signAgentAvatar({
|
|
130
|
-
tenantId,
|
|
131
|
-
agentId,
|
|
132
|
-
contentType: body?.contentType ?? '',
|
|
133
|
-
contentLength: body?.contentLength,
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
async listChatTokens(tenantId, agentId, user) {
|
|
137
|
-
this.ensureB2B();
|
|
138
|
-
if (!this.chatTokens) {
|
|
139
|
-
throw new common_1.NotImplementedException({ error: 'chat_tokens_not_configured' });
|
|
140
|
-
}
|
|
141
|
-
await this.tenants.assertOwner(tenantId, user.userId, {
|
|
142
|
-
allowAnyOwner: user.isPlatformAdmin,
|
|
143
|
-
});
|
|
144
|
-
await this.agentConfigs.getByIdForTenant(agentId, tenantId);
|
|
145
|
-
return { items: await this.chatTokens.listForAgent(tenantId, agentId) };
|
|
146
|
-
}
|
|
147
|
-
async createChatToken(tenantId, agentId, body, user) {
|
|
148
|
-
this.ensureB2B();
|
|
149
|
-
if (!this.chatTokens) {
|
|
150
|
-
throw new common_1.NotImplementedException({ error: 'chat_tokens_not_configured' });
|
|
151
|
-
}
|
|
152
|
-
await this.tenants.assertOwner(tenantId, user.userId, {
|
|
153
|
-
allowAnyOwner: user.isPlatformAdmin,
|
|
154
|
-
});
|
|
155
|
-
await this.agentConfigs.getByIdForTenant(agentId, tenantId);
|
|
156
|
-
return this.chatTokens.create({
|
|
157
|
-
tenantId,
|
|
158
|
-
agentId,
|
|
159
|
-
name: body?.name ?? '',
|
|
160
|
-
allowedOrigins: body?.allowedOrigins,
|
|
161
|
-
createdByUserId: user.userId,
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
async updateChatToken(tenantId, agentId, token, body, user) {
|
|
165
|
-
this.ensureB2B();
|
|
166
|
-
if (!this.chatTokens) {
|
|
167
|
-
throw new common_1.NotImplementedException({ error: 'chat_tokens_not_configured' });
|
|
168
|
-
}
|
|
169
|
-
await this.tenants.assertOwner(tenantId, user.userId, {
|
|
170
|
-
allowAnyOwner: user.isPlatformAdmin,
|
|
171
|
-
});
|
|
172
|
-
const patch = {};
|
|
173
|
-
for (const k of ['name', 'allowedOrigins', 'isActive']) {
|
|
174
|
-
if (k in (body ?? {}))
|
|
175
|
-
patch[k] = body[k];
|
|
176
|
-
}
|
|
177
|
-
await this.chatTokens.update(token, patch);
|
|
178
|
-
}
|
|
179
|
-
async deactivateChatToken(tenantId, agentId, token, user) {
|
|
180
|
-
this.ensureB2B();
|
|
181
|
-
if (!this.chatTokens) {
|
|
182
|
-
throw new common_1.NotImplementedException({ error: 'chat_tokens_not_configured' });
|
|
183
|
-
}
|
|
184
|
-
await this.tenants.assertOwner(tenantId, user.userId, {
|
|
185
|
-
allowAnyOwner: user.isPlatformAdmin,
|
|
186
|
-
});
|
|
187
|
-
await this.chatTokens.deactivate(token);
|
|
188
|
-
}
|
|
189
|
-
async listAgentApiKeys(tenantId, agentId, user) {
|
|
190
|
-
this.ensureB2BWithApiKeys();
|
|
191
|
-
await this.tenants.assertOwner(tenantId, user.userId, {
|
|
192
|
-
allowAnyOwner: user.isPlatformAdmin,
|
|
193
|
-
});
|
|
194
|
-
await this.agentConfigs.getByIdForTenant(agentId, tenantId);
|
|
195
|
-
const keys = await this.apiKeys.listForAgent(tenantId, agentId);
|
|
196
|
-
return keys.map((k) => ({
|
|
197
|
-
id: k.id,
|
|
198
|
-
name: k.name,
|
|
199
|
-
keyPrefix: k.keyPrefix,
|
|
200
|
-
agentId: k.agentId,
|
|
201
|
-
scopes: k.scopes,
|
|
202
|
-
createdAt: k.createdAt,
|
|
203
|
-
lastUsedAt: k.lastUsedAt,
|
|
204
|
-
expiresAt: k.expiresAt,
|
|
205
|
-
revokedAt: k.revokedAt,
|
|
206
|
-
}));
|
|
207
|
-
}
|
|
208
|
-
async issueAgentApiKey(tenantId, agentId, body, user) {
|
|
209
|
-
this.ensureB2BWithApiKeys();
|
|
210
|
-
if (!body?.name)
|
|
211
|
-
throw new common_1.BadRequestException('name is required');
|
|
212
|
-
await this.tenants.assertOwner(tenantId, user.userId, {
|
|
213
|
-
allowAnyOwner: user.isPlatformAdmin,
|
|
214
|
-
});
|
|
215
|
-
await this.agentConfigs.getByIdForTenant(agentId, tenantId);
|
|
216
|
-
const minted = await this.apiKeys.issue({
|
|
217
|
-
tenantId,
|
|
218
|
-
agentId,
|
|
219
|
-
name: body.name,
|
|
220
|
-
scopes: body.scopes,
|
|
221
|
-
expiresAt: body.expiresAt ? new Date(body.expiresAt) : undefined,
|
|
222
|
-
});
|
|
223
|
-
return {
|
|
224
|
-
key: minted.key,
|
|
225
|
-
id: minted.entity.id,
|
|
226
|
-
name: minted.entity.name,
|
|
227
|
-
keyPrefix: minted.entity.keyPrefix,
|
|
228
|
-
agentId: minted.entity.agentId,
|
|
229
|
-
scopes: minted.entity.scopes,
|
|
230
|
-
expiresAt: minted.entity.expiresAt,
|
|
231
|
-
createdAt: minted.entity.createdAt,
|
|
232
|
-
};
|
|
233
|
-
}
|
|
234
|
-
async revokeAgentApiKey(tenantId, agentId, keyId, user) {
|
|
235
|
-
this.ensureB2BWithApiKeys();
|
|
236
|
-
await this.tenants.assertOwner(tenantId, user.userId, {
|
|
237
|
-
allowAnyOwner: user.isPlatformAdmin,
|
|
238
|
-
});
|
|
239
|
-
await this.apiKeys.revoke(keyId);
|
|
240
|
-
}
|
|
241
|
-
ensureB2B() {
|
|
242
|
-
if (!this.tenants || !this.agentConfigs) {
|
|
243
|
-
throw new common_1.NotImplementedException({
|
|
244
|
-
error: 'b2b_not_configured',
|
|
245
|
-
message: 'B2B mode is not configured. Pass tenant/agentConfig repositories to createAgentForge.',
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
ensureB2BWithApiKeys() {
|
|
250
|
-
if (!this.tenants || !this.agentConfigs || !this.apiKeys) {
|
|
251
|
-
throw new common_1.NotImplementedException({
|
|
252
|
-
error: 'b2b_not_configured',
|
|
253
|
-
message: 'B2B mode is not configured. Pass tenant/agentConfig/apiKey repositories to createAgentForge.',
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
};
|
|
258
|
-
exports.AdminTenantAgentsController = AdminTenantAgentsController;
|
|
259
|
-
__decorate([
|
|
260
|
-
(0, common_1.Get)(),
|
|
261
|
-
(0, swagger_1.ApiOperation)({ summary: 'List agents configured for a tenant (owner-only)' }),
|
|
262
|
-
__param(0, (0, common_1.Param)('tenantId')),
|
|
263
|
-
__param(1, (0, current_user_decorator_1.CurrentUser)()),
|
|
264
|
-
__param(2, (0, common_1.Query)('q')),
|
|
265
|
-
__param(3, (0, common_1.Query)('status')),
|
|
266
|
-
__param(4, (0, common_1.Query)('limit')),
|
|
267
|
-
__param(5, (0, common_1.Query)('offset')),
|
|
268
|
-
__metadata("design:type", Function),
|
|
269
|
-
__metadata("design:paramtypes", [String, Object, String, String, String, String]),
|
|
270
|
-
__metadata("design:returntype", Promise)
|
|
271
|
-
], AdminTenantAgentsController.prototype, "list", null);
|
|
272
|
-
__decorate([
|
|
273
|
-
(0, common_1.Post)(),
|
|
274
|
-
(0, swagger_1.ApiOperation)({ summary: 'Create a new agent for a tenant (owner-only)' }),
|
|
275
|
-
(0, common_1.HttpCode)(common_1.HttpStatus.CREATED),
|
|
276
|
-
__param(0, (0, common_1.Param)('tenantId')),
|
|
277
|
-
__param(1, (0, common_1.Body)()),
|
|
278
|
-
__param(2, (0, current_user_decorator_1.CurrentUser)()),
|
|
279
|
-
__metadata("design:type", Function),
|
|
280
|
-
__metadata("design:paramtypes", [String, Object, Object]),
|
|
281
|
-
__metadata("design:returntype", Promise)
|
|
282
|
-
], AdminTenantAgentsController.prototype, "create", null);
|
|
283
|
-
__decorate([
|
|
284
|
-
(0, common_1.Get)(':agentId'),
|
|
285
|
-
(0, swagger_1.ApiOperation)({ summary: 'Fetch a single agent (owner-only)' }),
|
|
286
|
-
__param(0, (0, common_1.Param)('tenantId')),
|
|
287
|
-
__param(1, (0, common_1.Param)('agentId')),
|
|
288
|
-
__param(2, (0, current_user_decorator_1.CurrentUser)()),
|
|
289
|
-
__metadata("design:type", Function),
|
|
290
|
-
__metadata("design:paramtypes", [String, String, Object]),
|
|
291
|
-
__metadata("design:returntype", Promise)
|
|
292
|
-
], AdminTenantAgentsController.prototype, "getOne", null);
|
|
293
|
-
__decorate([
|
|
294
|
-
(0, common_1.Patch)(':agentId'),
|
|
295
|
-
(0, swagger_1.ApiOperation)({ summary: 'Update agent fields (whitelist) (owner-only)' }),
|
|
296
|
-
__param(0, (0, common_1.Param)('tenantId')),
|
|
297
|
-
__param(1, (0, common_1.Param)('agentId')),
|
|
298
|
-
__param(2, (0, common_1.Body)()),
|
|
299
|
-
__param(3, (0, current_user_decorator_1.CurrentUser)()),
|
|
300
|
-
__metadata("design:type", Function),
|
|
301
|
-
__metadata("design:paramtypes", [String, String, Object, Object]),
|
|
302
|
-
__metadata("design:returntype", Promise)
|
|
303
|
-
], AdminTenantAgentsController.prototype, "update", null);
|
|
304
|
-
__decorate([
|
|
305
|
-
(0, common_1.Delete)(':agentId'),
|
|
306
|
-
(0, swagger_1.ApiOperation)({ summary: 'Deactivate an agent (soft delete) (owner-only)' }),
|
|
307
|
-
(0, common_1.HttpCode)(common_1.HttpStatus.NO_CONTENT),
|
|
308
|
-
__param(0, (0, common_1.Param)('tenantId')),
|
|
309
|
-
__param(1, (0, common_1.Param)('agentId')),
|
|
310
|
-
__param(2, (0, current_user_decorator_1.CurrentUser)()),
|
|
311
|
-
__metadata("design:type", Function),
|
|
312
|
-
__metadata("design:paramtypes", [String, String, Object]),
|
|
313
|
-
__metadata("design:returntype", Promise)
|
|
314
|
-
], AdminTenantAgentsController.prototype, "deactivate", null);
|
|
315
|
-
__decorate([
|
|
316
|
-
(0, common_1.Post)(':agentId/avatar/sign'),
|
|
317
|
-
(0, swagger_1.ApiOperation)({
|
|
318
|
-
summary: 'Sign a direct-upload URL for the agent avatar. Frontend PUTs the file straight to storage.',
|
|
319
|
-
}),
|
|
320
|
-
__param(0, (0, common_1.Param)('tenantId')),
|
|
321
|
-
__param(1, (0, common_1.Param)('agentId')),
|
|
322
|
-
__param(2, (0, common_1.Body)()),
|
|
323
|
-
__param(3, (0, current_user_decorator_1.CurrentUser)()),
|
|
324
|
-
__metadata("design:type", Function),
|
|
325
|
-
__metadata("design:paramtypes", [String, String, Object, Object]),
|
|
326
|
-
__metadata("design:returntype", Promise)
|
|
327
|
-
], AdminTenantAgentsController.prototype, "signAvatar", null);
|
|
328
|
-
__decorate([
|
|
329
|
-
(0, common_1.Get)(':agentId/chat-tokens'),
|
|
330
|
-
(0, swagger_1.ApiOperation)({ summary: 'List chat tokens for an agent (owner-only)' }),
|
|
331
|
-
__param(0, (0, common_1.Param)('tenantId')),
|
|
332
|
-
__param(1, (0, common_1.Param)('agentId')),
|
|
333
|
-
__param(2, (0, current_user_decorator_1.CurrentUser)()),
|
|
334
|
-
__metadata("design:type", Function),
|
|
335
|
-
__metadata("design:paramtypes", [String, String, Object]),
|
|
336
|
-
__metadata("design:returntype", Promise)
|
|
337
|
-
], AdminTenantAgentsController.prototype, "listChatTokens", null);
|
|
338
|
-
__decorate([
|
|
339
|
-
(0, common_1.Post)(':agentId/chat-tokens'),
|
|
340
|
-
(0, swagger_1.ApiOperation)({ summary: 'Issue a chat token for the embeddable widget (owner-only)' }),
|
|
341
|
-
(0, common_1.HttpCode)(common_1.HttpStatus.CREATED),
|
|
342
|
-
__param(0, (0, common_1.Param)('tenantId')),
|
|
343
|
-
__param(1, (0, common_1.Param)('agentId')),
|
|
344
|
-
__param(2, (0, common_1.Body)()),
|
|
345
|
-
__param(3, (0, current_user_decorator_1.CurrentUser)()),
|
|
346
|
-
__metadata("design:type", Function),
|
|
347
|
-
__metadata("design:paramtypes", [String, String, Object, Object]),
|
|
348
|
-
__metadata("design:returntype", Promise)
|
|
349
|
-
], AdminTenantAgentsController.prototype, "createChatToken", null);
|
|
350
|
-
__decorate([
|
|
351
|
-
(0, common_1.Patch)(':agentId/chat-tokens/:token'),
|
|
352
|
-
(0, swagger_1.ApiOperation)({ summary: 'Update a chat token (name/origins/active) (owner-only)' }),
|
|
353
|
-
(0, common_1.HttpCode)(common_1.HttpStatus.NO_CONTENT),
|
|
354
|
-
__param(0, (0, common_1.Param)('tenantId')),
|
|
355
|
-
__param(1, (0, common_1.Param)('agentId')),
|
|
356
|
-
__param(2, (0, common_1.Param)('token')),
|
|
357
|
-
__param(3, (0, common_1.Body)()),
|
|
358
|
-
__param(4, (0, current_user_decorator_1.CurrentUser)()),
|
|
359
|
-
__metadata("design:type", Function),
|
|
360
|
-
__metadata("design:paramtypes", [String, String, String, Object, Object]),
|
|
361
|
-
__metadata("design:returntype", Promise)
|
|
362
|
-
], AdminTenantAgentsController.prototype, "updateChatToken", null);
|
|
363
|
-
__decorate([
|
|
364
|
-
(0, common_1.Delete)(':agentId/chat-tokens/:token'),
|
|
365
|
-
(0, swagger_1.ApiOperation)({ summary: 'Deactivate a chat token (owner-only)' }),
|
|
366
|
-
(0, common_1.HttpCode)(common_1.HttpStatus.NO_CONTENT),
|
|
367
|
-
__param(0, (0, common_1.Param)('tenantId')),
|
|
368
|
-
__param(1, (0, common_1.Param)('agentId')),
|
|
369
|
-
__param(2, (0, common_1.Param)('token')),
|
|
370
|
-
__param(3, (0, current_user_decorator_1.CurrentUser)()),
|
|
371
|
-
__metadata("design:type", Function),
|
|
372
|
-
__metadata("design:paramtypes", [String, String, String, Object]),
|
|
373
|
-
__metadata("design:returntype", Promise)
|
|
374
|
-
], AdminTenantAgentsController.prototype, "deactivateChatToken", null);
|
|
375
|
-
__decorate([
|
|
376
|
-
(0, common_1.Get)(':agentId/api-keys'),
|
|
377
|
-
(0, swagger_1.ApiOperation)({ summary: 'List agent-scoped API keys (owner-only)' }),
|
|
378
|
-
__param(0, (0, common_1.Param)('tenantId')),
|
|
379
|
-
__param(1, (0, common_1.Param)('agentId')),
|
|
380
|
-
__param(2, (0, current_user_decorator_1.CurrentUser)()),
|
|
381
|
-
__metadata("design:type", Function),
|
|
382
|
-
__metadata("design:paramtypes", [String, String, Object]),
|
|
383
|
-
__metadata("design:returntype", Promise)
|
|
384
|
-
], AdminTenantAgentsController.prototype, "listAgentApiKeys", null);
|
|
385
|
-
__decorate([
|
|
386
|
-
(0, common_1.Post)(':agentId/api-keys'),
|
|
387
|
-
(0, swagger_1.ApiOperation)({ summary: 'Issue an agent-scoped API key (owner-only)' }),
|
|
388
|
-
(0, common_1.HttpCode)(common_1.HttpStatus.CREATED),
|
|
389
|
-
__param(0, (0, common_1.Param)('tenantId')),
|
|
390
|
-
__param(1, (0, common_1.Param)('agentId')),
|
|
391
|
-
__param(2, (0, common_1.Body)()),
|
|
392
|
-
__param(3, (0, current_user_decorator_1.CurrentUser)()),
|
|
393
|
-
__metadata("design:type", Function),
|
|
394
|
-
__metadata("design:paramtypes", [String, String, Object, Object]),
|
|
395
|
-
__metadata("design:returntype", Promise)
|
|
396
|
-
], AdminTenantAgentsController.prototype, "issueAgentApiKey", null);
|
|
397
|
-
__decorate([
|
|
398
|
-
(0, common_1.Delete)(':agentId/api-keys/:keyId'),
|
|
399
|
-
(0, swagger_1.ApiOperation)({ summary: 'Revoke an agent-scoped API key (owner-only)' }),
|
|
400
|
-
(0, common_1.HttpCode)(common_1.HttpStatus.NO_CONTENT),
|
|
401
|
-
__param(0, (0, common_1.Param)('tenantId')),
|
|
402
|
-
__param(1, (0, common_1.Param)('agentId')),
|
|
403
|
-
__param(2, (0, common_1.Param)('keyId')),
|
|
404
|
-
__param(3, (0, current_user_decorator_1.CurrentUser)()),
|
|
405
|
-
__metadata("design:type", Function),
|
|
406
|
-
__metadata("design:paramtypes", [String, String, String, Object]),
|
|
407
|
-
__metadata("design:returntype", Promise)
|
|
408
|
-
], AdminTenantAgentsController.prototype, "revokeAgentApiKey", null);
|
|
409
|
-
exports.AdminTenantAgentsController = AdminTenantAgentsController = __decorate([
|
|
410
|
-
(0, swagger_1.ApiTags)('Admin: Tenant Agents'),
|
|
411
|
-
(0, common_1.Controller)('admin/tenants/:tenantId/agents'),
|
|
412
|
-
(0, common_1.UseGuards)(platform_admin_guard_1.RequireUserSessionGuard),
|
|
413
|
-
__param(0, (0, common_1.Optional)()),
|
|
414
|
-
__param(1, (0, common_1.Optional)()),
|
|
415
|
-
__param(2, (0, common_1.Optional)()),
|
|
416
|
-
__param(3, (0, common_1.Optional)()),
|
|
417
|
-
__param(4, (0, common_1.Optional)()),
|
|
418
|
-
__metadata("design:paramtypes", [core_1.TenantService,
|
|
419
|
-
core_1.AgentConfigService,
|
|
420
|
-
core_1.ChatTokenService,
|
|
421
|
-
core_1.ApiKeyService,
|
|
422
|
-
core_1.UploadService])
|
|
423
|
-
], AdminTenantAgentsController);
|
|
424
|
-
//# sourceMappingURL=admin-tenant-agents.controller.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin-tenant-agents.controller.js","sourceRoot":"","sources":["../../../src/modules/admin/admin-tenant-agents.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { TenantBillingService, TenantService } from '@agentforge/core';
|
|
2
|
-
import { type AuthUser } from '../auth/decorators/current-user.decorator';
|
|
3
|
-
export declare class AdminTenantBillingController {
|
|
4
|
-
private readonly tenants?;
|
|
5
|
-
private readonly billing?;
|
|
6
|
-
constructor(tenants?: TenantService | undefined, billing?: TenantBillingService | undefined);
|
|
7
|
-
getOverview(tenantId: string, user: AuthUser): Promise<{
|
|
8
|
-
availablePlans: import("@agentforge/core").Plan[];
|
|
9
|
-
plan: {
|
|
10
|
-
id: string;
|
|
11
|
-
name: string;
|
|
12
|
-
features: string[];
|
|
13
|
-
limits: {
|
|
14
|
-
requestsPerMonth: number;
|
|
15
|
-
tokensPerMonth: number;
|
|
16
|
-
};
|
|
17
|
-
priceInCents?: number;
|
|
18
|
-
interval?: "month" | "year";
|
|
19
|
-
};
|
|
20
|
-
usage: {
|
|
21
|
-
period: string;
|
|
22
|
-
requestCount: number;
|
|
23
|
-
totalTokens: number;
|
|
24
|
-
requestLimit: number;
|
|
25
|
-
tokenLimit: number;
|
|
26
|
-
};
|
|
27
|
-
subscription: {
|
|
28
|
-
id: string;
|
|
29
|
-
planId: string;
|
|
30
|
-
status: import("@agentforge/core").SubscriptionStatus;
|
|
31
|
-
currentPeriodStart?: Date;
|
|
32
|
-
currentPeriodEnd?: Date;
|
|
33
|
-
cancelAtPeriodEnd: boolean;
|
|
34
|
-
} | null;
|
|
35
|
-
}>;
|
|
36
|
-
createCheckout(tenantId: string, body: {
|
|
37
|
-
planId: string;
|
|
38
|
-
successUrl?: string;
|
|
39
|
-
cancelUrl?: string;
|
|
40
|
-
appUrl?: string;
|
|
41
|
-
}, user: AuthUser): Promise<import("@agentforge/core").TenantCheckoutResult>;
|
|
42
|
-
getPortalUrl(tenantId: string, body: {
|
|
43
|
-
returnUrl?: string;
|
|
44
|
-
}, user: AuthUser): Promise<{
|
|
45
|
-
url: string;
|
|
46
|
-
}>;
|
|
47
|
-
cancelSubscription(tenantId: string, body: {
|
|
48
|
-
immediately?: boolean;
|
|
49
|
-
}, user: AuthUser): Promise<void>;
|
|
50
|
-
private ensureWired;
|
|
51
|
-
}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
-
};
|
|
8
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.AdminTenantBillingController = void 0;
|
|
16
|
-
const common_1 = require("@nestjs/common");
|
|
17
|
-
const swagger_1 = require("@nestjs/swagger");
|
|
18
|
-
const core_1 = require("@agentforge/core");
|
|
19
|
-
const current_user_decorator_1 = require("../auth/decorators/current-user.decorator");
|
|
20
|
-
const platform_admin_guard_1 = require("./platform-admin.guard");
|
|
21
|
-
let AdminTenantBillingController = class AdminTenantBillingController {
|
|
22
|
-
constructor(tenants, billing) {
|
|
23
|
-
this.tenants = tenants;
|
|
24
|
-
this.billing = billing;
|
|
25
|
-
}
|
|
26
|
-
async getOverview(tenantId, user) {
|
|
27
|
-
this.ensureWired();
|
|
28
|
-
const userId = user.userId;
|
|
29
|
-
await this.tenants.assertOwner(tenantId, userId, { allowAnyOwner: user.isPlatformAdmin });
|
|
30
|
-
const overview = await this.billing.getOverview(tenantId);
|
|
31
|
-
return { ...overview, availablePlans: await this.billing.getPlans() };
|
|
32
|
-
}
|
|
33
|
-
async createCheckout(tenantId, body, user) {
|
|
34
|
-
this.ensureWired();
|
|
35
|
-
const userId = user.userId;
|
|
36
|
-
await this.tenants.assertOwner(tenantId, userId, { allowAnyOwner: user.isPlatformAdmin });
|
|
37
|
-
return this.billing.createCheckout({
|
|
38
|
-
tenantId,
|
|
39
|
-
planId: body.planId,
|
|
40
|
-
successUrl: body.successUrl,
|
|
41
|
-
cancelUrl: body.cancelUrl,
|
|
42
|
-
appUrl: body.appUrl,
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
async getPortalUrl(tenantId, body, user) {
|
|
46
|
-
this.ensureWired();
|
|
47
|
-
const userId = user.userId;
|
|
48
|
-
await this.tenants.assertOwner(tenantId, userId, { allowAnyOwner: user.isPlatformAdmin });
|
|
49
|
-
return this.billing.getPortalUrl(tenantId, body.returnUrl);
|
|
50
|
-
}
|
|
51
|
-
async cancelSubscription(tenantId, body, user) {
|
|
52
|
-
this.ensureWired();
|
|
53
|
-
const userId = user.userId;
|
|
54
|
-
await this.tenants.assertOwner(tenantId, userId, { allowAnyOwner: user.isPlatformAdmin });
|
|
55
|
-
await this.billing.cancelSubscription(tenantId, body.immediately);
|
|
56
|
-
}
|
|
57
|
-
ensureWired() {
|
|
58
|
-
if (!this.tenants || !this.billing) {
|
|
59
|
-
throw new common_1.NotImplementedException({
|
|
60
|
-
error: 'b2b_billing_not_configured',
|
|
61
|
-
message: 'B2B billing requires a billing adapter and tenant/apiKey/externalUser repositories.',
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
};
|
|
66
|
-
exports.AdminTenantBillingController = AdminTenantBillingController;
|
|
67
|
-
__decorate([
|
|
68
|
-
(0, common_1.Get)(),
|
|
69
|
-
(0, swagger_1.ApiOperation)({
|
|
70
|
-
summary: 'Tenant billing overview — current plan, usage, subscription, available plans',
|
|
71
|
-
}),
|
|
72
|
-
__param(0, (0, common_1.Param)('tenantId')),
|
|
73
|
-
__param(1, (0, current_user_decorator_1.CurrentUser)()),
|
|
74
|
-
__metadata("design:type", Function),
|
|
75
|
-
__metadata("design:paramtypes", [String, Object]),
|
|
76
|
-
__metadata("design:returntype", Promise)
|
|
77
|
-
], AdminTenantBillingController.prototype, "getOverview", null);
|
|
78
|
-
__decorate([
|
|
79
|
-
(0, common_1.Post)('checkout'),
|
|
80
|
-
(0, swagger_1.ApiOperation)({ summary: 'Start a checkout session for a tenant plan' }),
|
|
81
|
-
(0, common_1.HttpCode)(common_1.HttpStatus.CREATED),
|
|
82
|
-
__param(0, (0, common_1.Param)('tenantId')),
|
|
83
|
-
__param(1, (0, common_1.Body)()),
|
|
84
|
-
__param(2, (0, current_user_decorator_1.CurrentUser)()),
|
|
85
|
-
__metadata("design:type", Function),
|
|
86
|
-
__metadata("design:paramtypes", [String, Object, Object]),
|
|
87
|
-
__metadata("design:returntype", Promise)
|
|
88
|
-
], AdminTenantBillingController.prototype, "createCheckout", null);
|
|
89
|
-
__decorate([
|
|
90
|
-
(0, common_1.Post)('portal'),
|
|
91
|
-
(0, swagger_1.ApiOperation)({ summary: 'Get a customer-portal URL for the tenant' }),
|
|
92
|
-
__param(0, (0, common_1.Param)('tenantId')),
|
|
93
|
-
__param(1, (0, common_1.Body)()),
|
|
94
|
-
__param(2, (0, current_user_decorator_1.CurrentUser)()),
|
|
95
|
-
__metadata("design:type", Function),
|
|
96
|
-
__metadata("design:paramtypes", [String, Object, Object]),
|
|
97
|
-
__metadata("design:returntype", Promise)
|
|
98
|
-
], AdminTenantBillingController.prototype, "getPortalUrl", null);
|
|
99
|
-
__decorate([
|
|
100
|
-
(0, common_1.Delete)('subscription'),
|
|
101
|
-
(0, swagger_1.ApiOperation)({ summary: 'Cancel the tenant subscription' }),
|
|
102
|
-
(0, common_1.HttpCode)(common_1.HttpStatus.NO_CONTENT),
|
|
103
|
-
__param(0, (0, common_1.Param)('tenantId')),
|
|
104
|
-
__param(1, (0, common_1.Body)()),
|
|
105
|
-
__param(2, (0, current_user_decorator_1.CurrentUser)()),
|
|
106
|
-
__metadata("design:type", Function),
|
|
107
|
-
__metadata("design:paramtypes", [String, Object, Object]),
|
|
108
|
-
__metadata("design:returntype", Promise)
|
|
109
|
-
], AdminTenantBillingController.prototype, "cancelSubscription", null);
|
|
110
|
-
exports.AdminTenantBillingController = AdminTenantBillingController = __decorate([
|
|
111
|
-
(0, swagger_1.ApiTags)('Admin: Tenant Billing'),
|
|
112
|
-
(0, common_1.Controller)('admin/tenants/:tenantId/billing'),
|
|
113
|
-
(0, common_1.UseGuards)(platform_admin_guard_1.RequireUserSessionGuard),
|
|
114
|
-
__param(0, (0, common_1.Optional)()),
|
|
115
|
-
__param(1, (0, common_1.Optional)()),
|
|
116
|
-
__metadata("design:paramtypes", [core_1.TenantService,
|
|
117
|
-
core_1.TenantBillingService])
|
|
118
|
-
], AdminTenantBillingController);
|
|
119
|
-
//# sourceMappingURL=admin-tenant-billing.controller.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"admin-tenant-billing.controller.js","sourceRoot":"","sources":["../../../src/modules/admin/admin-tenant-billing.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { ApiKeyService, TenantService } from '@agentforge/core';
|
|
2
|
-
import { type AuthUser } from '../auth/decorators/current-user.decorator';
|
|
3
|
-
export declare class AdminTenantsController {
|
|
4
|
-
private readonly tenants?;
|
|
5
|
-
private readonly apiKeys?;
|
|
6
|
-
constructor(tenants?: TenantService | undefined, apiKeys?: ApiKeyService | undefined);
|
|
7
|
-
createTenant(body: {
|
|
8
|
-
name?: string;
|
|
9
|
-
planId?: string;
|
|
10
|
-
}, userId: string): Promise<import("@agentforge/core").Tenant>;
|
|
11
|
-
listMyTenants(user: AuthUser, q?: string, status?: string, limit?: string, offset?: string): Promise<{
|
|
12
|
-
items: import("@agentforge/core").Tenant[];
|
|
13
|
-
total: number;
|
|
14
|
-
limit: number | null;
|
|
15
|
-
offset: number;
|
|
16
|
-
}>;
|
|
17
|
-
issueApiKey(tenantId: string, body: {
|
|
18
|
-
name?: string;
|
|
19
|
-
scopes?: string[];
|
|
20
|
-
expiresAt?: string;
|
|
21
|
-
}, user: AuthUser): Promise<{
|
|
22
|
-
key: string;
|
|
23
|
-
id: string;
|
|
24
|
-
name: string;
|
|
25
|
-
keyPrefix: string;
|
|
26
|
-
scopes: string[] | undefined;
|
|
27
|
-
expiresAt: Date | undefined;
|
|
28
|
-
createdAt: Date;
|
|
29
|
-
}>;
|
|
30
|
-
listApiKeys(tenantId: string, user: AuthUser): Promise<{
|
|
31
|
-
id: string;
|
|
32
|
-
name: string;
|
|
33
|
-
keyPrefix: string;
|
|
34
|
-
scopes: string[] | undefined;
|
|
35
|
-
createdAt: Date;
|
|
36
|
-
lastUsedAt: Date | undefined;
|
|
37
|
-
expiresAt: Date | undefined;
|
|
38
|
-
revokedAt: Date | undefined;
|
|
39
|
-
}[]>;
|
|
40
|
-
revokeApiKey(tenantId: string, keyId: string, user: AuthUser): Promise<void>;
|
|
41
|
-
private ensureB2B;
|
|
42
|
-
private ensureB2BWithApiKeys;
|
|
43
|
-
}
|