primitive-admin 1.1.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.
- package/README.md +14 -13
- package/assets/skill/skills/primitive-platform/SKILL.md +6 -0
- package/dist/src/commands/collections.js +20 -17
- package/dist/src/commands/collections.js.map +1 -1
- package/dist/src/commands/connections.js +1 -5
- package/dist/src/commands/connections.js.map +1 -1
- package/dist/src/commands/database-types.js +13 -313
- package/dist/src/commands/database-types.js.map +1 -1
- package/dist/src/commands/databases.js +7 -128
- package/dist/src/commands/databases.js.map +1 -1
- package/dist/src/commands/groups.js +16 -0
- package/dist/src/commands/groups.js.map +1 -1
- package/dist/src/commands/llm.js +9 -6
- package/dist/src/commands/llm.js.map +1 -1
- package/dist/src/commands/sessions.js +3 -8
- package/dist/src/commands/sessions.js.map +1 -1
- package/dist/src/commands/settings.d.ts +18 -0
- package/dist/src/commands/settings.js +54 -0
- package/dist/src/commands/settings.js.map +1 -0
- package/dist/src/commands/sync.d.ts +77 -7
- package/dist/src/commands/sync.js +368 -198
- package/dist/src/commands/sync.js.map +1 -1
- package/dist/src/commands/tokens.js +1 -6
- package/dist/src/commands/tokens.js.map +1 -1
- package/dist/src/commands/workflows.js +3 -3
- package/dist/src/commands/workflows.js.map +1 -1
- package/dist/src/lib/api-client.d.ts +3 -70
- package/dist/src/lib/api-client.js +20 -106
- package/dist/src/lib/api-client.js.map +1 -1
- package/dist/src/lib/app-match-guard.d.ts +44 -0
- package/dist/src/lib/app-match-guard.js +72 -0
- package/dist/src/lib/app-match-guard.js.map +1 -0
- package/dist/src/lib/collection-export.d.ts +37 -9
- package/dist/src/lib/collection-export.js +48 -12
- package/dist/src/lib/collection-export.js.map +1 -1
- package/dist/src/lib/config-object-descriptor.js +2 -3
- package/dist/src/lib/config-object-descriptor.js.map +1 -1
- package/dist/src/lib/function-triggers.d.ts +66 -0
- package/dist/src/lib/function-triggers.js +285 -0
- package/dist/src/lib/function-triggers.js.map +1 -0
- package/dist/src/lib/generated-allowlist.js +0 -1
- package/dist/src/lib/generated-allowlist.js.map +1 -1
- package/dist/src/lib/generated-config-surfaces.d.ts +4 -2
- package/dist/src/lib/generated-config-surfaces.js +138 -68
- package/dist/src/lib/generated-config-surfaces.js.map +1 -1
- package/dist/src/lib/generated-sdk-types.d.ts +1 -1
- package/dist/src/lib/generated-sdk-types.js +1 -1
- package/dist/src/lib/generated-sdk-types.js.map +1 -1
- package/dist/src/lib/generated-workflow-model-fields.d.ts +20 -0
- package/dist/src/lib/generated-workflow-model-fields.js +53 -0
- package/dist/src/lib/generated-workflow-model-fields.js.map +1 -0
- package/dist/src/lib/google-client-secret-status.d.ts +35 -0
- package/dist/src/lib/google-client-secret-status.js +56 -0
- package/dist/src/lib/google-client-secret-status.js.map +1 -0
- package/dist/src/lib/log-inspection.d.ts +1 -6
- package/dist/src/lib/log-inspection.js +5 -7
- package/dist/src/lib/log-inspection.js.map +1 -1
- package/dist/src/lib/migration-nag.d.ts +2 -2
- package/dist/src/lib/migration-nag.js +4 -3
- package/dist/src/lib/migration-nag.js.map +1 -1
- package/dist/src/lib/paginate.d.ts +8 -24
- package/dist/src/lib/paginate.js +8 -21
- package/dist/src/lib/paginate.js.map +1 -1
- package/dist/src/lib/sync-dir-selector.d.ts +1 -1
- package/dist/src/lib/sync-dir-selector.js +1 -1
- package/dist/src/lib/toml-database-config.js +2 -2
- package/dist/src/lib/toml-database-config.js.map +1 -1
- package/dist/src/lib/workflow-field-descriptor.d.ts +91 -0
- package/dist/src/lib/workflow-field-descriptor.js +153 -0
- package/dist/src/lib/workflow-field-descriptor.js.map +1 -0
- package/package.json +2 -2
|
@@ -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 (`
|
|
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
|
|
@@ -2265,6 +2266,23 @@ export function unknownRequestKeysMessage(keys) {
|
|
|
2265
2266
|
`${keys.join(", ")}. This endpoint rejects keys it does not accept rather ` +
|
|
2266
2267
|
"than ignoring them.");
|
|
2267
2268
|
}
|
|
2269
|
+
// #3997 — the three type configs author their rule-set reference by name
|
|
2270
|
+
// (#2644): an id names a row in one app and resolves to nothing in another, so
|
|
2271
|
+
// a copied file failed instead of resolving. One sentence serves all three
|
|
2272
|
+
// tables. The `request` half is never surfaced: `ruleSetId` is the live body key
|
|
2273
|
+
// on all three routes, and both `rememberRetiredKeys` (`request-schema.ts`) and
|
|
2274
|
+
// the admin API's unknown-key path skip a key the schema accepts. It exists
|
|
2275
|
+
// because the interface requires both halves.
|
|
2276
|
+
const RULE_SET_ID_RETIRED = {
|
|
2277
|
+
toml: "`ruleSetId` is no longer authored in TOML (#3997). A rule-set id names " +
|
|
2278
|
+
"a row in one app and resolves to nothing in another, so the reference " +
|
|
2279
|
+
'is authored by name: replace this line with `ruleSetName = "<name>"`, ' +
|
|
2280
|
+
"where the name is the `name` the rule set's own `rule-sets/<key>.toml` " +
|
|
2281
|
+
"declares, and push again. A file pulled since #2644 already spells it " +
|
|
2282
|
+
"that way.",
|
|
2283
|
+
request: "`ruleSetId` is the live request key on this surface; only its TOML " +
|
|
2284
|
+
"spelling is retired (#3997). Send the rule set's id.",
|
|
2285
|
+
};
|
|
2268
2286
|
export const RETIRED_CONFIG_KEYS = {
|
|
2269
2287
|
// #2891 — the app-settings auth surface was reshaped so that `app.toml` can
|
|
2270
2288
|
// state what the server holds. All five keys below stay DECLARED in
|
|
@@ -2346,6 +2364,27 @@ export const RETIRED_CONFIG_KEYS = {
|
|
|
2346
2364
|
"send `emailSignInEnabled`.",
|
|
2347
2365
|
},
|
|
2348
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
|
+
},
|
|
2349
2388
|
// #2645 — pausing moved off `state` onto its own field, so `state` stopped
|
|
2350
2389
|
// being author-writable rather than becoming a second way to say "paused".
|
|
2351
2390
|
// Every pre-#2645 pull wrote the line, so existing repos hit this on their
|
|
@@ -2381,6 +2420,12 @@ export const RETIRED_CONFIG_KEYS = {
|
|
|
2381
2420
|
"`primitive cron-triggers archive` to retire the trigger (#2907).",
|
|
2382
2421
|
},
|
|
2383
2422
|
},
|
|
2423
|
+
// #3997 — keyed by each table's TOML prefix. Only `database-type-config`
|
|
2424
|
+
// uses `[type]`, so that entry cannot reach another surface; the blob
|
|
2425
|
+
// bucket's `[bucket] ruleSetId` is its live key and is not listed.
|
|
2426
|
+
type: { ruleSetId: RULE_SET_ID_RETIRED },
|
|
2427
|
+
groupTypeConfig: { ruleSetId: RULE_SET_ID_RETIRED },
|
|
2428
|
+
collectionTypeConfig: { ruleSetId: RULE_SET_ID_RETIRED },
|
|
2384
2429
|
// #2803 — the OBJECT-level availability leaves TOML. The per-version
|
|
2385
2430
|
// `[[configs]] status` (`active | archived`) is a different question — which
|
|
2386
2431
|
// named config is retired — and stays authorable.
|
|
@@ -2396,6 +2441,26 @@ export const RETIRED_CONFIG_KEYS = {
|
|
|
2396
2441
|
"`primitive prompts archive` to retire the prompt (#2907).",
|
|
2397
2442
|
},
|
|
2398
2443
|
},
|
|
2444
|
+
// #3999 — the prompt `[[configs]]` table (its TOML path is `configs`; no
|
|
2445
|
+
// other field table has that path — the workflow file's `[[configs]]` is a
|
|
2446
|
+
// document key with its own retired list). The live-config marker has one
|
|
2447
|
+
// spelling since #2645, `active`. The legacy `isActive` is refused rather
|
|
2448
|
+
// than ignored: a file whose only marker it is would otherwise push without
|
|
2449
|
+
// activating anything and leave a different config live.
|
|
2450
|
+
configs: {
|
|
2451
|
+
isActive: {
|
|
2452
|
+
toml: "`isActive` is no longer accepted on a `[[configs]]` entry (#3999). " +
|
|
2453
|
+
"The live-config marker has one spelling since #2645: write " +
|
|
2454
|
+
"`active = true` on exactly one entry (pull writes it there), delete " +
|
|
2455
|
+
"the `isActive` line and push again. The line is refused rather than " +
|
|
2456
|
+
"ignored because a file that still carries it would otherwise leave a " +
|
|
2457
|
+
"different config live.",
|
|
2458
|
+
request: "`isActive` is not a config-body key (#3999). Which config a prompt " +
|
|
2459
|
+
"runs is set through " +
|
|
2460
|
+
"`POST …/prompts/{promptId}/configs/{configId}/activate`; omit the " +
|
|
2461
|
+
"field.",
|
|
2462
|
+
},
|
|
2463
|
+
},
|
|
2399
2464
|
integration: {
|
|
2400
2465
|
status: {
|
|
2401
2466
|
toml: "`status` is no longer authored in TOML (#2803), and `draft` no longer " +
|
|
@@ -2477,6 +2542,47 @@ export const RETIRED_CONFIG_KEYS = {
|
|
|
2477
2542
|
"Omit the field.",
|
|
2478
2543
|
},
|
|
2479
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
|
+
},
|
|
2480
2586
|
// #2803 — availability is one server-owned `status`. As a TOML key it made
|
|
2481
2587
|
// `config push` a second writer: pushing a file pulled before an operator ran
|
|
2482
2588
|
// `workflows disable` put the workflow back in service as a side effect.
|
|
@@ -5365,7 +5471,8 @@ export function resolveDecisionsRunQuestions(questions, runCriteria) {
|
|
|
5365
5471
|
}
|
|
5366
5472
|
/**
|
|
5367
5473
|
* Move the deprecated flat chat keys of one `[[configs]]` entry under `chat`
|
|
5368
|
-
* — #3626 §4, the
|
|
5474
|
+
* — #3626 §4, the deprecated-TOML-key pattern blob buckets used until #3996
|
|
5475
|
+
* retired theirs, made reusable.
|
|
5369
5476
|
*
|
|
5370
5477
|
* Push keeps accepting the nine keys flat so no existing file breaks, and pull
|
|
5371
5478
|
* rewrites them, so one pull-then-push migrates a file. A key present in BOTH
|
|
@@ -6829,7 +6936,8 @@ const SHARED_WITH_AGENT = ["chat", "agent"];
|
|
|
6829
6936
|
/**
|
|
6830
6937
|
* #3626 §4 — the nine chat keys, still accepted FLAT under `[[configs]]`.
|
|
6831
6938
|
*
|
|
6832
|
-
* The
|
|
6939
|
+
* The deprecated-TOML-key pattern blob buckets used until #3996 retired
|
|
6940
|
+
* theirs: declared `deprecated`, so
|
|
6833
6941
|
* `config push` keeps taking a file written before the `[configs.chat]` block
|
|
6834
6942
|
* existed, while `config pull` never writes the spelling again. One
|
|
6835
6943
|
* pull-then-push migrates a file. `hoistDeprecatedChatKeys` moves them into the
|
|
@@ -7335,20 +7443,13 @@ export const PROMPT_SURFACE = {
|
|
|
7335
7443
|
// carry `active = true`; pull writes it on the active entry and push
|
|
7336
7444
|
// honors it on create AND update by calling the activate endpoint
|
|
7337
7445
|
// (activatePromptConfig). It is a control, never a key in the config
|
|
7338
|
-
// body.
|
|
7446
|
+
// body. It has one spelling (#3999, `retired-keys.ts`).
|
|
7339
7447
|
active: {
|
|
7340
7448
|
kind: "structural",
|
|
7341
7449
|
note: "Which config the prompt runs (#2645). Pull writes it on the " +
|
|
7342
7450
|
"active entry; push enacts it through the activate endpoint " +
|
|
7343
7451
|
"(activatePromptConfig), never as a config-body key.",
|
|
7344
7452
|
},
|
|
7345
|
-
isActive: {
|
|
7346
|
-
kind: "structural",
|
|
7347
|
-
note: "Legacy spelling of `active` — the create leg read it before pull " +
|
|
7348
|
-
"ever wrote a marker. Declared here so the unrecognized-key " +
|
|
7349
|
-
"rejection does not fail a file that has always used it; pull " +
|
|
7350
|
-
"never writes it.",
|
|
7351
|
-
},
|
|
7352
7453
|
// #3626 §4 — the nine chat keys in their pre-kind FLAT spelling.
|
|
7353
7454
|
...DEPRECATED_FLAT_CHAT_KEYS,
|
|
7354
7455
|
},
|
|
@@ -8178,8 +8279,9 @@ export const CRON_TRIGGER_SURFACE = {
|
|
|
8178
8279
|
*
|
|
8179
8280
|
* `ttlTier` is `writableOn: ["create"]`: the update handler does not read it, so
|
|
8180
8281
|
* the retention tier is fixed at creation. `preset` and `ruleSetId` are the two
|
|
8181
|
-
* halves of the access model (#1020)
|
|
8182
|
-
* 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`).
|
|
8183
8285
|
*/
|
|
8184
8286
|
const BLOB_BUCKET_HANDLER = "src/app-api/controllers/blob-buckets-controller.ts";
|
|
8185
8287
|
export const BLOB_BUCKET_SURFACE = {
|
|
@@ -8258,11 +8360,11 @@ export const BLOB_BUCKET_SURFACE = {
|
|
|
8258
8360
|
"TOML spelling is declared in tomlOnlyKeys as `key`.",
|
|
8259
8361
|
},
|
|
8260
8362
|
accessPolicy: {
|
|
8261
|
-
kind: "
|
|
8262
|
-
note: "
|
|
8263
|
-
"
|
|
8264
|
-
"
|
|
8265
|
-
"
|
|
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.",
|
|
8266
8368
|
},
|
|
8267
8369
|
createdBy: {
|
|
8268
8370
|
kind: "server-owned",
|
|
@@ -8283,12 +8385,6 @@ export const BLOB_BUCKET_SURFACE = {
|
|
|
8283
8385
|
note: "The bucket key. `config pull` writes it for readability; push takes " +
|
|
8284
8386
|
"the identity from the file name and attaches `bucketKey` itself.",
|
|
8285
8387
|
},
|
|
8286
|
-
accessPolicy: {
|
|
8287
|
-
kind: "deprecated",
|
|
8288
|
-
note: "Accepted in existing files as the pre-#1020 spelling of `preset` " +
|
|
8289
|
-
"and forwarded on push, so an unmigrated file still pushes. Pull " +
|
|
8290
|
-
"writes `preset`.",
|
|
8291
|
-
},
|
|
8292
8388
|
},
|
|
8293
8389
|
responseOnlyKeys: {},
|
|
8294
8390
|
},
|
|
@@ -8517,7 +8613,8 @@ export const DATABASE_TYPE_SURFACE = {
|
|
|
8517
8613
|
emit: "always",
|
|
8518
8614
|
writableOn: BOTH,
|
|
8519
8615
|
// Authored as a portable name and sent as an id; the server checks
|
|
8520
|
-
// the set exists and has `resourceType: "database"`.
|
|
8616
|
+
// the set exists and has `resourceType: "database"`. The id
|
|
8617
|
+
// spelling is retired in TOML (#3997): `retired-keys.ts`, `type`.
|
|
8521
8618
|
validation: handledBy(DB_TYPE_HANDLER, "DatabaseTypeConfigController", "apply"),
|
|
8522
8619
|
},
|
|
8523
8620
|
{
|
|
@@ -8604,11 +8701,6 @@ export const DATABASE_TYPE_SURFACE = {
|
|
|
8604
8701
|
},
|
|
8605
8702
|
},
|
|
8606
8703
|
tomlOnlyKeys: {
|
|
8607
|
-
ruleSetId: {
|
|
8608
|
-
kind: "deprecated",
|
|
8609
|
-
note: "The legacy id-based rule-set reference. Still accepted on push " +
|
|
8610
|
-
"so an unmigrated file pushes unchanged; pull writes `ruleSetName`.",
|
|
8611
|
-
},
|
|
8612
8704
|
metadataAccess: {
|
|
8613
8705
|
kind: "deprecated",
|
|
8614
8706
|
note: "The legacy spelling of `celContextAccess`. Read on push when the " +
|
|
@@ -8785,8 +8877,8 @@ export const RULE_SET_SURFACE = {
|
|
|
8785
8877
|
* `ruleSetName`, because a name is portable across apps and an id is not. The
|
|
8786
8878
|
* name → id resolution is the CLI's (`config push` resolves against the app's
|
|
8787
8879
|
* rule sets); the server validates that the id exists and has
|
|
8788
|
-
* `resourceType: "group"`. The
|
|
8789
|
-
*
|
|
8880
|
+
* `resourceType: "group"`. The id spelling is refused on push (#3997), with
|
|
8881
|
+
* the guidance in `retired-keys.ts`.
|
|
8790
8882
|
*/
|
|
8791
8883
|
const GROUP_TYPE_HANDLER = "src/app-api/controllers/group-type-config-controller.ts";
|
|
8792
8884
|
export const GROUP_TYPE_CONFIG_SURFACE = {
|
|
@@ -8815,7 +8907,9 @@ export const GROUP_TYPE_CONFIG_SURFACE = {
|
|
|
8815
8907
|
emit: "always",
|
|
8816
8908
|
writableOn: BOTH,
|
|
8817
8909
|
// Authored as a name, sent as an id; existence and resourceType are
|
|
8818
|
-
// checked server-side, and an empty value clears the reference.
|
|
8910
|
+
// checked server-side, and an empty value clears the reference. The
|
|
8911
|
+
// id spelling is retired in TOML (#3997): `retired-keys.ts`,
|
|
8912
|
+
// `groupTypeConfig`.
|
|
8819
8913
|
validation: handledBy(GROUP_TYPE_HANDLER, "GroupTypeConfigController", "apply"),
|
|
8820
8914
|
},
|
|
8821
8915
|
{
|
|
@@ -8855,13 +8949,7 @@ export const GROUP_TYPE_CONFIG_SURFACE = {
|
|
|
8855
8949
|
note: "User who created the config; assigned server-side.",
|
|
8856
8950
|
},
|
|
8857
8951
|
},
|
|
8858
|
-
tomlOnlyKeys: {
|
|
8859
|
-
ruleSetId: {
|
|
8860
|
-
kind: "deprecated",
|
|
8861
|
-
note: "The legacy id-based rule-set reference. Still accepted on push " +
|
|
8862
|
-
"so an unmigrated file pushes unchanged; pull writes `ruleSetName`.",
|
|
8863
|
-
},
|
|
8864
|
-
},
|
|
8952
|
+
tomlOnlyKeys: {},
|
|
8865
8953
|
responseOnlyKeys: {},
|
|
8866
8954
|
},
|
|
8867
8955
|
],
|
|
@@ -8908,7 +8996,9 @@ export const COLLECTION_TYPE_CONFIG_SURFACE = {
|
|
|
8908
8996
|
emit: "always",
|
|
8909
8997
|
writableOn: BOTH,
|
|
8910
8998
|
// Authored as a name, sent as an id; existence and resourceType are
|
|
8911
|
-
// checked server-side, and an empty value clears the reference.
|
|
8999
|
+
// checked server-side, and an empty value clears the reference. The
|
|
9000
|
+
// id spelling is retired in TOML (#3997): `retired-keys.ts`,
|
|
9001
|
+
// `collectionTypeConfig`.
|
|
8912
9002
|
validation: handledBy(COLLECTION_TYPE_HANDLER, "CollectionTypeConfigController", "apply"),
|
|
8913
9003
|
},
|
|
8914
9004
|
],
|
|
@@ -8938,13 +9028,7 @@ export const COLLECTION_TYPE_CONFIG_SURFACE = {
|
|
|
8938
9028
|
note: "User who created the config; assigned server-side.",
|
|
8939
9029
|
},
|
|
8940
9030
|
},
|
|
8941
|
-
tomlOnlyKeys: {
|
|
8942
|
-
ruleSetId: {
|
|
8943
|
-
kind: "deprecated",
|
|
8944
|
-
note: "The legacy id-based rule-set reference. Still accepted on push " +
|
|
8945
|
-
"so an unmigrated file pushes unchanged; pull writes `ruleSetName`.",
|
|
8946
|
-
},
|
|
8947
|
-
},
|
|
9031
|
+
tomlOnlyKeys: {},
|
|
8948
9032
|
responseOnlyKeys: {},
|
|
8949
9033
|
},
|
|
8950
9034
|
],
|
|
@@ -9528,11 +9612,13 @@ export const SERVER_FUNCTION_SURFACE = {
|
|
|
9528
9612
|
* which is exactly why the spec names them explicitly: nothing that syncs sits
|
|
9529
9613
|
* outside the registry.
|
|
9530
9614
|
*
|
|
9531
|
-
* Three fields are stored as ids and AUTHORED as
|
|
9615
|
+
* Three fields are stored as ids and AUTHORED as names — `configId` /
|
|
9532
9616
|
* `evaluatorPromptId` / `evaluatorConfigId` become `configName` /
|
|
9533
9617
|
* `evaluatorPromptKey` / `evaluatorConfigName` — so a test file is portable
|
|
9534
|
-
* across apps. The
|
|
9535
|
-
*
|
|
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.
|
|
9536
9622
|
*
|
|
9537
9623
|
* Three more are stored as JSON strings and carried in TOML as JSON strings
|
|
9538
9624
|
* (`inputVariables`, `expectedOutputContains`, `expectedJsonSubset`) while the
|
|
@@ -9709,23 +9795,7 @@ export const TEST_CASE_SURFACE = {
|
|
|
9709
9795
|
note: "Timestamp, assigned server-side.",
|
|
9710
9796
|
},
|
|
9711
9797
|
},
|
|
9712
|
-
tomlOnlyKeys: {
|
|
9713
|
-
configId: {
|
|
9714
|
-
kind: "deprecated",
|
|
9715
|
-
note: "The legacy id-based config reference. Still accepted on push so " +
|
|
9716
|
-
"an unmigrated file pushes unchanged; pull writes `configName`.",
|
|
9717
|
-
},
|
|
9718
|
-
evaluatorPromptId: {
|
|
9719
|
-
kind: "deprecated",
|
|
9720
|
-
note: "The legacy id-based evaluator-prompt reference; pull writes " +
|
|
9721
|
-
"`evaluatorPromptKey`.",
|
|
9722
|
-
},
|
|
9723
|
-
evaluatorConfigId: {
|
|
9724
|
-
kind: "deprecated",
|
|
9725
|
-
note: "The legacy id-based evaluator-config reference; pull writes " +
|
|
9726
|
-
"`evaluatorConfigName`.",
|
|
9727
|
-
},
|
|
9728
|
-
},
|
|
9798
|
+
tomlOnlyKeys: {},
|
|
9729
9799
|
responseOnlyKeys: {},
|
|
9730
9800
|
},
|
|
9731
9801
|
],
|