@evomap/evolver-core 2.0.0-beta.9 → 2.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 (201) hide show
  1. package/dist/algo/antiDistill.js +1 -167
  2. package/dist/algo/bans.js +1 -33
  3. package/dist/algo/candidateAssembly.d.ts +7 -2
  4. package/dist/algo/candidateAssembly.js +1 -205
  5. package/dist/algo/capabilityCandidates.js +1 -136
  6. package/dist/algo/confidence.js +1 -196
  7. package/dist/algo/conversationSniffer.js +1 -149
  8. package/dist/algo/cycleEngine.d.ts +23 -2
  9. package/dist/algo/cycleEngine.js +1 -425
  10. package/dist/algo/cycleFailureClassifier.js +1 -112
  11. package/dist/algo/epigenetics.js +1 -41
  12. package/dist/algo/evolutionEvent.js +1 -24
  13. package/dist/algo/exploration.d.ts +7 -0
  14. package/dist/algo/exploration.js +1 -55
  15. package/dist/algo/geneHealth.d.ts +2 -2
  16. package/dist/algo/geneHealth.js +1 -16
  17. package/dist/algo/geneIntake.js +1 -128
  18. package/dist/algo/genePromotion.js +1 -53
  19. package/dist/algo/geneSelection.d.ts +63 -5
  20. package/dist/algo/geneSelection.js +1 -246
  21. package/dist/algo/index.d.ts +2 -0
  22. package/dist/algo/index.js +1 -20
  23. package/dist/algo/memoryGraph.js +1 -86
  24. package/dist/algo/mutation.js +1 -22
  25. package/dist/algo/orchestrator.d.ts +8 -1
  26. package/dist/algo/orchestrator.js +1 -75
  27. package/dist/algo/publishEligibility.d.ts +34 -0
  28. package/dist/algo/publishEligibility.js +1 -0
  29. package/dist/algo/solidify.js +1 -63
  30. package/dist/algo/strategyPresets.js +1 -61
  31. package/dist/algo/ucb1.d.ts +53 -0
  32. package/dist/algo/ucb1.js +1 -0
  33. package/dist/assetstore/assetSidecarRecords.d.ts +7 -2
  34. package/dist/assetstore/assetSidecarRecords.js +238 -0
  35. package/dist/assetstore/assetSidecarRecovery.js +2 -2
  36. package/dist/assetstore/assetStoreHealth.d.ts +6 -0
  37. package/dist/assetstore/assetStoreHealth.js +56 -14
  38. package/dist/assetstore/assetStoreStorage.d.ts +1 -1
  39. package/dist/assetstore/assetStoreStorage.js +27 -9
  40. package/dist/assetstore/assetSyncLedger.d.ts +86 -0
  41. package/dist/assetstore/assetSyncLedger.js +683 -4
  42. package/dist/assetstore/index.d.ts +1 -0
  43. package/dist/assetstore/index.js +1 -0
  44. package/dist/assetstore/localAssetStoreSnapshot.d.ts +51 -0
  45. package/dist/assetstore/localAssetStoreSnapshot.js +329 -0
  46. package/dist/assetstore/localJsonl.d.ts +4 -2
  47. package/dist/assetstore/localJsonl.js +89 -9
  48. package/dist/assetstore/provenance.d.ts +80 -4
  49. package/dist/assetstore/provenance.js +313 -5
  50. package/dist/assetstore/provider.d.ts +58 -1
  51. package/dist/assetstore/provider.js +97 -6
  52. package/dist/benchmark/antiGeneBenchmark.d.ts +2 -0
  53. package/dist/benchmark/antiGeneBenchmark.js +1 -251
  54. package/dist/benchmark/antiGeneImpact.js +1 -34
  55. package/dist/benchmark/antiGeneRollout.d.ts +2 -0
  56. package/dist/benchmark/antiGeneRollout.js +1 -268
  57. package/dist/benchmark/benchmark.js +1 -26
  58. package/dist/benchmark/evolutionThesisSolver.js +1 -41
  59. package/dist/benchmark/index.d.ts +2 -1
  60. package/dist/benchmark/index.js +1 -6
  61. package/dist/benchmark/selectionFlatAbstention.d.ts +152 -0
  62. package/dist/benchmark/selectionFlatAbstention.js +1 -0
  63. package/dist/benchmark/thesis.js +1 -150
  64. package/dist/benchmark/triggerShift.js +1 -106
  65. package/dist/bootstrap/envFingerprint.d.ts +9 -0
  66. package/dist/bootstrap/envFingerprint.js +5 -0
  67. package/dist/bootstrap/index.d.ts +2 -1
  68. package/dist/bootstrap/index.js +2 -1
  69. package/dist/bootstrap/v1EnvCompat.d.ts +111 -0
  70. package/dist/bootstrap/v1EnvCompat.js +280 -0
  71. package/dist/cycle/cycleTimeline.js +1 -74
  72. package/dist/cycle/index.js +1 -2
  73. package/dist/cycle/stateMachine.js +1 -25
  74. package/dist/events/eventArchive.d.ts +2 -0
  75. package/dist/events/eventArchive.js +13 -3
  76. package/dist/events/eventSchema.d.ts +7 -7
  77. package/dist/events/eventStore.d.ts +2 -0
  78. package/dist/events/eventStore.js +5 -1
  79. package/dist/events/ingest.d.ts +1 -0
  80. package/dist/events/ingest.js +1 -0
  81. package/dist/events/paths.d.ts +3 -1
  82. package/dist/events/paths.js +4 -0
  83. package/dist/events/public.d.ts +2 -2
  84. package/dist/events/public.js +2 -2
  85. package/dist/events/reports.d.ts +2 -0
  86. package/dist/events/reports.js +4 -0
  87. package/dist/exec/autoExec.d.ts +43 -2
  88. package/dist/exec/autoExec.js +76 -9
  89. package/dist/exec/autonomousCycle.d.ts +22 -4
  90. package/dist/exec/autonomousCycle.js +64 -13
  91. package/dist/exec/claudeBridge.d.ts +32 -7
  92. package/dist/exec/claudeBridge.js +281 -29
  93. package/dist/exec/prompt.js +5 -1
  94. package/dist/exec/runnerRegistry.d.ts +68 -26
  95. package/dist/exec/runnerRegistry.js +307 -72
  96. package/dist/exec/selfPr.js +1 -7
  97. package/dist/feedback/envelope.d.ts +61 -0
  98. package/dist/feedback/envelope.js +168 -0
  99. package/dist/feedback/index.d.ts +1 -0
  100. package/dist/feedback/index.js +1 -0
  101. package/dist/hooks/hooks.js +1 -0
  102. package/dist/hub/agentDirectory.js +1 -104
  103. package/dist/hub/assetCallLog.d.ts +35 -1
  104. package/dist/hub/assetCallLog.js +1 -72
  105. package/dist/hub/bindings.d.ts +8 -1
  106. package/dist/hub/bindings.js +1 -110
  107. package/dist/hub/capability.d.ts +90 -3
  108. package/dist/hub/capability.js +1 -1
  109. package/dist/hub/conversationDistiller.js +1 -264
  110. package/dist/hub/fake.d.ts +2 -2
  111. package/dist/hub/fake.js +1 -70
  112. package/dist/hub/hubReview.js +1 -106
  113. package/dist/hub/index.js +1 -11
  114. package/dist/hub/ingest.js +1 -15
  115. package/dist/hub/questionGenerator.d.ts +5 -1
  116. package/dist/hub/questionGenerator.js +1 -406
  117. package/dist/hub/reuseDecision.js +1 -127
  118. package/dist/hub/sanitize.js +1 -322
  119. package/dist/index.d.ts +3 -1
  120. package/dist/index.js +4 -1
  121. package/dist/mailbox/dispatch.d.ts +1 -1
  122. package/dist/mailbox/dispatch.js +22 -6
  123. package/dist/mailbox/envelope.d.ts +7 -1
  124. package/dist/mailbox/envelope.js +9 -2
  125. package/dist/mailbox/ipcServer.d.ts +10 -2
  126. package/dist/mailbox/ipcServer.js +163 -13
  127. package/dist/mailbox/store.d.ts +89 -3
  128. package/dist/mailbox/store.js +895 -41
  129. package/dist/material/boundary.js +1 -14
  130. package/dist/material/consumer.js +1 -55
  131. package/dist/material/emit.js +1 -52
  132. package/dist/material/factory.js +1 -25
  133. package/dist/material/index.js +1 -9
  134. package/dist/material/materialArchive.js +1 -466
  135. package/dist/material/materialStore.js +1 -69
  136. package/dist/material/sampling.js +1 -39
  137. package/dist/material/sources.js +1 -33
  138. package/dist/material/watermark.js +1 -76
  139. package/dist/ops/evolutionGraphProjection.d.ts +20 -0
  140. package/dist/ops/evolutionGraphProjection.js +315 -0
  141. package/dist/ops/index.d.ts +2 -1
  142. package/dist/ops/index.js +2 -1
  143. package/dist/ops/selfUpdate.d.ts +8 -0
  144. package/dist/ops/selfUpdate.js +24 -8
  145. package/dist/personality/drift.js +1 -106
  146. package/dist/personality/events.js +1 -37
  147. package/dist/personality/evolveOps.js +1 -93
  148. package/dist/personality/index.js +1 -11
  149. package/dist/personality/mutate.js +1 -39
  150. package/dist/personality/pivot.js +1 -22
  151. package/dist/personality/prompt.js +1 -62
  152. package/dist/personality/riskGate.js +1 -80
  153. package/dist/personality/schema.d.ts +16 -16
  154. package/dist/personality/schema.js +1 -119
  155. package/dist/personality/select.js +1 -71
  156. package/dist/personality/stats.js +1 -82
  157. package/dist/personality/store.js +1 -92
  158. package/dist/schema/common.js +1 -17
  159. package/dist/schema/evolutionGraph.d.ts +784 -0
  160. package/dist/schema/evolutionGraph.js +1 -0
  161. package/dist/schema/index.d.ts +1 -0
  162. package/dist/schema/index.js +1 -5
  163. package/dist/schema/material.js +1 -50
  164. package/dist/schema/problem.js +1 -45
  165. package/dist/schema/proofOfWork.js +1 -9
  166. package/dist/schema/signal.d.ts +3 -3
  167. package/dist/schema/signal.js +1 -19
  168. package/dist/signals/curriculum.d.ts +55 -0
  169. package/dist/signals/curriculum.js +1 -0
  170. package/dist/signals/cycleHistoryFromEvents.js +1 -96
  171. package/dist/signals/expand.d.ts +15 -1
  172. package/dist/signals/expand.js +1 -125
  173. package/dist/signals/extractor.d.ts +2 -2
  174. package/dist/signals/extractor.js +1 -57
  175. package/dist/signals/index.d.ts +3 -1
  176. package/dist/signals/index.js +1 -6
  177. package/dist/signals/metaSignals.d.ts +4 -0
  178. package/dist/signals/metaSignals.js +1 -158
  179. package/dist/signals/signalGate.js +1 -40
  180. package/dist/signals/taskDomain.d.ts +22 -0
  181. package/dist/signals/taskDomain.js +1 -0
  182. package/dist/signals/traceSignals.js +1 -123
  183. package/dist/strategy/constraintAblation.js +1 -3074
  184. package/dist/strategy/constraintAblationPredicates.d.ts +31 -0
  185. package/dist/strategy/constraintAblationPredicates.js +1 -0
  186. package/dist/strategy/experiment.js +1 -63
  187. package/dist/strategy/index.js +1 -3
  188. package/dist/strategy/strategyPoint.js +1 -23
  189. package/dist/trace/index.d.ts +3 -1
  190. package/dist/trace/index.js +3 -1
  191. package/dist/trace/learningTrace.d.ts +209 -0
  192. package/dist/trace/learningTrace.js +276 -0
  193. package/dist/trace/proxyTurns.d.ts +31 -0
  194. package/dist/trace/proxyTurns.js +137 -0
  195. package/dist/verify/sandboxRunner.d.ts +28 -0
  196. package/dist/verify/sandboxRunner.js +218 -19
  197. package/dist/verify/sandboxedValidation.d.ts +9 -0
  198. package/dist/verify/sandboxedValidation.js +113 -13
  199. package/dist/verify/validation.d.ts +11 -1
  200. package/dist/verify/validation.js +31 -0
  201. package/package.json +5 -2
