dsh-goal/types becomes the client-safe pure outlet (tool-todo dual-outlet shape): GoalId/GoalRef/GoalPhase/GoalBlockReason/GoalSnapshot, the new GoalProjection payload, and the SessionProjectionMap 'goal' key merge — zero host imports. Host-coupled vocabulary (GoalView/activation, change metas, message source, folds, GoalError codes, the scoped goal/changed event) moves to src/domain.ts, re-exported from the package root. ./client re-exports the outlet for client aggregates. GoalService registers the projection unit under ctx.inject(['sessionProjections']): applyGoalProjection is a projection-grade last-wins fold — plain-JSON state, same-reference return on non-goal or malformed events (a throwing apply would tear down the registry drive; strict validation stays with the write side and foldGoal). Activation is process-local and deliberately absent from the projection value.
43 lines
694 B
JSON
43 lines
694 B
JSON
{
|
|
"extends": "../../../tsconfig.base.json",
|
|
"compilerOptions": {
|
|
"rootDir": "src",
|
|
"outDir": "lib/types"
|
|
},
|
|
"include": [
|
|
"src"
|
|
],
|
|
"references": [
|
|
{
|
|
"path": "../../../vendor/cosmokit"
|
|
},
|
|
{
|
|
"path": "../../../vendor/schemastery"
|
|
},
|
|
{
|
|
"path": "../../../vendor/cordis"
|
|
},
|
|
{
|
|
"path": "../../util/brand"
|
|
},
|
|
{
|
|
"path": "../../llm/llm"
|
|
},
|
|
{
|
|
"path": "../../core/session"
|
|
},
|
|
{
|
|
"path": "../../core/scope"
|
|
},
|
|
{
|
|
"path": "../../core/agent"
|
|
},
|
|
{
|
|
"path": "../../session-projection/session-projection"
|
|
},
|
|
{
|
|
"path": "../../support/invariants"
|
|
}
|
|
]
|
|
}
|