primitive-admin 1.2.0-alpha.0 → 1.2.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -94,7 +94,8 @@ export function writableFieldNames(table, mode) {
94
94
  * The field names the server PERSISTS for this table in `mode`: the writable
95
95
  * fields, plus the `deprecated` classifications — "still writable, superseded
96
96
  * by another field" is what that kind means (`types.ts`), so a superseded key
97
- * a handler still honors (`accessPolicy`, `passkeyRpId`) belongs in every
97
+ * a handler still honors (`passkeyRpId`, or a flat chat key such as
98
+ * `systemPrompt` under `[[configs]]`, #3626) belongs in every
98
99
  * accepted set, and a field that is NOT writable belongs in none of them.
99
100
  *
100
101
  * Stated once here because three consumers need the same answer: the generated
@@ -2363,6 +2364,27 @@ export const RETIRED_CONFIG_KEYS = {
2363
2364
  "send `emailSignInEnabled`.",
2364
2365
  },
2365
2366
  },
2367
+ // #3996 — a bucket's access is `preset` (#1020). The old spelling stayed
2368
+ // accepted as an alias, which left two vocabularies for one decision —
2369
+ // `owner-only` still read as "the uploader", the bug #1020 fixed — and an
2370
+ // echo whose value depended on the row's age. A file or body that still
2371
+ // carries it is refused rather than mapped, so the author meets the new
2372
+ // vocabulary once. The model attribute stays declared: a pre-#1020 row
2373
+ // still resolves to its preset (`resolveBucketPreset`).
2374
+ bucket: {
2375
+ accessPolicy: {
2376
+ toml: "`accessPolicy` is no longer authored in TOML (#3996): a bucket's " +
2377
+ "access is `preset`. Map the value — `public-read` → `public`, " +
2378
+ "`authenticated` → `authenticated`, `owner-only` → `admin-only` (it " +
2379
+ "always meant app admins; `personal-uploads` is the per-uploader " +
2380
+ "preset). Replace the line and push again, or `config pull` rewrites " +
2381
+ "the file.",
2382
+ request: "`accessPolicy` is retired (#3996): send `preset`. `public-read` → " +
2383
+ "`public`, `authenticated` → `authenticated`, `owner-only` → " +
2384
+ "`admin-only` (app admins; `personal-uploads` is the per-uploader " +
2385
+ "preset).",
2386
+ },
2387
+ },
2366
2388
  // #2645 — pausing moved off `state` onto its own field, so `state` stopped
2367
2389
  // being author-writable rather than becoming a second way to say "paused".
2368
2390
  // Every pre-#2645 pull wrote the line, so existing repos hit this on their
@@ -2520,6 +2542,47 @@ export const RETIRED_CONFIG_KEYS = {
2520
2542
  "Omit the field.",
2521
2543
  },
2522
2544
  },
