@evomap/evolver-core 2.0.0-beta.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 (373) hide show
  1. package/dist/algo/antiDistill.d.ts +35 -0
  2. package/dist/algo/antiDistill.js +167 -0
  3. package/dist/algo/bans.d.ts +6 -0
  4. package/dist/algo/bans.js +33 -0
  5. package/dist/algo/candidateAssembly.d.ts +65 -0
  6. package/dist/algo/candidateAssembly.js +196 -0
  7. package/dist/algo/capabilityCandidates.d.ts +38 -0
  8. package/dist/algo/capabilityCandidates.js +131 -0
  9. package/dist/algo/confidence.d.ts +106 -0
  10. package/dist/algo/confidence.js +196 -0
  11. package/dist/algo/cycleEngine.d.ts +143 -0
  12. package/dist/algo/cycleEngine.js +417 -0
  13. package/dist/algo/cycleFailureClassifier.d.ts +52 -0
  14. package/dist/algo/cycleFailureClassifier.js +104 -0
  15. package/dist/algo/epigenetics.d.ts +14 -0
  16. package/dist/algo/epigenetics.js +41 -0
  17. package/dist/algo/evolutionEvent.d.ts +23 -0
  18. package/dist/algo/evolutionEvent.js +24 -0
  19. package/dist/algo/exploration.d.ts +34 -0
  20. package/dist/algo/exploration.js +55 -0
  21. package/dist/algo/geneHealth.d.ts +24 -0
  22. package/dist/algo/geneHealth.js +16 -0
  23. package/dist/algo/geneIntake.d.ts +37 -0
  24. package/dist/algo/geneIntake.js +100 -0
  25. package/dist/algo/genePromotion.d.ts +48 -0
  26. package/dist/algo/genePromotion.js +53 -0
  27. package/dist/algo/geneSelection.d.ts +128 -0
  28. package/dist/algo/geneSelection.js +222 -0
  29. package/dist/algo/index.d.ts +18 -0
  30. package/dist/algo/index.js +18 -0
  31. package/dist/algo/mutation.d.ts +12 -0
  32. package/dist/algo/mutation.js +22 -0
  33. package/dist/algo/orchestrator.d.ts +65 -0
  34. package/dist/algo/orchestrator.js +63 -0
  35. package/dist/algo/solidify.d.ts +43 -0
  36. package/dist/algo/solidify.js +63 -0
  37. package/dist/algo/strategyPresets.d.ts +32 -0
  38. package/dist/algo/strategyPresets.js +61 -0
  39. package/dist/assetstore/index.d.ts +8 -0
  40. package/dist/assetstore/index.js +8 -0
  41. package/dist/assetstore/learningHistory.d.ts +25 -0
  42. package/dist/assetstore/learningHistory.js +38 -0
  43. package/dist/assetstore/localJsonl.d.ts +34 -0
  44. package/dist/assetstore/localJsonl.js +182 -0
  45. package/dist/assetstore/pendingSignals.d.ts +22 -0
  46. package/dist/assetstore/pendingSignals.js +171 -0
  47. package/dist/assetstore/provenance.d.ts +39 -0
  48. package/dist/assetstore/provenance.js +109 -0
  49. package/dist/assetstore/provider.d.ts +48 -0
  50. package/dist/assetstore/provider.js +36 -0
  51. package/dist/assetstore/remoteStub.d.ts +32 -0
  52. package/dist/assetstore/remoteStub.js +36 -0
  53. package/dist/assetstore/reviewFilter.d.ts +20 -0
  54. package/dist/assetstore/reviewFilter.js +44 -0
  55. package/dist/assetstore/reviewLedger.d.ts +55 -0
  56. package/dist/assetstore/reviewLedger.js +121 -0
  57. package/dist/benchmark/antiGeneBenchmark.d.ts +79 -0
  58. package/dist/benchmark/antiGeneBenchmark.js +241 -0
  59. package/dist/benchmark/antiGeneRollout.d.ts +80 -0
  60. package/dist/benchmark/antiGeneRollout.js +256 -0
  61. package/dist/benchmark/benchmark.d.ts +32 -0
  62. package/dist/benchmark/benchmark.js +26 -0
  63. package/dist/benchmark/evolutionThesisSolver.d.ts +25 -0
  64. package/dist/benchmark/evolutionThesisSolver.js +41 -0
  65. package/dist/benchmark/index.d.ts +5 -0
  66. package/dist/benchmark/index.js +5 -0
  67. package/dist/benchmark/thesis.d.ts +85 -0
  68. package/dist/benchmark/thesis.js +150 -0
  69. package/dist/bootstrap/envFingerprint.d.ts +45 -0
  70. package/dist/bootstrap/envFingerprint.js +72 -0
  71. package/dist/bootstrap/index.d.ts +2 -0
  72. package/dist/bootstrap/index.js +2 -0
  73. package/dist/bootstrap/selfEvolve.d.ts +36 -0
  74. package/dist/bootstrap/selfEvolve.js +26 -0
  75. package/dist/cycle/cycleTimeline.d.ts +35 -0
  76. package/dist/cycle/cycleTimeline.js +74 -0
  77. package/dist/cycle/index.d.ts +2 -0
  78. package/dist/cycle/index.js +2 -0
  79. package/dist/cycle/stateMachine.d.ts +6 -0
  80. package/dist/cycle/stateMachine.js +25 -0
  81. package/dist/daemon/cycleContext.d.ts +12 -0
  82. package/dist/daemon/cycleContext.js +13 -0
  83. package/dist/daemon/drain.d.ts +11 -0
  84. package/dist/daemon/drain.js +16 -0
  85. package/dist/daemon/guards.d.ts +87 -0
  86. package/dist/daemon/guards.js +142 -0
  87. package/dist/daemon/idempotency.d.ts +11 -0
  88. package/dist/daemon/idempotency.js +36 -0
  89. package/dist/daemon/idleScheduler.d.ts +55 -0
  90. package/dist/daemon/idleScheduler.js +181 -0
  91. package/dist/daemon/index.d.ts +8 -0
  92. package/dist/daemon/index.js +8 -0
  93. package/dist/daemon/stepRunner.d.ts +12 -0
  94. package/dist/daemon/stepRunner.js +31 -0
  95. package/dist/daemon/unhandledRejectionWindow.d.ts +21 -0
  96. package/dist/daemon/unhandledRejectionWindow.js +52 -0
  97. package/dist/daemon/watchdog.d.ts +11 -0
  98. package/dist/daemon/watchdog.js +14 -0
  99. package/dist/events/eventSchema.d.ts +132 -0
  100. package/dist/events/eventSchema.js +30 -0
  101. package/dist/events/eventStore.d.ts +32 -0
  102. package/dist/events/eventStore.js +137 -0
  103. package/dist/events/ingest.d.ts +34 -0
  104. package/dist/events/ingest.js +61 -0
  105. package/dist/events/paths.d.ts +22 -0
  106. package/dist/events/paths.js +44 -0
  107. package/dist/events/projectors.d.ts +9 -0
  108. package/dist/events/projectors.js +11 -0
  109. package/dist/events/public.d.ts +14 -0
  110. package/dist/events/public.js +8 -0
  111. package/dist/events/replayer.d.ts +26 -0
  112. package/dist/events/replayer.js +67 -0
  113. package/dist/events/reports.d.ts +90 -0
  114. package/dist/events/reports.js +244 -0
  115. package/dist/events/retention.d.ts +70 -0
  116. package/dist/events/retention.js +177 -0
  117. package/dist/events/sink.d.ts +5 -0
  118. package/dist/events/sink.js +1 -0
  119. package/dist/exec/autoExec.d.ts +137 -0
  120. package/dist/exec/autoExec.js +221 -0
  121. package/dist/exec/autonomousCycle.d.ts +48 -0
  122. package/dist/exec/autonomousCycle.js +78 -0
  123. package/dist/exec/claudeBridge.d.ts +112 -0
  124. package/dist/exec/claudeBridge.js +219 -0
  125. package/dist/exec/index.d.ts +9 -0
  126. package/dist/exec/index.js +11 -0
  127. package/dist/exec/openPrRegistry.d.ts +60 -0
  128. package/dist/exec/openPrRegistry.js +130 -0
  129. package/dist/exec/policy/blastRadius.d.ts +31 -0
  130. package/dist/exec/policy/blastRadius.js +67 -0
  131. package/dist/exec/policy/constraints.d.ts +26 -0
  132. package/dist/exec/policy/constraints.js +62 -0
  133. package/dist/exec/policy/destructive.d.ts +45 -0
  134. package/dist/exec/policy/destructive.js +108 -0
  135. package/dist/exec/policy/failureMode.d.ts +33 -0
  136. package/dist/exec/policy/failureMode.js +49 -0
  137. package/dist/exec/policy/index.d.ts +24 -0
  138. package/dist/exec/policy/index.js +30 -0
  139. package/dist/exec/policy/protectedPaths.d.ts +17 -0
  140. package/dist/exec/policy/protectedPaths.js +65 -0
  141. package/dist/exec/policyCheck.d.ts +2 -0
  142. package/dist/exec/policyCheck.js +7 -0
  143. package/dist/exec/prompt.d.ts +34 -0
  144. package/dist/exec/prompt.js +108 -0
  145. package/dist/exec/proofOfWork.d.ts +9 -0
  146. package/dist/exec/proofOfWork.js +11 -0
  147. package/dist/exec/runnerRegistry.d.ts +123 -0
  148. package/dist/exec/runnerRegistry.js +237 -0
  149. package/dist/exec/selfPr.d.ts +83 -0
  150. package/dist/exec/selfPr.js +104 -0
  151. package/dist/exec/selfPrObfuscation.d.ts +21 -0
  152. package/dist/exec/selfPrObfuscation.js +85 -0
  153. package/dist/hooks/hooks.d.ts +117 -0
  154. package/dist/hooks/hooks.js +89 -0
  155. package/dist/hooks/index.d.ts +1 -0
  156. package/dist/hooks/index.js +1 -0
  157. package/dist/hub/assetCallLog.d.ts +43 -0
  158. package/dist/hub/assetCallLog.js +72 -0
  159. package/dist/hub/bindings.d.ts +28 -0
  160. package/dist/hub/bindings.js +90 -0
  161. package/dist/hub/capability.d.ts +278 -0
  162. package/dist/hub/capability.js +1 -0
  163. package/dist/hub/conversationDistiller.d.ts +88 -0
  164. package/dist/hub/conversationDistiller.js +264 -0
  165. package/dist/hub/fake.d.ts +45 -0
  166. package/dist/hub/fake.js +69 -0
  167. package/dist/hub/hubReview.d.ts +91 -0
  168. package/dist/hub/hubReview.js +106 -0
  169. package/dist/hub/index.d.ts +10 -0
  170. package/dist/hub/index.js +10 -0
  171. package/dist/hub/ingest.d.ts +15 -0
  172. package/dist/hub/ingest.js +15 -0
  173. package/dist/hub/questionGenerator.d.ts +59 -0
  174. package/dist/hub/questionGenerator.js +406 -0
  175. package/dist/hub/reuseDecision.d.ts +87 -0
  176. package/dist/hub/reuseDecision.js +127 -0
  177. package/dist/hub/sanitize.d.ts +52 -0
  178. package/dist/hub/sanitize.js +321 -0
  179. package/dist/index.d.ts +27 -0
  180. package/dist/index.js +27 -0
  181. package/dist/mailbox/catalog.d.ts +17 -0
  182. package/dist/mailbox/catalog.js +53 -0
  183. package/dist/mailbox/daemon.d.ts +48 -0
  184. package/dist/mailbox/daemon.js +61 -0
  185. package/dist/mailbox/dispatch.d.ts +46 -0
  186. package/dist/mailbox/dispatch.js +62 -0
  187. package/dist/mailbox/envelope.d.ts +43 -0
  188. package/dist/mailbox/envelope.js +52 -0
  189. package/dist/mailbox/index.d.ts +8 -0
  190. package/dist/mailbox/index.js +8 -0
  191. package/dist/mailbox/ipcServer.d.ts +46 -0
  192. package/dist/mailbox/ipcServer.js +168 -0
  193. package/dist/mailbox/requestReply.d.ts +40 -0
  194. package/dist/mailbox/requestReply.js +77 -0
  195. package/dist/mailbox/store.d.ts +74 -0
  196. package/dist/mailbox/store.js +308 -0
  197. package/dist/mailbox/wake.d.ts +45 -0
  198. package/dist/mailbox/wake.js +60 -0
  199. package/dist/material/boundary.d.ts +7 -0
  200. package/dist/material/boundary.js +14 -0
  201. package/dist/material/consumer.d.ts +21 -0
  202. package/dist/material/consumer.js +52 -0
  203. package/dist/material/emit.d.ts +55 -0
  204. package/dist/material/emit.js +52 -0
  205. package/dist/material/factory.d.ts +27 -0
  206. package/dist/material/factory.js +25 -0
  207. package/dist/material/index.d.ts +8 -0
  208. package/dist/material/index.js +8 -0
  209. package/dist/material/materialStore.d.ts +24 -0
  210. package/dist/material/materialStore.js +76 -0
  211. package/dist/material/sampling.d.ts +21 -0
  212. package/dist/material/sampling.js +39 -0
  213. package/dist/material/sources.d.ts +25 -0
  214. package/dist/material/sources.js +33 -0
  215. package/dist/material/watermark.d.ts +21 -0
  216. package/dist/material/watermark.js +76 -0
  217. package/dist/observers/cursorRewriteObserver.d.ts +46 -0
  218. package/dist/observers/cursorRewriteObserver.js +103 -0
  219. package/dist/observers/distillObserver.d.ts +31 -0
  220. package/dist/observers/distillObserver.js +93 -0
  221. package/dist/observers/index.d.ts +5 -0
  222. package/dist/observers/index.js +5 -0
  223. package/dist/observers/observerBus.d.ts +44 -0
  224. package/dist/observers/observerBus.js +73 -0
  225. package/dist/observers/reflectionObserver.d.ts +31 -0
  226. package/dist/observers/reflectionObserver.js +124 -0
  227. package/dist/observers/valueDigestObserver.d.ts +50 -0
  228. package/dist/observers/valueDigestObserver.js +70 -0
  229. package/dist/ops/cleanup.d.ts +23 -0
  230. package/dist/ops/cleanup.js +68 -0
  231. package/dist/ops/health.d.ts +37 -0
  232. package/dist/ops/health.js +96 -0
  233. package/dist/ops/index.d.ts +7 -0
  234. package/dist/ops/index.js +7 -0
  235. package/dist/ops/recall.d.ts +65 -0
  236. package/dist/ops/recall.js +152 -0
  237. package/dist/ops/reuseOutcomes.d.ts +68 -0
  238. package/dist/ops/reuseOutcomes.js +126 -0
  239. package/dist/ops/savingsCore.d.ts +47 -0
  240. package/dist/ops/savingsCore.js +112 -0
  241. package/dist/ops/selfUpdate.d.ts +106 -0
  242. package/dist/ops/selfUpdate.js +294 -0
  243. package/dist/ops/valueLedger.d.ts +205 -0
  244. package/dist/ops/valueLedger.js +238 -0
  245. package/dist/ops/valueOutreach.d.ts +70 -0
  246. package/dist/ops/valueOutreach.js +244 -0
  247. package/dist/personality/drift.d.ts +45 -0
  248. package/dist/personality/drift.js +106 -0
  249. package/dist/personality/events.d.ts +25 -0
  250. package/dist/personality/events.js +37 -0
  251. package/dist/personality/evolveOps.d.ts +20 -0
  252. package/dist/personality/evolveOps.js +93 -0
  253. package/dist/personality/index.d.ts +11 -0
  254. package/dist/personality/index.js +11 -0
  255. package/dist/personality/mutate.d.ts +21 -0
  256. package/dist/personality/mutate.js +39 -0
  257. package/dist/personality/pivot.d.ts +23 -0
  258. package/dist/personality/pivot.js +22 -0
  259. package/dist/personality/prompt.d.ts +6 -0
  260. package/dist/personality/prompt.js +62 -0
  261. package/dist/personality/riskGate.d.ts +42 -0
  262. package/dist/personality/riskGate.js +80 -0
  263. package/dist/personality/schema.d.ts +255 -0
  264. package/dist/personality/schema.js +119 -0
  265. package/dist/personality/select.d.ts +46 -0
  266. package/dist/personality/select.js +71 -0
  267. package/dist/personality/stats.d.ts +46 -0
  268. package/dist/personality/stats.js +82 -0
  269. package/dist/personality/store.d.ts +35 -0
  270. package/dist/personality/store.js +92 -0
  271. package/dist/schema/common.d.ts +28 -0
  272. package/dist/schema/common.js +17 -0
  273. package/dist/schema/index.d.ts +5 -0
  274. package/dist/schema/index.js +5 -0
  275. package/dist/schema/material.d.ts +201 -0
  276. package/dist/schema/material.js +50 -0
  277. package/dist/schema/problem.d.ts +160 -0
  278. package/dist/schema/problem.js +45 -0
  279. package/dist/schema/proofOfWork.d.ts +97 -0
  280. package/dist/schema/proofOfWork.js +9 -0
  281. package/dist/schema/signal.d.ts +41 -0
  282. package/dist/schema/signal.js +19 -0
  283. package/dist/shadow/index.d.ts +6 -0
  284. package/dist/shadow/index.js +6 -0
  285. package/dist/shadow/jsonlSink.d.ts +17 -0
  286. package/dist/shadow/jsonlSink.js +27 -0
  287. package/dist/shadow/redact.d.ts +11 -0
  288. package/dist/shadow/redact.js +18 -0
  289. package/dist/shadow/shadowHub.d.ts +12 -0
  290. package/dist/shadow/shadowHub.js +42 -0
  291. package/dist/shadow/shadowMailbox.d.ts +17 -0
  292. package/dist/shadow/shadowMailbox.js +25 -0
  293. package/dist/shadow/shadowStore.d.ts +18 -0
  294. package/dist/shadow/shadowStore.js +55 -0
  295. package/dist/shadow/sink.d.ts +37 -0
  296. package/dist/shadow/sink.js +18 -0
  297. package/dist/signals/cycleHistoryFromEvents.d.ts +11 -0
  298. package/dist/signals/cycleHistoryFromEvents.js +96 -0
  299. package/dist/signals/expand.d.ts +34 -0
  300. package/dist/signals/expand.js +125 -0
  301. package/dist/signals/extractor.d.ts +25 -0
  302. package/dist/signals/extractor.js +57 -0
  303. package/dist/signals/index.d.ts +6 -0
  304. package/dist/signals/index.js +6 -0
  305. package/dist/signals/metaSignals.d.ts +57 -0
  306. package/dist/signals/metaSignals.js +158 -0
  307. package/dist/signals/signalGate.d.ts +15 -0
  308. package/dist/signals/signalGate.js +40 -0
  309. package/dist/signals/traceSignals.d.ts +44 -0
  310. package/dist/signals/traceSignals.js +123 -0
  311. package/dist/signatures/classifier.d.ts +16 -0
  312. package/dist/signatures/classifier.js +29 -0
  313. package/dist/signatures/index.d.ts +2 -0
  314. package/dist/signatures/index.js +2 -0
  315. package/dist/signatures/signatures.d.ts +22 -0
  316. package/dist/signatures/signatures.js +42 -0
  317. package/dist/strategy/experiment.d.ts +48 -0
  318. package/dist/strategy/experiment.js +63 -0
  319. package/dist/strategy/index.d.ts +2 -0
  320. package/dist/strategy/index.js +2 -0
  321. package/dist/strategy/strategyPoint.d.ts +30 -0
  322. package/dist/strategy/strategyPoint.js +23 -0
  323. package/dist/trace/index.d.ts +2 -0
  324. package/dist/trace/index.js +2 -0
  325. package/dist/trace/trajectory.d.ts +82 -0
  326. package/dist/trace/trajectory.js +117 -0
  327. package/dist/trace/trajectoryExport.d.ts +237 -0
  328. package/dist/trace/trajectoryExport.js +1818 -0
  329. package/dist/trigger/budget.d.ts +16 -0
  330. package/dist/trigger/budget.js +20 -0
  331. package/dist/trigger/engine.d.ts +12 -0
  332. package/dist/trigger/engine.js +23 -0
  333. package/dist/trigger/index.d.ts +6 -0
  334. package/dist/trigger/index.js +6 -0
  335. package/dist/trigger/problemBuilder.d.ts +24 -0
  336. package/dist/trigger/problemBuilder.js +32 -0
  337. package/dist/trigger/trigger.d.ts +22 -0
  338. package/dist/trigger/trigger.js +27 -0
  339. package/dist/trigger/valueModel.d.ts +26 -0
  340. package/dist/trigger/valueModel.js +25 -0
  341. package/dist/trigger/wfq.d.ts +13 -0
  342. package/dist/trigger/wfq.js +25 -0
  343. package/dist/util/fileLock.d.ts +24 -0
  344. package/dist/util/fileLock.js +227 -0
  345. package/dist/util/index.d.ts +2 -0
  346. package/dist/util/index.js +2 -0
  347. package/dist/util/version.d.ts +12 -0
  348. package/dist/util/version.js +51 -0
  349. package/dist/verify/index.d.ts +4 -0
  350. package/dist/verify/index.js +4 -0
  351. package/dist/verify/rollback.d.ts +22 -0
  352. package/dist/verify/rollback.js +33 -0
  353. package/dist/verify/sandboxRunner.d.ts +39 -0
  354. package/dist/verify/sandboxRunner.js +116 -0
  355. package/dist/verify/sandboxedValidation.d.ts +35 -0
  356. package/dist/verify/sandboxedValidation.js +56 -0
  357. package/dist/verify/validation.d.ts +41 -0
  358. package/dist/verify/validation.js +85 -0
  359. package/dist/wire/canonicalize.golden.d.ts +23 -0
  360. package/dist/wire/canonicalize.golden.js +46 -0
  361. package/dist/wire/geneHints.d.ts +64 -0
  362. package/dist/wire/geneHints.js +100 -0
  363. package/dist/wire/index.d.ts +91 -0
  364. package/dist/wire/index.js +3 -0
  365. package/dist/wire/schemaGate.d.ts +11 -0
  366. package/dist/wire/schemaGate.js +49 -0
  367. package/dist/workflow/dsl.d.ts +54 -0
  368. package/dist/workflow/dsl.js +15 -0
  369. package/dist/workflow/engine.d.ts +30 -0
  370. package/dist/workflow/engine.js +94 -0
  371. package/dist/workflow/index.d.ts +2 -0
  372. package/dist/workflow/index.js +2 -0
  373. package/package.json +29 -0
