Dagger
Search

monorepo

The `pkg` argument specifies which package subdirectory to operate on.
Each function runs the corresponding npm script from the package's package.json.

All implementation logic lives in helper files; this file contains only
the @object() class with thin @func() wrappers (Dagger TypeScript SDK constraint).

Installation

dagger install github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493

Entrypoint

Return Type
Monorepo
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
func (m *MyModule) Example() *dagger.Monorepo  {
	return dag.
			Monorepo()
}
@function
def example() -> dagger.Monorepo:
	return (
		dag.monorepo()
	)
@func()
example(): Monorepo {
	return dag
		.monorepo()
}

Types

Monorepo 🔗

lint() 🔗

Run the lint script on a package

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 lint --pkg-dir DIR_PATH --pkg string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, pkg string) string  {
	return dag.
			Monorepo().
			Lint(ctx, pkgDir, pkg)
}
@function
async def example(pkgdir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.lint(pkgdir, pkg)
	)
@func()
async example(pkgDir: Directory, pkg: string): Promise<string> {
	return dag
		.monorepo()
		.lint(pkgDir, pkg)
}

typecheck() 🔗

Run the typecheck script on a package

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 typecheck --pkg-dir DIR_PATH --pkg string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, pkg string) string  {
	return dag.
			Monorepo().
			Typecheck(ctx, pkgDir, pkg)
}
@function
async def example(pkgdir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.typecheck(pkgdir, pkg)
	)
@func()
async example(pkgDir: Directory, pkg: string): Promise<string> {
	return dag
		.monorepo()
		.typecheck(pkgDir, pkg)
}

test() 🔗

Run the test script on a package

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
needsHelmBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 test --pkg-dir DIR_PATH --pkg string --needs-helm boolean
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, pkg string, needsHelm bool) string  {
	return dag.
			Monorepo().
			Test(ctx, pkgDir, pkg, needsHelm)
}
@function
async def example(pkgdir: dagger.Directory, pkg: str, needshelm: bool) -> str:
	return await (
		dag.monorepo()
		.test(pkgdir, pkg, needshelm)
	)
@func()
async example(pkgDir: Directory, pkg: string, needsHelm: boolean): Promise<string> {
	return dag
		.monorepo()
		.test(pkgDir, pkg, needsHelm)
}

buildPackage() 🔗

Run the build script on a package. Returns the Container so dist/ can be exported via CLI chaining.

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 build-package --pkg-dir DIR_PATH --pkg string
func (m *MyModule) Example(pkgDir *dagger.Directory, pkg string) *dagger.Container  {
	return dag.
			Monorepo().
			Buildpackage(pkgDir, pkg)
}
@function
def example(pkgdir: dagger.Directory, pkg: str) -> dagger.Container:
	return (
		dag.monorepo()
		.buildpackage(pkgdir, pkg)
	)
@func()
example(pkgDir: Directory, pkg: string): Container {
	return dag
		.monorepo()
		.buildPackage(pkgDir, pkg)
}

generateAndLint() 🔗

Generate then lint — chains on the same container to avoid SIGILL from bun install in fresh containers

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 generate-and-lint --pkg-dir DIR_PATH --pkg string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, pkg string) string  {
	return dag.
			Monorepo().
			Generateandlint(ctx, pkgDir, pkg)
}
@function
async def example(pkgdir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.generateandlint(pkgdir, pkg)
	)
@func()
async example(pkgDir: Directory, pkg: string): Promise<string> {
	return dag
		.monorepo()
		.generateAndLint(pkgDir, pkg)
}

generateAndTypecheck() 🔗

Generate then typecheck — chains on the same container

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 generate-and-typecheck --pkg-dir DIR_PATH --pkg string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, pkg string) string  {
	return dag.
			Monorepo().
			Generateandtypecheck(ctx, pkgDir, pkg)
}
@function
async def example(pkgdir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.generateandtypecheck(pkgdir, pkg)
	)
@func()
async example(pkgDir: Directory, pkg: string): Promise<string> {
	return dag
		.monorepo()
		.generateAndTypecheck(pkgDir, pkg)
}

generateAndTypecheckWithSecrets() 🔗

Generate (with HA secrets) then typecheck — for temporal, whose generate step materializes a typed HA schema by introspecting a live HA instance. Secrets are optional; without them the generate script falls back to the committed stub via scripts/ensure-ha-schema.ts and typecheck runs against loose DefaultHaSchema types.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
haUrlSecret -No description provided
haTokenSecret -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 generate-and-typecheck-with-secrets --pkg-dir DIR_PATH --pkg string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, pkg string) string  {
	return dag.
			Monorepo().
			Generateandtypecheckwithsecrets(ctx, pkgDir, pkg)
}
@function
async def example(pkgdir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.generateandtypecheckwithsecrets(pkgdir, pkg)
	)
@func()
async example(pkgDir: Directory, pkg: string): Promise<string> {
	return dag
		.monorepo()
		.generateAndTypecheckWithSecrets(pkgDir, pkg)
}

generateAndTest() 🔗

Generate then test — chains on the same container

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 generate-and-test --pkg-dir DIR_PATH --pkg string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, pkg string) string  {
	return dag.
			Monorepo().
			Generateandtest(ctx, pkgDir, pkg)
}
@function
async def example(pkgdir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.generateandtest(pkgdir, pkg)
	)
@func()
async example(pkgDir: Directory, pkg: string): Promise<string> {
	return dag
		.monorepo()
		.generateAndTest(pkgDir, pkg)
}

lintTypecheckTest() 🔗

Per-package bundle: run lint + typecheck + test in parallel as sibling containers from one pod. The engine de-dups the shared install layer by content-address, so this collapses three BK steps into one without losing intra-package parallelism. haUrl/haToken switch the typecheck branch to the HA-secrets generate-and-typecheck variant (used by temporal). includeAstroCheck/includeAstroBuild/includeBuild add optional parallel siblings — used by astro packages and NPM_BUILD_PACKAGES.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
needsHelmBoolean !falseNo description provided
haUrlSecret -No description provided
haTokenSecret -No description provided
includeAstroCheckBoolean !falseNo description provided
includeAstroBuildBoolean !falseNo description provided
includeBuildBoolean !falseNo description provided
skipTestBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 lint-typecheck-test --pkg-dir DIR_PATH --pkg string --needs-helm boolean --include-astro-check boolean --include-astro-build boolean --include-build boolean --skip-test boolean
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, pkg string, needsHelm bool, includeAstroCheck bool, includeAstroBuild bool, includeBuild bool, skipTest bool) string  {
	return dag.
			Monorepo().
			Linttypechecktest(ctx, pkgDir, pkg, needsHelm, includeAstroCheck, includeAstroBuild, includeBuild, skipTest)
}
@function
async def example(pkgdir: dagger.Directory, pkg: str, needshelm: bool, includeastrocheck: bool, includeastrobuild: bool, includebuild: bool, skiptest: bool) -> str:
	return await (
		dag.monorepo()
		.linttypechecktest(pkgdir, pkg, needshelm, includeastrocheck, includeastrobuild, includebuild, skiptest)
	)
@func()
async example(pkgDir: Directory, pkg: string, needsHelm: boolean, includeAstroCheck: boolean, includeAstroBuild: boolean, includeBuild: boolean, skipTest: boolean): Promise<string> {
	return dag
		.monorepo()
		.lintTypecheckTest(pkgDir, pkg, needsHelm, includeAstroCheck, includeAstroBuild, includeBuild, skipTest)
}

generateAndLintTypecheckTest() 🔗

Prisma variant of {@link lintTypecheckTest} — each sibling generates first.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 generate-and-lint-typecheck-test --pkg-dir DIR_PATH --pkg string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, pkg string) string  {
	return dag.
			Monorepo().
			Generateandlinttypechecktest(ctx, pkgDir, pkg)
}
@function
async def example(pkgdir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.generateandlinttypechecktest(pkgdir, pkg)
	)
@func()
async example(pkgDir: Directory, pkg: string): Promise<string> {
	return dag
		.monorepo()
		.generateAndLintTypecheckTest(pkgDir, pkg)
}

astroCheck() 🔗

Run astro check on a package

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 astro-check --pkg-dir DIR_PATH --pkg string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, pkg string) string  {
	return dag.
			Monorepo().
			Astrocheck(ctx, pkgDir, pkg)
}
@function
async def example(pkgdir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.astrocheck(pkgdir, pkg)
	)
@func()
async example(pkgDir: Directory, pkg: string): Promise<string> {
	return dag
		.monorepo()
		.astroCheck(pkgDir, pkg)
}

astroBuild() 🔗

Run astro build and return the output directory

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 astro-build --pkg-dir DIR_PATH --pkg string
func (m *MyModule) Example(pkgDir *dagger.Directory, pkg string) *dagger.Directory  {
	return dag.
			Monorepo().
			Astrobuild(pkgDir, pkg)
}
@function
def example(pkgdir: dagger.Directory, pkg: str) -> dagger.Directory:
	return (
		dag.monorepo()
		.astrobuild(pkgdir, pkg)
	)
@func()
example(pkgDir: Directory, pkg: string): Directory {
	return dag
		.monorepo()
		.astroBuild(pkgDir, pkg)
}

viteBuild() 🔗

Run vite build and return the output directory

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 vite-build --pkg-dir DIR_PATH --pkg string
func (m *MyModule) Example(pkgDir *dagger.Directory, pkg string) *dagger.Directory  {
	return dag.
			Monorepo().
			Vitebuild(pkgDir, pkg)
}
@function
def example(pkgdir: dagger.Directory, pkg: str) -> dagger.Directory:
	return (
		dag.monorepo()
		.vitebuild(pkgdir, pkg)
	)
@func()
example(pkgDir: Directory, pkg: string): Directory {
	return dag
		.monorepo()
		.viteBuild(pkgDir, pkg)
}

buildImage() 🔗

Build a Bun service OCI image. Constructs a minimal workspace with only the target package and its workspace deps — no file modification.

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
usePrismaBoolean !falseNo description provided
installEditorClisBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 build-image --pkg-dir DIR_PATH --pkg string --version string --git-sha string --use-prisma boolean --install-editor-clis boolean
func (m *MyModule) Example(pkgDir *dagger.Directory, pkg string, version string, gitSha string, usePrisma bool, installEditorClis bool) *dagger.Container  {
	return dag.
			Monorepo().
			Buildimage(pkgDir, pkg, version, gitSha, usePrisma, installEditorClis)
}
@function
def example(pkgdir: dagger.Directory, pkg: str, version: str, gitsha: str, useprisma: bool, installeditorclis: bool) -> dagger.Container:
	return (
		dag.monorepo()
		.buildimage(pkgdir, pkg, version, gitsha, useprisma, installeditorclis)
	)
@func()
example(pkgDir: Directory, pkg: string, version: string, gitSha: string, usePrisma: boolean, installEditorClis: boolean): Container {
	return dag
		.monorepo()
		.buildImage(pkgDir, pkg, version, gitSha, usePrisma, installEditorClis)
}

