@sema-agent/settings-schema 6.4.0 → 7.0.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.
Files changed (95) hide show
  1. package/CHANGELOG.md +209 -0
  2. package/README.md +53 -2
  3. package/bin/settings-schema.mjs +22 -0
  4. package/conformance/VERSION +1 -1
  5. package/conformance/cases/c50-s784-lane-host-legal/expected.json +102 -0
  6. package/conformance/cases/c50-s784-lane-host-legal/input.json +29 -0
  7. package/conformance/cases/c50-s784-lane-host-legal/meta.json +5 -0
  8. package/conformance/cases/c51-s784-lane-e2b-legal/expected.json +104 -0
  9. package/conformance/cases/c51-s784-lane-e2b-legal/input.json +32 -0
  10. package/conformance/cases/c51-s784-lane-e2b-legal/meta.json +5 -0
  11. package/conformance/cases/c52-s784-lane-k8s-legal/expected.json +106 -0
  12. package/conformance/cases/c52-s784-lane-k8s-legal/input.json +34 -0
  13. package/conformance/cases/c52-s784-lane-k8s-legal/meta.json +5 -0
  14. package/conformance/cases/c53-s784-lane-ssh-legal/expected.json +106 -0
  15. package/conformance/cases/c53-s784-lane-ssh-legal/input.json +34 -0
  16. package/conformance/cases/c53-s784-lane-ssh-legal/meta.json +5 -0
  17. package/conformance/cases/c54-s784-lane-adb-legal/expected.json +102 -0
  18. package/conformance/cases/c54-s784-lane-adb-legal/input.json +29 -0
  19. package/conformance/cases/c54-s784-lane-adb-legal/meta.json +5 -0
  20. package/conformance/cases/c55-s784-lane-local-docker-legal/expected.json +103 -0
  21. package/conformance/cases/c55-s784-lane-local-docker-legal/input.json +30 -0
  22. package/conformance/cases/c55-s784-lane-local-docker-legal/meta.json +5 -0
  23. package/conformance/cases/c56-s784-lane-device-legal/expected.json +109 -0
  24. package/conformance/cases/c56-s784-lane-device-legal/input.json +36 -0
  25. package/conformance/cases/c56-s784-lane-device-legal/meta.json +5 -0
  26. package/conformance/cases/c57-s784-g1-enabled-no-lane/expected.json +83 -0
  27. package/conformance/cases/c57-s784-g1-enabled-no-lane/input.json +23 -0
  28. package/conformance/cases/c57-s784-g1-enabled-no-lane/meta.json +5 -0
  29. package/conformance/cases/c58-s784-g2-multitenant-host/expected.json +83 -0
  30. package/conformance/cases/c58-s784-g2-multitenant-host/input.json +34 -0
  31. package/conformance/cases/c58-s784-g2-multitenant-host/meta.json +5 -0
  32. package/conformance/cases/c59-s784-g3-k8s-missing-image/expected.json +83 -0
  33. package/conformance/cases/c59-s784-g3-k8s-missing-image/input.json +26 -0
  34. package/conformance/cases/c59-s784-g3-k8s-missing-image/meta.json +5 -0
  35. package/conformance/cases/c60-s784-g3-e2b-missing-key/expected.json +83 -0
  36. package/conformance/cases/c60-s784-g3-e2b-missing-key/input.json +26 -0
  37. package/conformance/cases/c60-s784-g3-e2b-missing-key/meta.json +5 -0
  38. package/conformance/cases/c61-s784-g3-other-lane-key/expected.json +83 -0
  39. package/conformance/cases/c61-s784-g3-other-lane-key/input.json +30 -0
  40. package/conformance/cases/c61-s784-g3-other-lane-key/meta.json +5 -0
  41. package/conformance/cases/c62-s784-g7a-session-tidb/expected.json +83 -0
  42. package/conformance/cases/c62-s784-g7a-session-tidb/input.json +27 -0
  43. package/conformance/cases/c62-s784-g7a-session-tidb/meta.json +5 -0
  44. package/conformance/cases/c63-s784-host-two-replicas/expected.json +83 -0
  45. package/conformance/cases/c63-s784-host-two-replicas/input.json +27 -0
  46. package/conformance/cases/c63-s784-host-two-replicas/meta.json +5 -0
  47. package/conformance/cases/c64-s784-multitenant-local-store/expected.json +83 -0
  48. package/conformance/cases/c64-s784-multitenant-local-store/input.json +30 -0
  49. package/conformance/cases/c64-s784-multitenant-local-store/meta.json +5 -0
  50. package/conformance/cases/c65-s784-pg-without-db/expected.json +83 -0
  51. package/conformance/cases/c65-s784-pg-without-db/input.json +27 -0
  52. package/conformance/cases/c65-s784-pg-without-db/meta.json +5 -0
  53. package/conformance/cases/c66-s784-memory-backend-mismatch/expected.json +83 -0
  54. package/conformance/cases/c66-s784-memory-backend-mismatch/input.json +36 -0
  55. package/conformance/cases/c66-s784-memory-backend-mismatch/meta.json +5 -0
  56. package/conformance/cases/c67-s784-retired-field-loud/expected.json +83 -0
  57. package/conformance/cases/c67-s784-retired-field-loud/input.json +22 -0
  58. package/conformance/cases/c67-s784-retired-field-loud/meta.json +5 -0
  59. package/conformance/cases/c68-s784-device-local-store/expected.json +83 -0
  60. package/conformance/cases/c68-s784-device-local-store/input.json +26 -0
  61. package/conformance/cases/c68-s784-device-local-store/meta.json +5 -0
  62. package/conformance/cases/cli04-env-value-with-newline/expected.json +13 -2
  63. package/conformance/cases/cli04-env-value-with-newline/input.json +8 -1
  64. package/conformance/cases/cli04-env-value-with-newline/meta.json +1 -1
  65. package/conformance/migrate-workers/m01-g5-k8s-env-lifted/expected.json +49 -0
  66. package/conformance/migrate-workers/m01-g5-k8s-env-lifted/input.json +26 -0
  67. package/conformance/migrate-workers/m01-g5-k8s-env-lifted/meta.json +4 -0
  68. package/conformance/migrate-workers/m02-g5-idempotent/expected.json +38 -0
  69. package/conformance/migrate-workers/m02-g5-idempotent/input.json +33 -0
  70. package/conformance/migrate-workers/m02-g5-idempotent/meta.json +5 -0
  71. package/conformance/migrate-workers/m03-g5-refused-no-lane/expected.json +71 -0
  72. package/conformance/migrate-workers/m03-g5-refused-no-lane/input.json +42 -0
  73. package/conformance/migrate-workers/m03-g5-refused-no-lane/meta.json +4 -0
  74. package/conformance/migrate-workers/m04-g7b-session-tidb-lifted/expected.json +52 -0
  75. package/conformance/migrate-workers/m04-g7b-session-tidb-lifted/input.json +30 -0
  76. package/conformance/migrate-workers/m04-g7b-session-tidb-lifted/meta.json +4 -0
  77. package/dist/cli.d.ts +8 -0
  78. package/dist/cli.js +110 -0
  79. package/dist/execution-lane-index.d.ts +38 -0
  80. package/dist/execution-lane-index.js +46 -0
  81. package/dist/execution-lanes.d.ts +64 -0
  82. package/dist/execution-lanes.js +152 -0
  83. package/dist/file-edit.js +26 -21
  84. package/dist/hooks.d.ts +4 -4
  85. package/dist/index.d.ts +2 -0
  86. package/dist/index.js +2 -0
  87. package/dist/migrate-workers.d.ts +63 -0
  88. package/dist/migrate-workers.js +327 -0
  89. package/dist/remote-exec.d.ts +23 -64
  90. package/dist/remote-exec.js +20 -71
  91. package/dist/secret-refs.d.ts +7 -1
  92. package/dist/secret-refs.js +9 -3
  93. package/dist/types.d.ts +1356 -455
  94. package/dist/types.js +267 -63
  95. package/package.json +9 -1
