feat(app): assemble intentflow plan owner
Wire the composition root without letting chat or coordinator call CreatePlan yet. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+30
-27
@@ -11,6 +11,7 @@ import (
|
||||
"chat-agent-system/internal/app/chatflow"
|
||||
"chat-agent-system/internal/app/docflow"
|
||||
"chat-agent-system/internal/app/docnotify"
|
||||
"chat-agent-system/internal/app/intentflow"
|
||||
"chat-agent-system/internal/app/stageflow"
|
||||
"chat-agent-system/internal/app/uow"
|
||||
"chat-agent-system/internal/artifactvault"
|
||||
@@ -43,33 +44,34 @@ const defaultReminderPollInterval = 15 * time.Minute
|
||||
// Runtime is the unique composition root. cmd/server, tests and workers
|
||||
// construct it once; HTTP adapters must not re-wire domain services.
|
||||
type Runtime struct {
|
||||
Cfg *config.Config
|
||||
Biz *bizdev.Service
|
||||
Engine *coordinator.CoordinatorEngine
|
||||
Auth *auth.Service
|
||||
PW *projectworkflow.Service
|
||||
TaskRuns *taskrun.Manager
|
||||
Authorizer *authz.Authorizer
|
||||
Authz *authz.Service
|
||||
WFDef *workflowdef.Service
|
||||
Inst *projectinstance.Service
|
||||
Notify *notification.Service
|
||||
Resolver *workspace.Resolver
|
||||
WSCap *workspace.Capability
|
||||
Commands *taskrun.Commands
|
||||
Rec intent.Recognizer
|
||||
Stageflow *stageflow.UseCase
|
||||
DocNotify *docnotify.Subscriber
|
||||
ChatLog chatflow.ChatLog
|
||||
Assembler chatflow.ContextAssembler
|
||||
Docflow *docflow.Commands
|
||||
Pool *pgxpool.Pool
|
||||
Gov *docgov.GovernanceEngine
|
||||
Rev *docrevision.Service
|
||||
Ctx *ctxmgr.ContextManager
|
||||
CAS *storage.CAS
|
||||
FreeDoc *freedoc.Service
|
||||
KB *kb.Client
|
||||
Cfg *config.Config
|
||||
Biz *bizdev.Service
|
||||
Engine *coordinator.CoordinatorEngine
|
||||
Auth *auth.Service
|
||||
PW *projectworkflow.Service
|
||||
TaskRuns *taskrun.Manager
|
||||
Authorizer *authz.Authorizer
|
||||
Authz *authz.Service
|
||||
WFDef *workflowdef.Service
|
||||
Inst *projectinstance.Service
|
||||
Notify *notification.Service
|
||||
Resolver *workspace.Resolver
|
||||
WSCap *workspace.Capability
|
||||
Commands *taskrun.Commands
|
||||
Rec intent.Recognizer
|
||||
Stageflow *stageflow.UseCase
|
||||
DocNotify *docnotify.Subscriber
|
||||
ChatLog chatflow.ChatLog
|
||||
Assembler chatflow.ContextAssembler
|
||||
Docflow *docflow.Commands
|
||||
IntentPlans *intentflow.Plans
|
||||
Pool *pgxpool.Pool
|
||||
Gov *docgov.GovernanceEngine
|
||||
Rev *docrevision.Service
|
||||
Ctx *ctxmgr.ContextManager
|
||||
CAS *storage.CAS
|
||||
FreeDoc *freedoc.Service
|
||||
KB *kb.Client
|
||||
|
||||
mu sync.Mutex
|
||||
running bool
|
||||
@@ -190,6 +192,7 @@ func Assemble(cfg *config.Config, svc *bizdev.Service) (*Runtime, error) {
|
||||
if pool != nil {
|
||||
rt.Docflow.UoW = uow.NewPG(pool)
|
||||
rt.Docflow.Events = events.PGSink{}
|
||||
rt.IntentPlans = intentflow.NewPlans(rt.Docflow.UoW, intentflow.NewRepository(), intentflow.Options{})
|
||||
}
|
||||
svc.SetAgentMaterializer(rt.Docflow)
|
||||
rt.bindDocumentNotify()
|
||||
|
||||
Reference in New Issue
Block a user