pushImage() 🔗

Push a built image to a registry under one or more tags. Returns digest of the first tag.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
tags[String ! ] !-No description provided
registryUsernameString !-No description provided
registryPasswordSecret !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
usePrismaBoolean !falseNo description provided
installEditorClisBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 push-image --pkg-dir DIR_PATH --pkg string --tags string1 --tags string2 --registry-username string --registry-password env:MYSECRET --version string --git-sha string --use-prisma boolean --install-editor-clis boolean
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, pkg string, tags []string, registryUsername string, registryPassword *dagger.Secret, version string, gitSha string, usePrisma bool, installEditorClis bool) string  {
	return dag.
			Monorepo().
			Pushimage(ctx, pkgDir, pkg, tags, registryUsername, registryPassword, version, gitSha, usePrisma, installEditorClis)
}
@function
async def example(pkgdir: dagger.Directory, pkg: str, tags: List[str], registryusername: str, registrypassword: dagger.Secret, version: str, gitsha: str, useprisma: bool, installeditorclis: bool) -> str:
	return await (
		dag.monorepo()
		.pushimage(pkgdir, pkg, tags, registryusername, registrypassword, version, gitsha, useprisma, installeditorclis)
	)
@func()
async example(pkgDir: Directory, pkg: string, tags: string[], registryUsername: string, registryPassword: Secret, version: string, gitSha: string, usePrisma: boolean, installEditorClis: boolean): Promise<string> {
	return dag
		.monorepo()
		.pushImage(pkgDir, pkg, tags, registryUsername, registryPassword, version, gitSha, usePrisma, installEditorClis)
}

buildCaddyS3ProxyImage() 🔗

Build the caddy-s3proxy image (custom Caddy build with S3 proxy plugin)

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 build-caddy-s-3-proxy-image --version string --git-sha string
func (m *MyModule) Example(version string, gitSha string) *dagger.Container  {
	return dag.
			Monorepo().
			Buildcaddys3proxyimage(version, gitSha)
}
@function
def example(version: str, gitsha: str) -> dagger.Container:
	return (
		dag.monorepo()
		.buildcaddys3proxyimage(version, gitsha)
	)
@func()
example(version: string, gitSha: string): Container {
	return dag
		.monorepo()
		.buildCaddyS3ProxyImage(version, gitSha)
}

buildObsidianHeadlessImage() 🔗

Build the obsidian-headless image (Bun + obsidian CLI)

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 build-obsidian-headless-image --version string --git-sha string
func (m *MyModule) Example(version string, gitSha string) *dagger.Container  {
	return dag.
			Monorepo().
			Buildobsidianheadlessimage(version, gitSha)
}
@function
def example(version: str, gitsha: str) -> dagger.Container:
	return (
		dag.monorepo()
		.buildobsidianheadlessimage(version, gitsha)
	)
@func()
example(version: string, gitSha: string): Container {
	return dag
		.monorepo()
		.buildObsidianHeadlessImage(version, gitSha)
}

pushCaddyS3ProxyImage() 🔗

Push a caddy-s3proxy image to a registry. Returns digest.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
tags[String ! ] !-No description provided
registryUsernameString !-No description provided
registryPasswordSecret !-No description provided
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 push-caddy-s-3-proxy-image --tags string1 --tags string2 --registry-username string --registry-password env:MYSECRET --version string --git-sha string
func (m *MyModule) Example(ctx context.Context, tags []string, registryUsername string, registryPassword *dagger.Secret, version string, gitSha string) string  {
	return dag.
			Monorepo().
			Pushcaddys3proxyimage(ctx, tags, registryUsername, registryPassword, version, gitSha)
}
@function
async def example(tags: List[str], registryusername: str, registrypassword: dagger.Secret, version: str, gitsha: str) -> str:
	return await (
		dag.monorepo()
		.pushcaddys3proxyimage(tags, registryusername, registrypassword, version, gitsha)
	)
@func()
async example(tags: string[], registryUsername: string, registryPassword: Secret, version: string, gitSha: string): Promise<string> {
	return dag
		.monorepo()
		.pushCaddyS3ProxyImage(tags, registryUsername, registryPassword, version, gitSha)
}

pushObsidianHeadlessImage() 🔗

Push an obsidian-headless image to a registry. Returns digest.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
tags[String ! ] !-No description provided
registryUsernameString !-No description provided
registryPasswordSecret !-No description provided
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 push-obsidian-headless-image --tags string1 --tags string2 --registry-username string --registry-password env:MYSECRET --version string --git-sha string
func (m *MyModule) Example(ctx context.Context, tags []string, registryUsername string, registryPassword *dagger.Secret, version string, gitSha string) string  {
	return dag.
			Monorepo().
			Pushobsidianheadlessimage(ctx, tags, registryUsername, registryPassword, version, gitSha)
}
@function
async def example(tags: List[str], registryusername: str, registrypassword: dagger.Secret, version: str, gitsha: str) -> str:
	return await (
		dag.monorepo()
		.pushobsidianheadlessimage(tags, registryusername, registrypassword, version, gitsha)
	)
@func()
async example(tags: string[], registryUsername: string, registryPassword: Secret, version: string, gitSha: string): Promise<string> {
	return dag
		.monorepo()
		.pushObsidianHeadlessImage(tags, registryUsername, registryPassword, version, gitSha)
}

buildMcpGatewayImage() 🔗

Build the custom mcp-gateway image (tbxark/mcp-proxy + prebuilt edstem-mcp)

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 build-mcp-gateway-image --version string --git-sha string
func (m *MyModule) Example(version string, gitSha string) *dagger.Container  {
	return dag.
			Monorepo().
			Buildmcpgatewayimage(version, gitSha)
}
@function
def example(version: str, gitsha: str) -> dagger.Container:
	return (
		dag.monorepo()
		.buildmcpgatewayimage(version, gitsha)
	)
@func()
example(version: string, gitSha: string): Container {
	return dag
		.monorepo()
		.buildMcpGatewayImage(version, gitSha)
}

pushMcpGatewayImage() 🔗

Push a custom mcp-gateway image to a registry. Returns digest.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
tags[String ! ] !-No description provided
registryUsernameString !-No description provided
registryPasswordSecret !-No description provided
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 push-mcp-gateway-image --tags string1 --tags string2 --registry-username string --registry-password env:MYSECRET --version string --git-sha string
func (m *MyModule) Example(ctx context.Context, tags []string, registryUsername string, registryPassword *dagger.Secret, version string, gitSha string) string  {
	return dag.
			Monorepo().
			Pushmcpgatewayimage(ctx, tags, registryUsername, registryPassword, version, gitSha)
}
@function
async def example(tags: List[str], registryusername: str, registrypassword: dagger.Secret, version: str, gitsha: str) -> str:
	return await (
		dag.monorepo()
		.pushmcpgatewayimage(tags, registryusername, registrypassword, version, gitsha)
	)
@func()
async example(tags: string[], registryUsername: string, registryPassword: Secret, version: string, gitSha: string): Promise<string> {
	return dag
		.monorepo()
		.pushMcpGatewayImage(tags, registryUsername, registryPassword, version, gitSha)
}

buildRedlibImage() 🔗

Build the redlib image from upstream’s glibc Dockerfile.ubuntu at a pinned commit.

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 build-redlib-image --version string --git-sha string
func (m *MyModule) Example(version string, gitSha string) *dagger.Container  {
	return dag.
			Monorepo().
			Buildredlibimage(version, gitSha)
}
@function
def example(version: str, gitsha: str) -> dagger.Container:
	return (
		dag.monorepo()
		.buildredlibimage(version, gitsha)
	)
@func()
example(version: string, gitSha: string): Container {
	return dag
		.monorepo()
		.buildRedlibImage(version, gitSha)
}

pushRedlibImage() 🔗

Push a redlib image to a registry. Returns digest.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
tags[String ! ] !-No description provided
registryUsernameString !-No description provided
registryPasswordSecret !-No description provided
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 push-redlib-image --tags string1 --tags string2 --registry-username string --registry-password env:MYSECRET --version string --git-sha string
func (m *MyModule) Example(ctx context.Context, tags []string, registryUsername string, registryPassword *dagger.Secret, version string, gitSha string) string  {
	return dag.
			Monorepo().
			Pushredlibimage(ctx, tags, registryUsername, registryPassword, version, gitSha)
}
@function
async def example(tags: List[str], registryusername: str, registrypassword: dagger.Secret, version: str, gitsha: str) -> str:
	return await (
		dag.monorepo()
		.pushredlibimage(tags, registryusername, registrypassword, version, gitsha)
	)
@func()
async example(tags: string[], registryUsername: string, registryPassword: Secret, version: string, gitSha: string): Promise<string> {
	return dag
		.monorepo()
		.pushRedlibImage(tags, registryUsername, registryPassword, version, gitSha)
}

buildScoutImage() 🔗

Build the scout-for-lol backend image (Bun workspace + Prisma)

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 build-scout-image --pkg-dir DIR_PATH --version string --git-sha string
func (m *MyModule) Example(pkgDir *dagger.Directory, version string, gitSha string) *dagger.Container  {
	return dag.
			Monorepo().
			Buildscoutimage(pkgDir, version, gitSha)
}
@function
def example(pkgdir: dagger.Directory, version: str, gitsha: str) -> dagger.Container:
	return (
		dag.monorepo()
		.buildscoutimage(pkgdir, version, gitsha)
	)
@func()
example(pkgDir: Directory, version: string, gitSha: string): Container {
	return dag
		.monorepo()
		.buildScoutImage(pkgDir, version, gitSha)
}

pushScoutImage() 🔗

Push a scout-for-lol image to a registry. Returns digest.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
tags[String ! ] !-No description provided
registryUsernameString !-No description provided
registryPasswordSecret !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 push-scout-image --pkg-dir DIR_PATH --tags string1 --tags string2 --registry-username string --registry-password env:MYSECRET --version string --git-sha string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, tags []string, registryUsername string, registryPassword *dagger.Secret, version string, gitSha string) string  {
	return dag.
			Monorepo().
			Pushscoutimage(ctx, pkgDir, tags, registryUsername, registryPassword, version, gitSha)
}
@function
async def example(pkgdir: dagger.Directory, tags: List[str], registryusername: str, registrypassword: dagger.Secret, version: str, gitsha: str) -> str:
	return await (
		dag.monorepo()
		.pushscoutimage(pkgdir, tags, registryusername, registrypassword, version, gitsha)
	)
@func()
async example(pkgDir: Directory, tags: string[], registryUsername: string, registryPassword: Secret, version: string, gitSha: string): Promise<string> {
	return dag
		.monorepo()
		.pushScoutImage(pkgDir, tags, registryUsername, registryPassword, version, gitSha)
}

buildDiscordPlaysPokemonImage() 🔗