@@ -0,0 +1,36 @@
1
+ {
2
+ "meta": {
3
+ "version": 7,
4
+ "updatedAt": "2026-10-03T00:00:00.000Z"
5
+ },
6
+ "domains": {
7
+ "workers": {
8
+ "workers": [
9
+ {
10
+ "name": "w-device",
11
+ "secretRefs": {
12
+ "apiKeyEnv": "MODEL_KEY",
13
+ "dbPasswordEnv": "HOST_DB_PW"
14
+ },
15
+ "runtime": {
16
+ "execution": {
17
+ "lane": "device",
18
+ "coords": {
19
+ "DEVICE_SUPERSEDE": "deny"
20
+ }
21
+ },
22
+ "store": {
23
+ "backend": "pg",
24
+ "db": {
25
+ "host": "pg.internal",
26
+ "port": 5432,
27
+ "user": "svc",
28
+ "database": "sema"
29
+ }
30
+ }
31
+ }
32
+ }
33
+ ]
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "contributor": "contract",
3
+ "claim": "7.0.0 M-R2:`device` 车道的一份合法 WorkerSpec(必需坐标 / 密钥齐、可选键在本车道栏内)三腿读出、零告警。打的是「写闸把合法车道块判成坏的」或「读腿把 runtime.execution / runtime.store 剥掉」两种读法分歧(6.4.0 两块都会被静默剥)。 device 这一份用 pg 店:引擎 `device-durable-store` 拒没有 SQL 坐标的 device(gpt-6 腿 F2),local 店的 device 是拒因语料 c68。",
4
+ "firstRedOn": []
5
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "domains": {
3
+ "outcome": "rejected",
4
+ "stage": "validate",
5
+ "why": "7.0.0 写闸(WorkerSpec)拒 —— workers 是 gate 域,一只坏 worker 整域拒,不逐条容错"
6
+ },
7
+ "wire": {
8
+ "outcome": "rejected",
9
+ "stage": "validate",
10
+ "why": "wire 腿把同一份文档交给同一个 buildEffective,拒绝层相同"
11
+ },
12
+ "localRoot": {
13
+ "outcome": "effective",
14
+ "effective": {
15
+ "collab": {
16
+ "templates": []
17
+ },
18
+ "entitlement": {
19
+ "budgetGroups": [],
20
+ "groupBindings": [],
21
+ "subjects": [],
22
+ "tiers": []
23
+ },
24
+ "execution": {
25
+ "allowedLanes": [
26
+ "host"
27
+ ],
28
+ "required": false
29
+ },
30
+ "governance": {},
31
+ "hosts": {
32
+ "hosts": []
33
+ },
34
+ "limits": {},
35
+ "mcp": {
36
+ "servers": []
37
+ },
38
+ "models": {
39
+ "models": [],
40
+ "roles": {},
41
+ "tierGroups": []
42
+ },
43
+ "plugins": {
44
+ "plugins": []
45
+ },
46
+ "projects": {
47
+ "projects": {}
48
+ },
49
+ "prompts": {
50
+ "bindings": []
51
+ },
52
+ "rosters": {
53
+ "rosters": []
54
+ },
55
+ "runtime": {},
56
+ "scenarios": {
57
+ "scenarios": []
58
+ },
59
+ "skills": {
60
+ "skills": []
61
+ },
62
+ "systems": {
63
+ "systems": []
64
+ },
65
+ "workers": {
66
+ "workers": []
67
+ }
68
+ },
69
+ "warnings": [
70
+ {
71
+ "domain": "workers",
72
+ "file": "workers.json",
73
+ "kind": "unread-config-file",
74
+ "why": "non-portable-domain"
75
+ }
76
+ ],
77
+ "metadata": {
78
+ "version": 2617555914511015,
79
+ "updatedAt": "1970-01-01T00:00:00.000Z"
80
+ },
81
+ "why": "workers 是非便携域:本机腿不读 config.d/workers.json(只报 unread-config-file),写闸判据只在 domains / wire 两腿上可观察"
82
+ }
83
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "meta": {
3
+ "version": 7,
4
+ "updatedAt": "2026-10-03T00:00:00.000Z"
5
+ },
6
+ "domains": {
7
+ "workers": {
8
+ "workers": [
9
+ {
10
+ "name": "w",
11
+ "secretRefs": {
12
+ "apiKeyEnv": "MODEL_KEY"
13
+ },
14
+ "runtime": {
15
+ "store": {
16
+ "backend": "local"
17
+ }
18
+ }
19
+ }
20
+ ]
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "contributor": "contract",
3
+ "claim": "G1:enabled 的 worker 没有 runtime.execution ⇒ 拒(拒因点名 runtime.execution.lane)。打「声明不了车道也能过闸、起服落进程内 stub、无手照回 completed」那条静默路(WA-49)。",
4
+ "firstRedOn": []
5
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "domains": {
3
+ "outcome": "rejected",
4
+ "stage": "validate",
5
+ "why": "7.0.0 写闸(WorkerSpec)拒 —— workers 是 gate 域,一只坏 worker 整域拒,不逐条容错"
6
+ },
7
+ "wire": {
8
+ "outcome": "rejected",
9
+ "stage": "validate",
10
+ "why": "wire 腿把同一份文档交给同一个 buildEffective,拒绝层相同"
11
+ },
12
+ "localRoot": {
13
+ "outcome": "effective",
14
+ "effective": {
15
+ "collab": {
16
+ "templates": []
17
+ },
18
+ "entitlement": {
19
+ "budgetGroups": [],
20
+ "groupBindings": [],
21
+ "subjects": [],
22
+ "tiers": []
23
+ },
24
+ "execution": {
25
+ "allowedLanes": [
26
+ "host"
27
+ ],
28
+ "required": false
29
+ },
30
+ "governance": {},
31
+ "hosts": {
32
+ "hosts": []
33
+ },
34
+ "limits": {},
35
+ "mcp": {
36
+ "servers": []
37
+ },
38
+ "models": {
39
+ "models": [],
40
+ "roles": {},
41
+ "tierGroups": []
42
+ },
43
+ "plugins": {
44
+ "plugins": []
45
+ },
46
+ "projects": {
47
+ "projects": {}
48
+ },
49
+ "prompts": {
50
+ "bindings": []
51
+ },
52
+ "rosters": {
53
+ "rosters": []
54
+ },
55
+ "runtime": {},
56
+ "scenarios": {
57
+ "scenarios": []
58
+ },
59
+ "skills": {
60
+ "skills": []
61
+ },
62
+ "systems": {
63
+ "systems": []
64
+ },
65
+ "workers": {
66
+ "workers": []
67
+ }
68
+ },
69
+ "warnings": [
70
+ {
71
+ "domain": "workers",
72
+ "file": "workers.json",
73
+ "kind": "unread-config-file",
74
+ "why": "non-portable-domain"
75
+ }
76
+ ],
77
+ "metadata": {
78
+ "version": 2617555914511015,
79
+ "updatedAt": "1970-01-01T00:00:00.000Z"
80
+ },
81
+ "why": "workers 是非便携域:本机腿不读 config.d/workers.json(只报 unread-config-file),写闸判据只在 domains / wire 两腿上可观察"
82
+ }
83
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "meta": {
3
+ "version": 7,
4
+ "updatedAt": "2026-10-03T00:00:00.000Z"
5
+ },
6
+ "domains": {
7
+ "workers": {
8
+ "workers": [
9
+ {
10
+ "name": "w",
11
+ "secretRefs": {
12
+ "apiKeyEnv": "MODEL_KEY",
13
+ "dbPasswordEnv": "HOST_DB_PW"
14
+ },
15
+ "runtime": {
16
+ "execution": {
17
+ "lane": "host"
18
+ },
19
+ "store": {
20
+ "backend": "mysql",
21
+ "db": {
22
+ "host": "db.internal",
23
+ "port": 3306,
24
+ "user": "svc",
25
+ "database": "sema"
26
+ }
27
+ },
28
+ "requirePrincipal": true
29
+ }
30
+ }
31
+ ]
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "contributor": "contract",
3
+ "claim": "G2:requirePrincipal + host(不分租户的车道)⇒ 拒;出路 = 导出表里 tenantSeparation=supported 的车道。打「多租户 worker 把每个租户的 Bash 落在同一台宿主」。",
4
+ "firstRedOn": []
5
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "domains": {
3
+ "outcome": "rejected",
4
+ "stage": "validate",
5
+ "why": "7.0.0 写闸(WorkerSpec)拒 —— workers 是 gate 域,一只坏 worker 整域拒,不逐条容错"
6
+ },
7
+ "wire": {
8
+ "outcome": "rejected",
9
+ "stage": "validate",
10
+ "why": "wire 腿把同一份文档交给同一个 buildEffective,拒绝层相同"
11
+ },
12
+ "localRoot": {
13
+ "outcome": "effective",
14
+ "effective": {
15
+ "collab": {
16
+ "templates": []
17
+ },
18
+ "entitlement": {
19
+ "budgetGroups": [],
20
+ "groupBindings": [],
21
+ "subjects": [],
22
+ "tiers": []
23
+ },
24
+ "execution": {
25
+ "allowedLanes": [
26
+ "host"
27
+ ],
28
+ "required": false
29
+ },
30
+ "governance": {},
31
+ "hosts": {
32
+ "hosts": []
33
+ },
34
+ "limits": {},
35
+ "mcp": {
36
+ "servers": []
37
+ },
38
+ "models": {
39
+ "models": [],
40
+ "roles": {},
41
+ "tierGroups": []
42
+ },
43
+ "plugins": {
44
+ "plugins": []
45
+ },
46
+ "projects": {
47
+ "projects": {}
48
+ },
49
+ "prompts": {
50
+ "bindings": []
51
+ },
52
+ "rosters": {
53
+ "rosters": []
54
+ },
55
+ "runtime": {},
56
+ "scenarios": {
57
+ "scenarios": []
58
+ },
59
+ "skills": {
60
+ "skills": []
61
+ },
62
+ "systems": {
63
+ "systems": []
64
+ },
65
+ "workers": {
66
+ "workers": []
67
+ }
68
+ },
69
+ "warnings": [
70
+ {
71
+ "domain": "workers",
72
+ "file": "workers.json",
73
+ "kind": "unread-config-file",
74
+ "why": "non-portable-domain"
75
+ }
76
+ ],
77
+ "metadata": {
78
+ "version": 2617555914511015,
79
+ "updatedAt": "1970-01-01T00:00:00.000Z"
80
+ },
81
+ "why": "workers 是非便携域:本机腿不读 config.d/workers.json(只报 unread-config-file),写闸判据只在 domains / wire 两腿上可观察"
82
+ }
83
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "meta": {
3
+ "version": 7,
4
+ "updatedAt": "2026-10-03T00:00:00.000Z"
5
+ },
6
+ "domains": {
7
+ "workers": {
8
+ "workers": [
9
+ {
10
+ "name": "w",
11
+ "secretRefs": {
12
+ "apiKeyEnv": "MODEL_KEY"
13
+ },
14
+ "runtime": {
15
+ "execution": {
16
+ "lane": "k8s"
17
+ },
18
+ "store": {
19
+ "backend": "local"
20
+ }
21
+ }
22
+ }
23
+ ]
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "contributor": "contract",
3
+ "claim": "G3a:k8s 车道缺 coords.K8S_SANDBOX_IMAGE ⇒ 拒点名。打「点了车道却配不齐,引擎起服才拒」—— 写闸先判同一张表。",
4
+ "firstRedOn": []
5
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "domains": {
3
+ "outcome": "rejected",
4
+ "stage": "validate",
5
+ "why": "7.0.0 写闸(WorkerSpec)拒 —— workers 是 gate 域,一只坏 worker 整域拒,不逐条容错"
6
+ },
7
+ "wire": {
8
+ "outcome": "rejected",
9
+ "stage": "validate",
10
+ "why": "wire 腿把同一份文档交给同一个 buildEffective,拒绝层相同"
11
+ },
12
+ "localRoot": {
13
+ "outcome": "effective",
14
+ "effective": {
15
+ "collab": {
16
+ "templates": []
17
+ },
18
+ "entitlement": {
19
+ "budgetGroups": [],
20
+ "groupBindings": [],
21
+ "subjects": [],
22
+ "tiers": []
23
+ },
24
+ "execution": {
25
+ "allowedLanes": [
26
+ "host"
27
+ ],
28
+ "required": false
29
+ },
30
+ "governance": {},
31
+ "hosts": {
32
+ "hosts": []
33
+ },
34
+ "limits": {},
35
+ "mcp": {
36
+ "servers": []
37
+ },
38
+ "models": {
39
+ "models": [],
40
+ "roles": {},
41
+ "tierGroups": []
42
+ },
43
+ "plugins": {
44
+ "plugins": []
45
+ },
46
+ "projects": {
47
+ "projects": {}
48
+ },
49
+ "prompts": {
50
+ "bindings": []
51
+ },
52
+ "rosters": {
53
+ "rosters": []
54
+ },
55
+ "runtime": {},
56
+ "scenarios": {
57
+ "scenarios": []
58
+ },
59
+ "skills": {
60
+ "skills": []
61
+ },
62
+ "systems": {
63
+ "systems": []
64
+ },
65
+ "workers": {
66
+ "workers": []
67
+ }
68
+ },
69
+ "warnings": [
70
+ {
71
+ "domain": "workers",
72
+ "file": "workers.json",
73
+ "kind": "unread-config-file",
74
+ "why": "non-portable-domain"
75
+ }
76
+ ],
77
+ "metadata": {
78
+ "version": 2617555914511015,
79
+ "updatedAt": "1970-01-01T00:00:00.000Z"
80
+ },
81
+ "why": "workers 是非便携域:本机腿不读 config.d/workers.json(只报 unread-config-file),写闸判据只在 domains / wire 两腿上可观察"
82
+ }
83
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "meta": {
3
+ "version": 7,
4
+ "updatedAt": "2026-10-03T00:00:00.000Z"
5
+ },
6
+ "domains": {
7
+ "workers": {
8
+ "workers": [
9
+ {
10
+ "name": "w",
11
+ "secretRefs": {
12
+ "apiKeyEnv": "MODEL_KEY"
13
+ },
14
+ "runtime": {
15
+ "execution": {
16
+ "lane": "e2b"
17
+ },
18
+ "store": {
19
+ "backend": "local"
20
+ }
21
+ }
22
+ }
23
+ ]
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "contributor": "contract",
3
+ "claim": "G3b:e2b 车道缺 secretRefs.E2B_API_KEY ⇒ 拒点名。",
4
+ "firstRedOn": []
5
+ }
@@ -0,0 +1,83 @@
1
+ {
2
+ "domains": {
3
+ "outcome": "rejected",
4
+ "stage": "validate",
5
+ "why": "7.0.0 写闸(WorkerSpec)拒 —— workers 是 gate 域,一只坏 worker 整域拒,不逐条容错"
6
+ },
7
+ "wire": {
8
+ "outcome": "rejected",
9
+ "stage": "validate",
10
+ "why": "wire 腿把同一份文档交给同一个 buildEffective,拒绝层相同"
11
+ },
12
+ "localRoot": {
13
+ "outcome": "effective",
14
+ "effective": {
15
+ "collab": {
16
+ "templates": []
17
+ },
18
+ "entitlement": {
19
+ "budgetGroups": [],
20
+ "groupBindings": [],
21
+ "subjects": [],
22
+ "tiers": []
23
+ },
24
+ "execution": {
25
+ "allowedLanes": [
26
+ "host"
27
+ ],
28
+ "required": false
29
+ },
30
+ "governance": {},
31
+ "hosts": {
32
+ "hosts": []
33
+ },
34
+ "limits": {},
35
+ "mcp": {
36
+ "servers": []
37
+ },
38
+ "models": {
39
+ "models": [],
40
+ "roles": {},
41
+ "tierGroups": []
42
+ },
43
+ "plugins": {
44
+ "plugins": []
45
+ },
46
+ "projects": {
47
+ "projects": {}
48
+ },
49
+ "prompts": {
50
+ "bindings": []
51
+ },
52
+ "rosters": {
53
+ "rosters": []
54
+ },
55
+ "runtime": {},
56
+ "scenarios": {
57
+ "scenarios": []
58
+ },
59
+ "skills": {
60
+ "skills": []
61
+ },
62
+ "systems": {
63
+ "systems": []
64
+ },
65
+ "workers": {
66
+ "workers": []
67
+ }
68
+ },
69
+ "warnings": [
70
+ {
71
+ "domain": "workers",
72
+ "file": "workers.json",
73
+ "kind": "unread-config-file",
74
+ "why": "non-portable-domain"
75
+ }
76
+ ],
77
+ "metadata": {
78
+ "version": 2617555914511015,
79
+ "updatedAt": "1970-01-01T00:00:00.000Z"
80
+ },
81
+ "why": "workers 是非便携域:本机腿不读 config.d/workers.json(只报 unread-config-file),写闸判据只在 domains / wire 两腿上可观察"
82
+ }
83
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "meta": {
3
+ "version": 7,
4
+ "updatedAt": "2026-10-03T00:00:00.000Z"
5
+ },
6
+ "domains": {
7
+ "workers": {
8
+ "workers": [
9
+ {
10
+ "name": "w",
11
+ "secretRefs": {
12
+ "apiKeyEnv": "MODEL_KEY"
13
+ },
14
+ "runtime": {
15
+ "execution": {
16
+ "lane": "k8s",
17
+ "coords": {
18
+ "K8S_SANDBOX_IMAGE": "img",
19
+ "E2B_TEMPLATE": "base"
20
+ }
21
+ },
22
+ "store": {
23
+ "backend": "local"
24
+ }
25
+ }
26
+ }
27
+ ]
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "contributor": "contract",
3
+ "claim": "G3c:k8s 车道多给 e2b 的键(E2B_TEMPLATE)⇒ 拒并点名它属于 e2b。打「别车道的键静默惰性」—— 写下去的配置引擎根本不读。",
4
+ "firstRedOn": []
5
+ }