@sema-agent/settings-schema 7.0.0 → 8.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.
- package/CHANGELOG.md +173 -1
- package/README.md +47 -5
- package/conformance/VERSION +1 -1
- package/conformance/cases/c01-entry-salvage-then-typo/expected.json +5 -0
- package/conformance/cases/c02-hosts-clamp-stacked/expected.json +5 -0
- package/conformance/cases/c03-literal-dotted-top-key/expected.json +41 -0
- package/conformance/cases/c04-all-bad-collection-not-salvaged/expected.json +5 -0
- package/conformance/cases/c05-gate-domain-bad-entry-throws/expected.json +5 -0
- package/conformance/cases/c06-legacy-governance-lift/expected.json +12 -0
- package/conformance/cases/c07-hooks-is-not-a-config-domain/expected.json +5 -0
- package/conformance/cases/c08-limits-unknown-carried-64/expected.json +77 -0
- package/conformance/cases/c09-limits-unknown-carried-65/expected.json +78 -0
- package/conformance/cases/c10-record-key-secret-redacted-twice/expected.json +5 -0
- package/conformance/cases/c11-unicode-unknown-keys/expected.json +14 -0
- package/conformance/cases/c12-prototype-name-top-keys/expected.json +5 -0
- package/conformance/cases/c13-models-field-null/expected.json +5 -0
- package/conformance/cases/c14-models-field-empty-array/expected.json +16 -0
- package/conformance/cases/c15-models-field-number/expected.json +5 -0
- package/conformance/cases/c16-deep-nesting-205/expected.json +14 -0
- package/conformance/cases/c17-empty-domain-file/expected.json +10 -0
- package/conformance/cases/c18-wire-envelope-not-an-object/expected.json +10 -0
- package/conformance/cases/c19-wire-envelope-no-version/expected.json +10 -0
- package/conformance/cases/c20-governance-absent-lifts/expected.json +12 -0
- package/conformance/cases/c21-governance-empty-object-wins/expected.json +13 -0
- package/conformance/cases/c22-governance-null-throws/expected.json +5 -0
- package/conformance/cases/c23-mixed-validity-models/expected.json +5 -0
- package/conformance/cases/c24-valid-entries-with-unknown-keys/expected.json +29 -0
- package/conformance/cases/c25-published-roundtrip-zero-warnings/expected.json +33 -0
- package/conformance/cases/c26-hosts-array-1024/expected.json +7183 -0
- package/conformance/cases/c27-hosts-array-1025/expected.json +5 -0
- package/conformance/cases/c28-large-document-over-1mb/expected.json +14 -0
- package/conformance/cases/c29-salvage-then-domain-refine-fails/expected.json +5 -0
- package/conformance/cases/c30-version-triple-a-first/expected.json +29 -0
- package/conformance/cases/c31-version-triple-b-changed/expected.json +29 -0
- package/conformance/cases/c32-version-triple-a-restored/expected.json +29 -0
- package/conformance/cases/c33-limits-nested-carried-key/expected.json +17 -0
- package/conformance/cases/c34-skills-content-vs-manifest/expected.json +23 -0
- package/conformance/cases/c35-portable-domain-file-is-null/expected.json +5 -0
- package/conformance/cases/c36-skills-entry-without-content/expected.json +23 -0
- package/conformance/cases/c37-skills-field-null/expected.json +5 -0
- package/conformance/cases/c38-remote-exec-is-a-non-domain-file/expected.json +5 -0
- package/conformance/cases/c39-hidden-file-in-config-d/expected.json +5 -0
- package/conformance/cases/c40-s712-identity-only-what-reads-out/expected.json +5 -0
- package/conformance/cases/c41-s792-encoded-pem-identity/expected.json +5 -0
- package/conformance/cases/c42-s792-unknown-key-secret-redacted/expected.json +33 -0
- package/conformance/cases/c43-s792-form-and-deep-encoded-pem/expected.json +5 -0
- package/conformance/cases/c44-s792-utf8-escape-glued-token/expected.json +5 -0
- package/conformance/cases/c45-s792-identity-bounds-and-decode-depth/expected.json +5 -0
- package/conformance/cases/c46-s811-host-name-url-userinfo-characterization/expected.json +5 -0
- package/conformance/cases/c47-s811-roles-key-url-userinfo-characterization/expected.json +5 -0
- package/conformance/cases/c48-s935-model-headers-transported/expected.json +59 -0
- package/conformance/cases/c49-s935-model-headers-secret-entry-dropped/expected.json +5 -0
- package/conformance/cases/c50-s784-lane-host-legal/expected.json +44 -0
- package/conformance/cases/c51-s784-lane-e2b-legal/expected.json +46 -0
- package/conformance/cases/c52-s784-lane-k8s-legal/expected.json +48 -0
- package/conformance/cases/c53-s784-lane-ssh-legal/expected.json +48 -0
- package/conformance/cases/c54-s784-lane-adb-legal/expected.json +44 -0
- package/conformance/cases/c55-s784-lane-local-docker-legal/expected.json +45 -0
- package/conformance/cases/c56-s784-lane-device-legal/expected.json +51 -0
- package/conformance/cases/c57-s784-g1-enabled-no-lane/expected.json +5 -0
- package/conformance/cases/c58-s784-g2-multitenant-host/expected.json +5 -0
- package/conformance/cases/c59-s784-g3-k8s-missing-image/expected.json +5 -0
- package/conformance/cases/c60-s784-g3-e2b-missing-key/expected.json +5 -0
- package/conformance/cases/c61-s784-g3-other-lane-key/expected.json +5 -0
- package/conformance/cases/c62-s784-g7a-session-tidb/expected.json +5 -0
- package/conformance/cases/c63-s784-host-two-replicas/expected.json +5 -0
- package/conformance/cases/c64-s784-multitenant-local-store/expected.json +5 -0
- package/conformance/cases/c65-s784-pg-without-db/expected.json +5 -0
- package/conformance/cases/c66-s784-memory-backend-mismatch/expected.json +5 -0
- package/conformance/cases/c67-s784-retired-field-loud/expected.json +5 -0
- package/conformance/cases/c67-s784-retired-field-loud/meta.json +1 -1
- package/conformance/cases/c68-s784-device-local-store/expected.json +5 -0
- package/conformance/cases/cc01-mcp-toolfaces-non-object/expected.json +54 -0
- package/conformance/cases/cc02-mcp-source-key-is-transported/expected.json +27 -0
- package/conformance/cases/cc03-model-compat-unknown-subkey/expected.json +33 -0
- package/conformance/cases/cli01-model-name-nfc-vs-nfd/expected.json +5 -0
- package/conformance/cases/cli02-control-and-zero-width-chars/expected.json +5 -0
- package/conformance/cases/cli03-credential-pasted-into-unknown-key/expected.json +22 -0
- package/conformance/cases/cli04-env-value-with-newline/expected.json +46 -0
- package/conformance/cases/cli05-long-and-prefix-colliding-names/expected.json +53 -0
- package/conformance/cases/t01-absent-domain-key-not-null/expected.json +5 -0
- package/conformance/cases/t02-entry-salvage-vs-whole-domain-refusal/expected.json +5 -0
- package/conformance/cases/t03-prototype-name-key-not-swallowed/expected.json +29 -0
- package/conformance/cases/t04-secret-literal-never-in-warning-value/expected.json +5 -0
- package/conformance/cases/z01-every-domain-empty-object/expected.json +64 -0
- package/conformance/cases/z02-every-domain-unknown-key/expected.json +66 -0
- package/dist/cli.js +97 -25
- package/dist/config-fns.js +7 -1
- package/dist/conformance/contract-adapter.d.ts +4 -2
- package/dist/conformance/contract-adapter.js +21 -7
- package/dist/conformance/corpus.js +12 -7
- package/dist/conformance/derive.d.ts +26 -0
- package/dist/conformance/derive.js +25 -2
- package/dist/conformance/index.d.ts +4 -3
- package/dist/conformance/index.js +4 -3
- package/dist/conformance/run.d.ts +3 -3
- package/dist/conformance/run.js +87 -17
- package/dist/conformance/types.d.ts +57 -17
- package/dist/conformance/types.js +4 -2
- package/dist/execution-lane-index.d.ts +20 -1
- package/dist/execution-lane-index.js +24 -1
- package/dist/hooks.d.ts +4 -4
- package/dist/migrate-workers.d.ts +1 -1
- package/dist/migrate-workers.js +3 -7
- package/dist/types.js +13 -4
- package/package.json +2 -1
|
@@ -96,6 +96,54 @@
|
|
|
96
96
|
"updatedAt": "2026-10-03T00:00:00.000Z"
|
|
97
97
|
}
|
|
98
98
|
},
|
|
99
|
+
"strictWrite": {
|
|
100
|
+
"outcome": "effective",
|
|
101
|
+
"effective": {
|
|
102
|
+
"workers": {
|
|
103
|
+
"workers": [
|
|
104
|
+
{
|
|
105
|
+
"coords": {},
|
|
106
|
+
"enabled": true,
|
|
107
|
+
"host": "default",
|
|
108
|
+
"image": "sema-server:latest",
|
|
109
|
+
"name": "w-ssh",
|
|
110
|
+
"runtime": {
|
|
111
|
+
"execution": {
|
|
112
|
+
"coords": {
|
|
113
|
+
"SSH_HOST": "deploy.internal",
|
|
114
|
+
"SSH_PORT": "2222",
|
|
115
|
+
"SSH_USER": "deploy"
|
|
116
|
+
},
|
|
117
|
+
"lane": "ssh",
|
|
118
|
+
"secretRefs": {
|
|
119
|
+
"SSH_PRIVATE_KEY": "HOST_SSH_KEY"
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"rateLimitRpm": 0,
|
|
123
|
+
"requirePrincipal": false,
|
|
124
|
+
"store": {
|
|
125
|
+
"backend": "local",
|
|
126
|
+
"memory": {
|
|
127
|
+
"backend": "file",
|
|
128
|
+
"engine": "on"
|
|
129
|
+
},
|
|
130
|
+
"session": "auto"
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
"secretRefs": {
|
|
134
|
+
"apiKeyEnv": "MODEL_KEY"
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
]
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"warnings": [],
|
|
141
|
+
"metadata": {
|
|
142
|
+
"version": 7,
|
|
143
|
+
"updatedAt": "2026-10-03T00:00:00.000Z"
|
|
144
|
+
},
|
|
145
|
+
"why": "受理:合法的 ssh 车道 worker;严写受理,受理形等于读腿 workers 那一格。"
|
|
146
|
+
},
|
|
99
147
|
"wire": {
|
|
100
148
|
"derive": true
|
|
101
149
|
},
|
|
@@ -92,6 +92,50 @@
|
|
|
92
92
|
"updatedAt": "2026-10-03T00:00:00.000Z"
|
|
93
93
|
}
|
|
94
94
|
},
|
|
95
|
+
"strictWrite": {
|
|
96
|
+
"outcome": "effective",
|
|
97
|
+
"effective": {
|
|
98
|
+
"workers": {
|
|
99
|
+
"workers": [
|
|
100
|
+
{
|
|
101
|
+
"coords": {},
|
|
102
|
+
"enabled": true,
|
|
103
|
+
"host": "default",
|
|
104
|
+
"image": "sema-server:latest",
|
|
105
|
+
"name": "w-adb",
|
|
106
|
+
"runtime": {
|
|
107
|
+
"execution": {
|
|
108
|
+
"coords": {
|
|
109
|
+
"ADB_SERIAL": "emulator-5554"
|
|
110
|
+
},
|
|
111
|
+
"lane": "adb",
|
|
112
|
+
"secretRefs": {}
|
|
113
|
+
},
|
|
114
|
+
"rateLimitRpm": 0,
|
|
115
|
+
"requirePrincipal": false,
|
|
116
|
+
"store": {
|
|
117
|
+
"backend": "local",
|
|
118
|
+
"memory": {
|
|
119
|
+
"backend": "file",
|
|
120
|
+
"engine": "on"
|
|
121
|
+
},
|
|
122
|
+
"session": "auto"
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
"secretRefs": {
|
|
126
|
+
"apiKeyEnv": "MODEL_KEY"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
"warnings": [],
|
|
133
|
+
"metadata": {
|
|
134
|
+
"version": 7,
|
|
135
|
+
"updatedAt": "2026-10-03T00:00:00.000Z"
|
|
136
|
+
},
|
|
137
|
+
"why": "受理:合法的 adb 车道 worker;严写受理,受理形等于读腿 workers 那一格。"
|
|
138
|
+
},
|
|
95
139
|
"wire": {
|
|
96
140
|
"derive": true
|
|
97
141
|
},
|
|
@@ -93,6 +93,51 @@
|
|
|
93
93
|
"updatedAt": "2026-10-03T00:00:00.000Z"
|
|
94
94
|
}
|
|
95
95
|
},
|
|
96
|
+
"strictWrite": {
|
|
97
|
+
"outcome": "effective",
|
|
98
|
+
"effective": {
|
|
99
|
+
"workers": {
|
|
100
|
+
"workers": [
|
|
101
|
+
{
|
|
102
|
+
"coords": {},
|
|
103
|
+
"enabled": true,
|
|
104
|
+
"host": "default",
|
|
105
|
+
"image": "sema-server:latest",
|
|
106
|
+
"name": "w-local-docker",
|
|
107
|
+
"runtime": {
|
|
108
|
+
"execution": {
|
|
109
|
+
"coords": {
|
|
110
|
+
"DOCKER_HOST": "tcp://docker.internal:2376",
|
|
111
|
+
"DOCKER_IMAGE": "registry.internal/sandbox:1"
|
|
112
|
+
},
|
|
113
|
+
"lane": "local-docker",
|
|
114
|
+
"secretRefs": {}
|
|
115
|
+
},
|
|
116
|
+
"rateLimitRpm": 0,
|
|
117
|
+
"requirePrincipal": false,
|
|
118
|
+
"store": {
|
|
119
|
+
"backend": "local",
|
|
120
|
+
"memory": {
|
|
121
|
+
"backend": "file",
|
|
122
|
+
"engine": "on"
|
|
123
|
+
},
|
|
124
|
+
"session": "auto"
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"secretRefs": {
|
|
128
|
+
"apiKeyEnv": "MODEL_KEY"
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
}
|
|
133
|
+
},
|
|
134
|
+
"warnings": [],
|
|
135
|
+
"metadata": {
|
|
136
|
+
"version": 7,
|
|
137
|
+
"updatedAt": "2026-10-03T00:00:00.000Z"
|
|
138
|
+
},
|
|
139
|
+
"why": "受理:合法的 local-docker 车道 worker;严写受理,受理形等于读腿 workers 那一格。"
|
|
140
|
+
},
|
|
96
141
|
"wire": {
|
|
97
142
|
"derive": true
|
|
98
143
|
},
|
|
@@ -99,6 +99,57 @@
|
|
|
99
99
|
"updatedAt": "2026-10-03T00:00:00.000Z"
|
|
100
100
|
}
|
|
101
101
|
},
|
|
102
|
+
"strictWrite": {
|
|
103
|
+
"outcome": "effective",
|
|
104
|
+
"effective": {
|
|
105
|
+
"workers": {
|
|
106
|
+
"workers": [
|
|
107
|
+
{
|
|
108
|
+
"coords": {},
|
|
109
|
+
"enabled": true,
|
|
110
|
+
"host": "default",
|
|
111
|
+
"image": "sema-server:latest",
|
|
112
|
+
"name": "w-device",
|
|
113
|
+
"runtime": {
|
|
114
|
+
"execution": {
|
|
115
|
+
"coords": {
|
|
116
|
+
"DEVICE_SUPERSEDE": "deny"
|
|
117
|
+
},
|
|
118
|
+
"lane": "device",
|
|
119
|
+
"secretRefs": {}
|
|
120
|
+
},
|
|
121
|
+
"rateLimitRpm": 0,
|
|
122
|
+
"requirePrincipal": false,
|
|
123
|
+
"store": {
|
|
124
|
+
"backend": "pg",
|
|
125
|
+
"db": {
|
|
126
|
+
"database": "sema",
|
|
127
|
+
"host": "pg.internal",
|
|
128
|
+
"port": 5432,
|
|
129
|
+
"user": "svc"
|
|
130
|
+
},
|
|
131
|
+
"memory": {
|
|
132
|
+
"backend": "file",
|
|
133
|
+
"engine": "on"
|
|
134
|
+
},
|
|
135
|
+
"session": "auto"
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"secretRefs": {
|
|
139
|
+
"apiKeyEnv": "MODEL_KEY",
|
|
140
|
+
"dbPasswordEnv": "HOST_DB_PW"
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
]
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
"warnings": [],
|
|
147
|
+
"metadata": {
|
|
148
|
+
"version": 7,
|
|
149
|
+
"updatedAt": "2026-10-03T00:00:00.000Z"
|
|
150
|
+
},
|
|
151
|
+
"why": "受理:合法的 device 车道 worker(配 SQL 店);严写受理,受理形等于读腿 workers 那一格。"
|
|
152
|
+
},
|
|
102
153
|
"wire": {
|
|
103
154
|
"derive": true
|
|
104
155
|
},
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
"stage": "validate",
|
|
5
5
|
"why": "7.0.0 写闸(WorkerSpec)拒 —— workers 是 gate 域,一只坏 worker 整域拒,不逐条容错"
|
|
6
6
|
},
|
|
7
|
+
"strictWrite": {
|
|
8
|
+
"outcome": "rejected",
|
|
9
|
+
"stage": "validate",
|
|
10
|
+
"why": "拒:enabled 的 worker 没声明执行车道,workers 是 gate 域,读腿本就整域拒;严写同一份文档同样过不了写闸。"
|
|
11
|
+
},
|
|
7
12
|
"wire": {
|
|
8
13
|
"outcome": "rejected",
|
|
9
14
|
"stage": "validate",
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
"stage": "validate",
|
|
5
5
|
"why": "7.0.0 写闸(WorkerSpec)拒 —— workers 是 gate 域,一只坏 worker 整域拒,不逐条容错"
|
|
6
6
|
},
|
|
7
|
+
"strictWrite": {
|
|
8
|
+
"outcome": "rejected",
|
|
9
|
+
"stage": "validate",
|
|
10
|
+
"why": "拒:多租户 worker 落在不分租户的 host 车道,读腿整域拒;严写同样拒。"
|
|
11
|
+
},
|
|
7
12
|
"wire": {
|
|
8
13
|
"outcome": "rejected",
|
|
9
14
|
"stage": "validate",
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
"stage": "validate",
|
|
5
5
|
"why": "7.0.0 写闸(WorkerSpec)拒 —— workers 是 gate 域,一只坏 worker 整域拒,不逐条容错"
|
|
6
6
|
},
|
|
7
|
+
"strictWrite": {
|
|
8
|
+
"outcome": "rejected",
|
|
9
|
+
"stage": "validate",
|
|
10
|
+
"why": "拒:k8s 车道缺必需坐标 K8S_SANDBOX_IMAGE,读腿整域拒;严写同样拒。"
|
|
11
|
+
},
|
|
7
12
|
"wire": {
|
|
8
13
|
"outcome": "rejected",
|
|
9
14
|
"stage": "validate",
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
"stage": "validate",
|
|
5
5
|
"why": "7.0.0 写闸(WorkerSpec)拒 —— workers 是 gate 域,一只坏 worker 整域拒,不逐条容错"
|
|
6
6
|
},
|
|
7
|
+
"strictWrite": {
|
|
8
|
+
"outcome": "rejected",
|
|
9
|
+
"stage": "validate",
|
|
10
|
+
"why": "拒:e2b 车道缺必需密钥引用 E2B_API_KEY,读腿整域拒;严写同样拒。"
|
|
11
|
+
},
|
|
7
12
|
"wire": {
|
|
8
13
|
"outcome": "rejected",
|
|
9
14
|
"stage": "validate",
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
"stage": "validate",
|
|
5
5
|
"why": "7.0.0 写闸(WorkerSpec)拒 —— workers 是 gate 域,一只坏 worker 整域拒,不逐条容错"
|
|
6
6
|
},
|
|
7
|
+
"strictWrite": {
|
|
8
|
+
"outcome": "rejected",
|
|
9
|
+
"stage": "validate",
|
|
10
|
+
"why": "拒:k8s 车道上写了属于 e2b 车道的坐标,读腿整域拒;严写同样拒。"
|
|
11
|
+
},
|
|
7
12
|
"wire": {
|
|
8
13
|
"outcome": "rejected",
|
|
9
14
|
"stage": "validate",
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
"stage": "validate",
|
|
5
5
|
"why": "7.0.0 写闸(WorkerSpec)拒 —— workers 是 gate 域,一只坏 worker 整域拒,不逐条容错"
|
|
6
6
|
},
|
|
7
|
+
"strictWrite": {
|
|
8
|
+
"outcome": "rejected",
|
|
9
|
+
"stage": "validate",
|
|
10
|
+
"why": "拒:store.session 写了不在闭集里的词,读腿整域拒;严写同样拒。"
|
|
11
|
+
},
|
|
7
12
|
"wire": {
|
|
8
13
|
"outcome": "rejected",
|
|
9
14
|
"stage": "validate",
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
"stage": "validate",
|
|
5
5
|
"why": "7.0.0 写闸(WorkerSpec)拒 —— workers 是 gate 域,一只坏 worker 整域拒,不逐条容错"
|
|
6
6
|
},
|
|
7
|
+
"strictWrite": {
|
|
8
|
+
"outcome": "rejected",
|
|
9
|
+
"stage": "validate",
|
|
10
|
+
"why": "拒:host 车道两副本,读腿整域拒;严写同样拒。"
|
|
11
|
+
},
|
|
7
12
|
"wire": {
|
|
8
13
|
"outcome": "rejected",
|
|
9
14
|
"stage": "validate",
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
"stage": "validate",
|
|
5
5
|
"why": "7.0.0 写闸(WorkerSpec)拒 —— workers 是 gate 域,一只坏 worker 整域拒,不逐条容错"
|
|
6
6
|
},
|
|
7
|
+
"strictWrite": {
|
|
8
|
+
"outcome": "rejected",
|
|
9
|
+
"stage": "validate",
|
|
10
|
+
"why": "拒:多租户 worker 配非 SQL 店,读腿整域拒;严写同样拒。"
|
|
11
|
+
},
|
|
7
12
|
"wire": {
|
|
8
13
|
"outcome": "rejected",
|
|
9
14
|
"stage": "validate",
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
"stage": "validate",
|
|
5
5
|
"why": "7.0.0 写闸(WorkerSpec)拒 —— workers 是 gate 域,一只坏 worker 整域拒,不逐条容错"
|
|
6
6
|
},
|
|
7
|
+
"strictWrite": {
|
|
8
|
+
"outcome": "rejected",
|
|
9
|
+
"stage": "validate",
|
|
10
|
+
"why": "拒:pg 店缺 store.db 坐标,读腿整域拒;严写同样拒。"
|
|
11
|
+
},
|
|
7
12
|
"wire": {
|
|
8
13
|
"outcome": "rejected",
|
|
9
14
|
"stage": "validate",
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
"stage": "validate",
|
|
5
5
|
"why": "7.0.0 写闸(WorkerSpec)拒 —— workers 是 gate 域,一只坏 worker 整域拒,不逐条容错"
|
|
6
6
|
},
|
|
7
|
+
"strictWrite": {
|
|
8
|
+
"outcome": "rejected",
|
|
9
|
+
"stage": "validate",
|
|
10
|
+
"why": "拒:记忆后端与店不匹配,读腿整域拒;严写同样拒。"
|
|
11
|
+
},
|
|
7
12
|
"wire": {
|
|
8
13
|
"outcome": "rejected",
|
|
9
14
|
"stage": "validate",
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
"stage": "validate",
|
|
5
5
|
"why": "7.0.0 写闸(WorkerSpec)拒 —— workers 是 gate 域,一只坏 worker 整域拒,不逐条容错"
|
|
6
6
|
},
|
|
7
|
+
"strictWrite": {
|
|
8
|
+
"outcome": "rejected",
|
|
9
|
+
"stage": "validate",
|
|
10
|
+
"why": "拒:写了 7.0.0 删除的旧字段 runtime.sessionBackend(读到即拒、拒因指路迁移),读腿整域拒;严写同样拒 —— 写入席同样不静默剥掉它。"
|
|
11
|
+
},
|
|
7
12
|
"wire": {
|
|
8
13
|
"outcome": "rejected",
|
|
9
14
|
"stage": "validate",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"contributor": "contract",
|
|
3
|
-
"claim": "7.0.0 删除项读到即**响亮拒**(runtime.sessionBackend,哪怕是停用的 worker),拒因指路 migrateWorkersDomain / settings-schema migrate-workers —— 不被 zod 静默剥成「什么都没声明」。",
|
|
3
|
+
"claim": "7.0.0 删除项读到即**响亮拒**(runtime.sessionBackend,哪怕是停用的 worker),拒因指路 migrateWorkersDomain / npx @sema-agent/settings-schema migrate-workers —— 不被 zod 静默剥成「什么都没声明」。",
|
|
4
4
|
"firstRedOn": []
|
|
5
5
|
}
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
"stage": "validate",
|
|
5
5
|
"why": "7.0.0 写闸(WorkerSpec)拒 —— workers 是 gate 域,一只坏 worker 整域拒,不逐条容错"
|
|
6
6
|
},
|
|
7
|
+
"strictWrite": {
|
|
8
|
+
"outcome": "rejected",
|
|
9
|
+
"stage": "validate",
|
|
10
|
+
"why": "拒:device 车道配非 SQL 店,读腿整域拒;严写同样拒。"
|
|
11
|
+
},
|
|
7
12
|
"wire": {
|
|
8
13
|
"outcome": "rejected",
|
|
9
14
|
"stage": "validate",
|
|
@@ -102,6 +102,60 @@
|
|
|
102
102
|
"updatedAt": "2026-09-16T00:00:00.000Z"
|
|
103
103
|
}
|
|
104
104
|
},
|
|
105
|
+
"strictWrite": {
|
|
106
|
+
"outcome": "effective",
|
|
107
|
+
"effective": {
|
|
108
|
+
"mcp": {
|
|
109
|
+
"servers": [
|
|
110
|
+
{
|
|
111
|
+
"elicitation": false,
|
|
112
|
+
"enabled": true,
|
|
113
|
+
"name": "s-null",
|
|
114
|
+
"rosters": [],
|
|
115
|
+
"scenarios": [],
|
|
116
|
+
"toolFaces": null,
|
|
117
|
+
"transport": {
|
|
118
|
+
"kind": "http",
|
|
119
|
+
"url": "https://a.example"
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"elicitation": false,
|
|
124
|
+
"enabled": true,
|
|
125
|
+
"name": "s-array",
|
|
126
|
+
"rosters": [],
|
|
127
|
+
"scenarios": [],
|
|
128
|
+
"toolFaces": [
|
|
129
|
+
1,
|
|
130
|
+
2
|
|
131
|
+
],
|
|
132
|
+
"transport": {
|
|
133
|
+
"kind": "http",
|
|
134
|
+
"url": "https://b.example"
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"elicitation": false,
|
|
139
|
+
"enabled": true,
|
|
140
|
+
"name": "s-string",
|
|
141
|
+
"rosters": [],
|
|
142
|
+
"scenarios": [],
|
|
143
|
+
"toolFaces": "not-an-object",
|
|
144
|
+
"transport": {
|
|
145
|
+
"kind": "http",
|
|
146
|
+
"url": "https://c.example"
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
"warnings": [],
|
|
153
|
+
"metadata": {
|
|
154
|
+
"version": 7,
|
|
155
|
+
"updatedAt": "2026-09-16T00:00:00.000Z"
|
|
156
|
+
},
|
|
157
|
+
"why": "受理:mcp[].toolFaces 是解析透明键,数组 / null / 串三形读腿都逐字透传;严写同样逐字收下,受理形等于读腿 mcp 那一格。"
|
|
158
|
+
},
|
|
105
159
|
"wire": {
|
|
106
160
|
"derive": true
|
|
107
161
|
},
|
|
@@ -75,6 +75,33 @@
|
|
|
75
75
|
"updatedAt": "2026-09-16T00:00:00.000Z"
|
|
76
76
|
}
|
|
77
77
|
},
|
|
78
|
+
"strictWrite": {
|
|
79
|
+
"outcome": "effective",
|
|
80
|
+
"effective": {
|
|
81
|
+
"mcp": {
|
|
82
|
+
"servers": [
|
|
83
|
+
{
|
|
84
|
+
"elicitation": false,
|
|
85
|
+
"enabled": true,
|
|
86
|
+
"name": "s1",
|
|
87
|
+
"rosters": [],
|
|
88
|
+
"scenarios": [],
|
|
89
|
+
"source": "plugin",
|
|
90
|
+
"transport": {
|
|
91
|
+
"kind": "http",
|
|
92
|
+
"url": "https://x.example"
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"warnings": [],
|
|
99
|
+
"metadata": {
|
|
100
|
+
"version": 7,
|
|
101
|
+
"updatedAt": "2026-09-16T00:00:00.000Z"
|
|
102
|
+
},
|
|
103
|
+
"why": "受理:mcp[].source 是解析透明键,读腿逐字透传;严写同样逐字收下,受理形等于读腿 mcp 那一格。"
|
|
104
|
+
},
|
|
78
105
|
"wire": {
|
|
79
106
|
"derive": true
|
|
80
107
|
},
|
|
@@ -79,6 +79,39 @@
|
|
|
79
79
|
"updatedAt": "2026-09-16T00:00:00.000Z"
|
|
80
80
|
}
|
|
81
81
|
},
|
|
82
|
+
"strictWrite": {
|
|
83
|
+
"outcome": "effective",
|
|
84
|
+
"effective": {
|
|
85
|
+
"models": {
|
|
86
|
+
"models": [
|
|
87
|
+
{
|
|
88
|
+
"api": "openai-completions",
|
|
89
|
+
"apiKeyEnv": "OPENAI_API_KEY",
|
|
90
|
+
"compat": {
|
|
91
|
+
"thinkingFormat": "anthropic",
|
|
92
|
+
"zzz": 1
|
|
93
|
+
},
|
|
94
|
+
"enabled": true,
|
|
95
|
+
"id": "m0-id",
|
|
96
|
+
"name": "m0",
|
|
97
|
+
"provider": "openai",
|
|
98
|
+
"quotaWeight": 1,
|
|
99
|
+
"reasoning": false,
|
|
100
|
+
"tier": "standard",
|
|
101
|
+
"vision": false
|
|
102
|
+
}
|
|
103
|
+
],
|
|
104
|
+
"roles": {},
|
|
105
|
+
"tierGroups": []
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"warnings": [],
|
|
109
|
+
"metadata": {
|
|
110
|
+
"version": 7,
|
|
111
|
+
"updatedAt": "2026-09-16T00:00:00.000Z"
|
|
112
|
+
},
|
|
113
|
+
"why": "受理:models[].compat 的未知子键同形保留(自由形 + 安全判据);严写同样保留,受理形等于读腿 models 那一格。"
|
|
114
|
+
},
|
|
82
115
|
"wire": {
|
|
83
116
|
"derive": true
|
|
84
117
|
},
|
|
@@ -105,6 +105,11 @@
|
|
|
105
105
|
"updatedAt": "2026-09-16T00:00:00.000Z"
|
|
106
106
|
}
|
|
107
107
|
},
|
|
108
|
+
"strictWrite": {
|
|
109
|
+
"outcome": "rejected",
|
|
110
|
+
"stage": "validate",
|
|
111
|
+
"why": "拒:models 里两条名字带控制 / 零宽字符,读腿逐条丢(entry-dropped);mcp 那一份干净,但严写在任何一份不受理时整次不受理。"
|
|
112
|
+
},
|
|
108
113
|
"wire": {
|
|
109
114
|
"derive": true
|
|
110
115
|
},
|
|
@@ -82,6 +82,28 @@
|
|
|
82
82
|
"updatedAt": "2026-09-16T00:00:00.000Z"
|
|
83
83
|
}
|
|
84
84
|
},
|
|
85
|
+
"strictWrite": {
|
|
86
|
+
"outcome": "effective",
|
|
87
|
+
"effective": {
|
|
88
|
+
"hosts": {
|
|
89
|
+
"hosts": [
|
|
90
|
+
{
|
|
91
|
+
"approved": false,
|
|
92
|
+
"drain": false,
|
|
93
|
+
"enabled": true,
|
|
94
|
+
"labels": [],
|
|
95
|
+
"name": "h1"
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"warnings": [],
|
|
101
|
+
"metadata": {
|
|
102
|
+
"version": 7,
|
|
103
|
+
"updatedAt": "2026-09-16T00:00:00.000Z"
|
|
104
|
+
},
|
|
105
|
+
"why": "受理:粘进 hosts 条目的 `url`(带凭据)是未知键,被 schema 剥掉(读腿只报键路径);严写同样剥 —— 凭据既不进受理形、也不进告警(告警面为空)。"
|
|
106
|
+
},
|
|
85
107
|
"wire": {
|
|
86
108
|
"derive": true
|
|
87
109
|
},
|
|
@@ -94,6 +94,52 @@
|
|
|
94
94
|
"updatedAt": "2026-09-16T00:00:00.000Z"
|
|
95
95
|
}
|
|
96
96
|
},
|
|
97
|
+
"strictWrite": {
|
|
98
|
+
"outcome": "effective",
|
|
99
|
+
"effective": {
|
|
100
|
+
"workers": {
|
|
101
|
+
"workers": [
|
|
102
|
+
{
|
|
103
|
+
"coords": {},
|
|
104
|
+
"enabled": true,
|
|
105
|
+
"env": {
|
|
106
|
+
"BAR": "c\rd",
|
|
107
|
+
"FOO": "a\nb"
|
|
108
|
+
},
|
|
109
|
+
"host": "default",
|
|
110
|
+
"image": "sema-server:latest",
|
|
111
|
+
"name": "w1",
|
|
112
|
+
"runtime": {
|
|
113
|
+
"execution": {
|
|
114
|
+
"coords": {},
|
|
115
|
+
"lane": "host",
|
|
116
|
+
"secretRefs": {}
|
|
117
|
+
},
|
|
118
|
+
"rateLimitRpm": 0,
|
|
119
|
+
"requirePrincipal": false,
|
|
120
|
+
"store": {
|
|
121
|
+
"backend": "local",
|
|
122
|
+
"memory": {
|
|
123
|
+
"backend": "file",
|
|
124
|
+
"engine": "on"
|
|
125
|
+
},
|
|
126
|
+
"session": "auto"
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
"secretRefs": {
|
|
130
|
+
"apiKeyEnv": "OPENAI_API_KEY"
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
]
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"warnings": [],
|
|
137
|
+
"metadata": {
|
|
138
|
+
"version": 7,
|
|
139
|
+
"updatedAt": "2026-09-16T00:00:00.000Z"
|
|
140
|
+
},
|
|
141
|
+
"why": "受理:worker 的 env 值里有换行 / 回车,读腿原样承运;严写同样原样收下,受理形等于读腿 workers 那一格。"
|
|
142
|
+
},
|
|
97
143
|
"wire": {
|
|
98
144
|
"derive": true
|
|
99
145
|
},
|