Build the discord-plays-pokemon backend image (Bun workspace)

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 build-discord-plays-pokemon-image --pkg-dir DIR_PATH --version string --git-sha string
func (m *MyModule) Example(pkgDir *dagger.Directory, version string, gitSha string) *dagger.Container  {
	return dag.
			Monorepo().
			Builddiscordplayspokemonimage(pkgDir, version, gitSha)
}
@function
def example(pkgdir: dagger.Directory, version: str, gitsha: str) -> dagger.Container:
	return (
		dag.monorepo()
		.builddiscordplayspokemonimage(pkgdir, version, gitsha)
	)
@func()
example(pkgDir: Directory, version: string, gitSha: string): Container {
	return dag
		.monorepo()
		.buildDiscordPlaysPokemonImage(pkgDir, version, gitSha)
}

pushDiscordPlaysPokemonImage() 🔗

Push a discord-plays-pokemon image to a registry. Returns digest.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
tags[String ! ] !-No description provided
registryUsernameString !-No description provided
registryPasswordSecret !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 push-discord-plays-pokemon-image --pkg-dir DIR_PATH --tags string1 --tags string2 --registry-username string --registry-password env:MYSECRET --version string --git-sha string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, tags []string, registryUsername string, registryPassword *dagger.Secret, version string, gitSha string) string  {
	return dag.
			Monorepo().
			Pushdiscordplayspokemonimage(ctx, pkgDir, tags, registryUsername, registryPassword, version, gitSha)
}
@function
async def example(pkgdir: dagger.Directory, tags: List[str], registryusername: str, registrypassword: dagger.Secret, version: str, gitsha: str) -> str:
	return await (
		dag.monorepo()
		.pushdiscordplayspokemonimage(pkgdir, tags, registryusername, registrypassword, version, gitsha)
	)
@func()
async example(pkgDir: Directory, tags: string[], registryUsername: string, registryPassword: Secret, version: string, gitSha: string): Promise<string> {
	return dag
		.monorepo()
		.pushDiscordPlaysPokemonImage(pkgDir, tags, registryUsername, registryPassword, version, gitSha)
}

buildDiscordPlaysMarioKartImage() 🔗

Build the discord-plays-mario-kart backend image (Bun workspace + N64Wasm)

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 build-discord-plays-mario-kart-image --pkg-dir DIR_PATH --version string --git-sha string
func (m *MyModule) Example(pkgDir *dagger.Directory, version string, gitSha string) *dagger.Container  {
	return dag.
			Monorepo().
			Builddiscordplaysmariokartimage(pkgDir, version, gitSha)
}
@function
def example(pkgdir: dagger.Directory, version: str, gitsha: str) -> dagger.Container:
	return (
		dag.monorepo()
		.builddiscordplaysmariokartimage(pkgdir, version, gitsha)
	)
@func()
example(pkgDir: Directory, version: string, gitSha: string): Container {
	return dag
		.monorepo()
		.buildDiscordPlaysMarioKartImage(pkgDir, version, gitSha)
}

pushDiscordPlaysMarioKartImage() 🔗

Push a discord-plays-mario-kart image to a registry. Returns digest.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
tags[String ! ] !-No description provided
registryUsernameString !-No description provided
registryPasswordSecret !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 push-discord-plays-mario-kart-image --pkg-dir DIR_PATH --tags string1 --tags string2 --registry-username string --registry-password env:MYSECRET --version string --git-sha string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, tags []string, registryUsername string, registryPassword *dagger.Secret, version string, gitSha string) string  {
	return dag.
			Monorepo().
			Pushdiscordplaysmariokartimage(ctx, pkgDir, tags, registryUsername, registryPassword, version, gitSha)
}
@function
async def example(pkgdir: dagger.Directory, tags: List[str], registryusername: str, registrypassword: dagger.Secret, version: str, gitsha: str) -> str:
	return await (
		dag.monorepo()
		.pushdiscordplaysmariokartimage(pkgdir, tags, registryusername, registrypassword, version, gitsha)
	)
@func()
async example(pkgDir: Directory, tags: string[], registryUsername: string, registryPassword: Secret, version: string, gitSha: string): Promise<string> {
	return dag
		.monorepo()
		.pushDiscordPlaysMarioKartImage(pkgDir, tags, registryUsername, registryPassword, version, gitSha)
}

buildTemporalWorkerImage() 🔗

Build the temporal-worker image (Bun + Temporal SDK)

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 build-temporal-worker-image --pkg-dir DIR_PATH --version string --git-sha string
func (m *MyModule) Example(pkgDir *dagger.Directory, version string, gitSha string) *dagger.Container  {
	return dag.
			Monorepo().
			Buildtemporalworkerimage(pkgDir, version, gitSha)
}
@function
def example(pkgdir: dagger.Directory, version: str, gitsha: str) -> dagger.Container:
	return (
		dag.monorepo()
		.buildtemporalworkerimage(pkgdir, version, gitsha)
	)
@func()
example(pkgDir: Directory, version: string, gitSha: string): Container {
	return dag
		.monorepo()
		.buildTemporalWorkerImage(pkgDir, version, gitSha)
}

pushTemporalWorkerImage() 🔗

Push a temporal-worker image to a registry. Returns digest.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
tags[String ! ] !-No description provided
registryUsernameString !-No description provided
registryPasswordSecret !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 push-temporal-worker-image --pkg-dir DIR_PATH --tags string1 --tags string2 --registry-username string --registry-password env:MYSECRET --version string --git-sha string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, tags []string, registryUsername string, registryPassword *dagger.Secret, version string, gitSha string) string  {
	return dag.
			Monorepo().
			Pushtemporalworkerimage(ctx, pkgDir, tags, registryUsername, registryPassword, version, gitSha)
}
@function
async def example(pkgdir: dagger.Directory, tags: List[str], registryusername: str, registrypassword: dagger.Secret, version: str, gitsha: str) -> str:
	return await (
		dag.monorepo()
		.pushtemporalworkerimage(pkgdir, tags, registryusername, registrypassword, version, gitsha)
	)
@func()
async example(pkgDir: Directory, tags: string[], registryUsername: string, registryPassword: Secret, version: string, gitSha: string): Promise<string> {
	return dag
		.monorepo()
		.pushTemporalWorkerImage(pkgDir, tags, registryUsername, registryPassword, version, gitSha)
}

buildTrmnlDashboardImage() 🔗

Build the trmnl-dashboard image (Bun service, runs as UID 1000).

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 build-trmnl-dashboard-image --pkg-dir DIR_PATH --version string --git-sha string
func (m *MyModule) Example(pkgDir *dagger.Directory, version string, gitSha string) *dagger.Container  {
	return dag.
			Monorepo().
			Buildtrmnldashboardimage(pkgDir, version, gitSha)
}
@function
def example(pkgdir: dagger.Directory, version: str, gitsha: str) -> dagger.Container:
	return (
		dag.monorepo()
		.buildtrmnldashboardimage(pkgdir, version, gitsha)
	)
@func()
example(pkgDir: Directory, version: string, gitSha: string): Container {
	return dag
		.monorepo()
		.buildTrmnlDashboardImage(pkgDir, version, gitSha)
}

pushTrmnlDashboardImage() 🔗

Push a trmnl-dashboard image to a registry. Returns digest.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
tags[String ! ] !-No description provided
registryUsernameString !-No description provided
registryPasswordSecret !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
versionString !"dev"No description provided
gitShaString !"unknown"No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 push-trmnl-dashboard-image --pkg-dir DIR_PATH --tags string1 --tags string2 --registry-username string --registry-password env:MYSECRET --version string --git-sha string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, tags []string, registryUsername string, registryPassword *dagger.Secret, version string, gitSha string) string  {
	return dag.
			Monorepo().
			Pushtrmnldashboardimage(ctx, pkgDir, tags, registryUsername, registryPassword, version, gitSha)
}
@function
async def example(pkgdir: dagger.Directory, tags: List[str], registryusername: str, registrypassword: dagger.Secret, version: str, gitsha: str) -> str:
	return await (
		dag.monorepo()
		.pushtrmnldashboardimage(pkgdir, tags, registryusername, registrypassword, version, gitsha)
	)
@func()
async example(pkgDir: Directory, tags: string[], registryUsername: string, registryPassword: Secret, version: string, gitSha: string): Promise<string> {
	return dag
		.monorepo()
		.pushTrmnlDashboardImage(pkgDir, tags, registryUsername, registryPassword, version, gitSha)
}

buildCiBaseImage() 🔗

Build the CI base image from a Dockerfile context.

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
contextDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 build-ci-base-image --context DIR_PATH
func (m *MyModule) Example(context *dagger.Directory) *dagger.Container  {
	return dag.
			Monorepo().
			Buildcibaseimage(context)
}
@function
def example(context: dagger.Directory) -> dagger.Container:
	return (
		dag.monorepo()
		.buildcibaseimage(context)
	)
@func()
example(context: Directory): Container {
	return dag
		.monorepo()
		.buildCiBaseImage(context)
}

pushCiBaseImage() 🔗

Build and push the CI base image. Returns digest.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
contextDirectory !-No description provided
tags[String ! ] !-No description provided
registryUsernameString !-No description provided
registryPasswordSecret !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 push-ci-base-image --context DIR_PATH --tags string1 --tags string2 --registry-username string --registry-password env:MYSECRET
func (m *MyModule) Example(ctx context.Context, context *dagger.Directory, tags []string, registryUsername string, registryPassword *dagger.Secret) string  {
	return dag.
			Monorepo().
			Pushcibaseimage(ctx, context, tags, registryUsername, registryPassword)
}
@function
async def example(context: dagger.Directory, tags: List[str], registryusername: str, registrypassword: dagger.Secret) -> str:
	return await (
		dag.monorepo()
		.pushcibaseimage(context, tags, registryusername, registrypassword)
	)
@func()
async example(context: Directory, tags: string[], registryUsername: string, registryPassword: Secret): Promise<string> {
	return dag
		.monorepo()
		.pushCiBaseImage(context, tags, registryUsername, registryPassword)
}

goBuild() 🔗

Run go build

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 go-build --pkg-dir DIR_PATH
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory) string  {
	return dag.
			Monorepo().
			Gobuild(ctx, pkgDir)
}
@function
async def example(pkgdir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.gobuild(pkgdir)
	)
@func()
async example(pkgDir: Directory): Promise<string> {
	return dag
		.monorepo()
		.goBuild(pkgDir)
}

goTest() 🔗

Run go test

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 go-test --pkg-dir DIR_PATH
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory) string  {
	return dag.
			Monorepo().
			Gotest(ctx, pkgDir)
}
@function
async def example(pkgdir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.gotest(pkgdir)
	)
@func()
async example(pkgDir: Directory): Promise<string> {
	return dag
		.monorepo()
		.goTest(pkgDir)
}

goLint() 🔗

