evolcore 0.0.23 → 0.0.25

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 (245) hide show
  1. package/CHANGELOG.md +583 -516
  2. package/LICENSE +21 -21
  3. package/README.md +455 -453
  4. package/bin/codex-managed-acl.ps1 +160 -155
  5. package/bin/codex-managed-hook.mjs +209 -92
  6. package/bin/ec-safe-output.js +327 -245
  7. package/bin/ec.js +29 -29
  8. package/bin/install-codex-managed-hooks.mjs +555 -544
  9. package/dist/agents/baseagent-availability.js +4 -4
  10. package/dist/agents/baseagent.js +29 -1
  11. package/dist/agents/claude-runner.js +152 -14
  12. package/dist/agents/codex/app-server-client.js +18 -8
  13. package/dist/agents/codex/catalog.js +1 -1
  14. package/dist/agents/codex/diagnostics.js +215 -0
  15. package/dist/agents/codex-runner.js +445 -63
  16. package/dist/agents/ecagent-runner.js +31 -16
  17. package/dist/agents/gemini-runner.js +82 -4
  18. package/dist/agents/runner-types.js +1 -1
  19. package/dist/aun/aid/agentmd.js +56 -4
  20. package/dist/aun/aid/index.js +1 -0
  21. package/dist/aun/aid/managed-operation.js +80 -6
  22. package/dist/aun/aid/store.js +41 -0
  23. package/dist/aun/msg/managed-operation.js +6 -1
  24. package/dist/aun/outbox.js +56 -18
  25. package/dist/aun/rpc/client.js +4 -5
  26. package/dist/aun/storage/client.js +4 -1
  27. package/dist/aun/storage/index.js +1 -1
  28. package/dist/channels/aun.js +147 -76
  29. package/dist/channels/daemon.js +7 -1
  30. package/dist/channels/dingtalk.js +1 -0
  31. package/dist/channels/feishu.js +10 -4
  32. package/dist/channels/wecom.js +2 -1
  33. package/dist/cli/agent-command.js +214 -89
  34. package/dist/cli/agent-create.js +576 -0
  35. package/dist/cli/agent.js +129 -676
  36. package/dist/cli/aun-commands.js +419 -313
  37. package/dist/cli/bench.js +20 -20
  38. package/dist/cli/config.js +20 -20
  39. package/dist/cli/contact.js +10 -10
  40. package/dist/cli/ctl-command.js +22 -20
  41. package/dist/cli/daemon-commands.js +163 -32
  42. package/dist/cli/fs-command.js +67 -67
  43. package/dist/cli/handoff-command.js +7 -7
  44. package/dist/cli/index.js +79 -79
  45. package/dist/cli/link-rules.js +21 -21
  46. package/dist/cli/managed-command-guard.js +3 -0
  47. package/dist/cli/menu-client.js +11 -11
  48. package/dist/cli/net-check.js +22 -22
  49. package/dist/cli/queue-command.js +29 -29
  50. package/dist/cli/response.js +30 -30
  51. package/dist/cli/restart-monitor.js +462 -38
  52. package/dist/cli/stats.js +161 -51
  53. package/dist/cli/trigger-command.js +56 -56
  54. package/dist/config/builtin-roles.js +3 -0
  55. package/dist/config/config-manager.js +15 -0
  56. package/dist/config/config-operation-service.js +20 -3
  57. package/dist/config/resolved-config-op.js +39 -1
  58. package/dist/core/auth/auth-gateway.js +3 -2
  59. package/dist/core/auth/authorization-audit.js +72 -19
  60. package/dist/core/auth/operation-authorizer.js +125 -7
  61. package/dist/core/auth/operation-catalog.js +26 -2
  62. package/dist/core/auth/remote-access-store.js +3 -2
  63. package/dist/core/baseagent-loader.js +4 -4
  64. package/dist/core/bootstrap-messages.js +39 -18
  65. package/dist/core/bootstrap-service.js +32 -26
  66. package/dist/core/capability/capability-manager.js +8 -4
  67. package/dist/core/capability/providers/codex-capability-provider.js +1 -1
  68. package/dist/core/command/agent-control.js +60 -26
  69. package/dist/core/command/cli-intent-parser.js +18 -0
  70. package/dist/core/command/command-handler.js +173 -36
  71. package/dist/core/command/menu-catalog.js +4 -1
  72. package/dist/core/command/menu-handler.js +315 -75
  73. package/dist/core/command/menu-protocol.js +7 -2
  74. package/dist/core/command/slash-gate.js +1 -3
  75. package/dist/core/command/slash-handler.js +166 -57
  76. package/dist/core/data-migration.js +5 -15
  77. package/dist/core/event-catalog.js +8 -0
  78. package/dist/core/evolagent.js +3 -3
  79. package/dist/core/handoff/runtime.js +3 -1
  80. package/dist/core/handoff/store.js +7 -1
  81. package/dist/core/message/im-renderer.js +13 -6
  82. package/dist/core/message/message-bridge.js +5 -36
  83. package/dist/core/message/message-utils.js +6 -3
  84. package/dist/core/message/response-engine.js +85 -27
  85. package/dist/core/model/catalog-service.js +3 -1
  86. package/dist/core/model/model-catalog.js +10 -0
  87. package/dist/core/model/model-permission.js +4 -1
  88. package/dist/core/permission/approval-gateway.js +169 -33
  89. package/dist/core/permission/tool-policy.js +56 -10
  90. package/dist/core/session/adapters/codex-session-file-adapter.js +71 -3
  91. package/dist/core/session/session-manager.js +49 -13
  92. package/dist/core/session/session-renew.js +1 -0
  93. package/dist/index.js +327 -134
  94. package/dist/ipc.js +68 -21
  95. package/dist/paths.js +23 -1
  96. package/dist/stats/billing.js +18 -4
  97. package/dist/stats/db.js +159 -159
  98. package/dist/stats/eck-vars.js +9 -9
  99. package/dist/stats/query.js +139 -139
  100. package/dist/stats/role-budget.js +6 -6
  101. package/dist/stats/writer.js +51 -51
  102. package/dist/utils/atomic-write.js +26 -2
  103. package/dist/utils/avatar-upload.js +282 -23
  104. package/dist/utils/cross-platform.js +436 -1
  105. package/dist/utils/error-dict.json +160 -160
  106. package/dist/utils/error-utils.js +11 -4
  107. package/dist/utils/macos-autostart.js +22 -22
  108. package/dist/utils/model-prices.jsonl +23 -20
  109. package/dist/utils/npm-ops.js +24 -1
  110. package/dist/utils/welcome.js +22 -22
  111. package/dist/utils/windows-autostart.js +1 -1
  112. package/ecagent/LICENSE +21 -21
  113. package/ecagent/NOTICE +11 -11
  114. package/ecagent/README.md +61 -61
  115. package/ecagent/dist/harness/compaction/branch-summarization.js +30 -30
  116. package/ecagent/dist/harness/compaction/compaction.js +83 -83
  117. package/ecagent/dist/harness/messages.js +7 -7
  118. package/kits/docs/GUIDE.md +20 -20
  119. package/kits/docs/INDEX.md +66 -66
  120. package/kits/docs/aun/CHEATSHEET.md +19 -19
  121. package/kits/docs/aun/SYNC_PROTOCOL.md +15 -15
  122. package/kits/docs/channels/aun.md +56 -56
  123. package/kits/docs/channels/feishu.md +56 -56
  124. package/kits/docs/context-assembly.md +365 -364
  125. package/kits/docs/eck_templates/GUIDE.template.md +22 -22
  126. package/kits/docs/eck_templates/INDEX.template.md +28 -28
  127. package/kits/docs/eck_templates/path-registry.template.md +33 -33
  128. package/kits/docs/eck_templates/runtime.template.md +19 -19
  129. package/kits/docs/evolcore/INDEX.md +71 -69
  130. package/kits/docs/evolcore/agent-create.md +170 -156
  131. package/kits/docs/evolcore/agent.md +83 -73
  132. package/kits/docs/evolcore/aid.md +64 -62
  133. package/kits/docs/evolcore/codex-windows-sandbox.md +146 -0
  134. package/kits/docs/evolcore/config.md +195 -195
  135. package/kits/docs/evolcore/contact.md +68 -68
  136. package/kits/docs/evolcore/ctl.md +46 -46
  137. package/kits/docs/evolcore/event.md +216 -216
  138. package/kits/docs/evolcore/fs-architecture.md +1215 -1215
  139. package/kits/docs/evolcore/fs.md +110 -110
  140. package/kits/docs/evolcore/group-collaboration.md +243 -243
  141. package/kits/docs/evolcore/group-fs.md +17 -17
  142. package/kits/docs/evolcore/group-rules.md +251 -251
  143. package/kits/docs/evolcore/group.md +152 -152
  144. package/kits/docs/evolcore/menu-client.md +34 -34
  145. package/kits/docs/evolcore/model.md +50 -50
  146. package/kits/docs/evolcore/msg.md +165 -165
  147. package/kits/docs/evolcore/response.md +75 -75
  148. package/kits/docs/evolcore/rpc.md +37 -37
  149. package/kits/docs/evolcore/self-summary.md +29 -29
  150. package/kits/docs/evolcore/stats.md +83 -83
  151. package/kits/docs/evolcore/storage.md +50 -50
  152. package/kits/docs/evolcore/trigger.md +575 -575
  153. package/kits/docs/identity/AID_PROFILE_SPEC.md +26 -26
  154. package/kits/docs/identity/PATH_OPS.md +16 -16
  155. package/kits/docs/identity/ROLE_DETAIL.md +25 -25
  156. package/kits/docs/identity/identity-tools.md +26 -26
  157. package/kits/docs/path-registry.md +62 -62
  158. package/kits/docs/prompt-loading-architecture.md +270 -269
  159. package/kits/docs/venues/aun-group.md +45 -45
  160. package/kits/docs/venues/aun-private.md +10 -10
  161. package/kits/docs/venues/client-desktop.md +10 -10
  162. package/kits/docs/venues/client-mobile.md +10 -10
  163. package/kits/docs/venues/feishu-group.md +13 -13
  164. package/kits/docs/venues/feishu-private.md +9 -9
  165. package/kits/docs/venues/group.md +25 -25
  166. package/kits/docs/venues/private.md +10 -10
  167. package/kits/eck_manifest.auxiliary.json +43 -43
  168. package/kits/eck_manifest.json +195 -183
  169. package/kits/eck_message_manifest.json +74 -74
  170. package/kits/migrations/README-role-config-v4.md +32 -32
  171. package/kits/migrations/migrate-contact-book-v2.mjs +748 -748
  172. package/kits/migrations/migrate-role-config-v4.mjs +614 -614
  173. package/kits/migrations/migrate-role-config-v5.mjs +365 -365
  174. package/kits/migrations/rename-config-file.mjs +99 -99
  175. package/kits/rules/01-overview.md +162 -162
  176. package/kits/rules/02-navigation.md +96 -96
  177. package/kits/rules/03-identity.md +39 -37
  178. package/kits/rules/04-relation.md +75 -75
  179. package/kits/rules/05-venue.md +60 -60
  180. package/kits/rules/06-channel.md +63 -63
  181. package/kits/schemas/_meta.json +53 -53
  182. package/kits/schemas/agent-config.schema.1.json +177 -177
  183. package/kits/schemas/agent-config.schema.10.json +395 -395
  184. package/kits/schemas/agent-config.schema.11.json +421 -421
  185. package/kits/schemas/agent-config.schema.12.json +427 -427
  186. package/kits/schemas/agent-config.schema.2.json +239 -239
  187. package/kits/schemas/agent-config.schema.3.json +119 -119
  188. package/kits/schemas/agent-config.schema.4.json +208 -208
  189. package/kits/schemas/agent-config.schema.5.json +326 -326
  190. package/kits/schemas/agent-config.schema.6.json +322 -322
  191. package/kits/schemas/agent-config.schema.7.json +303 -303
  192. package/kits/schemas/agent-config.schema.8.json +304 -304
  193. package/kits/schemas/agent-config.schema.9.json +364 -364
  194. package/kits/schemas/contact-book.schema.1.json +36 -36
  195. package/kits/schemas/contact-book.schema.2.json +43 -43
  196. package/kits/schemas/contact-book.schema.3.json +67 -67
  197. package/kits/schemas/daemon.schema.1.json +91 -91
  198. package/kits/schemas/daemon.schema.2.json +101 -101
  199. package/kits/schemas/daemon.schema.3.json +123 -123
  200. package/kits/schemas/daemon.schema.4.json +136 -136
  201. package/kits/schemas/daemon.schema.5.json +135 -135
  202. package/kits/schemas/daemon.schema.6.json +131 -131
  203. package/kits/schemas/defaults.schema.1.json +81 -81
  204. package/kits/schemas/defaults.schema.2.json +85 -85
  205. package/kits/schemas/defaults.schema.3.json +73 -73
  206. package/kits/schemas/defaults.schema.4.json +107 -107
  207. package/kits/schemas/defaults.schema.5.json +119 -119
  208. package/kits/schemas/menu-exec-schema-commands.md +208 -208
  209. package/kits/schemas/migrations/README.md +30 -30
  210. package/kits/schemas/relation-config.schema.1.json +158 -158
  211. package/kits/schemas/relation-config.schema.2.json +73 -73
  212. package/kits/schemas/relation-config.schema.3.json +50 -50
  213. package/kits/schemas/relation-config.schema.4.json +47 -47
  214. package/kits/schemas/relation-config.schema.5.json +47 -47
  215. package/kits/schemas/relation-config.schema.6.json +46 -46
  216. package/kits/schemas/relation-config.schema.7.json +59 -59
  217. package/kits/schemas/relation-config.schema.8.json +103 -103
  218. package/kits/schemas/role-config.schema.1.json +201 -201
  219. package/kits/schemas/role-registry.schema.1.json +35 -35
  220. package/kits/schemas/single-session.schema.1.json +31 -31
  221. package/kits/schemas/single-session.schema.2.json +57 -57
  222. package/kits/schemas/single-session.schema.3.json +32 -32
  223. package/kits/templates/bootstrap-welcome.md +17 -17
  224. package/kits/templates/message-fragments/handoff-context-to-target.md +9 -9
  225. package/kits/templates/message-fragments/handoff-request-to-target.md +19 -19
  226. package/kits/templates/message-fragments/handoff-response-to-origin.md +9 -9
  227. package/kits/templates/message-fragments/inject-default.md +2 -2
  228. package/kits/templates/message-fragments/item.md +2 -2
  229. package/kits/templates/roles/admin.json +96 -82
  230. package/kits/templates/roles/member.json +97 -96
  231. package/kits/templates/roles/owner.json +9 -9
  232. package/kits/templates/roles/visitor.json +86 -85
  233. package/kits/templates/system-fragments/baseagent.md +14 -14
  234. package/kits/templates/system-fragments/bootstrap.md +38 -29
  235. package/kits/templates/system-fragments/channel.md +64 -64
  236. package/kits/templates/system-fragments/commands.md +28 -28
  237. package/kits/templates/system-fragments/identity.md +13 -13
  238. package/kits/templates/system-fragments/relation.md +19 -19
  239. package/kits/templates/system-fragments/session.md +59 -59
  240. package/kits/templates/system-fragments/venue.md +31 -31
  241. package/package.json +98 -94
  242. package/AGENTS.md +0 -62
  243. package/dist/utils/codex-cli.js +0 -43
  244. package/skills/eclink/SKILL.md +0 -84
  245. package/skills/eclink/agents/openai.yaml +0 -4
