@sema-agent/settings-schema 13.0.1 → 14.0.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.
Files changed (136) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/README.md +18 -1
  3. package/conformance/VERSION +1 -1
  4. package/conformance/baseline.json +1 -3
  5. package/conformance/cases/c01-entry-salvage-then-typo/expected.json +1 -3
  6. package/conformance/cases/c02-hosts-clamp-stacked/expected.json +1 -3
  7. package/conformance/cases/c03-literal-dotted-top-key/expected.json +1 -3
  8. package/conformance/cases/c04-all-bad-collection-not-salvaged/expected.json +1 -3
  9. package/conformance/cases/c07-hooks-is-not-a-config-domain/expected.json +1 -3
  10. package/conformance/cases/c08-limits-unknown-carried-64/expected.json +1 -3
  11. package/conformance/cases/c09-limits-unknown-carried-65/expected.json +1 -3
  12. package/conformance/cases/c10-record-key-secret-redacted-twice/expected.json +1 -3
  13. package/conformance/cases/c11-unicode-unknown-keys/expected.json +1 -3
  14. package/conformance/cases/c12-prototype-name-top-keys/expected.json +1 -3
  15. package/conformance/cases/c13-models-field-null/expected.json +1 -3
  16. package/conformance/cases/c14-models-field-empty-array/expected.json +1 -3
  17. package/conformance/cases/c15-models-field-number/expected.json +1 -3
  18. package/conformance/cases/c16-deep-nesting-205/expected.json +1 -3
  19. package/conformance/cases/c17-empty-domain-file/expected.json +1 -3
  20. package/conformance/cases/c18-wire-envelope-not-an-object/expected.json +1 -3
  21. package/conformance/cases/c19-wire-envelope-no-version/expected.json +1 -3
  22. package/conformance/cases/c21-governance-empty-object-wins/expected.json +1 -3
  23. package/conformance/cases/c23-mixed-validity-models/expected.json +1 -3
  24. package/conformance/cases/c24-valid-entries-with-unknown-keys/expected.json +1 -3
  25. package/conformance/cases/c25-published-roundtrip-zero-warnings/expected.json +1 -3
  26. package/conformance/cases/c26-hosts-array-1024/expected.json +1 -3
  27. package/conformance/cases/c27-hosts-array-1025/expected.json +1 -3
  28. package/conformance/cases/c28-large-document-over-1mb/expected.json +1 -3
  29. package/conformance/cases/c29-salvage-then-domain-refine-fails/expected.json +1 -3
  30. package/conformance/cases/c30-version-triple-a-first/expected.json +1 -3
  31. package/conformance/cases/c31-version-triple-b-changed/expected.json +1 -3
  32. package/conformance/cases/c32-version-triple-a-restored/expected.json +1 -3
  33. package/conformance/cases/c33-limits-nested-carried-key/expected.json +1 -3
  34. package/conformance/cases/c34-skills-content-vs-manifest/expected.json +1 -3
  35. package/conformance/cases/c35-portable-domain-file-is-null/expected.json +1 -3
  36. package/conformance/cases/c36-skills-entry-without-content/expected.json +1 -3
  37. package/conformance/cases/c37-skills-field-null/expected.json +1 -3
  38. package/conformance/cases/c38-remote-exec-is-a-non-domain-file/expected.json +1 -3
  39. package/conformance/cases/c39-hidden-file-in-config-d/expected.json +1 -3
  40. package/conformance/cases/c40-s712-identity-only-what-reads-out/expected.json +1 -3
  41. package/conformance/cases/c41-s792-encoded-pem-identity/expected.json +1 -3
  42. package/conformance/cases/c42-s792-unknown-key-secret-redacted/expected.json +1 -3
  43. package/conformance/cases/c43-s792-form-and-deep-encoded-pem/expected.json +1 -3
  44. package/conformance/cases/c44-s792-utf8-escape-glued-token/expected.json +1 -3
  45. package/conformance/cases/c45-s792-identity-bounds-and-decode-depth/expected.json +1 -3
  46. package/conformance/cases/c46-s811-host-name-url-userinfo-withheld/expected.json +1 -3
  47. package/conformance/cases/c47-s811-roles-key-url-userinfo-withheld/expected.json +1 -3
  48. package/conformance/cases/c48-s935-model-headers-transported/expected.json +1 -3
  49. package/conformance/cases/c49-s935-model-headers-secret-entry-dropped/expected.json +1 -3
  50. package/conformance/cases/c50-s784-lane-host-legal/expected.json +1 -3
  51. package/conformance/cases/c51-s784-lane-e2b-legal/expected.json +1 -3
  52. package/conformance/cases/c52-s784-lane-k8s-legal/expected.json +1 -3
  53. package/conformance/cases/c53-s784-lane-ssh-legal/expected.json +1 -3
  54. package/conformance/cases/c54-s784-lane-adb-legal/expected.json +1 -3
  55. package/conformance/cases/c55-s784-lane-local-docker-legal/expected.json +1 -3
  56. package/conformance/cases/c56-s784-lane-device-legal/expected.json +1 -3
  57. package/conformance/cases/c57-s784-g1-enabled-no-lane/expected.json +1 -3
  58. package/conformance/cases/c58-s784-g2-multitenant-host/expected.json +1 -3
  59. package/conformance/cases/c59-s784-g3-k8s-missing-image/expected.json +1 -3
  60. package/conformance/cases/c60-s784-g3-e2b-missing-key/expected.json +1 -3
  61. package/conformance/cases/c61-s784-g3-other-lane-key/expected.json +1 -3
  62. package/conformance/cases/c62-s784-g7a-session-tidb/expected.json +1 -3
  63. package/conformance/cases/c63-s784-host-two-replicas/expected.json +1 -3
  64. package/conformance/cases/c64-s784-multitenant-local-store/expected.json +1 -3
  65. package/conformance/cases/c65-s784-pg-without-db/expected.json +1 -3
  66. package/conformance/cases/c66-s784-memory-backend-mismatch/expected.json +1 -3
  67. package/conformance/cases/c67-s784-retired-field-loud/expected.json +1 -3
  68. package/conformance/cases/c68-s784-device-local-store/expected.json +1 -3
  69. package/conformance/cases/c69-deep-encoded-token-past-every-reading/expected.json +1 -3
  70. package/conformance/cases/c70-rewritten-token-in-front-of-encoded-pem-header/expected.json +1 -3
  71. package/conformance/cases/c71-one-scanner-write-reads-display-forms/expected.json +1 -3
  72. package/conformance/cases/c72-dangling-reference-write-seat-refuses/expected.json +1 -3
  73. package/conformance/cases/c73-projects-extended-registration-reads/expected.json +1 -3
  74. package/conformance/cases/c74-projects-over-bound-refused/expected.json +1 -3
  75. package/conformance/cases/c75-projects-patch-remote-uniqueness/expected.json +1 -3
  76. package/conformance/cases/c76-projects-entry-salvage-nested/expected.json +1 -3
  77. package/conformance/cases/c77-prompts-center-artifact-carried/expected.json +252 -0
  78. package/conformance/cases/c77-prompts-center-artifact-carried/input.json +93 -0
  79. package/conformance/cases/c77-prompts-center-artifact-carried/meta.json +5 -0
  80. package/conformance/cases/c78-prompts-empty-bindings-refused/expected.json +82 -0
  81. package/conformance/cases/c78-prompts-empty-bindings-refused/input.json +11 -0
  82. package/conformance/cases/c78-prompts-empty-bindings-refused/meta.json +5 -0
  83. package/conformance/cases/c79-prompts-bad-worker-artifact-not-salvaged/expected.json +82 -0
  84. package/conformance/cases/c79-prompts-bad-worker-artifact-not-salvaged/input.json +129 -0
  85. package/conformance/cases/c79-prompts-bad-worker-artifact-not-salvaged/meta.json +5 -0
  86. package/conformance/cases/c80-prompts-wire-v2-verbatim/expected.json +195 -0
  87. package/conformance/cases/c80-prompts-wire-v2-verbatim/input.json +65 -0
  88. package/conformance/cases/c80-prompts-wire-v2-verbatim/meta.json +5 -0
  89. package/conformance/cases/c81-prompts-declaration-bindings-refused/expected.json +82 -0
  90. package/conformance/cases/c81-prompts-declaration-bindings-refused/input.json +23 -0
  91. package/conformance/cases/c81-prompts-declaration-bindings-refused/meta.json +5 -0
  92. package/conformance/cases/c82-prompts-v1-catalog-refused/expected.json +82 -0
  93. package/conformance/cases/c82-prompts-v1-catalog-refused/input.json +35 -0
  94. package/conformance/cases/c82-prompts-v1-catalog-refused/meta.json +5 -0
  95. package/conformance/cases/c83-prompts-bad-overlay-not-salvaged/expected.json +82 -0
  96. package/conformance/cases/c83-prompts-bad-overlay-not-salvaged/input.json +56 -0
  97. package/conformance/cases/c83-prompts-bad-overlay-not-salvaged/meta.json +5 -0
  98. package/conformance/cases/cc01-mcp-toolfaces-non-object/expected.json +1 -3
  99. package/conformance/cases/cc02-mcp-source-key-is-transported/expected.json +1 -3
  100. package/conformance/cases/cc03-model-compat-unknown-subkey/expected.json +1 -3
  101. package/conformance/cases/cli01-model-name-nfc-vs-nfd/expected.json +1 -3
  102. package/conformance/cases/cli02-control-and-zero-width-chars/expected.json +1 -3
  103. package/conformance/cases/cli03-credential-pasted-into-unknown-key/expected.json +1 -3
  104. package/conformance/cases/cli04-env-value-with-newline/expected.json +1 -3
  105. package/conformance/cases/cli05-long-and-prefix-colliding-names/expected.json +1 -3
  106. package/conformance/cases/t01-absent-domain-key-not-null/expected.json +1 -3
  107. package/conformance/cases/t03-prototype-name-key-not-swallowed/expected.json +1 -3
  108. package/conformance/cases/t04-secret-literal-never-in-warning-value/expected.json +1 -3
  109. package/conformance/cases/z01-every-domain-empty-object/expected.json +2 -6
  110. package/conformance/cases/z02-every-domain-unknown-key/expected.json +2 -6
  111. package/dist/config-fns.d.ts +7 -3
  112. package/dist/config-fns.js +19 -16
  113. package/dist/conformance/derive.js +2 -2
  114. package/dist/index.d.ts +1 -0
  115. package/dist/index.js +1 -0
  116. package/dist/mcp-request-entry.d.ts +93 -0
  117. package/dist/mcp-request-entry.js +157 -0
  118. package/dist/migration-receipt.d.ts +1 -1
  119. package/dist/migration-receipt.js +1 -1
  120. package/dist/node.d.ts +0 -1
  121. package/dist/node.js +0 -1
  122. package/dist/one-time-migrations.d.ts +1 -1
  123. package/dist/one-time-migrations.js +39 -0
  124. package/dist/safety-merge-spec.d.ts +6 -6
  125. package/dist/types.d.ts +438 -355
  126. package/dist/types.js +161 -136
  127. package/dist/url-shape.d.ts +8 -0
  128. package/dist/url-shape.js +10 -0
  129. package/docs/API-SURFACE.md +41 -27
  130. package/docs/CONFORMANCE.md +1 -1
  131. package/docs/CONSUMER-INTEGRATION.md +3 -2
  132. package/llms-full.txt +14 -11
  133. package/llms.txt +7 -2
  134. package/package.json +2 -2
  135. package/dist/prompts-digest.d.ts +0 -16
  136. package/dist/prompts-digest.js +0 -49