Run golangci-lint (v2)

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 go-lint --pkg-dir DIR_PATH
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory) string  {
	return dag.
			Monorepo().
			Golint(ctx, pkgDir)
}
@function
async def example(pkgdir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.golint(pkgdir)
	)
@func()
async example(pkgDir: Directory): Promise<string> {
	return dag
		.monorepo()
		.goLint(pkgDir)
}

goLintTestBuild() 🔗

Bundle: go lint + test + build in one pod, parallel siblings sharing the goBaseContainer prefix.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 go-lint-test-build --pkg-dir DIR_PATH
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory) string  {
	return dag.
			Monorepo().
			Golinttestbuild(ctx, pkgDir)
}
@function
async def example(pkgdir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.golinttestbuild(pkgdir)
	)
@func()
async example(pkgDir: Directory): Promise<string> {
	return dag
		.monorepo()
		.goLintTestBuild(pkgDir)
}

homelabSynth() 🔗

Run cdk8s synth (bun run build) and return the output directory

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 homelab-synth --pkg-dir DIR_PATH
func (m *MyModule) Example(pkgDir *dagger.Directory) *dagger.Directory  {
	return dag.
			Monorepo().
			Homelabsynth(pkgDir)
}
@function
def example(pkgdir: dagger.Directory) -> dagger.Directory:
	return (
		dag.monorepo()
		.homelabsynth(pkgdir)
	)
@func()
example(pkgDir: Directory): Directory {
	return dag
		.monorepo()
		.homelabSynth(pkgDir)
}

helmTypesDriftCheck() 🔗

Regenerate the cdk8s Helm value types and fail if they drift from the committed generated/helm/ tree. This is the CI freshness gate (replaces the weekly helm-types-refresh Temporal workflow).

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 helm-types-drift-check --pkg-dir DIR_PATH
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory) string  {
	return dag.
			Monorepo().
			Helmtypesdriftcheck(ctx, pkgDir)
}
@function
async def example(pkgdir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.helmtypesdriftcheck(pkgdir)
	)
@func()
async example(pkgDir: Directory): Promise<string> {
	return dag
		.monorepo()
		.helmTypesDriftCheck(pkgDir)
}

homelabOnePasswordLint() 🔗

Lint that every cdk8s OnePasswordItem reference + consumed field exists in the committed vault snapshot

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 homelab-one-password-lint --pkg-dir DIR_PATH
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory) string  {
	return dag.
			Monorepo().
			Homelabonepasswordlint(ctx, pkgDir)
}
@function
async def example(pkgdir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.homelabonepasswordlint(pkgdir)
	)
@func()
async example(pkgDir: Directory): Promise<string> {
	return dag
		.monorepo()
		.homelabOnePasswordLint(pkgDir)
}

homelabCdk8Sbundle() 🔗

Bundle: cdk8s synth + 1Password lint in one pod, running as parallel siblings. Shared bunBaseContainer prefix de-dups the install layer by content-address — one source fetch, two parallel withExecs.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 homelab-cdk-8-s-bundle --pkg-dir DIR_PATH
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory) string  {
	return dag.
			Monorepo().
			Homelabcdk8sbundle(ctx, pkgDir)
}
@function
async def example(pkgdir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.homelabcdk8sbundle(pkgdir)
	)
@func()
async example(pkgDir: Directory): Promise<string> {
	return dag
		.monorepo()
		.homelabCdk8SBundle(pkgDir)
}

swiftLint() 🔗

Run swiftlint on a Swift package

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
pkgString !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 swift-lint --source DIR_PATH --pkg string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, pkg string) string  {
	return dag.
			Monorepo().
			Swiftlint(ctx, source, pkg)
}
@function
async def example(source: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.swiftlint(source, pkg)
	)
@func()
async example(source: Directory, pkg: string): Promise<string> {
	return dag
		.monorepo()
		.swiftLint(source, pkg)
}

playwrightTest() 🔗

Run Playwright tests headless in a container

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 playwright-test --pkg-dir DIR_PATH --pkg string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, pkg string) string  {
	return dag.
			Monorepo().
			Playwrighttest(ctx, pkgDir, pkg)
}
@function
async def example(pkgdir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.playwrighttest(pkgdir, pkg)
	)
@func()
async example(pkgDir: Directory, pkg: string): Promise<string> {
	return dag
		.monorepo()
		.playwrightTest(pkgDir, pkg)
}

playwrightUpdate() 🔗

Generate/update Playwright snapshot baselines. Returns the snapshots directory.

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 playwright-update --pkg-dir DIR_PATH --pkg string
func (m *MyModule) Example(pkgDir *dagger.Directory, pkg string) *dagger.Directory  {
	return dag.
			Monorepo().
			Playwrightupdate(pkgDir, pkg)
}
@function
def example(pkgdir: dagger.Directory, pkg: str) -> dagger.Directory:
	return (
		dag.monorepo()
		.playwrightupdate(pkgdir, pkg)
	)
@func()
example(pkgDir: Directory, pkg: string): Directory {
	return dag
		.monorepo()
		.playwrightUpdate(pkgDir, pkg)
}

ciAll() 🔗

Run lint/typecheck/test for all TS packages in parallel. Returns results summary.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 ci-all --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Ciall(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.ciall(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.ciAll(source)
}

mavenBuild() 🔗

Build a Maven project with mvn package -DskipTests

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 maven-build --pkg-dir DIR_PATH
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory) string  {
	return dag.
			Monorepo().
			Mavenbuild(ctx, pkgDir)
}
@function
async def example(pkgdir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.mavenbuild(pkgdir)
	)
@func()
async example(pkgDir: Directory): Promise<string> {
	return dag
		.monorepo()
		.mavenBuild(pkgDir)
}

mavenTest() 🔗

Test a Maven project with mvn test

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 maven-test --pkg-dir DIR_PATH
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory) string  {
	return dag.
			Monorepo().
			Maventest(ctx, pkgDir)
}
@function
async def example(pkgdir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.maventest(pkgdir)
	)
@func()
async example(pkgDir: Directory): Promise<string> {
	return dag
		.monorepo()
		.mavenTest(pkgDir)
}

mavenCoverage() 🔗

Run mvn verify to generate JaCoCo coverage reports

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 maven-coverage --pkg-dir DIR_PATH
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory) string  {
	return dag.
			Monorepo().
			Mavencoverage(ctx, pkgDir)
}
@function
async def example(pkgdir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.mavencoverage(pkgdir)
	)
@func()
async example(pkgDir: Directory): Promise<string> {
	return dag
		.monorepo()
		.mavenCoverage(pkgDir)
}

latexBuild() 🔗

Build the LaTeX resume with xelatex

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 latex-build --pkg-dir DIR_PATH
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory) string  {
	return dag.
			Monorepo().
			Latexbuild(ctx, pkgDir)
}
@function
async def example(pkgdir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.latexbuild(pkgdir)
	)
@func()
async example(pkgDir: Directory): Promise<string> {
	return dag
		.monorepo()
		.latexBuild(pkgDir)
}

helmPackage() 🔗

Package and push a single Helm chart to ChartMuseum

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
cdk8SdistDirectory !-No description provided
chartNameString !-No description provided
versionString !-No description provided
chartMuseumUsernameString !-No description provided
chartMuseumPasswordSecret !-No description provided
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 helm-package --source DIR_PATH --cdk-8-s-dist DIR_PATH --chart-name string --version string --chart-museum-username string --chart-museum-password env:MYSECRET --dryrun boolean
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, cdk8SDist *dagger.Directory, chartName string, version string, chartMuseumUsername string, chartMuseumPassword *dagger.Secret, dryrun bool) string  {
	return dag.
			Monorepo().
			Helmpackage(ctx, source, cdk8SDist, chartName, version, chartMuseumUsername, chartMuseumPassword, dryrun)
}
@function
async def example(source: dagger.Directory, cdk8sdist: dagger.Directory, chartname: str, version: str, chartmuseumusername: str, chartmuseumpassword: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.helmpackage(source, cdk8sdist, chartname, version, chartmuseumusername, chartmuseumpassword, dryrun)
	)
@func()
async example(source: Directory, cdk8SDist: Directory, chartName: string, version: string, chartMuseumUsername: string, chartMuseumPassword: Secret, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.helmPackage(source, cdk8SDist, chartName, version, chartMuseumUsername, chartMuseumPassword, dryrun)
}

helmSynthAndPackage() 🔗

Synth cdk8s manifests and package a Helm chart in one call. Eliminates Buildkite artifact transfer — Dagger caches the synth output.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
synthPkgDirDirectory !-No description provided
synthDepNames[String ! ] -No description provided
synthDepDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
chartNameString !-No description provided
versionString !-No description provided
chartMuseumUsernameString !-No description provided
chartMuseumPasswordSecret !-No description provided
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 helm-synth-and-package --source DIR_PATH --synth-pkg-dir DIR_PATH --chart-name string --version string --chart-museum-username string --chart-museum-password env:MYSECRET --dryrun boolean
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, synthPkgDir *dagger.Directory, chartName string, version string, chartMuseumUsername string, chartMuseumPassword *dagger.Secret, dryrun bool) string  {
	return dag.
			Monorepo().
			Helmsynthandpackage(ctx, source, synthPkgDir, chartName, version, chartMuseumUsername, chartMuseumPassword, dryrun)
}
@function
async def example(source: dagger.Directory, synthpkgdir: dagger.Directory, chartname: str, version: str, chartmuseumusername: str, chartmuseumpassword: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.helmsynthandpackage(source, synthpkgdir, chartname, version, chartmuseumusername, chartmuseumpassword, dryrun)
	)
@func()
async example(source: Directory, synthPkgDir: Directory, chartName: string, version: string, chartMuseumUsername: string, chartMuseumPassword: Secret, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.helmSynthAndPackage(source, synthPkgDir, chartName, version, chartMuseumUsername, chartMuseumPassword, dryrun)
}

helmPushAll() 🔗

Synth + package + push every Helm chart in parallel from one pod. Replaces the 28-step per-chart helm-push-<chart> BK fan-out (each ~25 s, mostly sidecar overhead). The synth Directory is content-addressed, so all charts share one synth result.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
synthPkgDirDirectory !-No description provided
synthDepNames[String ! ] -No description provided
synthDepDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
chartNames[String ! ] !-No description provided
versionString !-No description provided
chartMuseumUsernameString !-No description provided
chartMuseumPasswordSecret !-No description provided
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 helm-push-all --source DIR_PATH --synth-pkg-dir DIR_PATH --chart-names string1 --chart-names string2 --version string --chart-museum-username string --chart-museum-password env:MYSECRET --dryrun boolean
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, synthPkgDir *dagger.Directory, chartNames []string, version string, chartMuseumUsername string, chartMuseumPassword *dagger.Secret, dryrun bool) string  {
	return dag.
			Monorepo().
			Helmpushall(ctx, source, synthPkgDir, chartNames, version, chartMuseumUsername, chartMuseumPassword, dryrun)
}
@function
async def example(source: dagger.Directory, synthpkgdir: dagger.Directory, chartnames: List[str], version: str, chartmuseumusername: str, chartmuseumpassword: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.helmpushall(source, synthpkgdir, chartnames, version, chartmuseumusername, chartmuseumpassword, dryrun)
	)
