repowiki-metadata.json 242 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090
  1. {
  2. "wiki_repo": {
  3. "id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  4. "name": "zsjz-ai",
  5. "progress_status": "completed",
  6. "wiki_present_status": "COMPLETED",
  7. "recovery_checkpoint": "wiki_generation_completed",
  8. "last_commit_id": "40b9d70f24ec9a84b3fb73eb5db0c27d5f7ea60d",
  9. "last_commit_update": "2026-10-28T07:55:29Z",
  10. "gmt_create": "2026-10-28T07:55:29Z",
  11. "gmt_modified": "2026-10-28T07:55:29Z",
  12. "extend_info": "{\"language\":\"zh\",\"active\":true,\"branch\":\"dev_4\"}"
  13. },
  14. "wiki_catalogs": [
  15. {
  16. "id": "156aa516-49d6-4670-b3cf-453dbd239227",
  17. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  18. "name": "网关管理接口",
  19. "description": "gateway-admin-api",
  20. "prompt": "创建清鉴 AI 调查工具网关管理接口的 API 文档,覆盖 AdminController 暴露的 REST 接口。说明服务注册、节点增删改查、状态查看等接口的 HTTP 方法、URL 模式、请求参数、响应体结构和错误码。说明这些接口由运维或部署脚本调用,用于维护 StickyRouteFilter 使用的 gateway_service 与 gateway_node 数据。补充认证方式(通常绕过 x-token 校验)、跨域策略、限流和访问控制建议。给出 curl 示例,并说明当节点 DOWN 时客户端返回 503 的行为如何排查。",
  21. "progress_status": "completed",
  22. "dependent_files": "ai-gateway/src/main/java/com/zsjz/gateway/admin/AdminController.java",
  23. "gmt_create": "2026-10-28T07:55:29Z",
  24. "gmt_modified": "2026-10-28T07:55:29Z",
  25. "parent_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  26. "layer_level": 1,
  27. "kk_dependent_files": [
  28. "ai-gateway/src/main/java/com/zsjz/gateway/admin/AdminController.java"
  29. ]
  30. },
  31. {
  32. "id": "353e0550-ef39-4028-9f2f-c3733cbe4fcc",
  33. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  34. "name": "Sa-Token 认证与会话管理",
  35. "description": "sa-token-auth",
  36. "prompt": "编写 Sa-Token 认证与会话管理的详细文档。说明后端如何初始化 Sa-Token、用户登录后 token 的生成与存储方式,以及前端如何通过 x-token 携带会话访问后端接口。解释登录前校验账号是否正在使用的逻辑,账号被顶下线/踢下线后如何释放其全部案件数据源,以及 Gateway 中如何解析并透传 token。包含典型登录请求、会话失效处理、重复登录冲突的处理流程,并提供常见问题排查方法:token 不一致、401/403、账号被顶下线等。",
  37. "progress_status": "completed",
  38. "dependent_files": "ai-server/pom.xml,ai-gateway/pom.xml",
  39. "gmt_create": "2026-10-28T07:55:29Z",
  40. "gmt_modified": "2026-10-28T07:55:29Z",
  41. "parent_id": "c77f0da0-55bc-4f69-9e32-f4aca699b57c",
  42. "layer_level": 1,
  43. "kk_dependent_files": [
  44. "ai-server/pom.xml",
  45. "ai-gateway/pom.xml"
  46. ]
  47. },
  48. {
  49. "id": "4096358f-33de-4fc0-96f5-52e05a503884",
  50. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  51. "name": "代码风格与规范",
  52. "description": "coding-standards",
  53. "prompt": "创建清鉴 AI 调查工具的代码风格与规范文档。说明 Java、TypeScript/Vue、SQL、Shell/Batch 的命名约定、目录组织、注释和格式化规则。重点解释前端 Prettier、ESLint、Stylelint 配置及其忽略规则,以及 Electron 主进程、preload、渲染进程的代码边界。给出后端 Spring Boot 模块划分、controller/service/mapper/entity 的组织方式,MyBatis-Plus 实体与 SQL 脚本编写约定。提供具体示例:一个新增后端模块的包结构、一个 Vue 组件的写法、一条建表 SQL 的格式。补充常见违规问题和自动修复命令。",
  54. "progress_status": "completed",
  55. "dependent_files": "ai-electron/frontend/.prettierrc.mjs,ai-electron/frontend/eslint.config.mjs,ai-electron/frontend/stylelint.config.mjs,ai-electron/frontend/.editorconfig,ai-electron/frontend/.prettierignore,ai-electron/frontend/.stylelintignore",
  56. "gmt_create": "2026-10-28T07:55:29Z",
  57. "gmt_modified": "2026-10-28T07:55:29Z",
  58. "parent_id": "922749ea-6307-428f-bfd8-4feb065746a6",
  59. "layer_level": 1,
  60. "kk_dependent_files": [
  61. "ai-electron/frontend/.prettierrc.mjs",
  62. "ai-electron/frontend/eslint.config.mjs",
  63. "ai-electron/frontend/stylelint.config.mjs",
  64. "ai-electron/frontend/.editorconfig",
  65. "ai-electron/frontend/.prettierignore",
  66. "ai-electron/frontend/.stylelintignore"
  67. ]
  68. },
  69. {
  70. "id": "47bd7bc4-2fae-423e-971a-778154ccb8e0",
  71. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  72. "name": "项目概览",
  73. "description": "project-overview",
  74. "prompt": "为清鉴 AI 调查工具创建项目概览文档。说明产品的核心目标、适用场景(公安/审计/风控调查)、系统边界与部署形态(Electron 桌面客户端 + Spring Cloud Gateway + Spring Boot 多模块后端)。解释整体架构:前端 Vue 3 + Electron,网关负责粘性路由,后端按业务域拆分为 agent、aiclean、knowledge、graph、person、call、trans、track、govern、search、dm、otg、external 等模块,数据层使用 PostgreSQL/pgvector、Redis、DuckDB。给出从启动客户端到发起 Agent 对话、导入清洗数据、查看图谱与业务查询的高层流程图。面向初学者解释关键概念(Agent、RAG、pgvector、粘性路由、许可证),同时为有经验的开发者提供模块关系图和扩展点概览。使用代码库中的术语,避免虚构未实现功能。",
  75. "progress_status": "completed",
  76. "dependent_files": "readme.md,pom.xml,ai-electron/package.json,ai-server/pom.xml,ai-gateway/pom.xml",
  77. "gmt_create": "2026-10-28T07:55:29Z",
  78. "gmt_modified": "2026-10-28T07:55:29Z",
  79. "kk_dependent_files": [
  80. "readme.md",
  81. "pom.xml",
  82. "ai-electron/package.json",
  83. "ai-server/pom.xml",
  84. "ai-gateway/pom.xml"
  85. ]
  86. },
  87. {
  88. "id": "4980a173-ddc7-4a67-841d-a8708fe3d5dc",
  89. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  90. "name": "知识库管理",
  91. "description": "knowledge-base-management",
  92. "prompt": "创建知识库管理功能的详细文档。说明知识库的内置库与自建库模型、权限边界(管理员 vs 普通用户)、创建/编辑/删除流程,以及知识库与 Agent/RAG Schema Catalog、清洗模板之间的关联关系。重点解释后端如何按登录用户过滤知识库列表、对 is_builtin 字段做双重拒绝保护、级联清理文档与向量索引并解绑引用该知识库的方案。给出创建知识库、列出我的知识库、绑定/解绑知识库的 API 示例和前端交互流程。补充知识库命名规范、容量限制、并发操作安全、事务一致性和常见问题排查方法。",
  93. "progress_status": "completed",
  94. "dependent_files": "ai-server/src/main/java/com/zsjz/ai/module/knowledge/controller/KnowledgeBaseController.java,ai-server/src/main/java/com/zsjz/ai/module/knowledge/service/KnowledgeBaseService.java,ai-server/src/main/java/com/zsjz/ai/module/knowledge/entity/KnowledgeBase.java,ai-server/src/main/java/com/zsjz/ai/module/knowledge/mapper/KnowledgeBaseMapper.java,ai-electron/frontend/src/ai/views/aiKnowledge/index.vue,ai-electron/frontend/src/ai/components/KnowledgeDocModal.ts",
  95. "gmt_create": "2026-10-28T07:55:29Z",
  96. "gmt_modified": "2026-10-28T07:55:29Z",
  97. "parent_id": "fde671b0-e5b4-4ff9-9baa-df07ebc75177",
  98. "layer_level": 1,
  99. "kk_dependent_files": [
  100. "ai-server/src/main/java/com/zsjz/ai/module/knowledge/controller/KnowledgeBaseController.java",
  101. "ai-server/src/main/java/com/zsjz/ai/module/knowledge/service/KnowledgeBaseService.java",
  102. "ai-server/src/main/java/com/zsjz/ai/module/knowledge/entity/KnowledgeBase.java",
  103. "ai-server/src/main/java/com/zsjz/ai/module/knowledge/mapper/KnowledgeBaseMapper.java",
  104. "ai-electron/frontend/src/ai/views/aiKnowledge/index.vue",
  105. "ai-electron/frontend/src/ai/components/KnowledgeDocModal.ts"
  106. ]
  107. },
  108. {
  109. "id": "51426ffe-15ab-4186-b1a9-75d4fdbf3c6f",
  110. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  111. "name": "人员模块 person",
  112. "description": "business-person",
  113. "prompt": "为人员模块 person 创建详细文档。说明该模块在调查场景中的职责:维护人员基本信息、分组、号码库、亲密度、常住人口等实体,并解释其如何与通话 call、交易 trans、轨迹 track、治理 govern 等模块关联。梳理核心数据模型、字段含义、主外键关系和索引策略。描述 MyBatis-Plus 的 mapper/service/controller 组织方式,以及基于 CaseDataSource/CaseInfo 的案件隔离机制。给出典型查询示例:按姓名/号码查人员、按分组筛选、通过亲密度分析社交关系。补充分页、模糊搜索、批量导入、性能优化建议和常见问题排查方法。",
  114. "progress_status": "completed",
  115. "dependent_files": "ai-server/pom.xml,sql/case_table.sql,sql/case_table_1.sql,sql/table_data_1.sql",
  116. "gmt_create": "2026-10-28T07:55:29Z",
  117. "gmt_modified": "2026-10-28T07:55:29Z",
  118. "parent_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  119. "layer_level": 1,
  120. "kk_dependent_files": [
  121. "ai-server/pom.xml",
  122. "sql/case_table.sql",
  123. "sql/case_table_1.sql",
  124. "sql/table_data_1.sql"
  125. ]
  126. },
  127. {
  128. "id": "7c424667-c8c7-4f7a-bbd7-af27a21ef237",
  129. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  130. "name": "Agent 对话总览与 SSE 流式交互",
  131. "description": "agent-overview",
  132. "prompt": "为 Agent 对话总览与 SSE 流式交互创建详细文档。说明前端如何发起对话请求、后端 AgentChatController 与 AgentChatService 的职责分工,以及 SSE 流式返回消息的完整链路:从前端 chatApi.ts 发起连接,到 sse.ts 处理 EventSource 或 fetch stream,再到 chatStream store 聚合增量消息并渲染 UI。解释 AgentChatSession、AgentMessage、Insight 会话在对话生命周期中的关系。给出典型调用示例:选择模型后发送文本消息、查看工具调用日志、中断或重连 SSE。补充常见问题:SSE 断连与心跳、token 过期、服务端 503、大响应导致内存增长等。",
  133. "progress_status": "completed",
  134. "dependent_files": "ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentChatController.java,ai-server/src/main/java/com/zsjz/ai/module/agent/service/AgentChatService.java,ai-server/src/main/java/com/zsjz/ai/module/agent/service/impl/AgentChatServiceImpl.java,ai-electron/frontend/src/ai/api/chatApi.ts,ai-electron/frontend/src/ai/api/sse.ts,ai-electron/frontend/src/ai/store/chatStream.ts,ai-electron/frontend/src/ai/composables/useAiChatPage.ts",
  135. "gmt_create": "2026-10-28T07:55:29Z",
  136. "gmt_modified": "2026-10-28T07:55:29Z",
  137. "parent_id": "ec9a24fa-b5b6-4b28-96ab-06ee3089519f",
  138. "layer_level": 1,
  139. "kk_dependent_files": [
  140. "ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentChatController.java",
  141. "ai-server/src/main/java/com/zsjz/ai/module/agent/service/AgentChatService.java",
  142. "ai-server/src/main/java/com/zsjz/ai/module/agent/service/impl/AgentChatServiceImpl.java",
  143. "ai-electron/frontend/src/ai/api/chatApi.ts",
  144. "ai-electron/frontend/src/ai/api/sse.ts",
  145. "ai-electron/frontend/src/ai/store/chatStream.ts",
  146. "ai-electron/frontend/src/ai/composables/useAiChatPage.ts"
  147. ]
  148. },
  149. {
  150. "id": "806c0f96-05b8-473c-968e-d617c7a8bea4",
  151. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  152. "name": "系统架构总览",
  153. "description": "system-architecture-overview",
  154. "prompt": "创建清鉴 AI 调查工具的系统架构总览文档。用一张高层图展示 Electron 桌面客户端、Preload Bridge、Spring Cloud Gateway、ai-server 业务模块、PostgreSQL/pgvector、Redis、DuckDB、文件系统之间的边界和交互关系。解释产品目标(公安/审计/风控调查)、部署形态(Windows/macOS/Linux 桌面应用 + Java 服务)以及各层职责:客户端负责 UI、会话、地图与授权;网关负责粘性路由和用户绑定;服务端按 plat/agent/aiclean/knowledge/graph/person/call/trans/track/govern/dm/otg/external 等模块划分能力。说明本章节为后续桌面客户端、网关、后端服务、数据流等子文档的入口,不深入实现细节。",
  155. "progress_status": "completed",
  156. "dependent_files": "readme.md,pom.xml,ai-electron/package.json,ai-gateway/pom.xml,ai-server/pom.xml",
  157. "gmt_create": "2026-10-28T07:55:29Z",
  158. "gmt_modified": "2026-10-28T07:55:29Z",
  159. "parent_id": "a4b69928-d9a2-469a-8611-d8167311ed51",
  160. "layer_level": 1,
  161. "kk_dependent_files": [
  162. "readme.md",
  163. "pom.xml",
  164. "ai-electron/package.json",
  165. "ai-gateway/pom.xml",
  166. "ai-server/pom.xml"
  167. ]
  168. },
  169. {
  170. "id": "ab6a7934-379d-4064-ab15-60187c9fb4ab",
  171. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  172. "name": "Spring Boot 应用入口与启动流程",
  173. "description": "spring-boot-application",
  174. "prompt": "编写 ai-server Spring Boot 应用入口与启动流程文档。说明应用主类、包扫描范围、模块依赖加载方式,以及 Spring Boot 3.5 + Java 25 的运行环境要求。描述启动阶段的关键横切能力:多数据源初始化、Redis 连接、Agent 工作区清理、索引或缓存预热等 ApplicationRunner/ApplicationListener 行为。解释配置文件组织方式(application.yml 与业务配置分离),以及如何通过环境变量覆盖后端配置。补充常见启动问题排查,例如端口冲突、数据库不可达、Redis 连接失败、向量库未启用等。",
  175. "progress_status": "completed",
  176. "dependent_files": "ai-server/pom.xml,ai-server/src/main/java/com/zsjz/ai/,ai-server/src/main/resources/",
  177. "gmt_create": "2026-10-28T07:55:29Z",
  178. "gmt_modified": "2026-10-28T07:55:29Z",
  179. "parent_id": "1721b548-ae66-4730-9aba-43ab062f7390",
  180. "layer_level": 1,
  181. "kk_dependent_files": [
  182. "ai-server/pom.xml",
  183. "ai-server/src/main/java/com/zsjz/ai/",
  184. "ai-server/src/main/resources/"
  185. ]
  186. },
  187. {
  188. "id": "bbe3d5c7-9708-45a5-9b0e-155f8a79506b",
  189. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  190. "name": "StickyRouteFilter 粘性路由核心逻辑",
  191. "description": "sticky-route-filter",
  192. "prompt": "创建 StickyRouteFilter 的详细实现文档。重点解释其作为 Spring Cloud Gateway GlobalFilter(order=10001)的职责:在 RouteToRequestUrlFilter 之后重写 GATEWAY_REQUEST_URL_ATTR,将请求转发到已绑定的 ai-server 节点,并在响应头追加 X-Gateway-Node。详细说明登录请求与普通请求的不同分支:登录时按 username 查找已绑定节点或轮询候选节点;普通请求从 x-token 解析 userId,再查用户绑定,未绑定时用 service.defaultNodeId 兜底绑定,匿名请求走健康节点轮询。说明 buildTargetUri 为什么使用 baseUrl + rawPath + rawQuery 字符串拼接而不是多参 URI 构造器。补充 NodeSelector、TokenResolver、UserRouteService 的协作关系,以及当绑定节点停用/DOWN 时返回 503 且不自动切换的设计原因。包含常见错误场景和调试方法。",
  193. "progress_status": "completed",
  194. "dependent_files": "ai-gateway/src/main/java/com/zsjz/gateway/route/StickyRouteFilter.java,ai-gateway/src/main/java/com/zsjz/gateway/route/GatewayAttributes.java,ai-gateway/src/main/java/com/zsjz/gateway/support/StickyUnavailableException.java",
  195. "gmt_create": "2026-10-28T07:55:29Z",
  196. "gmt_modified": "2026-10-28T07:55:29Z",
  197. "parent_id": "198e92ee-5762-48f9-835d-17889a315be1",
  198. "layer_level": 1,
  199. "kk_dependent_files": [
  200. "ai-gateway/src/main/java/com/zsjz/gateway/route/StickyRouteFilter.java",
  201. "ai-gateway/src/main/java/com/zsjz/gateway/route/GatewayAttributes.java",
  202. "ai-gateway/src/main/java/com/zsjz/gateway/support/StickyUnavailableException.java"
  203. ]
  204. },
  205. {
  206. "id": "bd014943-9fdc-41c3-aeda-440568e4a340",
  207. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  208. "name": "测试总览与分层策略",
  209. "description": "testing-overview",
  210. "prompt": "编写测试总览文档,说明清鉴 AI 调查工具的测试分层策略和质量保证体系。重点解释 A/B/C/D/E 五类测试:A 类离线匹配规则(JUnit、确定性)、B 类绑定与计划、C 类 E2E 真链路(HTTP API + dev 库核验)、D 类异常容错、E 类全量模板覆盖。说明 Electron 主进程 Vitest 配置如何只跑 electron/**/*.test.ts,以及前端 ESLint 和 Stylelint 在代码质量检查中的作用。给出新增测试用例的推荐位置、命名约定、执行命令和结果记录方式,并补充覆盖率、持续集成和发布前检查建议。",
  211. "progress_status": "completed",
  212. "dependent_files": "docs/testing/ai-template-match-test-cases.md,ai-electron/vitest.config.mts,ai-electron/frontend/eslint.config.mjs,ai-electron/frontend/stylelint.config.mjs",
  213. "gmt_create": "2026-10-28T07:55:29Z",
  214. "gmt_modified": "2026-10-28T07:55:29Z",
  215. "parent_id": "b7c1dade-a869-4023-920a-f5f527a56403",
  216. "layer_level": 1,
  217. "kk_dependent_files": [
  218. "docs/testing/ai-template-match-test-cases.md",
  219. "ai-electron/vitest.config.mts",
  220. "ai-electron/frontend/eslint.config.mjs",
  221. "ai-electron/frontend/stylelint.config.mjs"
  222. ]
  223. },
  224. {
  225. "id": "c9a620a7-1b3c-4d58-85b0-2a21724b19d2",
  226. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  227. "name": "环境准备与初始化",
  228. "description": "deployment-environment-setup",
  229. "prompt": "创建部署前的环境准备与初始化指南。说明 PostgreSQL + pgvector、Redis、Elasticsearch、Neo4j、DuckDB 等外部依赖的安装要求、端口和版本兼容性,并给出最小可用环境的安装命令示例。详细说明 deploy/env.sh 中关键变量的含义与生产修改项:数据库连接、Redis、本地文件存储路径 STORAGE_LOCAL_ROOT_PATH/STORAGE_LOCAL_BASE_URL、Agent RAG、DuckDB 资源预算、向量模型路径 ZSJZ_EMBEDDING_MODEL_PATH、AI 清洗向量索引、聊天附件解析、登录安全窗口等。补充 SQL 初始化步骤:gateway_service/gateway_node 表、业务主库表结构、pgvector 扩展启用。说明 Spring Profile 切换方式(SPRING_PROFILES_ACTIVE)以及 dev/pro 配置差异。包含常见环境问题排查:端口冲突、pgvector 未启用、Redis 不可用导致登录异常、ES/Neo4j 可选依赖缺失时的降级行为。",
  230. "progress_status": "completed",
  231. "dependent_files": "deploy/env.sh,sql/gateway.sql,sql/create_table_2.sql,ai-server/pom.xml,ai-server/src/main/resources/application-dev.yaml,ai-server/src/main/resources/application-pro.yaml",
  232. "gmt_create": "2026-10-28T07:55:29Z",
  233. "gmt_modified": "2026-10-28T07:55:29Z",
  234. "parent_id": "67aa6a8d-c25c-435e-be2c-9a5fda6668b7",
  235. "layer_level": 1,
  236. "kk_dependent_files": [
  237. "deploy/env.sh",
  238. "sql/gateway.sql",
  239. "sql/create_table_2.sql",
  240. "ai-server/pom.xml",
  241. "ai-server/src/main/resources/application-dev.yaml",
  242. "ai-server/src/main/resources/application-pro.yaml"
  243. ]
  244. },
  245. {
  246. "id": "dfcc2c4e-4392-42f2-9bab-4f652761f880",
  247. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  248. "name": "网关路由表结构",
  249. "description": "gateway-schema",
  250. "prompt": "创建网关数据库设计文档,重点说明 gateway_service、gateway_node、gateway_user_route(或实际使用的服务注册与用户绑定表)的表结构。详细描述每个字段的数据类型、主键、外键、索引和业务含义,包括服务标识、节点地址、健康状态、用户名与 ai-server 节点的绑定关系。结合 StickyRouteFilter 和 LoginResponseFilter 的逻辑,解释这些表如何支撑粘性路由、登录绑定、503 异常处理和服务/节点管理接口。补充建表 SQL 示例、关键字段约束、查询性能建议,以及多节点部署下的数据一致性注意事项。",
  251. "progress_status": "completed",
  252. "dependent_files": "sql/gateway.sql",
  253. "gmt_create": "2026-10-28T07:55:29Z",
  254. "gmt_modified": "2026-10-28T07:55:29Z",
  255. "parent_id": "c1789760-0a39-4847-879e-bd14a1ed7b37",
  256. "layer_level": 1,
  257. "kk_dependent_files": [
  258. "sql/gateway.sql"
  259. ]
  260. },
  261. {
  262. "id": "e6253e7f-3ead-4cd2-84c5-bd9c93288a0e",
  263. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  264. "name": "Electron 主进程与生命周期",
  265. "description": "electron-main-process",
  266. "prompt": "为 Electron 主进程与生命周期编写详细文档。说明 ai-electron/electron/main.ts 如何通过 ee-core.ElectronEgg 创建应用、注册 ready / electron-app-ready / window-ready / before-close 等生命周期钩子,并调用 app.run() 启动。解释 preload/lifecycle.ts 中各生命周期钩子的执行顺序和职责边界,以及 preload/index.ts 的 preload() 函数如何在预加载阶段创建托盘服务(trayService)和安全服务(securityService)。说明主进程与渲染进程的职责划分:主进程负责窗口、系统能力、安全初始化;渲染进程只负责 UI 和业务逻辑。给出新增生命周期钩子、自定义 preload 初始化的步骤示例,并包含常见问题排查:主进程未启动、生命周期钩子未执行、preload 加载失败、托盘或安全服务异常等。",
  267. "progress_status": "completed",
  268. "dependent_files": "ai-electron/electron/main.ts,ai-electron/electron/preload/lifecycle.ts,ai-electron/electron/preload/index.ts,ai-electron/package.json",
  269. "gmt_create": "2026-10-28T07:55:29Z",
  270. "gmt_modified": "2026-10-28T07:55:29Z",
  271. "parent_id": "d36adb59-0865-4057-ac6b-1a3762816c01",
  272. "layer_level": 1,
  273. "kk_dependent_files": [
  274. "ai-electron/electron/main.ts",
  275. "ai-electron/electron/preload/lifecycle.ts",
  276. "ai-electron/electron/preload/index.ts",
  277. "ai-electron/package.json"
  278. ]
  279. },
  280. {
  281. "id": "f5ed2513-391a-4b75-8007-bb3d5216e4df",
  282. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  283. "name": "清洗模板与字段映射",
  284. "description": "ai-clean-templates",
  285. "prompt": "编写 AI 数据清洗中清洗模板与字段映射的详细文档。说明 AiCleanTemplate、AiCleanField、RuleBind、AiRulePlan 等实体的字段定义、主外键关系和业务含义,解释清洗模板如何描述目标表结构、字段短名、规则计划以及字段到目标列的映射关系。详细说明模板加载流程:从数据库读取模板、构建 TemplateCandidate、由 AiTemplateMatcher 结合表头指纹和 HeaderNormalizer 进行匹配。给出创建模板、绑定规则、定义字段短名和字段映射的完整示例,包括 CSV 表头、Excel 列名与目标字段的对应关系。说明字段短名(field short names)在智能匹配中的作用,以及与 Synonym 的区别。补充常见问题:模板未命中、字段映射错位、短名冲突、规则计划类型不匹配等,并给出排查建议。",
  286. "progress_status": "completed",
  287. "dependent_files": "sql/ai_clean.sql,sql/ai_clean_field_short_names.sql,ai-server/src/main/java/com/zsjz/ai/module/aiclean/entity/AiCleanTemplate.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/entity/AiCleanField.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/model/RuleBind.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/rule/AiRulePlan.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/match/AiTemplateMatcher.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/match/TemplateCandidateLoader.java",
  288. "gmt_create": "2026-10-28T07:55:29Z",
  289. "gmt_modified": "2026-10-28T07:55:29Z",
  290. "parent_id": "fbd0f840-7bf0-40b1-9ae4-01dd991a8752",
  291. "layer_level": 1,
  292. "kk_dependent_files": [
  293. "sql/ai_clean.sql",
  294. "sql/ai_clean_field_short_names.sql",
  295. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/entity/AiCleanTemplate.java",
  296. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/entity/AiCleanField.java",
  297. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/model/RuleBind.java",
  298. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/rule/AiRulePlan.java",
  299. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/match/AiTemplateMatcher.java",
  300. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/match/TemplateCandidateLoader.java"
  301. ]
  302. },
  303. {
  304. "id": "114b42fc-097d-4ff9-b78a-b1f128492359",
  305. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  306. "name": "快速开始",
  307. "description": "getting-started",
  308. "prompt": "编写清鉴 AI 调查工具的快速开始指南,覆盖开发机环境准备、依赖安装、服务启动顺序和首次运行步骤。说明需要 Java 25、Maven、Node.js、pnpm/npm、PostgreSQL、pgvector、Redis、DuckDB 等前置条件;描述如何初始化 sql/*.sql 脚本,启动 ai-gateway 和 ai-server,再通过 pnpm dev 或构建命令启动 Electron 客户端。说明首次运行时输入服务端地址、登录绑定、激活/授权单元和水印的基本流程。包含常见启动失败排查项,如端口冲突、数据库连接、向量扩展未启用、regInfo.exe 权限问题等。内容应简洁明了,适合第一次接触项目的开发者在 10–20 分钟内跑通本地环境。",
  309. "progress_status": "completed",
  310. "dependent_files": "readme.md,deploy/env.sh,cmd/uninstall.bat,cmd/uninstall.sh,ai-electron/package.json,ai-electron/frontend/package.json,ai-server/pom.xml,ai-gateway/pom.xml",
  311. "gmt_create": "2026-10-28T07:55:29Z",
  312. "gmt_modified": "2026-10-28T07:55:29Z",
  313. "order": 1,
  314. "kk_dependent_files": [
  315. "readme.md",
  316. "deploy/env.sh",
  317. "cmd/uninstall.bat",
  318. "cmd/uninstall.sh",
  319. "ai-electron/package.json",
  320. "ai-electron/frontend/package.json",
  321. "ai-server/pom.xml",
  322. "ai-gateway/pom.xml"
  323. ]
  324. },
  325. {
  326. "id": "1acb4aac-20b1-4e60-9d3a-4d49412f11ef",
  327. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  328. "name": "文档上传、解析与索引生命周期",
  329. "description": "knowledge-doc-lifecycle",
  330. "prompt": "创建文档上传、解析、向量化、存储和重试生命周期的详细文档。说明 KnowledgeDocService.upload 如何处理 multipart 文件、调用 KnowledgeDocParser 提取文本、通过事件或异步任务触发 KnowledgeDocIndexer 进行向量化并写入 pgvector;解释 reindex 重试机制、仅上传者权限校验、下载时写 KnowledgeDocDownloadLog 的流程。文档应包含上传、删除、重试、下载的 REST API 接口定义,包括请求参数、响应结构、错误码和 x-token 鉴权要求。补充支持的文档格式、文件大小限制、大文档分块策略、索引失败状态、去重逻辑、文件存储路径、性能优化建议和常见异常处理方案。",
  331. "progress_status": "completed",
  332. "dependent_files": "ai-server/src/main/java/com/zsjz/ai/module/knowledge/controller/KnowledgeBaseController.java,ai-server/src/main/java/com/zsjz/ai/module/knowledge/service/KnowledgeDocService.java,ai-server/src/main/java/com/zsjz/ai/module/knowledge/KnowledgeDocParser.java,ai-server/src/main/java/com/zsjz/ai/module/knowledge/KnowledgeDocIndexer.java,ai-server/src/main/java/com/zsjz/ai/module/knowledge/event/KnowledgeDocIndexEvent.java,ai-server/src/main/java/com/zsjz/ai/module/knowledge/entity/KnowledgeDoc.java,ai-server/src/main/java/com/zsjz/ai/module/knowledge/entity/KnowledgeDocDownloadLog.java,ai-server/src/main/java/com/zsjz/ai/module/knowledge/vo/KnowledgeDocVO.java,ai-electron/frontend/src/ai/components/KnowledgeDocModal.ts",
  333. "gmt_create": "2026-10-28T07:55:29Z",
  334. "gmt_modified": "2026-10-28T07:55:29Z",
  335. "parent_id": "fde671b0-e5b4-4ff9-9baa-df07ebc75177",
  336. "layer_level": 1,
  337. "order": 1,
  338. "kk_dependent_files": [
  339. "ai-server/src/main/java/com/zsjz/ai/module/knowledge/controller/KnowledgeBaseController.java",
  340. "ai-server/src/main/java/com/zsjz/ai/module/knowledge/service/KnowledgeDocService.java",
  341. "ai-server/src/main/java/com/zsjz/ai/module/knowledge/KnowledgeDocParser.java",
  342. "ai-server/src/main/java/com/zsjz/ai/module/knowledge/KnowledgeDocIndexer.java",
  343. "ai-server/src/main/java/com/zsjz/ai/module/knowledge/event/KnowledgeDocIndexEvent.java",
  344. "ai-server/src/main/java/com/zsjz/ai/module/knowledge/entity/KnowledgeDoc.java",
  345. "ai-server/src/main/java/com/zsjz/ai/module/knowledge/entity/KnowledgeDocDownloadLog.java",
  346. "ai-server/src/main/java/com/zsjz/ai/module/knowledge/vo/KnowledgeDocVO.java",
  347. "ai-electron/frontend/src/ai/components/KnowledgeDocModal.ts"
  348. ]
  349. },
  350. {
  351. "id": "21342d52-98e3-4654-9724-072359e1c6f2",
  352. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  353. "name": "后端服务部署",
  354. "description": "deployment-backend-services",
  355. "prompt": "创建 ai-gateway 与 ai-server 的生产部署指南。说明 Maven 父工程编译顺序、打包产物和启动命令;分别描述 GatewayApplication 网关服务和 ai-server 业务服务的启动流程、依赖加载顺序、健康检查行为和日志位置。解释环境变量导入方式:`set -a; source deploy/env.sh; set +a` 与 systemd EnvironmentFile 两种用法,并强调数据库口令权限控制。说明 ai-gateway 的粘性路由职责:服务注册、节点选择、CORS、登录绑定转发,以及 ai-server 的模块化启动(plat、agent、aiclean、knowledge、graph、person、call、trans、track、govern、search、dm、otg、external)。给出典型部署拓扑:单节点开发环境、多节点 ai-server + 单网关、多网关高可用场景。补充性能参数调优建议:Spring 调度池、HTTP codecs、multipart 大小、DuckDB 内存比例、线程数、RAG top_k 等,并结合 deploy/env.sh 给出生产推荐值。包含故障排查:Gateway 503、跨域失败、登录态丢失、Redis 断开、ES/Neo4j 连接超时、文件上传超限等。",
  356. "progress_status": "completed",
  357. "dependent_files": "deploy/env.sh,ai-gateway/src/main/java/com/zsjz/gateway/GatewayApplication.java,ai-gateway/pom.xml,ai-server/pom.xml,pom.xml",
  358. "gmt_create": "2026-10-28T07:55:29Z",
  359. "gmt_modified": "2026-10-28T07:55:29Z",
  360. "parent_id": "67aa6a8d-c25c-435e-be2c-9a5fda6668b7",
  361. "layer_level": 1,
  362. "order": 1,
  363. "kk_dependent_files": [
  364. "deploy/env.sh",
  365. "ai-gateway/src/main/java/com/zsjz/gateway/GatewayApplication.java",
  366. "ai-gateway/pom.xml",
  367. "ai-server/pom.xml",
  368. "pom.xml"
  369. ]
  370. },
  371. {
  372. "id": "22ed1e10-d4ca-42c7-801c-8bda48b58052",
  373. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  374. "name": "登录请求与响应过滤链",
  375. "description": "login-binding-filters",
  376. "prompt": "创建登录相关过滤链的详细文档,说明 LoginRequestFilter 和 LoginResponseFilter 如何配合 StickyRouteFilter 完成用户与服务节点的绑定。解释 LoginRequestFilter 如何识别登录请求并将 username 写入 GatewayAttributes.LOGIN_USERNAME 与 LOGIN_REQUEST,使 StickyRouteFilter 能进入 decideForLogin 分支。说明 LoginResponseFilter 如何在登录成功后根据 LOGIN_CHOSEN_NODE_ID 把用户绑定到具体 ai-server 节点,并持久化到数据库。对比登录前后 token 解析结果的变化,解释“登录时不立即写库、由响应过滤器落库”的原因。给出典型登录流程时序图,包括客户端、Gateway、ai-server、PostgreSQL 之间的交互。补充用户名冲突、重复登录、强制踢下线等边界情况的处理。",
  377. "progress_status": "completed",
  378. "dependent_files": "ai-gateway/src/main/java/com/zsjz/gateway/filter/LoginRequestFilter.java,ai-gateway/src/main/java/com/zsjz/gateway/filter/LoginResponseFilter.java,ai-gateway/src/main/java/com/zsjz/gateway/route/GatewayAttributes.java",
  379. "gmt_create": "2026-10-28T07:55:29Z",
  380. "gmt_modified": "2026-10-28T07:55:29Z",
  381. "parent_id": "198e92ee-5762-48f9-835d-17889a315be1",
  382. "layer_level": 1,
  383. "order": 1,
  384. "kk_dependent_files": [
  385. "ai-gateway/src/main/java/com/zsjz/gateway/filter/LoginRequestFilter.java",
  386. "ai-gateway/src/main/java/com/zsjz/gateway/filter/LoginResponseFilter.java",
  387. "ai-gateway/src/main/java/com/zsjz/gateway/route/GatewayAttributes.java"
  388. ]
  389. },
  390. {
  391. "id": "30a9faef-23f4-406d-8889-3da2c96ba102",
  392. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  393. "name": "LLM Provider 管理与模型工厂",
  394. "description": "agent-model-provider",
  395. "prompt": "为 LLM Provider 管理与模型工厂创建详细文档。说明 pom.xml 中 agentscope-harness、agentscope-extensions-model-dashscope、ollama、openai、mem0、redis 等依赖的作用;解释 AgentEntity、AgentModelService、AgentModelFactory 如何注册和管理 DashScope/Ollama/OpenAI 三种 Provider。描述模型配置项(如 base_url、api_key、model_name)、模型枚举、可用性与健康检查策略。给出示例:新增一个 LLM Provider、切换默认模型、通过 AgentModelController 查询模型列表和状态。补充问题排查:DashScope Key 无效、Ollama 服务不可达、OpenAI 代理超时、模型枚举不生效等。",
  396. "progress_status": "completed",
  397. "dependent_files": "ai-server/pom.xml,ai-server/src/main/java/com/zsjz/ai/module/agent/entity/AgentEntity.java,ai-server/src/main/java/com/zsjz/ai/module/agent/service/AgentModelFactory.java,ai-server/src/main/java/com/zsjz/ai/module/agent/service/AgentModelService.java,ai-server/src/main/java/com/zsjz/ai/module/agent/service/impl/AgentModelServiceImpl.java,ai-server/src/main/java/com/zsjz/ai/module/agent/converter/AgentModelConverter.java,ai-server/src/main/java/com/zsjz/ai/module/agent/converter/AgentModelProviderConverter.java,ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentModelController.java",
  398. "gmt_create": "2026-10-28T07:55:29Z",
  399. "gmt_modified": "2026-10-28T07:55:29Z",
  400. "parent_id": "ec9a24fa-b5b6-4b28-96ab-06ee3089519f",
  401. "layer_level": 1,
  402. "order": 1,
  403. "kk_dependent_files": [
  404. "ai-server/pom.xml",
  405. "ai-server/src/main/java/com/zsjz/ai/module/agent/entity/AgentEntity.java",
  406. "ai-server/src/main/java/com/zsjz/ai/module/agent/service/AgentModelFactory.java",
  407. "ai-server/src/main/java/com/zsjz/ai/module/agent/service/AgentModelService.java",
  408. "ai-server/src/main/java/com/zsjz/ai/module/agent/service/impl/AgentModelServiceImpl.java",
  409. "ai-server/src/main/java/com/zsjz/ai/module/agent/converter/AgentModelConverter.java",
  410. "ai-server/src/main/java/com/zsjz/ai/module/agent/converter/AgentModelProviderConverter.java",
  411. "ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentModelController.java"
  412. ]
  413. },
  414. {
  415. "id": "41e369d2-9662-4e1b-b62f-21de646b34c9",
  416. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  417. "name": "Gateway Token 一致性与登录绑定",
  418. "description": "gateway-token-consistency",
  419. "prompt": "编写 Gateway 层 token 一致性、登录绑定与粘性路由交互的详细文档。说明 LoginRequestFilter 如何从请求中提取 username/token,StickyRouteFilter 如何根据 userId 选择 ai-server 节点并重写目标 URL,LoginResponseFilter 如何在登录成功后将用户名与服务节点绑定写入数据库。解释为什么 token 必须在客户端、Gateway、ai-server 之间保持一致,以及节点 DOWN 时返回 503 不自动切换的原因。给出登录流程时序图、常见失败场景(未绑定节点、token 过期、节点不可用)及排查步骤。",
  420. "progress_status": "completed",
  421. "dependent_files": "ai-gateway/src/main/java/com/zsjz/gateway/route/StickyRouteFilter.java,ai-gateway/src/main/java/com/zsjz/gateway/filter/LoginRequestFilter.java,ai-gateway/src/main/java/com/zsjz/gateway/filter/LoginResponseFilter.java",
  422. "gmt_create": "2026-10-28T07:55:29Z",
  423. "gmt_modified": "2026-10-28T07:55:29Z",
  424. "parent_id": "c77f0da0-55bc-4f69-9e32-f4aca699b57c",
  425. "layer_level": 1,
  426. "order": 1,
  427. "kk_dependent_files": [
  428. "ai-gateway/src/main/java/com/zsjz/gateway/route/StickyRouteFilter.java",
  429. "ai-gateway/src/main/java/com/zsjz/gateway/filter/LoginRequestFilter.java",
  430. "ai-gateway/src/main/java/com/zsjz/gateway/filter/LoginResponseFilter.java"
  431. ]
  432. },
  433. {
  434. "id": "48ee09b6-d73e-4c97-ab30-872d6271b0d5",
  435. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  436. "name": "桌面客户端架构",
  437. "description": "desktop-client-architecture",
  438. "prompt": "创建 Electron 桌面客户端架构文档。重点解释主进程与渲染进程的职责分离:main.ts 基于 ee-core.ElectronEgg 注册生命周期钩子和 preload,preload 桥接暴露 Node/Electron API 给渲染进程,App.vue 初始化主题、国际化、水印和授权单元。说明前端工程结构(Vite + Vue 3 + Ant Design Vue + TypeScript),如何动态绑定 ai-server 地址、加载离线地图 china.pmtiles、调用 SSE Agent 对话、管理本地缓存与服务端地址。补充 IPC 安全模型、构建打包脚本、自动更新配置和常见问题排查。提供从启动到登录、发起 Agent 请求的最小代码路径示例。",
  439. "progress_status": "completed",
  440. "dependent_files": "ai-electron/electron/main.ts,ai-electron/electron/preload/index.ts,ai-electron/electron/preload/bridge.ts,ai-electron/electron/preload/lifecycle.ts,ai-electron/frontend/src/App.vue,ai-electron/frontend/src/env.d.ts,ai-electron/frontend/src/main.ts,ai-electron/package.json,ai-electron/frontend/package.json",
  441. "gmt_create": "2026-10-28T07:55:29Z",
  442. "gmt_modified": "2026-10-28T07:55:29Z",
  443. "parent_id": "a4b69928-d9a2-469a-8611-d8167311ed51",
  444. "layer_level": 1,
  445. "order": 1,
  446. "kk_dependent_files": [
  447. "ai-electron/electron/main.ts",
  448. "ai-electron/electron/preload/index.ts",
  449. "ai-electron/electron/preload/bridge.ts",
  450. "ai-electron/electron/preload/lifecycle.ts",
  451. "ai-electron/frontend/src/App.vue",
  452. "ai-electron/frontend/src/env.d.ts",
  453. "ai-electron/frontend/src/main.ts",
  454. "ai-electron/package.json",
  455. "ai-electron/frontend/package.json"
  456. ]
  457. },
  458. {
  459. "id": "4b666607-23fd-418b-926a-f561218179c6",
  460. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  461. "name": "构建命令与脚本",
  462. "description": "build-and-scripts",
  463. "prompt": "创建构建命令与脚本参考文档。说明 Maven 父工程与 ai-server、ai-gateway 子模块的构建命令;pnpm dev、build、start 等前端开发命令;Electron 打包命令和 electron-builder 输出产物;安装、启动、卸载脚本的作用和使用方式。解释 deploy/env.sh 环境变量脚本如何覆盖后端配置,以及 Linux/macOS 下执行权限要求。给出典型工作流:拉取代码、安装依赖、启动 Gateway 和 ai-server、启动 Electron 客户端、打包 Windows/macOS/Linux 安装包。列出常见错误如端口冲突、依赖缺失、打包失败和解决方法。",
  464. "progress_status": "completed",
  465. "dependent_files": "pom.xml,ai-server/pom.xml,ai-gateway/pom.xml,ai-electron/package.json,ai-electron/frontend/package.json,ai-electron/frontend/bin/install.sh,ai-electron/frontend/bin/install.bat,ai-electron/frontend/bin/build.sh,ai-electron/frontend/bin/build.bat,ai-electron/frontend/bin/startup.sh,ai-electron/frontend/bin/startup.bat,cmd/uninstall.bat,cmd/uninstall.sh,deploy/env.sh",
  466. "gmt_create": "2026-10-28T07:55:29Z",
  467. "gmt_modified": "2026-10-28T07:55:29Z",
  468. "parent_id": "922749ea-6307-428f-bfd8-4feb065746a6",
  469. "layer_level": 1,
  470. "order": 1,
  471. "kk_dependent_files": [
  472. "pom.xml",
  473. "ai-server/pom.xml",
  474. "ai-gateway/pom.xml",
  475. "ai-electron/package.json",
  476. "ai-electron/frontend/package.json",
  477. "ai-electron/frontend/bin/install.sh",
  478. "ai-electron/frontend/bin/install.bat",
  479. "ai-electron/frontend/bin/build.sh",
  480. "ai-electron/frontend/bin/build.bat",
  481. "ai-electron/frontend/bin/startup.sh",
  482. "ai-electron/frontend/bin/startup.bat",
  483. "cmd/uninstall.bat",
  484. "cmd/uninstall.sh",
  485. "deploy/env.sh"
  486. ]
  487. },
  488. {
  489. "id": "5b47e58f-5090-4cfd-8288-e866003e9231",
  490. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  491. "name": "LLM 模板匹配测试与夹具",
  492. "description": "llm-template-matching-tests",
  493. "prompt": "编写 LLM 模板匹配测试的详细文档。基于 docs/testing/ai-template-match-test-cases.md,解释被测对象“AI 清洗模板匹配链路(三腿匹配 → 绑定 → 计划 → 落库)+ 既有匹配器对照”,并说明测试环境要求(PG/Redis、本地 Ollama qwen、bge-m3 嵌入、DuckDB 案件库、仓库根为工作目录)。逐项介绍锚定模板(车辆登记、银行交易流水、通信记录)和 A/E 类场景(指纹、归一化、同义词、模糊词、打分、必填覆盖、形状闸门、列序、无关表头、全量 table_info 362 个模板)。详细说明 fixtures/ai-llm-match-20261026 下 run_tests.py、generate.py、manifest.json 的职责:如何用 manifest 描述测试清单、用 generate.py 生成 xlsx CSV 夹具、用 run_tests.py 调用 HTTP API 上传并比对 matched_by/exit/llm 等结果。给出运行命令、失败排查步骤、NEED_REVIEW 行为解读,以及 F1–F6 发现项对应的修复或观察建议。",
  494. "progress_status": "completed",
  495. "dependent_files": "docs/testing/ai-template-match-test-cases.md,docs/testing/fixtures/docs/testing/fixtures/ai-llm-match-20261026/run_tests.py,docs/testing/fixtures/docs/testing/fixtures/ai-llm-match-20261026/generate.py,docs/testing/fixtures/docs/testing/fixtures/ai-llm-match-20261026/manifest.json",
  496. "gmt_create": "2026-10-28T07:55:29Z",
  497. "gmt_modified": "2026-10-28T07:55:29Z",
  498. "parent_id": "b7c1dade-a869-4023-920a-f5f527a56403",
  499. "layer_level": 1,
  500. "order": 1,
  501. "kk_dependent_files": [
  502. "docs/testing/ai-template-match-test-cases.md",
  503. "docs/testing/fixtures/docs/testing/fixtures/ai-llm-match-20261026/run_tests.py",
  504. "docs/testing/fixtures/docs/testing/fixtures/ai-llm-match-20261026/generate.py",
  505. "docs/testing/fixtures/docs/testing/fixtures/ai-llm-match-20261026/manifest.json"
  506. ]
  507. },
  508. {
  509. "id": "5c689d53-7384-4633-95ad-b40096e9b00b",
  510. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  511. "name": "平台基础与用户授权表",
  512. "description": "plat-user-schema",
  513. "prompt": "创建平台基础与用户授权相关表的数据库设计文档。说明 plat 模块中的系统配置、表信息、授权单元、会话、缓存、日历等表,以及 user 表的用户信息、账号状态、设备或机器码相关信息。详细列出主键、外键、唯一约束、索引和关键字段语义;解释 Sa-Token 会话、客户端 token、许可证校验、水印与授权单元之间的关系。给出典型查询场景,例如按用户查会话、查绑定 ai-server 节点、查授权有效期。补充数据安全要求、敏感字段保护、备份恢复建议和常见运维问题排查方法。",
  514. "progress_status": "completed",
  515. "dependent_files": "sql/plat.sql,sql/user.sql,sql/create_table_2.sql",
  516. "gmt_create": "2026-10-28T07:55:29Z",
  517. "gmt_modified": "2026-10-28T07:55:29Z",
  518. "parent_id": "c1789760-0a39-4847-879e-bd14a1ed7b37",
  519. "layer_level": 1,
  520. "order": 1,
  521. "kk_dependent_files": [
  522. "sql/plat.sql",
  523. "sql/user.sql",
  524. "sql/create_table_2.sql"
  525. ]
  526. },
  527. {
  528. "id": "9ca9022c-45b9-4e6b-89d3-34eac1d4ee30",
  529. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  530. "name": "同义词管理",
  531. "description": "ai-clean-synonyms",
  532. "prompt": "编写 AI 数据清洗中同义词管理功能的详细文档。说明 AiCleanSynonym 实体结构、字段含义、数据来源及初始化脚本 ai_clean_synonym_init.sql 的作用。解释同义词与清洗模板字段短名的区别:同义词用于增强表头识别和语义匹配,字段短名用于模板侧的标准命名。详细描述增删改查接口(AiCleanSynonymController)和服务层逻辑(AiCleanSynonymService),包括同义词分组、别名、标准字段之间的关系。给出添加同义词、批量导入、查询生效范围的实际示例。说明同义词如何被 AiTemplateMatcher 或表头匹配链路使用,以及在多用户/多案件场景下的隔离策略。补充常见问题:新增同义词未生效、别名冲突、初始化脚本重复执行、同义词未参与匹配等。",
  533. "progress_status": "completed",
  534. "dependent_files": "sql/ai_clean_synonym_init.sql,ai-server/src/main/java/com/zsjz/ai/module/aiclean/entity/AiCleanSynonym.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/api/AiCleanSynonymController.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/service/AiCleanSynonymService.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/mapper/AiCleanSynonymMapper.java",
  535. "gmt_create": "2026-10-28T07:55:29Z",
  536. "gmt_modified": "2026-10-28T07:55:29Z",
  537. "parent_id": "fbd0f840-7bf0-40b1-9ae4-01dd991a8752",
  538. "layer_level": 1,
  539. "order": 1,
  540. "kk_dependent_files": [
  541. "sql/ai_clean_synonym_init.sql",
  542. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/entity/AiCleanSynonym.java",
  543. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/api/AiCleanSynonymController.java",
  544. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/service/AiCleanSynonymService.java",
  545. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/mapper/AiCleanSynonymMapper.java"
  546. ]
  547. },
  548. {
  549. "id": "b474a118-2219-4f66-863d-a7f18d59e5df",
  550. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  551. "name": "模块化架构与统一分层",
  552. "description": "module-architecture",
  553. "prompt": "编写 ai-server 模块化架构文档,聚焦 module/* 下的业务域划分和统一分层模式。说明每个模块通常包含 controller、service、mapper/entity 的职责边界,以及跨模块调用应通过 Service 接口而非直接依赖实现。解释模块间耦合原则:避免循环依赖、通过领域事件或共享 DTO 传递数据、网关只感知 ai-server 整体而不感知内部模块。给出新增业务模块的标准步骤:创建 module、定义 entity、Mapper、Service、Controller,注册路由,并维护对应 SQL 脚本。补充代码风格、命名约定和可测试性建议。",
  554. "progress_status": "completed",
  555. "dependent_files": "ai-server/pom.xml,ai-server/src/main/java/com/zsjz/ai/",
  556. "gmt_create": "2026-10-28T07:55:29Z",
  557. "gmt_modified": "2026-10-28T07:55:29Z",
  558. "parent_id": "1721b548-ae66-4730-9aba-43ab062f7390",
  559. "layer_level": 1,
  560. "order": 1,
  561. "kk_dependent_files": [
  562. "ai-server/pom.xml",
  563. "ai-server/src/main/java/com/zsjz/ai/"
  564. ]
  565. },
  566. {
  567. "id": "c52c7b80-86ea-4f92-8179-6a86a77494a3",
  568. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  569. "name": "认证与系统基础接口",
  570. "description": "auth-and-system-api",
  571. "prompt": "创建认证与系统基础接口的 API 文档,覆盖 /auth、/user、/sys、/case、/tpl、/tower 等 plat 模块控制器。重点说明登录流程:前端如何调用认证接口获取 token,x-token 如何随后续请求携带,Sa-Token 如何与 Gateway 粘性路由配合完成用户绑定。记录用户信息、授权单元、系统信息、案件数据源、表模板、塔台相关接口的 HTTP 方法、URL、请求参数、响应字段、分页格式和错误码。说明登录失效、账号被顶下线、强制登录后清理缓存的行为对前端的影响。提供 curl 和前端调用示例,并给出 401、403、503 等错误的排查步骤。",
  572. "progress_status": "completed",
  573. "dependent_files": "ai-server/src/main/java/com/zsjz/ai/module/plat/controller/AuthController.java,ai-server/src/main/java/com/zsjz/ai/module/plat/controller/UserController.java,ai-server/src/main/java/com/zsjz/ai/module/plat/controller/SystemController.java,ai-server/src/main/java/com/zsjz/ai/module/plat/controller/CaseInfoController.java,ai-server/src/main/java/com/zsjz/ai/module/plat/controller/TableInfoController.java,ai-server/src/main/java/com/zsjz/ai/module/plat/controller/TowerController.java",
  574. "gmt_create": "2026-10-28T07:55:29Z",
  575. "gmt_modified": "2026-10-28T07:55:29Z",
  576. "parent_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  577. "layer_level": 1,
  578. "order": 1,
  579. "kk_dependent_files": [
  580. "ai-server/src/main/java/com/zsjz/ai/module/plat/controller/AuthController.java",
  581. "ai-server/src/main/java/com/zsjz/ai/module/plat/controller/UserController.java",
  582. "ai-server/src/main/java/com/zsjz/ai/module/plat/controller/SystemController.java",
  583. "ai-server/src/main/java/com/zsjz/ai/module/plat/controller/CaseInfoController.java",
  584. "ai-server/src/main/java/com/zsjz/ai/module/plat/controller/TableInfoController.java",
  585. "ai-server/src/main/java/com/zsjz/ai/module/plat/controller/TowerController.java"
  586. ]
  587. },
  588. {
  589. "id": "c5c9d701-000d-421e-80cd-170bb6739623",
  590. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  591. "name": "通话模块 call",
  592. "description": "business-call",
  593. "prompt": "为通话模块 call 创建详细文档。说明该模块负责通话记录、夜间通话、连续通话、敏感通话、开放信息等调查相关实体的存储与查询。解释通话记录与人员 person 的关系(主叫/被叫),以及与交易、轨迹、治理树之间的交叉分析价值。梳理通话实体字段、时间范围过滤、号码匹配、去重规则、分页和聚合统计方式。给出常用查询示例:查找某人的所有通话、夜间通话分析、连续通话识别、敏感通话预警、通话双方关系图。说明数据量较大时的索引优化、分区策略和查询性能注意事项。",
  594. "progress_status": "completed",
  595. "dependent_files": "ai-server/pom.xml,sql/case_table.sql,sql/case_table_1.sql,sql/testSql/通话相互.sql,sql/testSql/全部交易关系.sql",
  596. "gmt_create": "2026-10-28T07:55:29Z",
  597. "gmt_modified": "2026-10-28T07:55:29Z",
  598. "parent_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  599. "layer_level": 1,
  600. "order": 1,
  601. "kk_dependent_files": [
  602. "ai-server/pom.xml",
  603. "sql/case_table.sql",
  604. "sql/case_table_1.sql",
  605. "sql/testSql/通话相互.sql",
  606. "sql/testSql/全部交易关系.sql"
  607. ]
  608. },
  609. {
  610. "id": "f77992a3-a80c-4ebc-9f77-8faf081f3420",
  611. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  612. "name": "Preload 桥接与安全模型",
  613. "description": "electron-preload-bridge",
  614. "prompt": "为 Electron preload 桥接与安全模型编写详细文档。解释启用 contextIsolation 后渲染进程无法直接使用 Electron API,因此通过 bridge.ts 中的 contextBridge.exposeInMainWorld('electron', {...}) 暴露受控接口,当前仅暴露 ipcRenderer。说明 preload/index.ts 的 preload() 函数在渲染进程上下文之前运行,用于创建 trayService 和 securityService,避免将 Node/Electron 能力直接泄露给渲染进程。文档应覆盖 IPC 通道设计原则、最小权限暴露策略、跨进程通信的安全边界,以及为什么不应把 BrowserWindow、fs、child_process 等危险 API 暴露到 window.electron。给出新增安全 IPC 接口的示例,包括主进程 service、preload 桥注册、前端调用方式。包含常见问题:contextBridge 报错、window.electron 为 undefined、IPC 事件无响应、权限不足等。",
  615. "progress_status": "completed",
  616. "dependent_files": "ai-electron/electron/preload/index.ts,ai-electron/electron/preload/bridge.ts,ai-electron/electron/service/os/tray.ts,ai-electron/electron/service/os/security.ts",
  617. "gmt_create": "2026-10-28T07:55:29Z",
  618. "gmt_modified": "2026-10-28T07:55:29Z",
  619. "parent_id": "d36adb59-0865-4057-ac6b-1a3762816c01",
  620. "layer_level": 1,
  621. "order": 1,
  622. "kk_dependent_files": [
  623. "ai-electron/electron/preload/index.ts",
  624. "ai-electron/electron/preload/bridge.ts",
  625. "ai-electron/electron/service/os/tray.ts",
  626. "ai-electron/electron/service/os/security.ts"
  627. ]
  628. },
  629. {
  630. "id": "02425a89-4f3c-4fcb-8125-016b7cc6e537",
  631. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  632. "name": "RAG Schema、向量检索与知识库集成",
  633. "description": "agent-rag-schema-vector",
  634. "prompt": "为 RAG Schema、向量检索与知识库集成创建详细文档。结合 agentscope-extensions-rag-simple、pgvector 和 Spring AI Tika,说明 Schema Catalog 如何描述业务表结构,RAG 如何在 Agent 对话时根据意图对问题进行向量检索,并将上下文注入提示词。解释 RagIndexStatus 表示的索引状态,以及知识库下载日志、嵌入调试接口与 RAG 的关系。给出示例:开启 RAG 后发送调查类问题、查看命中片段、重新构建向量索引。补充常见问题:pgvector 未初始化、向量索引为空、相似检索召回率低、Schema 字段名不一致等。",
  635. "progress_status": "completed",
  636. "dependent_files": "ai-server/pom.xml,ai-electron/frontend/src/ai/,ai-electron/frontend/src/graph/insight/api.ts,docs/testing/ai-template-match-test-cases.md",
  637. "gmt_create": "2026-10-28T07:55:29Z",
  638. "gmt_modified": "2026-10-28T07:55:29Z",
  639. "parent_id": "ec9a24fa-b5b6-4b28-96ab-06ee3089519f",
  640. "layer_level": 1,
  641. "order": 2,
  642. "kk_dependent_files": [
  643. "ai-server/pom.xml",
  644. "ai-electron/frontend/src/ai/",
  645. "ai-electron/frontend/src/graph/insight/api.ts",
  646. "docs/testing/ai-template-match-test-cases.md"
  647. ]
  648. },
  649. {
  650. "id": "034e56aa-57ff-407a-ae4c-7eb6f78922e0",
  651. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  652. "name": "Agent 对话与 RAG 接口",
  653. "description": "agent-chat-and-rag-api",
  654. "prompt": "创建 Agent 对话与 RAG 接口的 API 文档,覆盖 /chat、/models、/agents、/tool-packs、/capability、/agent/artifact、/py/files 以及 Insight 相关控制器。重点说明 Agent 对话 SSE 接口:连接建立方式、请求头中的 x-token、消息体格式、SSE 事件类型、增量内容字段、结束事件、心跳保活机制和中断重连策略。同时文档化模型列表、专家目录、工具包、能力枚举、Artifacts 和 Python 文件管理等 REST 接口,包括 URL、HTTP 方法、请求参数、响应体结构和错误码。说明 AgentScope、LLM Provider、RAG Schema、向量检索与 Python 执行器在对话流程中的作用。提供 curl 和前端 fetch/SSE 示例,并给出 LLM 不可用、RAG 无结果、SSE 断流、Token 过期等问题的排查方法。",
  655. "progress_status": "completed",
  656. "dependent_files": "ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentChatController.java,ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentModelController.java,ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentExpertController.java,ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentToolPackController.java,ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentCapabilityController.java,ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentArtifactController.java,ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentPythonFileController.java,ai-server/src/main/java/com/zsjz/ai/module/agent/insight/controller/InsightController.java",
  657. "gmt_create": "2026-10-28T07:55:29Z",
  658. "gmt_modified": "2026-10-28T07:55:29Z",
  659. "parent_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  660. "layer_level": 1,
  661. "order": 2,
  662. "kk_dependent_files": [
  663. "ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentChatController.java",
  664. "ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentModelController.java",
  665. "ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentExpertController.java",
  666. "ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentToolPackController.java",
  667. "ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentCapabilityController.java",
  668. "ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentArtifactController.java",
  669. "ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentPythonFileController.java",
  670. "ai-server/src/main/java/com/zsjz/ai/module/agent/insight/controller/InsightController.java"
  671. ]
  672. },
  673. {
  674. "id": "087bb53b-235b-4be4-8619-c4f233ed71e3",
  675. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  676. "name": "Agent、专家、工具与聊天附件表",
  677. "description": "agent-schemas",
  678. "prompt": "创建 Agent 相关数据库设计文档,涵盖 agent_expert、agent_tool、chat_attachment、insight_agent_tables 等表。说明 Agent 专家目录、工具定义、聊天附件存储、Insight 数据模型之间的关联关系。详细描述每条表的主键、外键、JSON/文本字段、文件路径或二进制引用字段、状态字段及业务规则。解释这些表如何支撑 Agent 对话、RAG Schema、Workspace Catalog、Artifact、Python 执行器和 Insight 功能。提供 ER 关系图、典型插入/查询示例,并说明大附件、向量检索元数据和会话数据的生命周期管理与清理策略。",
  679. "progress_status": "completed",
  680. "dependent_files": "sql/agent_expert.sql,sql/agent_tool.sql,sql/chat_attachment.sql,sql/insight_agent_tables.sql",
  681. "gmt_create": "2026-10-28T07:55:29Z",
  682. "gmt_modified": "2026-10-28T07:55:29Z",
  683. "parent_id": "c1789760-0a39-4847-879e-bd14a1ed7b37",
  684. "layer_level": 1,
  685. "order": 2,
  686. "kk_dependent_files": [
  687. "sql/agent_expert.sql",
  688. "sql/agent_tool.sql",
  689. "sql/chat_attachment.sql",
  690. "sql/insight_agent_tables.sql"
  691. ]
  692. },
  693. {
  694. "id": "2430cac4-9893-4fa5-b51c-2d967e0f4e01",
  695. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  696. "name": "regInfo.exe 许可证校验流程",
  697. "description": "reginfo-license-validation",
  698. "prompt": "编写 regInfo.exe 许可证校验流程的详细文档。说明客户端如何调用或集成 regInfo.exe,如何获取机器码、过期时间、单位信息,以及如何将这些信息与授权单元进行比对。解释许可证有效、即将过期、已过期等不同状态下的系统行为;说明授权单元在 `/sys/info` 或相关接口返回后的展示位置、水印渲染机制。提供 regInfo.exe 命令行用法、参数说明、返回值约定、错误码含义,以及许可证失效时的回退策略和用户提示。包含部署时安装 regInfo.exe、首次激活、更新许可证的操作示例。",
  699. "progress_status": "completed",
  700. "dependent_files": "readme.md,ai-electron/package.json,ai-electron/frontend/package.json",
  701. "gmt_create": "2026-10-28T07:55:29Z",
  702. "gmt_modified": "2026-10-28T07:55:29Z",
  703. "parent_id": "c77f0da0-55bc-4f69-9e32-f4aca699b57c",
  704. "layer_level": 1,
  705. "order": 2,
  706. "kk_dependent_files": [
  707. "readme.md",
  708. "ai-electron/package.json",
  709. "ai-electron/frontend/package.json"
  710. ]
  711. },
  712. {
  713. "id": "279bf8ac-c655-4c5d-9be4-0653f70965fd",
  714. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  715. "name": "交易模块 trans",
  716. "description": "business-trans",
  717. "prompt": "为交易模块 trans 创建详细文档。说明该模块覆盖资金流水、固定存款、现金、大额、频率、敏感、金融等调查场景下的交易相关实体。解释交易记录如何与人员、账户、通话、轨迹关联,以及如何用于资金流向分析和可疑交易识别。梳理核心表结构、关键字段(如金额、时间、对方账户、交易类型)、约束和业务规则。给出典型查询示例:按账户/人员查资金流水、大额交易筛选、共同交易分析、相互转账检测、高频交易统计。补充大数据量下的查询优化、事务一致性、敏感字段脱敏和审计日志建议。",
  718. "progress_status": "completed",
  719. "dependent_files": "ai-server/pom.xml,sql/case_table.sql,sql/case_table_1.sql,sql/testSql/交易共同.sql,sql/testSql/全部交易关系.sql,sql/testSql/相互交易.sql",
  720. "gmt_create": "2026-10-28T07:55:29Z",
  721. "gmt_modified": "2026-10-28T07:55:29Z",
  722. "parent_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  723. "layer_level": 1,
  724. "order": 2,
  725. "kk_dependent_files": [
  726. "ai-server/pom.xml",
  727. "sql/case_table.sql",
  728. "sql/case_table_1.sql",
  729. "sql/testSql/交易共同.sql",
  730. "sql/testSql/全部交易关系.sql",
  731. "sql/testSql/相互交易.sql"
  732. ]
  733. },
  734. {
  735. "id": "2d92cc7b-fcdd-4353-a322-09eae0d8e610",
  736. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  737. "name": "服务注册中心与健康检查",
  738. "description": "gateway-registry-and-health",
  739. "prompt": "创建网关服务注册与健康检查机制的详细文档。解释 GatewayRegistry 如何以 PostgreSQL gateway_service / gateway_node 表为事实来源,维护内存中的 ServiceInfo 列表快照,并在启动阶段通过 seedFromYamlIfNeeded 播种 YAML 配置。说明 reload() 的同步加载、initialized 标志避免初始循环发布 RefreshRoutesEvent,以及 @Scheduled(fixedDelayString=\"${gateway.registry-poll-interval:10s}\") 的多实例对账机制。介绍 ServiceInfo 与 NodeInfo 的数据模型、pathPrefix 匹配、defaultNodeId 的作用。说明 HealthChecker 与 NodeHealthRegistry 如何维护节点 up/down 状态,以及 StickyRouteFilter 如何结合 healthRegistry.isUp 拒绝不可用节点。补充多实例部署时的配置变更传播、性能考虑和故障排查方法。",
  740. "progress_status": "completed",
  741. "dependent_files": "ai-gateway/src/main/java/com/zsjz/gateway/registry/GatewayRegistry.java,ai-gateway/src/main/java/com/zsjz/gateway/registry/GatewayConfigRepository.java,ai-gateway/src/main/java/com/zsjz/gateway/registry/ServiceInfo.java,ai-gateway/src/main/java/com/zsjz/gateway/registry/NodeInfo.java,ai-gateway/src/main/java/com/zsjz/gateway/registry/HealthChecker.java,ai-gateway/src/main/java/com/zsjz/gateway/registry/NodeHealthRegistry.java,ai-gateway/src/main/java/com/zsjz/gateway/config/GatewayProperties.java",
  742. "gmt_create": "2026-10-28T07:55:29Z",
  743. "gmt_modified": "2026-10-28T07:55:29Z",
  744. "parent_id": "198e92ee-5762-48f9-835d-17889a315be1",
  745. "layer_level": 1,
  746. "order": 2,
  747. "kk_dependent_files": [
  748. "ai-gateway/src/main/java/com/zsjz/gateway/registry/GatewayRegistry.java",
  749. "ai-gateway/src/main/java/com/zsjz/gateway/registry/GatewayConfigRepository.java",
  750. "ai-gateway/src/main/java/com/zsjz/gateway/registry/ServiceInfo.java",
  751. "ai-gateway/src/main/java/com/zsjz/gateway/registry/NodeInfo.java",
  752. "ai-gateway/src/main/java/com/zsjz/gateway/registry/HealthChecker.java",
  753. "ai-gateway/src/main/java/com/zsjz/gateway/registry/NodeHealthRegistry.java",
  754. "ai-gateway/src/main/java/com/zsjz/gateway/config/GatewayProperties.java"
  755. ]
  756. },
  757. {
  758. "id": "3cf3d4f3-856a-4d13-acb8-3aa2bf286c04",
  759. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  760. "name": "技术栈与依赖",
  761. "description": "technology-stack",
  762. "prompt": "整理清鉴 AI 调查工具的技术栈与依赖矩阵,分别说明后端、前端和桌面层的框架与核心库。后端使用 Spring Boot 3.5.16、Spring Cloud Gateway WebFlux、MyBatis-Plus、Dynamic Datasource、Sa-Token、Redis、PostgreSQL/pgvector、DJL HuggingFace Tokenizers + ONNX Runtime、DuckDB JDBC、Spring AI Tika、AgentScope。前端使用 Vue 3、Ant Design Vue、Pinia、Vue Router、Vue I18n、Monaco Editor、CodeMirror、VDitor、Markdown-it、ECharts、AntV G6/X6、Relation Graph、MapLibre GL、PMTiles、Dexie、xlsx、crypto-js、dayjs、lodash-es。桌面层使用 Electron 37、electron-builder、ee-core、electron-updater。列出主要依赖版本、用途和兼容性注意事项,说明 Maven 父工程 pom.xml 与前端 package.json 的依赖管理方式,并指出升级依赖时需要注意的风险点。",
  763. "progress_status": "completed",
  764. "dependent_files": "ai-server/pom.xml,ai-gateway/pom.xml,ai-electron/frontend/package.json,ai-electron/package.json,ai-electron/frontend/tsconfig.json,ai-electron/tsconfig.json",
  765. "gmt_create": "2026-10-28T07:55:29Z",
  766. "gmt_modified": "2026-10-28T07:55:29Z",
  767. "order": 2,
  768. "kk_dependent_files": [
  769. "ai-server/pom.xml",
  770. "ai-gateway/pom.xml",
  771. "ai-electron/frontend/package.json",
  772. "ai-electron/package.json",
  773. "ai-electron/frontend/tsconfig.json",
  774. "ai-electron/tsconfig.json"
  775. ]
  776. },
  777. {
  778. "id": "645f94c6-f003-4b68-b55f-8ed08d10ce69",
  779. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  780. "name": "网关与粘性路由架构",
  781. "description": "gateway-sticky-routing-architecture",
  782. "prompt": "创建 Spring Cloud Gateway 粘性路由架构文档。详细解释 StickyRouteFilter 的设计目标:为什么用户会话必须固定到同一 ai-server 节点,过滤器如何在 RouteToRequestUrlFilter 之后重写 GATEWAY_REQUEST_URL_ATTR,并追加 X-Gateway-Node 响应头。说明 LoginRequestFilter 与 LoginResponseFilter 如何配合完成登录前标识和登录后写库绑定;GatewayRegistry、NodeHealthRegistry 等组件如何维护服务/节点注册表与健康状态。画出用户请求经过网关转发到指定 ai-server 的数据流图,说明跨节点切换策略、节点 DOWN 返回 503 的原因,以及 gateway_service / gateway_node 表的作用。补充 CORS、RequestId、错误处理等横切关注点和运维排查要点。",
  783. "progress_status": "completed",
  784. "dependent_files": "ai-gateway/src/main/java/com/zsjz/gateway/route/StickyRouteFilter.java,ai-gateway/src/main/java/com/zsjz/gateway/filter/LoginResponseFilter.java,ai-gateway/src/main/java/com/zsjz/gateway/filter/LoginRequestFilter.java,ai-gateway/src/main/java/com/zsjz/gateway/config/CorsConfig.java,ai-gateway/src/main/java/com/zsjz/gateway/GatewayApplication.java,ai-gateway/pom.xml,sql/gateway.sql",
  785. "gmt_create": "2026-10-28T07:55:29Z",
  786. "gmt_modified": "2026-10-28T07:55:29Z",
  787. "parent_id": "a4b69928-d9a2-469a-8611-d8167311ed51",
  788. "layer_level": 1,
  789. "order": 2,
  790. "kk_dependent_files": [
  791. "ai-gateway/src/main/java/com/zsjz/gateway/route/StickyRouteFilter.java",
  792. "ai-gateway/src/main/java/com/zsjz/gateway/filter/LoginResponseFilter.java",
  793. "ai-gateway/src/main/java/com/zsjz/gateway/filter/LoginRequestFilter.java",
  794. "ai-gateway/src/main/java/com/zsjz/gateway/config/CorsConfig.java",
  795. "ai-gateway/src/main/java/com/zsjz/gateway/GatewayApplication.java",
  796. "ai-gateway/pom.xml",
  797. "sql/gateway.sql"
  798. ]
  799. },
  800. {
  801. "id": "7ed47ff0-8933-4302-ac7f-15ef5c824483",
  802. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  803. "name": "添加新模块与新功能",
  804. "description": "adding-new-module",
  805. "prompt": "创建添加新模块与新功能的实操指南。说明如何在 ai-server 中添加新的 Spring Boot 业务模块(controller、service、mapper、entity),如何注册到应用上下文,以及如何通过 MyBatis-Plus 访问数据库。说明在 ai-gateway 中新增网关管理接口或过滤器的步骤。说明在前端 App.vue 或路由中注册新页面、新增 IPC 接口时如何修改 preload bridge 和 Electron main.ts。给出完整示例:新增一个查询外部表的后端模块 + 前端页面 + 对应 SQL 初始化脚本。包含 API 版本兼容、配置项扩展、日志记录和测试建议。",
  806. "progress_status": "completed",
  807. "dependent_files": "ai-server/pom.xml,ai-gateway/src/main/java/com/zsjz/gateway/GatewayApplication.java,ai-electron/frontend/src/App.vue,ai-electron/electron/main.ts,ai-electron/electron/preload/index.ts,sql/gateway.sql",
  808. "gmt_create": "2026-10-28T07:55:29Z",
  809. "gmt_modified": "2026-10-28T07:55:29Z",
  810. "parent_id": "922749ea-6307-428f-bfd8-4feb065746a6",
  811. "layer_level": 1,
  812. "order": 2,
  813. "kk_dependent_files": [
  814. "ai-server/pom.xml",
  815. "ai-gateway/src/main/java/com/zsjz/gateway/GatewayApplication.java",
  816. "ai-electron/frontend/src/App.vue",
  817. "ai-electron/electron/main.ts",
  818. "ai-electron/electron/preload/index.ts",
  819. "sql/gateway.sql"
  820. ]
  821. },
  822. {
  823. "id": "82b197df-b35b-47fc-8bef-78cdebd2c2f8",
  824. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  825. "name": "批量清洗任务",
  826. "description": "ai-clean-batch-jobs",
  827. "prompt": "编写 AI 数据清洗中批量清洗任务的详细文档。说明 AiCleanBatch、AiCleanJob、AiRecordCleaner、AiDuckDb、AiRowReader、SheetProbe 等组件的职责和调用关系,解释用户上传 CSV/Excel 后如何解析 Sheet、读取行、匹配清洗模板、执行清洗规则、写入 DuckDB 临时表或目标表,以及如何生成清洗结果和错误记录。详细说明批量任务的生命周期:创建任务、分配 Job、读取数据、执行清洗、收集拒绝记录、更新状态、完成或失败。给出完整的端到端示例:前端上传文件 → 后端创建批量任务 → 选择或自动匹配模板 → 执行清洗 → 查看进度和结果。说明任务状态枚举、失败重试机制、超时处理和并发限制。补充常见问题:批量任务卡住、大文件内存不足、DuckDB 写入失败、模板中途变更、任务状态不一致等。",
  828. "progress_status": "completed",
  829. "dependent_files": "sql/ai_clean_row_stats.sql,ai-server/src/main/java/com/zsjz/ai/module/aiclean/entity/AiCleanBatch.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/entity/AiCleanJob.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/service/AiCleanService.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/service/AiSmartCleanService.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/exec/AiRecordCleaner.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/exec/AiDuckDb.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/probe/AiRowReader.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/probe/SheetProbe.java",
  830. "gmt_create": "2026-10-28T07:55:29Z",
  831. "gmt_modified": "2026-10-28T07:55:29Z",
  832. "parent_id": "fbd0f840-7bf0-40b1-9ae4-01dd991a8752",
  833. "layer_level": 1,
  834. "order": 2,
  835. "kk_dependent_files": [
  836. "sql/ai_clean_row_stats.sql",
  837. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/entity/AiCleanBatch.java",
  838. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/entity/AiCleanJob.java",
  839. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/service/AiCleanService.java",
  840. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/service/AiSmartCleanService.java",
  841. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/exec/AiRecordCleaner.java",
  842. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/exec/AiDuckDb.java",
  843. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/probe/AiRowReader.java",
  844. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/probe/SheetProbe.java"
  845. ]
  846. },
  847. {
  848. "id": "8b970997-124e-46b3-86f0-da34175ae365",
  849. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  850. "name": "向量存储与检索",
  851. "description": "knowledge-vector-storage",
  852. "prompt": "创建知识与向量存储层的详细文档。说明知识文档向量在 pgvector 中的表结构设计、主键与外键关系、向量维度来源、索引类型和查询语句。解释 KnowledgeVectorMapper 提供的插入、更新、删除和相似检索接口,以及它如何被 Agent 的 KnowledgeSearchTool 或 RAG Schema 检索使用。给出向量插入、按相似度 TopK 检索、按文档 ID 删除向量的 SQL/Java 示例。补充向量归一化、余弦距离计算、批量写入、索引刷新策略、向量维度不匹配问题、召回率调优、pgvector 扩展安装和性能监控建议。",
  853. "progress_status": "completed",
  854. "dependent_files": "ai-server/src/main/java/com/zsjz/ai/module/knowledge/mapper/KnowledgeVectorMapper.java,ai-server/src/main/java/com/zsjz/ai/module/knowledge/entity/KnowledgeDoc.java,ai-server/src/main/java/com/zsjz/ai/module/agent/rag/EmbeddingProvider.java,ai-server/src/main/java/com/zsjz/ai/module/agent/tools/KnowledgeSearchTool.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/index/AiCleanTemplateVectorIndex.java,sql/gateway.sql",
  855. "gmt_create": "2026-10-28T07:55:29Z",
  856. "gmt_modified": "2026-10-28T07:55:29Z",
  857. "parent_id": "fde671b0-e5b4-4ff9-9baa-df07ebc75177",
  858. "layer_level": 1,
  859. "order": 2,
  860. "kk_dependent_files": [
  861. "ai-server/src/main/java/com/zsjz/ai/module/knowledge/mapper/KnowledgeVectorMapper.java",
  862. "ai-server/src/main/java/com/zsjz/ai/module/knowledge/entity/KnowledgeDoc.java",
  863. "ai-server/src/main/java/com/zsjz/ai/module/agent/rag/EmbeddingProvider.java",
  864. "ai-server/src/main/java/com/zsjz/ai/module/agent/tools/KnowledgeSearchTool.java",
  865. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/index/AiCleanTemplateVectorIndex.java",
  866. "sql/gateway.sql"
  867. ]
  868. },
  869. {
  870. "id": "d4244f4c-2490-44b5-b0da-669fa5f4ff93",
  871. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  872. "name": "Electron 客户端构建与发布",
  873. "description": "deployment-electron-client",
  874. "prompt": "创建 Electron 桌面客户端的构建、打包与发布文档。说明 ai-electron/package.json 中的 scripts:dev、build、start、build-frontend、build-electron、build-w、build-m、build-m-arm64、build-l 等命令的作用和执行顺序,包括前端构建、Electron 构建、ee-bin 加密和 electron-updater 集成。解释 Windows、Linux、macOS 三端打包产物的差异,以及如何通过 pnpm/npm 在 CI 或本地生成安装包。说明前端 bin 目录下的 build.sh、install.sh、startup.*、install.bat、build.bat 脚本用途,以及与 ee-core/electron-builder 的关系。补充客户端自动更新配置、版本号管理、增量更新和回滚注意事项。包含常见问题:Node 版本不匹配、better-sqlite3 重建、前端构建失败、签名/公证失败、更新服务器地址配置错误等。",
  875. "progress_status": "completed",
  876. "dependent_files": "ai-electron/package.json,ai-electron/frontend/bin/build.sh,ai-electron/frontend/bin/install.sh,ai-electron/frontend/bin/startup.sh,ai-electron/frontend/bin/startup.bat,ai-electron/frontend/bin/install.bat,ai-electron/frontend/bin/build.bat",
  877. "gmt_create": "2026-10-28T07:55:29Z",
  878. "gmt_modified": "2026-10-28T07:55:29Z",
  879. "parent_id": "67aa6a8d-c25c-435e-be2c-9a5fda6668b7",
  880. "layer_level": 1,
  881. "order": 2,
  882. "kk_dependent_files": [
  883. "ai-electron/package.json",
  884. "ai-electron/frontend/bin/build.sh",
  885. "ai-electron/frontend/bin/install.sh",
  886. "ai-electron/frontend/bin/startup.sh",
  887. "ai-electron/frontend/bin/startup.bat",
  888. "ai-electron/frontend/bin/install.bat",
  889. "ai-electron/frontend/bin/build.bat"
  890. ]
  891. },
  892. {
  893. "id": "e5327e25-d642-48b6-a00b-3ee3df9a45fc",
  894. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  895. "name": "多数据源配置与切换",
  896. "description": "multi-datasource-config",
  897. "prompt": "编写 MyBatis-Plus + Dynamic Datasource 多数据源配置文档。说明 PostgreSQL/pgvector 作为主业务数据源、DuckDB 作为临时/本地计算数据源的用途差异;解释如何在配置中声明多个数据源,以及在 Service 层按场景切换数据源的方式。描述 pgvector 向量表的使用约束、索引策略和性能注意事项。给出典型用法示例:普通 CRUD 使用默认数据源,批量清洗或临时分析切换到 DuckDB。补充常见问题:数据源选择错误、pgvector 扩展未安装、DuckDB JDBC 连接失败、事务跨数据源限制等。",
  898. "progress_status": "completed",
  899. "dependent_files": "ai-server/pom.xml,ai-server/src/main/java/com/zsjz/ai/",
  900. "gmt_create": "2026-10-28T07:55:29Z",
  901. "gmt_modified": "2026-10-28T07:55:29Z",
  902. "parent_id": "1721b548-ae66-4730-9aba-43ab062f7390",
  903. "layer_level": 1,
  904. "order": 2,
  905. "kk_dependent_files": [
  906. "ai-server/pom.xml",
  907. "ai-server/src/main/java/com/zsjz/ai/"
  908. ]
  909. },
  910. {
  911. "id": "efa5573e-0743-4e8b-adba-e6efadecc9f2",
  912. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  913. "name": "单元测试与 E2E 测试",
  914. "description": "unit-testing",
  915. "prompt": "编写单元测试与 E2E 测试指南。说明后端 JUnit 测试的组织方式,包括 HeaderScorerTest、AiTemplateMatcherTest、AiTemplateMatchEdgeTest、AiCleanSupportTest 等与模板打分、绑定、边缘场景相关的用例;说明 C/D 类 E2E 如何通过 HTTP API 在案件 A=16/B=17 上执行真实清洗链路,并通过 target/aitest_*.py 和 target/aitest/*.json 记录结果。说明 Electron 侧 vitest.config.mts 中 include=['electron/**/*.test.ts'] 和 passWithNoTests=true 的含义,指导如何在主进程新增 .test.ts 单测。补充测试数据隔离、数据库清理、登录态处理、重复上传去重、损坏文件容错等常见测试模式,并给出调试断言失败和定位真实链路问题的步骤。",
  916. "progress_status": "completed",
  917. "dependent_files": "ai-electron/vitest.config.mts,docs/testing/ai-template-match-test-cases.md",
  918. "gmt_create": "2026-10-28T07:55:29Z",
  919. "gmt_modified": "2026-10-28T07:55:29Z",
  920. "parent_id": "b7c1dade-a869-4023-920a-f5f527a56403",
  921. "layer_level": 1,
  922. "order": 2,
  923. "kk_dependent_files": [
  924. "ai-electron/vitest.config.mts",
  925. "docs/testing/ai-template-match-test-cases.md"
  926. ]
  927. },
  928. {
  929. "id": "ffe7bd4f-414d-489a-92fa-f265405a7add",
  930. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  931. "name": "窗口控制与跨窗口状态同步",
  932. "description": "electron-window-control",
  933. "prompt": "为 Electron 窗口控制与跨窗口状态同步编写详细文档。重点说明 ai-electron/electron/controller/windowCtl.ts 中的 WindowCtl 类如何作为主进程控制器,提供 openSmartWindow、closeSmartWindow、isSmartWindowOpen、focusMainWindow、getWindowRole、syncState 等 IPC 方法。解释智能工作台窗口与普通主窗口的角色区分(main vs smart),以及 syncState 如何通过 SYNC_EVENT_CHANNEL='app:state' 向除发送者外的所有窗口广播语义事件。说明这些方法与前端 appWindow.ts 的 closeSmartWindow、focusMainWindow、initWindowRole、isSmartWindow 之间的调用关系。给出新增窗口控制方法的示例:后端 controller 方法、前端调用、跨窗口事件监听。包含常见问题:多窗口状态不同步、智能窗口未关闭、主窗口未聚焦、getWindowRole 返回错误角色等。",
  934. "progress_status": "completed",
  935. "dependent_files": "ai-electron/electron/controller/windowCtl.ts,ai-electron/electron/service/window/smartWindow.ts,ai-electron/frontend/src/core/logics/appWindow.ts",
  936. "gmt_create": "2026-10-28T07:55:29Z",
  937. "gmt_modified": "2026-10-28T07:55:29Z",
  938. "parent_id": "d36adb59-0865-4057-ac6b-1a3762816c01",
  939. "layer_level": 1,
  940. "order": 2,
  941. "kk_dependent_files": [
  942. "ai-electron/electron/controller/windowCtl.ts",
  943. "ai-electron/electron/service/window/smartWindow.ts",
  944. "ai-electron/frontend/src/core/logics/appWindow.ts"
  945. ]
  946. },
  947. {
  948. "id": "03a0099f-84a3-433f-972a-b9d3b4ad8a03",
  949. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  950. "name": "AI 数据清洗接口",
  951. "description": "ai-clean-api",
  952. "prompt": "创建 AI 数据清洗接口的 API 文档,覆盖 /aiClean、/aiClean/synonym 以及 CleanErrorLogController 暴露的接口。说明清洗模板匹配、智能清洗任务、同义词与字段短名映射、批量清洗、清洗结果与错误日志等功能的 REST 接口。对每个接口记录 HTTP 方法、URL、请求参数、响应体、分页字段和错误码;对上传 CSV/Excel 和下载清洗结果的接口,说明文件类型、大小限制、字符编码和进度反馈方式。说明清洗流程与 pgvector、DuckDB 临时数据源的关系,以及清洗失败时如何通过错误日志定位问题。提供 curl 或前端 FormData 调用示例,并给出模板不匹配、字段映射错误、任务失败、向量索引异常等常见问题的排查步骤。",
  953. "progress_status": "completed",
  954. "dependent_files": "ai-server/src/main/java/com/zsjz/ai/module/aiclean/api/AiCleanController.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/api/AiSmartCleanController.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/api/AiCleanSynonymController.java,ai-server/src/main/java/com/zsjz/ai/module/dm/controller/CleanErrorLogController.java",
  955. "gmt_create": "2026-10-28T07:55:29Z",
  956. "gmt_modified": "2026-10-28T07:55:29Z",
  957. "parent_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  958. "layer_level": 1,
  959. "order": 3,
  960. "kk_dependent_files": [
  961. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/api/AiCleanController.java",
  962. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/api/AiSmartCleanController.java",
  963. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/api/AiCleanSynonymController.java",
  964. "ai-server/src/main/java/com/zsjz/ai/module/dm/controller/CleanErrorLogController.java"
  965. ]
  966. },
  967. {
  968. "id": "0b5c5236-0103-4f16-b57a-56e7e7be9713",
  969. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  970. "name": "前端代码规范与质量工具",
  971. "description": "frontend-code-quality",
  972. "prompt": "编写前端代码规范与质量工具文档。基于 eslint.config.mjs 说明 ESLint 对 Vue、TypeScript、JavaScript 文件的解析器、插件和规则配置,包括忽略 node_modules/dist/public/build/.git 等路径、Vue 组件规则、TS 宽松规则、Prettier 集成(printWidth=120、semi=true、singleQuote=true、trailingComma=all)。基于 stylelint.config.mjs 说明 Stylelint 对 HTML/Vue/Less/SCSS 的处理,包括 postcss-html、stylelint-config-standard、less/scss 扩展、v-deep/global/deep 伪类伪元素白名单、rpx 单位白名单、inset 禁用和 top/right/bottom/left 允许列表。给出常用命令、IDE 集成建议、常见报错修复方法,以及新增样式语言或 Vue 规则时的扩展方式。",
  973. "progress_status": "completed",
  974. "dependent_files": "ai-electron/frontend/eslint.config.mjs,ai-electron/frontend/stylelint.config.mjs",
  975. "gmt_create": "2026-10-28T07:55:29Z",
  976. "gmt_modified": "2026-10-28T07:55:29Z",
  977. "parent_id": "b7c1dade-a869-4023-920a-f5f527a56403",
  978. "layer_level": 1,
  979. "order": 3,
  980. "kk_dependent_files": [
  981. "ai-electron/frontend/eslint.config.mjs",
  982. "ai-electron/frontend/stylelint.config.mjs"
  983. ]
  984. },
  985. {
  986. "id": "0e2872d4-dad7-4efb-ade8-a2e5f8e13a86",
  987. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  988. "name": "目录结构与代码组织",
  989. "description": "directory-structure",
  990. "prompt": "说明仓库顶层目录和各子工程的职责划分。解释 ai-electron 下 electron(主进程、preload、controller、service)、frontend(Vue 3 渲染进程)、public、out、logs、docs 等目录的作用;说明 ai-gateway 中 src/main/java/com/zsjz/gateway 下的路由、过滤器、注册中心和管理接口;说明 ai-server 中 module/* 按业务域划分的 controller/service/mapper/entity 组织结构。结合 pom.xml 和 package.json 解释模块入口文件:ai-electron/electron/main.ts、ai-electron/frontend/src/App.vue、ai-gateway 和 ai-server 的 Spring Boot 入口。补充 SQL、docs、deploy、cmd、data 等非源码目录的使用规范,帮助新成员快速定位代码。",
  991. "progress_status": "completed",
  992. "dependent_files": "pom.xml,ai-electron/electron/main.ts,ai-electron/frontend/src/App.vue,ai-server/pom.xml,ai-gateway/pom.xml",
  993. "gmt_create": "2026-10-28T07:55:29Z",
  994. "gmt_modified": "2026-10-28T07:55:29Z",
  995. "order": 3,
  996. "kk_dependent_files": [
  997. "pom.xml",
  998. "ai-electron/electron/main.ts",
  999. "ai-electron/frontend/src/App.vue",
  1000. "ai-server/pom.xml",
  1001. "ai-gateway/pom.xml"
  1002. ]
  1003. },
  1004. {
  1005. "id": "258ef8d6-d1f0-4ec5-86c4-67200e3f8c37",
  1006. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1007. "name": "前端根应用与启动流程",
  1008. "description": "frontend-root-application",
  1009. "prompt": "为前端根应用与启动流程编写详细文档。说明 ai-electron/frontend/src/main.ts 如何初始化 UnoCSS、Ant Design Vue reset 样式、全局设计样式、AI 模块样式,然后创建 Vue 应用、注册全局组件、国际化、路由、Store、错误处理、Tab 监听补丁和弹窗行为补丁。解释启动探测逻辑 waitForBackendReady:最多重试 10 次、每次间隔约 3 秒,调用 healthApi 探测后端是否就绪,并在 loading 页显示重试提示、重连按钮和服务地址设置入口。说明 App.vue 如何配置 Ant Design Vue 主题、语言、AppProvider,并通过 authorizationInfoApi 获取授权单元,写入水印。解释 isServerSetupMissing、getApiOrigin、PageEnum.BASE_AUTHORIZATION、PageEnum.BASE_SERVER_SETUP 在启动路由和授权判断中的作用。给出新增全局初始化逻辑、启动探测扩展、授权缓存处理的示例。包含常见问题:后端连接失败、loading 卡住、授权信息不显示、路由跳转到 404、服务地址为空等。",
  1010. "progress_status": "completed",
  1011. "dependent_files": "ai-electron/frontend/src/App.vue,ai-electron/frontend/src/main.ts,ai-electron/frontend/src/core/settings/serverSetting.ts,ai-electron/frontend/src/core/api/sys/login.ts",
  1012. "gmt_create": "2026-10-28T07:55:29Z",
  1013. "gmt_modified": "2026-10-28T07:55:29Z",
  1014. "parent_id": "d36adb59-0865-4057-ac6b-1a3762816c01",
  1015. "layer_level": 1,
  1016. "order": 3,
  1017. "kk_dependent_files": [
  1018. "ai-electron/frontend/src/App.vue",
  1019. "ai-electron/frontend/src/main.ts",
  1020. "ai-electron/frontend/src/core/settings/serverSetting.ts",
  1021. "ai-electron/frontend/src/core/api/sys/login.ts"
  1022. ]
  1023. },
  1024. {
  1025. "id": "5352975b-7714-4098-a0f1-a8f2946e68b3",
  1026. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1027. "name": "安装包卸载与清理",
  1028. "description": "deployment-uninstallation",
  1029. "prompt": "创建清鉴客户端卸载与数据清理指南。说明 cmd/uninstall.bat(Windows)和 cmd/uninstall.sh(Linux/macOS)卸载脚本的功能:强制终止 qingjian-client 进程、递归删除 ~/.config/qingjian-client、~/.local/share/QingJian、~/.qingjian-client 等用户数据目录。解释 Linux 脚本的安全检查逻辑($HOME 判空、pkill 返回值、rm -rf 权限问题提示),以及 Windows 批处理对应的清理范围。提供管理员权限执行方法、卸载前备份建议和数据恢复注意事项。补充手动清理清单:浏览器缓存中的服务地址、Electron AppData、临时文件、残留进程和注册表项(如适用)。包含常见问题:进程无法终止、权限不足、部分目录未被删除、卸载后仍显示旧授权信息等的处理方法。",
  1030. "progress_status": "completed",
  1031. "dependent_files": "cmd/uninstall.bat,cmd/uninstall.sh",
  1032. "gmt_create": "2026-10-28T07:55:29Z",
  1033. "gmt_modified": "2026-10-28T07:55:29Z",
  1034. "parent_id": "67aa6a8d-c25c-435e-be2c-9a5fda6668b7",
  1035. "layer_level": 1,
  1036. "order": 3,
  1037. "kk_dependent_files": [
  1038. "cmd/uninstall.bat",
  1039. "cmd/uninstall.sh"
  1040. ]
  1041. },
  1042. {
  1043. "id": "652c39da-67ee-45ba-ad92-262987cc74c1",
  1044. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1045. "name": "调试与问题排查",
  1046. "description": "debugging-and-troubleshooting",
  1047. "prompt": "创建开发者调试与问题排查指南。覆盖常见问题定位路径:Gateway 粘性路由无法绑定用户、登录成功后仍 503、Agent SSE 断连或心跳异常、pgvector 向量检索无结果、地图加载失败、许可证校验失败、Electron 主进程崩溃、前端资源加载异常。说明如何查看服务端日志、网关日志、Electron 控制台和网络请求。给出 StickyRouteFilter 中 token/username 解析、节点选择、URL 重写和 X-Gateway-Node 响应头的检查方法。说明如何验证 Agent LLM 调用、RAG Schema 检索、Python 执行器和附件上传。提供诊断清单、复现步骤和恢复建议。",
  1048. "progress_status": "completed",
  1049. "dependent_files": "ai-gateway/src/main/java/com/zsjz/gateway/route/StickyRouteFilter.java,ai-electron/electron/main.ts,ai-electron/frontend/src/App.vue,readme.md,ai-electron/electron/config/config.default.ts,ai-electron/electron/config/windowOptions.ts",
  1050. "gmt_create": "2026-10-28T07:55:29Z",
  1051. "gmt_modified": "2026-10-28T07:55:29Z",
  1052. "parent_id": "922749ea-6307-428f-bfd8-4feb065746a6",
  1053. "layer_level": 1,
  1054. "order": 3,
  1055. "kk_dependent_files": [
  1056. "ai-gateway/src/main/java/com/zsjz/gateway/route/StickyRouteFilter.java",
  1057. "ai-electron/electron/main.ts",
  1058. "ai-electron/frontend/src/App.vue",
  1059. "readme.md",
  1060. "ai-electron/electron/config/config.default.ts",
  1061. "ai-electron/electron/config/windowOptions.ts"
  1062. ]
  1063. },
  1064. {
  1065. "id": "684b1d01-a312-48fb-87c4-3e103deb4f35",
  1066. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1067. "name": "Electron 安全边界与本地文件保护",
  1068. "description": "electron-security-boundaries",
  1069. "prompt": "编写 Electron 桌面端安全边界与本地文件保护文档。说明主进程、preload 桥接、渲染进程之间的权限隔离模型,preload bridge 暴露给前端的能力边界,以及为什么不应直接暴露 Node/Electron API。说明敏感配置、服务地址、token、工作区目录、地图资源、PMTiles 文件的本地存储位置和访问控制。结合窗口控制器 windowCtl 说明窗口创建、URL 白名单、弹窗限制等安全措施。给出本地文件泄露、恶意 HTML 视图加载、跨域读取等安全风险及防护建议。",
  1070. "progress_status": "completed",
  1071. "dependent_files": "ai-electron/electron/main.ts,ai-electron/electron/preload/index.ts,ai-electron/electron/preload/bridge.ts,ai-electron/electron/controller/windowCtl.ts",
  1072. "gmt_create": "2026-10-28T07:55:29Z",
  1073. "gmt_modified": "2026-10-28T07:55:29Z",
  1074. "parent_id": "c77f0da0-55bc-4f69-9e32-f4aca699b57c",
  1075. "layer_level": 1,
  1076. "order": 3,
  1077. "kk_dependent_files": [
  1078. "ai-electron/electron/main.ts",
  1079. "ai-electron/electron/preload/index.ts",
  1080. "ai-electron/electron/preload/bridge.ts",
  1081. "ai-electron/electron/controller/windowCtl.ts"
  1082. ]
  1083. },
  1084. {
  1085. "id": "84773149-8223-4a20-a62c-5319d4527d3f",
  1086. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1087. "name": "工具包、Python 执行器与 Artifact",
  1088. "description": "agent-tools-python-artifacts",
  1089. "prompt": "为工具包、Python 执行器与 Artifact 创建详细文档。说明 AgentTool、AgentToolPackEntity、AgentToolRegistry 构成的工具目录体系,AgentToolCatalogService 如何加载和匹配工具,以及 AgentPythonFileController 提供的 Python 文件上传与管理能力。解释 AgentArtifactController 如何管理 Agent 生成的附件、中间文件或可视化结果,以及前端 artifacts.ts 如何展示这些产物。给出示例:注册新工具、调用 Python 脚本、上传数据文件、查看工具调用结果和 Artifact 预览。补充常见问题:Python 执行权限不足、脚本超时、工具未注册、Artifact 路径不存在、并发访问冲突等。",
  1090. "progress_status": "completed",
  1091. "dependent_files": "ai-server/src/main/java/com/zsjz/ai/module/agent/tools/AgentToolRegistry.java,ai-server/src/main/java/com/zsjz/ai/module/agent/entity/AgentTool.java,ai-server/src/main/java/com/zsjz/ai/module/agent/service/AgentToolCatalogService.java,ai-server/src/main/java/com/zsjz/ai/module/agent/service/impl/AgentToolCatalogServiceImpl.java,ai-server/src/main/java/com/zsjz/ai/module/agent/entity/AgentToolPackEntity.java,ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentToolPackController.java,ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentPythonFileController.java,ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentArtifactController.java,ai-electron/frontend/src/ai/api/capabilityApi.ts,ai-electron/frontend/src/ai/utils/artifacts.ts",
  1092. "gmt_create": "2026-10-28T07:55:29Z",
  1093. "gmt_modified": "2026-10-28T07:55:29Z",
  1094. "parent_id": "ec9a24fa-b5b6-4b28-96ab-06ee3089519f",
  1095. "layer_level": 1,
  1096. "order": 3,
  1097. "kk_dependent_files": [
  1098. "ai-server/src/main/java/com/zsjz/ai/module/agent/tools/AgentToolRegistry.java",
  1099. "ai-server/src/main/java/com/zsjz/ai/module/agent/entity/AgentTool.java",
  1100. "ai-server/src/main/java/com/zsjz/ai/module/agent/service/AgentToolCatalogService.java",
  1101. "ai-server/src/main/java/com/zsjz/ai/module/agent/service/impl/AgentToolCatalogServiceImpl.java",
  1102. "ai-server/src/main/java/com/zsjz/ai/module/agent/entity/AgentToolPackEntity.java",
  1103. "ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentToolPackController.java",
  1104. "ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentPythonFileController.java",
  1105. "ai-server/src/main/java/com/zsjz/ai/module/agent/controller/AgentArtifactController.java",
  1106. "ai-electron/frontend/src/ai/api/capabilityApi.ts",
  1107. "ai-electron/frontend/src/ai/utils/artifacts.ts"
  1108. ]
  1109. },
  1110. {
  1111. "id": "971bd1ce-217d-4f0c-a6ad-29840ae2639f",
  1112. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1113. "name": "轨迹模块 track",
  1114. "description": "business-track",
  1115. "prompt": "为轨迹模块 track 创建详细文档。说明该模块管理快递、同行、同住、同城、基站、火车票等轨迹类调查数据,帮助还原目标人员的时间线和空间活动。解释轨迹数据与人员 person、通话 call、交易 trans 的关联方式,以及在案件串并、行踪追踪中的作用。梳理各轨迹类型的实体结构、时间戳、地理位置字段、来源系统标识和清洗规则。给出查询示例:按人员和时间范围查轨迹、同行/同住关系挖掘、基站热点分析、跨系统轨迹合并。补充地理信息查询优化、时间窗口过滤、轨迹去重和可视化对接建议。",
  1116. "progress_status": "completed",
  1117. "dependent_files": "ai-server/pom.xml,sql/case_table.sql,sql/case_table_1.sql,sql/testSql/轨迹测试.sql",
  1118. "gmt_create": "2026-10-28T07:55:29Z",
  1119. "gmt_modified": "2026-10-28T07:55:29Z",
  1120. "parent_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  1121. "layer_level": 1,
  1122. "order": 3,
  1123. "kk_dependent_files": [
  1124. "ai-server/pom.xml",
  1125. "sql/case_table.sql",
  1126. "sql/case_table_1.sql",
  1127. "sql/testSql/轨迹测试.sql"
  1128. ]
  1129. },
  1130. {
  1131. "id": "9d19f6ee-79cd-4e4a-9a0d-dea1880bbf9c",
  1132. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1133. "name": "认证与会话管理",
  1134. "description": "authentication-session",
  1135. "prompt": "编写基于 Sa-Token 的认证与会话管理文档。说明用户登录流程、Token 生成与校验、会话状态在 Redis 中的存储方式,以及客户端 x-token 如何与服务端会话关联。解释与网关 StickyRouteFilter 的协作关系:Gateway 负责按用户名绑定节点,ai-server 负责实际 Token 校验。描述账号被顶下线/踢下线后释放案件数据源的行为,以及登录失效时前端清理缓存的注意事项。补充安全建议:Token 泄露处理、会话超时配置、敏感接口鉴权模式和调试方法。",
  1136. "progress_status": "completed",
  1137. "dependent_files": "ai-server/pom.xml,ai-server/src/main/java/com/zsjz/ai/",
  1138. "gmt_create": "2026-10-28T07:55:29Z",
  1139. "gmt_modified": "2026-10-28T07:55:29Z",
  1140. "parent_id": "1721b548-ae66-4730-9aba-43ab062f7390",
  1141. "layer_level": 1,
  1142. "order": 3,
  1143. "kk_dependent_files": [
  1144. "ai-server/pom.xml",
  1145. "ai-server/src/main/java/com/zsjz/ai/"
  1146. ]
  1147. },
  1148. {
  1149. "id": "bba68a9f-bcb3-4c71-a2eb-1f56005e29f1",
  1150. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1151. "name": "清洗结果与统计",
  1152. "description": "ai-clean-results-and-stats",
  1153. "prompt": "编写 AI 数据清洗中清洗结果与统计的详细文档。说明 AiRowCleanResult、AiRejectRecord、ColumnError、AiRejectReason 等模型的结构和用途,解释成功行、拒绝行、列级错误、拒绝原因分类之间的关系。详细说明清洗结果如何持久化、如何统计行数、成功数、拒绝数和各类错误分布,以及 ai_clean_row_stats.sql 对应的统计设计。给出查看清洗结果、导出成功数据和错误数据的示例,包括前端 case 目录中与清洗结果展示相关的界面交互。说明结果数据的保留策略、清理时机和性能考虑。补充常见问题:结果为空但任务成功、拒绝记录缺失、错误列信息不准确、统计数据延迟、导出文件过大等。",
  1154. "progress_status": "completed",
  1155. "dependent_files": "sql/ai_clean_row_stats.sql,ai-server/src/main/java/com/zsjz/ai/module/aiclean/model/AiRowCleanResult.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/model/AiRejectRecord.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/model/ColumnError.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/exec/AiRejectCollector.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/enums/AiRejectReason.java,ai-electron/frontend/src/case/",
  1156. "gmt_create": "2026-10-28T07:55:29Z",
  1157. "gmt_modified": "2026-10-28T07:55:29Z",
  1158. "parent_id": "fbd0f840-7bf0-40b1-9ae4-01dd991a8752",
  1159. "layer_level": 1,
  1160. "order": 3,
  1161. "kk_dependent_files": [
  1162. "sql/ai_clean_row_stats.sql",
  1163. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/model/AiRowCleanResult.java",
  1164. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/model/AiRejectRecord.java",
  1165. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/model/ColumnError.java",
  1166. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/exec/AiRejectCollector.java",
  1167. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/enums/AiRejectReason.java",
  1168. "ai-electron/frontend/src/case/"
  1169. ]
  1170. },
  1171. {
  1172. "id": "be260c76-7452-4c32-b391-518638e55800",
  1173. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1174. "name": "嵌入调试接口",
  1175. "description": "embedding-debug-interface",
  1176. "prompt": "创建嵌入调试接口的详细文档。说明 EmbeddingDebugController.debug 如何通过 EmbeddingService 调用本地 ONNX 推理引擎 OnnxEmbeddingEngine,对一批输入文本生成向量、计算两两余弦相似度矩阵,并返回维度、耗时、向量数组和相似度矩阵。明确该接口只用于验证本地 embedding 模型是否正常,不参与业务路由。提供 EmbeddingDebugDTO 和 EmbeddingDebugVO 的请求/响应 JSON 示例,说明 dimension、embedMillis、vectors[]、similarity[][] 的含义。补充 ONNX 模型加载、向量维度配置、归一化行为、批量大小、内存占用、CPU/GPU 性能、调试结果解读和模型部署故障排查指南。",
  1177. "progress_status": "completed",
  1178. "dependent_files": "ai-server/src/main/java/com/zsjz/ai/module/embedding/controller/EmbeddingDebugController.java,ai-server/src/main/java/com/zsjz/ai/module/embedding/service/EmbeddingService.java,ai-server/src/main/java/com/zsjz/ai/module/embedding/core/OnnxEmbeddingEngine.java,ai-server/src/main/java/com/zsjz/ai/module/embedding/config/EmbeddingProperties.java,ai-server/src/main/java/com/zsjz/ai/module/embedding/vo/EmbeddingDebugVO.java,ai-server/src/main/java/com/zsjz/ai/module/embedding/dto/EmbeddingDebugDTO.java",
  1179. "gmt_create": "2026-10-28T07:55:29Z",
  1180. "gmt_modified": "2026-10-28T07:55:29Z",
  1181. "parent_id": "fde671b0-e5b4-4ff9-9baa-df07ebc75177",
  1182. "layer_level": 1,
  1183. "order": 3,
  1184. "kk_dependent_files": [
  1185. "ai-server/src/main/java/com/zsjz/ai/module/embedding/controller/EmbeddingDebugController.java",
  1186. "ai-server/src/main/java/com/zsjz/ai/module/embedding/service/EmbeddingService.java",
  1187. "ai-server/src/main/java/com/zsjz/ai/module/embedding/core/OnnxEmbeddingEngine.java",
  1188. "ai-server/src/main/java/com/zsjz/ai/module/embedding/config/EmbeddingProperties.java",
  1189. "ai-server/src/main/java/com/zsjz/ai/module/embedding/vo/EmbeddingDebugVO.java",
  1190. "ai-server/src/main/java/com/zsjz/ai/module/embedding/dto/EmbeddingDebugDTO.java"
  1191. ]
  1192. },
  1193. {
  1194. "id": "ca6be081-bf0b-43f8-8325-ae3d860af297",
  1195. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1196. "name": "网关管理接口",
  1197. "description": "admin-api",
  1198. "prompt": "创建网关管理接口的 API 文档。覆盖 /gateway/admin/status、/services、/nodes、/routes/bind、/routes/unbind、/routes/import-existing、/reload 等端点,说明 HTTP 方法、URL 模式、请求体结构、响应格式 ApiResult<Object> 和管理员认证要求(AdminAuthWebFilter)。解释 AdminService 如何封装 createService/updateService/deleteService、createNode/updateNode/deleteNode、checkNode、pageRoutes、bindRoute、unbind、importExisting、reload 等操作,并说明这些操作如何通过 GatewayRegistry.reload() 触发路由刷新。补充 IP 白名单控制、阻塞 JDBC 调用通过 Schedulers.boundedElastic 保护 Netty 事件循环的原因,以及 AdminApiException 和 WebExchangeBindException 的错误响应格式。提供典型运维场景示例,如新增 ai-server 节点、绑定路由、导入已有路由、手动重载配置。",
  1199. "progress_status": "completed",
  1200. "dependent_files": "ai-gateway/src/main/java/com/zsjz/gateway/admin/AdminController.java,ai-gateway/src/main/java/com/zsjz/gateway/admin/AdminService.java,ai-gateway/src/main/java/com/zsjz/gateway/admin/AdminAuthWebFilter.java,ai-gateway/src/main/java/com/zsjz/gateway/support/ApiResult.java,ai-gateway/src/main/java/com/zsjz/gateway/support/AdminApiException.java",
  1201. "gmt_create": "2026-10-28T07:55:29Z",
  1202. "gmt_modified": "2026-10-28T07:55:29Z",
  1203. "parent_id": "198e92ee-5762-48f9-835d-17889a315be1",
  1204. "layer_level": 1,
  1205. "order": 3,
  1206. "kk_dependent_files": [
  1207. "ai-gateway/src/main/java/com/zsjz/gateway/admin/AdminController.java",
  1208. "ai-gateway/src/main/java/com/zsjz/gateway/admin/AdminService.java",
  1209. "ai-gateway/src/main/java/com/zsjz/gateway/admin/AdminAuthWebFilter.java",
  1210. "ai-gateway/src/main/java/com/zsjz/gateway/support/ApiResult.java",
  1211. "ai-gateway/src/main/java/com/zsjz/gateway/support/AdminApiException.java"
  1212. ]
  1213. },
  1214. {
  1215. "id": "d27f0c5a-2dec-48e1-9bdd-d640386cd8ac",
  1216. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1217. "name": "后端服务架构",
  1218. "description": "backend-service-architecture",
  1219. "prompt": "创建 ai-server 后端服务架构文档。说明 Spring Boot 应用入口、模块化组织原则(plat/agent/aiclean/knowledge/graph/person/call/trans/track/govern/search/dm/otg/external/embedding),以及每个模块在调查场景中的职责。重点描述多数据源配置:MyBatis-Plus + Dynamic Datasource 如何同时连接 PostgreSQL/pgvector、Redis、DuckDB 等业务与临时数据源;Sa-Token 认证流程、SSE 心跳保活机制、定时任务与工作空间清理。结合 AgentScope RAG、向量检索、Python 执行器、附件与 Workspace Catalog,说明 agent 模块与其他模块的协作方式。补充异常处理、日志、性能考虑和多节点扩展建议。",
  1220. "progress_status": "completed",
  1221. "dependent_files": "ai-server/pom.xml,ai-server/src/main/java/com/zsjz/ai/App.java,ai-server/src/main/resources/application.yml,ai-server/src/main/resources/application-dev.yml,ai-server/src/main/resources/application-prod.yml",
  1222. "gmt_create": "2026-10-28T07:55:29Z",
  1223. "gmt_modified": "2026-10-28T07:55:29Z",
  1224. "parent_id": "a4b69928-d9a2-469a-8611-d8167311ed51",
  1225. "layer_level": 1,
  1226. "order": 3,
  1227. "kk_dependent_files": [
  1228. "ai-server/pom.xml",
  1229. "ai-server/src/main/java/com/zsjz/ai/App.java",
  1230. "ai-server/src/main/resources/application.yml",
  1231. "ai-server/src/main/resources/application-dev.yml",
  1232. "ai-server/src/main/resources/application-prod.yml"
  1233. ]
  1234. },
  1235. {
  1236. "id": "e9ff4b7b-abcf-42ad-b5f1-3c1cd72bbcf1",
  1237. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1238. "name": "AI 数据清洗模板、同义词与行统计表",
  1239. "description": "ai-clean-schemas",
  1240. "prompt": "创建 AI 数据清洗功能的数据库设计文档,重点说明 ai_clean 清洗模板、ai_clean_field_short_names 字段短名映射、ai_clean_row_stats 清洗行统计、ai_clean_synonym_init 同义词初始化等相关表。详细描述模板定义、字段映射规则、同义词词库、清洗结果统计字段的数据类型、主外键、索引和业务约束。解释清洗流程中的数据来源、模板匹配、同义词替换、字段映射和结果落库的数据流。提供清洗任务查询、统计聚合、模板维护的典型 SQL 示例,并说明批量清洗的性能优化、重复执行去重和数据回滚方案。",
  1241. "progress_status": "completed",
  1242. "dependent_files": "sql/ai_clean.sql,sql/ai_clean_field_short_names.sql,sql/ai_clean_row_stats.sql,sql/ai_clean_synonym_init.sql",
  1243. "gmt_create": "2026-10-28T07:55:29Z",
  1244. "gmt_modified": "2026-10-28T07:55:29Z",
  1245. "parent_id": "c1789760-0a39-4847-879e-bd14a1ed7b37",
  1246. "layer_level": 1,
  1247. "order": 3,
  1248. "kk_dependent_files": [
  1249. "sql/ai_clean.sql",
  1250. "sql/ai_clean_field_short_names.sql",
  1251. "sql/ai_clean_row_stats.sql",
  1252. "sql/ai_clean_synonym_init.sql"
  1253. ]
  1254. },
  1255. {
  1256. "id": "13f6442b-ca39-47c8-a5ad-c1ea01c7f014",
  1257. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1258. "name": "关键数据流与应用生命周期",
  1259. "description": "data-flow-and-lifecycle",
  1260. "prompt": "创建清鉴 AI 调查工具的关键数据流与应用生命周期文档。以典型用户工作流为主线,逐步说明:客户端启动 → 读取 localStorage 中的服务地址 → 调用 /sys/info 获取授权单元 → 用户登录 → Gateway 解析 username/token 选择并绑定 ai-server 节点 → 后续请求通过 StickyRouteFilter 稳定转发 → ai-server 校验 Sa-Token 会话 → Agent 调用 LLM 与 pgvector 向量检索 → 图谱/统计结果返回前端渲染。绘制时序图和状态图,标注跨进程、跨网络、跨服务的边界。解释 SSE 心跳保活、登录失效、节点不可用、Agent 流式响应等异常情况下的数据流变化,并给出排查思路。",
  1261. "progress_status": "completed",
  1262. "dependent_files": "ai-electron/electron/main.ts,ai-electron/frontend/src/App.vue,ai-gateway/src/main/java/com/zsjz/gateway/route/StickyRouteFilter.java,ai-gateway/src/main/java/com/zsjz/gateway/filter/LoginResponseFilter.java,ai-server/pom.xml",
  1263. "gmt_create": "2026-10-28T07:55:29Z",
  1264. "gmt_modified": "2026-10-28T07:55:29Z",
  1265. "parent_id": "a4b69928-d9a2-469a-8611-d8167311ed51",
  1266. "layer_level": 1,
  1267. "order": 4,
  1268. "kk_dependent_files": [
  1269. "ai-electron/electron/main.ts",
  1270. "ai-electron/frontend/src/App.vue",
  1271. "ai-gateway/src/main/java/com/zsjz/gateway/route/StickyRouteFilter.java",
  1272. "ai-gateway/src/main/java/com/zsjz/gateway/filter/LoginResponseFilter.java",
  1273. "ai-server/pom.xml"
  1274. ]
  1275. },
  1276. {
  1277. "id": "28e5b517-e9ac-4377-979e-5f881a6ab9e1",
  1278. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1279. "name": "SSE 心跳与长连接保活",
  1280. "description": "sse-heartbeat",
  1281. "prompt": "编写 SSE Server-Sent Events 心跳与长连接保活文档。说明 Agent 流式对话、心跳任务、服务端定时保活机制的工作流程,以及客户端如何处理断连、重连和消息乱序。解释 SSE 与 WebSocket 的区别在本项目中的选型原因,并说明长连接对服务器资源的影响。提供调试技巧:查看服务端日志、检查心跳间隔、确认防火墙/Nginx 是否支持 SSE。补充性能优化建议:连接池控制、超时清理、背压处理和异常恢复策略。",
  1282. "progress_status": "completed",
  1283. "dependent_files": "ai-server/pom.xml,ai-server/src/main/java/com/zsjz/ai/",
  1284. "gmt_create": "2026-10-28T07:55:29Z",
  1285. "gmt_modified": "2026-10-28T07:55:29Z",
  1286. "parent_id": "1721b548-ae66-4730-9aba-43ab062f7390",
  1287. "layer_level": 1,
  1288. "order": 4,
  1289. "kk_dependent_files": [
  1290. "ai-server/pom.xml",
  1291. "ai-server/src/main/java/com/zsjz/ai/"
  1292. ]
  1293. },
  1294. {
  1295. "id": "2a0b927e-ea46-48b8-b14d-c57615de3c4d",
  1296. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1297. "name": "网关基础设施与异常处理",
  1298. "description": "gateway-infrastructure",
  1299. "prompt": "创建网关基础设施层文档,覆盖 GatewayApplication 应用入口、CorsConfig 跨域配置、WebClientConfig 响应式 WebClient 配置、RequestIdFilter 的请求 ID 注入、GatewayErrorHandler 的全局异常处理,以及 StickyUnavailableException 的统一错误语义。说明这些组件如何支撑粘性路由、管理接口和业务转发,特别是 503 错误在不同场景下的含义:服务不存在、服务停用、无可用节点、绑定节点不可用、用户未绑定节点等。补充 Netty/WebFlux 环境下的注意事项,例如避免阻塞 IO、合理使用调度器、SSE 心跳与长连接兼容性。提供排障清单,帮助定位 CORS 拦截、WebClient 超时、全局异常未捕获、请求 ID 缺失等问题。",
  1300. "progress_status": "completed",
  1301. "dependent_files": "ai-gateway/src/main/java/com/zsjz/gateway/support/RequestIdFilter.java,ai-gateway/src/main/java/com/zsjz/gateway/support/GatewayErrorHandler.java,ai-gateway/src/main/java/com/zsjz/gateway/support/StickyUnavailableException.java,ai-gateway/src/main/java/com/zsjz/gateway/config/CorsConfig.java,ai-gateway/src/main/java/com/zsjz/gateway/config/WebClientConfig.java,ai-gateway/src/main/java/com/zsjz/gateway/GatewayApplication.java",
  1302. "gmt_create": "2026-10-28T07:55:29Z",
  1303. "gmt_modified": "2026-10-28T07:55:29Z",
  1304. "parent_id": "198e92ee-5762-48f9-835d-17889a315be1",
  1305. "layer_level": 1,
  1306. "order": 4,
  1307. "kk_dependent_files": [
  1308. "ai-gateway/src/main/java/com/zsjz/gateway/support/RequestIdFilter.java",
  1309. "ai-gateway/src/main/java/com/zsjz/gateway/support/GatewayErrorHandler.java",
  1310. "ai-gateway/src/main/java/com/zsjz/gateway/support/StickyUnavailableException.java",
  1311. "ai-gateway/src/main/java/com/zsjz/gateway/config/CorsConfig.java",
  1312. "ai-gateway/src/main/java/com/zsjz/gateway/config/WebClientConfig.java",
  1313. "ai-gateway/src/main/java/com/zsjz/gateway/GatewayApplication.java"
  1314. ]
  1315. },
  1316. {
  1317. "id": "47af0185-c942-40f5-97c0-6bb492b91be9",
  1318. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1319. "name": "授权单元与水印",
  1320. "description": "desktop-authorization-watermark",
  1321. "prompt": "为桌面客户端授权单元与水印机制编写详细文档。说明 App.vue 如何通过 authorizationInfoApi 获取服务端授权信息,使用 extractAuthorizationCache 解析 authorizationLabel、overDateTime、authorizationUnit,并写入 userStore 页面缓存。解释 useWatermark 如何根据 authorizationUnit 动态设置页面水印,并在授权信息为空时清除水印。说明 license.ts 中授权缓存提取、过期判断和过期消息生成逻辑,以及与 login.ts 中 checkAuthApi、authorizationInfoApi 的关系。给出新增授权字段、扩展水印内容、处理授权过期的示例。包含常见问题:授权信息未加载、水印不显示、授权过期仍可使用、localStorage 缓存不一致、授权信息与网关 token 不一致等。",
  1322. "progress_status": "completed",
  1323. "dependent_files": "ai-electron/frontend/src/App.vue,ai-electron/frontend/src/core/utils/license.ts,ai-electron/frontend/src/core/store/modules/case.ts,ai-electron/frontend/src/core/hooks/web/useWatermark.ts,ai-electron/frontend/src/core/api/sys/login.ts",
  1324. "gmt_create": "2026-10-28T07:55:29Z",
  1325. "gmt_modified": "2026-10-28T07:55:29Z",
  1326. "parent_id": "d36adb59-0865-4057-ac6b-1a3762816c01",
  1327. "layer_level": 1,
  1328. "order": 4,
  1329. "kk_dependent_files": [
  1330. "ai-electron/frontend/src/App.vue",
  1331. "ai-electron/frontend/src/core/utils/license.ts",
  1332. "ai-electron/frontend/src/core/store/modules/case.ts",
  1333. "ai-electron/frontend/src/core/hooks/web/useWatermark.ts",
  1334. "ai-electron/frontend/src/core/api/sys/login.ts"
  1335. ]
  1336. },
  1337. {
  1338. "id": "a4b69928-d9a2-469a-8611-d8167311ed51",
  1339. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1340. "name": "系统架构设计",
  1341. "description": "system-architecture",
  1342. "prompt": "创建清鉴 AI 调查工具的系统架构文档,描述高层分层模型:Electron 客户端 → Preload Bridge → Spring Cloud Gateway → ai-server 业务模块 → PostgreSQL/pgvector/Redis/文件系统。重点解释粘性路由的设计目标:为什么用户会话必须固定到同一 ai-server 节点,StickyRouteFilter 如何在 RouteToRequestFilter 之后重写目标 URL,以及 LoginResponseFilter 如何实现登录成功后写库绑定。画出客户端、网关、服务、数据库之间的交互图和数据流向图。说明跨进程安全隔离、SSE 心跳保活、动态数据源切换、AgentScope RAG 调用等横切关注点。讨论可扩展性(多 ai-server 节点)、容错策略(节点 DOWN 返回 503)和部署拓扑。",
  1343. "progress_status": "completed",
  1344. "dependent_files": "ai-gateway/src/main/java/com/zsjz/gateway/route/StickyRouteFilter.java,ai-electron/electron/main.ts,ai-electron/frontend/src/App.vue,ai-server/pom.xml,ai-gateway/pom.xml",
  1345. "gmt_create": "2026-10-28T07:55:29Z",
  1346. "gmt_modified": "2026-10-28T07:55:29Z",
  1347. "order": 4,
  1348. "kk_dependent_files": [
  1349. "ai-gateway/src/main/java/com/zsjz/gateway/route/StickyRouteFilter.java",
  1350. "ai-electron/electron/main.ts",
  1351. "ai-electron/frontend/src/App.vue",
  1352. "ai-server/pom.xml",
  1353. "ai-gateway/pom.xml"
  1354. ]
  1355. },
  1356. {
  1357. "id": "b637c759-edca-43f8-9a98-8c1657165061",
  1358. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1359. "name": "知识库与嵌入调试接口",
  1360. "description": "knowledge-and-embedding-api",
  1361. "prompt": "创建知识库与嵌入调试接口的 API 文档,覆盖 KnowledgeBaseController 和 EmbeddingDebugController。说明知识库文档的创建、查询、更新、删除、向量入库、下载日志等接口,以及嵌入调试接口的输入输出格式。记录每个接口的 HTTP 方法、URL、请求参数、响应体、错误码和权限要求。说明知识库与 Agent RAG 中向量检索的关系,以及 embedding 调试接口如何辅助排查向量化质量。提供 curl 示例,并说明文档解析失败、向量入库失败、相似度检索为空等问题的排查方法。",
  1362. "progress_status": "completed",
  1363. "dependent_files": "ai-server/src/main/java/com/zsjz/ai/module/knowledge/controller/KnowledgeBaseController.java,ai-server/src/main/java/com/zsjz/ai/module/embedding/controller/EmbeddingDebugController.java",
  1364. "gmt_create": "2026-10-28T07:55:29Z",
  1365. "gmt_modified": "2026-10-28T07:55:29Z",
  1366. "parent_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  1367. "layer_level": 1,
  1368. "order": 4,
  1369. "kk_dependent_files": [
  1370. "ai-server/src/main/java/com/zsjz/ai/module/knowledge/controller/KnowledgeBaseController.java",
  1371. "ai-server/src/main/java/com/zsjz/ai/module/embedding/controller/EmbeddingDebugController.java"
  1372. ]
  1373. },
  1374. {
  1375. "id": "bea97b99-9c66-427b-b57b-754f086ecbbe",
  1376. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1377. "name": "清洗模板向量索引",
  1378. "description": "ai-clean-vector-index",
  1379. "prompt": "编写 AI 数据清洗中清洗模板向量索引的详细文档。说明 AiCleanTemplateVectorIndex、AiCleanVectorProperties 的职责,解释模板如何通过向量化进入 pgvector 或向量检索链路,并与 AiTemplateMatcher、HeaderScorer 协同提升模板匹配准确率。详细说明向量索引的构建时机、刷新策略、元数据字段、相似度阈值和回退逻辑。给出向量索引配置、重建索引、验证匹配效果的示例。说明向量索引与传统规则匹配的优先级关系,以及在模板数量增长时的性能影响。补充常见问题:向量索引缺失、相似度阈值过高或过低、模板变更后索引未更新、pgvector 不可用时降级行为等。",
  1380. "progress_status": "completed",
  1381. "dependent_files": "ai-server/src/main/java/com/zsjz/ai/module/aiclean/index/AiCleanTemplateVectorIndex.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/index/AiCleanVectorProperties.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/match/AiTemplateMatcher.java,ai-server/src/main/java/com/zsjz/ai/module/aiclean/match/HeaderScorer.java,ai-server/src/test/java/com/zsjz/ai/module/aiclean/index/AiCleanTemplateVectorIndexTest.java",
  1382. "gmt_create": "2026-10-28T07:55:29Z",
  1383. "gmt_modified": "2026-10-28T07:55:29Z",
  1384. "parent_id": "fbd0f840-7bf0-40b1-9ae4-01dd991a8752",
  1385. "layer_level": 1,
  1386. "order": 4,
  1387. "kk_dependent_files": [
  1388. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/index/AiCleanTemplateVectorIndex.java",
  1389. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/index/AiCleanVectorProperties.java",
  1390. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/match/AiTemplateMatcher.java",
  1391. "ai-server/src/main/java/com/zsjz/ai/module/aiclean/match/HeaderScorer.java",
  1392. "ai-server/src/test/java/com/zsjz/ai/module/aiclean/index/AiCleanTemplateVectorIndexTest.java"
  1393. ]
  1394. },
  1395. {
  1396. "id": "c7297910-8fdc-4dc5-b7c9-9a6e1564d183",
  1397. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1398. "name": "治理模块 govern",
  1399. "description": "business-govern",
  1400. "prompt": "为治理模块 govern 创建详细文档。说明该模块负责治理树、治理配置和结果处理器,支撑调查场景中的人员关系治理、实体归一、标签体系和分析结果结构化。解释治理树如何作为业务分类或关系拓扑,驱动下游 agent、图谱、清洗和外部表的处理逻辑。梳理治理树节点结构、父子关系、状态、扩展字段及配置项。给出使用示例:定义治理树、绑定治理规则、执行治理任务、查看治理结果。说明治理结果如何被 search、dm、otg 和其他业务模块消费,并提供扩展新治理规则和结果处理器的指导。",
  1401. "progress_status": "completed",
  1402. "dependent_files": "ai-server/pom.xml,sql/case_table.sql,sql/case_table_1.sql,sql/insight_agent_tables.sql",
  1403. "gmt_create": "2026-10-28T07:55:29Z",
  1404. "gmt_modified": "2026-10-28T07:55:29Z",
  1405. "parent_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  1406. "layer_level": 1,
  1407. "order": 4,
  1408. "kk_dependent_files": [
  1409. "ai-server/pom.xml",
  1410. "sql/case_table.sql",
  1411. "sql/case_table_1.sql",
  1412. "sql/insight_agent_tables.sql"
  1413. ]
  1414. },
  1415. {
  1416. "id": "dc3bc6ae-89fd-4a5e-bbf7-cb1b905401ea",
  1417. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1418. "name": "多节点扩展与负载均衡",
  1419. "description": "deployment-multi-node-scaling",
  1420. "prompt": "创建多节点 ai-server 扩展与负载均衡方案。说明粘性路由的设计目标:同一用户请求始终路由到同一 ai-server 节点,避免跨节点访问本地磁盘和会话状态不一致。解释 StickyRouteFilter 如何从 token/username 解析 userId,查找绑定节点并重写目标 URL,同时附加 X-Gateway-Node 响应头。说明服务注册中心、节点健康检查、LoginResponseFilter 登录绑定机制,以及节点 DOWN 时返回 503 不自动切换到其他节点的约束。给出多节点部署拓扑图:多个 ai-server 实例共享 PostgreSQL/pgvector/Redis,单个或集群式 ai-gateway 做粘性转发。补充水平扩展建议:节点扩容策略、登录顶号与会话释放、DuckDB 最大案件数与内存比例调整、向量索引重建成本、ES/Neo4j 共享配置。包含监控与排障:节点健康状态查询、粘性路由失效、登录绑定错乱、Redis 热点键、数据库连接池耗尽等问题的定位方法。",
  1421. "progress_status": "completed",
  1422. "dependent_files": "ai-gateway/src/main/java/com/zsjz/gateway/route/StickyRouteFilter.java,ai-gateway/pom.xml,deploy/env.sh",
  1423. "gmt_create": "2026-10-28T07:55:29Z",
  1424. "gmt_modified": "2026-10-28T07:55:29Z",
  1425. "parent_id": "67aa6a8d-c25c-435e-be2c-9a5fda6668b7",
  1426. "layer_level": 1,
  1427. "order": 4,
  1428. "kk_dependent_files": [
  1429. "ai-gateway/src/main/java/com/zsjz/gateway/route/StickyRouteFilter.java",
  1430. "ai-gateway/pom.xml",
  1431. "deploy/env.sh"
  1432. ]
  1433. },
  1434. {
  1435. "id": "dee4a153-cf45-4a55-b54e-bd97481f466f",
  1436. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1437. "name": "许可证与认证问题排查",
  1438. "description": "license-troubleshooting",
  1439. "prompt": "编写许可证与认证问题的综合排查指南。涵盖以下场景:regInfo.exe 无法执行或返回异常、机器码不一致、许可证过期、授权单元为空;x-token 丢失或与其他节点不一致导致 401/403;Gateway 未绑定节点或节点健康检查失败;账号被顶下线后仍持有旧 token;服务端重启后会话丢失。对每个场景给出复现步骤、关键日志位置、需要检查的配置项、数据库表字段、网关转发结果和修复方案。提供快速诊断清单和常见问题 FAQ。",
  1440. "progress_status": "completed",
  1441. "dependent_files": "readme.md,ai-gateway/src/main/java/com/zsjz/gateway/route/StickyRouteFilter.java,ai-electron/frontend/src/App.vue",
  1442. "gmt_create": "2026-10-28T07:55:29Z",
  1443. "gmt_modified": "2026-10-28T07:55:29Z",
  1444. "parent_id": "c77f0da0-55bc-4f69-9e32-f4aca699b57c",
  1445. "layer_level": 1,
  1446. "order": 4,
  1447. "kk_dependent_files": [
  1448. "readme.md",
  1449. "ai-gateway/src/main/java/com/zsjz/gateway/route/StickyRouteFilter.java",
  1450. "ai-electron/frontend/src/App.vue"
  1451. ]
  1452. },
  1453. {
  1454. "id": "e6796b01-1250-4a7d-b39c-d05e413d8e30",
  1455. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1456. "name": "案件表与外部表结构",
  1457. "description": "case-and-external-tables",
  1458. "prompt": "创建案件表和外部表结构的数据库设计文档。说明 case_table、case_table_1、table_data_1 等案件数据源表,以及 external_tables、external_table_field 等外部表定义和字段映射表。详细描述表之间的关系:用户/案件、案件与表、表与字段、表数据快照之间的关系。解释外部表在调查场景中如何承载通话、交易、轨迹、人员、车辆违法、罪犯等扩展实体。给出 ER 图、关键字段定义、索引设计和查询模式,包括按案件查询、按外部表查询、字段枚举值查询等。补充数据版本、迁移规范、删除策略和安全访问控制建议。",
  1459. "progress_status": "completed",
  1460. "dependent_files": "sql/case_table.sql,sql/case_table_1.sql,sql/table_data_1.sql,sql/external_tables.sql,sql/external_table_field.sql",
  1461. "gmt_create": "2026-10-28T07:55:29Z",
  1462. "gmt_modified": "2026-10-28T07:55:29Z",
  1463. "parent_id": "c1789760-0a39-4847-879e-bd14a1ed7b37",
  1464. "layer_level": 1,
  1465. "order": 4,
  1466. "kk_dependent_files": [
  1467. "sql/case_table.sql",
  1468. "sql/case_table_1.sql",
  1469. "sql/table_data_1.sql",
  1470. "sql/external_tables.sql",
  1471. "sql/external_table_field.sql"
  1472. ]
  1473. },
  1474. {
  1475. "id": "ea5fee6a-6052-49e8-9a6b-f0faf9c050b0",
  1476. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1477. "name": "Insight 工作区与 Workspace Catalog",
  1478. "description": "agent-insight-workspace",
  1479. "prompt": "为 Insight 工作区与 Workspace Catalog 创建详细文档。说明 AgentInsightSession 与 AgentInsightMessage 的数据模型,InsightAgentFactory 如何启动分析型 Agent,以及前端 useInsightStream 如何通过 SSE 消费 Insight 流式输出。解释 Workspace Catalog 与案件数据源、用户会话之间的关系,说明 Insight 与普通 Agent 对话的区别:是否持久化、是否承载图谱分析结果、是否与 graph/insight API 联动。给出示例:创建 Insight 会话、关联图谱或外部数据、查看 Insight 消息流、清理工作区。补充常见问题:Insight 会话丢失、消息未落库、工作区跨节点不一致、SSE 流被网关切断等。",
  1480. "progress_status": "completed",
  1481. "dependent_files": "ai-server/src/main/java/com/zsjz/ai/module/agent/insight/entity/AgentInsightMessage.java,ai-server/src/main/java/com/zsjz/ai/module/agent/insight/entity/AgentInsightSession.java,ai-server/src/main/java/com/zsjz/ai/module/agent/insight/mapper/AgentInsightMessageMapper.java,ai-server/src/main/java/com/zsjz/ai/module/agent/insight/mapper/AgentInsightSessionMapper.java,ai-server/src/main/java/com/zsjz/ai/module/agent/insight/agent/InsightAgentFactory.java,ai-electron/frontend/src/graph/insight/hooks/useInsightStream.ts,ai-electron/frontend/src/graph/insight/types.ts,ai-electron/frontend/src/graph/insight/api.ts",
  1482. "gmt_create": "2026-10-28T07:55:29Z",
  1483. "gmt_modified": "2026-10-28T07:55:29Z",
  1484. "parent_id": "ec9a24fa-b5b6-4b28-96ab-06ee3089519f",
  1485. "layer_level": 1,
  1486. "order": 4,
  1487. "kk_dependent_files": [
  1488. "ai-server/src/main/java/com/zsjz/ai/module/agent/insight/entity/AgentInsightMessage.java",
  1489. "ai-server/src/main/java/com/zsjz/ai/module/agent/insight/entity/AgentInsightSession.java",
  1490. "ai-server/src/main/java/com/zsjz/ai/module/agent/insight/mapper/AgentInsightMessageMapper.java",
  1491. "ai-server/src/main/java/com/zsjz/ai/module/agent/insight/mapper/AgentInsightSessionMapper.java",
  1492. "ai-server/src/main/java/com/zsjz/ai/module/agent/insight/agent/InsightAgentFactory.java",
  1493. "ai-electron/frontend/src/graph/insight/hooks/useInsightStream.ts",
  1494. "ai-electron/frontend/src/graph/insight/types.ts",
  1495. "ai-electron/frontend/src/graph/insight/api.ts"
  1496. ]
  1497. },
  1498. {
  1499. "id": "0f6dfa6f-d969-4087-bed4-1f6522b67faa",
  1500. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1501. "name": "图谱与图表接口",
  1502. "description": "graph-and-chart-api",
  1503. "prompt": "创建图谱与图表接口的 API 文档,覆盖 GraphController 暴露的 REST 接口。说明关系图数据的查询、生成、导出等接口的 HTTP 方法、URL、请求参数、响应体结构和错误码。描述图谱数据与人员、通话、交易、轨迹等业务实体之间的关系,以及 AntV G6/X6、Relation Graph、ECharts 在前端的渲染方式。说明大数据量图谱的性能注意事项,例如分页、过滤条件和导出格式。提供 curl 和前端调用示例,并给出图谱数据为空、节点过多导致卡顿、导出失败等问题的排查方法。",
  1504. "progress_status": "completed",
  1505. "dependent_files": "ai-server/src/main/java/com/zsjz/ai/module/graph/controller/GraphController.java",
  1506. "gmt_create": "2026-10-28T07:55:29Z",
  1507. "gmt_modified": "2026-10-28T07:55:29Z",
  1508. "parent_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  1509. "layer_level": 1,
  1510. "order": 5,
  1511. "kk_dependent_files": [
  1512. "ai-server/src/main/java/com/zsjz/ai/module/graph/controller/GraphController.java"
  1513. ]
  1514. },
  1515. {
  1516. "id": "6afb3e73-9114-4b47-82f0-025afb9cbdf3",
  1517. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1518. "name": "日志、监控与故障排查",
  1519. "description": "deployment-monitoring-troubleshooting",
  1520. "prompt": "创建部署后的日志收集、监控指标与故障排查手册。说明 ai-gateway 和 ai-server 的标准日志位置、输出格式、按模块分类的建议,以及 Electron 客户端主进程日志、渲染进程控制台和 electron-updater 日志。列出关键监控指标:PostgreSQL/pgvector 连接数与慢查询、Redis 命中率与内存、Elasticsearch 索引状态、Neo4j 连接、DuckDB 打开案件数、向量模型加载时间、Agent SSE 心跳、文件上传大小、登录成功率。说明如何使用 Spring Actuator、系统监控工具或外部 APM 采集这些指标。提供常见故障排查清单:登录后 503、跨域失败、Agent 对话无响应、RAG 向量检索为空、清洗模板匹配失败、离线地图 PMTiles 加载失败、许可证校验失败、自动更新失败、进程卡死等。对每个问题给出现象、可能原因、定位步骤和修复建议,并关联 deploy/env.sh 中相关配置项。补充备份与恢复建议:PostgreSQL/pgvector 全量与增量备份、Redis 持久化、本地文件存储归档、客户端用户数据目录迁移。",
  1521. "progress_status": "completed",
  1522. "dependent_files": "deploy/env.sh,ai-electron/package.json,ai-electron/electron/main.ts,ai-gateway/pom.xml,ai-server/pom.xml",
  1523. "gmt_create": "2026-10-28T07:55:29Z",
  1524. "gmt_modified": "2026-10-28T07:55:29Z",
  1525. "parent_id": "67aa6a8d-c25c-435e-be2c-9a5fda6668b7",
  1526. "layer_level": 1,
  1527. "order": 5,
  1528. "kk_dependent_files": [
  1529. "deploy/env.sh",
  1530. "ai-electron/package.json",
  1531. "ai-electron/electron/main.ts",
  1532. "ai-gateway/pom.xml",
  1533. "ai-server/pom.xml"
  1534. ]
  1535. },
  1536. {
  1537. "id": "9114554a-942e-43cd-86b4-e40384923260",
  1538. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1539. "name": "搜索模块 search",
  1540. "description": "business-search",
  1541. "prompt": "为搜索模块 search 创建详细文档。说明该模块提供文档索引、全文检索、查询服务和初始化器,用于加速对案件数据、Agent 内容、清洗结果和知识库的检索。解释搜索服务与 PostgreSQL/pgvector 的关系,以及是否结合向量检索或传统全文索引。梳理索引模型、分词策略、查询语法、权重和分页机制。给出示例:关键词搜索、按案件/用户维度过滤、搜索结果高亮、增量索引更新。补充搜索性能调优、索引重建、缓存策略和与 Agent RAG 集成的注意事项。",
  1542. "progress_status": "completed",
  1543. "dependent_files": "ai-server/pom.xml,sql/case_table.sql,sql/case_table_1.sql,sql/insight_agent_tables.sql",
  1544. "gmt_create": "2026-10-28T07:55:29Z",
  1545. "gmt_modified": "2026-10-28T07:55:29Z",
  1546. "parent_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  1547. "layer_level": 1,
  1548. "order": 5,
  1549. "kk_dependent_files": [
  1550. "ai-server/pom.xml",
  1551. "sql/case_table.sql",
  1552. "sql/case_table_1.sql",
  1553. "sql/insight_agent_tables.sql"
  1554. ]
  1555. },
  1556. {
  1557. "id": "9b97082f-66c1-4878-9a7d-5e920d6b45a0",
  1558. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1559. "name": "pgvector 向量表与 DuckDB 临时数据源",
  1560. "description": "vector-and-temporary-data-sources",
  1561. "prompt": "创建 pgvector 向量表与 DuckDB 临时数据源的数据库设计说明。说明项目中哪些表使用 PostgreSQL + pgvector 存储向量嵌入,用于 Agent RAG、知识库相似检索和意图识别;哪些场景使用 DuckDB JDBC 作为临时数据源进行本地分析或测试。对比两种数据源的设计目标、数据类型、索引策略和生命周期。给出向量维度、相似度检索参数、更新与重建索引的注意事项。说明临时数据与持久化业务数据的边界,以及清理策略、备份恢复和性能调优建议。若仓库中存在具体的 pgvector 建表脚本或向量表命名约定,应一并记录。",
  1562. "progress_status": "completed",
  1563. "dependent_files": "sql/*.sql",
  1564. "gmt_create": "2026-10-28T07:55:29Z",
  1565. "gmt_modified": "2026-10-28T07:55:29Z",
  1566. "parent_id": "c1789760-0a39-4847-879e-bd14a1ed7b37",
  1567. "layer_level": 1,
  1568. "order": 5,
  1569. "kk_dependent_files": [
  1570. "sql/*.sql"
  1571. ]
  1572. },
  1573. {
  1574. "id": "d36adb59-0865-4057-ac6b-1a3762816c01",
  1575. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1576. "name": "桌面客户端",
  1577. "description": "desktop-client",
  1578. "prompt": "为 Electron 桌面客户端编写详细文档。说明主进程生命周期(ai-electron/electron/main.ts)、preload 桥接的安全模型(bridge.ts、index.ts)、窗口控制器(windowCtl.ts)和服务封装。解释前端根组件 App.vue 如何初始化主题、国际化、水印和授权单元,以及 main.ts 如何挂载应用。说明客户端与服务端地址绑定、localStorage 缓存、自动更新(electron-updater)、离线地图(MapLibre GL + PMTiles china.pmtiles)和 regInfo.exe 许可证校验的基本流程。给出新增页面、组件、IPC 接口和 Electron service 的示例。包含常见问题:主进程崩溃、preload 权限不足、地图加载失败、授权信息不显示等。",
  1579. "progress_status": "completed",
  1580. "dependent_files": "ai-electron/electron/main.ts,ai-electron/electron/preload/index.ts,ai-electron/electron/preload/bridge.ts,ai-electron/electron/controller/windowCtl.ts,ai-electron/electron/service/window/,ai-electron/frontend/src/App.vue,ai-electron/frontend/src/main.ts,ai-electron/package.json,ai-electron/frontend/package.json",
  1581. "gmt_create": "2026-10-28T07:55:29Z",
  1582. "gmt_modified": "2026-10-28T07:55:29Z",
  1583. "order": 5,
  1584. "kk_dependent_files": [
  1585. "ai-electron/electron/main.ts",
  1586. "ai-electron/electron/preload/index.ts",
  1587. "ai-electron/electron/preload/bridge.ts",
  1588. "ai-electron/electron/controller/windowCtl.ts",
  1589. "ai-electron/electron/service/window/",
  1590. "ai-electron/frontend/src/App.vue",
  1591. "ai-electron/frontend/src/main.ts",
  1592. "ai-electron/package.json",
  1593. "ai-electron/frontend/package.json"
  1594. ]
  1595. },
  1596. {
  1597. "id": "ea4e0532-760a-4956-9200-cd6202cba1a3",
  1598. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1599. "name": "离线地图与 PMTiles 配置",
  1600. "description": "desktop-offline-map",
  1601. "prompt": "为离线地图与 PMTiles 配置编写详细文档。说明前端如何使用 MapLibre GL 和 PMTiles 加载本地 china.pmtiles,offlineMap.ts 中如何构建瓦片源、加载 style(如 behavior-spacetime-style.json),以及 MapLocalSettingModal.vue 如何管理地图本地路径、样式切换和配置保存。结合 readme.md 中关于栅格地图配置、激活命令和 regInfo.exe 的说明,解释许可证校验与地图加载之间的关系:只有许可证有效时才允许加载离线地图数据。说明地图服务的初始化时机、资源目录 public/resource/map 的结构、以及如何替换其他 PMTiles 文件或样式。给出新增地图图层、更换离线地图源、调试地图加载失败的示例。包含常见问题:china.pmtiles 无法加载、样式 JSON 报错、地图空白、许可证无效导致地图禁用、PMTiles 路径错误等。",
  1602. "progress_status": "completed",
  1603. "dependent_files": "ai-electron/frontend/src/core/utils/map/offlineMap.ts,ai-electron/frontend/src/core/layouts/default/setting/components/MapLocalSettingModal.vue,ai-electron/frontend/public/resource/map/behavior-spacetime-style.json,readme.md",
  1604. "gmt_create": "2026-10-28T07:55:29Z",
  1605. "gmt_modified": "2026-10-28T07:55:29Z",
  1606. "parent_id": "d36adb59-0865-4057-ac6b-1a3762816c01",
  1607. "layer_level": 1,
  1608. "order": 5,
  1609. "kk_dependent_files": [
  1610. "ai-electron/frontend/src/core/utils/map/offlineMap.ts",
  1611. "ai-electron/frontend/src/core/layouts/default/setting/components/MapLocalSettingModal.vue",
  1612. "ai-electron/frontend/public/resource/map/behavior-spacetime-style.json",
  1613. "readme.md"
  1614. ]
  1615. },
  1616. {
  1617. "id": "f42a38f1-89eb-4f42-a87f-26d81c3aaf9b",
  1618. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1619. "name": "定时任务与工作空间清理",
  1620. "description": "scheduled-tasks-workspace-cleanup",
  1621. "prompt": "编写定时任务与工作空间清理文档。说明系统启动后用于清理 Agent Workspace、临时文件、下载日志、索引残留等任务的调度策略和执行频率。解释工作空间的目录结构、生命周期、与用户/会话的关系,以及清理失败时的重试或告警策略。给出运维操作建议:调整清理周期、监控磁盘占用、定位无法删除的文件。补充故障排查:任务未执行、权限不足、路径不存在、清理过于激进导致正在使用的文件丢失等。",
  1622. "progress_status": "completed",
  1623. "dependent_files": "ai-server/pom.xml,ai-server/src/main/java/com/zsjz/ai/",
  1624. "gmt_create": "2026-10-28T07:55:29Z",
  1625. "gmt_modified": "2026-10-28T07:55:29Z",
  1626. "parent_id": "1721b548-ae66-4730-9aba-43ab062f7390",
  1627. "layer_level": 1,
  1628. "order": 5,
  1629. "kk_dependent_files": [
  1630. "ai-server/pom.xml",
  1631. "ai-server/src/main/java/com/zsjz/ai/"
  1632. ]
  1633. },
  1634. {
  1635. "id": "198e92ee-5762-48f9-835d-17889a315be1",
  1636. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1637. "name": "网关粘性路由",
  1638. "description": "gateway-sticky-routing",
  1639. "prompt": "创建网关粘性路由的详细文档。解释 StickyRouteFilter 的核心逻辑:如何从请求 token/username 解析 userId,查找已绑定的 ai-server 节点,重写 GATEWAY_REQUEST_URL_ATTR 并追加 X-Gateway-Node 响应头。说明 LoginResponseFilter 在登录成功后如何将用户绑定到具体服务节点,LoginRequestFilter 如何标记登录请求。介绍 GatewayRegistry 的服务/节点注册表内存快照与定时对账机制、NodeHealthRegistry 的健康检查、CORS 配置、RequestIdFilter 和 GatewayErrorHandler。补充网关管理接口、503 错误处理、节点下线时的行为,以及调试粘性路由问题的方法。",
  1640. "progress_status": "completed",
  1641. "dependent_files": "ai-gateway/src/main/java/com/zsjz/gateway/route/StickyRouteFilter.java,ai-gateway/src/main/java/com/zsjz/gateway/filter/LoginResponseFilter.java,ai-gateway/src/main/java/com/zsjz/gateway/filter/LoginRequestFilter.java,ai-gateway/src/main/java/com/zsjz/gateway/GatewayApplication.java,sql/gateway.sql",
  1642. "gmt_create": "2026-10-28T07:55:29Z",
  1643. "gmt_modified": "2026-10-28T07:55:29Z",
  1644. "order": 6,
  1645. "kk_dependent_files": [
  1646. "ai-gateway/src/main/java/com/zsjz/gateway/route/StickyRouteFilter.java",
  1647. "ai-gateway/src/main/java/com/zsjz/gateway/filter/LoginResponseFilter.java",
  1648. "ai-gateway/src/main/java/com/zsjz/gateway/filter/LoginRequestFilter.java",
  1649. "ai-gateway/src/main/java/com/zsjz/gateway/GatewayApplication.java",
  1650. "sql/gateway.sql"
  1651. ]
  1652. },
  1653. {
  1654. "id": "1a07a3c6-8227-4d21-afb1-f36b3131bb56",
  1655. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1656. "name": "数据建模模块 dm",
  1657. "description": "business-dm",
  1658. "prompt": "为数据建模模块 dm 创建详细文档。说明该模块负责数据建模、文件识别、AI 画像、边配置和清理错误日志,是连接原始数据与业务查询的重要中间层。解释 dm 如何通过文件识别推断表结构、生成 AI 画像、定义实体间边关系,并将结果持久化供 graph、agent、aiclean 等模块使用。梳理建模元数据模型、文件上传识别流程、画像字段映射、边配置结构和错误日志格式。给出示例:上传 CSV/Excel 进行自动建模、配置实体边、查看 AI 画像、导出建模结果。补充大文件识别性能优化、字段类型推断准确率提升和与外部表 external 的协作方式。",
  1659. "progress_status": "completed",
  1660. "dependent_files": "ai-server/pom.xml,sql/case_table.sql,sql/case_table_1.sql,sql/external_tables.sql,sql/table_data_1.sql",
  1661. "gmt_create": "2026-10-28T07:55:29Z",
  1662. "gmt_modified": "2026-10-28T07:55:29Z",
  1663. "parent_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  1664. "layer_level": 1,
  1665. "order": 6,
  1666. "kk_dependent_files": [
  1667. "ai-server/pom.xml",
  1668. "sql/case_table.sql",
  1669. "sql/case_table_1.sql",
  1670. "sql/external_tables.sql",
  1671. "sql/table_data_1.sql"
  1672. ]
  1673. },
  1674. {
  1675. "id": "4816f0d4-6e83-43f7-837f-f13d946b1d37",
  1676. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1677. "name": "人员数据接口",
  1678. "description": "person-api",
  1679. "prompt": "创建人员数据接口的 API 文档,覆盖人员基本信息、人员分组、亲密度、常住人口和数据画像等控制器。记录每个接口的 HTTP 方法、URL、请求参数、响应字段、分页格式和错误码。说明人员实体与通话、交易、轨迹、治理树等业务数据之间的关联查询方式,以及敏感字段的安全处理。提供查询某人员及其关系的 curl 示例,并说明人员不存在、分组为空、亲密度数据缺失等常见问题的排查方法。",
  1680. "progress_status": "completed",
  1681. "dependent_files": "ai-server/src/main/java/com/zsjz/ai/module/person/controller/PersonBasicInfoController.java,ai-server/src/main/java/com/zsjz/ai/module/person/controller/PersonGroupController.java,ai-server/src/main/java/com/zsjz/ai/module/person/controller/IntimacyController.java,ai-server/src/main/java/com/zsjz/ai/module/person/controller/ResidentPopulationController.java,ai-server/src/main/java/com/zsjz/ai/module/person/controller/DataProfileController.java",
  1682. "gmt_create": "2026-10-28T07:55:29Z",
  1683. "gmt_modified": "2026-10-28T07:55:29Z",
  1684. "parent_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  1685. "layer_level": 1,
  1686. "order": 6,
  1687. "kk_dependent_files": [
  1688. "ai-server/src/main/java/com/zsjz/ai/module/person/controller/PersonBasicInfoController.java",
  1689. "ai-server/src/main/java/com/zsjz/ai/module/person/controller/PersonGroupController.java",
  1690. "ai-server/src/main/java/com/zsjz/ai/module/person/controller/IntimacyController.java",
  1691. "ai-server/src/main/java/com/zsjz/ai/module/person/controller/ResidentPopulationController.java",
  1692. "ai-server/src/main/java/com/zsjz/ai/module/person/controller/DataProfileController.java"
  1693. ]
  1694. },
  1695. {
  1696. "id": "6ac2d682-f759-41c6-8a1d-82b6a1b11135",
  1697. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1698. "name": "构建、打包与自动更新",
  1699. "description": "desktop-build-packaging-updater",
  1700. "prompt": "为 Electron 桌面客户端的构建、打包与自动更新编写详细文档。说明 ai-electron/package.json 中的 scripts:dev、build、start、dev-frontend、dev-electron、build-frontend、build-electron、icon、build-w/m/l 等命令分别做什么,以及 ee-bin、electron-builder、vitest、electron-rebuild 的作用。解释 build 流程如何先构建前端,再构建 Electron 包,最后执行加密;说明 win64、win_e、mac_arm64、mac、linux 等平台构建目标的区别。说明 electron-updater 依赖如何参与客户端自动更新,以及 README.md 和 README.zh-CN.md 中关于安装、卸载、regInfo.exe、激活命令的使用说明。给出新增平台构建脚本、修改打包产物、接入更新服务器的示例。包含常见问题:前端构建失败、Electron 原生模块编译失败、图标缺失、安装包签名失败、自动更新服务器不可达等。",
  1701. "progress_status": "completed",
  1702. "dependent_files": "ai-electron/package.json,ai-electron/frontend/package.json,ai-electron/README.md,ai-electron/README.zh-CN.md",
  1703. "gmt_create": "2026-10-28T07:55:29Z",
  1704. "gmt_modified": "2026-10-28T07:55:29Z",
  1705. "parent_id": "d36adb59-0865-4057-ac6b-1a3762816c01",
  1706. "layer_level": 1,
  1707. "order": 6,
  1708. "kk_dependent_files": [
  1709. "ai-electron/package.json",
  1710. "ai-electron/frontend/package.json",
  1711. "ai-electron/README.md",
  1712. "ai-electron/README.zh-CN.md"
  1713. ]
  1714. },
  1715. {
  1716. "id": "1721b548-ae66-4730-9aba-43ab062f7390",
  1717. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1718. "name": "后端服务架构",
  1719. "description": "backend-service",
  1720. "prompt": "编写后端服务架构文档,聚焦 ai-server 的 Spring Boot 应用组织方式。说明模块化原则:plat、agent、aiclean、knowledge、graph、person、call、trans、track、govern、search、dm、otg、external 等业务模块各自负责的领域对象、Controller/Service/Mapper 分层结构。解释多数据源配置(MyBatis-Plus + Dynamic Datasource)如何切换 PostgreSQL/DuckDB/pgvector;说明 Sa-Token 认证、SSE 心跳保活、定时任务与工作空间清理等横切能力。给出新增业务模块的标准模板:新建 module、定义 entity/mapper/service/controller,注册路由,并在数据库脚本中维护表结构。补充性能与可观测性建议。",
  1721. "progress_status": "completed",
  1722. "dependent_files": "ai-server/pom.xml,ai-server/src/main/java/com/zsjz/ai/,ai-server/src/main/resources/",
  1723. "gmt_create": "2026-10-28T07:55:29Z",
  1724. "gmt_modified": "2026-10-28T07:55:29Z",
  1725. "order": 7,
  1726. "kk_dependent_files": [
  1727. "ai-server/pom.xml",
  1728. "ai-server/src/main/java/com/zsjz/ai/",
  1729. "ai-server/src/main/resources/"
  1730. ]
  1731. },
  1732. {
  1733. "id": "27d63566-5248-4f8a-8128-45e41b2cde9e",
  1734. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1735. "name": "通话数据接口",
  1736. "description": "call-data-api",
  1737. "prompt": "创建通话数据接口的 API 文档,覆盖通话记录、夜间通话、连续通话和敏感通话控制器。记录每个接口的 HTTP 方法、URL、请求参数(如号码、时间范围、案件号)、响应字段、分页和排序方式。说明通话数据在调查场景中的用途,以及与人员、轨迹、治理树的关联关系。提供典型查询示例,并说明时间范围过大、号码为空、数据缺失等问题的排查方法。",
  1738. "progress_status": "completed",
  1739. "dependent_files": "ai-server/src/main/java/com/zsjz/ai/module/call/controller/CallRecordController.java,ai-server/src/main/java/com/zsjz/ai/module/call/controller/CallNightController.java,ai-server/src/main/java/com/zsjz/ai/module/call/controller/CallContinuousController.java,ai-server/src/main/java/com/zsjz/ai/module/call/controller/CallSensitiveController.java",
  1740. "gmt_create": "2026-10-28T07:55:29Z",
  1741. "gmt_modified": "2026-10-28T07:55:29Z",
  1742. "parent_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  1743. "layer_level": 1,
  1744. "order": 7,
  1745. "kk_dependent_files": [
  1746. "ai-server/src/main/java/com/zsjz/ai/module/call/controller/CallRecordController.java",
  1747. "ai-server/src/main/java/com/zsjz/ai/module/call/controller/CallNightController.java",
  1748. "ai-server/src/main/java/com/zsjz/ai/module/call/controller/CallContinuousController.java",
  1749. "ai-server/src/main/java/com/zsjz/ai/module/call/controller/CallSensitiveController.java"
  1750. ]
  1751. },
  1752. {
  1753. "id": "ad0de49b-7550-43d1-b3ec-7c96d17a3729",
  1754. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1755. "name": "时序与特殊日期模块 otg",
  1756. "description": "business-otg",
  1757. "prompt": "为时序与特殊日期模块 otg 创建详细文档。说明该模块管理时序数据、特殊日期配置和搜索控制器,为通话、交易、轨迹等业务提供时间维度的增强能力。解释什么是特殊日期(节假日、工作日、自定义事件日)以及它们如何影响行为分析和异常检测。梳理时序实体结构、时间粒度、特殊日期表、控制器路由和处理管道。给出示例:按工作日/节假日筛选通话或交易、标记特殊日期、结合时序趋势做异常报警。补充时序数据写入性能、时间索引优化和与其他模块共享时间上下文的最佳实践。",
  1758. "progress_status": "completed",
  1759. "dependent_files": "ai-server/pom.xml,sql/case_table.sql,sql/case_table_1.sql,sql/insight_agent_tables.sql",
  1760. "gmt_create": "2026-10-28T07:55:29Z",
  1761. "gmt_modified": "2026-10-28T07:55:29Z",
  1762. "parent_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  1763. "layer_level": 1,
  1764. "order": 7,
  1765. "kk_dependent_files": [
  1766. "ai-server/pom.xml",
  1767. "sql/case_table.sql",
  1768. "sql/case_table_1.sql",
  1769. "sql/insight_agent_tables.sql"
  1770. ]
  1771. },
  1772. {
  1773. "id": "4dfe4a9e-9c32-4f75-8314-3b06172b0d57",
  1774. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1775. "name": "交易数据接口",
  1776. "description": "trans-data-api",
  1777. "prompt": "创建交易数据接口的 API 文档,覆盖资金流水、快速流水、固定存款、金融、现金、大额、频率、连续、卡持、敏感及对应 Key 配置等控制器。对每个接口说明 HTTP 方法、URL、请求参数、响应字段、分页、排序和错误码。说明交易数据与人员、账户、交易对手、治理树的关系,以及高频、大额、敏感交易在调查分析中的作用。提供按账户或人员查询交易的示例,并说明数据量大、时间范围过长、金额或时间格式错误等问题的排查方法。",
  1778. "progress_status": "completed",
  1779. "dependent_files": "ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransRecordController.java,ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransFundFlowController.java,ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransFastFundFlowController.java,ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransFixedDepositController.java,ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransFinancialController.java,ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransCashFlowController.java,ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransBigController.java,ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransFrequencyController.java,ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransContinuousController.java,ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransCardHoldController.java,ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransSensitiveController.java,ai-server/src/main/java/com/zsjz/ai/module/trans/controller/FixedDepositKeyController.java,ai-server/src/main/java/com/zsjz/ai/module/trans/controller/FinancialKeyController.java,ai-server/src/main/java/com/zsjz/ai/module/trans/controller/CashKeyController.java",
  1780. "gmt_create": "2026-10-28T07:55:29Z",
  1781. "gmt_modified": "2026-10-28T07:55:29Z",
  1782. "parent_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  1783. "layer_level": 1,
  1784. "order": 8,
  1785. "kk_dependent_files": [
  1786. "ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransRecordController.java",
  1787. "ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransFundFlowController.java",
  1788. "ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransFastFundFlowController.java",
  1789. "ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransFixedDepositController.java",
  1790. "ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransFinancialController.java",
  1791. "ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransCashFlowController.java",
  1792. "ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransBigController.java",
  1793. "ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransFrequencyController.java",
  1794. "ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransContinuousController.java",
  1795. "ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransCardHoldController.java",
  1796. "ai-server/src/main/java/com/zsjz/ai/module/trans/controller/TransSensitiveController.java",
  1797. "ai-server/src/main/java/com/zsjz/ai/module/trans/controller/FixedDepositKeyController.java",
  1798. "ai-server/src/main/java/com/zsjz/ai/module/trans/controller/FinancialKeyController.java",
  1799. "ai-server/src/main/java/com/zsjz/ai/module/trans/controller/CashKeyController.java"
  1800. ]
  1801. },
  1802. {
  1803. "id": "78886141-b043-4c17-a6c6-a2e7b67aea9a",
  1804. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1805. "name": "外部表模块 external",
  1806. "description": "business-external",
  1807. "prompt": "为外部表模块 external 创建详细文档。说明该模块用于管理外部表、EntryRec 映射、协居、车辆违法、罪犯等第三方或外部来源数据,并与内部 person、call、trans、track 等实体打通。解释外部表的注册、字段映射、数据来源标识、权限控制和案件隔离机制。梳理 external_tables、external_table_field 等核心表结构,以及 EntryRec 映射如何把外部记录转换为内部可用对象。给出示例:新增外部数据源、配置字段映射、查询协居/车辆违法/罪犯信息、与内部人员匹配。补充外部数据同步策略、脏数据清洗、字段对齐和性能优化建议。",
  1808. "progress_status": "completed",
  1809. "dependent_files": "ai-server/pom.xml,sql/external_tables.sql,sql/external_table_field.sql,sql/case_table.sql,sql/case_table_1.sql",
  1810. "gmt_create": "2026-10-28T07:55:29Z",
  1811. "gmt_modified": "2026-10-28T07:55:29Z",
  1812. "parent_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  1813. "layer_level": 1,
  1814. "order": 8,
  1815. "kk_dependent_files": [
  1816. "ai-server/pom.xml",
  1817. "sql/external_tables.sql",
  1818. "sql/external_table_field.sql",
  1819. "sql/case_table.sql",
  1820. "sql/case_table_1.sql"
  1821. ]
  1822. },
  1823. {
  1824. "id": "ec9a24fa-b5b6-4b28-96ab-06ee3089519f",
  1825. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1826. "name": "Agent 与 RAG",
  1827. "description": "agent-rag",
  1828. "prompt": "为 Agent 与 RAG 功能创建详细文档。说明 Agent 对话的整体流程:前端发起 SSE 请求,后端通过 AgentScope 调用 LLM Provider(DashScope/Ollama/OpenAI),并结合 pgvector 做向量检索、Schema Catalog、意图识别、Python 执行器、附件上传、Artifact 管理和 Insight 输出。解释 Workspace Catalog、AgentMessage、AgentChatSession、RagIndexStatus 等关键数据模型之间的关系。给出典型调用示例:发送消息、选择模型、开启 RAG、查看工具调用结果。说明向量索引状态、嵌入调试接口和知识库集成。补充常见问题:SSE 断连、模型不可用、向量检索无结果、Python 执行器权限或超时等。",
  1829. "progress_status": "completed",
  1830. "dependent_files": "ai-server/pom.xml,ai-electron/frontend/src/ai/,ai-electron/frontend/src/call/,ai-electron/frontend/src/core/",
  1831. "gmt_create": "2026-10-28T07:55:29Z",
  1832. "gmt_modified": "2026-10-28T07:55:29Z",
  1833. "order": 8,
  1834. "kk_dependent_files": [
  1835. "ai-server/pom.xml",
  1836. "ai-electron/frontend/src/ai/",
  1837. "ai-electron/frontend/src/call/",
  1838. "ai-electron/frontend/src/core/"
  1839. ]
  1840. },
  1841. {
  1842. "id": "af886b13-8d59-4e6e-b5ea-40ddd68ef0a5",
  1843. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1844. "name": "轨迹数据接口",
  1845. "description": "track-data-api",
  1846. "prompt": "创建轨迹数据接口的 API 文档,覆盖同行、同住、见面、同城、基站、快递信息等控制器。记录每个接口的 HTTP 方法、URL、请求参数、响应字段、分页和错误码。说明轨迹数据如何支持人员关联分析和时空调查,以及与人员、通话、交易、治理树的关系。提供按人员或时间范围查询轨迹的示例,并说明数据缺失、坐标无效、时间范围异常等问题的排查方法。",
  1847. "progress_status": "completed",
  1848. "dependent_files": "ai-server/src/main/java/com/zsjz/ai/module/track/controller/TrackTogetherTravelController.java,ai-server/src/main/java/com/zsjz/ai/module/track/controller/TrackTogetherLiveController.java,ai-server/src/main/java/com/zsjz/ai/module/track/controller/TrackMeetController.java,ai-server/src/main/java/com/zsjz/ai/module/track/controller/TrackEnLocalController.java,ai-server/src/main/java/com/zsjz/ai/module/track/controller/TrackCellTowerController.java,ai-server/src/main/java/com/zsjz/ai/module/track/controller/ExpressInfoController.java",
  1849. "gmt_create": "2026-10-28T07:55:29Z",
  1850. "gmt_modified": "2026-10-28T07:55:29Z",
  1851. "parent_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  1852. "layer_level": 1,
  1853. "order": 9,
  1854. "kk_dependent_files": [
  1855. "ai-server/src/main/java/com/zsjz/ai/module/track/controller/TrackTogetherTravelController.java",
  1856. "ai-server/src/main/java/com/zsjz/ai/module/track/controller/TrackTogetherLiveController.java",
  1857. "ai-server/src/main/java/com/zsjz/ai/module/track/controller/TrackMeetController.java",
  1858. "ai-server/src/main/java/com/zsjz/ai/module/track/controller/TrackEnLocalController.java",
  1859. "ai-server/src/main/java/com/zsjz/ai/module/track/controller/TrackCellTowerController.java",
  1860. "ai-server/src/main/java/com/zsjz/ai/module/track/controller/ExpressInfoController.java"
  1861. ]
  1862. },
  1863. {
  1864. "id": "fbd0f840-7bf0-40b1-9ae4-01dd991a8752",
  1865. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1866. "name": "AI 数据清洗",
  1867. "description": "ai-data-cleaning",
  1868. "prompt": "编写 AI 数据清洗功能的详细文档。说明清洗模板、同义词、字段短名映射、批量清洗任务和清洗结果统计的数据模型与业务流程。解释 AiCleanTemplate、Synonym、FieldMapping、AiCleanRowStats 等实体之间的关系,以及清洗任务如何通过向量索引或规则匹配完成智能清洗。给出用户上传 CSV/Excel、匹配模板、执行清洗、查看结果和导出结果的完整示例。说明清洗任务的执行状态、错误日志和重试策略。补充常见问题:字段映射不准确、同义词未生效、批量任务卡住、向量索引缺失等。",
  1869. "progress_status": "completed",
  1870. "dependent_files": "sql/ai_clean.sql,sql/ai_clean_field_short_names.sql,sql/ai_clean_row_stats.sql,sql/ai_clean_synonym_init.sql,ai-electron/frontend/src/case/",
  1871. "gmt_create": "2026-10-28T07:55:29Z",
  1872. "gmt_modified": "2026-10-28T07:55:29Z",
  1873. "order": 9,
  1874. "kk_dependent_files": [
  1875. "sql/ai_clean.sql",
  1876. "sql/ai_clean_field_short_names.sql",
  1877. "sql/ai_clean_row_stats.sql",
  1878. "sql/ai_clean_synonym_init.sql",
  1879. "ai-electron/frontend/src/case/"
  1880. ]
  1881. },
  1882. {
  1883. "id": "8c232144-b2f6-4c52-b4c6-5b9bf7ea9ffa",
  1884. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1885. "name": "治理与其他业务接口",
  1886. "description": "govern-and-other-business-api",
  1887. "prompt": "创建治理与其他业务接口的 API 文档,覆盖治理树、治理配置、搜索、时序、特殊日期和数据建模等控制器。记录各接口的 HTTP 方法、URL、请求参数、响应字段、分页和错误码。说明治理树在调查组织关系建模中的作用,搜索与时间序列在 otg 模块中的用途,以及 dm 数据建模接口如何辅助外部表和清洗流程。提供典型调用示例,并说明治理树结构异常、搜索结果为空、时序数据不完整、建模配置错误等问题的排查方法。",
  1888. "progress_status": "completed",
  1889. "dependent_files": "ai-server/src/main/java/com/zsjz/ai/module/govern/controller/GovernController.java,ai-server/src/main/java/com/zsjz/ai/module/govern/controller/GovernTreeController.java,ai-server/src/main/java/com/zsjz/ai/module/otg/controller/SearchController.java,ai-server/src/main/java/com/zsjz/ai/module/otg/controller/TimeSeriesController.java,ai-server/src/main/java/com/zsjz/ai/module/otg/controller/SpecialDateController.java,ai-server/src/main/java/com/zsjz/ai/module/dm/controller/DmController.java",
  1890. "gmt_create": "2026-10-28T07:55:29Z",
  1891. "gmt_modified": "2026-10-28T07:55:29Z",
  1892. "parent_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  1893. "layer_level": 1,
  1894. "order": 10,
  1895. "kk_dependent_files": [
  1896. "ai-server/src/main/java/com/zsjz/ai/module/govern/controller/GovernController.java",
  1897. "ai-server/src/main/java/com/zsjz/ai/module/govern/controller/GovernTreeController.java",
  1898. "ai-server/src/main/java/com/zsjz/ai/module/otg/controller/SearchController.java",
  1899. "ai-server/src/main/java/com/zsjz/ai/module/otg/controller/TimeSeriesController.java",
  1900. "ai-server/src/main/java/com/zsjz/ai/module/otg/controller/SpecialDateController.java",
  1901. "ai-server/src/main/java/com/zsjz/ai/module/dm/controller/DmController.java"
  1902. ]
  1903. },
  1904. {
  1905. "id": "fde671b0-e5b4-4ff9-9baa-df07ebc75177",
  1906. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1907. "name": "知识与向量检索",
  1908. "description": "knowledge-vector-retrieval",
  1909. "prompt": "创建知识与向量检索模块的文档。说明知识库、文档管理、向量库、下载日志和嵌入调试接口的设计与用法。解释文档如何被读取、向量化、存储到 pgvector,并在 Agent/RAG 检索中被召回。说明知识库与清洗模板、Agent Schema Catalog 的关系。给出上传文档、查看索引状态、调试 embedding、进行相似检索的示例。补充向量维度、索引刷新策略、文档去重、检索召回率调优和性能注意事项。",
  1910. "progress_status": "completed",
  1911. "dependent_files": "ai-server/pom.xml,ai-electron/frontend/src/ai/",
  1912. "gmt_create": "2026-10-28T07:55:29Z",
  1913. "gmt_modified": "2026-10-28T07:55:29Z",
  1914. "order": 10,
  1915. "kk_dependent_files": [
  1916. "ai-server/pom.xml",
  1917. "ai-electron/frontend/src/ai/"
  1918. ]
  1919. },
  1920. {
  1921. "id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  1922. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1923. "name": "业务数据模块",
  1924. "description": "business-modules",
  1925. "prompt": "汇总业务数据模块的总体文档,说明 person、call、trans、track、govern、search、dm、otg、external 等模块在调查场景中的职责和相互关系。解释这些模块如何围绕案件数据源、CaseDataSource、CaseInfo 和外部表组织数据,并通过 MyBatis-Plus 访问 PostgreSQL/pgvector/DuckDB。给出跨模块查询的典型场景:根据人员查通话、根据通话查交易、结合治理树和轨迹进行分析。说明数据建模 dm、外部表 external、时序 otg 和搜索 search 如何增强调查分析能力。补充性能优化建议和常见查询模式。",
  1926. "progress_status": "completed",
  1927. "dependent_files": "ai-server/pom.xml,sql/case_table.sql,sql/case_table_1.sql,sql/external_tables.sql,sql/table_data_1.sql,sql/insight_agent_tables.sql",
  1928. "gmt_create": "2026-10-28T07:55:29Z",
  1929. "gmt_modified": "2026-10-28T07:55:29Z",
  1930. "order": 11,
  1931. "kk_dependent_files": [
  1932. "ai-server/pom.xml",
  1933. "sql/case_table.sql",
  1934. "sql/case_table_1.sql",
  1935. "sql/external_tables.sql",
  1936. "sql/table_data_1.sql",
  1937. "sql/insight_agent_tables.sql"
  1938. ]
  1939. },
  1940. {
  1941. "id": "c1789760-0a39-4847-879e-bd14a1ed7b37",
  1942. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1943. "name": "数据库设计",
  1944. "description": "database-design",
  1945. "prompt": "创建完整的数据库设计文档。按业务域说明 PostgreSQL 主库表结构,包括 gateway_service/gateway_node、用户与授权、Agent 专家与工具、聊天附件、清洗模板与同义词、行统计、case_table、external_tables、insight_agent_tables、plat、user 等。说明 pgvector 向量表、DuckDB 临时数据源的用途和区别。给出 ER 关系图、关键字段定义、主外键、索引约束和业务规则。说明初始化脚本 sql/*.sql 的执行顺序、迁移规范和回滚注意事项。补充数据安全、访问控制和备份恢复建议。",
  1946. "progress_status": "completed",
  1947. "dependent_files": "sql/gateway.sql,sql/agent_expert.sql,sql/agent_tool.sql,sql/ai_clean.sql,sql/ai_clean_field_short_names.sql,sql/ai_clean_row_stats.sql,sql/ai_clean_synonym_init.sql,sql/case_table.sql,sql/case_table_1.sql,sql/chat_attachment.sql,sql/create_table_2.sql,sql/external_table_field.sql,sql/external_tables.sql,sql/insight_agent_tables.sql,sql/plat.sql,sql/table_data_1.sql,sql/user.sql",
  1948. "gmt_create": "2026-10-28T07:55:29Z",
  1949. "gmt_modified": "2026-10-28T07:55:29Z",
  1950. "order": 12,
  1951. "kk_dependent_files": [
  1952. "sql/gateway.sql",
  1953. "sql/agent_expert.sql",
  1954. "sql/agent_tool.sql",
  1955. "sql/ai_clean.sql",
  1956. "sql/ai_clean_field_short_names.sql",
  1957. "sql/ai_clean_row_stats.sql",
  1958. "sql/ai_clean_synonym_init.sql",
  1959. "sql/case_table.sql",
  1960. "sql/case_table_1.sql",
  1961. "sql/chat_attachment.sql",
  1962. "sql/create_table_2.sql",
  1963. "sql/external_table_field.sql",
  1964. "sql/external_tables.sql",
  1965. "sql/insight_agent_tables.sql",
  1966. "sql/plat.sql",
  1967. "sql/table_data_1.sql",
  1968. "sql/user.sql"
  1969. ]
  1970. },
  1971. {
  1972. "id": "14469378-a6de-4dcb-907f-1edc16463b71",
  1973. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1974. "name": "API 接口参考",
  1975. "description": "api-reference",
  1976. "prompt": "创建清鉴 AI 调查工具的 API 接口参考文档。按网关接口、系统基础 plat、Agent 对话、AI 清洗、知识检索、图谱、人员、通话、交易、轨迹、治理、外部表、数据建模等分组,说明 REST 接口的 HTTP 方法、URL 模式、请求参数、响应体结构和错误码。对于 Agent 对话,额外说明 SSE 连接建立、事件类型、消息格式和心跳保活协议。说明认证方式(x-token/Sa-Token)、跨域策略、分页、上传下载和速率限制。给出 curl 或前端调用示例,并说明常见错误(401、403、503、SSE 中断)的排查方法。",
  1977. "progress_status": "completed",
  1978. "dependent_files": "ai-gateway/src/main/java/com/zsjz/gateway/controller/AdminController.java,ai-server/src/main/java/com/zsjz/ai/",
  1979. "gmt_create": "2026-10-28T07:55:29Z",
  1980. "gmt_modified": "2026-10-28T07:55:29Z",
  1981. "order": 13,
  1982. "kk_dependent_files": [
  1983. "ai-gateway/src/main/java/com/zsjz/gateway/controller/AdminController.java",
  1984. "ai-server/src/main/java/com/zsjz/ai/"
  1985. ]
  1986. },
  1987. {
  1988. "id": "c77f0da0-55bc-4f69-9e32-f4aca699b57c",
  1989. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  1990. "name": "安全与许可证",
  1991. "description": "security-license",
  1992. "prompt": "编写安全与许可证文档。说明 Sa-Token 会话与 token 管理、Gateway 中 token/username 解析一致性、登录绑定与账号顶下线/踢下线后的会话释放机制。详细解释 regInfo.exe 许可证校验流程:机器码、过期时间、单位信息校验,以及客户端如何读取授权单元并写入 watermark。说明本地文件保护、Electron 主进程与渲染进程隔离、敏感配置和环境变量覆盖的安全考虑。给出许可证失效、token 不一致、账号被顶下线等问题的排查步骤。",
  1993. "progress_status": "completed",
  1994. "dependent_files": "readme.md,ai-gateway/pom.xml,ai-electron/package.json",
  1995. "gmt_create": "2026-10-28T07:55:29Z",
  1996. "gmt_modified": "2026-10-28T07:55:29Z",
  1997. "order": 14,
  1998. "kk_dependent_files": [
  1999. "readme.md",
  2000. "ai-gateway/pom.xml",
  2001. "ai-electron/package.json"
  2002. ]
  2003. },
  2004. {
  2005. "id": "67aa6a8d-c25c-435e-be2c-9a5fda6668b7",
  2006. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2007. "name": "部署与运维",
  2008. "description": "deployment-operations",
  2009. "prompt": "创建部署与运维指南。说明生产环境搭建步骤:PostgreSQL/pgvector、Redis、DuckDB 初始化,环境变量配置(deploy/env.sh),ai-gateway 和 ai-server 的启动顺序与配置差异。说明 Electron 客户端的构建、打包和自动更新流程,以及 Windows/Linux/macOS 安装包卸载脚本 cmd/uninstall.* 的用法。给出多节点扩展方案:多个 ai-server 节点、负载均衡、粘性路由健康检查和故障转移。补充日志位置、监控指标、备份恢复、性能调优和常见故障排查清单。",
  2010. "progress_status": "completed",
  2011. "dependent_files": "deploy/env.sh,cmd/uninstall.bat,cmd/uninstall.sh,ai-electron/package.json,ai-electron/frontend/bin/build.sh,ai-electron/frontend/bin/install.sh",
  2012. "gmt_create": "2026-10-28T07:55:29Z",
  2013. "gmt_modified": "2026-10-28T07:55:29Z",
  2014. "order": 15,
  2015. "kk_dependent_files": [
  2016. "deploy/env.sh",
  2017. "cmd/uninstall.bat",
  2018. "cmd/uninstall.sh",
  2019. "ai-electron/package.json",
  2020. "ai-electron/frontend/bin/build.sh",
  2021. "ai-electron/frontend/bin/install.sh"
  2022. ]
  2023. },
  2024. {
  2025. "id": "b7c1dade-a869-4023-920a-f5f527a56403",
  2026. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2027. "name": "测试与质量保证",
  2028. "description": "testing-quality",
  2029. "prompt": "编写测试与质量保证文档。说明单元测试、E2E 测试和 LLM 模板匹配测试的组织方式。重点介绍 docs/testing/ai-template-match-test-cases.md 和 fixtures/ai-llm-match-20261026 下的 run_tests.py、generate.py、manifest.json 等测试夹具,解释如何生成测试数据、运行测试和比对结果。说明前端 ESLint、Stylelint、Vitest 配置,以及后端测试目录的约定。给出新增测试用例、修复回归问题和调试 LLM 匹配失败的步骤。补充代码质量、覆盖率、持续集成和发布前检查建议。",
  2030. "progress_status": "completed",
  2031. "dependent_files": "docs/testing/ai-template-match-test-cases.md,docs/testing/fixtures/docs/testing/fixtures/ai-llm-match-20261026/run_tests.py,docs/testing/fixtures/docs/testing/fixtures/ai-llm-match-20261026/manifest.json,docs/testing/fixtures/docs/testing/fixtures/ai-llm-match-20261026/generate.py,ai-electron/vitest.config.mts,ai-electron/frontend/eslint.config.mjs,ai-electron/frontend/stylelint.config.mjs",
  2032. "gmt_create": "2026-10-28T07:55:29Z",
  2033. "gmt_modified": "2026-10-28T07:55:29Z",
  2034. "order": 16,
  2035. "kk_dependent_files": [
  2036. "docs/testing/ai-template-match-test-cases.md",
  2037. "docs/testing/fixtures/docs/testing/fixtures/ai-llm-match-20261026/run_tests.py",
  2038. "docs/testing/fixtures/docs/testing/fixtures/ai-llm-match-20261026/manifest.json",
  2039. "docs/testing/fixtures/docs/testing/fixtures/ai-llm-match-20261026/generate.py",
  2040. "ai-electron/vitest.config.mts",
  2041. "ai-electron/frontend/eslint.config.mjs",
  2042. "ai-electron/frontend/stylelint.config.mjs"
  2043. ]
  2044. },
  2045. {
  2046. "id": "922749ea-6307-428f-bfd8-4feb065746a6",
  2047. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2048. "name": "开发者指南",
  2049. "description": "developer-guide",
  2050. "prompt": "创建面向贡献者的开发者指南。说明如何添加新后端模块、新前端页面、新 IPC 接口、新数据库表和变更脚本。给出代码风格要求:Java、TypeScript/Vue、SQL、Shell/Batch 的约定,以及 Prettier、ESLint、Stylelint 配置。列出常用命令:Maven 构建、pnpm dev/build/start、Electron 打包、安装/卸载脚本。说明提交规范、分支策略、常见问题排查和 FAQ。补充调试技巧:Gateway 粘性路由日志、Agent SSE 调试、pgvector 向量检索验证、地图与许可证问题定位。",
  2051. "progress_status": "completed",
  2052. "dependent_files": "ai-electron/frontend/package.json,ai-electron/package.json,ai-server/pom.xml,ai-gateway/pom.xml,ai-electron/frontend/.prettierrc.mjs,ai-electron/frontend/eslint.config.mjs",
  2053. "gmt_create": "2026-10-28T07:55:29Z",
  2054. "gmt_modified": "2026-10-28T07:55:29Z",
  2055. "order": 17,
  2056. "kk_dependent_files": [
  2057. "ai-electron/frontend/package.json",
  2058. "ai-electron/package.json",
  2059. "ai-server/pom.xml",
  2060. "ai-gateway/pom.xml",
  2061. "ai-electron/frontend/.prettierrc.mjs",
  2062. "ai-electron/frontend/eslint.config.mjs"
  2063. ]
  2064. }
  2065. ],
  2066. "wiki_items": [
  2067. {
  2068. "id": "156aa516-49d6-4670-b3cf-453dbd239227",
  2069. "catalog_id": "156aa516-49d6-4670-b3cf-453dbd239227",
  2070. "title": "网关管理接口",
  2071. "description": "gateway-admin-api",
  2072. "extend": "{}",
  2073. "progress_status": "completed",
  2074. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2075. "reference_count": 0,
  2076. "gmt_create": "2026-10-28T07:55:29Z",
  2077. "gmt_modified": "2026-10-28T07:55:29Z"
  2078. },
  2079. {
  2080. "id": "353e0550-ef39-4028-9f2f-c3733cbe4fcc",
  2081. "catalog_id": "353e0550-ef39-4028-9f2f-c3733cbe4fcc",
  2082. "title": "Sa-Token 认证与会话管理",
  2083. "description": "sa-token-auth",
  2084. "extend": "{}",
  2085. "progress_status": "completed",
  2086. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2087. "reference_count": 0,
  2088. "gmt_create": "2026-10-28T07:55:29Z",
  2089. "gmt_modified": "2026-10-28T07:55:29Z"
  2090. },
  2091. {
  2092. "id": "4096358f-33de-4fc0-96f5-52e05a503884",
  2093. "catalog_id": "4096358f-33de-4fc0-96f5-52e05a503884",
  2094. "title": "代码风格与规范",
  2095. "description": "coding-standards",
  2096. "extend": "{}",
  2097. "progress_status": "completed",
  2098. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2099. "reference_count": 0,
  2100. "gmt_create": "2026-10-28T07:55:29Z",
  2101. "gmt_modified": "2026-10-28T07:55:29Z"
  2102. },
  2103. {
  2104. "id": "47bd7bc4-2fae-423e-971a-778154ccb8e0",
  2105. "catalog_id": "47bd7bc4-2fae-423e-971a-778154ccb8e0",
  2106. "title": "项目概览",
  2107. "description": "project-overview",
  2108. "extend": "{}",
  2109. "progress_status": "completed",
  2110. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2111. "reference_count": 0,
  2112. "gmt_create": "2026-10-28T07:55:29Z",
  2113. "gmt_modified": "2026-10-28T07:55:29Z"
  2114. },
  2115. {
  2116. "id": "4980a173-ddc7-4a67-841d-a8708fe3d5dc",
  2117. "catalog_id": "4980a173-ddc7-4a67-841d-a8708fe3d5dc",
  2118. "title": "知识库管理",
  2119. "description": "knowledge-base-management",
  2120. "extend": "{}",
  2121. "progress_status": "completed",
  2122. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2123. "reference_count": 0,
  2124. "gmt_create": "2026-10-28T07:55:29Z",
  2125. "gmt_modified": "2026-10-28T07:55:29Z"
  2126. },
  2127. {
  2128. "id": "51426ffe-15ab-4186-b1a9-75d4fdbf3c6f",
  2129. "catalog_id": "51426ffe-15ab-4186-b1a9-75d4fdbf3c6f",
  2130. "title": "人员模块 person",
  2131. "description": "business-person",
  2132. "extend": "{}",
  2133. "progress_status": "completed",
  2134. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2135. "reference_count": 0,
  2136. "gmt_create": "2026-10-28T07:55:29Z",
  2137. "gmt_modified": "2026-10-28T07:55:29Z"
  2138. },
  2139. {
  2140. "id": "7c424667-c8c7-4f7a-bbd7-af27a21ef237",
  2141. "catalog_id": "7c424667-c8c7-4f7a-bbd7-af27a21ef237",
  2142. "title": "Agent 对话总览与 SSE 流式交互",
  2143. "description": "agent-overview",
  2144. "extend": "{}",
  2145. "progress_status": "completed",
  2146. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2147. "reference_count": 0,
  2148. "gmt_create": "2026-10-28T07:55:29Z",
  2149. "gmt_modified": "2026-10-28T07:55:29Z"
  2150. },
  2151. {
  2152. "id": "806c0f96-05b8-473c-968e-d617c7a8bea4",
  2153. "catalog_id": "806c0f96-05b8-473c-968e-d617c7a8bea4",
  2154. "title": "系统架构总览",
  2155. "description": "system-architecture-overview",
  2156. "extend": "{}",
  2157. "progress_status": "completed",
  2158. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2159. "reference_count": 0,
  2160. "gmt_create": "2026-10-28T07:55:29Z",
  2161. "gmt_modified": "2026-10-28T07:55:29Z"
  2162. },
  2163. {
  2164. "id": "ab6a7934-379d-4064-ab15-60187c9fb4ab",
  2165. "catalog_id": "ab6a7934-379d-4064-ab15-60187c9fb4ab",
  2166. "title": "Spring Boot 应用入口与启动流程",
  2167. "description": "spring-boot-application",
  2168. "extend": "{}",
  2169. "progress_status": "completed",
  2170. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2171. "reference_count": 0,
  2172. "gmt_create": "2026-10-28T07:55:29Z",
  2173. "gmt_modified": "2026-10-28T07:55:29Z"
  2174. },
  2175. {
  2176. "id": "bbe3d5c7-9708-45a5-9b0e-155f8a79506b",
  2177. "catalog_id": "bbe3d5c7-9708-45a5-9b0e-155f8a79506b",
  2178. "title": "StickyRouteFilter 粘性路由核心逻辑",
  2179. "description": "sticky-route-filter",
  2180. "extend": "{}",
  2181. "progress_status": "completed",
  2182. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2183. "reference_count": 0,
  2184. "gmt_create": "2026-10-28T07:55:29Z",
  2185. "gmt_modified": "2026-10-28T07:55:29Z"
  2186. },
  2187. {
  2188. "id": "bd014943-9fdc-41c3-aeda-440568e4a340",
  2189. "catalog_id": "bd014943-9fdc-41c3-aeda-440568e4a340",
  2190. "title": "测试总览与分层策略",
  2191. "description": "testing-overview",
  2192. "extend": "{}",
  2193. "progress_status": "completed",
  2194. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2195. "reference_count": 0,
  2196. "gmt_create": "2026-10-28T07:55:29Z",
  2197. "gmt_modified": "2026-10-28T07:55:29Z"
  2198. },
  2199. {
  2200. "id": "c9a620a7-1b3c-4d58-85b0-2a21724b19d2",
  2201. "catalog_id": "c9a620a7-1b3c-4d58-85b0-2a21724b19d2",
  2202. "title": "环境准备与初始化",
  2203. "description": "deployment-environment-setup",
  2204. "extend": "{}",
  2205. "progress_status": "completed",
  2206. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2207. "reference_count": 0,
  2208. "gmt_create": "2026-10-28T07:55:29Z",
  2209. "gmt_modified": "2026-10-28T07:55:29Z"
  2210. },
  2211. {
  2212. "id": "dfcc2c4e-4392-42f2-9bab-4f652761f880",
  2213. "catalog_id": "dfcc2c4e-4392-42f2-9bab-4f652761f880",
  2214. "title": "网关路由表结构",
  2215. "description": "gateway-schema",
  2216. "extend": "{}",
  2217. "progress_status": "completed",
  2218. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2219. "reference_count": 0,
  2220. "gmt_create": "2026-10-28T07:55:29Z",
  2221. "gmt_modified": "2026-10-28T07:55:29Z"
  2222. },
  2223. {
  2224. "id": "e6253e7f-3ead-4cd2-84c5-bd9c93288a0e",
  2225. "catalog_id": "e6253e7f-3ead-4cd2-84c5-bd9c93288a0e",
  2226. "title": "Electron 主进程与生命周期",
  2227. "description": "electron-main-process",
  2228. "extend": "{}",
  2229. "progress_status": "completed",
  2230. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2231. "reference_count": 0,
  2232. "gmt_create": "2026-10-28T07:55:29Z",
  2233. "gmt_modified": "2026-10-28T07:55:29Z"
  2234. },
  2235. {
  2236. "id": "f5ed2513-391a-4b75-8007-bb3d5216e4df",
  2237. "catalog_id": "f5ed2513-391a-4b75-8007-bb3d5216e4df",
  2238. "title": "清洗模板与字段映射",
  2239. "description": "ai-clean-templates",
  2240. "extend": "{}",
  2241. "progress_status": "completed",
  2242. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2243. "reference_count": 0,
  2244. "gmt_create": "2026-10-28T07:55:29Z",
  2245. "gmt_modified": "2026-10-28T07:55:29Z"
  2246. },
  2247. {
  2248. "id": "114b42fc-097d-4ff9-b78a-b1f128492359",
  2249. "catalog_id": "114b42fc-097d-4ff9-b78a-b1f128492359",
  2250. "title": "快速开始",
  2251. "description": "getting-started",
  2252. "extend": "{}",
  2253. "progress_status": "completed",
  2254. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2255. "reference_count": 0,
  2256. "gmt_create": "2026-10-28T07:55:29Z",
  2257. "gmt_modified": "2026-10-28T07:55:29Z"
  2258. },
  2259. {
  2260. "id": "1acb4aac-20b1-4e60-9d3a-4d49412f11ef",
  2261. "catalog_id": "1acb4aac-20b1-4e60-9d3a-4d49412f11ef",
  2262. "title": "文档上传、解析与索引生命周期",
  2263. "description": "knowledge-doc-lifecycle",
  2264. "extend": "{}",
  2265. "progress_status": "completed",
  2266. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2267. "reference_count": 0,
  2268. "gmt_create": "2026-10-28T07:55:29Z",
  2269. "gmt_modified": "2026-10-28T07:55:29Z"
  2270. },
  2271. {
  2272. "id": "21342d52-98e3-4654-9724-072359e1c6f2",
  2273. "catalog_id": "21342d52-98e3-4654-9724-072359e1c6f2",
  2274. "title": "后端服务部署",
  2275. "description": "deployment-backend-services",
  2276. "extend": "{}",
  2277. "progress_status": "completed",
  2278. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2279. "reference_count": 0,
  2280. "gmt_create": "2026-10-28T07:55:29Z",
  2281. "gmt_modified": "2026-10-28T07:55:29Z"
  2282. },
  2283. {
  2284. "id": "22ed1e10-d4ca-42c7-801c-8bda48b58052",
  2285. "catalog_id": "22ed1e10-d4ca-42c7-801c-8bda48b58052",
  2286. "title": "登录请求与响应过滤链",
  2287. "description": "login-binding-filters",
  2288. "extend": "{}",
  2289. "progress_status": "completed",
  2290. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2291. "reference_count": 0,
  2292. "gmt_create": "2026-10-28T07:55:29Z",
  2293. "gmt_modified": "2026-10-28T07:55:29Z"
  2294. },
  2295. {
  2296. "id": "30a9faef-23f4-406d-8889-3da2c96ba102",
  2297. "catalog_id": "30a9faef-23f4-406d-8889-3da2c96ba102",
  2298. "title": "LLM Provider 管理与模型工厂",
  2299. "description": "agent-model-provider",
  2300. "extend": "{}",
  2301. "progress_status": "completed",
  2302. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2303. "reference_count": 0,
  2304. "gmt_create": "2026-10-28T07:55:29Z",
  2305. "gmt_modified": "2026-10-28T07:55:29Z"
  2306. },
  2307. {
  2308. "id": "41e369d2-9662-4e1b-b62f-21de646b34c9",
  2309. "catalog_id": "41e369d2-9662-4e1b-b62f-21de646b34c9",
  2310. "title": "Gateway Token 一致性与登录绑定",
  2311. "description": "gateway-token-consistency",
  2312. "extend": "{}",
  2313. "progress_status": "completed",
  2314. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2315. "reference_count": 0,
  2316. "gmt_create": "2026-10-28T07:55:29Z",
  2317. "gmt_modified": "2026-10-28T07:55:29Z"
  2318. },
  2319. {
  2320. "id": "48ee09b6-d73e-4c97-ab30-872d6271b0d5",
  2321. "catalog_id": "48ee09b6-d73e-4c97-ab30-872d6271b0d5",
  2322. "title": "桌面客户端架构",
  2323. "description": "desktop-client-architecture",
  2324. "extend": "{}",
  2325. "progress_status": "completed",
  2326. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2327. "reference_count": 0,
  2328. "gmt_create": "2026-10-28T07:55:29Z",
  2329. "gmt_modified": "2026-10-28T07:55:29Z"
  2330. },
  2331. {
  2332. "id": "4b666607-23fd-418b-926a-f561218179c6",
  2333. "catalog_id": "4b666607-23fd-418b-926a-f561218179c6",
  2334. "title": "构建命令与脚本",
  2335. "description": "build-and-scripts",
  2336. "extend": "{}",
  2337. "progress_status": "completed",
  2338. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2339. "reference_count": 0,
  2340. "gmt_create": "2026-10-28T07:55:29Z",
  2341. "gmt_modified": "2026-10-28T07:55:29Z"
  2342. },
  2343. {
  2344. "id": "5b47e58f-5090-4cfd-8288-e866003e9231",
  2345. "catalog_id": "5b47e58f-5090-4cfd-8288-e866003e9231",
  2346. "title": "LLM 模板匹配测试与夹具",
  2347. "description": "llm-template-matching-tests",
  2348. "extend": "{}",
  2349. "progress_status": "completed",
  2350. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2351. "reference_count": 0,
  2352. "gmt_create": "2026-10-28T07:55:29Z",
  2353. "gmt_modified": "2026-10-28T07:55:29Z"
  2354. },
  2355. {
  2356. "id": "5c689d53-7384-4633-95ad-b40096e9b00b",
  2357. "catalog_id": "5c689d53-7384-4633-95ad-b40096e9b00b",
  2358. "title": "平台基础与用户授权表",
  2359. "description": "plat-user-schema",
  2360. "extend": "{}",
  2361. "progress_status": "completed",
  2362. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2363. "reference_count": 0,
  2364. "gmt_create": "2026-10-28T07:55:29Z",
  2365. "gmt_modified": "2026-10-28T07:55:29Z"
  2366. },
  2367. {
  2368. "id": "9ca9022c-45b9-4e6b-89d3-34eac1d4ee30",
  2369. "catalog_id": "9ca9022c-45b9-4e6b-89d3-34eac1d4ee30",
  2370. "title": "同义词管理",
  2371. "description": "ai-clean-synonyms",
  2372. "extend": "{}",
  2373. "progress_status": "completed",
  2374. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2375. "reference_count": 0,
  2376. "gmt_create": "2026-10-28T07:55:29Z",
  2377. "gmt_modified": "2026-10-28T07:55:29Z"
  2378. },
  2379. {
  2380. "id": "b474a118-2219-4f66-863d-a7f18d59e5df",
  2381. "catalog_id": "b474a118-2219-4f66-863d-a7f18d59e5df",
  2382. "title": "模块化架构与统一分层",
  2383. "description": "module-architecture",
  2384. "extend": "{}",
  2385. "progress_status": "completed",
  2386. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2387. "reference_count": 0,
  2388. "gmt_create": "2026-10-28T07:55:29Z",
  2389. "gmt_modified": "2026-10-28T07:55:29Z"
  2390. },
  2391. {
  2392. "id": "c52c7b80-86ea-4f92-8179-6a86a77494a3",
  2393. "catalog_id": "c52c7b80-86ea-4f92-8179-6a86a77494a3",
  2394. "title": "认证与系统基础接口",
  2395. "description": "auth-and-system-api",
  2396. "extend": "{}",
  2397. "progress_status": "completed",
  2398. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2399. "reference_count": 0,
  2400. "gmt_create": "2026-10-28T07:55:29Z",
  2401. "gmt_modified": "2026-10-28T07:55:29Z"
  2402. },
  2403. {
  2404. "id": "c5c9d701-000d-421e-80cd-170bb6739623",
  2405. "catalog_id": "c5c9d701-000d-421e-80cd-170bb6739623",
  2406. "title": "通话模块 call",
  2407. "description": "business-call",
  2408. "extend": "{}",
  2409. "progress_status": "completed",
  2410. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2411. "reference_count": 0,
  2412. "gmt_create": "2026-10-28T07:55:29Z",
  2413. "gmt_modified": "2026-10-28T07:55:29Z"
  2414. },
  2415. {
  2416. "id": "f77992a3-a80c-4ebc-9f77-8faf081f3420",
  2417. "catalog_id": "f77992a3-a80c-4ebc-9f77-8faf081f3420",
  2418. "title": "Preload 桥接与安全模型",
  2419. "description": "electron-preload-bridge",
  2420. "extend": "{}",
  2421. "progress_status": "completed",
  2422. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2423. "reference_count": 0,
  2424. "gmt_create": "2026-10-28T07:55:29Z",
  2425. "gmt_modified": "2026-10-28T07:55:29Z"
  2426. },
  2427. {
  2428. "id": "02425a89-4f3c-4fcb-8125-016b7cc6e537",
  2429. "catalog_id": "02425a89-4f3c-4fcb-8125-016b7cc6e537",
  2430. "title": "RAG Schema、向量检索与知识库集成",
  2431. "description": "agent-rag-schema-vector",
  2432. "extend": "{}",
  2433. "progress_status": "completed",
  2434. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2435. "reference_count": 0,
  2436. "gmt_create": "2026-10-28T07:55:29Z",
  2437. "gmt_modified": "2026-10-28T07:55:29Z"
  2438. },
  2439. {
  2440. "id": "034e56aa-57ff-407a-ae4c-7eb6f78922e0",
  2441. "catalog_id": "034e56aa-57ff-407a-ae4c-7eb6f78922e0",
  2442. "title": "Agent 对话与 RAG 接口",
  2443. "description": "agent-chat-and-rag-api",
  2444. "extend": "{}",
  2445. "progress_status": "completed",
  2446. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2447. "reference_count": 0,
  2448. "gmt_create": "2026-10-28T07:55:29Z",
  2449. "gmt_modified": "2026-10-28T07:55:29Z"
  2450. },
  2451. {
  2452. "id": "087bb53b-235b-4be4-8619-c4f233ed71e3",
  2453. "catalog_id": "087bb53b-235b-4be4-8619-c4f233ed71e3",
  2454. "title": "Agent、专家、工具与聊天附件表",
  2455. "description": "agent-schemas",
  2456. "extend": "{}",
  2457. "progress_status": "completed",
  2458. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2459. "reference_count": 0,
  2460. "gmt_create": "2026-10-28T07:55:29Z",
  2461. "gmt_modified": "2026-10-28T07:55:29Z"
  2462. },
  2463. {
  2464. "id": "2430cac4-9893-4fa5-b51c-2d967e0f4e01",
  2465. "catalog_id": "2430cac4-9893-4fa5-b51c-2d967e0f4e01",
  2466. "title": "regInfo.exe 许可证校验流程",
  2467. "description": "reginfo-license-validation",
  2468. "extend": "{}",
  2469. "progress_status": "completed",
  2470. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2471. "reference_count": 0,
  2472. "gmt_create": "2026-10-28T07:55:29Z",
  2473. "gmt_modified": "2026-10-28T07:55:29Z"
  2474. },
  2475. {
  2476. "id": "279bf8ac-c655-4c5d-9be4-0653f70965fd",
  2477. "catalog_id": "279bf8ac-c655-4c5d-9be4-0653f70965fd",
  2478. "title": "交易模块 trans",
  2479. "description": "business-trans",
  2480. "extend": "{}",
  2481. "progress_status": "completed",
  2482. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2483. "reference_count": 0,
  2484. "gmt_create": "2026-10-28T07:55:29Z",
  2485. "gmt_modified": "2026-10-28T07:55:29Z"
  2486. },
  2487. {
  2488. "id": "2d92cc7b-fcdd-4353-a322-09eae0d8e610",
  2489. "catalog_id": "2d92cc7b-fcdd-4353-a322-09eae0d8e610",
  2490. "title": "服务注册中心与健康检查",
  2491. "description": "gateway-registry-and-health",
  2492. "extend": "{}",
  2493. "progress_status": "completed",
  2494. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2495. "reference_count": 0,
  2496. "gmt_create": "2026-10-28T07:55:29Z",
  2497. "gmt_modified": "2026-10-28T07:55:29Z"
  2498. },
  2499. {
  2500. "id": "3cf3d4f3-856a-4d13-acb8-3aa2bf286c04",
  2501. "catalog_id": "3cf3d4f3-856a-4d13-acb8-3aa2bf286c04",
  2502. "title": "技术栈与依赖",
  2503. "description": "technology-stack",
  2504. "extend": "{}",
  2505. "progress_status": "completed",
  2506. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2507. "reference_count": 0,
  2508. "gmt_create": "2026-10-28T07:55:29Z",
  2509. "gmt_modified": "2026-10-28T07:55:29Z"
  2510. },
  2511. {
  2512. "id": "645f94c6-f003-4b68-b55f-8ed08d10ce69",
  2513. "catalog_id": "645f94c6-f003-4b68-b55f-8ed08d10ce69",
  2514. "title": "网关与粘性路由架构",
  2515. "description": "gateway-sticky-routing-architecture",
  2516. "extend": "{}",
  2517. "progress_status": "completed",
  2518. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2519. "reference_count": 0,
  2520. "gmt_create": "2026-10-28T07:55:29Z",
  2521. "gmt_modified": "2026-10-28T07:55:29Z"
  2522. },
  2523. {
  2524. "id": "7ed47ff0-8933-4302-ac7f-15ef5c824483",
  2525. "catalog_id": "7ed47ff0-8933-4302-ac7f-15ef5c824483",
  2526. "title": "添加新模块与新功能",
  2527. "description": "adding-new-module",
  2528. "extend": "{}",
  2529. "progress_status": "completed",
  2530. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2531. "reference_count": 0,
  2532. "gmt_create": "2026-10-28T07:55:29Z",
  2533. "gmt_modified": "2026-10-28T07:55:29Z"
  2534. },
  2535. {
  2536. "id": "82b197df-b35b-47fc-8bef-78cdebd2c2f8",
  2537. "catalog_id": "82b197df-b35b-47fc-8bef-78cdebd2c2f8",
  2538. "title": "批量清洗任务",
  2539. "description": "ai-clean-batch-jobs",
  2540. "extend": "{}",
  2541. "progress_status": "completed",
  2542. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2543. "reference_count": 0,
  2544. "gmt_create": "2026-10-28T07:55:29Z",
  2545. "gmt_modified": "2026-10-28T07:55:29Z"
  2546. },
  2547. {
  2548. "id": "8b970997-124e-46b3-86f0-da34175ae365",
  2549. "catalog_id": "8b970997-124e-46b3-86f0-da34175ae365",
  2550. "title": "向量存储与检索",
  2551. "description": "knowledge-vector-storage",
  2552. "extend": "{}",
  2553. "progress_status": "completed",
  2554. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2555. "reference_count": 0,
  2556. "gmt_create": "2026-10-28T07:55:29Z",
  2557. "gmt_modified": "2026-10-28T07:55:29Z"
  2558. },
  2559. {
  2560. "id": "d4244f4c-2490-44b5-b0da-669fa5f4ff93",
  2561. "catalog_id": "d4244f4c-2490-44b5-b0da-669fa5f4ff93",
  2562. "title": "Electron 客户端构建与发布",
  2563. "description": "deployment-electron-client",
  2564. "extend": "{}",
  2565. "progress_status": "completed",
  2566. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2567. "reference_count": 0,
  2568. "gmt_create": "2026-10-28T07:55:29Z",
  2569. "gmt_modified": "2026-10-28T07:55:29Z"
  2570. },
  2571. {
  2572. "id": "e5327e25-d642-48b6-a00b-3ee3df9a45fc",
  2573. "catalog_id": "e5327e25-d642-48b6-a00b-3ee3df9a45fc",
  2574. "title": "多数据源配置与切换",
  2575. "description": "multi-datasource-config",
  2576. "extend": "{}",
  2577. "progress_status": "completed",
  2578. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2579. "reference_count": 0,
  2580. "gmt_create": "2026-10-28T07:55:29Z",
  2581. "gmt_modified": "2026-10-28T07:55:29Z"
  2582. },
  2583. {
  2584. "id": "efa5573e-0743-4e8b-adba-e6efadecc9f2",
  2585. "catalog_id": "efa5573e-0743-4e8b-adba-e6efadecc9f2",
  2586. "title": "单元测试与 E2E 测试",
  2587. "description": "unit-testing",
  2588. "extend": "{}",
  2589. "progress_status": "completed",
  2590. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2591. "reference_count": 0,
  2592. "gmt_create": "2026-10-28T07:55:29Z",
  2593. "gmt_modified": "2026-10-28T07:55:29Z"
  2594. },
  2595. {
  2596. "id": "ffe7bd4f-414d-489a-92fa-f265405a7add",
  2597. "catalog_id": "ffe7bd4f-414d-489a-92fa-f265405a7add",
  2598. "title": "窗口控制与跨窗口状态同步",
  2599. "description": "electron-window-control",
  2600. "extend": "{}",
  2601. "progress_status": "completed",
  2602. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2603. "reference_count": 0,
  2604. "gmt_create": "2026-10-28T07:55:29Z",
  2605. "gmt_modified": "2026-10-28T07:55:29Z"
  2606. },
  2607. {
  2608. "id": "03a0099f-84a3-433f-972a-b9d3b4ad8a03",
  2609. "catalog_id": "03a0099f-84a3-433f-972a-b9d3b4ad8a03",
  2610. "title": "AI 数据清洗接口",
  2611. "description": "ai-clean-api",
  2612. "extend": "{}",
  2613. "progress_status": "completed",
  2614. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2615. "reference_count": 0,
  2616. "gmt_create": "2026-10-28T07:55:29Z",
  2617. "gmt_modified": "2026-10-28T07:55:29Z"
  2618. },
  2619. {
  2620. "id": "0b5c5236-0103-4f16-b57a-56e7e7be9713",
  2621. "catalog_id": "0b5c5236-0103-4f16-b57a-56e7e7be9713",
  2622. "title": "前端代码规范与质量工具",
  2623. "description": "frontend-code-quality",
  2624. "extend": "{}",
  2625. "progress_status": "completed",
  2626. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2627. "reference_count": 0,
  2628. "gmt_create": "2026-10-28T07:55:29Z",
  2629. "gmt_modified": "2026-10-28T07:55:29Z"
  2630. },
  2631. {
  2632. "id": "0e2872d4-dad7-4efb-ade8-a2e5f8e13a86",
  2633. "catalog_id": "0e2872d4-dad7-4efb-ade8-a2e5f8e13a86",
  2634. "title": "目录结构与代码组织",
  2635. "description": "directory-structure",
  2636. "extend": "{}",
  2637. "progress_status": "completed",
  2638. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2639. "reference_count": 0,
  2640. "gmt_create": "2026-10-28T07:55:29Z",
  2641. "gmt_modified": "2026-10-28T07:55:29Z"
  2642. },
  2643. {
  2644. "id": "258ef8d6-d1f0-4ec5-86c4-67200e3f8c37",
  2645. "catalog_id": "258ef8d6-d1f0-4ec5-86c4-67200e3f8c37",
  2646. "title": "前端根应用与启动流程",
  2647. "description": "frontend-root-application",
  2648. "extend": "{}",
  2649. "progress_status": "completed",
  2650. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2651. "reference_count": 0,
  2652. "gmt_create": "2026-10-28T07:55:29Z",
  2653. "gmt_modified": "2026-10-28T07:55:29Z"
  2654. },
  2655. {
  2656. "id": "5352975b-7714-4098-a0f1-a8f2946e68b3",
  2657. "catalog_id": "5352975b-7714-4098-a0f1-a8f2946e68b3",
  2658. "title": "安装包卸载与清理",
  2659. "description": "deployment-uninstallation",
  2660. "extend": "{}",
  2661. "progress_status": "completed",
  2662. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2663. "reference_count": 0,
  2664. "gmt_create": "2026-10-28T07:55:29Z",
  2665. "gmt_modified": "2026-10-28T07:55:29Z"
  2666. },
  2667. {
  2668. "id": "652c39da-67ee-45ba-ad92-262987cc74c1",
  2669. "catalog_id": "652c39da-67ee-45ba-ad92-262987cc74c1",
  2670. "title": "调试与问题排查",
  2671. "description": "debugging-and-troubleshooting",
  2672. "extend": "{}",
  2673. "progress_status": "completed",
  2674. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2675. "reference_count": 0,
  2676. "gmt_create": "2026-10-28T07:55:29Z",
  2677. "gmt_modified": "2026-10-28T07:55:29Z"
  2678. },
  2679. {
  2680. "id": "684b1d01-a312-48fb-87c4-3e103deb4f35",
  2681. "catalog_id": "684b1d01-a312-48fb-87c4-3e103deb4f35",
  2682. "title": "Electron 安全边界与本地文件保护",
  2683. "description": "electron-security-boundaries",
  2684. "extend": "{}",
  2685. "progress_status": "completed",
  2686. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2687. "reference_count": 0,
  2688. "gmt_create": "2026-10-28T07:55:29Z",
  2689. "gmt_modified": "2026-10-28T07:55:29Z"
  2690. },
  2691. {
  2692. "id": "84773149-8223-4a20-a62c-5319d4527d3f",
  2693. "catalog_id": "84773149-8223-4a20-a62c-5319d4527d3f",
  2694. "title": "工具包、Python 执行器与 Artifact",
  2695. "description": "agent-tools-python-artifacts",
  2696. "extend": "{}",
  2697. "progress_status": "completed",
  2698. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2699. "reference_count": 0,
  2700. "gmt_create": "2026-10-28T07:55:29Z",
  2701. "gmt_modified": "2026-10-28T07:55:29Z"
  2702. },
  2703. {
  2704. "id": "971bd1ce-217d-4f0c-a6ad-29840ae2639f",
  2705. "catalog_id": "971bd1ce-217d-4f0c-a6ad-29840ae2639f",
  2706. "title": "轨迹模块 track",
  2707. "description": "business-track",
  2708. "extend": "{}",
  2709. "progress_status": "completed",
  2710. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2711. "reference_count": 0,
  2712. "gmt_create": "2026-10-28T07:55:29Z",
  2713. "gmt_modified": "2026-10-28T07:55:29Z"
  2714. },
  2715. {
  2716. "id": "9d19f6ee-79cd-4e4a-9a0d-dea1880bbf9c",
  2717. "catalog_id": "9d19f6ee-79cd-4e4a-9a0d-dea1880bbf9c",
  2718. "title": "认证与会话管理",
  2719. "description": "authentication-session",
  2720. "extend": "{}",
  2721. "progress_status": "completed",
  2722. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2723. "reference_count": 0,
  2724. "gmt_create": "2026-10-28T07:55:29Z",
  2725. "gmt_modified": "2026-10-28T07:55:29Z"
  2726. },
  2727. {
  2728. "id": "bba68a9f-bcb3-4c71-a2eb-1f56005e29f1",
  2729. "catalog_id": "bba68a9f-bcb3-4c71-a2eb-1f56005e29f1",
  2730. "title": "清洗结果与统计",
  2731. "description": "ai-clean-results-and-stats",
  2732. "extend": "{}",
  2733. "progress_status": "completed",
  2734. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2735. "reference_count": 0,
  2736. "gmt_create": "2026-10-28T07:55:29Z",
  2737. "gmt_modified": "2026-10-28T07:55:29Z"
  2738. },
  2739. {
  2740. "id": "be260c76-7452-4c32-b391-518638e55800",
  2741. "catalog_id": "be260c76-7452-4c32-b391-518638e55800",
  2742. "title": "嵌入调试接口",
  2743. "description": "embedding-debug-interface",
  2744. "extend": "{}",
  2745. "progress_status": "completed",
  2746. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2747. "reference_count": 0,
  2748. "gmt_create": "2026-10-28T07:55:29Z",
  2749. "gmt_modified": "2026-10-28T07:55:29Z"
  2750. },
  2751. {
  2752. "id": "ca6be081-bf0b-43f8-8325-ae3d860af297",
  2753. "catalog_id": "ca6be081-bf0b-43f8-8325-ae3d860af297",
  2754. "title": "网关管理接口",
  2755. "description": "admin-api",
  2756. "extend": "{}",
  2757. "progress_status": "completed",
  2758. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2759. "reference_count": 0,
  2760. "gmt_create": "2026-10-28T07:55:29Z",
  2761. "gmt_modified": "2026-10-28T07:55:29Z"
  2762. },
  2763. {
  2764. "id": "d27f0c5a-2dec-48e1-9bdd-d640386cd8ac",
  2765. "catalog_id": "d27f0c5a-2dec-48e1-9bdd-d640386cd8ac",
  2766. "title": "后端服务架构",
  2767. "description": "backend-service-architecture",
  2768. "extend": "{}",
  2769. "progress_status": "completed",
  2770. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2771. "reference_count": 0,
  2772. "gmt_create": "2026-10-28T07:55:29Z",
  2773. "gmt_modified": "2026-10-28T07:55:29Z"
  2774. },
  2775. {
  2776. "id": "e9ff4b7b-abcf-42ad-b5f1-3c1cd72bbcf1",
  2777. "catalog_id": "e9ff4b7b-abcf-42ad-b5f1-3c1cd72bbcf1",
  2778. "title": "AI 数据清洗模板、同义词与行统计表",
  2779. "description": "ai-clean-schemas",
  2780. "extend": "{}",
  2781. "progress_status": "completed",
  2782. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2783. "reference_count": 0,
  2784. "gmt_create": "2026-10-28T07:55:29Z",
  2785. "gmt_modified": "2026-10-28T07:55:29Z"
  2786. },
  2787. {
  2788. "id": "13f6442b-ca39-47c8-a5ad-c1ea01c7f014",
  2789. "catalog_id": "13f6442b-ca39-47c8-a5ad-c1ea01c7f014",
  2790. "title": "关键数据流与应用生命周期",
  2791. "description": "data-flow-and-lifecycle",
  2792. "extend": "{}",
  2793. "progress_status": "completed",
  2794. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2795. "reference_count": 0,
  2796. "gmt_create": "2026-10-28T07:55:29Z",
  2797. "gmt_modified": "2026-10-28T07:55:29Z"
  2798. },
  2799. {
  2800. "id": "28e5b517-e9ac-4377-979e-5f881a6ab9e1",
  2801. "catalog_id": "28e5b517-e9ac-4377-979e-5f881a6ab9e1",
  2802. "title": "SSE 心跳与长连接保活",
  2803. "description": "sse-heartbeat",
  2804. "extend": "{}",
  2805. "progress_status": "completed",
  2806. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2807. "reference_count": 0,
  2808. "gmt_create": "2026-10-28T07:55:29Z",
  2809. "gmt_modified": "2026-10-28T07:55:29Z"
  2810. },
  2811. {
  2812. "id": "2a0b927e-ea46-48b8-b14d-c57615de3c4d",
  2813. "catalog_id": "2a0b927e-ea46-48b8-b14d-c57615de3c4d",
  2814. "title": "网关基础设施与异常处理",
  2815. "description": "gateway-infrastructure",
  2816. "extend": "{}",
  2817. "progress_status": "completed",
  2818. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2819. "reference_count": 0,
  2820. "gmt_create": "2026-10-28T07:55:29Z",
  2821. "gmt_modified": "2026-10-28T07:55:29Z"
  2822. },
  2823. {
  2824. "id": "47af0185-c942-40f5-97c0-6bb492b91be9",
  2825. "catalog_id": "47af0185-c942-40f5-97c0-6bb492b91be9",
  2826. "title": "授权单元与水印",
  2827. "description": "desktop-authorization-watermark",
  2828. "extend": "{}",
  2829. "progress_status": "completed",
  2830. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2831. "reference_count": 0,
  2832. "gmt_create": "2026-10-28T07:55:29Z",
  2833. "gmt_modified": "2026-10-28T07:55:29Z"
  2834. },
  2835. {
  2836. "id": "a4b69928-d9a2-469a-8611-d8167311ed51",
  2837. "catalog_id": "a4b69928-d9a2-469a-8611-d8167311ed51",
  2838. "title": "系统架构设计",
  2839. "description": "system-architecture",
  2840. "extend": "{}",
  2841. "progress_status": "completed",
  2842. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2843. "reference_count": 0,
  2844. "gmt_create": "2026-10-28T07:55:29Z",
  2845. "gmt_modified": "2026-10-28T07:55:29Z"
  2846. },
  2847. {
  2848. "id": "b637c759-edca-43f8-9a98-8c1657165061",
  2849. "catalog_id": "b637c759-edca-43f8-9a98-8c1657165061",
  2850. "title": "知识库与嵌入调试接口",
  2851. "description": "knowledge-and-embedding-api",
  2852. "extend": "{}",
  2853. "progress_status": "completed",
  2854. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2855. "reference_count": 0,
  2856. "gmt_create": "2026-10-28T07:55:29Z",
  2857. "gmt_modified": "2026-10-28T07:55:29Z"
  2858. },
  2859. {
  2860. "id": "bea97b99-9c66-427b-b57b-754f086ecbbe",
  2861. "catalog_id": "bea97b99-9c66-427b-b57b-754f086ecbbe",
  2862. "title": "清洗模板向量索引",
  2863. "description": "ai-clean-vector-index",
  2864. "extend": "{}",
  2865. "progress_status": "completed",
  2866. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2867. "reference_count": 0,
  2868. "gmt_create": "2026-10-28T07:55:29Z",
  2869. "gmt_modified": "2026-10-28T07:55:29Z"
  2870. },
  2871. {
  2872. "id": "c7297910-8fdc-4dc5-b7c9-9a6e1564d183",
  2873. "catalog_id": "c7297910-8fdc-4dc5-b7c9-9a6e1564d183",
  2874. "title": "治理模块 govern",
  2875. "description": "business-govern",
  2876. "extend": "{}",
  2877. "progress_status": "completed",
  2878. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2879. "reference_count": 0,
  2880. "gmt_create": "2026-10-28T07:55:29Z",
  2881. "gmt_modified": "2026-10-28T07:55:29Z"
  2882. },
  2883. {
  2884. "id": "dc3bc6ae-89fd-4a5e-bbf7-cb1b905401ea",
  2885. "catalog_id": "dc3bc6ae-89fd-4a5e-bbf7-cb1b905401ea",
  2886. "title": "多节点扩展与负载均衡",
  2887. "description": "deployment-multi-node-scaling",
  2888. "extend": "{}",
  2889. "progress_status": "completed",
  2890. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2891. "reference_count": 0,
  2892. "gmt_create": "2026-10-28T07:55:29Z",
  2893. "gmt_modified": "2026-10-28T07:55:29Z"
  2894. },
  2895. {
  2896. "id": "dee4a153-cf45-4a55-b54e-bd97481f466f",
  2897. "catalog_id": "dee4a153-cf45-4a55-b54e-bd97481f466f",
  2898. "title": "许可证与认证问题排查",
  2899. "description": "license-troubleshooting",
  2900. "extend": "{}",
  2901. "progress_status": "completed",
  2902. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2903. "reference_count": 0,
  2904. "gmt_create": "2026-10-28T07:55:29Z",
  2905. "gmt_modified": "2026-10-28T07:55:29Z"
  2906. },
  2907. {
  2908. "id": "e6796b01-1250-4a7d-b39c-d05e413d8e30",
  2909. "catalog_id": "e6796b01-1250-4a7d-b39c-d05e413d8e30",
  2910. "title": "案件表与外部表结构",
  2911. "description": "case-and-external-tables",
  2912. "extend": "{}",
  2913. "progress_status": "completed",
  2914. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2915. "reference_count": 0,
  2916. "gmt_create": "2026-10-28T07:55:29Z",
  2917. "gmt_modified": "2026-10-28T07:55:29Z"
  2918. },
  2919. {
  2920. "id": "ea5fee6a-6052-49e8-9a6b-f0faf9c050b0",
  2921. "catalog_id": "ea5fee6a-6052-49e8-9a6b-f0faf9c050b0",
  2922. "title": "Insight 工作区与 Workspace Catalog",
  2923. "description": "agent-insight-workspace",
  2924. "extend": "{}",
  2925. "progress_status": "completed",
  2926. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2927. "reference_count": 0,
  2928. "gmt_create": "2026-10-28T07:55:29Z",
  2929. "gmt_modified": "2026-10-28T07:55:29Z"
  2930. },
  2931. {
  2932. "id": "0f6dfa6f-d969-4087-bed4-1f6522b67faa",
  2933. "catalog_id": "0f6dfa6f-d969-4087-bed4-1f6522b67faa",
  2934. "title": "图谱与图表接口",
  2935. "description": "graph-and-chart-api",
  2936. "extend": "{}",
  2937. "progress_status": "completed",
  2938. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2939. "reference_count": 0,
  2940. "gmt_create": "2026-10-28T07:55:29Z",
  2941. "gmt_modified": "2026-10-28T07:55:29Z"
  2942. },
  2943. {
  2944. "id": "6afb3e73-9114-4b47-82f0-025afb9cbdf3",
  2945. "catalog_id": "6afb3e73-9114-4b47-82f0-025afb9cbdf3",
  2946. "title": "日志、监控与故障排查",
  2947. "description": "deployment-monitoring-troubleshooting",
  2948. "extend": "{}",
  2949. "progress_status": "completed",
  2950. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2951. "reference_count": 0,
  2952. "gmt_create": "2026-10-28T07:55:29Z",
  2953. "gmt_modified": "2026-10-28T07:55:29Z"
  2954. },
  2955. {
  2956. "id": "9114554a-942e-43cd-86b4-e40384923260",
  2957. "catalog_id": "9114554a-942e-43cd-86b4-e40384923260",
  2958. "title": "搜索模块 search",
  2959. "description": "business-search",
  2960. "extend": "{}",
  2961. "progress_status": "completed",
  2962. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2963. "reference_count": 0,
  2964. "gmt_create": "2026-10-28T07:55:29Z",
  2965. "gmt_modified": "2026-10-28T07:55:29Z"
  2966. },
  2967. {
  2968. "id": "9b97082f-66c1-4878-9a7d-5e920d6b45a0",
  2969. "catalog_id": "9b97082f-66c1-4878-9a7d-5e920d6b45a0",
  2970. "title": "pgvector 向量表与 DuckDB 临时数据源",
  2971. "description": "vector-and-temporary-data-sources",
  2972. "extend": "{}",
  2973. "progress_status": "completed",
  2974. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2975. "reference_count": 0,
  2976. "gmt_create": "2026-10-28T07:55:29Z",
  2977. "gmt_modified": "2026-10-28T07:55:29Z"
  2978. },
  2979. {
  2980. "id": "d36adb59-0865-4057-ac6b-1a3762816c01",
  2981. "catalog_id": "d36adb59-0865-4057-ac6b-1a3762816c01",
  2982. "title": "桌面客户端",
  2983. "description": "desktop-client",
  2984. "extend": "{}",
  2985. "progress_status": "completed",
  2986. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2987. "reference_count": 0,
  2988. "gmt_create": "2026-10-28T07:55:29Z",
  2989. "gmt_modified": "2026-10-28T07:55:29Z"
  2990. },
  2991. {
  2992. "id": "ea4e0532-760a-4956-9200-cd6202cba1a3",
  2993. "catalog_id": "ea4e0532-760a-4956-9200-cd6202cba1a3",
  2994. "title": "离线地图与 PMTiles 配置",
  2995. "description": "desktop-offline-map",
  2996. "extend": "{}",
  2997. "progress_status": "completed",
  2998. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  2999. "reference_count": 0,
  3000. "gmt_create": "2026-10-28T07:55:29Z",
  3001. "gmt_modified": "2026-10-28T07:55:29Z"
  3002. },
  3003. {
  3004. "id": "f42a38f1-89eb-4f42-a87f-26d81c3aaf9b",
  3005. "catalog_id": "f42a38f1-89eb-4f42-a87f-26d81c3aaf9b",
  3006. "title": "定时任务与工作空间清理",
  3007. "description": "scheduled-tasks-workspace-cleanup",
  3008. "extend": "{}",
  3009. "progress_status": "completed",
  3010. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3011. "reference_count": 0,
  3012. "gmt_create": "2026-10-28T07:55:29Z",
  3013. "gmt_modified": "2026-10-28T07:55:29Z"
  3014. },
  3015. {
  3016. "id": "198e92ee-5762-48f9-835d-17889a315be1",
  3017. "catalog_id": "198e92ee-5762-48f9-835d-17889a315be1",
  3018. "title": "网关粘性路由",
  3019. "description": "gateway-sticky-routing",
  3020. "extend": "{}",
  3021. "progress_status": "completed",
  3022. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3023. "reference_count": 0,
  3024. "gmt_create": "2026-10-28T07:55:29Z",
  3025. "gmt_modified": "2026-10-28T07:55:29Z"
  3026. },
  3027. {
  3028. "id": "1a07a3c6-8227-4d21-afb1-f36b3131bb56",
  3029. "catalog_id": "1a07a3c6-8227-4d21-afb1-f36b3131bb56",
  3030. "title": "数据建模模块 dm",
  3031. "description": "business-dm",
  3032. "extend": "{}",
  3033. "progress_status": "completed",
  3034. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3035. "reference_count": 0,
  3036. "gmt_create": "2026-10-28T07:55:29Z",
  3037. "gmt_modified": "2026-10-28T07:55:29Z"
  3038. },
  3039. {
  3040. "id": "4816f0d4-6e83-43f7-837f-f13d946b1d37",
  3041. "catalog_id": "4816f0d4-6e83-43f7-837f-f13d946b1d37",
  3042. "title": "人员数据接口",
  3043. "description": "person-api",
  3044. "extend": "{}",
  3045. "progress_status": "completed",
  3046. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3047. "reference_count": 0,
  3048. "gmt_create": "2026-10-28T07:55:29Z",
  3049. "gmt_modified": "2026-10-28T07:55:29Z"
  3050. },
  3051. {
  3052. "id": "6ac2d682-f759-41c6-8a1d-82b6a1b11135",
  3053. "catalog_id": "6ac2d682-f759-41c6-8a1d-82b6a1b11135",
  3054. "title": "构建、打包与自动更新",
  3055. "description": "desktop-build-packaging-updater",
  3056. "extend": "{}",
  3057. "progress_status": "completed",
  3058. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3059. "reference_count": 0,
  3060. "gmt_create": "2026-10-28T07:55:29Z",
  3061. "gmt_modified": "2026-10-28T07:55:29Z"
  3062. },
  3063. {
  3064. "id": "1721b548-ae66-4730-9aba-43ab062f7390",
  3065. "catalog_id": "1721b548-ae66-4730-9aba-43ab062f7390",
  3066. "title": "后端服务架构",
  3067. "description": "backend-service",
  3068. "extend": "{}",
  3069. "progress_status": "completed",
  3070. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3071. "reference_count": 0,
  3072. "gmt_create": "2026-10-28T07:55:29Z",
  3073. "gmt_modified": "2026-10-28T07:55:29Z"
  3074. },
  3075. {
  3076. "id": "27d63566-5248-4f8a-8128-45e41b2cde9e",
  3077. "catalog_id": "27d63566-5248-4f8a-8128-45e41b2cde9e",
  3078. "title": "通话数据接口",
  3079. "description": "call-data-api",
  3080. "extend": "{}",
  3081. "progress_status": "completed",
  3082. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3083. "reference_count": 0,
  3084. "gmt_create": "2026-10-28T07:55:29Z",
  3085. "gmt_modified": "2026-10-28T07:55:29Z"
  3086. },
  3087. {
  3088. "id": "ad0de49b-7550-43d1-b3ec-7c96d17a3729",
  3089. "catalog_id": "ad0de49b-7550-43d1-b3ec-7c96d17a3729",
  3090. "title": "时序与特殊日期模块 otg",
  3091. "description": "business-otg",
  3092. "extend": "{}",
  3093. "progress_status": "completed",
  3094. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3095. "reference_count": 0,
  3096. "gmt_create": "2026-10-28T07:55:29Z",
  3097. "gmt_modified": "2026-10-28T07:55:29Z"
  3098. },
  3099. {
  3100. "id": "4dfe4a9e-9c32-4f75-8314-3b06172b0d57",
  3101. "catalog_id": "4dfe4a9e-9c32-4f75-8314-3b06172b0d57",
  3102. "title": "交易数据接口",
  3103. "description": "trans-data-api",
  3104. "extend": "{}",
  3105. "progress_status": "completed",
  3106. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3107. "reference_count": 0,
  3108. "gmt_create": "2026-10-28T07:55:29Z",
  3109. "gmt_modified": "2026-10-28T07:55:29Z"
  3110. },
  3111. {
  3112. "id": "78886141-b043-4c17-a6c6-a2e7b67aea9a",
  3113. "catalog_id": "78886141-b043-4c17-a6c6-a2e7b67aea9a",
  3114. "title": "外部表模块 external",
  3115. "description": "business-external",
  3116. "extend": "{}",
  3117. "progress_status": "completed",
  3118. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3119. "reference_count": 0,
  3120. "gmt_create": "2026-10-28T07:55:29Z",
  3121. "gmt_modified": "2026-10-28T07:55:29Z"
  3122. },
  3123. {
  3124. "id": "ec9a24fa-b5b6-4b28-96ab-06ee3089519f",
  3125. "catalog_id": "ec9a24fa-b5b6-4b28-96ab-06ee3089519f",
  3126. "title": "Agent 与 RAG",
  3127. "description": "agent-rag",
  3128. "extend": "{}",
  3129. "progress_status": "completed",
  3130. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3131. "reference_count": 0,
  3132. "gmt_create": "2026-10-28T07:55:29Z",
  3133. "gmt_modified": "2026-10-28T07:55:29Z"
  3134. },
  3135. {
  3136. "id": "af886b13-8d59-4e6e-b5ea-40ddd68ef0a5",
  3137. "catalog_id": "af886b13-8d59-4e6e-b5ea-40ddd68ef0a5",
  3138. "title": "轨迹数据接口",
  3139. "description": "track-data-api",
  3140. "extend": "{}",
  3141. "progress_status": "completed",
  3142. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3143. "reference_count": 0,
  3144. "gmt_create": "2026-10-28T07:55:29Z",
  3145. "gmt_modified": "2026-10-28T07:55:29Z"
  3146. },
  3147. {
  3148. "id": "fbd0f840-7bf0-40b1-9ae4-01dd991a8752",
  3149. "catalog_id": "fbd0f840-7bf0-40b1-9ae4-01dd991a8752",
  3150. "title": "AI 数据清洗",
  3151. "description": "ai-data-cleaning",
  3152. "extend": "{}",
  3153. "progress_status": "completed",
  3154. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3155. "reference_count": 0,
  3156. "gmt_create": "2026-10-28T07:55:29Z",
  3157. "gmt_modified": "2026-10-28T07:55:29Z"
  3158. },
  3159. {
  3160. "id": "8c232144-b2f6-4c52-b4c6-5b9bf7ea9ffa",
  3161. "catalog_id": "8c232144-b2f6-4c52-b4c6-5b9bf7ea9ffa",
  3162. "title": "治理与其他业务接口",
  3163. "description": "govern-and-other-business-api",
  3164. "extend": "{}",
  3165. "progress_status": "completed",
  3166. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3167. "reference_count": 0,
  3168. "gmt_create": "2026-10-28T07:55:29Z",
  3169. "gmt_modified": "2026-10-28T07:55:29Z"
  3170. },
  3171. {
  3172. "id": "fde671b0-e5b4-4ff9-9baa-df07ebc75177",
  3173. "catalog_id": "fde671b0-e5b4-4ff9-9baa-df07ebc75177",
  3174. "title": "知识与向量检索",
  3175. "description": "knowledge-vector-retrieval",
  3176. "extend": "{}",
  3177. "progress_status": "completed",
  3178. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3179. "reference_count": 0,
  3180. "gmt_create": "2026-10-28T07:55:29Z",
  3181. "gmt_modified": "2026-10-28T07:55:29Z"
  3182. },
  3183. {
  3184. "id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  3185. "catalog_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  3186. "title": "业务数据模块",
  3187. "description": "business-modules",
  3188. "extend": "{}",
  3189. "progress_status": "completed",
  3190. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3191. "reference_count": 0,
  3192. "gmt_create": "2026-10-28T07:55:29Z",
  3193. "gmt_modified": "2026-10-28T07:55:29Z"
  3194. },
  3195. {
  3196. "id": "c1789760-0a39-4847-879e-bd14a1ed7b37",
  3197. "catalog_id": "c1789760-0a39-4847-879e-bd14a1ed7b37",
  3198. "title": "数据库设计",
  3199. "description": "database-design",
  3200. "extend": "{}",
  3201. "progress_status": "completed",
  3202. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3203. "reference_count": 0,
  3204. "gmt_create": "2026-10-28T07:55:29Z",
  3205. "gmt_modified": "2026-10-28T07:55:29Z"
  3206. },
  3207. {
  3208. "id": "14469378-a6de-4dcb-907f-1edc16463b71",
  3209. "catalog_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  3210. "title": "API 接口参考",
  3211. "description": "api-reference",
  3212. "extend": "{}",
  3213. "progress_status": "completed",
  3214. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3215. "reference_count": 0,
  3216. "gmt_create": "2026-10-28T07:55:29Z",
  3217. "gmt_modified": "2026-10-28T07:55:29Z"
  3218. },
  3219. {
  3220. "id": "c77f0da0-55bc-4f69-9e32-f4aca699b57c",
  3221. "catalog_id": "c77f0da0-55bc-4f69-9e32-f4aca699b57c",
  3222. "title": "安全与许可证",
  3223. "description": "security-license",
  3224. "extend": "{}",
  3225. "progress_status": "completed",
  3226. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3227. "reference_count": 0,
  3228. "gmt_create": "2026-10-28T07:55:29Z",
  3229. "gmt_modified": "2026-10-28T07:55:29Z"
  3230. },
  3231. {
  3232. "id": "67aa6a8d-c25c-435e-be2c-9a5fda6668b7",
  3233. "catalog_id": "67aa6a8d-c25c-435e-be2c-9a5fda6668b7",
  3234. "title": "部署与运维",
  3235. "description": "deployment-operations",
  3236. "extend": "{}",
  3237. "progress_status": "completed",
  3238. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3239. "reference_count": 0,
  3240. "gmt_create": "2026-10-28T07:55:29Z",
  3241. "gmt_modified": "2026-10-28T07:55:29Z"
  3242. },
  3243. {
  3244. "id": "b7c1dade-a869-4023-920a-f5f527a56403",
  3245. "catalog_id": "b7c1dade-a869-4023-920a-f5f527a56403",
  3246. "title": "测试与质量保证",
  3247. "description": "testing-quality",
  3248. "extend": "{}",
  3249. "progress_status": "completed",
  3250. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3251. "reference_count": 0,
  3252. "gmt_create": "2026-10-28T07:55:29Z",
  3253. "gmt_modified": "2026-10-28T07:55:29Z"
  3254. },
  3255. {
  3256. "id": "922749ea-6307-428f-bfd8-4feb065746a6",
  3257. "catalog_id": "922749ea-6307-428f-bfd8-4feb065746a6",
  3258. "title": "开发者指南",
  3259. "description": "developer-guide",
  3260. "extend": "{}",
  3261. "progress_status": "completed",
  3262. "repo_id": "afcc7ffe-ff4e-4271-8d3c-7a000d6d84ca",
  3263. "reference_count": 0,
  3264. "gmt_create": "2026-10-28T07:55:29Z",
  3265. "gmt_modified": "2026-10-28T07:55:29Z"
  3266. }
  3267. ],
  3268. "knowledge_relations": [
  3269. {
  3270. "id": 1,
  3271. "source_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  3272. "target_id": "156aa516-49d6-4670-b3cf-453dbd239227",
  3273. "source_type": "WIKI_ITEM",
  3274. "target_type": "WIKI_ITEM",
  3275. "relationship_type": "PARENT_CHILD",
  3276. "gmt_create": "2026-10-28T07:55:29Z",
  3277. "gmt_modified": "2026-10-28T07:55:29Z"
  3278. },
  3279. {
  3280. "id": 2,
  3281. "source_id": "c77f0da0-55bc-4f69-9e32-f4aca699b57c",
  3282. "target_id": "353e0550-ef39-4028-9f2f-c3733cbe4fcc",
  3283. "source_type": "WIKI_ITEM",
  3284. "target_type": "WIKI_ITEM",
  3285. "relationship_type": "PARENT_CHILD",
  3286. "gmt_create": "2026-10-28T07:55:29Z",
  3287. "gmt_modified": "2026-10-28T07:55:29Z"
  3288. },
  3289. {
  3290. "id": 3,
  3291. "source_id": "922749ea-6307-428f-bfd8-4feb065746a6",
  3292. "target_id": "4096358f-33de-4fc0-96f5-52e05a503884",
  3293. "source_type": "WIKI_ITEM",
  3294. "target_type": "WIKI_ITEM",
  3295. "relationship_type": "PARENT_CHILD",
  3296. "gmt_create": "2026-10-28T07:55:29Z",
  3297. "gmt_modified": "2026-10-28T07:55:29Z"
  3298. },
  3299. {
  3300. "id": 4,
  3301. "source_id": "fde671b0-e5b4-4ff9-9baa-df07ebc75177",
  3302. "target_id": "4980a173-ddc7-4a67-841d-a8708fe3d5dc",
  3303. "source_type": "WIKI_ITEM",
  3304. "target_type": "WIKI_ITEM",
  3305. "relationship_type": "PARENT_CHILD",
  3306. "gmt_create": "2026-10-28T07:55:29Z",
  3307. "gmt_modified": "2026-10-28T07:55:29Z"
  3308. },
  3309. {
  3310. "id": 5,
  3311. "source_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  3312. "target_id": "51426ffe-15ab-4186-b1a9-75d4fdbf3c6f",
  3313. "source_type": "WIKI_ITEM",
  3314. "target_type": "WIKI_ITEM",
  3315. "relationship_type": "PARENT_CHILD",
  3316. "gmt_create": "2026-10-28T07:55:29Z",
  3317. "gmt_modified": "2026-10-28T07:55:29Z"
  3318. },
  3319. {
  3320. "id": 6,
  3321. "source_id": "ec9a24fa-b5b6-4b28-96ab-06ee3089519f",
  3322. "target_id": "7c424667-c8c7-4f7a-bbd7-af27a21ef237",
  3323. "source_type": "WIKI_ITEM",
  3324. "target_type": "WIKI_ITEM",
  3325. "relationship_type": "PARENT_CHILD",
  3326. "gmt_create": "2026-10-28T07:55:29Z",
  3327. "gmt_modified": "2026-10-28T07:55:29Z"
  3328. },
  3329. {
  3330. "id": 7,
  3331. "source_id": "a4b69928-d9a2-469a-8611-d8167311ed51",
  3332. "target_id": "806c0f96-05b8-473c-968e-d617c7a8bea4",
  3333. "source_type": "WIKI_ITEM",
  3334. "target_type": "WIKI_ITEM",
  3335. "relationship_type": "PARENT_CHILD",
  3336. "gmt_create": "2026-10-28T07:55:29Z",
  3337. "gmt_modified": "2026-10-28T07:55:29Z"
  3338. },
  3339. {
  3340. "id": 8,
  3341. "source_id": "1721b548-ae66-4730-9aba-43ab062f7390",
  3342. "target_id": "ab6a7934-379d-4064-ab15-60187c9fb4ab",
  3343. "source_type": "WIKI_ITEM",
  3344. "target_type": "WIKI_ITEM",
  3345. "relationship_type": "PARENT_CHILD",
  3346. "gmt_create": "2026-10-28T07:55:29Z",
  3347. "gmt_modified": "2026-10-28T07:55:29Z"
  3348. },
  3349. {
  3350. "id": 9,
  3351. "source_id": "198e92ee-5762-48f9-835d-17889a315be1",
  3352. "target_id": "bbe3d5c7-9708-45a5-9b0e-155f8a79506b",
  3353. "source_type": "WIKI_ITEM",
  3354. "target_type": "WIKI_ITEM",
  3355. "relationship_type": "PARENT_CHILD",
  3356. "gmt_create": "2026-10-28T07:55:29Z",
  3357. "gmt_modified": "2026-10-28T07:55:29Z"
  3358. },
  3359. {
  3360. "id": 10,
  3361. "source_id": "b7c1dade-a869-4023-920a-f5f527a56403",
  3362. "target_id": "bd014943-9fdc-41c3-aeda-440568e4a340",
  3363. "source_type": "WIKI_ITEM",
  3364. "target_type": "WIKI_ITEM",
  3365. "relationship_type": "PARENT_CHILD",
  3366. "gmt_create": "2026-10-28T07:55:29Z",
  3367. "gmt_modified": "2026-10-28T07:55:29Z"
  3368. },
  3369. {
  3370. "id": 11,
  3371. "source_id": "67aa6a8d-c25c-435e-be2c-9a5fda6668b7",
  3372. "target_id": "c9a620a7-1b3c-4d58-85b0-2a21724b19d2",
  3373. "source_type": "WIKI_ITEM",
  3374. "target_type": "WIKI_ITEM",
  3375. "relationship_type": "PARENT_CHILD",
  3376. "gmt_create": "2026-10-28T07:55:29Z",
  3377. "gmt_modified": "2026-10-28T07:55:29Z"
  3378. },
  3379. {
  3380. "id": 12,
  3381. "source_id": "c1789760-0a39-4847-879e-bd14a1ed7b37",
  3382. "target_id": "dfcc2c4e-4392-42f2-9bab-4f652761f880",
  3383. "source_type": "WIKI_ITEM",
  3384. "target_type": "WIKI_ITEM",
  3385. "relationship_type": "PARENT_CHILD",
  3386. "gmt_create": "2026-10-28T07:55:29Z",
  3387. "gmt_modified": "2026-10-28T07:55:29Z"
  3388. },
  3389. {
  3390. "id": 13,
  3391. "source_id": "d36adb59-0865-4057-ac6b-1a3762816c01",
  3392. "target_id": "e6253e7f-3ead-4cd2-84c5-bd9c93288a0e",
  3393. "source_type": "WIKI_ITEM",
  3394. "target_type": "WIKI_ITEM",
  3395. "relationship_type": "PARENT_CHILD",
  3396. "gmt_create": "2026-10-28T07:55:29Z",
  3397. "gmt_modified": "2026-10-28T07:55:29Z"
  3398. },
  3399. {
  3400. "id": 14,
  3401. "source_id": "fbd0f840-7bf0-40b1-9ae4-01dd991a8752",
  3402. "target_id": "f5ed2513-391a-4b75-8007-bb3d5216e4df",
  3403. "source_type": "WIKI_ITEM",
  3404. "target_type": "WIKI_ITEM",
  3405. "relationship_type": "PARENT_CHILD",
  3406. "gmt_create": "2026-10-28T07:55:29Z",
  3407. "gmt_modified": "2026-10-28T07:55:29Z"
  3408. },
  3409. {
  3410. "id": 15,
  3411. "source_id": "fde671b0-e5b4-4ff9-9baa-df07ebc75177",
  3412. "target_id": "1acb4aac-20b1-4e60-9d3a-4d49412f11ef",
  3413. "source_type": "WIKI_ITEM",
  3414. "target_type": "WIKI_ITEM",
  3415. "relationship_type": "PARENT_CHILD",
  3416. "gmt_create": "2026-10-28T07:55:29Z",
  3417. "gmt_modified": "2026-10-28T07:55:29Z"
  3418. },
  3419. {
  3420. "id": 16,
  3421. "source_id": "67aa6a8d-c25c-435e-be2c-9a5fda6668b7",
  3422. "target_id": "21342d52-98e3-4654-9724-072359e1c6f2",
  3423. "source_type": "WIKI_ITEM",
  3424. "target_type": "WIKI_ITEM",
  3425. "relationship_type": "PARENT_CHILD",
  3426. "gmt_create": "2026-10-28T07:55:29Z",
  3427. "gmt_modified": "2026-10-28T07:55:29Z"
  3428. },
  3429. {
  3430. "id": 17,
  3431. "source_id": "198e92ee-5762-48f9-835d-17889a315be1",
  3432. "target_id": "22ed1e10-d4ca-42c7-801c-8bda48b58052",
  3433. "source_type": "WIKI_ITEM",
  3434. "target_type": "WIKI_ITEM",
  3435. "relationship_type": "PARENT_CHILD",
  3436. "gmt_create": "2026-10-28T07:55:29Z",
  3437. "gmt_modified": "2026-10-28T07:55:29Z"
  3438. },
  3439. {
  3440. "id": 18,
  3441. "source_id": "ec9a24fa-b5b6-4b28-96ab-06ee3089519f",
  3442. "target_id": "30a9faef-23f4-406d-8889-3da2c96ba102",
  3443. "source_type": "WIKI_ITEM",
  3444. "target_type": "WIKI_ITEM",
  3445. "relationship_type": "PARENT_CHILD",
  3446. "gmt_create": "2026-10-28T07:55:29Z",
  3447. "gmt_modified": "2026-10-28T07:55:29Z"
  3448. },
  3449. {
  3450. "id": 19,
  3451. "source_id": "c77f0da0-55bc-4f69-9e32-f4aca699b57c",
  3452. "target_id": "41e369d2-9662-4e1b-b62f-21de646b34c9",
  3453. "source_type": "WIKI_ITEM",
  3454. "target_type": "WIKI_ITEM",
  3455. "relationship_type": "PARENT_CHILD",
  3456. "gmt_create": "2026-10-28T07:55:29Z",
  3457. "gmt_modified": "2026-10-28T07:55:29Z"
  3458. },
  3459. {
  3460. "id": 20,
  3461. "source_id": "a4b69928-d9a2-469a-8611-d8167311ed51",
  3462. "target_id": "48ee09b6-d73e-4c97-ab30-872d6271b0d5",
  3463. "source_type": "WIKI_ITEM",
  3464. "target_type": "WIKI_ITEM",
  3465. "relationship_type": "PARENT_CHILD",
  3466. "gmt_create": "2026-10-28T07:55:29Z",
  3467. "gmt_modified": "2026-10-28T07:55:29Z"
  3468. },
  3469. {
  3470. "id": 21,
  3471. "source_id": "922749ea-6307-428f-bfd8-4feb065746a6",
  3472. "target_id": "4b666607-23fd-418b-926a-f561218179c6",
  3473. "source_type": "WIKI_ITEM",
  3474. "target_type": "WIKI_ITEM",
  3475. "relationship_type": "PARENT_CHILD",
  3476. "gmt_create": "2026-10-28T07:55:29Z",
  3477. "gmt_modified": "2026-10-28T07:55:29Z"
  3478. },
  3479. {
  3480. "id": 22,
  3481. "source_id": "b7c1dade-a869-4023-920a-f5f527a56403",
  3482. "target_id": "5b47e58f-5090-4cfd-8288-e866003e9231",
  3483. "source_type": "WIKI_ITEM",
  3484. "target_type": "WIKI_ITEM",
  3485. "relationship_type": "PARENT_CHILD",
  3486. "gmt_create": "2026-10-28T07:55:29Z",
  3487. "gmt_modified": "2026-10-28T07:55:29Z"
  3488. },
  3489. {
  3490. "id": 23,
  3491. "source_id": "c1789760-0a39-4847-879e-bd14a1ed7b37",
  3492. "target_id": "5c689d53-7384-4633-95ad-b40096e9b00b",
  3493. "source_type": "WIKI_ITEM",
  3494. "target_type": "WIKI_ITEM",
  3495. "relationship_type": "PARENT_CHILD",
  3496. "gmt_create": "2026-10-28T07:55:29Z",
  3497. "gmt_modified": "2026-10-28T07:55:29Z"
  3498. },
  3499. {
  3500. "id": 24,
  3501. "source_id": "fbd0f840-7bf0-40b1-9ae4-01dd991a8752",
  3502. "target_id": "9ca9022c-45b9-4e6b-89d3-34eac1d4ee30",
  3503. "source_type": "WIKI_ITEM",
  3504. "target_type": "WIKI_ITEM",
  3505. "relationship_type": "PARENT_CHILD",
  3506. "gmt_create": "2026-10-28T07:55:29Z",
  3507. "gmt_modified": "2026-10-28T07:55:29Z"
  3508. },
  3509. {
  3510. "id": 25,
  3511. "source_id": "1721b548-ae66-4730-9aba-43ab062f7390",
  3512. "target_id": "b474a118-2219-4f66-863d-a7f18d59e5df",
  3513. "source_type": "WIKI_ITEM",
  3514. "target_type": "WIKI_ITEM",
  3515. "relationship_type": "PARENT_CHILD",
  3516. "gmt_create": "2026-10-28T07:55:29Z",
  3517. "gmt_modified": "2026-10-28T07:55:29Z"
  3518. },
  3519. {
  3520. "id": 26,
  3521. "source_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  3522. "target_id": "c52c7b80-86ea-4f92-8179-6a86a77494a3",
  3523. "source_type": "WIKI_ITEM",
  3524. "target_type": "WIKI_ITEM",
  3525. "relationship_type": "PARENT_CHILD",
  3526. "gmt_create": "2026-10-28T07:55:29Z",
  3527. "gmt_modified": "2026-10-28T07:55:29Z"
  3528. },
  3529. {
  3530. "id": 27,
  3531. "source_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  3532. "target_id": "c5c9d701-000d-421e-80cd-170bb6739623",
  3533. "source_type": "WIKI_ITEM",
  3534. "target_type": "WIKI_ITEM",
  3535. "relationship_type": "PARENT_CHILD",
  3536. "gmt_create": "2026-10-28T07:55:29Z",
  3537. "gmt_modified": "2026-10-28T07:55:29Z"
  3538. },
  3539. {
  3540. "id": 28,
  3541. "source_id": "d36adb59-0865-4057-ac6b-1a3762816c01",
  3542. "target_id": "f77992a3-a80c-4ebc-9f77-8faf081f3420",
  3543. "source_type": "WIKI_ITEM",
  3544. "target_type": "WIKI_ITEM",
  3545. "relationship_type": "PARENT_CHILD",
  3546. "gmt_create": "2026-10-28T07:55:29Z",
  3547. "gmt_modified": "2026-10-28T07:55:29Z"
  3548. },
  3549. {
  3550. "id": 29,
  3551. "source_id": "ec9a24fa-b5b6-4b28-96ab-06ee3089519f",
  3552. "target_id": "02425a89-4f3c-4fcb-8125-016b7cc6e537",
  3553. "source_type": "WIKI_ITEM",
  3554. "target_type": "WIKI_ITEM",
  3555. "relationship_type": "PARENT_CHILD",
  3556. "gmt_create": "2026-10-28T07:55:29Z",
  3557. "gmt_modified": "2026-10-28T07:55:29Z"
  3558. },
  3559. {
  3560. "id": 30,
  3561. "source_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  3562. "target_id": "034e56aa-57ff-407a-ae4c-7eb6f78922e0",
  3563. "source_type": "WIKI_ITEM",
  3564. "target_type": "WIKI_ITEM",
  3565. "relationship_type": "PARENT_CHILD",
  3566. "gmt_create": "2026-10-28T07:55:29Z",
  3567. "gmt_modified": "2026-10-28T07:55:29Z"
  3568. },
  3569. {
  3570. "id": 31,
  3571. "source_id": "c1789760-0a39-4847-879e-bd14a1ed7b37",
  3572. "target_id": "087bb53b-235b-4be4-8619-c4f233ed71e3",
  3573. "source_type": "WIKI_ITEM",
  3574. "target_type": "WIKI_ITEM",
  3575. "relationship_type": "PARENT_CHILD",
  3576. "gmt_create": "2026-10-28T07:55:29Z",
  3577. "gmt_modified": "2026-10-28T07:55:29Z"
  3578. },
  3579. {
  3580. "id": 32,
  3581. "source_id": "c77f0da0-55bc-4f69-9e32-f4aca699b57c",
  3582. "target_id": "2430cac4-9893-4fa5-b51c-2d967e0f4e01",
  3583. "source_type": "WIKI_ITEM",
  3584. "target_type": "WIKI_ITEM",
  3585. "relationship_type": "PARENT_CHILD",
  3586. "gmt_create": "2026-10-28T07:55:29Z",
  3587. "gmt_modified": "2026-10-28T07:55:29Z"
  3588. },
  3589. {
  3590. "id": 33,
  3591. "source_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  3592. "target_id": "279bf8ac-c655-4c5d-9be4-0653f70965fd",
  3593. "source_type": "WIKI_ITEM",
  3594. "target_type": "WIKI_ITEM",
  3595. "relationship_type": "PARENT_CHILD",
  3596. "gmt_create": "2026-10-28T07:55:29Z",
  3597. "gmt_modified": "2026-10-28T07:55:29Z"
  3598. },
  3599. {
  3600. "id": 34,
  3601. "source_id": "198e92ee-5762-48f9-835d-17889a315be1",
  3602. "target_id": "2d92cc7b-fcdd-4353-a322-09eae0d8e610",
  3603. "source_type": "WIKI_ITEM",
  3604. "target_type": "WIKI_ITEM",
  3605. "relationship_type": "PARENT_CHILD",
  3606. "gmt_create": "2026-10-28T07:55:29Z",
  3607. "gmt_modified": "2026-10-28T07:55:29Z"
  3608. },
  3609. {
  3610. "id": 35,
  3611. "source_id": "a4b69928-d9a2-469a-8611-d8167311ed51",
  3612. "target_id": "645f94c6-f003-4b68-b55f-8ed08d10ce69",
  3613. "source_type": "WIKI_ITEM",
  3614. "target_type": "WIKI_ITEM",
  3615. "relationship_type": "PARENT_CHILD",
  3616. "gmt_create": "2026-10-28T07:55:29Z",
  3617. "gmt_modified": "2026-10-28T07:55:29Z"
  3618. },
  3619. {
  3620. "id": 36,
  3621. "source_id": "922749ea-6307-428f-bfd8-4feb065746a6",
  3622. "target_id": "7ed47ff0-8933-4302-ac7f-15ef5c824483",
  3623. "source_type": "WIKI_ITEM",
  3624. "target_type": "WIKI_ITEM",
  3625. "relationship_type": "PARENT_CHILD",
  3626. "gmt_create": "2026-10-28T07:55:29Z",
  3627. "gmt_modified": "2026-10-28T07:55:29Z"
  3628. },
  3629. {
  3630. "id": 37,
  3631. "source_id": "fbd0f840-7bf0-40b1-9ae4-01dd991a8752",
  3632. "target_id": "82b197df-b35b-47fc-8bef-78cdebd2c2f8",
  3633. "source_type": "WIKI_ITEM",
  3634. "target_type": "WIKI_ITEM",
  3635. "relationship_type": "PARENT_CHILD",
  3636. "gmt_create": "2026-10-28T07:55:29Z",
  3637. "gmt_modified": "2026-10-28T07:55:29Z"
  3638. },
  3639. {
  3640. "id": 38,
  3641. "source_id": "fde671b0-e5b4-4ff9-9baa-df07ebc75177",
  3642. "target_id": "8b970997-124e-46b3-86f0-da34175ae365",
  3643. "source_type": "WIKI_ITEM",
  3644. "target_type": "WIKI_ITEM",
  3645. "relationship_type": "PARENT_CHILD",
  3646. "gmt_create": "2026-10-28T07:55:29Z",
  3647. "gmt_modified": "2026-10-28T07:55:29Z"
  3648. },
  3649. {
  3650. "id": 39,
  3651. "source_id": "67aa6a8d-c25c-435e-be2c-9a5fda6668b7",
  3652. "target_id": "d4244f4c-2490-44b5-b0da-669fa5f4ff93",
  3653. "source_type": "WIKI_ITEM",
  3654. "target_type": "WIKI_ITEM",
  3655. "relationship_type": "PARENT_CHILD",
  3656. "gmt_create": "2026-10-28T07:55:29Z",
  3657. "gmt_modified": "2026-10-28T07:55:29Z"
  3658. },
  3659. {
  3660. "id": 40,
  3661. "source_id": "1721b548-ae66-4730-9aba-43ab062f7390",
  3662. "target_id": "e5327e25-d642-48b6-a00b-3ee3df9a45fc",
  3663. "source_type": "WIKI_ITEM",
  3664. "target_type": "WIKI_ITEM",
  3665. "relationship_type": "PARENT_CHILD",
  3666. "gmt_create": "2026-10-28T07:55:29Z",
  3667. "gmt_modified": "2026-10-28T07:55:29Z"
  3668. },
  3669. {
  3670. "id": 41,
  3671. "source_id": "b7c1dade-a869-4023-920a-f5f527a56403",
  3672. "target_id": "efa5573e-0743-4e8b-adba-e6efadecc9f2",
  3673. "source_type": "WIKI_ITEM",
  3674. "target_type": "WIKI_ITEM",
  3675. "relationship_type": "PARENT_CHILD",
  3676. "gmt_create": "2026-10-28T07:55:29Z",
  3677. "gmt_modified": "2026-10-28T07:55:29Z"
  3678. },
  3679. {
  3680. "id": 42,
  3681. "source_id": "d36adb59-0865-4057-ac6b-1a3762816c01",
  3682. "target_id": "ffe7bd4f-414d-489a-92fa-f265405a7add",
  3683. "source_type": "WIKI_ITEM",
  3684. "target_type": "WIKI_ITEM",
  3685. "relationship_type": "PARENT_CHILD",
  3686. "gmt_create": "2026-10-28T07:55:29Z",
  3687. "gmt_modified": "2026-10-28T07:55:29Z"
  3688. },
  3689. {
  3690. "id": 43,
  3691. "source_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  3692. "target_id": "03a0099f-84a3-433f-972a-b9d3b4ad8a03",
  3693. "source_type": "WIKI_ITEM",
  3694. "target_type": "WIKI_ITEM",
  3695. "relationship_type": "PARENT_CHILD",
  3696. "gmt_create": "2026-10-28T07:55:29Z",
  3697. "gmt_modified": "2026-10-28T07:55:29Z"
  3698. },
  3699. {
  3700. "id": 44,
  3701. "source_id": "b7c1dade-a869-4023-920a-f5f527a56403",
  3702. "target_id": "0b5c5236-0103-4f16-b57a-56e7e7be9713",
  3703. "source_type": "WIKI_ITEM",
  3704. "target_type": "WIKI_ITEM",
  3705. "relationship_type": "PARENT_CHILD",
  3706. "gmt_create": "2026-10-28T07:55:29Z",
  3707. "gmt_modified": "2026-10-28T07:55:29Z"
  3708. },
  3709. {
  3710. "id": 45,
  3711. "source_id": "d36adb59-0865-4057-ac6b-1a3762816c01",
  3712. "target_id": "258ef8d6-d1f0-4ec5-86c4-67200e3f8c37",
  3713. "source_type": "WIKI_ITEM",
  3714. "target_type": "WIKI_ITEM",
  3715. "relationship_type": "PARENT_CHILD",
  3716. "gmt_create": "2026-10-28T07:55:29Z",
  3717. "gmt_modified": "2026-10-28T07:55:29Z"
  3718. },
  3719. {
  3720. "id": 46,
  3721. "source_id": "67aa6a8d-c25c-435e-be2c-9a5fda6668b7",
  3722. "target_id": "5352975b-7714-4098-a0f1-a8f2946e68b3",
  3723. "source_type": "WIKI_ITEM",
  3724. "target_type": "WIKI_ITEM",
  3725. "relationship_type": "PARENT_CHILD",
  3726. "gmt_create": "2026-10-28T07:55:29Z",
  3727. "gmt_modified": "2026-10-28T07:55:29Z"
  3728. },
  3729. {
  3730. "id": 47,
  3731. "source_id": "922749ea-6307-428f-bfd8-4feb065746a6",
  3732. "target_id": "652c39da-67ee-45ba-ad92-262987cc74c1",
  3733. "source_type": "WIKI_ITEM",
  3734. "target_type": "WIKI_ITEM",
  3735. "relationship_type": "PARENT_CHILD",
  3736. "gmt_create": "2026-10-28T07:55:29Z",
  3737. "gmt_modified": "2026-10-28T07:55:29Z"
  3738. },
  3739. {
  3740. "id": 48,
  3741. "source_id": "c77f0da0-55bc-4f69-9e32-f4aca699b57c",
  3742. "target_id": "684b1d01-a312-48fb-87c4-3e103deb4f35",
  3743. "source_type": "WIKI_ITEM",
  3744. "target_type": "WIKI_ITEM",
  3745. "relationship_type": "PARENT_CHILD",
  3746. "gmt_create": "2026-10-28T07:55:29Z",
  3747. "gmt_modified": "2026-10-28T07:55:29Z"
  3748. },
  3749. {
  3750. "id": 49,
  3751. "source_id": "ec9a24fa-b5b6-4b28-96ab-06ee3089519f",
  3752. "target_id": "84773149-8223-4a20-a62c-5319d4527d3f",
  3753. "source_type": "WIKI_ITEM",
  3754. "target_type": "WIKI_ITEM",
  3755. "relationship_type": "PARENT_CHILD",
  3756. "gmt_create": "2026-10-28T07:55:29Z",
  3757. "gmt_modified": "2026-10-28T07:55:29Z"
  3758. },
  3759. {
  3760. "id": 50,
  3761. "source_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  3762. "target_id": "971bd1ce-217d-4f0c-a6ad-29840ae2639f",
  3763. "source_type": "WIKI_ITEM",
  3764. "target_type": "WIKI_ITEM",
  3765. "relationship_type": "PARENT_CHILD",
  3766. "gmt_create": "2026-10-28T07:55:29Z",
  3767. "gmt_modified": "2026-10-28T07:55:29Z"
  3768. },
  3769. {
  3770. "id": 51,
  3771. "source_id": "1721b548-ae66-4730-9aba-43ab062f7390",
  3772. "target_id": "9d19f6ee-79cd-4e4a-9a0d-dea1880bbf9c",
  3773. "source_type": "WIKI_ITEM",
  3774. "target_type": "WIKI_ITEM",
  3775. "relationship_type": "PARENT_CHILD",
  3776. "gmt_create": "2026-10-28T07:55:29Z",
  3777. "gmt_modified": "2026-10-28T07:55:29Z"
  3778. },
  3779. {
  3780. "id": 52,
  3781. "source_id": "fbd0f840-7bf0-40b1-9ae4-01dd991a8752",
  3782. "target_id": "bba68a9f-bcb3-4c71-a2eb-1f56005e29f1",
  3783. "source_type": "WIKI_ITEM",
  3784. "target_type": "WIKI_ITEM",
  3785. "relationship_type": "PARENT_CHILD",
  3786. "gmt_create": "2026-10-28T07:55:29Z",
  3787. "gmt_modified": "2026-10-28T07:55:29Z"
  3788. },
  3789. {
  3790. "id": 53,
  3791. "source_id": "fde671b0-e5b4-4ff9-9baa-df07ebc75177",
  3792. "target_id": "be260c76-7452-4c32-b391-518638e55800",
  3793. "source_type": "WIKI_ITEM",
  3794. "target_type": "WIKI_ITEM",
  3795. "relationship_type": "PARENT_CHILD",
  3796. "gmt_create": "2026-10-28T07:55:29Z",
  3797. "gmt_modified": "2026-10-28T07:55:29Z"
  3798. },
  3799. {
  3800. "id": 54,
  3801. "source_id": "198e92ee-5762-48f9-835d-17889a315be1",
  3802. "target_id": "ca6be081-bf0b-43f8-8325-ae3d860af297",
  3803. "source_type": "WIKI_ITEM",
  3804. "target_type": "WIKI_ITEM",
  3805. "relationship_type": "PARENT_CHILD",
  3806. "gmt_create": "2026-10-28T07:55:29Z",
  3807. "gmt_modified": "2026-10-28T07:55:29Z"
  3808. },
  3809. {
  3810. "id": 55,
  3811. "source_id": "a4b69928-d9a2-469a-8611-d8167311ed51",
  3812. "target_id": "d27f0c5a-2dec-48e1-9bdd-d640386cd8ac",
  3813. "source_type": "WIKI_ITEM",
  3814. "target_type": "WIKI_ITEM",
  3815. "relationship_type": "PARENT_CHILD",
  3816. "gmt_create": "2026-10-28T07:55:29Z",
  3817. "gmt_modified": "2026-10-28T07:55:29Z"
  3818. },
  3819. {
  3820. "id": 56,
  3821. "source_id": "c1789760-0a39-4847-879e-bd14a1ed7b37",
  3822. "target_id": "e9ff4b7b-abcf-42ad-b5f1-3c1cd72bbcf1",
  3823. "source_type": "WIKI_ITEM",
  3824. "target_type": "WIKI_ITEM",
  3825. "relationship_type": "PARENT_CHILD",
  3826. "gmt_create": "2026-10-28T07:55:29Z",
  3827. "gmt_modified": "2026-10-28T07:55:29Z"
  3828. },
  3829. {
  3830. "id": 57,
  3831. "source_id": "a4b69928-d9a2-469a-8611-d8167311ed51",
  3832. "target_id": "13f6442b-ca39-47c8-a5ad-c1ea01c7f014",
  3833. "source_type": "WIKI_ITEM",
  3834. "target_type": "WIKI_ITEM",
  3835. "relationship_type": "PARENT_CHILD",
  3836. "gmt_create": "2026-10-28T07:55:29Z",
  3837. "gmt_modified": "2026-10-28T07:55:29Z"
  3838. },
  3839. {
  3840. "id": 58,
  3841. "source_id": "1721b548-ae66-4730-9aba-43ab062f7390",
  3842. "target_id": "28e5b517-e9ac-4377-979e-5f881a6ab9e1",
  3843. "source_type": "WIKI_ITEM",
  3844. "target_type": "WIKI_ITEM",
  3845. "relationship_type": "PARENT_CHILD",
  3846. "gmt_create": "2026-10-28T07:55:29Z",
  3847. "gmt_modified": "2026-10-28T07:55:29Z"
  3848. },
  3849. {
  3850. "id": 59,
  3851. "source_id": "198e92ee-5762-48f9-835d-17889a315be1",
  3852. "target_id": "2a0b927e-ea46-48b8-b14d-c57615de3c4d",
  3853. "source_type": "WIKI_ITEM",
  3854. "target_type": "WIKI_ITEM",
  3855. "relationship_type": "PARENT_CHILD",
  3856. "gmt_create": "2026-10-28T07:55:29Z",
  3857. "gmt_modified": "2026-10-28T07:55:29Z"
  3858. },
  3859. {
  3860. "id": 60,
  3861. "source_id": "d36adb59-0865-4057-ac6b-1a3762816c01",
  3862. "target_id": "47af0185-c942-40f5-97c0-6bb492b91be9",
  3863. "source_type": "WIKI_ITEM",
  3864. "target_type": "WIKI_ITEM",
  3865. "relationship_type": "PARENT_CHILD",
  3866. "gmt_create": "2026-10-28T07:55:29Z",
  3867. "gmt_modified": "2026-10-28T07:55:29Z"
  3868. },
  3869. {
  3870. "id": 61,
  3871. "source_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  3872. "target_id": "b637c759-edca-43f8-9a98-8c1657165061",
  3873. "source_type": "WIKI_ITEM",
  3874. "target_type": "WIKI_ITEM",
  3875. "relationship_type": "PARENT_CHILD",
  3876. "gmt_create": "2026-10-28T07:55:29Z",
  3877. "gmt_modified": "2026-10-28T07:55:29Z"
  3878. },
  3879. {
  3880. "id": 62,
  3881. "source_id": "fbd0f840-7bf0-40b1-9ae4-01dd991a8752",
  3882. "target_id": "bea97b99-9c66-427b-b57b-754f086ecbbe",
  3883. "source_type": "WIKI_ITEM",
  3884. "target_type": "WIKI_ITEM",
  3885. "relationship_type": "PARENT_CHILD",
  3886. "gmt_create": "2026-10-28T07:55:29Z",
  3887. "gmt_modified": "2026-10-28T07:55:29Z"
  3888. },
  3889. {
  3890. "id": 63,
  3891. "source_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  3892. "target_id": "c7297910-8fdc-4dc5-b7c9-9a6e1564d183",
  3893. "source_type": "WIKI_ITEM",
  3894. "target_type": "WIKI_ITEM",
  3895. "relationship_type": "PARENT_CHILD",
  3896. "gmt_create": "2026-10-28T07:55:29Z",
  3897. "gmt_modified": "2026-10-28T07:55:29Z"
  3898. },
  3899. {
  3900. "id": 64,
  3901. "source_id": "67aa6a8d-c25c-435e-be2c-9a5fda6668b7",
  3902. "target_id": "dc3bc6ae-89fd-4a5e-bbf7-cb1b905401ea",
  3903. "source_type": "WIKI_ITEM",
  3904. "target_type": "WIKI_ITEM",
  3905. "relationship_type": "PARENT_CHILD",
  3906. "gmt_create": "2026-10-28T07:55:29Z",
  3907. "gmt_modified": "2026-10-28T07:55:29Z"
  3908. },
  3909. {
  3910. "id": 65,
  3911. "source_id": "c77f0da0-55bc-4f69-9e32-f4aca699b57c",
  3912. "target_id": "dee4a153-cf45-4a55-b54e-bd97481f466f",
  3913. "source_type": "WIKI_ITEM",
  3914. "target_type": "WIKI_ITEM",
  3915. "relationship_type": "PARENT_CHILD",
  3916. "gmt_create": "2026-10-28T07:55:29Z",
  3917. "gmt_modified": "2026-10-28T07:55:29Z"
  3918. },
  3919. {
  3920. "id": 66,
  3921. "source_id": "c1789760-0a39-4847-879e-bd14a1ed7b37",
  3922. "target_id": "e6796b01-1250-4a7d-b39c-d05e413d8e30",
  3923. "source_type": "WIKI_ITEM",
  3924. "target_type": "WIKI_ITEM",
  3925. "relationship_type": "PARENT_CHILD",
  3926. "gmt_create": "2026-10-28T07:55:29Z",
  3927. "gmt_modified": "2026-10-28T07:55:29Z"
  3928. },
  3929. {
  3930. "id": 67,
  3931. "source_id": "ec9a24fa-b5b6-4b28-96ab-06ee3089519f",
  3932. "target_id": "ea5fee6a-6052-49e8-9a6b-f0faf9c050b0",
  3933. "source_type": "WIKI_ITEM",
  3934. "target_type": "WIKI_ITEM",
  3935. "relationship_type": "PARENT_CHILD",
  3936. "gmt_create": "2026-10-28T07:55:29Z",
  3937. "gmt_modified": "2026-10-28T07:55:29Z"
  3938. },
  3939. {
  3940. "id": 68,
  3941. "source_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  3942. "target_id": "0f6dfa6f-d969-4087-bed4-1f6522b67faa",
  3943. "source_type": "WIKI_ITEM",
  3944. "target_type": "WIKI_ITEM",
  3945. "relationship_type": "PARENT_CHILD",
  3946. "gmt_create": "2026-10-28T07:55:29Z",
  3947. "gmt_modified": "2026-10-28T07:55:29Z"
  3948. },
  3949. {
  3950. "id": 69,
  3951. "source_id": "67aa6a8d-c25c-435e-be2c-9a5fda6668b7",
  3952. "target_id": "6afb3e73-9114-4b47-82f0-025afb9cbdf3",
  3953. "source_type": "WIKI_ITEM",
  3954. "target_type": "WIKI_ITEM",
  3955. "relationship_type": "PARENT_CHILD",
  3956. "gmt_create": "2026-10-28T07:55:29Z",
  3957. "gmt_modified": "2026-10-28T07:55:29Z"
  3958. },
  3959. {
  3960. "id": 70,
  3961. "source_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  3962. "target_id": "9114554a-942e-43cd-86b4-e40384923260",
  3963. "source_type": "WIKI_ITEM",
  3964. "target_type": "WIKI_ITEM",
  3965. "relationship_type": "PARENT_CHILD",
  3966. "gmt_create": "2026-10-28T07:55:29Z",
  3967. "gmt_modified": "2026-10-28T07:55:29Z"
  3968. },
  3969. {
  3970. "id": 71,
  3971. "source_id": "c1789760-0a39-4847-879e-bd14a1ed7b37",
  3972. "target_id": "9b97082f-66c1-4878-9a7d-5e920d6b45a0",
  3973. "source_type": "WIKI_ITEM",
  3974. "target_type": "WIKI_ITEM",
  3975. "relationship_type": "PARENT_CHILD",
  3976. "gmt_create": "2026-10-28T07:55:29Z",
  3977. "gmt_modified": "2026-10-28T07:55:29Z"
  3978. },
  3979. {
  3980. "id": 72,
  3981. "source_id": "d36adb59-0865-4057-ac6b-1a3762816c01",
  3982. "target_id": "ea4e0532-760a-4956-9200-cd6202cba1a3",
  3983. "source_type": "WIKI_ITEM",
  3984. "target_type": "WIKI_ITEM",
  3985. "relationship_type": "PARENT_CHILD",
  3986. "gmt_create": "2026-10-28T07:55:29Z",
  3987. "gmt_modified": "2026-10-28T07:55:29Z"
  3988. },
  3989. {
  3990. "id": 73,
  3991. "source_id": "1721b548-ae66-4730-9aba-43ab062f7390",
  3992. "target_id": "f42a38f1-89eb-4f42-a87f-26d81c3aaf9b",
  3993. "source_type": "WIKI_ITEM",
  3994. "target_type": "WIKI_ITEM",
  3995. "relationship_type": "PARENT_CHILD",
  3996. "gmt_create": "2026-10-28T07:55:29Z",
  3997. "gmt_modified": "2026-10-28T07:55:29Z"
  3998. },
  3999. {
  4000. "id": 74,
  4001. "source_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  4002. "target_id": "1a07a3c6-8227-4d21-afb1-f36b3131bb56",
  4003. "source_type": "WIKI_ITEM",
  4004. "target_type": "WIKI_ITEM",
  4005. "relationship_type": "PARENT_CHILD",
  4006. "gmt_create": "2026-10-28T07:55:29Z",
  4007. "gmt_modified": "2026-10-28T07:55:29Z"
  4008. },
  4009. {
  4010. "id": 75,
  4011. "source_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  4012. "target_id": "4816f0d4-6e83-43f7-837f-f13d946b1d37",
  4013. "source_type": "WIKI_ITEM",
  4014. "target_type": "WIKI_ITEM",
  4015. "relationship_type": "PARENT_CHILD",
  4016. "gmt_create": "2026-10-28T07:55:29Z",
  4017. "gmt_modified": "2026-10-28T07:55:29Z"
  4018. },
  4019. {
  4020. "id": 76,
  4021. "source_id": "d36adb59-0865-4057-ac6b-1a3762816c01",
  4022. "target_id": "6ac2d682-f759-41c6-8a1d-82b6a1b11135",
  4023. "source_type": "WIKI_ITEM",
  4024. "target_type": "WIKI_ITEM",
  4025. "relationship_type": "PARENT_CHILD",
  4026. "gmt_create": "2026-10-28T07:55:29Z",
  4027. "gmt_modified": "2026-10-28T07:55:29Z"
  4028. },
  4029. {
  4030. "id": 77,
  4031. "source_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  4032. "target_id": "27d63566-5248-4f8a-8128-45e41b2cde9e",
  4033. "source_type": "WIKI_ITEM",
  4034. "target_type": "WIKI_ITEM",
  4035. "relationship_type": "PARENT_CHILD",
  4036. "gmt_create": "2026-10-28T07:55:29Z",
  4037. "gmt_modified": "2026-10-28T07:55:29Z"
  4038. },
  4039. {
  4040. "id": 78,
  4041. "source_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  4042. "target_id": "ad0de49b-7550-43d1-b3ec-7c96d17a3729",
  4043. "source_type": "WIKI_ITEM",
  4044. "target_type": "WIKI_ITEM",
  4045. "relationship_type": "PARENT_CHILD",
  4046. "gmt_create": "2026-10-28T07:55:29Z",
  4047. "gmt_modified": "2026-10-28T07:55:29Z"
  4048. },
  4049. {
  4050. "id": 79,
  4051. "source_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  4052. "target_id": "4dfe4a9e-9c32-4f75-8314-3b06172b0d57",
  4053. "source_type": "WIKI_ITEM",
  4054. "target_type": "WIKI_ITEM",
  4055. "relationship_type": "PARENT_CHILD",
  4056. "gmt_create": "2026-10-28T07:55:29Z",
  4057. "gmt_modified": "2026-10-28T07:55:29Z"
  4058. },
  4059. {
  4060. "id": 80,
  4061. "source_id": "8f78a451-8218-40a1-9474-b29ba3fd8dca",
  4062. "target_id": "78886141-b043-4c17-a6c6-a2e7b67aea9a",
  4063. "source_type": "WIKI_ITEM",
  4064. "target_type": "WIKI_ITEM",
  4065. "relationship_type": "PARENT_CHILD",
  4066. "gmt_create": "2026-10-28T07:55:29Z",
  4067. "gmt_modified": "2026-10-28T07:55:29Z"
  4068. },
  4069. {
  4070. "id": 81,
  4071. "source_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  4072. "target_id": "af886b13-8d59-4e6e-b5ea-40ddd68ef0a5",
  4073. "source_type": "WIKI_ITEM",
  4074. "target_type": "WIKI_ITEM",
  4075. "relationship_type": "PARENT_CHILD",
  4076. "gmt_create": "2026-10-28T07:55:29Z",
  4077. "gmt_modified": "2026-10-28T07:55:29Z"
  4078. },
  4079. {
  4080. "id": 82,
  4081. "source_id": "14469378-a6de-4dcb-907f-1edc16463b71",
  4082. "target_id": "8c232144-b2f6-4c52-b4c6-5b9bf7ea9ffa",
  4083. "source_type": "WIKI_ITEM",
  4084. "target_type": "WIKI_ITEM",
  4085. "relationship_type": "PARENT_CHILD",
  4086. "gmt_create": "2026-10-28T07:55:29Z",
  4087. "gmt_modified": "2026-10-28T07:55:29Z"
  4088. }
  4089. ]
  4090. }