@@ -0,0 +1,91 @@
1
+ /**
2
+ * 资产 wire 层. SSOT = @evomap/gep-sdk/schemas/*.schema.json (D19).
3
+ * 字段一律 snake_case 锁定 (asset_id 跨实现契约); 本仓不发明 wire 字段, 只镜像 + 重导出工具.
4
+ */
5
+ import type { GeneRoutingHint, GeneToolPolicy } from './geneHints.js';
6
+ export { SCHEMA_VERSION, canonicalize, computeAssetId, verifyAssetId } from '@evomap/gep-sdk';
7
+ export type GepCategory = typeof import('@evomap/gep-sdk').GEP_GENE_CATEGORIES[number];
8
+ export type OutcomeStatus = typeof import('@evomap/gep-sdk').GEP_OUTCOME_STATUSES[number];
9
+ export type SourceType = typeof import('@evomap/gep-sdk').GEP_SOURCE_TYPES[number];
10
+ export type RiskLevel = typeof import('@evomap/gep-sdk').GEP_RISK_LEVELS[number];
11
+ /** Gene = 基因型/方法论 (gene.schema.json). */
12
+ export interface Gene {
13
+ type: 'Gene';
14
+ schema_version: string;
15
+ id: string;
16
+ category: GepCategory;
17
+ signals_match: string[];
18
+ preconditions?: string[];
19
+ strategy: string[];
20
+ constraints: {
21
+ max_files: number;
22
+ forbidden_paths: string[];
23
+ };
24
+ validation: string[];
25
+ summary?: string;
26
+ epigenetic_marks?: string[];
27
+ learning_history?: unknown[];
28
+ anti_patterns?: unknown[];
29
+ routing_hint?: GeneRoutingHint | null;
30
+ tool_policy?: GeneToolPolicy | null;
31
+ asset_id: string;
32
+ }
33
+ /** Capsule = 表现型/纯进化产物 (capsule.schema.json). */
34
+ export interface Capsule {
35
+ type: 'Capsule';
36
+ schema_version: string;
37
+ id: string;
38
+ trigger: string[];
39
+ gene: string;
40
+ summary: string;
41
+ confidence: number;
42
+ blast_radius: {
43
+ files: number;
44
+ lines: number;
45
+ };
46
+ outcome: {
47
+ status: OutcomeStatus;
48
+ score: number;
49
+ };
50
+ resolution_status?: 'pending' | 'suppressed_observationally' | 'resolved_by_evidence' | 'regressed' | 'inconclusive';
51
+ proof_of_work?: unknown;
52
+ execution_trace?: unknown[];
53
+ trigger_context?: unknown;
54
+ asset_id: string;
55
+ [k: string]: unknown;
56
+ }
57
+ /** EvolutionEvent = 世代记录 (evolution-event.schema.json). outcome 真值在此 (硬化 A4). */
58
+ export interface EvolutionEvent {
59
+ type: 'EvolutionEvent';
60
+ schema_version: string;
61
+ id: string;
62
+ parent?: string | null;
63
+ intent: GepCategory;
64
+ signals: string[];
65
+ genes_used: string[];
66
+ mutation_id: string;
67
+ blast_radius: {
68
+ files: number;
69
+ lines: number;
70
+ };
71
+ outcome: {
72
+ status: OutcomeStatus;
73
+ score: number;
74
+ };
75
+ capsule_id?: string | null;
76
+ source_type: SourceType;
77
+ asset_id: string;
78
+ [k: string]: unknown;
79
+ }
80
+ /** Mutation = 变异 (瞬态, mutation.schema.json). */
81
+ export interface Mutation {
82
+ type: 'Mutation';
83
+ id: string;
84
+ category: GepCategory;
85
+ trigger_signals: string[];
86
+ target: string;
87
+ expected_effect: string;
88
+ risk_level: RiskLevel;
89
+ }
90
+ export { validateWire, schemaProperties, type WireValidation } from './schemaGate.js';
91
+ export { ROUTING_TIERS, REASONING_LEVELS, TOOL_POLICY_SEVERITIES, GENE_HINT_FIELDS, normalizeRoutingHint, normalizeToolPolicy, stripGeneHints, type RoutingTier, type ReasoningLevel, type ToolPolicySeverity, type GeneRoutingHint, type GeneToolPolicy, } from './geneHints.js';
@@ -0,0 +1,3 @@
1
+ export { SCHEMA_VERSION, canonicalize, computeAssetId, verifyAssetId } from '@evomap/gep-sdk';
2
+ export { validateWire, schemaProperties } from './schemaGate.js';
3
+ export { ROUTING_TIERS, REASONING_LEVELS, TOOL_POLICY_SEVERITIES, GENE_HINT_FIELDS, normalizeRoutingHint, normalizeToolPolicy, stripGeneHints, } from './geneHints.js';
@@ -0,0 +1,11 @@
1
+ export interface WireValidation {
2
+ ok: boolean;
3
+ errors: string[];
4
+ }
5
+ /**
6
+ * 结构校验(required 齐 + additionalProperties:false 不许多字段). 轻量, 不做深类型校验(那是发版 CI conformance 的活).
7
+ * 用途: 发 hub 前确认资产能被 gep-sdk schema 接受; v2-delta(proof_of_work/resolution_status)在 bump 前会在此暴露.
8
+ */
9
+ export declare function validateWire(asset: Record<string, unknown>): WireValidation;
10
+ /** schema 已声明的字段白名单(给上层判断哪些 v2-delta 尚未进 SDK). */
11
+ export declare function schemaProperties(type: string): string[];
@@ -0,0 +1,49 @@
1
+ import { createRequire } from 'node:module';
2
+ import { readFileSync } from 'node:fs';
3
+ const nodeRequire = createRequire(import.meta.url);
4
+ const SCHEMA_SUBPATH = {
5
+ Gene: '@evomap/gep-sdk/schemas/gene.schema.json',
6
+ Capsule: '@evomap/gep-sdk/schemas/capsule.schema.json',
7
+ EvolutionEvent: '@evomap/gep-sdk/schemas/evolution-event.schema.json',
8
+ };
9
+ const cache = new Map();
10
+ function loadSchema(type) {
11
+ const sub = SCHEMA_SUBPATH[type];
12
+ if (!sub)
13
+ return undefined;
14
+ const cached = cache.get(type);
15
+ if (cached)
16
+ return cached;
17
+ const path = nodeRequire.resolve(sub);
18
+ const schema = JSON.parse(readFileSync(path, 'utf8'));
19
+ cache.set(type, schema);
20
+ return schema;
21
+ }
22
+ /**
23
+ * 结构校验(required 齐 + additionalProperties:false 不许多字段). 轻量, 不做深类型校验(那是发版 CI conformance 的活).
24
+ * 用途: 发 hub 前确认资产能被 gep-sdk schema 接受; v2-delta(proof_of_work/resolution_status)在 bump 前会在此暴露.
25
+ */
26
+ export function validateWire(asset) {
27
+ const errors = [];
28
+ const type = asset['type'];
29
+ if (typeof type !== 'string')
30
+ return { ok: false, errors: ['缺 type 字段'] };
31
+ const schema = loadSchema(type);
32
+ if (!schema)
33
+ return { ok: false, errors: [`未知资产类型: ${type}`] };
34
+ for (const req of schema.required ?? []) {
35
+ if (asset[req] === undefined || asset[req] === null)
36
+ errors.push(`缺 required 字段: ${req}`);
37
+ }
38
+ if (schema.additionalProperties === false && schema.properties) {
39
+ const allowed = new Set(Object.keys(schema.properties));
40
+ for (const k of Object.keys(asset))
41
+ if (!allowed.has(k))
42
+ errors.push(`多余字段(additionalProperties:false 会 reject): ${k}`);
43
+ }
44
+ return { ok: errors.length === 0, errors };
45
+ }
46
+ /** schema 已声明的字段白名单(给上层判断哪些 v2-delta 尚未进 SDK). */
47
+ export function schemaProperties(type) {
48
+ return Object.keys(loadSchema(type)?.properties ?? {});
49
+ }
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Dynamic workflow DSL(M4B, 轨B 孵化). 声明式 + 受限表达式, **无任意 JS**(从语言层消除一类风险).
3
+ * 表达式表示为**结构化对象**(非字符串解析): 引用 Ref + 白名单 core 调用, 安全 by-construction.
4
+ */
5
+ /** 引用: input.<k> / steps.<id>.<k> / item(foreach 内). */
6
+ export interface Ref {
7
+ ref: string;
8
+ }
9
+ export type Literal = string | number | boolean | null;
10
+ export type Value = Literal | Ref;
11
+ export declare function isRef(v: unknown): v is Ref;
12
+ /** 白名单 core 调用(受限求值的唯一计算手段). */
13
+ export interface CoreCall {
14
+ fn: string;
15
+ args: Value[];
16
+ }
17
+ export interface ScriptStep {
18
+ id: string;
19
+ kind: 'script';
20
+ setOutput: string;
21
+ call: CoreCall;
22
+ }
23
+ export interface AgentStep {
24
+ id: string;
25
+ kind: 'agent';
26
+ prompt: string;
27
+ outputKey?: string;
28
+ }
29
+ export interface ForeachStep {
30
+ id: string;
31
+ kind: 'foreach';
32
+ over: Ref;
33
+ as: string;
34
+ parallel?: boolean;
35
+ body: WorkflowStep[];
36
+ collect?: string;
37
+ }
38
+ export interface IfStep {
39
+ id: string;
40
+ kind: 'if';
41
+ cond: Value;
42
+ then: WorkflowStep[];
43
+ else?: WorkflowStep[];
44
+ }
45
+ export type WorkflowStep = ScriptStep | AgentStep | ForeachStep | IfStep;
46
+ export interface WorkflowSpec {
47
+ name: string;
48
+ input?: Record<string, unknown>;
49
+ steps: WorkflowStep[];
50
+ output?: Ref;
51
+ }
52
+ /** 白名单 core 函数表(受限). 起步集: 列表/过滤/字符串/逻辑. 不含 fs/net/eval. */
53
+ export type CoreFn = (...args: unknown[]) => unknown;
54
+ export declare const CORE_WHITELIST: Record<string, CoreFn>;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Dynamic workflow DSL(M4B, 轨B 孵化). 声明式 + 受限表达式, **无任意 JS**(从语言层消除一类风险).
3
+ * 表达式表示为**结构化对象**(非字符串解析): 引用 Ref + 白名单 core 调用, 安全 by-construction.
4
+ */
5
+ export function isRef(v) { return typeof v === 'object' && v !== null && 'ref' in v; }
6
+ export const CORE_WHITELIST = {
7
+ list_len: (a) => (Array.isArray(a) ? a.length : 0),
8
+ filter_by_mask: (items, mask) => (Array.isArray(items) && Array.isArray(mask) ? items.filter((_, i) => Boolean(mask[i])) : []),
9
+ contains: (hay, needle) => String(hay).includes(String(needle)),
10
+ concat: (...xs) => xs.flat(),
11
+ upper: (s) => String(s).toUpperCase(),
12
+ eq: (a, b) => a === b,
13
+ not: (a) => !a,
14
+ identity: (a) => a,
15
+ };
@@ -0,0 +1,30 @@
1
+ import { type WorkflowSpec, type CoreFn } from './dsl.js';
2
+ export interface WorkflowContext {
3
+ input: Record<string, unknown>;
4
+ steps: Record<string, unknown>;
5
+ item?: unknown;
6
+ }
7
+ /** agent step 桥(注入 runtime; 孵化期可注 stub). */
8
+ export type AgentBridge = (prompt: string, ctx: WorkflowContext) => Promise<unknown> | unknown;
9
+ export interface WorkflowEngineDeps {
10
+ core?: Record<string, CoreFn>;
11
+ agent: AgentBridge;
12
+ }
13
+ export declare class WorkflowError extends Error {
14
+ constructor(message: string);
15
+ }
16
+ /**
17
+ * Workflow 执行引擎(M4B-2 孵化). 解释 DAG: script(受限 core)/agent(桥)/foreach(可并行)/if.
18
+ * 无 eval/无任意 JS; 编排层声明式, 计算只走白名单 core.
19
+ */
20
+ export declare class WorkflowEngine {
21
+ private readonly deps;
22
+ private readonly core;
23
+ constructor(deps: WorkflowEngineDeps);
24
+ run(spec: WorkflowSpec): Promise<{
25
+ output: unknown;
26
+ ctx: WorkflowContext;
27
+ }>;
28
+ private runSteps;
29
+ private runStep;
30
+ }
@@ -0,0 +1,94 @@
1
+ import { isRef, CORE_WHITELIST, } from './dsl.js';
2
+ export class WorkflowError extends Error {
3
+ constructor(message) { super(message); this.name = 'WorkflowError'; }
4
+ }
5
+ /** 解析引用: input.x / steps.id.key / item[.path]. 不支持任意属性链外的求值. */
6
+ function resolveRef(ref, ctx) {
7
+ const [head, ...rest] = ref.split('.');
8
+ let base;
9
+ if (head === 'input')
10
+ base = ctx.input;
11
+ else if (head === 'steps') {
12
+ const stepId = rest.shift();
13
+ base = stepId !== undefined ? ctx.steps[stepId] : undefined;
14
+ }
15
+ else if (head === 'item')
16
+ base = ctx.item;
17
+ else
18
+ throw new WorkflowError(`非法引用根: ${head}`);
19
+ for (const k of rest) {
20
+ if (base == null)
21
+ return undefined;
22
+ base = base[k];
23
+ }
24
+ return base;
25
+ }
26
+ function evalValue(v, ctx) {
27
+ return isRef(v) ? resolveRef(v.ref, ctx) : v;
28
+ }
29
+ function evalCore(call, ctx, core) {
30
+ const fn = core[call.fn];
31
+ if (!fn)
32
+ throw new WorkflowError(`core 函数不在白名单: ${call.fn}`);
33
+ return fn(...call.args.map((a) => evalValue(a, ctx)));
34
+ }
35
+ /**
36
+ * Workflow 执行引擎(M4B-2 孵化). 解释 DAG: script(受限 core)/agent(桥)/foreach(可并行)/if.
37
+ * 无 eval/无任意 JS; 编排层声明式, 计算只走白名单 core.
38
+ */
39
+ export class WorkflowEngine {
40
+ deps;
41
+ core;
42
+ constructor(deps) {
43
+ this.deps = deps;
44
+ this.core = { ...CORE_WHITELIST, ...(deps.core ?? {}) };
45
+ }
46
+ async run(spec) {
47
+ const ctx = { input: spec.input ?? {}, steps: {} };
48
+ await this.runSteps(spec.steps, ctx);
49
+ const output = spec.output ? resolveRef(spec.output.ref, ctx) : undefined;
50
+ return { output, ctx };
51
+ }
52
+ async runSteps(steps, ctx) {
53
+ for (const step of steps)
54
+ await this.runStep(step, ctx);
55
+ }
56
+ async runStep(step, ctx) {
57
+ switch (step.kind) {
58
+ case 'script': {
59
+ ctx.steps[step.id] = { [step.setOutput]: evalCore(step.call, ctx, this.core) };
60
+ return;
61
+ }
62
+ case 'agent': {
63
+ ctx.steps[step.id] = { [step.outputKey ?? 'output']: await this.deps.agent(step.prompt, ctx) };
64
+ return;
65
+ }
66
+ case 'if': {
67
+ const branch = evalValue(step.cond, ctx) ? step.then : (step.else ?? []);
68
+ await this.runSteps(branch, ctx);
69
+ return;
70
+ }
71
+ case 'foreach': {
72
+ const items = resolveRef(step.over.ref, ctx);
73
+ if (!Array.isArray(items))
74
+ throw new WorkflowError(`foreach.over 非数组: ${step.over.ref}`);
75
+ const runOne = async (item) => {
76
+ const sub = { input: ctx.input, steps: { ...ctx.steps }, item };
77
+ await this.runSteps(step.body, sub);
78
+ // 子步输出汇总: 取最后一个 body step 的输出(保证每项都处理)
79
+ const last = step.body[step.body.length - 1];
80
+ return last ? sub.steps[last.id] : undefined;
81
+ };
82
+ const results = step.parallel
83
+ ? await Promise.all(items.map(runOne))
84
+ : await items.reduce(async (accP, it) => { const acc = await accP; acc.push(await runOne(it)); return acc; }, Promise.resolve([]));
85
+ ctx.steps[step.id] = { [step.collect ?? 'results']: results };
86
+ return;
87
+ }
88
+ default: {
89
+ const _exhaustive = step;
90
+ throw new WorkflowError(`未知 step kind: ${JSON.stringify(_exhaustive)}`);
91
+ }
92
+ }
93
+ }
94
+ }
@@ -0,0 +1,2 @@
1
+ export * from './dsl.js';
2
+ export * from './engine.js';
@@ -0,0 +1,2 @@
1
+ export * from './dsl.js';
2
+ export * from './engine.js';
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@evomap/evolver-core",
3
+ "version": "2.0.0-beta.0",
4
+ "private": false,
5
+ "type": "module",
6
+ "description": "hub-无关核心: 算法引擎/原材料/mailbox/资产库/workflow",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "default": "./dist/index.js"
13
+ }
14
+ },
15
+ "dependencies": {
16
+ "@evomap/gep-sdk": "1.12.1",
17
+ "zod": "^3.24.1",
18
+ "ulid": "^2.3.0"
19
+ },
20
+ "publishConfig": {
21
+ "access": "public",
22
+ "tag": "v2-beta"
23
+ },
24
+ "files": [
25
+ "dist/",
26
+ "README.md",
27
+ "package.json"
28
+ ]
29
+ }