@func()
async example(source: Directory, synthPkgDir: Directory, chartNames: string[], version: string, chartMuseumUsername: string, chartMuseumPassword: Secret, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.helmPushAll(source, synthPkgDir, chartNames, version, chartMuseumUsername, chartMuseumPassword, dryrun)
}

tofuApply() 🔗

Run tofu init + apply on an infrastructure stack

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
stackString !-No description provided
awsAccessKeyIdSecret !-No description provided
awsSecretAccessKeySecret !-No description provided
githubTokenSecret -No description provided
cloudflareAccountIdSecret -No description provided
cloudflareApiTokenSecret -No description provided
tailscaleOauthClientIdSecret -No description provided
tailscaleOauthClientSecretSecret -No description provided
buildkiteApiTokenSecret -No description provided
radarrApiKeySecret -No description provided
sonarrApiKeySecret -No description provided
prowlarrApiKeySecret -No description provided
qbittorrentPasswordSecret -No description provided
privatehdPasswordSecret -No description provided
privatehdPidSecret -No description provided
pagerdutyTokenSecret -No description provided
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 tofu-apply --source DIR_PATH --stack string --aws-access-key-id env:MYSECRET --aws-secret-access-key env:MYSECRET --dryrun boolean
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, stack string, awsAccessKeyId *dagger.Secret, awsSecretAccessKey *dagger.Secret, dryrun bool) string  {
	return dag.
			Monorepo().
			Tofuapply(ctx, source, stack, awsAccessKeyId, awsSecretAccessKey, dryrun)
}
@function
async def example(source: dagger.Directory, stack: str, awsaccesskeyid: dagger.Secret, awssecretaccesskey: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.tofuapply(source, stack, awsaccesskeyid, awssecretaccesskey, dryrun)
	)
@func()
async example(source: Directory, stack: string, awsAccessKeyId: Secret, awsSecretAccessKey: Secret, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.tofuApply(source, stack, awsAccessKeyId, awsSecretAccessKey, dryrun)
}

tofuPlan() 🔗

Run tofu init + plan on an infrastructure stack (read-only)

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
stackString !-No description provided
awsAccessKeyIdSecret !-No description provided
awsSecretAccessKeySecret !-No description provided
githubTokenSecret -No description provided
cloudflareAccountIdSecret -No description provided
cloudflareApiTokenSecret -No description provided
tailscaleOauthClientIdSecret -No description provided
tailscaleOauthClientSecretSecret -No description provided
buildkiteApiTokenSecret -No description provided
radarrApiKeySecret -No description provided
sonarrApiKeySecret -No description provided
prowlarrApiKeySecret -No description provided
qbittorrentPasswordSecret -No description provided
privatehdPasswordSecret -No description provided
privatehdPidSecret -No description provided
pagerdutyTokenSecret -No description provided
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 tofu-plan --source DIR_PATH --stack string --aws-access-key-id env:MYSECRET --aws-secret-access-key env:MYSECRET --dryrun boolean
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, stack string, awsAccessKeyId *dagger.Secret, awsSecretAccessKey *dagger.Secret, dryrun bool) string  {
	return dag.
			Monorepo().
			Tofuplan(ctx, source, stack, awsAccessKeyId, awsSecretAccessKey, dryrun)
}
@function
async def example(source: dagger.Directory, stack: str, awsaccesskeyid: dagger.Secret, awssecretaccesskey: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.tofuplan(source, stack, awsaccesskeyid, awssecretaccesskey, dryrun)
	)
@func()
async example(source: Directory, stack: string, awsAccessKeyId: Secret, awsSecretAccessKey: Secret, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.tofuPlan(source, stack, awsAccessKeyId, awsSecretAccessKey, dryrun)
}

tofuApplyAll() 🔗

Apply every OpenTofu stack in parallel from one pod. Each stack has its own S3 backend + state lock, so concurrent applies are safe. Stack- irrelevant secrets pass through and are ignored by tofuApplyHelper’s conditional withSecretVariable checks.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
stacks[String ! ] !-No description provided
awsAccessKeyIdSecret !-No description provided
awsSecretAccessKeySecret !-No description provided
githubTokenSecret -No description provided
cloudflareAccountIdSecret -No description provided
cloudflareApiTokenSecret -No description provided
tailscaleOauthClientIdSecret -No description provided
tailscaleOauthClientSecretSecret -No description provided
buildkiteApiTokenSecret -No description provided
radarrApiKeySecret -No description provided
sonarrApiKeySecret -No description provided
prowlarrApiKeySecret -No description provided
qbittorrentPasswordSecret -No description provided
privatehdPasswordSecret -No description provided
privatehdPidSecret -No description provided
pagerdutyTokenSecret -No description provided
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 tofu-apply-all --source DIR_PATH --stacks string1 --stacks string2 --aws-access-key-id env:MYSECRET --aws-secret-access-key env:MYSECRET --dryrun boolean
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, stacks []string, awsAccessKeyId *dagger.Secret, awsSecretAccessKey *dagger.Secret, dryrun bool) string  {
	return dag.
			Monorepo().
			Tofuapplyall(ctx, source, stacks, awsAccessKeyId, awsSecretAccessKey, dryrun)
}
@function
async def example(source: dagger.Directory, stacks: List[str], awsaccesskeyid: dagger.Secret, awssecretaccesskey: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.tofuapplyall(source, stacks, awsaccesskeyid, awssecretaccesskey, dryrun)
	)
@func()
async example(source: Directory, stacks: string[], awsAccessKeyId: Secret, awsSecretAccessKey: Secret, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.tofuApplyAll(source, stacks, awsAccessKeyId, awsSecretAccessKey, dryrun)
}

tofuPlanAll() 🔗

Plan every OpenTofu stack in parallel from one pod. Read-only.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
stacks[String ! ] !-No description provided
awsAccessKeyIdSecret !-No description provided
awsSecretAccessKeySecret !-No description provided
githubTokenSecret -No description provided
cloudflareAccountIdSecret -No description provided
cloudflareApiTokenSecret -No description provided
tailscaleOauthClientIdSecret -No description provided
tailscaleOauthClientSecretSecret -No description provided
buildkiteApiTokenSecret -No description provided
radarrApiKeySecret -No description provided
sonarrApiKeySecret -No description provided
prowlarrApiKeySecret -No description provided
qbittorrentPasswordSecret -No description provided
privatehdPasswordSecret -No description provided
privatehdPidSecret -No description provided
pagerdutyTokenSecret -No description provided
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 tofu-plan-all --source DIR_PATH --stacks string1 --stacks string2 --aws-access-key-id env:MYSECRET --aws-secret-access-key env:MYSECRET --dryrun boolean
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, stacks []string, awsAccessKeyId *dagger.Secret, awsSecretAccessKey *dagger.Secret, dryrun bool) string  {
	return dag.
			Monorepo().
			Tofuplanall(ctx, source, stacks, awsAccessKeyId, awsSecretAccessKey, dryrun)
}
@function
async def example(source: dagger.Directory, stacks: List[str], awsaccesskeyid: dagger.Secret, awssecretaccesskey: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.tofuplanall(source, stacks, awsaccesskeyid, awssecretaccesskey, dryrun)
	)
@func()
async example(source: Directory, stacks: string[], awsAccessKeyId: Secret, awsSecretAccessKey: Secret, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.tofuPlanAll(source, stacks, awsAccessKeyId, awsSecretAccessKey, dryrun)
}

publishNpm() 🔗

Publish an npm package. Set devSuffix for dev releases (–tag dev, version becomes -dev.), leave empty for prod (–tag latest). Set pkgPath to the on-disk path under packages/ (e.g. “homelab/src/helm-types”) when the npm name differs from the directory layout — required so file: workspace deps resolve correctly.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
npmTokenSecret !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
dryrunBoolean !falseNo description provided
tsconfigFile -No description provided
devSuffixString !""No description provided
pkgPathString !""No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 publish-npm --pkg-dir DIR_PATH --pkg string --npm-token env:MYSECRET --dryrun boolean --dev-suffix string --pkg-path string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, pkg string, npmToken *dagger.Secret, dryrun bool, devSuffix string, pkgPath string) string  {
	return dag.
			Monorepo().
			Publishnpm(ctx, pkgDir, pkg, npmToken, dryrun, devSuffix, pkgPath)
}
@function
async def example(pkgdir: dagger.Directory, pkg: str, npmtoken: dagger.Secret, dryrun: bool, devsuffix: str, pkgpath: str) -> str:
	return await (
		dag.monorepo()
		.publishnpm(pkgdir, pkg, npmtoken, dryrun, devsuffix, pkgpath)
	)
@func()
async example(pkgDir: Directory, pkg: string, npmToken: Secret, dryrun: boolean, devSuffix: string, pkgPath: string): Promise<string> {
	return dag
		.monorepo()
		.publishNpm(pkgDir, pkg, npmToken, dryrun, devSuffix, pkgPath)
}

npmPublishAll() 🔗

Publish every npm package in parallel from one pod. Bundle’s children share a devSuffix — pass the build number for dev (per-build) publishes or leave empty for prod (release-please merge) publishes. Run as two separate bundle invocations from the BK side when both modes apply.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
pkgs[String ! ] !-No description provided
pkgPaths[String ! ] !-No description provided
npmTokenSecret !-No description provided
tsconfigFile -No description provided
devSuffixString !""No description provided
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 npm-publish-all --source DIR_PATH --pkgs string1 --pkgs string2 --pkg-paths string1 --pkg-paths string2 --npm-token env:MYSECRET --dev-suffix string --dryrun boolean
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, pkgs []string, pkgPaths []string, npmToken *dagger.Secret, devSuffix string, dryrun bool) string  {
	return dag.
			Monorepo().
			Npmpublishall(ctx, source, pkgs, pkgPaths, npmToken, devSuffix, dryrun)
}
@function
async def example(source: dagger.Directory, pkgs: List[str], pkgpaths: List[str], npmtoken: dagger.Secret, devsuffix: str, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.npmpublishall(source, pkgs, pkgpaths, npmtoken, devsuffix, dryrun)
	)
@func()
async example(source: Directory, pkgs: string[], pkgPaths: string[], npmToken: Secret, devSuffix: string, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.npmPublishAll(source, pkgs, pkgPaths, npmToken, devSuffix, dryrun)
}

deploySite() 🔗

