git mv packages/business -> packages/organization (@mosaic/organization). The old package stays as one-line re-export shims of each moved module, with src/business.mjs re-exporting src/organization-config.mjs and src/cli.mjs forwarding to the moved executable. BusinessError is OrganizationConfigError (one constructor, name kept BusinessError); OrganizationError stays distinct. The bus adapter gains organization-context.mjs (busOrganization), with business.mjs (busBusiness) as the same function. Import consumers, manifests, the lockfile, scripts/mosaic, stack-copy.sh COPY_PATHS (both roots), seat sandbox RUNNER_FILES and the copy closure walker (organization-imports.mjs, both roots required) move to the new path. v1 serialization, v1 writers and the stage A fixtures are unchanged; the stage A contract tests stay where they were and pass as before.
154 lines
3.4 KiB
JSON
154 lines
3.4 KiB
JSON
{
|
|
"businessVersion": 1,
|
|
"id": "mosaic-stack",
|
|
"human": "jason",
|
|
"arbiters": {
|
|
"delivery": "pm",
|
|
"technical": "cto"
|
|
},
|
|
"projects": {
|
|
"stack": {
|
|
"root": "/mnt/storage/src/mosaic-stack"
|
|
}
|
|
},
|
|
"vars": {
|
|
"tracker.baseUrl": "http://127.0.0.1:3456",
|
|
"gitea.baseUrl": "https://git.mosaicstack.dev"
|
|
},
|
|
"tracker": {
|
|
"sync": {
|
|
"bot": "bot-mosaic-stack-sync",
|
|
"botId": 0,
|
|
"credentials": {
|
|
"vikunja": {
|
|
"file": "/home/you/.config/mosaic-dev/secrets/mosaic-stack/sync-vikunja.token",
|
|
"expires": "YYYY-MM-DD"
|
|
}
|
|
}
|
|
},
|
|
"labels": {}
|
|
},
|
|
"roles": {
|
|
"pm": {
|
|
"definition": "pm",
|
|
"holder": "sage",
|
|
"tracker": {
|
|
"bot": "bot-mosaic-stack-pm",
|
|
"botId": 0
|
|
},
|
|
"credentials": {
|
|
"gitea": {
|
|
"file": "/home/you/.config/mosaic-dev/secrets/mosaic-stack/pm-gitea.token",
|
|
"rotateBy": "YYYY-MM-DD"
|
|
},
|
|
"vikunja": {
|
|
"file": "/home/you/.config/mosaic-dev/secrets/mosaic-stack/pm-vikunja.token",
|
|
"expires": "YYYY-MM-DD"
|
|
}
|
|
},
|
|
"vars": {
|
|
"model": "opus"
|
|
}
|
|
},
|
|
"cto": {
|
|
"definition": "cto",
|
|
"holder": "darkwing",
|
|
"tracker": {
|
|
"bot": "bot-mosaic-stack-cto",
|
|
"botId": 0
|
|
},
|
|
"credentials": {
|
|
"gitea": {
|
|
"file": "/home/you/.config/mosaic-dev/secrets/mosaic-stack/cto-gitea.token",
|
|
"rotateBy": "YYYY-MM-DD"
|
|
},
|
|
"vikunja": {
|
|
"file": "/home/you/.config/mosaic-dev/secrets/mosaic-stack/cto-vikunja.token",
|
|
"expires": "YYYY-MM-DD"
|
|
}
|
|
},
|
|
"vars": {
|
|
"model": "opus"
|
|
}
|
|
},
|
|
"coder": {
|
|
"definition": "coder",
|
|
"tracker": {
|
|
"bot": "bot-mosaic-stack-coder",
|
|
"botId": 0
|
|
},
|
|
"credentials": {
|
|
"gitea": {
|
|
"file": "/home/you/.config/mosaic-dev/secrets/mosaic-stack/coder-gitea.token",
|
|
"rotateBy": "YYYY-MM-DD"
|
|
},
|
|
"vikunja": {
|
|
"file": "/home/you/.config/mosaic-dev/secrets/mosaic-stack/coder-vikunja.token",
|
|
"expires": "YYYY-MM-DD"
|
|
}
|
|
},
|
|
"vars": {
|
|
"model": "sonnet"
|
|
}
|
|
},
|
|
"reviewer": {
|
|
"definition": "reviewer",
|
|
"tracker": {
|
|
"bot": "bot-mosaic-stack-reviewer",
|
|
"botId": 0
|
|
},
|
|
"credentials": {
|
|
"gitea": {
|
|
"file": "/home/you/.config/mosaic-dev/secrets/mosaic-stack/reviewer-gitea.token",
|
|
"rotateBy": "YYYY-MM-DD"
|
|
},
|
|
"vikunja": {
|
|
"file": "/home/you/.config/mosaic-dev/secrets/mosaic-stack/reviewer-vikunja.token",
|
|
"expires": "YYYY-MM-DD"
|
|
}
|
|
},
|
|
"vars": {
|
|
"model": "opus"
|
|
}
|
|
},
|
|
"chief": {
|
|
"definition": "chief-of-staff",
|
|
"vars": {
|
|
"model": "opus"
|
|
}
|
|
},
|
|
"assistant": {
|
|
"definition": "assistant",
|
|
"holder": "mos",
|
|
"vars": {
|
|
"model": "opus"
|
|
}
|
|
}
|
|
},
|
|
"launch": {
|
|
"by": "chief",
|
|
"instances": [
|
|
"coder",
|
|
"reviewer"
|
|
],
|
|
"models": {
|
|
"opus": {
|
|
"provider": "your-provider",
|
|
"model": "claude-opus-5-5"
|
|
},
|
|
"sonnet": {
|
|
"provider": "your-provider",
|
|
"model": "claude-sonnet-5-5"
|
|
}
|
|
},
|
|
"limits": {
|
|
"models": {
|
|
"your-provider": {
|
|
"claude-opus-5-5": 4,
|
|
"claude-sonnet-5-5": 4
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|