@apart-tech/intelligence-core 1.15.2 → 1.17.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/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/services/__tests__/search-service.test.js +3 -3
- package/dist/services/__tests__/search-service.test.js.map +1 -1
- package/dist/services/billing-event-service.d.ts +22 -0
- package/dist/services/billing-event-service.d.ts.map +1 -0
- package/dist/services/billing-event-service.js +30 -0
- package/dist/services/billing-event-service.js.map +1 -0
- package/dist/services/document-service.d.ts +3 -1
- package/dist/services/document-service.d.ts.map +1 -1
- package/dist/services/document-service.js +7 -1
- package/dist/services/document-service.js.map +1 -1
- package/dist/services/quota-service.d.ts +43 -0
- package/dist/services/quota-service.d.ts.map +1 -0
- package/dist/services/quota-service.js +148 -0
- package/dist/services/quota-service.js.map +1 -0
- package/dist/services/quota-service.test.d.ts +2 -0
- package/dist/services/quota-service.test.d.ts.map +1 -0
- package/dist/services/quota-service.test.js +165 -0
- package/dist/services/quota-service.test.js.map +1 -0
- package/dist/services/search-service.d.ts +7 -0
- package/dist/services/search-service.d.ts.map +1 -1
- package/dist/services/search-service.js +68 -23
- package/dist/services/search-service.js.map +1 -1
- package/dist/services/search-service.test.d.ts +2 -0
- package/dist/services/search-service.test.d.ts.map +1 -0
- package/dist/services/search-service.test.js +65 -0
- package/dist/services/search-service.test.js.map +1 -0
- package/dist/services/usage-service.d.ts +49 -2
- package/dist/services/usage-service.d.ts.map +1 -1
- package/dist/services/usage-service.js +109 -19
- package/dist/services/usage-service.js.map +1 -1
- package/dist/services/usage-service.test.d.ts +2 -0
- package/dist/services/usage-service.test.d.ts.map +1 -0
- package/dist/services/usage-service.test.js +191 -0
- package/dist/services/usage-service.test.js.map +1 -0
- package/package.json +1 -1
- package/prisma/schema.prisma +90 -5
package/dist/index.d.ts
CHANGED
|
@@ -54,7 +54,10 @@ export type { MembershipWithUser } from "./services/membership-service.js";
|
|
|
54
54
|
export { InviteService } from "./services/invite-service.js";
|
|
55
55
|
export type { Invite } from "./services/invite-service.js";
|
|
56
56
|
export { UsageService } from "./services/usage-service.js";
|
|
57
|
-
export type { UsageSnapshot, PlanLimits } from "./services/usage-service.js";
|
|
57
|
+
export type { UsageSnapshot, PlanLimits, UsageMetric } from "./services/usage-service.js";
|
|
58
|
+
export { QuotaService, QuotaError } from "./services/quota-service.js";
|
|
59
|
+
export { BillingEventService } from "./services/billing-event-service.js";
|
|
60
|
+
export type { BillingEventType } from "./services/billing-event-service.js";
|
|
58
61
|
export { TagService, TagValidationError, TagNotFoundError } from "./services/tag-service.js";
|
|
59
62
|
export { ChunkService } from "./services/chunk-service.js";
|
|
60
63
|
export { chunkText, estimateTokens, TARGET_CHUNK_TOKENS, MAX_CHUNK_TOKENS } from "./services/chunker.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -38,6 +38,8 @@ export { UserService } from "./services/user-service.js";
|
|
|
38
38
|
export { MembershipService } from "./services/membership-service.js";
|
|
39
39
|
export { InviteService } from "./services/invite-service.js";
|
|
40
40
|
export { UsageService } from "./services/usage-service.js";
|
|
41
|
+
export { QuotaService, QuotaError } from "./services/quota-service.js";
|
|
42
|
+
export { BillingEventService } from "./services/billing-event-service.js";
|
|
41
43
|
export { TagService, TagValidationError, TagNotFoundError } from "./services/tag-service.js";
|
|
42
44
|
export { ChunkService } from "./services/chunk-service.js";
|
|
43
45
|
export { chunkText, estimateTokens, TARGET_CHUNK_TOKENS, MAX_CHUNK_TOKENS } from "./services/chunker.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -83,11 +83,11 @@ describe("SearchService", () => {
|
|
|
83
83
|
db = createMockDb();
|
|
84
84
|
embeddings = createMockEmbeddings();
|
|
85
85
|
});
|
|
86
|
-
it("runs
|
|
86
|
+
it("embeds query once and runs both semantic branches with the result", async () => {
|
|
87
87
|
const service = new SearchService(db, embeddings, testConfig, tenantCtx);
|
|
88
88
|
await service.search({ query: "test query" });
|
|
89
|
-
// embed() should be called
|
|
90
|
-
expect(embeddings.embed).toHaveBeenCalledTimes(
|
|
89
|
+
// embed() should be called once — result shared by chunk and node semantic branches
|
|
90
|
+
expect(embeddings.embed).toHaveBeenCalledTimes(1);
|
|
91
91
|
});
|
|
92
92
|
it("returns snippet from chunk semantic results", async () => {
|
|
93
93
|
// Mock chunk search to return results with snippets
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-service.test.js","sourceRoot":"","sources":["../../../src/services/__tests__/search-service.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"search-service.test.js","sourceRoot":"","sources":["../../../src/services/__tests__/search-service.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAIpE,SAAS,YAAY;IACnB,OAAO;QACL,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACxC,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC;KACf,CAAC;AAC/B,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO;QACL,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACzC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAe,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;KAC/E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,GAAgB;IAC9B,QAAQ,EAAE,EAAE,GAAG,EAAE,6BAA6B,EAAE;IAChD,UAAU,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE;IAC9D,MAAM,EAAE;QACN,YAAY,EAAE,EAAE;QAChB,aAAa,EAAE,IAAI;QACnB,cAAc,EAAE,CAAC;QACjB,aAAa,EAAE,CAAC;QAChB,eAAe,EAAE,GAAG;QACpB,aAAa,EAAE,GAAG;QAClB,gBAAgB,EAAE,GAAG;KACtB;CACa,CAAC;AAEjB,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,MAAM,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAC1C,MAAM,aAAa,GAAG,IAAI,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC;IAE9C,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,IAAI,EAAmC,CAAC;QACxC,IAAI,UAAmD,CAAC;QAExD,UAAU,CAAC,GAAG,EAAE;YACd,EAAE,GAAG,YAAY,EAAE,CAAC;YACpB,UAAU,GAAG,oBAAoB,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,OAAO,GAAG,IAAI,aAAa,CAC/B,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EACrC,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAC7D,CAAC;YAEF,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;YAEzD,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAC3C,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAClC,MAAM,CAAC,QAAQ,EAAE,CAClB,CAAC;YACF,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAC3C,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAC/C,MAAM,CAAC,QAAQ,EAAE,CAClB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,OAAO,GAAG,IAAI,aAAa,CAC/B,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EACrC,aAAa,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CACpC,CAAC;YAEF,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;YAEzD,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAC3C,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,EAC3C,MAAM,CAAC,QAAQ,EAAE,CAClB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,OAAO,GAAG,IAAI,aAAa,CAC/B,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EACrC,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAC7D,CAAC;YAEF,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;YAEzD,iCAAiC;YACjC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAE5C,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,gBAAgB,EAAE,CAAC;YAC1C,0EAA0E;YAC1E,MAAM,SAAS,GAAI,EAAE,CAAC,WAAwC,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1E,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACxC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAA+B,CAAC;gBAClD,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,OAAO,GAAG,IAAI,aAAa,CAC/B,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EACrC,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAC7D,CAAC;YAEF,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC,CAAC;YAEvD,iCAAiC;YACjC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAE5C,MAAM,SAAS,GAAI,EAAE,CAAC,WAAwC,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1E,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACxC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAA+B,CAAC;gBAClD,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,SAAS,CAAC,CAAC,aAAa,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAC1D,IAAI,EAAmC,CAAC;QACxC,IAAI,UAAmD,CAAC;QAExD,UAAU,CAAC,GAAG,EAAE;YACd,EAAE,GAAG,YAAY,EAAE,CAAC;YACpB,UAAU,GAAG,oBAAoB,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;YACjF,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YAEzE,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;YAE9C,oFAAoF;YACpF,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC3D,oDAAoD;YACpD,MAAM,eAAe,GAAG;gBACtB,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,cAAc;gBACvB,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,UAAU;gBAClB,UAAU,EAAE,MAAM;gBAClB,UAAU,EAAE,IAAI,IAAI,EAAE;gBACtB,UAAU,EAAE,IAAI,IAAI,EAAE;gBACtB,OAAO,EAAE,CAAC;gBACV,SAAS,EAAE,IAAI;gBACf,eAAe,EAAE,OAAO;gBACxB,OAAO,EAAE,KAAK;gBACd,kBAAkB,EAAE,IAAI;gBACxB,UAAU,EAAE,IAAI;gBAChB,aAAa,EAAE,qBAAqB;gBACpC,WAAW,EAAE,CAAC;aACf,CAAC;YACF,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;YAE5D,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YACzE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;YAE9D,sCAAsC;YACtC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;YAC/D,IAAI,UAAU,EAAE,CAAC;gBACf,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;gBACvD,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,iEAAiE;YACjE,uFAAuF;YACvF,MAAM,QAAQ,GAAG;gBACf,EAAE,EAAE,QAAQ;gBACZ,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,cAAc;gBACvB,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,UAAU;gBAClB,UAAU,EAAE,MAAM;gBAClB,UAAU,EAAE,IAAI,IAAI,EAAE;gBACtB,UAAU,EAAE,IAAI,IAAI,EAAE;gBACtB,OAAO,EAAE,CAAC;gBACV,SAAS,EAAE,IAAI;gBACf,eAAe,EAAE,OAAO;gBACxB,OAAO,EAAE,KAAK;gBACd,kBAAkB,EAAE,IAAI;aACzB,CAAC;YAEF,2DAA2D;YAC3D,mEAAmE;YACnE,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC;oBACxC,GAAG,QAAQ;oBACX,UAAU,EAAE,IAAI;oBAChB,aAAa,EAAE,YAAY;oBAC3B,WAAW,EAAE,CAAC;oBACd,IAAI,EAAE,GAAG;oBACT,WAAW,EAAE,GAAG;oBAChB,UAAU,EAAE,GAAG;iBAChB,CAAC,CAAC,CAAC;YAEJ,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;YACzE,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;YAE9D,+DAA+D;YAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,6DAA6D;YAC7D,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { PrismaClient, Prisma } from "@prisma/client";
|
|
2
|
+
export type BillingEventType = "plan_change" | "checkout_completed" | "subscription_updated" | "subscription_cancelled" | "payment_failed" | "quota_override_created" | "quota_override_deleted" | "welcome_bonus_granted";
|
|
3
|
+
/**
|
|
4
|
+
* Append-only audit log for billing-related events.
|
|
5
|
+
*/
|
|
6
|
+
export declare class BillingEventService {
|
|
7
|
+
private db;
|
|
8
|
+
constructor(db: PrismaClient);
|
|
9
|
+
log(organizationId: string, eventType: BillingEventType, detail?: Record<string, unknown>, actor?: string): Promise<void>;
|
|
10
|
+
getEvents(organizationId: string, options?: {
|
|
11
|
+
limit?: number;
|
|
12
|
+
eventType?: string;
|
|
13
|
+
}): Promise<{
|
|
14
|
+
id: string;
|
|
15
|
+
createdAt: Date;
|
|
16
|
+
organizationId: string;
|
|
17
|
+
eventType: string;
|
|
18
|
+
detail: Prisma.JsonValue;
|
|
19
|
+
actor: string;
|
|
20
|
+
}[]>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=billing-event-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-event-service.d.ts","sourceRoot":"","sources":["../../src/services/billing-event-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAE3D,MAAM,MAAM,gBAAgB,GACxB,aAAa,GACb,oBAAoB,GACpB,sBAAsB,GACtB,wBAAwB,GACxB,gBAAgB,GAChB,wBAAwB,GACxB,wBAAwB,GACxB,uBAAuB,CAAC;AAE5B;;GAEG;AACH,qBAAa,mBAAmB;IAClB,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,YAAY;IAE9B,GAAG,CACP,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,gBAAgB,EAC3B,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACpC,KAAK,GAAE,MAAiB,GACvB,OAAO,CAAC,IAAI,CAAC;IAWV,SAAS,CACb,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;CAWnD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Append-only audit log for billing-related events.
|
|
3
|
+
*/
|
|
4
|
+
export class BillingEventService {
|
|
5
|
+
db;
|
|
6
|
+
constructor(db) {
|
|
7
|
+
this.db = db;
|
|
8
|
+
}
|
|
9
|
+
async log(organizationId, eventType, detail = {}, actor = "system") {
|
|
10
|
+
await this.db.billingEvent.create({
|
|
11
|
+
data: {
|
|
12
|
+
organizationId,
|
|
13
|
+
eventType,
|
|
14
|
+
detail: detail,
|
|
15
|
+
actor,
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
async getEvents(organizationId, options) {
|
|
20
|
+
return this.db.billingEvent.findMany({
|
|
21
|
+
where: {
|
|
22
|
+
organizationId,
|
|
23
|
+
...(options?.eventType ? { eventType: options.eventType } : {}),
|
|
24
|
+
},
|
|
25
|
+
orderBy: { createdAt: "desc" },
|
|
26
|
+
take: options?.limit ?? 50,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=billing-event-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing-event-service.js","sourceRoot":"","sources":["../../src/services/billing-event-service.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,MAAM,OAAO,mBAAmB;IACV;IAApB,YAAoB,EAAgB;QAAhB,OAAE,GAAF,EAAE,CAAc;IAAG,CAAC;IAExC,KAAK,CAAC,GAAG,CACP,cAAsB,EACtB,SAA2B,EAC3B,SAAkC,EAAE,EACpC,QAAgB,QAAQ;QAExB,MAAM,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;YAChC,IAAI,EAAE;gBACJ,cAAc;gBACd,SAAS;gBACT,MAAM,EAAE,MAA+B;gBACvC,KAAK;aACN;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CACb,cAAsB,EACtB,OAAgD;QAEhD,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC;YACnC,KAAK,EAAE;gBACL,cAAc;gBACd,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChE;YACD,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;YAC9B,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;SAC3B,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -13,6 +13,7 @@ import type { ChunkService } from "./chunk-service.js";
|
|
|
13
13
|
import type { TagService } from "./tag-service.js";
|
|
14
14
|
import type { PiiEncryptionService } from "./pii-encryption-service.js";
|
|
15
15
|
import type { PiiEncryptionOptions } from "./pii-encryption-service.js";
|
|
16
|
+
import type { UsageService } from "./usage-service.js";
|
|
16
17
|
/**
|
|
17
18
|
* Minimal GCS interface so core doesn't depend on @google-cloud/storage.
|
|
18
19
|
* The API package passes the real `Storage` instance which satisfies this.
|
|
@@ -50,8 +51,9 @@ export declare class DocumentService {
|
|
|
50
51
|
private tagService;
|
|
51
52
|
private piiEncryption?;
|
|
52
53
|
private piiOptions?;
|
|
54
|
+
private usageService?;
|
|
53
55
|
private tenantCtx;
|
|
54
|
-
constructor(db: PrismaClient, storage: GcsStorage, bucketName: string, ocrService: OcrService, nodeService: NodeService, chunkService: ChunkService, tagService: TagService, piiEncryption?: PiiEncryptionService | undefined, piiOptions?: PiiEncryptionOptions | undefined, tenantCtx?: TenantContext);
|
|
56
|
+
constructor(db: PrismaClient, storage: GcsStorage, bucketName: string, ocrService: OcrService, nodeService: NodeService, chunkService: ChunkService, tagService: TagService, piiEncryption?: PiiEncryptionService | undefined, piiOptions?: PiiEncryptionOptions | undefined, tenantCtx?: TenantContext, usageService?: UsageService | undefined);
|
|
55
57
|
/**
|
|
56
58
|
* Create Document records and generate signed PUT URLs for direct upload.
|
|
57
59
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-service.d.ts","sourceRoot":"","sources":["../../src/services/document-service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"document-service.d.ts","sourceRoot":"","sources":["../../src/services/document-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,8 +19,9 @@ export class DocumentService {
|
|
|
19
19
|
tagService;
|
|
20
20
|
piiEncryption;
|
|
21
21
|
piiOptions;
|
|
22
|
+
usageService;
|
|
22
23
|
tenantCtx;
|
|
23
|
-
constructor(db, storage, bucketName, ocrService, nodeService, chunkService, tagService, piiEncryption, piiOptions, tenantCtx) {
|
|
24
|
+
constructor(db, storage, bucketName, ocrService, nodeService, chunkService, tagService, piiEncryption, piiOptions, tenantCtx, usageService) {
|
|
24
25
|
this.db = db;
|
|
25
26
|
this.storage = storage;
|
|
26
27
|
this.bucketName = bucketName;
|
|
@@ -30,6 +31,7 @@ export class DocumentService {
|
|
|
30
31
|
this.tagService = tagService;
|
|
31
32
|
this.piiEncryption = piiEncryption;
|
|
32
33
|
this.piiOptions = piiOptions;
|
|
34
|
+
this.usageService = usageService;
|
|
33
35
|
this.tenantCtx = tenantCtx ?? { organizationId: SINGLE_TENANT_ORG_ID };
|
|
34
36
|
}
|
|
35
37
|
/**
|
|
@@ -162,6 +164,10 @@ export class DocumentService {
|
|
|
162
164
|
const ocrResult = await this.ocrService.extractText(readUrl);
|
|
163
165
|
// Count pages from --- separators
|
|
164
166
|
const pageCount = ocrResult.text.split("\n---\n").length;
|
|
167
|
+
// 5b. Meter OCR page usage
|
|
168
|
+
if (this.usageService) {
|
|
169
|
+
await this.usageService.incrementOcrPages(this.tenantCtx.organizationId, pageCount);
|
|
170
|
+
}
|
|
165
171
|
// 6. Create node with extracted text
|
|
166
172
|
const node = await this.nodeService.create({
|
|
167
173
|
type: "document",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document-service.js","sourceRoot":"","sources":["../../src/services/document-service.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"document-service.js","sourceRoot":"","sources":["../../src/services/document-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { PrismaClient } from "@prisma/client";
|
|
2
|
+
import { UsageService, type PlanLimits } from "./usage-service.js";
|
|
3
|
+
export declare class QuotaError extends Error {
|
|
4
|
+
readonly resource: string;
|
|
5
|
+
readonly current: number;
|
|
6
|
+
readonly limit: number;
|
|
7
|
+
readonly plan: string;
|
|
8
|
+
constructor(resource: string, current: number, limit: number, plan: string);
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Enforces plan-based quotas with optional per-org overrides.
|
|
12
|
+
*
|
|
13
|
+
* Quota checks happen at the service/route level so that all clients
|
|
14
|
+
* (web, CLI, MCP, agents) are gated consistently.
|
|
15
|
+
*/
|
|
16
|
+
export declare class QuotaService {
|
|
17
|
+
private db;
|
|
18
|
+
private usageService;
|
|
19
|
+
constructor(db: PrismaClient, usageService: UsageService);
|
|
20
|
+
checkOcrQuota(orgId: string, pagesToProcess: number): Promise<void>;
|
|
21
|
+
checkStorageQuota(orgId: string, bytesToAdd: number): Promise<void>;
|
|
22
|
+
checkAgentRunQuota(orgId: string): Promise<void>;
|
|
23
|
+
checkNodeQuota(orgId: string): Promise<void>;
|
|
24
|
+
checkMemberQuota(orgId: string): Promise<void>;
|
|
25
|
+
checkFileSizeLimit(orgId: string, sizeBytes: number): Promise<void>;
|
|
26
|
+
checkPagePerDocumentLimit(orgId: string, pageCount: number): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Get the effective limits for an org, factoring in seat count and overrides.
|
|
29
|
+
*/
|
|
30
|
+
getEffectiveLimits(orgId: string): Promise<PlanLimits & {
|
|
31
|
+
plan: string;
|
|
32
|
+
}>;
|
|
33
|
+
/**
|
|
34
|
+
* Resolve the effective limit for a resource, checking for overrides first.
|
|
35
|
+
* For pro plans, per-seat metrics are multiplied by seat count.
|
|
36
|
+
*/
|
|
37
|
+
private resolveLimit;
|
|
38
|
+
/**
|
|
39
|
+
* Helper to get current usage + effective limit for a periodic metric.
|
|
40
|
+
*/
|
|
41
|
+
private getEffectiveUsage;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=quota-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota-service.d.ts","sourceRoot":"","sources":["../../src/services/quota-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEnE,qBAAa,UAAW,SAAQ,KAAK;aAEjB,QAAQ,EAAE,MAAM;aAChB,OAAO,EAAE,MAAM;aACf,KAAK,EAAE,MAAM;aACb,IAAI,EAAE,MAAM;gBAHZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM;CAK/B;AAED;;;;;GAKG;AACH,qBAAa,YAAY;IAErB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,YAAY;gBADZ,EAAE,EAAE,YAAY,EAChB,YAAY,EAAE,YAAY;IAG9B,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnE,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnE,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOhD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5C,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9C,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnE,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhF;;OAEG;IACG,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAqB/E;;;OAGG;YACW,YAAY;IAmC1B;;OAEG;YACW,iBAAiB;CAsBhC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { UsageService } from "./usage-service.js";
|
|
2
|
+
export class QuotaError extends Error {
|
|
3
|
+
resource;
|
|
4
|
+
current;
|
|
5
|
+
limit;
|
|
6
|
+
plan;
|
|
7
|
+
constructor(resource, current, limit, plan) {
|
|
8
|
+
super(`Quota exceeded for ${resource}: ${current}/${limit} on ${plan} plan`);
|
|
9
|
+
this.resource = resource;
|
|
10
|
+
this.current = current;
|
|
11
|
+
this.limit = limit;
|
|
12
|
+
this.plan = plan;
|
|
13
|
+
this.name = "QuotaError";
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Enforces plan-based quotas with optional per-org overrides.
|
|
18
|
+
*
|
|
19
|
+
* Quota checks happen at the service/route level so that all clients
|
|
20
|
+
* (web, CLI, MCP, agents) are gated consistently.
|
|
21
|
+
*/
|
|
22
|
+
export class QuotaService {
|
|
23
|
+
db;
|
|
24
|
+
usageService;
|
|
25
|
+
constructor(db, usageService) {
|
|
26
|
+
this.db = db;
|
|
27
|
+
this.usageService = usageService;
|
|
28
|
+
}
|
|
29
|
+
async checkOcrQuota(orgId, pagesToProcess) {
|
|
30
|
+
const { plan, current, limit } = await this.getEffectiveUsage(orgId, "maxOcrPagesPerMonth", "ocr_pages");
|
|
31
|
+
if (current + pagesToProcess > limit) {
|
|
32
|
+
throw new QuotaError("ocr_pages", current, limit, plan);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async checkStorageQuota(orgId, bytesToAdd) {
|
|
36
|
+
const { plan, limit } = await this.getEffectiveUsage(orgId, "maxStorageBytes", "storage_bytes");
|
|
37
|
+
const current = await this.usageService.getStorageUsed(orgId);
|
|
38
|
+
if (current + bytesToAdd > limit) {
|
|
39
|
+
throw new QuotaError("storage_bytes", current, limit, plan);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
async checkAgentRunQuota(orgId) {
|
|
43
|
+
const { plan, current, limit } = await this.getEffectiveUsage(orgId, "maxAgentRunsPerMonth", "agent_runs");
|
|
44
|
+
if (current >= limit) {
|
|
45
|
+
throw new QuotaError("agent_runs", current, limit, plan);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async checkNodeQuota(orgId) {
|
|
49
|
+
const snapshot = await this.usageService.getUsage(orgId);
|
|
50
|
+
const limit = await this.resolveLimit(orgId, snapshot.plan, "maxNodes", "nodes");
|
|
51
|
+
if (snapshot.usage.nodes >= limit) {
|
|
52
|
+
throw new QuotaError("nodes", snapshot.usage.nodes, limit, snapshot.plan);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
async checkMemberQuota(orgId) {
|
|
56
|
+
const snapshot = await this.usageService.getUsage(orgId);
|
|
57
|
+
const limit = await this.resolveLimit(orgId, snapshot.plan, "maxMembers", "members");
|
|
58
|
+
if (snapshot.usage.members >= limit) {
|
|
59
|
+
throw new QuotaError("members", snapshot.usage.members, limit, snapshot.plan);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
async checkFileSizeLimit(orgId, sizeBytes) {
|
|
63
|
+
const snapshot = await this.usageService.getUsage(orgId);
|
|
64
|
+
const limit = await this.resolveLimit(orgId, snapshot.plan, "maxFileSizeBytes", "file_size_bytes");
|
|
65
|
+
if (sizeBytes > limit) {
|
|
66
|
+
throw new QuotaError("file_size_bytes", sizeBytes, limit, snapshot.plan);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
async checkPagePerDocumentLimit(orgId, pageCount) {
|
|
70
|
+
const snapshot = await this.usageService.getUsage(orgId);
|
|
71
|
+
const limit = await this.resolveLimit(orgId, snapshot.plan, "maxPagesPerDocument", "pages_per_document");
|
|
72
|
+
if (pageCount > limit) {
|
|
73
|
+
throw new QuotaError("pages_per_document", pageCount, limit, snapshot.plan);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get the effective limits for an org, factoring in seat count and overrides.
|
|
78
|
+
*/
|
|
79
|
+
async getEffectiveLimits(orgId) {
|
|
80
|
+
const snapshot = await this.usageService.getUsage(orgId);
|
|
81
|
+
const baseLimits = snapshot.limits;
|
|
82
|
+
const seats = snapshot.usage.members;
|
|
83
|
+
// Pro per-seat limits are multiplied by seat count
|
|
84
|
+
const isPro = snapshot.plan === "pro";
|
|
85
|
+
const effectiveLimits = {
|
|
86
|
+
maxNodes: await this.resolveLimit(orgId, snapshot.plan, "maxNodes", "nodes"),
|
|
87
|
+
maxApiCallsPerMonth: await this.resolveLimit(orgId, snapshot.plan, "maxApiCallsPerMonth", "api_calls"),
|
|
88
|
+
maxMembers: await this.resolveLimit(orgId, snapshot.plan, "maxMembers", "members"),
|
|
89
|
+
maxOcrPagesPerMonth: await this.resolveLimit(orgId, snapshot.plan, "maxOcrPagesPerMonth", "ocr_pages"),
|
|
90
|
+
maxStorageBytes: await this.resolveLimit(orgId, snapshot.plan, "maxStorageBytes", "storage_bytes"),
|
|
91
|
+
maxAgentRunsPerMonth: await this.resolveLimit(orgId, snapshot.plan, "maxAgentRunsPerMonth", "agent_runs"),
|
|
92
|
+
maxFileSizeBytes: await this.resolveLimit(orgId, snapshot.plan, "maxFileSizeBytes", "file_size_bytes"),
|
|
93
|
+
maxPagesPerDocument: await this.resolveLimit(orgId, snapshot.plan, "maxPagesPerDocument", "pages_per_document"),
|
|
94
|
+
};
|
|
95
|
+
return { ...effectiveLimits, plan: snapshot.plan };
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Resolve the effective limit for a resource, checking for overrides first.
|
|
99
|
+
* For pro plans, per-seat metrics are multiplied by seat count.
|
|
100
|
+
*/
|
|
101
|
+
async resolveLimit(orgId, plan, limitKey, resource) {
|
|
102
|
+
// Check for active override
|
|
103
|
+
const override = await this.db.quotaOverride.findFirst({
|
|
104
|
+
where: {
|
|
105
|
+
organizationId: orgId,
|
|
106
|
+
resource,
|
|
107
|
+
OR: [
|
|
108
|
+
{ expiresAt: null },
|
|
109
|
+
{ expiresAt: { gt: new Date() } },
|
|
110
|
+
],
|
|
111
|
+
},
|
|
112
|
+
orderBy: { createdAt: "desc" },
|
|
113
|
+
});
|
|
114
|
+
if (override) {
|
|
115
|
+
return override.overrideLimit;
|
|
116
|
+
}
|
|
117
|
+
const baseLimits = UsageService.getPlanLimits(plan);
|
|
118
|
+
const baseValue = baseLimits[limitKey];
|
|
119
|
+
// For pro plan, per-seat metrics scale with seat count
|
|
120
|
+
if (plan === "pro" && PER_SEAT_METRICS.includes(resource)) {
|
|
121
|
+
const seats = await this.db.membership.count({ where: { organizationId: orgId } });
|
|
122
|
+
return baseValue * Math.max(seats, 1);
|
|
123
|
+
}
|
|
124
|
+
return baseValue;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Helper to get current usage + effective limit for a periodic metric.
|
|
128
|
+
*/
|
|
129
|
+
async getEffectiveUsage(orgId, limitKey, resource) {
|
|
130
|
+
const snapshot = await this.usageService.getUsage(orgId);
|
|
131
|
+
const limit = await this.resolveLimit(orgId, snapshot.plan, limitKey, resource);
|
|
132
|
+
// Map resource to usage field
|
|
133
|
+
const usageMap = {
|
|
134
|
+
ocr_pages: snapshot.usage.ocrPages,
|
|
135
|
+
agent_runs: snapshot.usage.agentRuns,
|
|
136
|
+
storage_bytes: snapshot.usage.storageBytes,
|
|
137
|
+
api_calls: snapshot.usage.apiCalls,
|
|
138
|
+
};
|
|
139
|
+
return {
|
|
140
|
+
plan: snapshot.plan,
|
|
141
|
+
current: usageMap[resource] ?? 0,
|
|
142
|
+
limit,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/** Metrics that scale linearly with seat count on pro plans. */
|
|
147
|
+
const PER_SEAT_METRICS = ["ocr_pages", "storage_bytes", "agent_runs"];
|
|
148
|
+
//# sourceMappingURL=quota-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota-service.js","sourceRoot":"","sources":["../../src/services/quota-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota-service.test.d.ts","sourceRoot":"","sources":["../../src/services/quota-service.test.ts"],"names":[],"mappings":""}
|