Build and deploy a static site to S3 or R2

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
bucketString !-No description provided
buildCmdString !-No description provided
distSubdirString !-No description provided
targetString !-No description provided
awsAccessKeyIdSecret !-No description provided
awsSecretAccessKeySecret !-No description provided
cloudflareAccountIdString !""No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
buildEnvNames[String ! ] -No description provided
buildEnvValues[Secret ! ] -No description provided
dryrunBoolean !falseNo description provided
tsconfigFile -No description provided
needsPlaywrightBoolean !falseNo description provided
immutablePrefixes[String ! ] -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 deploy-site --pkg-dir DIR_PATH --pkg string --bucket string --build-cmd string --dist-subdir string --target string --aws-access-key-id env:MYSECRET --aws-secret-access-key env:MYSECRET --cloudflare-account-id string --dryrun boolean --needs-playwright boolean
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, pkg string, bucket string, buildCmd string, distSubdir string, target string, awsAccessKeyId *dagger.Secret, awsSecretAccessKey *dagger.Secret, cloudflareAccountId string, dryrun bool, needsPlaywright bool) string  {
	return dag.
			Monorepo().
			Deploysite(ctx, pkgDir, pkg, bucket, buildCmd, distSubdir, target, awsAccessKeyId, awsSecretAccessKey, cloudflareAccountId, dryrun, needsPlaywright)
}
@function
async def example(pkgdir: dagger.Directory, pkg: str, bucket: str, buildcmd: str, distsubdir: str, target: str, awsaccesskeyid: dagger.Secret, awssecretaccesskey: dagger.Secret, cloudflareaccountid: str, dryrun: bool, needsplaywright: bool) -> str:
	return await (
		dag.monorepo()
		.deploysite(pkgdir, pkg, bucket, buildcmd, distsubdir, target, awsaccesskeyid, awssecretaccesskey, cloudflareaccountid, dryrun, needsplaywright)
	)
@func()
async example(pkgDir: Directory, pkg: string, bucket: string, buildCmd: string, distSubdir: string, target: string, awsAccessKeyId: Secret, awsSecretAccessKey: Secret, cloudflareAccountId: string, dryrun: boolean, needsPlaywright: boolean): Promise<string> {
	return dag
		.monorepo()
		.deploySite(pkgDir, pkg, bucket, buildCmd, distSubdir, target, awsAccessKeyId, awsSecretAccessKey, cloudflareAccountId, dryrun, needsPlaywright)
}

deployStaticSite() 🔗

Deploy a pre-built static site directory to S3 (no bun install or build)

Return Type
String !
Arguments
NameTypeDefault ValueDescription
siteDirDirectory !-No description provided
bucketString !-No description provided
targetString !-No description provided
awsAccessKeyIdSecret !-No description provided
awsSecretAccessKeySecret !-No description provided
dryrunBoolean !falseNo description provided
immutablePrefixes[String ! ] -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 deploy-static-site --site-dir DIR_PATH --bucket string --target string --aws-access-key-id env:MYSECRET --aws-secret-access-key env:MYSECRET --dryrun boolean
func (m *MyModule) Example(ctx context.Context, siteDir *dagger.Directory, bucket string, target string, awsAccessKeyId *dagger.Secret, awsSecretAccessKey *dagger.Secret, dryrun bool) string  {
	return dag.
			Monorepo().
			Deploystaticsite(ctx, siteDir, bucket, target, awsAccessKeyId, awsSecretAccessKey, dryrun)
}
@function
async def example(sitedir: dagger.Directory, bucket: str, target: str, awsaccesskeyid: dagger.Secret, awssecretaccesskey: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.deploystaticsite(sitedir, bucket, target, awsaccesskeyid, awssecretaccesskey, dryrun)
	)
@func()
async example(siteDir: Directory, bucket: string, target: string, awsAccessKeyId: Secret, awsSecretAccessKey: Secret, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.deployStaticSite(siteDir, bucket, target, awsAccessKeyId, awsSecretAccessKey, dryrun)
}

argoCdSync() 🔗

Trigger an ArgoCD sync for an application

Return Type
String !
Arguments
NameTypeDefault ValueDescription
appNameString !-No description provided
argoCdTokenSecret !-No description provided
serverUrlString !"https://argocd.sjer.red"No description provided
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 argo-cd-sync --app-name string --argo-cd-token env:MYSECRET --server-url string --dryrun boolean
func (m *MyModule) Example(ctx context.Context, appName string, argoCdToken *dagger.Secret, serverUrl string, dryrun bool) string  {
	return dag.
			Monorepo().
			Argocdsync(ctx, appName, argoCdToken, serverUrl, dryrun)
}
@function
async def example(appname: str, argocdtoken: dagger.Secret, serverurl: str, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.argocdsync(appname, argocdtoken, serverurl, dryrun)
	)
@func()
async example(appName: string, argoCdToken: Secret, serverUrl: string, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.argoCdSync(appName, argoCdToken, serverUrl, dryrun)
}

argoCdHealthWait() 🔗

Wait for an ArgoCD application to become healthy

Return Type
String !
Arguments
NameTypeDefault ValueDescription
appNameString !-No description provided
argoCdTokenSecret !-No description provided
timeoutSecondsInteger !300No description provided
serverUrlString !"https://argocd.sjer.red"No description provided
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 argo-cd-health-wait --app-name string --argo-cd-token env:MYSECRET --timeout-seconds integer --server-url string --dryrun boolean
func (m *MyModule) Example(ctx context.Context, appName string, argoCdToken *dagger.Secret, timeoutSeconds int, serverUrl string, dryrun bool) string  {
	return dag.
			Monorepo().
			Argocdhealthwait(ctx, appName, argoCdToken, timeoutSeconds, serverUrl, dryrun)
}
@function
async def example(appname: str, argocdtoken: dagger.Secret, timeoutseconds: int, serverurl: str, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.argocdhealthwait(appname, argocdtoken, timeoutseconds, serverurl, dryrun)
	)
@func()
async example(appName: string, argoCdToken: Secret, timeoutSeconds: number, serverUrl: string, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.argoCdHealthWait(appName, argoCdToken, timeoutSeconds, serverUrl, dryrun)
}

argoCdSyncAndWait() 🔗

Sync an ArgoCD app and wait for it to become healthy from one pod. Sync failure throws (BK step turns red). Health-wait failure is caught inside the Dagger function so it doesn’t fail the bundle — matching the wave-1 soft_fail: true on the standalone argocd-health step.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
appNameString !-No description provided
argoCdTokenSecret !-No description provided
timeoutSecondsInteger !300No description provided
serverUrlString !"https://argocd.sjer.red"No description provided
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 argo-cd-sync-and-wait --app-name string --argo-cd-token env:MYSECRET --timeout-seconds integer --server-url string --dryrun boolean
func (m *MyModule) Example(ctx context.Context, appName string, argoCdToken *dagger.Secret, timeoutSeconds int, serverUrl string, dryrun bool) string  {
	return dag.
			Monorepo().
			Argocdsyncandwait(ctx, appName, argoCdToken, timeoutSeconds, serverUrl, dryrun)
}
@function
async def example(appname: str, argocdtoken: dagger.Secret, timeoutseconds: int, serverurl: str, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.argocdsyncandwait(appname, argocdtoken, timeoutseconds, serverurl, dryrun)
	)
@func()
async example(appName: string, argoCdToken: Secret, timeoutSeconds: number, serverUrl: string, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.argoCdSyncAndWait(appName, argoCdToken, timeoutSeconds, serverUrl, dryrun)
}

cooklangBuild() 🔗

Build cooklang-for-obsidian plugin and return artifacts (main.js, manifest.json, styles.css)

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 cooklang-build --pkg-dir DIR_PATH
func (m *MyModule) Example(pkgDir *dagger.Directory) *dagger.Directory  {
	return dag.
			Monorepo().
			Cooklangbuild(pkgDir)
}
@function
def example(pkgdir: dagger.Directory) -> dagger.Directory:
	return (
		dag.monorepo()
		.cooklangbuild(pkgdir)
	)
@func()
example(pkgDir: Directory): Directory {
	return dag
		.monorepo()
		.cooklangBuild(pkgDir)
}

cooklangPublish() 🔗

Publish built cooklang artifacts to the plugin repo: compute next patch version from the latest release tag, update manifest, update versions.json only for Obsidian compatibility boundary changes, commit to main, and cut the GitHub release.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
tokenSourceDirectory !-No description provided
pluginRepoString !-No description provided
githubAppIdSecret !-No description provided
githubAppInstallationIdSecret !-No description provided
githubAppPrivateKeySecret !-No description provided
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 cooklang-publish --source DIR_PATH --token-source DIR_PATH --plugin-repo string --github-app-id env:MYSECRET --github-app-installation-id env:MYSECRET --github-app-private-key env:MYSECRET --dryrun boolean
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, tokenSource *dagger.Directory, pluginRepo string, githubAppId *dagger.Secret, githubAppInstallationId *dagger.Secret, githubAppPrivateKey *dagger.Secret, dryrun bool) string  {
	return dag.
			Monorepo().
			Cooklangpublish(ctx, source, tokenSource, pluginRepo, githubAppId, githubAppInstallationId, githubAppPrivateKey, dryrun)
}
@function
async def example(source: dagger.Directory, tokensource: dagger.Directory, pluginrepo: str, githubappid: dagger.Secret, githubappinstallationid: dagger.Secret, githubappprivatekey: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.cooklangpublish(source, tokensource, pluginrepo, githubappid, githubappinstallationid, githubappprivatekey, dryrun)
	)
@func()
async example(source: Directory, tokenSource: Directory, pluginRepo: string, githubAppId: Secret, githubAppInstallationId: Secret, githubAppPrivateKey: Secret, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.cooklangPublish(source, tokenSource, pluginRepo, githubAppId, githubAppInstallationId, githubAppPrivateKey, dryrun)
}

cooklangBuildAndPublish() 🔗

Build cooklang, publish to plugin repo, and open the monorepo commit-back PR — full release pipeline in one call.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
pkgDirDirectory !-No description provided
pluginRepoString !-No description provided
githubAppIdSecret !-No description provided
githubAppInstallationIdSecret !-No description provided
githubAppPrivateKeySecret !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
tsconfigFile -No description provided
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 cooklang-build-and-publish --source DIR_PATH --pkg-dir DIR_PATH --plugin-repo string --github-app-id env:MYSECRET --github-app-installation-id env:MYSECRET --github-app-private-key env:MYSECRET --dryrun boolean
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, pkgDir *dagger.Directory, pluginRepo string, githubAppId *dagger.Secret, githubAppInstallationId *dagger.Secret, githubAppPrivateKey *dagger.Secret, dryrun bool) string  {
	return dag.
			Monorepo().
			Cooklangbuildandpublish(ctx, source, pkgDir, pluginRepo, githubAppId, githubAppInstallationId, githubAppPrivateKey, dryrun)
}
@function
async def example(source: dagger.Directory, pkgdir: dagger.Directory, pluginrepo: str, githubappid: dagger.Secret, githubappinstallationid: dagger.Secret, githubappprivatekey: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.cooklangbuildandpublish(source, pkgdir, pluginrepo, githubappid, githubappinstallationid, githubappprivatekey, dryrun)
	)