@@ -0,0 +1,82 @@
1
+ {
2
+ "domains": {
3
+ "outcome": "effective",
4
+ "effective": {
5
+ "collab": {
6
+ "templates": []
7
+ },
8
+ "entitlement": {
9
+ "budgetGroups": [],
10
+ "groupBindings": [],
11
+ "subjects": [],
12
+ "tiers": []
13
+ },
14
+ "execution": {
15
+ "allowedLanes": [
16
+ "host"
17
+ ],
18
+ "required": false
19
+ },
20
+ "governance": {},
21
+ "hosts": {
22
+ "hosts": []
23
+ },
24
+ "limits": {},
25
+ "mcp": {
26
+ "servers": []
27
+ },
28
+ "models": {
29
+ "atMention": {
30
+ "mode": "all"
31
+ },
32
+ "models": [],
33
+ "roles": {},
34
+ "tierGroups": []
35
+ },
36
+ "plugins": {
37
+ "plugins": []
38
+ },
39
+ "projects": {
40
+ "projects": {}
41
+ },
42
+ "prompts": {},
43
+ "rosters": {
44
+ "rosters": []
45
+ },
46
+ "scenarios": {
47
+ "scenarios": []
48
+ },
49
+ "skills": {
50
+ "skills": []
51
+ },
52
+ "systems": {
53
+ "systems": []
54
+ },
55
+ "workers": {
56
+ "workers": []
57
+ }
58
+ },
59
+ "warnings": [
60
+ {
61
+ "domain": "prompts",
62
+ "kind": "domain-defaulted"
63
+ }
64
+ ],
65
+ "metadata": {
66
+ "version": 7,
67
+ "updatedAt": "2026-10-17T00:00:00.000Z"
68
+ }
69
+ },
70
+ "strictWrite": {
71
+ "outcome": "rejected",
72
+ "stage": "validate",
73
+ "why": "拒:`bindings` 墓碑在场(非空声明轴;SS-M10 对它是 refused,原样留着等重新发布)。"
74
+ },
75
+ "wire": {
76
+ "derive": true
77
+ },
78
+ "localRoot": {
79
+ "derive": true,
80
+ "localVersion": 3881422692493397
81
+ }
82
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "meta": {
3
+ "version": 7,
4
+ "updatedAt": "2026-10-17T00:00:00.000Z"
5
+ },
6
+ "domains": {
7
+ "prompts": {
8
+ "bindings": [
9
+ {
10
+ "level": "global",
11
+ "declarations": [
12
+ {
13
+ "id": "center/role",
14
+ "slot": "identity",
15
+ "text": "You are Acme's assistant."
16
+ }
17
+ ],
18
+ "enabled": true
19
+ }
20
+ ]
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "contributor": "contract",
3
+ "claim": "一份 13.x 合法的非空声明轴(`bindings: [{level: global, declarations: [...]}]`)单独在场:读侧整域缺省 `{}` + domain-defaulted,严写拒。仍按 13.x 读声明轴的消费方会把这段文本照旧编进中心层(旧义)—— 声明只有中心的卡编译器编得成 overlay,存量要从编辑器重新发布。",
4
+ "firstRedOn": []
5
+ }
@@ -0,0 +1,82 @@
1
+ {
2
+ "domains": {
3
+ "outcome": "effective",
4
+ "effective": {
5
+ "collab": {
6
+ "templates": []
7
+ },
8
+ "entitlement": {
9
+ "budgetGroups": [],
10
+ "groupBindings": [],
11
+ "subjects": [],
12
+ "tiers": []
13
+ },
14
+ "execution": {
15
+ "allowedLanes": [
16
+ "host"
17
+ ],
18
+ "required": false
19
+ },
20
+ "governance": {},
21
+ "hosts": {
22
+ "hosts": []
23
+ },
24
+ "limits": {},
25
+ "mcp": {
26
+ "servers": []
27
+ },
28
+ "models": {
29
+ "atMention": {
30
+ "mode": "all"
31
+ },
32
+ "models": [],
33
+ "roles": {},
34
+ "tierGroups": []
35
+ },
36
+ "plugins": {
37
+ "plugins": []
38
+ },
39
+ "projects": {
40
+ "projects": {}
41
+ },
42
+ "prompts": {},
43
+ "rosters": {
44
+ "rosters": []
45
+ },
46
+ "scenarios": {
47
+ "scenarios": []
48
+ },
49
+ "skills": {
50
+ "skills": []
51
+ },
52
+ "systems": {
53
+ "systems": []
54
+ },
55
+ "workers": {
56
+ "workers": []
57
+ }
58
+ },
59
+ "warnings": [
60
+ {
61
+ "domain": "prompts",
62
+ "kind": "domain-defaulted"
63
+ }
64
+ ],
65
+ "metadata": {
66
+ "version": 7,
67
+ "updatedAt": "2026-10-17T00:00:00.000Z"
68
+ }
69
+ },
70
+ "strictWrite": {
71
+ "outcome": "rejected",
72
+ "stage": "validate",
73
+ "why": "拒:`catalog` 墓碑在场(完整合法的 v1 信封;SS-M10 对它是 refused)。"
74
+ },
75
+ "wire": {
76
+ "derive": true
77
+ },
78
+ "localRoot": {
79
+ "derive": true,
80
+ "localVersion": 2481539423128972
81
+ }
82
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "meta": {
3
+ "version": 7,
4
+ "updatedAt": "2026-10-17T00:00:00.000Z"
5
+ },
6
+ "domains": {
7
+ "prompts": {
8
+ "catalog": {
9
+ "artifact": {
10
+ "payload": {
11
+ "schemaVersion": 1,
12
+ "assemblyApi": 1,
13
+ "catalogDigest": "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
14
+ "closure": {
15
+ "basePackId": "center:acme",
16
+ "promptCatalog": {
17
+ "packId": "center:acme",
18
+ "sections": [
19
+ {
20
+ "id": "center/role",
21
+ "slot": "identity",
22
+ "text": "You are Acme's assistant.",
23
+ "contentHash": "sha256:ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
24
+ }
25
+ ]
26
+ }
27
+ }
28
+ },
29
+ "artifactDigest": "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
30
+ },
31
+ "sourceRevision": "etag-1"
32
+ }
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "contributor": "contract",
3
+ "claim": "一份 13.x 合法的完整 v1 catalog 信封(`{artifact: {payload: schemaVersion 1 …, artifactDigest}, sourceRevision}`)单独在场:读侧整域缺省 `{}` + domain-defaulted,严写拒。仍收 v1 catalog 的消费方会把一份引擎当期读不了的 artifact 交下去(整份候选被引擎拒);catalog 的 digest 是引擎铸的,只能重新发布 / 重铸。",
4
+ "firstRedOn": []
5
+ }
@@ -0,0 +1,82 @@
1
+ {
2
+ "domains": {
3
+ "outcome": "effective",
4
+ "effective": {
5
+ "collab": {
6
+ "templates": []
7
+ },
8
+ "entitlement": {
9
+ "budgetGroups": [],
10
+ "groupBindings": [],
11
+ "subjects": [],
12
+ "tiers": []
13
+ },
14
+ "execution": {
15
+ "allowedLanes": [
16
+ "host"
17
+ ],
18
+ "required": false
19
+ },
20
+ "governance": {},
21
+ "hosts": {
22
+ "hosts": []
23
+ },
24
+ "limits": {},
25
+ "mcp": {
26
+ "servers": []
27
+ },
28
+ "models": {
29
+ "atMention": {
30
+ "mode": "all"
31
+ },
32
+ "models": [],
33
+ "roles": {},
34
+ "tierGroups": []
35
+ },
36
+ "plugins": {
37
+ "plugins": []
38
+ },
39
+ "projects": {
40
+ "projects": {}
41
+ },
42
+ "prompts": {},
43
+ "rosters": {
44
+ "rosters": []
45
+ },
46
+ "scenarios": {
47
+ "scenarios": []
48
+ },
49
+ "skills": {
50
+ "skills": []
51
+ },
52
+ "systems": {
53
+ "systems": []
54
+ },
55
+ "workers": {
56
+ "workers": []
57
+ }
58
+ },
59
+ "warnings": [
60
+ {
61
+ "domain": "prompts",
62
+ "kind": "domain-defaulted"
63
+ }
64
+ ],
65
+ "metadata": {
66
+ "version": 7,
67
+ "updatedAt": "2026-10-17T00:00:00.000Z"
68
+ }
69
+ },
70
+ "strictWrite": {
71
+ "outcome": "rejected",
72
+ "stage": "validate",
73
+ "why": "拒:第二条 overlay 带 `scope`(v3 的 overlay 键闭集里没有它)—— 写是一个动作,一处坏整份不受理。"
74
+ },
75
+ "wire": {
76
+ "derive": true
77
+ },
78
+ "localRoot": {
79
+ "derive": true,
80
+ "localVersion": 3758088194030775
81
+ }
82
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "meta": {
3
+ "version": 7,
4
+ "updatedAt": "2026-10-17T00:00:00.000Z"
5
+ },
6
+ "domains": {
7
+ "prompts": {
8
+ "artifact": {
9
+ "payload": {
10
+ "schemaVersion": 3,
11
+ "requires": {
12
+ "targets": [
13
+ {
14
+ "id": "behavior",
15
+ "kind": "band"
16
+ },
17
+ {
18
+ "id": "scenario",
19
+ "kind": "band"
20
+ }
21
+ ],
22
+ "ops": [
23
+ "add"
24
+ ],
25
+ "traits": [],
26
+ "bindings": [
27
+ "code"
28
+ ]
29
+ },
30
+ "overlays": [
31
+ {
32
+ "id": "center/conduct",
33
+ "op": "add",
34
+ "target": "behavior",
35
+ "text": "Be kind."
36
+ },
37
+ {
38
+ "id": "center/scenario-note/code",
39
+ "op": "add",
40
+ "target": "scenario",
41
+ "text": "CODE-NOTE",
42
+ "scope": {
43
+ "binding": "code"
44
+ }
45
+ }
46
+ ],
47
+ "evidence": {
48
+ "intent": "center cards",
49
+ "refs": []
50
+ }
51
+ },
52
+ "artifactDigest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
53
+ }
54
+ }
55
+ }
56
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "contributor": "contract",
3
+ "claim": "一份 scope artifact 里一条合法 overlay + 一条坏 overlay(带 v2 的 `scope`):整域缺省 `{}`、零 entry-dropped。只在 overlay 级逐条抢救(丢坏的那条、留下 artifact)的消费方会把一份 digest 不再成立的 artifact 交给引擎 —— 引擎拒的是它所在的整份候选(所有域一起不落),爆炸半径远大于「prompts 读不出 = 不下发中心层」。c79 打的是删掉整台 worker 的那一种错法,本条打 overlay 级的那一种。",
4
+ "firstRedOn": []
5
+ }
@@ -79,9 +79,7 @@
79
79
  "projects": {
80
80
  "projects": {}
81
81
  },
82
- "prompts": {
83
- "bindings": []
84
- },
82
+ "prompts": {},
85
83
  "rosters": {
86
84
  "rosters": []
87
85
  },
@@ -52,9 +52,7 @@
52
52
  "projects": {
53
53
  "projects": {}
54
54
  },
55
- "prompts": {
56
- "bindings": []
57
- },
55
+ "prompts": {},
58
56
  "rosters": {
59
57
  "rosters": []
60
58
  },
@@ -54,9 +54,7 @@
54
54
  "projects": {
55
55
  "projects": {}
56
56
  },
57
- "prompts": {
58
- "bindings": []
59
- },
57
+ "prompts": {},
60
58
  "rosters": {
61
59
  "rosters": []
62
60
  },
@@ -50,9 +50,7 @@
50
50
  "projects": {
51
51
  "projects": {}
52
52
  },
53
- "prompts": {
54
- "bindings": []
55
- },
53
+ "prompts": {},
56
54
  "rosters": {
57
55
  "rosters": []
58
56
  },
@@ -63,9 +63,7 @@
63
63
  "projects": {
64
64
  "projects": {}
65
65
  },
66
- "prompts": {
67
- "bindings": []
68
- },
66
+ "prompts": {},
69
67
  "rosters": {
70
68
  "rosters": []
71
69
  },
@@ -47,9 +47,7 @@
47
47
  "projects": {
48
48
  "projects": {}
49
49
  },
50
- "prompts": {
51
- "bindings": []
52
- },
50
+ "prompts": {},
53
51
  "rosters": {
54
52
  "rosters": []
55
53
  },
@@ -39,9 +39,7 @@
39
39
  "projects": {
40
40
  "projects": {}
41
41
  },
42
- "prompts": {
43
- "bindings": []
44
- },
42
+ "prompts": {},
45
43
  "rosters": {
46
44
  "rosters": []
47
45
  },
@@ -70,9 +70,7 @@
70
70
  "projects": {
71
71
  "projects": {}
72
72
  },
73
- "prompts": {
74
- "bindings": []
75
- },
73
+ "prompts": {},
76
74
  "rosters": {
77
75
  "rosters": []
78
76
  },
@@ -58,9 +58,7 @@
58
58
  "projects": {
59
59
  "projects": {}
60
60
  },
61
- "prompts": {
62
- "bindings": []
63
- },
61
+ "prompts": {},
64
62
  "rosters": {
65
63
  "rosters": []
66
64
  },
@@ -50,9 +50,7 @@
50
50
  "projects": {
51
51
  "projects": {}
52
52
  },
53
- "prompts": {
54
- "bindings": []
55
- },
53
+ "prompts": {},
56
54
  "rosters": {
57
55
  "rosters": []
58
56
  },
@@ -50,9 +50,7 @@
50
50
  "projects": {
51
51
  "projects": {}
52
52
  },
53
- "prompts": {
54
- "bindings": []
55
- },
53
+ "prompts": {},
56
54
  "rosters": {
57
55
  "rosters": []
58
56
  },
@@ -39,9 +39,7 @@
39
39
  "projects": {
40
40
  "projects": {}
41
41
  },
42
- "prompts": {
43
- "bindings": []
44
- },
42
+ "prompts": {},
45
43
  "rosters": {
46
44
  "rosters": []
47
45
  },
@@ -104,9 +102,7 @@
104
102
  "projects": {
105
103
  "projects": {}
106
104
  },
107
- "prompts": {
108
- "bindings": []
109
- },
105
+ "prompts": {},
110
106
  "rosters": {
111
107
  "rosters": []
112
108
  },
@@ -41,9 +41,7 @@
41
41
  "projects": {
42
42
  "projects": {}
43
43
  },
44
- "prompts": {
45
- "bindings": []
46
- },
44
+ "prompts": {},
47
45
  "rosters": {
48
46
  "rosters": []
49
47
  },
@@ -253,9 +251,7 @@
253
251
  "projects": {
254
252
  "projects": {}
255
253
  },
256
- "prompts": {
257
- "bindings": []
258
- },
254
+ "prompts": {},
259
255
  "rosters": {
260
256
  "rosters": []
261
257
  },
@@ -584,7 +584,7 @@ export declare const DOMAIN_READ_FALLBACK: {
584
584
  * it back would turn every dropped entry into a deletion — read-modify-write faces read the stored document with the document face.
585
585
  *
586
586
  * Per-domain rationale:
587
- * - models/skills/mcp/plugins/scenarios/systems/collab/prompts: additive capability / content catalogs — a dropped entry is
587
+ * - models/skills/mcp/plugins/scenarios/systems/collab: additive capability / content catalogs — a dropped entry is
588
588
  * one capability gone (fail-closed). Inside a surviving entry the same holds: the nested collections these entries carry
589
589
  * are allowlists / scopings (`allowTools`, `scenarios`, `rosters`, `callsWorkers`, …) where one entry fewer only NARROWS,
590
590
  * and the zero-survivor law (never mint an empty collection — several of these read "empty = all") holds at every level.
@@ -594,7 +594,11 @@ export declare const DOMAIN_READ_FALLBACK: {
594
594
  * schema refuses (12.2.1's UNC judgement on `contextItems[].value`) must not take the scope's other projects with it.
595
595
  * Its whenUnreadable stance stays `"throw"` (a ledger that cannot be read at all is never defaulted — see
596
596
  * {@link DOMAIN_READ_FALLBACK}).
597
- * - rosters: NONE — a dropped roster makes resolveEffectiveForWorker fall back to the FULL models catalog for that worker
597
+ * - prompts: NONE (14.0.0) — an artifact is digest-bound: a dropped overlay leaves an artifact whose digest no longer holds (the
598
+ engine refuses the whole candidate it rides in, every domain with it), and a dropped worker artifact substitutes the scope's
599
+ text for that worker (a replacement, not a narrowing). Its whenUnreadable stance stays `"default"`: unreadable ⇒ `{}` ⇒ no
600
+ center layer is served (the engine's built-in prompt).
601
+ - rosters: NONE — a dropped roster makes resolveEffectiveForWorker fall back to the FULL models catalog for that worker
598
602
  * (放权,不许).
599
603
  * - workers: NONE — a dropped worker row reads as "this worker is no longer declared": the reconciler would retire it. The
600
604
  * per-row tolerance this domain does have lives in `readWorkersRows` (rows are HELD with their original, never dropped).
@@ -617,7 +621,7 @@ export declare const DOMAIN_ENTRY_SALVAGE: {
617
621
  readonly entitlement: "none";
618
622
  readonly execution: "none";
619
623
  readonly projects: "salvage";
620
- readonly prompts: "salvage";
624
+ readonly prompts: "none";
621
625
  readonly limits: "none";
622
626
  };
623
627
  /** 一个读者向店要文档的口:配置域,以及墓碑表里的retired 域({@link RETIRED_DOMAINS})—— 后者只为让墓碑看见没迁的旧文档。 */