| event_payload |
{"ref":"refs/heads/main","befo {"ref":"refs/heads/main","before":"b581d18e4449cb04a547e46807641a4c991417e7","after":"b0b7ddc80b20bf61675f5afea0d41764e8cfa770","compare_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/compare/b581d18e4449cb04a547e46807641a4c991417e7...b0b7ddc80b20bf61675f5afea0d41764e8cfa770","commits":[{"id":"b0b7ddc80b20bf61675f5afea0d41764e8cfa770","message":"feat(eios): AI 出口对齐 04 M7 ai-route,knowledge-vector 向量出站收口到 ModelPort\n\n04 M7 对调用方的合同是候选 ai-route.v1(@juhai/client-ai rc.8):先申请路由决策,\nprovider=litellm 时交平台 invoke 执行。原 AI_GATEWAY_BASE_URL 只换基址,对不上,\n另写 ModelPort 实现,网关开关保持原样:\n\n- shared/ai/eios-ai-route-model-port.ts:route → invoke,形状、决策判据与 baseUrl 规则\n 逐字段对齐 04 client-ai 源码;拒绝、形状不对、远端错误、不可达一律抛\n EiosAiRouteError,不回退直连;非 litellm 路由上报 released 释放预留后拒绝;\n invoke 承接不了的请求(工具、JSON 模式、图片、扩展请求体、embedding、流式)\n 默认拒绝且不发路由请求,EIOS_AI_ROUTE_UNSUPPORTED=direct 才交回默认实现。\n- config/eios/ai.ts 新增 EIOS_AI_ROUTE_*(默认 off);install-eios-adapters 新增\n aiRoute,参数齐全才 setModelPort。\n- model-port.ts:对话请求加可选 governance;新增可选 embedBatch 与 embedTexts。\n- knowledge-vector 的 4 处 /embeddings 直连改经 ModelPort,错误文案不变,向量数\n 不符判失败;lint 规则扩到 /embeddings 结尾的字面量。\n\n测试新增 13 项(loopback 夹具与假端口,未连真实 04)。读数:type-check 0 错误;\nlint 0 错误、3189 条警告;单测 8981/8997(17 项基线失败);inventory 10 项一致。\n文档:lanes/ai.md §3.3 与 §6、README、改造计划 P1 执行状态、总设计 B-06 行号、\n.env.eios.example。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/commit/b0b7ddc80b20bf61675f5afea0d41764e8cfa770","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-29T23:43:33-07:00","added":["backend/src/modules/knowledge-capture/knowledge-vector.service.test.ts","backend/src/shared/ai/eios-ai-route-model-port.test.ts","backend/src/shared/ai/eios-ai-route-model-port.ts"],"removed":[],"modified":[".env.eios.example","backend/.eslintrc.cjs","backend/src/config/eios/ai.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/shared/ai/model-port.ts","backend/src/shared/ports/install-eios-adapters.test.ts","backend/src/shared/ports/install-eios-adapters.ts","docs/eios-transformation/README.md","docs/eios-transformation/inventory/ai-modules.md","docs/eios-transformation/inventory/dead-code-and-root.md","docs/eios-transformation/inventory/module-disposition.md","docs/eios-transformation/inventory/permissions.md","docs/eios-transformation/lanes/ai.md","docs/eios-transformation/总设计-2026-10-27.md","docs/eios-transformation/改造计划-2026-10-28.md"]}],"total_commits":0,"head_commit":{"id":"b0b7ddc80b20bf61675f5afea0d41764e8cfa770","message":"feat(eios): AI 出口对齐 04 M7 ai-route,knowledge-vector 向量出站收口到 ModelPort\n\n04 M7 对调用方的合同是候选 ai-route.v1(@juhai/client-ai rc.8):先申请路由决策,\nprovider=litellm 时交平台 invoke 执行。原 AI_GATEWAY_BASE_URL 只换基址,对不上,\n另写 ModelPort 实现,网关开关保持原样:\n\n- shared/ai/eios-ai-route-model-port.ts:route → invoke,形状、决策判据与 baseUrl 规则\n 逐字段对齐 04 client-ai 源码;拒绝、形状不对、远端错误、不可达一律抛\n EiosAiRouteError,不回退直连;非 litellm 路由上报 released 释放预留后拒绝;\n invoke 承接不了的请求(工具、JSON 模式、图片、扩展请求体、embedding、流式)\n 默认拒绝且不发路由请求,EIOS_AI_ROUTE_UNSUPPORTED=direct 才交回默认实现。\n- config/eios/ai.ts 新增 EIOS_AI_ROUTE_*(默认 off);install-eios-adapters 新增\n aiRoute,参数齐全才 setModelPort。\n- model-port.ts:对话请求加可选 governance;新增可选 embedBatch 与 embedTexts。\n- knowledge-vector 的 4 处 /embeddings 直连改经 ModelPort,错误文案不变,向量数\n 不符判失败;lint 规则扩到 /embeddings 结尾的字面量。\n\n测试新增 13 项(loopback 夹具与假端口,未连真实 04)。读数:type-check 0 错误;\nlint 0 错误、3189 条警告;单测 8981/8997(17 项基线失败);inventory 10 项一致。\n文档:lanes/ai.md §3.3 与 §6、README、改造计划 P1 执行状态、总设计 B-06 行号、\n.env.eios.example。\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n","url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios/commit/b0b7ddc80b20bf61675f5afea0d41764e8cfa770","author":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"committer":{"name":"juhailaoluo pro","email":"hillao@juhailaoluodeMacBook-Pro.local","username":""},"verification":null,"timestamp":"2026-10-29T23:43:33-07:00","added":["backend/src/modules/knowledge-capture/knowledge-vector.service.test.ts","backend/src/shared/ai/eios-ai-route-model-port.test.ts","backend/src/shared/ai/eios-ai-route-model-port.ts"],"removed":[],"modified":[".env.eios.example","backend/.eslintrc.cjs","backend/src/config/eios/ai.ts","backend/src/modules/knowledge-capture/knowledge-vector.service.ts","backend/src/shared/ai/model-port.ts","backend/src/shared/ports/install-eios-adapters.test.ts","backend/src/shared/ports/install-eios-adapters.ts","docs/eios-transformation/README.md","docs/eios-transformation/inventory/ai-modules.md","docs/eios-transformation/inventory/dead-code-and-root.md","docs/eios-transformation/inventory/module-disposition.md","docs/eios-transformation/inventory/permissions.md","docs/eios-transformation/lanes/ai.md","docs/eios-transformation/总设计-2026-10-27.md","docs/eios-transformation/改造计划-2026-10-28.md"]},"repository":{"id":160,"owner":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"law@g-hi.com","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"name":"juhi-omni-knowledge-hub-eios","full_name":"luoanwu/juhi-omni-knowledge-hub-eios","description":"巨嗨全域智库 EIOS 化独立改造仓(由本地改造副本推送;原 luoanwu/juhi-omni-knowledge-hub 不动)","empty":false,"private":false,"fork":false,"template":false,"mirror":false,"size":2102295,"language":"","languages_url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub-eios/languages","html_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios","url":"https://gitea.g-hi.com/api/v1/repos/luoanwu/juhi-omni-knowledge-hub-eios","link":"","ssh_url":"git@gitea.g-hi.com:luoanwu/juhi-omni-knowledge-hub-eios.git","clone_url":"https://gitea.g-hi.com/luoanwu/juhi-omni-knowledge-hub-eios.git","original_url":"","website":"","stars_count":0,"forks_count":0,"watchers_count":1,"branch_count":2,"open_issues_count":0,"open_pr_counter":0,"release_counter":0,"default_branch":"eios/w0","archived":false,"created_at":"2026-10-30T09:22:23+08:00","updated_at":"2026-10-30T14:07:44+08:00","archived_at":"1970-01-01T08:00:00+08:00","permissions":{"admin":true,"push":true,"pull":true},"has_code":true,"has_issues":true,"internal_tracker":{"enable_time_tracker":true,"allow_only_contributors_to_track_time":true,"enable_issue_dependencies":true},"has_wiki":true,"has_pull_requests":true,"has_projects":true,"projects_mode":"all","has_releases":true,"has_packages":true,"has_actions":true,"ignore_whitespace_conflicts":false,"allow_merge_commits":true,"allow_rebase":true,"allow_rebase_explicit":true,"allow_squash_merge":true,"allow_fast_forward_only_merge":true,"allow_rebase_update":true,"allow_manual_merge":false,"autodetect_manual_merge":false,"default_delete_branch_after_merge":false,"default_merge_style":"merge","default_allow_maintainer_edit":true,"avatar_url":"","internal":false,"mirror_interval":"","object_format_name":"sha1","mirror_updated":"0001-01-01T00:00:00Z","topics":[],"licenses":[]},"pusher":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"},"sender":{"id":5,"login":"luoanwu","login_name":"","source_id":0,"full_name":"","email":"5+luoanwu@noreply.localhost","avatar_url":"https://gitea.g-hi.com/avatar/627574a890388a2aadc80ab38d22f3a0","html_url":"https://gitea.g-hi.com/luoanwu","language":"","is_admin":false,"last_login":"0001-01-01T00:00:00Z","created":"2026-01-30T16:28:30+08:00","restricted":false,"active":false,"prohibit_login":false,"location":"","website":"","description":"","visibility":"public","followers_count":0,"following_count":0,"starred_repos_count":0,"username":"luoanwu"}}... |