@@ -1,36 +1,36 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "contact-book.schema.1.json",
4
- "title": "ContactBook (agents/{aid}/contact.json)",
5
- "x-logical-name": "contact-book",
6
- "x-scope": "contact",
7
- "type": "object",
8
- "additionalProperties": true,
9
- "properties": {
10
- "$schema_version": { "type": "number", "default": 1, "x-merge": "scalar" },
11
- "contacts": {
12
- "type": "object",
13
- "x-merge": "dict",
14
- "description": "联系人字典,键为对端 AID",
15
- "propertyNames": {
16
- "pattern": "^([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\\.){2,}[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"
17
- },
18
- "additionalProperties": {
19
- "type": "object",
20
- "additionalProperties": true,
21
- "properties": {
22
- "displayName": { "type": "string", "description": "显示名" },
23
- "aliases": {
24
- "type": "array",
25
- "description": "跨渠道别名;旧格式 <channel>:<原生ID>,实例隔离格式 channel-key:<URL编码channelKey>:<URL编码原生ID>",
26
- "items": {
27
- "type": "string",
28
- "pattern": "^[A-Za-z0-9_-]+:.+$"
29
- },
30
- "uniqueItems": true
31
- }
32
- }
33
- }
34
- }
35
- }
36
- }
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "contact-book.schema.1.json",
4
+ "title": "ContactBook (agents/{aid}/contact.json)",
5
+ "x-logical-name": "contact-book",
6
+ "x-scope": "contact",
7
+ "type": "object",
8
+ "additionalProperties": true,
9
+ "properties": {
10
+ "$schema_version": { "type": "number", "default": 1, "x-merge": "scalar" },
11
+ "contacts": {
12
+ "type": "object",
13
+ "x-merge": "dict",
14
+ "description": "联系人字典,键为对端 AID",
15
+ "propertyNames": {
16
+ "pattern": "^([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\\.){2,}[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"
17
+ },
18
+ "additionalProperties": {
19
+ "type": "object",
20
+ "additionalProperties": true,
21
+ "properties": {
22
+ "displayName": { "type": "string", "description": "显示名" },
23
+ "aliases": {
24
+ "type": "array",
25
+ "description": "跨渠道别名;旧格式 <channel>:<原生ID>,实例隔离格式 channel-key:<URL编码channelKey>:<URL编码原生ID>",
26
+ "items": {
27
+ "type": "string",
28
+ "pattern": "^[A-Za-z0-9_-]+:.+$"
29
+ },
30
+ "uniqueItems": true
31
+ }
32
+ }
33
+ }
34
+ }
35
+ }
36
+ }
@@ -1,43 +1,43 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "contact-book.schema.2.json",
4
- "title": "ContactBook v2 (agents/{aid}/contact.json)",
5
- "x-logical-name": "contact-book",
6
- "x-scope": "contact",
7
- "type": "object",
8
- "additionalProperties": false,
9
- "required": ["$schema_version", "contacts"],
10
- "properties": {
11
- "$schema_version": { "type": "number", "const": 2, "default": 2, "x-merge": "scalar" },
12
- "contacts": {
13
- "type": "object",
14
- "x-merge": "dict",
15
- "description": "AID 联系人字典;群和无 AID 对端不进入 Contact Book",
16
- "propertyNames": {
17
- "pattern": "^([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\\.){2,}[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"
18
- },
19
- "additionalProperties": {
20
- "type": "object",
21
- "additionalProperties": false,
22
- "properties": {
23
- "displayName": { "type": "string", "description": "显示名" },
24
- "aliases": {
25
- "type": "array",
26
- "description": "跨渠道身份映射,格式 <channelKey>:<urlEncode(peerId)>",
27
- "items": {
28
- "type": "string",
29
- "pattern": "^[A-Za-z0-9_-]+#([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\\.){2,}[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?#[A-Za-z0-9_-]+:[^:]+$"
30
- },
31
- "uniqueItems": true
32
- },
33
- "status": {
34
- "type": "string",
35
- "enum": ["active", "blocked", "pending"],
36
- "default": "active",
37
- "description": "AID 联系状态;blocked 只阻断该 AID 的 AUN 私聊"
38
- }
39
- }
40
- }
41
- }
42
- }
43
- }
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "contact-book.schema.2.json",
4
+ "title": "ContactBook v2 (agents/{aid}/contact.json)",
5
+ "x-logical-name": "contact-book",
6
+ "x-scope": "contact",
7
+ "type": "object",
8
+ "additionalProperties": false,
9
+ "required": ["$schema_version", "contacts"],
10
+ "properties": {
11
+ "$schema_version": { "type": "number", "const": 2, "default": 2, "x-merge": "scalar" },
12
+ "contacts": {
13
+ "type": "object",
14
+ "x-merge": "dict",
15
+ "description": "AID 联系人字典;群和无 AID 对端不进入 Contact Book",
16
+ "propertyNames": {
17
+ "pattern": "^([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\\.){2,}[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"
18
+ },
19
+ "additionalProperties": {
20
+ "type": "object",
21
+ "additionalProperties": false,
22
+ "properties": {
23
+ "displayName": { "type": "string", "description": "显示名" },
24
+ "aliases": {
25
+ "type": "array",
26
+ "description": "跨渠道身份映射,格式 <channelKey>:<urlEncode(peerId)>",
27
+ "items": {
28
+ "type": "string",
29
+ "pattern": "^[A-Za-z0-9_-]+#([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\\.){2,}[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?#[A-Za-z0-9_-]+:[^:]+$"
30
+ },
31
+ "uniqueItems": true
32
+ },
33
+ "status": {
34
+ "type": "string",
35
+ "enum": ["active", "blocked", "pending"],
36
+ "default": "active",
37
+ "description": "AID 联系状态;blocked 只阻断该 AID 的 AUN 私聊"
38
+ }
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }
@@ -1,67 +1,67 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "contact-book.schema.3.json",
4
- "title": "ContactBook v3 (agents/{aid}/contact.json)",
5
- "x-logical-name": "contact-book",
6
- "x-scope": "contact",
7
- "type": "object",
8
- "additionalProperties": false,
9
- "required": ["$schema_version", "contacts"],
10
- "properties": {
11
- "$schema_version": { "type": "number", "const": 3, "default": 3, "x-merge": "scalar" },
12
- "contacts": {
13
- "type": "object",
14
- "x-merge": "dict",
15
- "description": "AID 联系人字典;群和无 AID 对端不进入 Contact Book",
16
- "propertyNames": {
17
- "pattern": "^([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\\.){2,}[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"
18
- },
19
- "additionalProperties": {
20
- "type": "object",
21
- "additionalProperties": false,
22
- "properties": {
23
- "displayName": { "type": "string", "description": "显示名" },
24
- "aliases": {
25
- "type": "array",
26
- "description": "跨渠道身份映射,格式 <channelKey>:<urlEncode(peerId)>",
27
- "items": {
28
- "type": "string",
29
- "pattern": "^[A-Za-z0-9_-]+#([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\\.){2,}[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?#[A-Za-z0-9_-]+:[^:]+$"
30
- },
31
- "uniqueItems": true
32
- },
33
- "status": {
34
- "type": "string",
35
- "enum": ["active", "blocked", "pending", "declined"],
36
- "default": "active"
37
- },
38
- "pendingRequest": {
39
- "type": "object",
40
- "additionalProperties": false,
41
- "required": ["id", "submittedAt", "expiresAt"],
42
- "properties": {
43
- "id": { "type": "string", "pattern": "^creq_[A-Za-z0-9_-]{8,}$" },
44
- "submittedAt": { "type": "string", "minLength": 1 },
45
- "expiresAt": { "type": "string", "minLength": 1 }
46
- }
47
- },
48
- "declinedAt": { "type": "string", "minLength": 1 }
49
- },
50
- "allOf": [
51
- {
52
- "if": { "properties": { "status": { "const": "pending" } }, "required": ["status"] },
53
- "then": { "required": ["pendingRequest"], "not": { "required": ["declinedAt"] } }
54
- },
55
- {
56
- "if": { "properties": { "status": { "const": "declined" } }, "required": ["status"] },
57
- "then": { "required": ["declinedAt"], "not": { "required": ["pendingRequest"] } }
58
- },
59
- {
60
- "if": { "properties": { "status": { "enum": ["active", "blocked"] } }, "required": ["status"] },
61
- "then": { "not": { "anyOf": [{ "required": ["pendingRequest"] }, { "required": ["declinedAt"] }] } }
62
- }
63
- ]
64
- }
65
- }
66
- }
67
- }
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "contact-book.schema.3.json",
4
+ "title": "ContactBook v3 (agents/{aid}/contact.json)",
5
+ "x-logical-name": "contact-book",
6
+ "x-scope": "contact",
7
+ "type": "object",
8
+ "additionalProperties": false,
9
+ "required": ["$schema_version", "contacts"],
10
+ "properties": {
11
+ "$schema_version": { "type": "number", "const": 3, "default": 3, "x-merge": "scalar" },
12
+ "contacts": {
13
+ "type": "object",
14
+ "x-merge": "dict",
15
+ "description": "AID 联系人字典;群和无 AID 对端不进入 Contact Book",
16
+ "propertyNames": {
17
+ "pattern": "^([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\\.){2,}[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?$"
18
+ },
19
+ "additionalProperties": {
20
+ "type": "object",
21
+ "additionalProperties": false,
22
+ "properties": {
23
+ "displayName": { "type": "string", "description": "显示名" },
24
+ "aliases": {
25
+ "type": "array",
26
+ "description": "跨渠道身份映射,格式 <channelKey>:<urlEncode(peerId)>",
27
+ "items": {
28
+ "type": "string",
29
+ "pattern": "^[A-Za-z0-9_-]+#([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\\.){2,}[A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?#[A-Za-z0-9_-]+:[^:]+$"
30
+ },
31
+ "uniqueItems": true
32
+ },
33
+ "status": {
34
+ "type": "string",
35
+ "enum": ["active", "blocked", "pending", "declined"],
36
+ "default": "active"
37
+ },
38
+ "pendingRequest": {
39
+ "type": "object",
40
+ "additionalProperties": false,
41
+ "required": ["id", "submittedAt", "expiresAt"],
42
+ "properties": {
43
+ "id": { "type": "string", "pattern": "^creq_[A-Za-z0-9_-]{8,}$" },
44
+ "submittedAt": { "type": "string", "minLength": 1 },
45
+ "expiresAt": { "type": "string", "minLength": 1 }
46
+ }
47
+ },
48
+ "declinedAt": { "type": "string", "minLength": 1 }
49
+ },
50
+ "allOf": [
51
+ {
52
+ "if": { "properties": { "status": { "const": "pending" } }, "required": ["status"] },
53
+ "then": { "required": ["pendingRequest"], "not": { "required": ["declinedAt"] } }
54
+ },
55
+ {
56
+ "if": { "properties": { "status": { "const": "declined" } }, "required": ["status"] },
57
+ "then": { "required": ["declinedAt"], "not": { "required": ["pendingRequest"] } }
58
+ },
59
+ {
60
+ "if": { "properties": { "status": { "enum": ["active", "blocked"] } }, "required": ["status"] },
61
+ "then": { "not": { "anyOf": [{ "required": ["pendingRequest"] }, { "required": ["declinedAt"] }] } }
62
+ }
63
+ ]
64
+ }
65
+ }
66
+ }
67
+ }
@@ -1,91 +1,91 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "daemon.schema.1.json",
4
- "title": "ProcessConfig (daemon.json)",
5
- "description": "进程级配置:daemon 自身运行配置,链外独立作用域,不进覆盖链。",
6
- "x-logical-name": "daemon",
7
- "x-scope": "process",
8
- "type": "object",
9
- "additionalProperties": false,
10
- "properties": {
11
- "$schema_version": { "type": "number", "default": 1, "x-merge": "scalar" },
12
- "aid": { "type": "string", "description": "daemon 默认身份 AID", "x-merge": "scalar" },
13
- "owners": {
14
- "type": "array",
15
- "items": { "type": "string" },
16
- "description": "进程控制面鉴权名单(谁能远程管 daemon)",
17
- "x-merge": "list"
18
- },
19
- "debug": {
20
- "type": "object",
21
- "description": "进程级调试配置",
22
- "x-merge": "dict",
23
- "properties": {
24
- "eckSnapshots": {
25
- "type": "boolean",
26
- "default": false,
27
- "description": "是否写入可能包含敏感上下文的 ECK 旁路调试快照"
28
- }
29
- }
30
- },
31
- "tunnel": {
32
- "type": "object",
33
- "description": "内网穿透配置",
34
- "x-merge": "dict",
35
- "properties": {
36
- "targets": { "type": "array", "description": "穿透目标列表", "items": { "type": "object" } }
37
- }
38
- },
39
- "aun": {
40
- "type": "object",
41
- "description": "AUN 进程配置",
42
- "x-merge": "dict",
43
- "properties": {
44
- "encryptionSeed": { "type": ["string", "null"], "description": "已废弃兼容字段;EvolCore 固定使用内置值,检测到其他值时拒绝启动并提示联系管理人员" }
45
- }
46
- },
47
- "serviceProxy": {
48
- "type": "object",
49
- "description": "AUN Service Proxy:把本地服务暴露到 AUN 网络",
50
- "x-merge": "dict",
51
- "properties": {
52
- "enabled": { "type": "boolean", "description": "是否启用 Service Proxy" },
53
- "services": { "type": "array", "description": "暴露到 AUN 的本地服务列表", "items": { "type": "object" } }
54
- }
55
- },
56
- "configSnapshots": {
57
- "type": "boolean",
58
- "default": true,
59
- "description": "是否自动维护配置快照、启动日志和自检回落",
60
- "x-merge": "scalar"
61
- },
62
- "idleMonitor": {
63
- "type": "object",
64
- "description": "流式输出空闲监控配置",
65
- "x-merge": "dict",
66
- "properties": {
67
- "enabled": { "type": "boolean", "default": true, "description": "是否启用空闲监控" },
68
- "timeout": { "type": "number", "default": 120, "description": "空闲超时秒数" },
69
- "retryAttemptTimeout": { "type": "number", "description": "API 重试尝试连续无事件时的超时秒数;未设置时继承 timeout" },
70
- "maxExecutionTime": { "type": "number", "description": "单个任务总执行时限(秒);未配置、非数字或小于等于 0 表示不限制" }
71
- }
72
- },
73
- "ecweb": {
74
- "type": "object",
75
- "description": "web 控制台开关/端口",
76
- "x-merge": "dict",
77
- "properties": {
78
- "enabled": { "type": "boolean", "description": "是否启用 web 控制台" },
79
- "port": { "type": "number", "description": "web 控制台监听端口" }
80
- }
81
- },
82
- "watch": {
83
- "type": "object",
84
- "description": "日志监听配置",
85
- "x-merge": "dict",
86
- "properties": {
87
- "logTypes": { "type": "array", "description": "要监听的日志类型", "items": { "type": "string" } }
88
- }
89
- }
90
- }
91
- }
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "daemon.schema.1.json",
4
+ "title": "ProcessConfig (daemon.json)",
5
+ "description": "进程级配置:daemon 自身运行配置,链外独立作用域,不进覆盖链。",
6
+ "x-logical-name": "daemon",
7
+ "x-scope": "process",
8
+ "type": "object",
9
+ "additionalProperties": false,
10
+ "properties": {
11
+ "$schema_version": { "type": "number", "default": 1, "x-merge": "scalar" },
12
+ "aid": { "type": "string", "description": "daemon 默认身份 AID", "x-merge": "scalar" },
13
+ "owners": {
14
+ "type": "array",
15
+ "items": { "type": "string" },
16
+ "description": "进程控制面鉴权名单(谁能远程管 daemon)",
17
+ "x-merge": "list"
18
+ },
19
+ "debug": {
20
+ "type": "object",
21
+ "description": "进程级调试配置",
22
+ "x-merge": "dict",
23
+ "properties": {
24
+ "eckSnapshots": {
25
+ "type": "boolean",
26
+ "default": false,
27
+ "description": "是否写入可能包含敏感上下文的 ECK 旁路调试快照"
28
+ }
29
+ }
30
+ },
31
+ "tunnel": {
32
+ "type": "object",
33
+ "description": "内网穿透配置",
34
+ "x-merge": "dict",
35
+ "properties": {
36
+ "targets": { "type": "array", "description": "穿透目标列表", "items": { "type": "object" } }
37
+ }
38
+ },
39
+ "aun": {
40
+ "type": "object",
41
+ "description": "AUN 进程配置",
42
+ "x-merge": "dict",
43
+ "properties": {
44
+ "encryptionSeed": { "type": ["string", "null"], "description": "已废弃兼容字段;EvolCore 固定使用内置值,检测到其他值时拒绝启动并提示联系管理人员" }
45
+ }
46
+ },
47
+ "serviceProxy": {
48
+ "type": "object",
49
+ "description": "AUN Service Proxy:把本地服务暴露到 AUN 网络",
50
+ "x-merge": "dict",
51
+ "properties": {
52
+ "enabled": { "type": "boolean", "description": "是否启用 Service Proxy" },
53
+ "services": { "type": "array", "description": "暴露到 AUN 的本地服务列表", "items": { "type": "object" } }
54
+ }
55
+ },
56
+ "configSnapshots": {
57
+ "type": "boolean",
58
+ "default": true,
59
+ "description": "是否自动维护配置快照、启动日志和自检回落",
60
+ "x-merge": "scalar"
61
+ },
62
+ "idleMonitor": {
63
+ "type": "object",
64
+ "description": "流式输出空闲监控配置",
65
+ "x-merge": "dict",
66
+ "properties": {
67
+ "enabled": { "type": "boolean", "default": true, "description": "是否启用空闲监控" },
68
+ "timeout": { "type": "number", "default": 120, "description": "空闲超时秒数" },
69
+ "retryAttemptTimeout": { "type": "number", "description": "API 重试尝试连续无事件时的超时秒数;未设置时继承 timeout" },
70
+ "maxExecutionTime": { "type": "number", "description": "单个任务总执行时限(秒);未配置、非数字或小于等于 0 表示不限制" }
71
+ }
72
+ },
73
+ "ecweb": {
74
+ "type": "object",
75
+ "description": "web 控制台开关/端口",
76
+ "x-merge": "dict",
77
+ "properties": {
78
+ "enabled": { "type": "boolean", "description": "是否启用 web 控制台" },
79
+ "port": { "type": "number", "description": "web 控制台监听端口" }
80
+ }
81
+ },
82
+ "watch": {
83
+ "type": "object",
84
+ "description": "日志监听配置",
85
+ "x-merge": "dict",
86
+ "properties": {
87
+ "logTypes": { "type": "array", "description": "要监听的日志类型", "items": { "type": "string" } }
88
+ }
89
+ }
90
+ }
91
+ }