@func()
async example(source: Directory, pkgDir: Directory, pluginRepo: string, githubAppId: Secret, githubAppInstallationId: Secret, githubAppPrivateKey: Secret, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.cooklangBuildAndPublish(source, pkgDir, pluginRepo, githubAppId, githubAppInstallationId, githubAppPrivateKey, dryrun)
}

versionCommitBack() 🔗

Update versions.ts with new image digests and create auto-merge PR

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
digestsString !-No description provided
versionString !-No description provided
githubAppIdSecret !-No description provided
githubAppInstallationIdSecret !-No description provided
githubAppPrivateKeySecret !-No description provided
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 version-commit-back --source DIR_PATH --digests string --version string --github-app-id env:MYSECRET --github-app-installation-id env:MYSECRET --github-app-private-key env:MYSECRET --dryrun boolean
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, digests string, version string, githubAppId *dagger.Secret, githubAppInstallationId *dagger.Secret, githubAppPrivateKey *dagger.Secret, dryrun bool) string  {
	return dag.
			Monorepo().
			Versioncommitback(ctx, source, digests, version, githubAppId, githubAppInstallationId, githubAppPrivateKey, dryrun)
}
@function
async def example(source: dagger.Directory, digests: str, version: str, githubappid: dagger.Secret, githubappinstallationid: dagger.Secret, githubappprivatekey: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.versioncommitback(source, digests, version, githubappid, githubappinstallationid, githubappprivatekey, dryrun)
	)
@func()
async example(source: Directory, digests: string, version: string, githubAppId: Secret, githubAppInstallationId: Secret, githubAppPrivateKey: Secret, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.versionCommitBack(source, digests, version, githubAppId, githubAppInstallationId, githubAppPrivateKey, dryrun)
}

ciBaseVersionCommitBack() 🔗

Update the CI base image version pointer and create auto-merge PR

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
versionString !-No description provided
githubAppIdSecret !-No description provided
githubAppInstallationIdSecret !-No description provided
githubAppPrivateKeySecret !-No description provided
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 ci-base-version-commit-back --source DIR_PATH --version string --github-app-id env:MYSECRET --github-app-installation-id env:MYSECRET --github-app-private-key env:MYSECRET --dryrun boolean
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, version string, githubAppId *dagger.Secret, githubAppInstallationId *dagger.Secret, githubAppPrivateKey *dagger.Secret, dryrun bool) string  {
	return dag.
			Monorepo().
			Cibaseversioncommitback(ctx, source, version, githubAppId, githubAppInstallationId, githubAppPrivateKey, dryrun)
}
@function
async def example(source: dagger.Directory, version: str, githubappid: dagger.Secret, githubappinstallationid: dagger.Secret, githubappprivatekey: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.cibaseversioncommitback(source, version, githubappid, githubappinstallationid, githubappprivatekey, dryrun)
	)
@func()
async example(source: Directory, version: string, githubAppId: Secret, githubAppInstallationId: Secret, githubAppPrivateKey: Secret, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.ciBaseVersionCommitBack(source, version, githubAppId, githubAppInstallationId, githubAppPrivateKey, dryrun)
}

releasePlease() 🔗

Run release-please to create release PRs and GitHub releases, then refine the auto-generated CHANGELOGs via a Claude agent

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
githubAppIdSecret !-No description provided
githubAppInstallationIdSecret !-No description provided
githubAppPrivateKeySecret !-No description provided
claudeOauthTokenSecret !-No description provided
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 release-please --source DIR_PATH --github-app-id env:MYSECRET --github-app-installation-id env:MYSECRET --github-app-private-key env:MYSECRET --claude-oauth-token env:MYSECRET --dryrun boolean
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, githubAppId *dagger.Secret, githubAppInstallationId *dagger.Secret, githubAppPrivateKey *dagger.Secret, claudeOauthToken *dagger.Secret, dryrun bool) string  {
	return dag.
			Monorepo().
			Releaseplease(ctx, source, githubAppId, githubAppInstallationId, githubAppPrivateKey, claudeOauthToken, dryrun)
}
@function
async def example(source: dagger.Directory, githubappid: dagger.Secret, githubappinstallationid: dagger.Secret, githubappprivatekey: dagger.Secret, claudeoauthtoken: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.releaseplease(source, githubappid, githubappinstallationid, githubappprivatekey, claudeoauthtoken, dryrun)
	)
@func()
async example(source: Directory, githubAppId: Secret, githubAppInstallationId: Secret, githubAppPrivateKey: Secret, claudeOauthToken: Secret, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.releasePlease(source, githubAppId, githubAppInstallationId, githubAppPrivateKey, claudeOauthToken, dryrun)
}

cooklangVersionCommitBack() 🔗

Commit-back the cooklang plugin version and any compatibility boundary versions.json update to the monorepo source after a successful publish.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
versionString !-No description provided
minAppVersionString !-No description provided
githubAppIdSecret !-No description provided
githubAppInstallationIdSecret !-No description provided
githubAppPrivateKeySecret !-No description provided
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 cooklang-version-commit-back --source DIR_PATH --version string --min-app-version string --github-app-id env:MYSECRET --github-app-installation-id env:MYSECRET --github-app-private-key env:MYSECRET --dryrun boolean
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, version string, minAppVersion string, githubAppId *dagger.Secret, githubAppInstallationId *dagger.Secret, githubAppPrivateKey *dagger.Secret, dryrun bool) string  {
	return dag.
			Monorepo().
			Cooklangversioncommitback(ctx, source, version, minAppVersion, githubAppId, githubAppInstallationId, githubAppPrivateKey, dryrun)
}
@function
async def example(source: dagger.Directory, version: str, minappversion: str, githubappid: dagger.Secret, githubappinstallationid: dagger.Secret, githubappprivatekey: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.cooklangversioncommitback(source, version, minappversion, githubappid, githubappinstallationid, githubappprivatekey, dryrun)
	)
@func()
async example(source: Directory, version: string, minAppVersion: string, githubAppId: Secret, githubAppInstallationId: Secret, githubAppPrivateKey: Secret, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.cooklangVersionCommitBack(source, version, minAppVersion, githubAppId, githubAppInstallationId, githubAppPrivateKey, dryrun)
}

caddyfileValidate() 🔗

