@agentsean/hosted 1.0.0 → 1.0.5

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/ee.d.ts ADDED
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Runtime bridge to the commercially-licensed `@agentsean/ee` package.
3
+ *
4
+ * `packages/ee` is not AGPL and is deliberately never published to npm. The
5
+ * open-source build therefore must not require it at *install* time — a static
6
+ * import would put `@agentsean/ee` in the published dependency tree and every
7
+ * `npx agentsean` would fail with a 404 on a package that does not exist.
8
+ *
9
+ * So the boundary is enforced at runtime instead: every EE call site loads the
10
+ * module dynamically and degrades to a documented fallback when it is absent.
11
+ * That is also what the header comment in `packages/ee/src/index.ts` has always
12
+ * described — AGPL code may reach EE "only behind a runtime entitlement /
13
+ * hosted-mode check".
14
+ *
15
+ * Fallbacks must be chosen so that the *absence* of EE is never less safe than
16
+ * its presence. Telemetry degrades to a no-op; signature verification degrades
17
+ * to rejection, never to acceptance.
18
+ */
19
+ export type EeModule = {
20
+ isEeBuild(env?: NodeJS.ProcessEnv): boolean;
21
+ traceLlm(event: unknown): Promise<void>;
22
+ stripeSignatureValid(payload: string, header: string, secret: string): boolean;
23
+ };
24
+ /** Resolves the EE module, or null in an open-source build. Result is cached. */
25
+ export declare function loadEe(): Promise<EeModule | null>;
26
+ /** Test seam. Pass null to simulate an open-source build. */
27
+ export declare function setEeForTesting(mod: EeModule | null | undefined): void;
28
+ /**
29
+ * Verify a billing webhook signature.
30
+ *
31
+ * Fail-closed: when a secret is configured but no verifier is available, the
32
+ * webhook is rejected. Accepting an unverified billing event would let anyone
33
+ * who can reach the endpoint grant themselves a paid plan.
34
+ */
35
+ export declare function verifyBillingSignature(payload: string, header: string, secret: string): Promise<boolean>;
36
+ //# sourceMappingURL=ee.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ee.d.ts","sourceRoot":"","sources":["../src/ee.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,QAAQ,GAAG;IACrB,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;CAChF,CAAC;AAIF,iFAAiF;AACjF,wBAAsB,MAAM,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CASvD;AAED,6DAA6D;AAC7D,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAEtE;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CAIlB"}
package/dist/ee.js ADDED
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Runtime bridge to the commercially-licensed `@agentsean/ee` package.
3
+ *
4
+ * `packages/ee` is not AGPL and is deliberately never published to npm. The
5
+ * open-source build therefore must not require it at *install* time — a static
6
+ * import would put `@agentsean/ee` in the published dependency tree and every
7
+ * `npx agentsean` would fail with a 404 on a package that does not exist.
8
+ *
9
+ * So the boundary is enforced at runtime instead: every EE call site loads the
10
+ * module dynamically and degrades to a documented fallback when it is absent.
11
+ * That is also what the header comment in `packages/ee/src/index.ts` has always
12
+ * described — AGPL code may reach EE "only behind a runtime entitlement /
13
+ * hosted-mode check".
14
+ *
15
+ * Fallbacks must be chosen so that the *absence* of EE is never less safe than
16
+ * its presence. Telemetry degrades to a no-op; signature verification degrades
17
+ * to rejection, never to acceptance.
18
+ */
19
+ let cached;
20
+ /** Resolves the EE module, or null in an open-source build. Result is cached. */
21
+ export async function loadEe() {
22
+ if (cached !== undefined)
23
+ return cached;
24
+ try {
25
+ cached = (await import("@agentsean/ee"));
26
+ }
27
+ catch {
28
+ // Not installed. This is the normal, supported open-source path.
29
+ cached = null;
30
+ }
31
+ return cached;
32
+ }
33
+ /** Test seam. Pass null to simulate an open-source build. */
34
+ export function setEeForTesting(mod) {
35
+ cached = mod;
36
+ }
37
+ /**
38
+ * Verify a billing webhook signature.
39
+ *
40
+ * Fail-closed: when a secret is configured but no verifier is available, the
41
+ * webhook is rejected. Accepting an unverified billing event would let anyone
42
+ * who can reach the endpoint grant themselves a paid plan.
43
+ */
44
+ export async function verifyBillingSignature(payload, header, secret) {
45
+ const ee = await loadEe();
46
+ if (!ee)
47
+ return false;
48
+ return ee.stripeSignatureValid(payload, header, secret);
49
+ }
50
+ //# sourceMappingURL=ee.js.map
package/dist/ee.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ee.js","sourceRoot":"","sources":["../src/ee.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH,IAAI,MAAmC,CAAC;AAExC,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,MAAM;IAC1B,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IACxC,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,CAAwB,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,iEAAiE;QACjE,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,eAAe,CAAC,GAAgC;IAC9D,MAAM,GAAG,GAAG,CAAC;AACf,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAe,EACf,MAAc,EACd,MAAc;IAEd,MAAM,EAAE,GAAG,MAAM,MAAM,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IACtB,OAAO,EAAE,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type Plan, type PlanId } from "./plans.js";
2
- export type EntitlementFeature = "aiVisibility" | "hostedOauth" | "whiteLabel" | "apiAccess" | "priorityQueue" | "clientSeats" | "bulkOps" | "dailyRanks";
2
+ export type EntitlementFeature = "aiVisibility" | "hostedOauth" | "whiteLabel" | "apiAccess" | "priorityQueue" | "clientSeats" | "bulkOps" | "dailyRanks" | "advancedAnalytics" | "sso" | "auditExport" | "sla";
3
3
  export declare class EntitlementError extends Error {
4
4
  readonly name = "EntitlementError";
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"entitlements.d.ts","sourceRoot":"","sources":["../src/entitlements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAE1E,MAAM,MAAM,kBAAkB,GAC1B,cAAc,GACd,aAAa,GACb,YAAY,GACZ,WAAW,GACX,eAAe,GACf,aAAa,GACb,SAAS,GACT,YAAY,CAAC;AAEjB,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,SAAkB,IAAI,sBAAsB;CAC7C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAmB3E;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,EAAE,kBAAkB,GAC1B,IAAI,CAKN"}
1
+ {"version":3,"file":"entitlements.d.ts","sourceRoot":"","sources":["../src/entitlements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAE1E,MAAM,MAAM,kBAAkB,GAC1B,cAAc,GACd,aAAa,GACb,YAAY,GACZ,WAAW,GACX,eAAe,GACf,aAAa,GACb,SAAS,GACT,YAAY,GACZ,mBAAmB,GACnB,KAAK,GACL,aAAa,GACb,KAAK,CAAC;AAEV,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,SAAkB,IAAI,sBAAsB;CAC7C;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CA2B3E;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,EAAE,kBAAkB,GAC1B,IAAI,CAKN"}
@@ -12,6 +12,14 @@ export function hasFeature(plan, feature) {
12
12
  return plan.whiteLabel;
13
13
  case "apiAccess":
14
14
  return plan.apiAccess;
15
+ case "advancedAnalytics":
16
+ return plan.advancedAnalytics;
17
+ case "sso":
18
+ return plan.sso;
19
+ case "auditExport":
20
+ return plan.auditExport;
21
+ case "sla":
22
+ return plan.sla;
15
23
  case "priorityQueue":
16
24
  return plan.priorityQueue;
17
25
  case "clientSeats":
@@ -1 +1 @@
1
- {"version":3,"file":"entitlements.js","sourceRoot":"","sources":["../src/entitlements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAA0B,MAAM,YAAY,CAAC;AAY1E,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACvB,IAAI,GAAG,kBAAkB,CAAC;CAC7C;AAED,MAAM,UAAU,UAAU,CAAC,IAAU,EAAE,OAA2B;IAChE,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,cAAc;YACjB,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,KAAK,YAAY;YACf,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,KAAK,WAAW;YACd,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,KAAK,eAAe;YAClB,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,KAAK,YAAY;YACf,OAAO,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,MAAuB,EACvB,OAA2B;IAE3B,IAAI,CAAC,YAAY,EAAE;QAAE,OAAO;IAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;QAAE,OAAO;IACtC,MAAM,IAAI,gBAAgB,CAAC,GAAG,IAAI,CAAC,IAAI,qBAAqB,OAAO,GAAG,CAAC,CAAC;AAC1E,CAAC"}
1
+ {"version":3,"file":"entitlements.js","sourceRoot":"","sources":["../src/entitlements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,EAA0B,MAAM,YAAY,CAAC;AAgB1E,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACvB,IAAI,GAAG,kBAAkB,CAAC;CAC7C;AAED,MAAM,UAAU,UAAU,CAAC,IAAU,EAAE,OAA2B;IAChE,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,cAAc;YACjB,OAAO,IAAI,CAAC,YAAY,CAAC;QAC3B,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,KAAK,YAAY;YACf,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,KAAK,WAAW;YACd,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,KAAK,mBAAmB;YACtB,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,GAAG,CAAC;QAClB,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,KAAK,KAAK;YACR,OAAO,IAAI,CAAC,GAAG,CAAC;QAClB,KAAK,eAAe;YAClB,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,KAAK,aAAa;YAChB,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,KAAK,SAAS;YACZ,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,KAAK,YAAY;YACf,OAAO,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC;IAClC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,MAAuB,EACvB,OAA2B;IAE3B,IAAI,CAAC,YAAY,EAAE;QAAE,OAAO;IAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;QAAE,OAAO;IACtC,MAAM,IAAI,gBAAgB,CAAC,GAAG,IAAI,CAAC,IAAI,qBAAqB,OAAO,GAAG,CAAC,CAAC;AAC1E,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- export { PLAN_IDS, PLANS, NON_LLM_COGS_USD, BYOK_REQUIRED, isPlanId, planOf, grossMargin, isHostedMode, type PlanId, type Plan, type RankCadence, } from "./plans.js";
1
+ export { loadEe, setEeForTesting, verifyBillingSignature, type EeModule, } from "./ee.js";
2
+ export { PLAN_IDS, PLANS, NON_LLM_COGS_USD, BYOK_REQUIRED, isPlanId, planOf, grossMargin, isHostedMode, type PlanId, type Plan, type RankCadence, monthlyPriceUsd, type Billing, } from "./plans.js";
2
3
  export { EnvelopeError, masterKeyFromEnv, encryptSecret, decryptSecret, loadOrCreateDek, } from "./envelope.js";
3
4
  export { JOBS_PER_MIN, CONCURRENT_JOBS, CRAWL_PAGES_PER_DAY, NeighbourLimitError, allowTenantJob, allowTenantCrawlPages, acquireConcurrency, releaseConcurrency, } from "./neighbour.js";
4
5
  export { CMS_WRITE_KINDS, HostedCredentialError, isCmsWriteKind, refuseHostedCmsCredential, createConnectorPairing, activateConnector, listConnectors, } from "./connector.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,KAAK,EACL,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,MAAM,EACN,WAAW,EACX,YAAY,EACZ,KAAK,MAAM,EACX,KAAK,IAAI,EACT,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,eAAe,EACf,aAAa,EACb,eAAe,EACf,eAAe,EACf,UAAU,EACV,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,eAAe,EACf,sBAAsB,EACtB,KAAK,QAAQ,GACd,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,QAAQ,EACR,KAAK,EACL,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,MAAM,EACN,WAAW,EACX,YAAY,EACZ,KAAK,MAAM,EACX,KAAK,IAAI,EACT,KAAK,WAAW,EAChB,eAAe,EACf,KAAK,OAAO,GACb,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,eAAe,EACf,aAAa,EACb,eAAe,EACf,eAAe,EACf,UAAU,EACV,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,iBAAiB,EACjB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
- export { PLAN_IDS, PLANS, NON_LLM_COGS_USD, BYOK_REQUIRED, isPlanId, planOf, grossMargin, isHostedMode, } from "./plans.js";
1
+ export { loadEe, setEeForTesting, verifyBillingSignature, } from "./ee.js";
2
+ export { PLAN_IDS, PLANS, NON_LLM_COGS_USD, BYOK_REQUIRED, isPlanId, planOf, grossMargin, isHostedMode, monthlyPriceUsd, } from "./plans.js";
2
3
  export { EnvelopeError, masterKeyFromEnv, encryptSecret, decryptSecret, loadOrCreateDek, } from "./envelope.js";
3
4
  export { JOBS_PER_MIN, CONCURRENT_JOBS, CRAWL_PAGES_PER_DAY, NeighbourLimitError, allowTenantJob, allowTenantCrawlPages, acquireConcurrency, releaseConcurrency, } from "./neighbour.js";
4
5
  export { CMS_WRITE_KINDS, HostedCredentialError, isCmsWriteKind, refuseHostedCmsCredential, createConnectorPairing, activateConnector, listConnectors, } from "./connector.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,KAAK,EACL,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,MAAM,EACN,WAAW,EACX,YAAY,GAIb,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,eAAe,EACf,aAAa,EACb,eAAe,EACf,eAAe,EACf,UAAU,EACV,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,GAGlB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAmB,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAiB,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,iBAAiB,GAElB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,eAAe,EACf,sBAAsB,GAEvB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,QAAQ,EACR,KAAK,EACL,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,MAAM,EACN,WAAW,EACX,YAAY,EAIZ,eAAe,GAEhB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,SAAS,EACT,eAAe,EACf,aAAa,EACb,eAAe,EACf,eAAe,EACf,UAAU,EACV,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,GAGlB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAmB,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAiB,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,iBAAiB,GAElB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
package/dist/plans.d.ts CHANGED
@@ -1,15 +1,32 @@
1
- /** Locked packaging from PLAN Phase 10. $8 stays as the per-site agency price. */
2
- export declare const PLAN_IDS: readonly ["self_host", "cloud_starter", "cloud_pro", "business", "agency"];
1
+ /**
2
+ * Packaging.
3
+ *
4
+ * Four tiers, deliberately. The earlier ladder ran Starter $9 → Pro $29 →
5
+ * Business $79 → Agency $249, which made a buyer read four feature matrices to
6
+ * work out which box they were in, and made every one of those boxes a place to
7
+ * argue about a missing feature. It collapses to: run it yourself, run one
8
+ * site, run a team, or call us.
9
+ *
10
+ * Team is priced **per seat**, not per site. Per-site pricing punishes the
11
+ * agency that adds a small client; per-seat scales with the value the customer
12
+ * actually gets — more people looking at the same estate.
13
+ */
14
+ export declare const PLAN_IDS: readonly ["self_host", "cloud_starter", "team", "enterprise"];
3
15
  export type PlanId = (typeof PLAN_IDS)[number];
4
16
  export type RankCadence = "weekly" | "daily";
17
+ /** Fixed monthly price, or per-seat billing where `seats` is the multiplier. */
18
+ export type Billing = "free" | "flat" | "per_seat" | "quote";
5
19
  export type Plan = {
6
20
  id: PlanId;
7
21
  name: string;
22
+ /** Flat monthly price, or the per-seat price when `billing` is per_seat. */
8
23
  priceUsdMonth: number;
24
+ billing: Billing;
9
25
  sites: number;
10
26
  ranks: RankCadence;
11
27
  aiVisibility: boolean;
12
28
  articlesMetered: boolean;
29
+ /** Included seats. Team bills each additional seat at priceUsdMonth. */
13
30
  seats: number;
14
31
  whiteLabel: boolean;
15
32
  apiAccess: boolean;
@@ -17,13 +34,21 @@ export type Plan = {
17
34
  priorityQueue: boolean;
18
35
  clientSeats: boolean;
19
36
  bulkOps: boolean;
37
+ /** Deeper reporting: cohorts, experiments, per-template attribution. */
38
+ advancedAnalytics: boolean;
39
+ /** SSO/SAML/SCIM, audit export, SLA. Enterprise only. */
40
+ sso: boolean;
41
+ auditExport: boolean;
42
+ sla: boolean;
20
43
  };
21
44
  export declare const PLANS: Record<PlanId, Plan>;
22
- /** Non-LLM COGS at BYOK. PLAN: $2.29/tenant/month → 71% gross on Starter. */
45
+ /** Non-LLM COGS at BYOK. PLAN: $2.29/tenant/month. */
23
46
  export declare const NON_LLM_COGS_USD = 2.29;
24
47
  export declare const BYOK_REQUIRED = true;
25
48
  export declare function isPlanId(value: string): value is PlanId;
26
49
  export declare function planOf(id: string): Plan;
50
+ /** Monthly charge for a plan at a given seat count. */
51
+ export declare function monthlyPriceUsd(id: PlanId, seats?: number): number;
27
52
  export declare function grossMargin(priceUsd: number): number;
28
53
  export declare function isHostedMode(env?: NodeJS.ProcessEnv): boolean;
29
54
  //# sourceMappingURL=plans.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,eAAO,MAAM,QAAQ,4EAMX,CAAC;AAEX,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7C,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAiFtC,CAAC;AAEF,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,MAAM,CAEvD;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAGvC;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAE1E"}
1
+ {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,QAAQ,+DAAgE,CAAC;AAEtF,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7C,gFAAgF;AAChF,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC;AAE7D,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,WAAW,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,wEAAwE;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,iBAAiB,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,GAAG,EAAE,OAAO,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,GAAG,EAAE,OAAO,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAqFtC,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,gBAAgB,OAAO,CAAC;AACrC,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,MAAM,CAEvD;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAGvC;AAED,uDAAuD;AACvD,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,MAAM,CAM7D;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAE1E"}
package/dist/plans.js CHANGED
@@ -1,16 +1,23 @@
1
- /** Locked packaging from PLAN Phase 10. $8 stays as the per-site agency price. */
2
- export const PLAN_IDS = [
3
- "self_host",
4
- "cloud_starter",
5
- "cloud_pro",
6
- "business",
7
- "agency",
8
- ];
1
+ /**
2
+ * Packaging.
3
+ *
4
+ * Four tiers, deliberately. The earlier ladder ran Starter $9 → Pro $29 →
5
+ * Business $79 → Agency $249, which made a buyer read four feature matrices to
6
+ * work out which box they were in, and made every one of those boxes a place to
7
+ * argue about a missing feature. It collapses to: run it yourself, run one
8
+ * site, run a team, or call us.
9
+ *
10
+ * Team is priced **per seat**, not per site. Per-site pricing punishes the
11
+ * agency that adds a small client; per-seat scales with the value the customer
12
+ * actually gets — more people looking at the same estate.
13
+ */
14
+ export const PLAN_IDS = ["self_host", "cloud_starter", "team", "enterprise"];
9
15
  export const PLANS = {
10
16
  self_host: {
11
17
  id: "self_host",
12
18
  name: "Self-host",
13
19
  priceUsdMonth: 0,
20
+ billing: "free",
14
21
  sites: Number.POSITIVE_INFINITY,
15
22
  ranks: "weekly",
16
23
  aiVisibility: true,
@@ -22,11 +29,16 @@ export const PLANS = {
22
29
  priorityQueue: false,
23
30
  clientSeats: true,
24
31
  bulkOps: true,
32
+ advancedAnalytics: true,
33
+ sso: false,
34
+ auditExport: false,
35
+ sla: false,
25
36
  },
26
37
  cloud_starter: {
27
38
  id: "cloud_starter",
28
- name: "Cloud Starter",
39
+ name: "Cloud",
29
40
  priceUsdMonth: 9,
41
+ billing: "flat",
30
42
  sites: 1,
31
43
  ranks: "weekly",
32
44
  aiVisibility: false,
@@ -38,57 +50,55 @@ export const PLANS = {
38
50
  priorityQueue: false,
39
51
  clientSeats: false,
40
52
  bulkOps: false,
53
+ advancedAnalytics: false,
54
+ sso: false,
55
+ auditExport: false,
56
+ sla: false,
41
57
  },
42
- cloud_pro: {
43
- id: "cloud_pro",
44
- name: "Cloud Pro",
45
- priceUsdMonth: 29,
46
- sites: 3,
58
+ team: {
59
+ id: "team",
60
+ name: "Team",
61
+ priceUsdMonth: 14.99,
62
+ billing: "per_seat",
63
+ sites: 25,
47
64
  ranks: "daily",
48
65
  aiVisibility: true,
49
66
  articlesMetered: true,
50
- seats: 3,
51
- whiteLabel: false,
52
- apiAccess: false,
53
- hostedOauth: true,
54
- priorityQueue: false,
55
- clientSeats: false,
56
- bulkOps: false,
57
- },
58
- business: {
59
- id: "business",
60
- name: "Business",
61
- priceUsdMonth: 79,
62
- sites: 10,
63
- ranks: "daily",
64
- aiVisibility: true,
65
- articlesMetered: true,
66
- seats: 10,
67
- whiteLabel: false,
67
+ seats: 1, // billed per additional seat
68
+ whiteLabel: true,
68
69
  apiAccess: true,
69
70
  hostedOauth: true,
70
71
  priorityQueue: true,
71
- clientSeats: false,
72
- bulkOps: false,
72
+ clientSeats: true,
73
+ bulkOps: true,
74
+ advancedAnalytics: true,
75
+ sso: false,
76
+ auditExport: false,
77
+ sla: false,
73
78
  },
74
- agency: {
75
- id: "agency",
76
- name: "Agency",
77
- priceUsdMonth: 249,
78
- sites: 50,
79
+ enterprise: {
80
+ id: "enterprise",
81
+ name: "Enterprise",
82
+ priceUsdMonth: 0, // quoted, never listed
83
+ billing: "quote",
84
+ sites: Number.POSITIVE_INFINITY,
79
85
  ranks: "daily",
80
86
  aiVisibility: true,
81
87
  articlesMetered: true,
82
- seats: 25,
88
+ seats: Number.POSITIVE_INFINITY,
83
89
  whiteLabel: true,
84
90
  apiAccess: true,
85
91
  hostedOauth: true,
86
92
  priorityQueue: true,
87
93
  clientSeats: true,
88
94
  bulkOps: true,
95
+ advancedAnalytics: true,
96
+ sso: true,
97
+ auditExport: true,
98
+ sla: true,
89
99
  },
90
100
  };
91
- /** Non-LLM COGS at BYOK. PLAN: $2.29/tenant/month → 71% gross on Starter. */
101
+ /** Non-LLM COGS at BYOK. PLAN: $2.29/tenant/month. */
92
102
  export const NON_LLM_COGS_USD = 2.29;
93
103
  export const BYOK_REQUIRED = true;
94
104
  export function isPlanId(value) {
@@ -99,6 +109,14 @@ export function planOf(id) {
99
109
  throw new Error(`unknown plan ${id}`);
100
110
  return PLANS[id];
101
111
  }
112
+ /** Monthly charge for a plan at a given seat count. */
113
+ export function monthlyPriceUsd(id, seats = 1) {
114
+ const plan = PLANS[id];
115
+ if (plan.billing === "per_seat") {
116
+ return Math.round(plan.priceUsdMonth * Math.max(1, seats) * 100) / 100;
117
+ }
118
+ return plan.priceUsdMonth;
119
+ }
102
120
  export function grossMargin(priceUsd) {
103
121
  if (priceUsd <= 0)
104
122
  return 1;
package/dist/plans.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"plans.js","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plans.js","sourceRoot":"","sources":["../src/plans.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../src/tracing.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,0DAA0D;AAC1D,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,QAAQ,EACf,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,IAAI,CAAC,CAGf"}
1
+ {"version":3,"file":"tracing.d.ts","sourceRoot":"","sources":["../src/tracing.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,0DAA0D;AAC1D,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,QAAQ,EACf,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,IAAI,CAAC,CAKf"}
package/dist/tracing.js CHANGED
@@ -1,9 +1,12 @@
1
- import { isEeBuild, traceLlm as eeTraceLlm } from "@agentsean/ee";
1
+ import { loadEe } from "./ee.js";
2
2
  import { isHostedMode } from "./plans.js";
3
3
  /** Langfuse is hosted-tier only. Self-host is a no-op. */
4
4
  export async function traceLlm(event, env = process.env) {
5
- if (!isHostedMode(env) || !isEeBuild(env))
5
+ if (!isHostedMode(env))
6
6
  return;
7
- await eeTraceLlm(event);
7
+ const ee = await loadEe();
8
+ if (!ee || !ee.isEeBuild(env))
9
+ return;
10
+ await ee.traceLlm(event);
8
11
  }
9
12
  //# sourceMappingURL=tracing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracing.js","sourceRoot":"","sources":["../src/tracing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAW1C,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,KAAe,EACf,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;QAAE,OAAO;IAClD,MAAM,UAAU,CAAC,KAAK,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"tracing.js","sourceRoot":"","sources":["../src/tracing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAW1C,0DAA0D;AAC1D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,KAAe,EACf,MAAyB,OAAO,CAAC,GAAG;IAEpC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC;QAAE,OAAO;IAC/B,MAAM,EAAE,GAAG,MAAM,MAAM,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC;QAAE,OAAO;IACtC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC3B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentsean/hosted",
3
- "version": "1.0.0",
3
+ "version": "1.0.5",
4
4
  "license": "AGPL-3.0-only",
5
5
  "type": "module",
6
6
  "exports": {
@@ -17,12 +17,12 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "drizzle-orm": "0.45.2",
20
- "@agentsean/db": "1.0.0",
21
- "@agentsean/ee": "1.0.0"
20
+ "@agentsean/db": "1.0.5"
22
21
  },
23
22
  "devDependencies": {
24
23
  "typescript": "~5.9.3",
25
- "vitest": "^4.1.11"
24
+ "vitest": "^4.1.11",
25
+ "@agentsean/ee": "1.0.5"
26
26
  },
27
27
  "publishConfig": {
28
28
  "access": "public"