from pathlib import Path p=Path('C:/kefu/wechat_rpa/test_knowledge.py');s=p.read_text(encoding='utf-8');s=s.replace(" job = self.start_job(engine='model', max_model_calls=1)"," with mock.patch('knowledge_models.resolve_model', side_effect=lambda db, options: options.update(model_provider_id='test-model')):\n job = self.start_job(engine='model', max_model_calls=1)");p.write_text(s,encoding='utf-8',newline='\n') p=Path('C:/kefu/admin-web/apps/web-antd/src/views/knowledge/center.vue');s=p.read_text(encoding='utf-8').replace('function configureJob(job: KnowledgeJob) { configJob.value = job; configOpen.value = true; }',"function configureJob(jobId: string) { configJob.value = jobs.value.find((job) => job.id === jobId) || null; configOpen.value = !!configJob.value; }").replace('@click="configureJob(record)"','@click="configureJob(record.id)"');p.write_text(s,encoding='utf-8',newline='\n') p=Path('C:/kefu/admin-web/apps/web-antd/src/views/knowledge/batch.test.ts');s=p.read_text(encoding='utf-8').replace(" it('does not approve", " it('only permits deletion of rejected knowledge', () => {\n expect(actionProblem(item('a', 'rejected'), 'delete')).toBe('');\n for (const status of ['draft', 'approved', 'published', 'stale', 'disabled']) {\n expect(actionProblem(item('a', status), 'delete')).toBeTruthy();\n }\n });\n it('does not approve");p.write_text(s,encoding='utf-8',newline='\n')