Generate and validate the Caddyfile for S3 static sites

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 caddyfile-validate --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Caddyfilevalidate(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.caddyfilevalidate(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.caddyfileValidate(source)
}

prettier() 🔗

Prettier formatting check across the entire monorepo.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 prettier --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Prettier(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.prettier(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.prettier(source)
}

markdownlint() 🔗

Markdownlint via the root bun run markdownlint script.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 markdownlint --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Markdownlint(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.markdownlint(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.markdownlint(source)
}

shellcheck() 🔗

Shellcheck against every *.sh outside archive/node_modules/Pods/target.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 shellcheck --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Shellcheck(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.shellcheck(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.shellcheck(source)
}

qualityRatchet() 🔗

Quality ratchet: enforce per-rule suppression counts don’t exceed baseline.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 quality-ratchet --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Qualityratchet(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.qualityratchet(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.qualityRatchet(source)
}

complianceCheck() 🔗

Compliance check: every package has the required scripts in its package.json.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 compliance-check --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Compliancecheck(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.compliancecheck(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.complianceCheck(source)
}

knipCheck() 🔗

Knip dead-code detection across the monorepo.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 knip-check --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Knipcheck(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.knipcheck(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.knipCheck(source)
}

gitleaksCheck() 🔗

Gitleaks scan for secrets in the working tree.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 gitleaks-check --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Gitleakscheck(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.gitleakscheck(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.gitleaksCheck(source)
}

suppressionCheck() 🔗

Suppression check: any rule’s suppression count vs baseline.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 suppression-check --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Suppressioncheck(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.suppressioncheck(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.suppressionCheck(source)
}

trivyScan() 🔗

Trivy filesystem CVE scan (HIGH + CRITICAL).

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 trivy-scan --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Trivyscan(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.trivyscan(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.trivyScan(source)
}

daggerHygiene() 🔗

Grep .dagger/, scripts/ci/, .buildkite/scripts/ for banned patterns.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 dagger-hygiene --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Daggerhygiene(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.daggerhygiene(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.daggerHygiene(source)
}

tunnelDnsCoverage() 🔗

Verify every cdk8s TunnelBinding has a matching cloudflare DNS record.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 tunnel-dns-coverage --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Tunneldnscoverage(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.tunneldnscoverage(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.tunnelDnsCoverage(source)
}

talosSchematicSync() 🔗

Verify the pinned Talos installer matches what image.yaml produces.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 talos-schematic-sync --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Talosschematicsync(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.talosschematicsync(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.talosSchematicSync(source)
}

reactVersionSync() 🔗

Verify react/react-dom (+

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 react-version-sync --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Reactversionsync(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.reactversionsync(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.reactVersionSync(source)
}

semgrepScan() 🔗

Semgrep auto-config scan against the repo.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 semgrep-scan --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Semgrepscan(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.semgrepscan(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.semgrepScan(source)
}

lockfileCheck() 🔗

Lockfile check: bun install --frozen-lockfile against the root lock.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 lockfile-check --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Lockfilecheck(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.lockfilecheck(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.lockfileCheck(source)
}

bunLockDriftCheck() 🔗

Per-package bun.lock drift check. seeds is a comma-separated list of directly-changed top-level workspace dirs (e.g. “birmel,llm-observability”). The script expands the reverse file:-dep closure across nested workspaces and runs bun install --frozen-lockfile --dry-run in each package in the closure. This catches the PR #1213 scenario where a bump to llm-observability should also re-check dpp’s lockfile via its nested file: edge.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
seedsString !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 bun-lock-drift-check --source DIR_PATH --seeds string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, seeds string) string  {
	return dag.
			Monorepo().
			Bunlockdriftcheck(ctx, source, seeds)
}
@function
async def example(source: dagger.Directory, seeds: str) -> str:
	return await (
		dag.monorepo()
		.bunlockdriftcheck(source, seeds)
	)
@func()
async example(source: Directory, seeds: string): Promise<string> {
	return dag
		.monorepo()
		.bunLockDriftCheck(source, seeds)
}

envVarNames() 🔗

Env-var naming convention check across staged-style file types.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 env-var-names --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Envvarnames(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.envvarnames(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.envVarNames(source)
}

lineEndingsCheck() 🔗

Verify every tracked file’s line endings match .gitattributes.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 line-endings-check --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Lineendingscheck(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.lineendingscheck(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.lineEndingsCheck(source)
}

migrationGuard() 🔗

Guard against silent package-exclusion drift in the catalog.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 migration-guard --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Migrationguard(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.migrationguard(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.migrationGuard(source)
}

checkTodos() 🔗

Enforce the source-marker → docs invariant for TODO/FIXME/XXX markers.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 check-todos --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Checktodos(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.checktodos(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.checkTodos(source)
}

scoutTestTemplateCheck() 🔗

Verify Scout’s committed SQLite test template matches migrations + seeds.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 scout-test-template-check --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Scouttesttemplatecheck(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.scouttesttemplatecheck(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.scoutTestTemplateCheck(source)
}

mergeConflictCheck() 🔗

Detect unresolved merge-conflict markers in source files.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 merge-conflict-check --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Mergeconflictcheck(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.mergeconflictcheck(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.mergeConflictCheck(source)
}

largeFileCheck() 🔗

Detect files >5 MB in the working tree (honors .largeignore).

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 large-file-check --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Largefilecheck(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.largefilecheck(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.largeFileCheck(source)
}

tasksForObsidianIosNativeDeps() 🔗

iOS native-deps check for packages/tasks-for-obsidian.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 tasks-for-obsidian-ios-native-deps --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Tasksforobsidianiosnativedeps(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.tasksforobsidianiosnativedeps(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.tasksForObsidianIosNativeDeps(source)
}

qualityBundle() 🔗

Quality bundle: 15 blocking source-only checks run in parallel from one BK pod via Promise.all on sibling containers. Replaces 15 separate BK steps. See {@link qualityBundleHelper} for the child list and the separately-emitted exceptions.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 quality-bundle --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Qualitybundle(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.qualitybundle(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.qualityBundle(source)
}

softFailBundle() 🔗

Soft-fail bundle: dagger-hygiene + large-file-check in parallel. BK step carries soft_fail: true; the bundle Dagger function still throws on a real child failure (so retries don’t loop forever).

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 soft-fail-bundle --source DIR_PATH
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory) string  {
	return dag.
			Monorepo().
			Softfailbundle(ctx, source)
}
@function
async def example(source: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.softfailbundle(source)
	)
@func()
async example(source: Directory): Promise<string> {
	return dag
		.monorepo()
		.softFailBundle(source)
}

smokeTest() 🔗

Start a container and verify its health endpoint responds

Return Type
String !
Arguments
NameTypeDefault ValueDescription
imageContainer !-No description provided
portInteger !3000No description provided
healthPathString !"/"No description provided
timeoutSecondsInteger !30No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 smoke-test --image IMAGE:TAG --port integer --health-path string --timeout-seconds integer
func (m *MyModule) Example(ctx context.Context, image *dagger.Container, port int, healthPath string, timeoutSeconds int) string  {
	return dag.
			Monorepo().
			Smoketest(ctx, image, port, healthPath, timeoutSeconds)
}
@function
async def example(image: dagger.Container, port: int, healthpath: str, timeoutseconds: int) -> str:
	return await (
		dag.monorepo()
		.smoketest(image, port, healthpath, timeoutseconds)
	)
@func()
async example(image: Container, port: number, healthPath: string, timeoutSeconds: number): Promise<string> {
	return dag
		.monorepo()
		.smokeTest(image, port, healthPath, timeoutSeconds)
}

smokeTestScoutForLol() 🔗

Smoke test scout-for-lol: build production image, verify config, HTTP server, expected Discord auth failure

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 smoke-test-scout-for-lol --pkg-dir DIR_PATH
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory) string  {
	return dag.
			Monorepo().
			Smoketestscoutforlol(ctx, pkgDir)
}
@function
async def example(pkgdir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.smoketestscoutforlol(pkgdir)
	)
@func()
async example(pkgDir: Directory): Promise<string> {
	return dag
		.monorepo()
		.smokeTestScoutForLol(pkgDir)
}

smokeTestBirmel() 🔗

Smoke test birmel: build production image, verify config, Discord login attempt, expected auth failure

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 smoke-test-birmel --pkg-dir DIR_PATH --pkg string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, pkg string) string  {
	return dag.
			Monorepo().
			Smoketestbirmel(ctx, pkgDir, pkg)
}
@function
async def example(pkgdir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.smoketestbirmel(pkgdir, pkg)
	)
@func()
async example(pkgDir: Directory, pkg: string): Promise<string> {
	return dag
		.monorepo()
		.smokeTestBirmel(pkgDir, pkg)
}

smokeTestStarlightKarmaBot() 🔗

Smoke test starlight-karma-bot: build production image, verify config, server start, expected auth failure

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 smoke-test-starlight-karma-bot --pkg-dir DIR_PATH --pkg string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, pkg string) string  {
	return dag.
			Monorepo().
			Smoketeststarlightkarmabot(ctx, pkgDir, pkg)
}
@function
async def example(pkgdir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.smoketeststarlightkarmabot(pkgdir, pkg)
	)
@func()
async example(pkgDir: Directory, pkg: string): Promise<string> {
	return dag
		.monorepo()
		.smokeTestStarlightKarmaBot(pkgDir, pkg)
}

smokeTestTasknotesServer() 🔗

Smoke test tasknotes-server: build production image, verify server starts and listens

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
pkgString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 smoke-test-tasknotes-server --pkg-dir DIR_PATH --pkg string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, pkg string) string  {
	return dag.
			Monorepo().
			Smoketesttasknotesserver(ctx, pkgDir, pkg)
}
@function
async def example(pkgdir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.smoketesttasknotesserver(pkgdir, pkg)
	)
@func()
async example(pkgDir: Directory, pkg: string): Promise<string> {
	return dag
		.monorepo()
		.smokeTestTasknotesServer(pkgDir, pkg)
}

smokeTestCaddyS3Proxy() 🔗

Smoke test caddy-s3proxy: verifies custom Caddy binary works

Return Type
String !
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 smoke-test-caddy-s-3-proxy
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			Monorepo().
			Smoketestcaddys3proxy(ctx)
}
@function
async def example() -> str:
	return await (
		dag.monorepo()
		.smoketestcaddys3proxy()
	)
@func()
async example(): Promise<string> {
	return dag
		.monorepo()
		.smokeTestCaddyS3Proxy()
}

smokeTestObsidianHeadless() 🔗

Smoke test obsidian-headless: verifies Bun + obsidian CLI installed

Return Type
String !
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 smoke-test-obsidian-headless
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			Monorepo().
			Smoketestobsidianheadless(ctx)
}
@function
async def example() -> str:
	return await (
		dag.monorepo()
		.smoketestobsidianheadless()
	)
@func()
async example(): Promise<string> {
	return dag
		.monorepo()
		.smokeTestObsidianHeadless()
}

smokeTestMcpGateway() 🔗

Smoke test mcp-gateway: verifies Node runtime + prebuilt edstem-mcp entrypoint

Return Type
String !
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 smoke-test-mcp-gateway
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			Monorepo().
			Smoketestmcpgateway(ctx)
}
@function
async def example() -> str:
	return await (
		dag.monorepo()
		.smoketestmcpgateway()
	)
@func()
async example(): Promise<string> {
	return dag
		.monorepo()
		.smokeTestMcpGateway()
}

smokeTestDiscordPlaysPokemon() 🔗

Smoke test discord-plays-pokemon: build production image, boots app, expects Discord auth failure

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 smoke-test-discord-plays-pokemon --pkg-dir DIR_PATH
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory) string  {
	return dag.
			Monorepo().
			Smoketestdiscordplayspokemon(ctx, pkgDir)
}
@function
async def example(pkgdir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.smoketestdiscordplayspokemon(pkgdir)
	)
@func()
async example(pkgDir: Directory): Promise<string> {
	return dag
		.monorepo()
		.smokeTestDiscordPlaysPokemon(pkgDir)
}

smokeTestStreambot() 🔗

Smoke test streambot: build image, verify ffmpeg + yt-dlp, boot machine, expect auth failure

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 smoke-test-streambot --pkg-dir DIR_PATH
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory) string  {
	return dag.
			Monorepo().
			Smoketeststreambot(ctx, pkgDir)
}
@function
async def example(pkgdir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.smoketeststreambot(pkgdir)
	)
@func()
async example(pkgDir: Directory): Promise<string> {
	return dag
		.monorepo()
		.smokeTestStreambot(pkgDir)
}

e2Estreambot() 🔗

E2E streambot with real creds: streams a generated clip into the voice channel (manual run).

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
botTokenSecret !-No description provided
userTokenSecret !-No description provided
guildIdString !-No description provided
videoChannelIdString !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 e-2-e-streambot --pkg-dir DIR_PATH --bot-token env:MYSECRET --user-token env:MYSECRET --guild-id string --video-channel-id string
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory, botToken *dagger.Secret, userToken *dagger.Secret, guildId string, videoChannelId string) string  {
	return dag.
			Monorepo().
			E2estreambot(ctx, pkgDir, botToken, userToken, guildId, videoChannelId)
}
@function
async def example(pkgdir: dagger.Directory, bottoken: dagger.Secret, usertoken: dagger.Secret, guildid: str, videochannelid: str) -> str:
	return await (
		dag.monorepo()
		.e2estreambot(pkgdir, bottoken, usertoken, guildid, videochannelid)
	)
@func()
async example(pkgDir: Directory, botToken: Secret, userToken: Secret, guildId: string, videoChannelId: string): Promise<string> {
	return dag
		.monorepo()
		.e2EStreambot(pkgDir, botToken, userToken, guildId, videoChannelId)
}

smokeTestDiscordPlaysMarioKart() 🔗

Smoke test discord-plays-mario-kart: build production image (incl. wasm stage), boots app, expects Discord auth failure

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 smoke-test-discord-plays-mario-kart --pkg-dir DIR_PATH
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory) string  {
	return dag.
			Monorepo().
			Smoketestdiscordplaysmariokart(ctx, pkgDir)
}
@function
async def example(pkgdir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.smoketestdiscordplaysmariokart(pkgdir)
	)
@func()
async example(pkgDir: Directory): Promise<string> {
	return dag
		.monorepo()
		.smokeTestDiscordPlaysMarioKart(pkgDir)
}

smokeTestTrmnlDashboard() 🔗

Smoke test trmnl-dashboard: builds image, boots Bun.serve, killed at timeout.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
pkgDirDirectory !-No description provided
depNames[String ! ] -No description provided
depDirs[Directory ! ] -No description provided
Example
dagger -m github.com/shepherdjerred/monorepo@126a7fc6dbf5caf94e0545596f1cfcd1face7493 call \
 smoke-test-trmnl-dashboard --pkg-dir DIR_PATH
func (m *MyModule) Example(ctx context.Context, pkgDir *dagger.Directory) string  {
	return dag.
			Monorepo().
			Smoketesttrmnldashboard(ctx, pkgDir)
}
@function
async def example(pkgdir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.smoketesttrmnldashboard(pkgdir)
	)
@func()
async example(pkgDir: Directory): Promise<string> {
	return dag
		.monorepo()
		.smokeTestTrmnlDashboard(pkgDir)
}