2545
+ // #3998 — a test-case sidecar names what it pins: the configuration it runs
2546
+ // under and its judge prompt, by name, so the file means the same thing in
2547
+ // every app. The id spellings were deprecated TOML-only keys that won over
2548
+ // the name, and — unlike every other retired key — `config pull` still WROTE
2549
+ // them whenever its id→name lookup missed, so the spelling kept being
2550
+ // generated. Pull now reports such a case instead of writing an id.
2551
+ //
2552
+ // The three stay the stored references the admin API accepts on create and
2553
+ // update, so the `request` wording below is never shown: `rememberRetiredKeys`
2554
+ // and the admin API's unknown-key check both skip a key the wire accepts. It
2555
+ // is here because the entry's shape requires it.
2556
+ test: {
2557
+ configId: {
2558
+ toml: "`configId` is no longer authored in TOML (#3998): a test case names " +
2559
+ "the configuration it runs under, so the file means the same thing in " +
2560
+ "every app. Replace the line with `configName = \"…\"` (a " +
2561
+ "`[[configs]]` name of the block this sidecar belongs to), or delete it " +
2562
+ "to run the active configuration, and push again.",
2563
+ request: "`configId` is the stored configuration reference; only its TOML " +
2564
+ "spelling is retired (#3998). Sidecars author it as `configName`.",
2565
+ },
2566
+ evaluatorPromptId: {
2567
+ toml: "`evaluatorPromptId` is no longer authored in TOML (#3998): a test " +
2568
+ "case names its judge prompt, so the file means the same thing in " +
2569
+ "every app. Replace the line with `evaluatorPromptKey = \"…\"` (the " +
2570
+ "judge prompt's key) and push again.",
2571
+ request: "`evaluatorPromptId` is the stored judge-prompt reference; only its " +
2572
+ "TOML spelling is retired (#3998). Sidecars author it as " +
2573
+ "`evaluatorPromptKey`.",
2574
+ },
2575
+ evaluatorConfigId: {
2576
+ toml: "`evaluatorConfigId` is no longer authored in TOML (#3998): a test " +
2577
+ "case names its judge's configuration, so the file means the same " +
2578
+ "thing in every app. Replace the line with " +
2579
+ "`evaluatorConfigName = \"…\"` (a `[[configs]]` name of the prompt " +
2580
+ "`evaluatorPromptKey` names) and push again.",
2581
+ request: "`evaluatorConfigId` is the stored judge-configuration reference; only " +
2582
+ "its TOML spelling is retired (#3998). Sidecars author it as " +
2583
+ "`evaluatorConfigName`.",
2584
+ },
2585
+ },
2523
2586
  // #2803 — availability is one server-owned `status`. As a TOML key it made
2524
2587
  // `config push` a second writer: pushing a file pulled before an operator ran
2525
2588
  // `workflows disable` put the workflow back in service as a side effect.
@@ -5408,7 +5471,8 @@ export function resolveDecisionsRunQuestions(questions, runCriteria) {
5408
5471
  }
5409
5472
  /**
5410
5473
  * Move the deprecated flat chat keys of one `[[configs]]` entry under `chat`
5411
- * — #3626 §4, the blob-bucket `accessPolicy` precedent made reusable.
5474
+ * — #3626 §4, the deprecated-TOML-key pattern blob buckets used until #3996
5475
+ * retired theirs, made reusable.
5412
5476
  *
5413
5477
  * Push keeps accepting the nine keys flat so no existing file breaks, and pull
5414
5478
  * rewrites them, so one pull-then-push migrates a file. A key present in BOTH
@@ -6872,7 +6936,8 @@ const SHARED_WITH_AGENT = ["chat", "agent"];
6872
6936
  /**
6873
6937
  * #3626 §4 — the nine chat keys, still accepted FLAT under `[[configs]]`.
6874
6938
  *
6875
- * The blob-bucket `accessPolicy` precedent: declared `deprecated`, so
6939
+ * The deprecated-TOML-key pattern blob buckets used until #3996 retired
6940
+ * theirs: declared `deprecated`, so
6876
6941
  * `config push` keeps taking a file written before the `[configs.chat]` block
6877
6942
  * existed, while `config pull` never writes the spelling again. One
6878
6943
  * pull-then-push migrates a file. `hoistDeprecatedChatKeys` moves them into the
@@ -8214,8 +8279,9 @@ export const CRON_TRIGGER_SURFACE = {
8214
8279
  *
8215
8280
  * `ttlTier` is `writableOn: ["create"]`: the update handler does not read it, so
8216
8281
  * the retention tier is fixed at creation. `preset` and `ruleSetId` are the two
8217
- * halves of the access model (#1020) — at most one may change per request, which
8218
- * is the controller's rule and stays there.
8282
+ * halves of the access model (#1020), and the only access keys: at most one may
8283
+ * change per request, which is the controller's rule and stays there. The
8284
+ * pre-#1020 `accessPolicy` spelling is a retired key (#3996, `retired-keys.ts`).
8219
8285
  */
8220
8286
  const BLOB_BUCKET_HANDLER = "src/app-api/controllers/blob-buckets-controller.ts";
