@open-macaron/review 0.3.2 → 0.3.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.
Files changed (2) hide show
  1. package/macaron-review.mjs +72 -2
  2. package/package.json +1 -1
@@ -28913,6 +28913,15 @@ var Me = external_exports.object({
28913
28913
  role: external_exports.enum(["user", "admin"]),
28914
28914
  capabilities: external_exports.array(Capability)
28915
28915
  });
28916
+ var MonthlyCapUsd = external_exports.number().positive("a cap is above $0").max(1e5).multipleOf(0.01, "whole cents").nullable();
28917
+ var SetMonthlyCap = external_exports.object({ monthlyCapUsd: MonthlyCapUsd });
28918
+ var MyMonth = external_exports.object({
28919
+ monthlyCapUsd: MonthlyCapUsd,
28920
+ /** Settled runs billed to this user's key. */
28921
+ spentUsd: external_exports.number().nonnegative(),
28922
+ /** The limits of their runs not settled yet, counted against the cap until they are. */
28923
+ reservedUsd: external_exports.number().nonnegative()
28924
+ });
28916
28925
  var InvitationStatus = external_exports.enum(["pending", "accepted", "revoked", "expired"]);
28917
28926
  var Invitation = external_exports.object({
28918
28927
  id: external_exports.uuid(),
@@ -28964,6 +28973,68 @@ var UsageQuery = external_exports.object({
28964
28973
  before: external_exports.string().optional(),
28965
28974
  limit: external_exports.coerce.number().int().min(1).max(100).default(25)
28966
28975
  });
28976
+ var Endpoint = external_exports.object({
28977
+ id: external_exports.uuid(),
28978
+ name: external_exports.string(),
28979
+ baseUrl: external_exports.url(),
28980
+ enabled: external_exports.boolean(),
28981
+ pricingNote: external_exports.string().nullable(),
28982
+ /** Null for the deployment's defaults (LLM_ENDPOINT_DEFAULTS). */
28983
+ createdBy: GitHubLogin.nullable(),
28984
+ createdAt: Timestamp
28985
+ });
28986
+ var Endpoints = external_exports.object({ endpoints: external_exports.array(Endpoint) });
28987
+ var EndpointBaseUrl = external_exports.url({ protocol: /^https$/, error: "an https:// URL" }).refine((value) => {
28988
+ const url2 = URL.parse(value);
28989
+ return url2 === null || url2.username === "" && url2.password === "" && url2.search === "" && url2.hash === "";
28990
+ }, "no credentials, query or fragment in the URL").transform((value) => value.replace(/\/+$/, ""));
28991
+ var CreateEndpoint = external_exports.object({
28992
+ name: external_exports.string().trim().min(2).max(60),
28993
+ baseUrl: EndpointBaseUrl,
28994
+ pricingNote: external_exports.string().trim().max(280).nullish().transform((note) => note === void 0 || note === null || note === "" ? null : note)
28995
+ });
28996
+ var SetEndpointEnabled = external_exports.object({ enabled: external_exports.boolean() });
28997
+ var EndpointChoice = Endpoint.pick({ id: true, name: true, baseUrl: true, pricingNote: true });
28998
+ var LlmKeyStatus = external_exports.enum(["valid", "rejected"]);
28999
+ var LlmKey = external_exports.object({
29000
+ endpoint: Endpoint.pick({ id: true, name: true, baseUrl: true, pricingNote: true, enabled: true }),
29001
+ last4: external_exports.string(),
29002
+ /** `rejected` once the endpoint refused it during a run: save it again, or another. */
29003
+ status: LlmKeyStatus,
29004
+ validatedAt: Timestamp,
29005
+ createdAt: Timestamp,
29006
+ updatedAt: Timestamp
29007
+ });
29008
+ var MyLlmKey = external_exports.object({
29009
+ key: LlmKey.nullable(),
29010
+ /** The enabled endpoints a key may be saved for. */
29011
+ endpoints: external_exports.array(EndpointChoice),
29012
+ /** False when this deployment can't store keys (no key-encryption key): saving is refused. */
29013
+ storage: external_exports.boolean(),
29014
+ /** Until when this session may save or delete a key; sign in again after. */
29015
+ freshUntil: Timestamp
29016
+ });
29017
+ var SaveLlmKey = external_exports.object({
29018
+ endpointId: external_exports.uuid(),
29019
+ key: external_exports.string().trim().min(8, "too short for an API key").max(1024, "too long for an API key").regex(/^[\x21-\x7e]+$/, "printable characters only, without spaces")
29020
+ });
29021
+ var SavedLlmKey = external_exports.object({
29022
+ key: LlmKey,
29023
+ /** Models the configuration uses that the endpoint didn't list: runs needing them would fail. */
29024
+ missingModels: external_exports.array(external_exports.string())
29025
+ });
29026
+ var LlmKeyEventKind = external_exports.enum(["created", "replaced", "deleted", "used", "rejected", "unreachable"]);
29027
+ var LlmKeyEvent = external_exports.object({
29028
+ id: external_exports.uuid(),
29029
+ kind: LlmKeyEventKind,
29030
+ at: Timestamp,
29031
+ endpointName: external_exports.string().nullable(),
29032
+ last4: external_exports.string().nullable(),
29033
+ /** The thread of the run that used the key, for `used` and `rejected` during a run. */
29034
+ thread: external_exports.object({ repo: external_exports.string(), number: external_exports.int().positive(), kind: external_exports.enum(["issue", "pull"]) }).nullable(),
29035
+ detail: external_exports.string().nullable()
29036
+ });
29037
+ var LlmKeyEvents = external_exports.object({ events: external_exports.array(LlmKeyEvent), nextCursor: external_exports.string().nullable() });
28967
29038
 
28968
29039
  // ../contracts/src/auth-fields.ts
28969
29040
  var AUTH_COOKIE_PREFIX = "macaron";
@@ -29494,7 +29565,7 @@ var GlobalFile = external_exports.strictObject({
29494
29565
  var ProjectFile = external_exports.strictObject({
29495
29566
  project: Slug,
29496
29567
  owners: external_exports.string().regex(/^@[A-Za-z0-9-]+\/[A-Za-z0-9-]+$/),
29497
- users: external_exports.array(GitHubLogin).min(1),
29568
+ /** Review bots whose comments on the bot's pull requests count, for review loops only. */
29498
29569
  bots: external_exports.array(GitHubLogin).default([]),
29499
29570
  budget: external_exports.strictObject({ monthUsd: Usd }),
29500
29571
  concurrency: external_exports.int().min(1).max(50),
@@ -29506,7 +29577,6 @@ var RepoConfig = RepoSettings.extend({
29506
29577
  repo: RepoSlug,
29507
29578
  fork: ForkName,
29508
29579
  project: Slug,
29509
- users: external_exports.array(GitHubLogin),
29510
29580
  bots: external_exports.array(GitHubLogin)
29511
29581
  });
29512
29582
  var mergeSettings = deepmergeCustom({ mergeArrays: false });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-macaron/review",
3
- "version": "0.3.2",
3
+ "version": "0.3.5",
4
4
  "description": "macaron-bot's review engine: open-macaron/knowledge rules selected by changed files, checked by an agent in a read-only session, evidence verified. Used by the bot and, as the macaron-review CLI, locally.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",