@@ -1,110 +1 @@
1
- import { normalizeForPut } from '../assetstore/provider.js';
2
- import { sanitizeBundle, summarizeLeaks } from './sanitize.js';
3
- /** publish 回执非 accepted → 抛此错; SyncEngine 据 terminal 决定是否重试. */
4
- export class PublishRejectedError extends Error {
5
- status;
6
- terminal;
7
- retryAfterMs;
8
- retryable;
9
- constructor(status, terminal, reason, retryAfterMs, retryable) {
10
- super(`publish ${status}${reason ? `: ${reason}` : ''}`);
11
- this.status = status;
12
- this.terminal = terminal;
13
- this.retryAfterMs = retryAfterMs;
14
- this.retryable = retryable;
15
- this.name = 'PublishRejectedError';
16
- }
17
- }
18
- function envelopeToAgentEvent(e) {
19
- const stableId = e.type === 'proxy_trace' && e.idempotencyKey ? e.idempotencyKey : e.id;
20
- return {
21
- id: stableId,
22
- type: e.type === 'dm_outbound' ? 'dm' : e.type,
23
- payload: e.payload,
24
- priority: 'medium',
25
- createdAt: e.createdAt,
26
- ...(e.type === 'proxy_trace' && e.idempotencyKey ? { refId: e.idempotencyKey } : {}),
27
- };
28
- }
29
- /**
30
- * 把 HubCapability 接到 core 两 seam(M6-1):
31
- * - asProxyHandler: Dispatcher.handlers.proxy — 按 envelope.type 路由到 hub. 抛错→store.fail()重试;
32
- * 但 publish 终态(reject/quarantine/402)抛 PublishRejectedError{terminal:true}, 调用方据此不重试(money-safety).
33
- * - asAssetTransport: assetstore RemoteTransport — 落库前 core normalizeForPut, 不信任远端 asset_id.
34
- */
35
- export function makeHubBindings(cap, options = {}) {
36
- const sanCfg = options.sanitize ?? {};
37
- const sanEnabled = sanCfg.enabled ?? true;
38
- const sanEnv = sanCfg.env ?? (typeof process !== 'undefined' ? process.env : {});
39
- /** Single publish chokepoint: sanitize (on by default) → strict + leak found → refuse (terminal, not retryable) → cap.publish the redacted bundle. */
40
- const publishSanitized = (bundle) => {
41
- if (!sanEnabled)
42
- return cap.publish(bundle);
43
- const r = sanitizeBundle(bundle, { env: sanEnv, ...(sanCfg.mode ? { mode: sanCfg.mode } : {}) });
44
- if (r.blocked) {
45
- throw new PublishRejectedError('leak_blocked', true, `sensitive data detected before publish, refused (not retryable): ${summarizeLeaks(r.leaks)}`);
46
- }
47
- return cap.publish(r.bundle);
48
- };
49
- return {
50
- asProxyHandler() {
51
- return async (e) => {
52
- switch (e.type) {
53
- case 'asset_submit': {
54
- // payload 可为 bundle {assets:[...]} 或单资产; 统一成 bundle 数组发.
55
- const p = e.payload;
56
- const bundle = Array.isArray(p.assets) ? p.assets : [p];
57
- const r = await publishSanitized(bundle);
58
- if (r.status !== 'accepted')
59
- throw new PublishRejectedError(r.status, r.terminal ?? true, r.reason);
60
- return r;
61
- }
62
- case 'task_claim': {
63
- const p = e.payload;
64
- return cap.task.claim(firstString(p.taskId, p.task_id) ?? '');
65
- }
66
- case 'task_complete': {
67
- const p = e.payload;
68
- const taskId = firstString(p.taskId, p.task_id);
69
- const assetId = firstString(p.assetId, p.asset_id);
70
- const claimId = firstString(p.claimId, p.claim_id);
71
- if (!claimId) {
72
- throw new PublishRejectedError('invalid_task_complete', true, 'claim_id is required because task claim handles are opaque');
73
- }
74
- const context = taskId && assetId ? { taskId, assetId } : undefined;
75
- return cap.task.complete(claimId, p.result, context);
76
- }
77
- default:
78
- // 其余 outbound(atp_*/heartbeat/...) 走 mailbox.push
79
- await cap.mailbox.push(envelopeToAgentEvent(e));
80
- return { pushed: true };
81
- }
82
- };
83
- },
84
- asAssetTransport() {
85
- return {
86
- putRemote: async (record) => {
87
- const { record: clean } = normalizeForPut(record); // 不信任远端 asset_id, core 侧重算
88
- const r = await publishSanitized([clean]); // 单资产传输也走 bundle API([asset]) + 发布前脱敏
89
- return { stored: r.status === 'accepted' };
90
- },
91
- getRemote: async (assetId) => {
92
- const got = await cap.fetch({ limit: 10000 });
93
- return got.find((a) => a.asset_id === assetId) ?? null;
94
- },
95
- searchRemote: (query) => cap.search(query),
96
- listRemote: (kind, limit) => cap.fetch({ ...(kind ? { kind } : {}), limit }),
97
- };
98
- },
99
- };
100
- }
101
- function firstString(...values) {
102
- for (const value of values) {
103
- if (typeof value !== 'string')
104
- continue;
105
- const trimmed = value.trim();
106
- if (trimmed)
107
- return trimmed;
108
- }
109
- return undefined;
110
- }
1
+ const _0x17228f=_0x2c7f;(function(_0x5917ae,_0x3b2124){const _0x346359=_0x2c7f,_0x27d686=_0x5917ae();while(!![]){try{const _0x1b66b9=-parseInt(_0x346359(0x171,'\x65\x47\x56\x40'))/(-0xd21+0xae4+-0xe*-0x29)+parseInt(_0x346359(0x19a,'\x50\x6b\x59\x38'))/(-0x2b5*0x7+-0x284+0x1579)*(parseInt(_0x346359(0x188,'\x4d\x40\x33\x5b'))/(-0x2*0x68e+-0x15c0+0x22df))+-parseInt(_0x346359(0x104,'\x36\x38\x24\x4e'))/(0x2a5*0x1+-0x9d*-0x19+-0x11f6)+parseInt(_0x346359(0xed,'\x41\x4b\x5d\x37'))/(0x3*0x9a7+-0x1c2d+-0xc3)*(parseInt(_0x346359(0x138,'\x30\x29\x52\x39'))/(-0x3b*0x9e+-0x425*0x1+0xd87*0x3))+parseInt(_0x346359(0x158,'\x70\x6a\x51\x21'))/(0x1*-0x1f3+-0x97*0xe+0x28f*0x4)*(-parseInt(_0x346359(0xe8,'\x4d\x40\x33\x5b'))/(-0x7df+-0x654+0xe3b))+-parseInt(_0x346359(0x18a,'\x55\x25\x61\x40'))/(0x414+-0x1bb0+0x17a5)+parseInt(_0x346359(0xf6,'\x36\x38\x24\x4e'))/(-0x1e8c+-0x17b+0x2011);if(_0x1b66b9===_0x3b2124)break;else _0x27d686['push'](_0x27d686['shift']());}catch(_0x4a2477){_0x27d686['push'](_0x27d686['shift']());}}}(_0x4c79,-0xfd*0x3+0x4d442*-0x1+0xbc*0xd4d));import{normalizeForPut}from'\x2e\x2e\x2f\x61\x73\x73\x65\x74\x73\x74\x6f\x72\x65\x2f\x70\x72\x6f\x76\x69\x64\x65\x72\x2e\x6a\x73';function _0x4c79(){const _0x341b4e=['\x75\x59\x62\x30\x57\x37\x68\x63\x4b\x61\x5a\x63\x4a\x32\x57','\x68\x6d\x6b\x45\x57\x37\x71\x74\x79\x6d\x6f\x70\x57\x51\x4e\x64\x4b\x4b\x52\x63\x51\x73\x6e\x69','\x72\x48\x71\x77\x79\x4c\x43','\x6e\x33\x43\x63\x6e\x6d\x6f\x79\x57\x52\x53','\x71\x43\x6f\x38\x6f\x6d\x6f\x34\x67\x6d\x6b\x2f\x70\x43\x6f\x76','\x75\x71\x37\x63\x50\x53\x6b\x55','\x6e\x77\x74\x64\x54\x67\x44\x31\x46\x71','\x57\x35\x66\x4f\x57\x37\x44\x73\x57\x50\x56\x63\x54\x47','\x57\x34\x74\x63\x48\x4d\x42\x63\x53\x47','\x57\x34\x54\x51\x57\x37\x31\x59\x57\x51\x68\x63\x52\x6d\x6b\x4d\x71\x61','\x66\x43\x6b\x31\x6d\x6d\x6f\x77\x76\x78\x42\x63\x4e\x53\x6f\x4e','\x68\x43\x6b\x4b\x6a\x53\x6f\x45\x62\x77\x33\x63\x49\x38\x6f\x58','\x57\x51\x47\x55\x6f\x31\x4a\x64\x4f\x43\x6f\x73\x78\x32\x75','\x57\x52\x56\x63\x4a\x59\x6c\x64\x52\x43\x6b\x47\x6d\x38\x6f\x35\x57\x37\x47','\x57\x50\x69\x72\x57\x50\x64\x64\x47\x47\x71','\x57\x35\x37\x63\x48\x4e\x4a\x63\x56\x68\x4b\x45','\x71\x49\x6a\x63','\x73\x74\x5a\x63\x4e\x64\x74\x63\x54\x6d\x6f\x46\x61\x66\x52\x63\x54\x5a\x72\x70\x75\x47','\x72\x73\x47\x7a\x57\x36\x44\x6d\x57\x4f\x68\x64\x56\x74\x61\x55\x68\x30\x70\x63\x51\x53\x6f\x78','\x57\x50\x4c\x54\x57\x50\x71\x78\x6a\x72\x71','\x77\x67\x74\x64\x48\x78\x78\x63\x50\x53\x6b\x42\x6a\x30\x61','\x67\x38\x6b\x6d\x57\x37\x52\x64\x56\x62\x72\x65\x57\x35\x6e\x59','\x76\x47\x70\x63\x54\x38\x6b\x2f\x78\x6d\x6b\x54','\x6f\x31\x30\x37\x57\x51\x34','\x69\x43\x6f\x34\x73\x75\x4b','\x6c\x33\x37\x64\x4f\x33\x6a\x53\x7a\x57\x52\x63\x52\x47','\x72\x53\x6f\x54\x6b\x38\x6f\x48\x62\x6d\x6b\x49','\x78\x43\x6b\x65\x57\x37\x64\x64\x54\x63\x54\x46\x57\x35\x61','\x57\x50\x4f\x6b\x57\x34\x57\x68\x57\x36\x4b\x4a\x57\x51\x71\x46','\x57\x36\x50\x34\x62\x33\x58\x61\x63\x43\x6b\x6e\x57\x52\x39\x5a\x6c\x43\x6f\x75\x57\x36\x30','\x57\x35\x6a\x55\x57\x36\x50\x57\x57\x4f\x56\x63\x4f\x47','\x61\x53\x6b\x41\x57\x37\x64\x64\x51\x72\x31\x30\x57\x35\x6e\x4c','\x57\x52\x4b\x56\x6a\x30\x78\x64\x52\x6d\x6f\x65\x74\x57','\x57\x36\x74\x63\x4f\x43\x6b\x78\x67\x6d\x6f\x73\x57\x51\x6c\x64\x4d\x38\x6f\x56','\x44\x38\x6f\x6d\x57\x37\x2f\x63\x4f\x38\x6f\x2f\x6f\x71\x4f','\x57\x4f\x4a\x63\x53\x38\x6f\x72\x57\x35\x46\x64\x4a\x38\x6f\x79\x6b\x47\x57','\x57\x52\x79\x37\x77\x59\x50\x76\x77\x38\x6b\x61\x57\x4f\x38','\x6f\x57\x68\x64\x4f\x53\x6f\x30','\x73\x31\x38\x42\x71\x6d\x6b\x55\x57\x36\x66\x53','\x57\x50\x56\x64\x4b\x4a\x2f\x64\x50\x71\x7a\x64\x69\x6d\x6f\x78\x57\x52\x56\x63\x49\x58\x47\x39\x44\x47','\x57\x50\x75\x4e\x57\x50\x42\x64\x49\x61','\x71\x58\x75\x73\x7a\x66\x74\x64\x4d\x6d\x6f\x55\x45\x71','\x46\x43\x6f\x66\x57\x36\x76\x71\x57\x51\x46\x63\x47\x53\x6f\x53\x57\x52\x4f','\x57\x50\x4c\x30\x57\x50\x75\x71\x69\x48\x72\x34','\x57\x34\x58\x41\x57\x37\x5a\x63\x4a\x6d\x6f\x57','\x67\x4b\x33\x64\x4a\x71','\x67\x73\x4e\x63\x54\x6d\x6f\x4a\x41\x63\x6a\x32\x78\x61','\x57\x50\x65\x2f\x57\x50\x2f\x64\x47\x71\x43\x66\x57\x50\x4b','\x57\x36\x4c\x54\x7a\x62\x42\x63\x52\x6d\x6b\x2b\x67\x63\x43\x46\x57\x50\x37\x64\x48\x43\x6b\x55\x57\x34\x31\x71','\x7a\x38\x6b\x48\x57\x4f\x47\x79\x46\x4c\x4b\x55\x57\x50\x57','\x57\x52\x44\x47\x57\x51\x31\x6d','\x6d\x78\x6d\x78\x6b\x53\x6f\x49\x57\x52\x50\x68\x57\x35\x57','\x74\x73\x6a\x45\x57\x51\x70\x63\x54\x53\x6b\x38','\x57\x37\x56\x64\x4c\x73\x6c\x64\x52\x43\x6b\x78\x57\x51\x79','\x69\x38\x6f\x5a\x65\x38\x6b\x32\x57\x50\x4b','\x63\x6d\x6b\x4f\x6a\x43\x6f\x45','\x57\x50\x6d\x54\x57\x4f\x4e\x64\x4d\x6d\x6b\x6e\x69\x62\x71\x63','\x57\x52\x6e\x4b\x57\x51\x44\x75\x57\x50\x6c\x64\x4f\x57\x47','\x72\x49\x66\x55\x57\x37\x4b','\x46\x43\x6f\x62\x57\x36\x76\x6b\x57\x52\x52\x63\x4e\x38\x6f\x2f\x57\x51\x4b','\x78\x48\x61\x65\x79\x47','\x66\x65\x6c\x64\x4f\x53\x6f\x35\x68\x38\x6f\x4e\x57\x51\x64\x64\x50\x43\x6b\x53\x76\x6d\x6b\x6c\x57\x52\x52\x63\x50\x57','\x57\x36\x50\x4f\x79\x48\x74\x63\x52\x53\x6b\x34\x67\x76\x4b\x41\x57\x52\x64\x64\x4a\x53\x6b\x76\x57\x36\x34','\x70\x6d\x6f\x39\x78\x30\x2f\x64\x48\x38\x6b\x71\x57\x50\x39\x6c','\x57\x4f\x34\x42\x57\x35\x6d\x6c\x57\x36\x34\x63\x57\x36\x57','\x6f\x38\x6f\x36\x71\x32\x4e\x64\x4b\x53\x6b\x67','\x6d\x6d\x6b\x53\x6b\x71','\x74\x6d\x6b\x34\x57\x51\x50\x33\x65\x47','\x68\x4c\x4b\x6d\x72\x67\x42\x63\x4d\x38\x6b\x71\x77\x71','\x57\x4f\x64\x64\x4c\x53\x6b\x48\x57\x34\x79','\x70\x6d\x6b\x41\x57\x52\x38\x39\x57\x50\x43\x77\x6d\x71','\x57\x36\x7a\x2f\x63\x68\x54\x68\x64\x38\x6b\x4e\x57\x4f\x6a\x34\x62\x53\x6f\x58\x57\x36\x71','\x7a\x43\x6b\x2b\x57\x50\x4f\x75\x7a\x33\x75','\x57\x35\x7a\x69\x57\x35\x54\x50\x57\x52\x43','\x57\x50\x75\x37\x57\x50\x74\x64\x47\x61\x65\x6b\x57\x50\x5a\x63\x49\x57','\x44\x67\x46\x64\x53\x6d\x6b\x33\x67\x73\x52\x64\x4f\x43\x6b\x6e','\x6c\x53\x6f\x53\x57\x37\x4a\x63\x54\x43\x6f\x38\x6a\x64\x4b\x35','\x57\x51\x5a\x63\x47\x63\x46\x64\x53\x61','\x57\x34\x44\x33\x57\x35\x75','\x57\x4f\x61\x52\x57\x50\x37\x64\x4a\x38\x6b\x65\x66\x72\x43\x73','\x64\x43\x6b\x42\x57\x36\x68\x64\x50\x57\x75','\x79\x53\x6b\x4f\x57\x50\x30\x73\x45\x57','\x57\x34\x39\x2b\x57\x37\x31\x58','\x57\x34\x54\x4c\x57\x35\x79\x79\x57\x51\x74\x64\x4e\x53\x6b\x33\x57\x35\x6d','\x7a\x43\x6b\x34\x57\x50\x4f\x75\x6d\x33\x69\x4d\x57\x4f\x53','\x44\x48\x33\x64\x47\x6d\x6f\x5a\x43\x53\x6f\x2b\x57\x35\x5a\x63\x50\x61','\x57\x4f\x72\x2b\x57\x4f\x6c\x64\x4a\x62\x57\x66\x57\x35\x33\x63\x47\x57','\x57\x51\x38\x4c\x77\x5a\x4f\x71','\x57\x50\x6e\x35\x57\x50\x71\x78\x6a\x72\x72\x56\x64\x61','\x57\x34\x56\x63\x48\x67\x34','\x57\x35\x6a\x76\x57\x36\x64\x63\x53\x38\x6f\x57\x71\x61','\x57\x34\x46\x63\x55\x43\x6f\x53\x57\x34\x42\x63\x53\x76\x4f','\x72\x77\x79\x7a\x78\x4e\x5a\x63\x48\x53\x6b\x4a','\x57\x35\x31\x66\x57\x36\x52\x63\x4e\x43\x6f\x48\x7a\x4b\x58\x65','\x62\x78\x54\x6e\x57\x51\x6d\x72\x57\x35\x53','\x57\x35\x52\x63\x4b\x4d\x4e\x63\x55\x31\x4b\x6a\x46\x71','\x57\x34\x33\x64\x51\x38\x6b\x52\x43\x5a\x46\x64\x50\x57','\x57\x37\x70\x63\x52\x6d\x6b\x66\x67\x53\x6f\x47\x57\x50\x37\x64\x4e\x43\x6f\x4d','\x57\x50\x30\x6e\x57\x35\x71\x43\x57\x36\x6d\x51\x57\x36\x50\x74','\x64\x4b\x65\x6d\x77\x78\x37\x63\x54\x57','\x74\x61\x72\x44\x67\x5a\x2f\x64\x54\x38\x6f\x6b\x64\x43\x6f\x72\x61\x38\x6b\x73\x77\x47\x42\x64\x47\x71','\x43\x59\x74\x63\x50\x59\x53\x31\x70\x73\x42\x63\x4f\x4d\x7a\x48\x57\x37\x70\x63\x52\x61','\x57\x35\x42\x63\x51\x38\x6b\x66\x57\x36\x79\x30\x57\x37\x44\x49','\x6a\x43\x6b\x6c\x57\x52\x47\x38\x57\x4f\x34\x6b\x6c\x76\x4f','\x57\x50\x33\x64\x4e\x43\x6b\x30\x57\x34\x44\x67\x57\x52\x44\x4d\x6c\x71','\x57\x35\x58\x4b\x57\x36\x50\x38','\x70\x6d\x6b\x64\x57\x52\x47\x4c\x57\x50\x53','\x66\x43\x6f\x33\x67\x53\x6b\x69','\x71\x48\x61\x7a\x42\x75\x4a\x64\x4b\x53\x6f\x50\x70\x61','\x68\x30\x70\x64\x54\x38\x6f\x65\x76\x59\x4e\x64\x4c\x47\x75','\x73\x49\x76\x63\x57\x4f\x78\x63\x4f\x38\x6b\x51\x57\x50\x42\x63\x51\x71','\x57\x36\x39\x66\x57\x34\x39\x78\x57\x4f\x4b','\x70\x62\x42\x64\x49\x43\x6f\x4f\x69\x6d\x6f\x50\x57\x50\x4e\x63\x4f\x61','\x57\x51\x64\x64\x55\x6d\x6b\x64\x57\x36\x57\x48','\x71\x77\x72\x6a\x57\x51\x61\x34\x57\x37\x68\x63\x55\x61','\x6b\x4e\x69\x75\x6d\x53\x6f\x48\x57\x52\x62\x78\x57\x50\x4b','\x57\x51\x58\x6f\x57\x4f\x44\x54\x57\x52\x4f','\x63\x6d\x6b\x30\x6a\x38\x6f\x77\x74\x68\x46\x63\x49\x38\x6f\x55','\x57\x50\x75\x50\x57\x4f\x37\x64\x47\x43\x6b\x52\x63\x62\x79','\x57\x4f\x64\x64\x56\x6d\x6f\x46\x57\x34\x56\x64\x47\x53\x6f\x75\x6d\x30\x4b','\x67\x5a\x37\x63\x53\x43\x6f\x2b\x43\x47\x4c\x52\x71\x71','\x57\x50\x53\x72\x57\x35\x61\x6c','\x57\x50\x52\x64\x4a\x6d\x6b\x4f\x57\x36\x47\x64\x57\x51\x57','\x69\x6d\x6f\x33\x78\x47','\x6f\x6d\x6b\x6f\x57\x51\x34\x36\x57\x51\x65\x67\x6e\x4c\x69','\x6f\x6d\x6b\x6f\x57\x51\x34\x36\x57\x51\x65\x67\x6e\x76\x34','\x68\x64\x35\x70\x57\x52\x57\x46\x57\x35\x5a\x63\x4f\x4e\x65','\x78\x6d\x6b\x47\x57\x51\x54\x47\x64\x43\x6b\x36\x57\x35\x4c\x55','\x57\x51\x56\x63\x47\x5a\x47','\x70\x38\x6b\x75\x57\x36\x70\x64\x50\x49\x47','\x70\x75\x65\x48\x57\x51\x35\x61\x77\x4a\x54\x6c','\x67\x65\x78\x64\x4a\x43\x6f\x70','\x57\x51\x46\x63\x48\x53\x6f\x6c\x57\x34\x52\x64\x4c\x71','\x61\x33\x39\x46\x57\x52\x53\x33\x57\x35\x65','\x64\x73\x78\x63\x53\x6d\x6f\x49','\x6e\x53\x6f\x32\x76\x31\x6c\x64\x4d\x38\x6b\x41\x57\x50\x39\x6c','\x6a\x38\x6f\x38\x74\x4c\x64\x64\x4a\x53\x6b\x2b\x57\x4f\x31\x41','\x57\x51\x46\x63\x50\x6d\x6b\x66\x75\x43\x6f\x6e\x57\x50\x4a\x64\x47\x38\x6f\x2b','\x65\x78\x4a\x64\x4a\x59\x68\x64\x51\x43\x6b\x7a\x69\x30\x75','\x71\x4a\x6a\x2b\x57\x37\x4a\x63\x49\x5a\x6c\x63\x47\x47','\x57\x52\x30\x53\x77\x63\x65\x68\x78\x6d\x6f\x66\x57\x50\x57','\x72\x62\x64\x63\x4f\x38\x6b\x56\x7a\x71','\x67\x43\x6f\x58\x6d\x43\x6f\x41\x75\x78\x4a\x64\x49\x53\x6f\x4d','\x61\x38\x6f\x4f\x6b\x53\x6b\x76\x57\x50\x75\x73\x6c\x32\x4f','\x42\x74\x4a\x64\x48\x43\x6f\x6c\x61\x38\x6f\x4e\x57\x37\x34','\x57\x34\x52\x64\x56\x53\x6b\x51\x43\x71\x42\x64\x51\x43\x6b\x71','\x57\x4f\x38\x63\x57\x34\x4f\x54\x75\x4a\x78\x63\x4c\x43\x6b\x34\x62\x6d\x6f\x79\x57\x50\x75\x6e\x69\x47','\x75\x59\x62\x30\x57\x37\x68\x63\x4b\x61\x5a\x63\x4c\x78\x30','\x57\x51\x57\x4c\x6a\x65\x75','\x6a\x43\x6b\x62\x57\x51\x53\x57\x57\x50\x69\x6d\x70\x77\x61','\x57\x52\x6d\x53\x78\x59\x75\x51\x77\x38\x6b\x6a\x57\x4f\x6d','\x57\x34\x39\x72\x57\x4f\x54\x4f\x67\x75\x64\x64\x47\x43\x6b\x54','\x6b\x43\x6b\x7a\x57\x52\x47\x4a\x57\x4f\x43','\x57\x35\x4e\x63\x56\x38\x6b\x63\x57\x36\x34\x36\x57\x37\x30','\x65\x43\x6b\x57\x6a\x71','\x62\x59\x4e\x63\x56\x38\x6f\x54\x76\x64\x72\x5a\x78\x61','\x57\x4f\x57\x37\x57\x4f\x6c\x64\x48\x62\x30\x6a','\x42\x38\x6f\x73\x57\x36\x34\x64\x57\x51\x68\x63\x48\x53\x6f\x4b\x57\x52\x30','\x57\x35\x37\x63\x50\x6d\x6b\x6e\x57\x36\x47\x36\x57\x37\x31\x2b','\x57\x51\x30\x53\x78\x5a\x30\x41\x76\x57','\x63\x6d\x6b\x73\x57\x37\x74\x64\x52\x71\x62\x73\x57\x34\x6d','\x46\x53\x6f\x76\x57\x36\x4c\x70\x57\x51\x46\x63\x48\x43\x6f\x54','\x57\x50\x4e\x63\x55\x43\x6f\x69\x57\x35\x78\x64\x4d\x53\x6f\x38\x6f\x62\x30','\x57\x4f\x57\x58\x57\x4f\x6c\x64\x49\x61','\x67\x38\x6b\x73\x57\x37\x64\x64\x53\x61\x47','\x79\x43\x6b\x2f\x57\x51\x71\x63','\x57\x52\x5a\x63\x49\x64\x52\x64\x54\x53\x6b\x51\x6f\x53\x6b\x33\x57\x52\x71','\x57\x35\x7a\x35\x57\x36\x54\x39\x57\x35\x37\x63\x52\x43\x6b\x53\x74\x47','\x57\x52\x4e\x63\x4e\x4a\x30\x6b\x69\x4a\x6d','\x57\x4f\x54\x54\x57\x50\x47\x46\x69\x61\x6a\x30','\x71\x61\x78\x63\x4d\x38\x6b\x34','\x68\x30\x62\x6f\x6f\x58\x68\x63\x48\x38\x6f\x59\x74\x38\x6b\x53\x57\x36\x33\x64\x50\x53\x6b\x30','\x57\x4f\x48\x53\x57\x4f\x47\x41\x6a\x58\x79','\x75\x73\x72\x75\x57\x50\x33\x63\x56\x38\x6b\x58','\x57\x36\x65\x42\x57\x52\x6c\x63\x51\x38\x6b\x69\x57\x36\x5a\x63\x4a\x74\x4b','\x64\x4a\x37\x63\x4b\x38\x6f\x31','\x57\x50\x69\x51\x57\x4f\x46\x64\x4d\x72\x30\x78','\x57\x4f\x52\x63\x52\x53\x6f\x7a\x57\x4f\x46\x64\x4a\x6d\x6f\x6e\x70\x58\x47','\x57\x34\x79\x63\x6b\x4d\x31\x46\x74\x53\x6b\x72\x57\x34\x61','\x62\x43\x6b\x44\x57\x36\x5a\x64\x4a\x57\x48\x49','\x66\x6d\x6b\x57\x6f\x38\x6f\x46\x73\x78\x5a\x63\x4d\x43\x6b\x49','\x72\x38\x6b\x54\x57\x52\x7a\x6f\x64\x53\x6b\x51','\x57\x35\x65\x74\x6b\x78\x54\x79\x74\x53\x6b\x72\x57\x34\x61','\x6c\x33\x6d\x71\x6e\x6d\x6f\x49','\x61\x68\x2f\x64\x49\x67\x33\x64\x52\x38\x6b\x41\x6b\x48\x71','\x57\x36\x6d\x46\x57\x51\x68\x63\x4f\x53\x6b\x65\x57\x37\x4e\x63\x47\x61','\x63\x63\x70\x63\x55\x53\x6f\x4a','\x64\x53\x6f\x32\x6e\x6d\x6b\x69\x57\x50\x69\x68\x6e\x61','\x57\x51\x6a\x4d\x57\x52\x31\x44\x57\x4f\x33\x64\x54\x47\x4e\x63\x52\x71','\x57\x35\x39\x62\x57\x50\x66\x2b\x64\x67\x71','\x57\x36\x4a\x64\x4c\x59\x74\x64\x56\x6d\x6b\x33','\x64\x53\x6b\x75\x57\x37\x64\x64\x50\x58\x4c\x2b\x57\x34\x6e\x66','\x57\x35\x39\x65\x57\x37\x5a\x63\x4d\x43\x6f\x48\x78\x65\x66\x48','\x57\x35\x35\x56\x57\x35\x75\x79','\x46\x6d\x6f\x75\x57\x36\x68\x63\x4e\x6d\x6f\x7a\x65\x62\x43'];_0x4c79=function(){return _0x341b4e;};return _0x4c79();}import{sanitizeBundle,summarizeLeaks}from'\x2e\x2f\x73\x61\x6e\x69\x74\x69\x7a\x65\x2e\x6a\x73';export class PublishRejectedError extends Error{[_0x17228f(0x1a3,'\x44\x36\x37\x50')];[_0x17228f(0x13b,'\x52\x56\x53\x40')];[_0x17228f(0x14e,'\x32\x4f\x25\x61')+_0x17228f(0x16b,'\x40\x5b\x5e\x6b')];[_0x17228f(0x128,'\x55\x28\x58\x5d')+'\x65'];constructor(_0x3c5ae5,_0x2ac317,_0x130757,_0x5396d0,_0x28b42f){const _0x2dd6af=_0x17228f;super(_0x2dd6af(0x17e,'\x50\x6b\x59\x38')+_0x3c5ae5+(_0x130757?'\x3a\x20'+_0x130757:'')),this[_0x2dd6af(0x19f,'\x28\x34\x72\x49')]=_0x3c5ae5,this[_0x2dd6af(0x110,'\x32\x47\x35\x36')]=_0x2ac317,this[_0x2dd6af(0x15d,'\x70\x6a\x51\x21')+_0x2dd6af(0x175,'\x59\x59\x4c\x56')]=_0x5396d0,this[_0x2dd6af(0x16c,'\x6a\x5d\x37\x5e')+'\x65']=_0x28b42f,this[_0x2dd6af(0x191,'\x41\x4b\x5d\x37')]='\x50\x75\x62\x6c\x69\x73\x68\x52'+_0x2dd6af(0x185,'\x6f\x6f\x50\x55')+_0x2dd6af(0x131,'\x75\x5e\x32\x4b');}}function envelopeToAgentEvent(_0x3bb4a7){const _0xa0af9f=_0x17228f,_0x2c2f31=_0x3bb4a7['\x74\x79\x70\x65']===_0xa0af9f(0x13e,'\x59\x59\x4c\x56')+_0xa0af9f(0x199,'\x25\x77\x2a\x73')&&_0x3bb4a7[_0xa0af9f(0xe5,'\x6f\x6f\x50\x55')+_0xa0af9f(0xfa,'\x25\x77\x2a\x73')]?_0x3bb4a7[_0xa0af9f(0x134,'\x25\x77\x2a\x73')+'\x6e\x63\x79\x4b\x65\x79']:_0x3bb4a7['\x69\x64'];return{'\x69\x64':_0x2c2f31,'\x74\x79\x70\x65':_0x3bb4a7[_0xa0af9f(0x13f,'\x55\x28\x58\x5d')]===_0xa0af9f(0x155,'\x75\x5e\x32\x4b')+_0xa0af9f(0x108,'\x42\x66\x6a\x4e')?'\x64\x6d':_0x3bb4a7[_0xa0af9f(0xee,'\x32\x47\x35\x36')],'\x70\x61\x79\x6c\x6f\x61\x64':_0x3bb4a7[_0xa0af9f(0x151,'\x67\x61\x37\x6c')],'\x70\x72\x69\x6f\x72\x69\x74\x79':_0xa0af9f(0x162,'\x32\x47\x35\x36'),'\x63\x72\x65\x61\x74\x65\x64\x41\x74':_0x3bb4a7['\x63\x72\x65\x61\x74\x65\x64\x41'+'\x74'],..._0x3bb4a7[_0xa0af9f(0x1a0,'\x26\x23\x52\x36')]==='\x70\x72\x6f\x78\x79\x5f\x74\x72'+'\x61\x63\x65'&&_0x3bb4a7['\x69\x64\x65\x6d\x70\x6f\x74\x65'+_0xa0af9f(0x190,'\x33\x4f\x4c\x35')]?{'\x72\x65\x66\x49\x64':_0x3bb4a7[_0xa0af9f(0x139,'\x68\x71\x68\x61')+_0xa0af9f(0x120,'\x4b\x6b\x49\x54')]}:{}};}function _0x2c7f(_0x40f5b5,_0x106454){_0x40f5b5=_0x40f5b5-(-0x1*0x1a2+0x4*0x7b2+-0x1c41);const _0x3ca713=_0x4c79();let _0x38ea33=_0x3ca713[_0x40f5b5];if(_0x2c7f['\x62\x42\x63\x49\x61\x61']===undefined){var _0x376479=function(_0x57804b){const _0x47f88f='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';let _0x564ba7='',_0x28cd5a='';for(let _0x507d9f=-0x13d*0x17+0x1fa4+0x1*-0x329,_0x5704e6,_0x544ba8,_0x17c3ac=-0x5*-0x628+0x3e0+-0x1154*0x2;_0x544ba8=_0x57804b['\x63\x68\x61\x72\x41\x74'](_0x17c3ac++);~_0x544ba8&&(_0x5704e6=_0x507d9f%(0x200c+0x8d*0xf+-0x5*0x80f)?_0x5704e6*(-0x1*0x1459+0x2640+-0x11a7)+_0x544ba8:_0x544ba8,_0x507d9f++%(-0x5*0x353+-0x6*0x62b+-0x1f*-0x1bb))?_0x564ba7+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](-0x1*0x8bf+-0x2b*-0x1+-0x81*-0x13&_0x5704e6>>(-(-0xc37+0x16e8+-0xaaf)*_0x507d9f&-0x115a+-0x2*-0x1298+-0x13d0)):-0x4*0x237+-0x19*0x18b+0x2f6f){_0x544ba8=_0x47f88f['\x69\x6e\x64\x65\x78\x4f\x66'](_0x544ba8);}for(let _0x301aff=-0x1*-0x1a6b+0x1fa2+-0x7*0x84b,_0x1352c2=_0x564ba7['\x6c\x65\x6e\x67\x74\x68'];_0x301aff<_0x1352c2;_0x301aff++){_0x28cd5a+='\x25'+('\x30\x30'+_0x564ba7['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x301aff)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x2*-0x9ad+-0xb17*0x1+0x1e81*0x1))['\x73\x6c\x69\x63\x65'](-(-0x1868+0x1*0x21da+-0x970));}return decodeURIComponent(_0x28cd5a);};const _0x1e21e0=function(_0x394854,_0x4e89e7){let _0x3858de=[],_0xc077ce=-0x14f*0x2+0x18f8+-0x165a,_0x1e89b1,_0x2b2d08='';_0x394854=_0x376479(_0x394854);let _0x35fdf3;for(_0x35fdf3=0x1*-0x770+-0x3*-0x7f0+-0x1060;_0x35fdf3<0x33c+0x1e1f*0x1+-0xac9*0x3;_0x35fdf3++){_0x3858de[_0x35fdf3]=_0x35fdf3;}for(_0x35fdf3=-0x1d82+0x17f8*-0x1+0x357a;_0x35fdf3<-0x149d+0x3b1*-0x2+0x1*0x1cff;_0x35fdf3++){_0xc077ce=(_0xc077ce+_0x3858de[_0x35fdf3]+_0x4e89e7['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x35fdf3%_0x4e89e7['\x6c\x65\x6e\x67\x74\x68']))%(-0x26c5+0x6e5+0x20e0),_0x1e89b1=_0x3858de[_0x35fdf3],_0x3858de[_0x35fdf3]=_0x3858de[_0xc077ce],_0x3858de[_0xc077ce]=_0x1e89b1;}_0x35fdf3=0x1643+-0x729+-0x1*0xf1a,_0xc077ce=-0x1f23+0x11cc+-0x5*-0x2ab;for(let _0x509558=0x494+0x1d35+-0x21c9;_0x509558<_0x394854['\x6c\x65\x6e\x67\x74\x68'];_0x509558++){_0x35fdf3=(_0x35fdf3+(-0x2*-0x382+0x1489+0x1*-0x1b8c))%(0x99b*0x3+0xdf*0x26+-0x3ceb*0x1),_0xc077ce=(_0xc077ce+_0x3858de[_0x35fdf3])%(-0x183c*-0x1+-0x254e+0xe12),_0x1e89b1=_0x3858de[_0x35fdf3],_0x3858de[_0x35fdf3]=_0x3858de[_0xc077ce],_0x3858de[_0xc077ce]=_0x1e89b1,_0x2b2d08+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](_0x394854['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x509558)^_0x3858de[(_0x3858de[_0x35fdf3]+_0x3858de[_0xc077ce])%(-0x221d+-0x1*-0x1175+0x11a8)]);}return _0x2b2d08;};_0x2c7f['\x69\x75\x65\x5a\x6d\x67']=_0x1e21e0,_0x2c7f['\x78\x57\x4d\x48\x4f\x52']={},_0x2c7f['\x62\x42\x63\x49\x61\x61']=!![];}const _0x26335a=_0x3ca713[-0x2*-0xeb5+0x5b9*-0x1+-0x17b1],_0x30263b=_0x40f5b5+_0x26335a,_0x1f7620=_0x2c7f['\x78\x57\x4d\x48\x4f\x52'][_0x30263b];return!_0x1f7620?(_0x2c7f['\x4d\x62\x77\x70\x73\x47']===undefined&&(_0x2c7f['\x4d\x62\x77\x70\x73\x47']=!![]),_0x38ea33=_0x2c7f['\x69\x75\x65\x5a\x6d\x67'](_0x38ea33,_0x106454),_0x2c7f['\x78\x57\x4d\x48\x4f\x52'][_0x30263b]=_0x38ea33):_0x38ea33=_0x1f7620,_0x38ea33;}export function makeHubBindings(_0x53935d,_0x55992a={}){const _0x23c89a=_0x17228f,_0x2bc4b2=_0x55992a[_0x23c89a(0x101,'\x53\x61\x68\x74')]??{},_0x40f5b5=_0x2bc4b2[_0x23c89a(0x164,'\x37\x41\x78\x53')]??!![],_0x106454=_0x2bc4b2[_0x23c89a(0x146,'\x6a\x5d\x37\x5e')]??(typeof process!==_0x23c89a(0x145,'\x76\x24\x31\x38')+'\x64'?process.env:{}),_0x3ca713=async(_0x38ea33,_0x376479)=>{const _0x211ba1=_0x23c89a;if(!_0x40f5b5)return _0x376479?_0x53935d[_0x211ba1(0x125,'\x41\x4b\x5d\x37')](_0x38ea33,_0x376479):_0x53935d[_0x211ba1(0x16f,'\x5e\x71\x77\x5e')](_0x38ea33);const _0x26335a=sanitizeBundle(_0x38ea33,{'\x65\x6e\x76':_0x106454,..._0x2bc4b2[_0x211ba1(0x169,'\x32\x47\x35\x36')]?{'\x6d\x6f\x64\x65':_0x2bc4b2['\x6d\x6f\x64\x65']}:{}});if(_0x26335a[_0x211ba1(0xf1,'\x5e\x71\x77\x5e')])throw new PublishRejectedError(_0x211ba1(0x15c,'\x47\x34\x63\x5b')+'\x63\x6b\x65\x64',!![],_0x211ba1(0xf0,'\x53\x61\x68\x74')+_0x211ba1(0x11c,'\x32\x47\x35\x36')+'\x65\x74\x65\x63\x74\x65\x64\x20'+_0x211ba1(0x152,'\x47\x34\x63\x5b')+_0x211ba1(0x1a5,'\x55\x28\x58\x5d')+_0x211ba1(0x178,'\x21\x69\x59\x4c')+_0x211ba1(0x19d,'\x50\x6b\x59\x38')+'\x72\x79\x61\x62\x6c\x65\x29\x3a'+'\x20'+summarizeLeaks(_0x26335a[_0x211ba1(0x17d,'\x68\x71\x68\x61')]));const _0x30263b=_0x376479?await _0x53935d[_0x211ba1(0x10c,'\x74\x39\x25\x75')](_0x26335a[_0x211ba1(0x15f,'\x37\x41\x78\x53')],_0x376479):await _0x53935d[_0x211ba1(0x167,'\x53\x61\x68\x74')](_0x26335a[_0x211ba1(0x183,'\x70\x6a\x51\x21')]),_0x1f7620=contentAssetIds(_0x26335a[_0x211ba1(0x19c,'\x5e\x71\x77\x5e')]);return _0x1f7620?{..._0x30263b,'\x73\x75\x62\x6d\x69\x74\x74\x65\x64\x41\x73\x73\x65\x74\x49\x64\x73':_0x1f7620}:_0x30263b;};return{'\x61\x73\x50\x72\x6f\x78\x79\x48\x61\x6e\x64\x6c\x65\x72'(){const _0x5668fe=_0x23c89a;if(_0x5668fe(0x147,'\x6f\x6f\x50\x55')!=='\x54\x6a\x76\x62\x45'){const _0x57804b=_0x5b6008[_0x5668fe(0x160,'\x52\x56\x53\x40')](_0x47f88f=>_0x47f88f['\x61\x73\x73\x65\x74\x5f\x69\x64']);return _0x57804b[_0x5668fe(0x109,'\x76\x24\x31\x38')](_0x564ba7=>typeof _0x564ba7==='\x73\x74\x72\x69\x6e\x67'&&/^sha256:[a-f0-9]{64}$/i[_0x5668fe(0xf8,'\x58\x36\x63\x40')](_0x564ba7))?_0x57804b:_0x11e682;}else return async _0x28cd5a=>{const _0x220f65=_0x5668fe;if(_0x220f65(0x197,'\x32\x47\x35\x36')!==_0x220f65(0xfc,'\x75\x5e\x32\x4b'))switch(_0x28cd5a[_0x220f65(0x18e,'\x28\x34\x72\x49')]){case _0x220f65(0x159,'\x67\x61\x37\x6c')+_0x220f65(0x113,'\x6a\x5d\x37\x5e'):{if(_0x220f65(0x135,'\x33\x4f\x4c\x35')!==_0x220f65(0x10f,'\x33\x4f\x4c\x35')){const _0x507d9f=_0x28cd5a[_0x220f65(0xec,'\x46\x34\x76\x24')],_0x5704e6=Array[_0x220f65(0x181,'\x75\x5e\x32\x4b')](_0x507d9f['\x61\x73\x73\x65\x74\x73'])?_0x507d9f[_0x220f65(0x10e,'\x40\x5b\x5e\x6b')]:[_0x507d9f],_0x544ba8=await _0x3ca713(_0x5704e6,{'\x69\x64\x65\x6d\x70\x6f\x74\x65\x6e\x63\x79\x4b\x65\x79':_0x28cd5a[_0x220f65(0x193,'\x52\x56\x53\x40')+_0x220f65(0x179,'\x6f\x6f\x50\x55')]});if(_0x544ba8[_0x220f65(0x129,'\x54\x4e\x63\x74')]!==_0x220f65(0x115,'\x48\x79\x7a\x69'))throw new PublishRejectedError(_0x544ba8[_0x220f65(0x174,'\x38\x47\x21\x36')+'\x6e']?.[_0x220f65(0x12f,'\x33\x4f\x4c\x35')]??_0x544ba8[_0x220f65(0x176,'\x32\x47\x35\x36')],_0x544ba8['\x74\x65\x72\x6d\x69\x6e\x61\x6c']??!![],_0x544ba8[_0x220f65(0x165,'\x47\x34\x63\x5b')],_0x544ba8[_0x220f65(0xf4,'\x59\x59\x4c\x56')+'\x6e']?.[_0x220f65(0x168,'\x4f\x39\x6d\x37')+_0x220f65(0x170,'\x28\x34\x72\x49')]);return _0x544ba8;}else throw new _0x267ff4(_0x4fac15[_0x220f65(0x111,'\x5a\x21\x4e\x5e')+'\x6e']?.[_0x220f65(0x180,'\x59\x59\x4c\x56')]??_0x16e2b3[_0x220f65(0x18f,'\x5e\x53\x67\x4b')],_0x45a5fe[_0x220f65(0x18d,'\x44\x36\x37\x50')]??!![],_0x119cb2[_0x220f65(0x124,'\x30\x29\x52\x39')],_0x20c7cd[_0x220f65(0x148,'\x26\x23\x52\x36')+'\x6e']?.[_0x220f65(0xfe,'\x48\x79\x7a\x69')+_0x220f65(0xeb,'\x64\x37\x41\x26')]);}case _0x220f65(0x143,'\x74\x39\x25\x75')+'\x69\x6d':{const _0x301aff=_0x28cd5a[_0x220f65(0xf5,'\x32\x47\x35\x36')];return _0x53935d['\x74\x61\x73\x6b']['\x63\x6c\x61\x69\x6d'](firstString(_0x301aff[_0x220f65(0x18c,'\x68\x71\x68\x61')],_0x301aff[_0x220f65(0x157,'\x65\x23\x6a\x33')])??'');}case _0x220f65(0x142,'\x74\x39\x25\x75')+_0x220f65(0xf2,'\x4b\x6b\x49\x54'):{if(_0x220f65(0x14a,'\x4f\x39\x6d\x37')!==_0x220f65(0x13a,'\x58\x36\x63\x40')){const _0x1352c2=_0x28cd5a['\x70\x61\x79\x6c\x6f\x61\x64'],_0x394854=firstString(_0x1352c2[_0x220f65(0x14b,'\x30\x29\x52\x39')],_0x1352c2[_0x220f65(0x13c,'\x48\x79\x7a\x69')]),_0x4e89e7=firstString(_0x1352c2[_0x220f65(0x106,'\x55\x28\x58\x5d')],_0x1352c2[_0x220f65(0x123,'\x4b\x6b\x49\x54')]),_0x3858de=firstString(_0x1352c2[_0x220f65(0x166,'\x6f\x6f\x50\x55')],_0x1352c2[_0x220f65(0x10a,'\x54\x4e\x63\x74')]);if(!_0x3858de)throw new PublishRejectedError(_0x220f65(0x1a2,'\x5e\x53\x67\x4b')+_0x220f65(0x127,'\x33\x70\x40\x4d')+_0x220f65(0x16a,'\x6f\x6f\x50\x55'),!![],'\x63\x6c\x61\x69\x6d\x5f\x69\x64'+_0x220f65(0x14f,'\x33\x70\x40\x4d')+_0x220f65(0x16d,'\x33\x4f\x4c\x35')+_0x220f65(0x11a,'\x40\x5b\x5e\x6b')+_0x220f65(0x13d,'\x4f\x39\x6d\x37')+_0x220f65(0x11e,'\x5e\x71\x77\x5e')+_0x220f65(0x177,'\x4f\x39\x6d\x37')+'\x75\x65');const _0xc077ce=_0x394854&&_0x4e89e7?{'\x74\x61\x73\x6b\x49\x64':_0x394854,'\x61\x73\x73\x65\x74\x49\x64':_0x4e89e7}:undefined;return _0x53935d[_0x220f65(0x1a1,'\x32\x4f\x25\x61')][_0x220f65(0x14d,'\x32\x4f\x25\x61')](_0x3858de,_0x1352c2[_0x220f65(0xfb,'\x5e\x54\x55\x6c')],_0xc077ce);}else{const _0x2b2d08=_0x56ccd5[_0x220f65(0x15a,'\x36\x38\x24\x4e')]===_0x220f65(0x19e,'\x6f\x6f\x50\x55')+_0x220f65(0xf3,'\x70\x34\x53\x53')&&_0x39c50d[_0x220f65(0x105,'\x32\x4f\x25\x61')+_0x220f65(0x16e,'\x74\x5b\x6b\x38')]?_0x14665e[_0x220f65(0x139,'\x68\x71\x68\x61')+_0x220f65(0x107,'\x32\x4f\x25\x61')]:_0x52e894['\x69\x64'];return{'\x69\x64':_0x2b2d08,'\x74\x79\x70\x65':_0x4c7791[_0x220f65(0x10b,'\x25\x2a\x63\x53')]===_0x220f65(0x133,'\x70\x34\x53\x53')+_0x220f65(0x141,'\x32\x4f\x25\x61')?'\x64\x6d':_0x594140[_0x220f65(0x187,'\x64\x33\x59\x78')],'\x70\x61\x79\x6c\x6f\x61\x64':_0x1b6e0f[_0x220f65(0xff,'\x58\x36\x63\x40')],'\x70\x72\x69\x6f\x72\x69\x74\x79':_0x220f65(0x1a7,'\x33\x4f\x4c\x35'),'\x63\x72\x65\x61\x74\x65\x64\x41\x74':_0x16daff[_0x220f65(0x186,'\x4b\x6b\x49\x54')+'\x74'],..._0x5e5f9c[_0x220f65(0xfd,'\x52\x56\x53\x40')]===_0x220f65(0x195,'\x36\x38\x24\x4e')+_0x220f65(0x11f,'\x41\x4b\x5d\x37')&&_0x3c374f[_0x220f65(0x12d,'\x74\x39\x25\x75')+_0x220f65(0x140,'\x25\x2a\x63\x53')]?{'\x72\x65\x66\x49\x64':_0x18d2a6[_0x220f65(0xef,'\x65\x47\x56\x40')+_0x220f65(0x17b,'\x76\x24\x31\x38')]}:{}};}}default:await _0x53935d[_0x220f65(0x12c,'\x37\x41\x78\x53')][_0x220f65(0x118,'\x33\x4f\x4c\x35')](envelopeToAgentEvent(_0x28cd5a));return{'\x70\x75\x73\x68\x65\x64':!![]};}else{const _0x509558=_0x52a555[_0x220f65(0x17f,'\x38\x47\x21\x36')],_0x338fb4=_0x1e8823(_0x509558[_0x220f65(0x198,'\x41\x4b\x5d\x37')],_0x509558[_0x220f65(0x157,'\x65\x23\x6a\x33')]),_0x399490=_0x2def65(_0x509558[_0x220f65(0xe6,'\x36\x38\x24\x4e')],_0x509558[_0x220f65(0x119,'\x64\x33\x59\x78')]),_0x4e252b=_0x4fee7a(_0x509558['\x63\x6c\x61\x69\x6d\x49\x64'],_0x509558[_0x220f65(0xe7,'\x33\x70\x40\x4d')]);if(!_0x4e252b)throw new _0x4358b5(_0x220f65(0x15b,'\x74\x39\x25\x75')+'\x74\x61\x73\x6b\x5f\x63\x6f\x6d'+_0x220f65(0x11d,'\x47\x34\x63\x5b'),!![],'\x63\x6c\x61\x69\x6d\x5f\x69\x64'+'\x20\x69\x73\x20\x72\x65\x71\x75'+_0x220f65(0xea,'\x47\x34\x63\x5b')+'\x61\x75\x73\x65\x20\x74\x61\x73'+'\x6b\x20\x63\x6c\x61\x69\x6d\x20'+_0x220f65(0x132,'\x65\x47\x56\x40')+_0x220f65(0x150,'\x50\x6b\x59\x38')+'\x75\x65');const _0x1814b6=_0x338fb4&&_0x399490?{'\x74\x61\x73\x6b\x49\x64':_0x338fb4,'\x61\x73\x73\x65\x74\x49\x64':_0x399490}:_0x3a521d;return _0x1d6e5c[_0x220f65(0x102,'\x65\x47\x56\x40')][_0x220f65(0xe9,'\x4f\x39\x6d\x37')](_0x4e252b,_0x509558[_0x220f65(0x173,'\x25\x77\x2a\x73')],_0x1814b6);}};},'\x61\x73\x41\x73\x73\x65\x74\x54\x72\x61\x6e\x73\x70\x6f\x72\x74'(){const _0xbdfc76=_0x23c89a;if('\x54\x57\x52\x4f\x47'===_0xbdfc76(0x137,'\x25\x2a\x63\x53'))return{'\x70\x75\x74\x52\x65\x6d\x6f\x74\x65':async _0x10c361=>{const _0x5bcb4d=_0xbdfc76,{record:_0x57ca4a}=normalizeForPut(_0x10c361),_0x39f065=await _0x3ca713([_0x57ca4a]);return{'\x73\x74\x6f\x72\x65\x64':_0x39f065[_0x5bcb4d(0x121,'\x63\x52\x75\x55')]===_0x5bcb4d(0x182,'\x58\x36\x63\x40')};},'\x67\x65\x74\x52\x65\x6d\x6f\x74\x65':async _0x21ecf4=>{const _0xafce27=_0xbdfc76,_0x29ddf6=await _0x53935d[_0xafce27(0x116,'\x6f\x6f\x50\x55')]({'\x6c\x69\x6d\x69\x74':0x2710});return _0x29ddf6[_0xafce27(0x14c,'\x59\x59\x4c\x56')](_0x324307=>_0x324307[_0xafce27(0x112,'\x4d\x40\x33\x5b')]===_0x21ecf4)??null;},'\x73\x65\x61\x72\x63\x68\x52\x65\x6d\x6f\x74\x65':_0x519d5f=>_0x53935d['\x73\x65\x61\x72\x63\x68'](_0x519d5f),'\x6c\x69\x73\x74\x52\x65\x6d\x6f\x74\x65':(_0x2f05d0,_0x14f08a)=>_0x53935d[_0xbdfc76(0x117,'\x40\x5b\x5e\x6b')]({..._0x2f05d0?{'\x6b\x69\x6e\x64':_0x2f05d0}:{},'\x6c\x69\x6d\x69\x74':_0x14f08a})};else throw new _0x4ef7cb(_0xbdfc76(0x161,'\x59\x59\x4c\x56')+_0xbdfc76(0x149,'\x70\x34\x53\x53'),!![],'\x73\x65\x6e\x73\x69\x74\x69\x76'+_0xbdfc76(0x154,'\x52\x56\x53\x40')+_0xbdfc76(0x17c,'\x21\x69\x59\x4c')+_0xbdfc76(0x136,'\x64\x37\x41\x26')+_0xbdfc76(0x196,'\x6a\x5d\x37\x5e')+_0xbdfc76(0xf9,'\x68\x71\x68\x61')+_0xbdfc76(0x11b,'\x64\x37\x41\x26')+'\x72\x79\x61\x62\x6c\x65\x29\x3a'+'\x20'+_0x270aa7(_0x455c8b[_0xbdfc76(0x18b,'\x65\x47\x56\x40')]));}};}function contentAssetIds(_0x4ccaa8){const _0x6aad1f=_0x17228f,_0x6646f0=_0x4ccaa8[_0x6aad1f(0x114,'\x64\x33\x59\x78')](_0x4d2c1b=>_0x4d2c1b[_0x6aad1f(0x189,'\x67\x61\x37\x6c')]);return _0x6646f0[_0x6aad1f(0x15e,'\x74\x39\x25\x75')](_0x1c0481=>typeof _0x1c0481===_0x6aad1f(0x172,'\x5e\x71\x77\x5e')&&/^sha256:[a-f0-9]{64}$/i['\x74\x65\x73\x74'](_0x1c0481))?_0x6646f0:undefined;}function firstString(..._0x121f74){const _0x42a476=_0x17228f;for(const _0x56695f of _0x121f74){if(_0x42a476(0x153,'\x28\x34\x72\x49')!==_0x42a476(0x184,'\x5e\x54\x55\x6c'))throw new _0x55912d('\x69\x6e\x76\x61\x6c\x69\x64\x5f'+_0x42a476(0x192,'\x33\x4f\x4c\x35')+_0x42a476(0x130,'\x74\x39\x25\x75'),!![],_0x42a476(0xf7,'\x40\x5b\x5e\x6b')+'\x20\x69\x73\x20\x72\x65\x71\x75'+_0x42a476(0x12e,'\x25\x2a\x63\x53')+_0x42a476(0x194,'\x52\x56\x53\x40')+_0x42a476(0x144,'\x30\x29\x52\x39')+_0x42a476(0x17a,'\x52\x56\x53\x40')+_0x42a476(0x163,'\x53\x61\x68\x74')+'\x75\x65');else{if(typeof _0x56695f!==_0x42a476(0x126,'\x65\x23\x6a\x33'))continue;const _0x1c59ea=_0x56695f[_0x42a476(0x100,'\x67\x61\x37\x6c')]();if(_0x1c59ea)return _0x1c59ea;}}return undefined;}
@@ -16,6 +16,11 @@ export interface PublishReceipt {
16
16
  assetIds?: string[];
17
17
  /** 终态标记: true=不可重试(reject/quarantine/402), SyncEngine 不得 incrementRetry(money-safety risk). */
18
18
  terminal?: boolean;
19
+ /** Adapter-owned structured rejection metadata; callers must not infer policy from free-form `reason`. */
20
+ rejection?: {
21
+ code: 'invalid_request' | 'credit_shortage' | 'node_unauthorized' | 'not_found' | 'duplicate' | 'invalid_payload' | 'cooldown' | 'hub_rejected';
22
+ retryAfterMs?: number;
23
+ };
19
24
  /** M8-1: 公版经济侧只读回执(core 不解释经济语义, 仅透传供观测/UI). private hub 多为空. */
20
25
  economic?: {
21
26
  creditShortage?: boolean;
@@ -25,6 +30,10 @@ export interface PublishReceipt {
25
30
  gdiScore?: number;
26
31
  };
27
32
  }
33
+ export interface PublishOptions {
34
+ /** Stable, non-blank per logical publish so adapters can make transport retries idempotent. */
35
+ idempotencyKey?: string;
36
+ }
28
37
  /** 资产查询. 复用 assetstore SearchQuery, 不发明第二套查询 DSL. */
29
38
  export type HubQuery = SearchQuery;
30
39
  /** task 子系统事件(订阅流元素). 公版含经济上下文(bounty/credit), 私有仅 workflow. */
@@ -111,6 +120,75 @@ export interface ReuseResultReceipt {
111
120
  reason?: string;
112
121
  id?: string;
113
122
  }
123
+ export type LearningAssetType = 'memory' | 'skill' | 'playbook' | 'eval';
124
+ export type LearningAssetStatus = 'pending_review' | 'active' | 'disabled' | 'stale' | 'archived';
125
+ export type LearningAssetEffectiveStatus = LearningAssetStatus | 'expired';
126
+ export type LearningAssetUsageOutcome = ReuseResultOutcome;
127
+ export interface LearningAssetOwner {
128
+ node_id?: string | null;
129
+ user_id?: string | null;
130
+ org_id?: string | null;
131
+ workspace_id?: string | null;
132
+ }
133
+ /** Hub-owned learning asset record. Core keeps it opaque; adapters own wire shape and auth. */
134
+ export interface LearningAssetRecord {
135
+ asset_id: string;
136
+ type: LearningAssetType;
137
+ source_packet_id?: string;
138
+ scope?: string[];
139
+ owner?: LearningAssetOwner;
140
+ title?: string;
141
+ summary?: string;
142
+ confidence?: number;
143
+ last_used_at?: string | null;
144
+ usage_count?: number;
145
+ success_count?: number;
146
+ success_rate?: number;
147
+ expires_at?: string | null;
148
+ conflicts_with?: string[];
149
+ status?: LearningAssetStatus;
150
+ effective_status?: LearningAssetEffectiveStatus;
151
+ status_reason?: string;
152
+ provenance?: Record<string, unknown>;
153
+ payload?: Record<string, unknown>;
154
+ created_at?: string | null;
155
+ updated_at?: string | null;
156
+ [k: string]: unknown;
157
+ }
158
+ export interface LearningAssetListOptions {
159
+ type?: LearningAssetType;
160
+ scope?: readonly string[];
161
+ status?: LearningAssetStatus | readonly LearningAssetStatus[];
162
+ includeExpired?: boolean;
163
+ includePayload?: boolean;
164
+ limit?: number;
165
+ }
166
+ export interface LearningAssetListResult {
167
+ assets: LearningAssetRecord[];
168
+ limit: number;
169
+ reason?: string;
170
+ }
171
+ export interface LearningAssetUsageReport {
172
+ assetId?: string;
173
+ usedAssetIds?: readonly string[];
174
+ outcome: LearningAssetUsageOutcome;
175
+ score?: number;
176
+ sourceEventId: string;
177
+ reason?: string;
178
+ }
179
+ export interface LearningAssetUsageResultRow {
180
+ asset_id: string;
181
+ recorded: boolean;
182
+ duplicated?: boolean;
183
+ error?: string;
184
+ [k: string]: unknown;
185
+ }
186
+ /** Learning-asset usage reporting is best-effort; failures must not break runtime solve paths. */
187
+ export interface LearningAssetUsageReceipt {
188
+ recorded: boolean;
189
+ reason?: string;
190
+ results: LearningAssetUsageResultRow[];
191
+ }
114
192
  /**
115
193
  * Pre-publish dry-run result. The hub runs the same hub-side quality + content-safety
116
194
  * gate as publish but stores nothing and charges no credits, so an agent can check a
@@ -141,6 +219,10 @@ export interface RecipeCreateRequest {
141
219
  pricePerExecution?: number;
142
220
  currency?: string;
143
221
  maxConcurrent?: number;
222
+ idempotencyKey?: string;
223
+ }
224
+ export interface RecipePublishOptions {
225
+ idempotencyKey?: string;
144
226
  }
145
227
  export interface RecipeReceipt {
146
228
  recipeId?: string;
@@ -159,11 +241,11 @@ export interface RecipeExpressionReceipt extends RecipeReceipt {
159
241
  /** Optional Hub recipe/DNA capability. Core stays wire-agnostic; adapters own REST shape. */
160
242
  export interface RecipeCapability {
161
243
  create(request: RecipeCreateRequest): Promise<RecipeReceipt>;
162
- publish(recipeId: string): Promise<RecipeReceipt>;
244
+ publish(recipeId: string, options?: RecipePublishOptions): Promise<RecipeReceipt>;
163
245
  get(recipeId: string): Promise<RecipeFetchReceipt>;
164
246
  express(recipeId: string, request?: RecipeExpressRequest): Promise<RecipeExpressionReceipt>;
165
247
  }
166
- export type HubCapabilityName = 'publish' | 'fetch' | 'search' | 'task' | 'mailbox' | 'auth' | 'audit' | 'air_gap' | 'tenant_isolation' | 'marketplace' | 'economy' | 'questions' | 'recipes' | 'agent_directory';
248
+ export type HubCapabilityName = 'publish' | 'fetch' | 'search' | 'task' | 'mailbox' | 'auth' | 'audit' | 'air_gap' | 'tenant_isolation' | 'marketplace' | 'economy' | 'questions' | 'recipes' | 'agent_directory' | 'learning_assets';
167
249
  /** hub 能力清单(可选). core 据此动态适配 UI/行为, "按需耦合". */
168
250
  export interface HubManifest {
169
251
  capabilities: HubCapabilityName[] | string[];
@@ -201,6 +283,7 @@ export interface HttpRequestLike {
201
283
  method: string;
202
284
  path: string;
203
285
  body?: string;
286
+ signal?: AbortSignal;
204
287
  }
205
288
  /**
206
289
  * Pluggable auth. Example implementations: public OAuth device token / Ed25519 keypair / enterprise SSO (OIDC/LDAP).
@@ -222,7 +305,7 @@ export interface HubCapability {
222
305
  * 异步发布. 公版 /a2a/publish 收 **bundle**[Gene,Capsule,(EvolutionEvent)](一个 cycle 的产物一起发, +GDI);
223
306
  * 传单资产=[asset]。core 已 normalizeForPut(算/校验 asset_id), hub 做经济/治理/质量 gate。
224
307
  */
225
- publish(bundle: AssetRecord[]): Promise<PublishReceipt>;
308
+ publish(bundle: AssetRecord[], options?: PublishOptions): Promise<PublishReceipt>;
226
309
  /** 拉取资产. hub 侧排序/scope(公版 GDI, 私有 RBAC); core 不重排. */
227
310
  fetch(query: HubQuery): Promise<AssetRecord[]>;
228
311
  /** 搜索资产. 与 fetch 同 shape, 差异在 hub 侧召回策略. */
@@ -231,6 +314,10 @@ export interface HubCapability {
231
314
  fetchAssetById?(assetId: string): Promise<AssetRecord | null>;
232
315
  /** 可选: 报告某个资产被复用后的结果. PHub/enterprise adapter 实现; 不支持时 runtime 应明确降级. */
233
316
  recordReuseResult?(report: ReuseResultReport): Promise<ReuseResultReceipt>;
317
+ /** 可选: 列出 hub 端 runtime learning assets. Missing means the adapter does not support this MVP surface. */
318
+ listLearningAssets?(options?: LearningAssetListOptions): Promise<LearningAssetListResult>;
319
+ /** 可选: 上报 learning asset 使用结果. Best-effort; failures must never break solve paths. */
320
+ recordLearningAssetUsage?(report: LearningAssetUsageReport): Promise<LearningAssetUsageReceipt>;
234
321
  /**
235
322
  * 可选: 发布前 dry-run 校验(公版 POST /a2a/validate). 跑与 publish 相同的 hub 端质量门禁 + 内容安全扫描,
236
323
  * 但不落库、不计费; 经由 Proxy 暴露时调用方需先执行与 publish 相同的客户端脱敏/泄漏拦截.
@@ -1 +1 @@
1
- export {};
1
+ export{};