Feature/delta team/epic r04 (#7)
CI / test (push) Canceled after 0s

## Summary

epic r04 - begin refactor

## Change Type

- [x] Cowork feature
- [ ] Bug fix
- [ ] Core AI contribution
- [ ] Test / hardening
- [ ] Performance
- [ ] Documentation

## Related Work

Cowork Task:

Core Repo: http://34.143.229.138/gitea-admin/fsg-ai-core-assets

Core AI Issue:

Core Task:

Related PR:

## Scope

What is intentionally included?

What is intentionally NOT included?

## Validation

- [ ] Unit tests
- [ ] Integration tests
- [ ] Manual verification
- [ ] Regression check

Commands / evidence:

## Security Impact

Permission / credential / network / customer data impact:

## Compatibility

- [ ] No breaking change
- [ ] Breaking change documented

## Reviewer Notes

Anything Cowork reviewers should pay attention to.

---------

Co-authored-by: Anh Tran Nguyen Minh <anhtnm1@fpt.com>
Co-authored-by: Huong Le Thi Thien <huongltt35@fpt.com>
Co-authored-by: Nam Pham Dinh Thanh <nampdt@fpt.com>
Co-authored-by: Vu Dam Tuan <vudt15@fpt.com>
Co-authored-by: Hiep Ha Van <hiephv3@fpt.com>
Co-authored-by: Lam Hoang Van <lamhv7@fpt.com>
Reviewed-on: #7
Co-authored-by: Duy Le Huu <duylh19@fpt.com>
This commit was merged in pull request #7.
This commit is contained in:
2026-08-31 05:15:13 +00:00
committed by gitea-admin
co-authored by anhtnm1 huongltt35 Nam Pham Dinh Thanh vudt15 Hiep Ha Van lamhv7
parent 86c27e2e79
commit f9f6bc01fd
496 changed files with 68421 additions and 19688 deletions
+29
View File
@@ -0,0 +1,29 @@
"""Test double dùng chung cho cả 3 team — không phụ thuộc Qt.
Gói này cố ý không import sẵn fake nào để tránh kéo theo phụ thuộc khi chạy cô lập.
Hỗ trợ import trực tiếp từ module con hoặc import lười từ package.
"""
from typing import Any
def __getattr__(name: str) -> Any:
if name in ("FakeProvider", "RecordedCall", "ScriptedTurn"):
from .fake_provider import FakeProvider, RecordedCall, ScriptedTurn
return locals()[name]
if name in ("FakeToolExecutor", "ToolInvocation"):
from .fake_tool_executor import FakeToolExecutor, ToolInvocation
return locals()[name]
if name == "FakeClock":
from .fake_clock import FakeClock
return FakeClock
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
__all__ = [
"FakeClock",
"FakeProvider",
"FakeToolExecutor",
"RecordedCall",
"ScriptedTurn",
"ToolInvocation",
]