8221
8287
  export const BLOB_BUCKET_SURFACE = {
@@ -8294,11 +8360,11 @@ export const BLOB_BUCKET_SURFACE = {
8294
8360
  "TOML spelling is declared in tomlOnlyKeys as `key`.",
8295
8361
  },
8296
8362
  accessPolicy: {
8297
- kind: "deprecated",
8298
- note: "#1020 — the legacy access field, superseded by `preset`. Still " +
8299
- "accepted on the wire and returned as a read alias, but authors " +
8300
- "write `preset`, so pull does not emit it (writing both would " +
8301
- "author the same decision twice).",
8363
+ kind: "server-owned",
8364
+ note: "RETIRED from the write surface by #3996, superseded by `preset` " +
8365
+ "(#1020). The attribute stays declared so `resolveBucketPreset` " +
8366
+ "can read a pre-#1020 row; no write path accepts it and no " +
8367
+ "serializer emits it.",
8302
8368
  },
8303
8369
  createdBy: {
8304
8370
  kind: "server-owned",
@@ -8319,12 +8385,6 @@ export const BLOB_BUCKET_SURFACE = {
8319
8385
  note: "The bucket key. `config pull` writes it for readability; push takes " +
8320
8386
  "the identity from the file name and attaches `bucketKey` itself.",
8321
8387
  },
8322
- accessPolicy: {
8323
- kind: "deprecated",
8324
- note: "Accepted in existing files as the pre-#1020 spelling of `preset` " +
8325
- "and forwarded on push, so an unmigrated file still pushes. Pull " +
8326
- "writes `preset`.",
8327
- },
8328
8388
  },
8329
8389
  responseOnlyKeys: {},
8330
8390
  },
@@ -9552,11 +9612,13 @@ export const SERVER_FUNCTION_SURFACE = {
9552
9612
  * which is exactly why the spec names them explicitly: nothing that syncs sits
9553
9613
  * outside the registry.
9554
9614
  *
9555
- * Three fields are stored as ids and AUTHORED as keys — `configId` /
9615
+ * Three fields are stored as ids and AUTHORED as names — `configId` /
9556
9616
  * `evaluatorPromptId` / `evaluatorConfigId` become `configName` /
9557
9617
  * `evaluatorPromptKey` / `evaluatorConfigName` — so a test file is portable
9558
- * across apps. The legacy id spellings stay accepted on push and are declared
9559
- * in `tomlOnlyKeys`.
9618
+ * across apps. The id spellings are retired from the TOML surface (#3998):
9619
+ * `config push` refuses a sidecar that still carries one, with the guidance in
9620
+ * `retired-keys.ts`, and `config pull` reports a reference it cannot resolve
9621
+ * rather than writing an id. On the wire the three stay ids.
9560
9622
  *
9561
9623
  * Three more are stored as JSON strings and carried in TOML as JSON strings
9562
9624
  * (`inputVariables`, `expectedOutputContains`, `expectedJsonSubset`) while the
@@ -9733,23 +9795,7 @@ export const TEST_CASE_SURFACE = {
9733
9795
  note: "Timestamp, assigned server-side.",
9734
9796
  },
9735
9797
  },
9736
- tomlOnlyKeys: {
9737
- configId: {
9738
- kind: "deprecated",
9739
- note: "The legacy id-based config reference. Still accepted on push so " +
9740
- "an unmigrated file pushes unchanged; pull writes `configName`.",
9741
- },
9742
- evaluatorPromptId: {
9743
- kind: "deprecated",
9744
- note: "The legacy id-based evaluator-prompt reference; pull writes " +
9745
- "`evaluatorPromptKey`.",
9746
- },
9747
- evaluatorConfigId: {
9748
- kind: "deprecated",
9749
- note: "The legacy id-based evaluator-config reference; pull writes " +
9750
- "`evaluatorConfigName`.",
9751
- },
9752
- },
9798
+ tomlOnlyKeys: {},
9753
9799
  responseOnlyKeys: {},
9754
9800
  },
9755
9801
  ],