| 34 | }); |
| 35 | |
| 36 | function baseStubs() { |
| 37 | mockMods['questionGenerator'] = { generateQuestions: () => [] }; |
| 38 | mockMods['issueReporter'] = { maybeReportIssue: async () => {} }; |
| 39 | mockMods['taskReceiver'] = { |
| 40 | fetchTasks: async () => ({ tasks: [], questions_created: [] }), |
| 41 | selectBestTask: () => null, |
| 42 | claimTask: async () => false, |
| 43 | taskToSignalsWithPrivacy: () => [], |
| 44 | estimateCommitmentDeadline: () => null, |
| 45 | }; |
| 46 | mockMods['a2aProtocol'] = { |
| 47 | getNodeId: () => 'node-1', |
| 48 | consumeOverdueTasks: () => [], |
| 49 | consumeHubEvents: () => [], |
| 50 | consumeAvailableWork: () => [], |
| 51 | }; |
| 52 | mockMods['memoryGraph'] = { tryReadMemoryGraphEvents: () => [] }; |
| 53 | mockMods['validator'] = { isValidatorEnabled: () => false, runValidatorCycle: async () => ({}) }; |
| 54 | mockMods['featureFlags'] = { writeFeatureFlag: () => true }; |
| 55 | } |
| 56 | |
| 57 | function buildCtx(overrides) { |
| 58 | return { |