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@f55d3f748d4346fabf47511e319bcf351ff1e672

Entrypoint

Return Type
Monorepo
Example
dagger -m github.com/shepherdjerred/monorepo@f55d3f748d4346fabf47511e319bcf351ff1e672 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.lint(pkg_dir, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.typecheck(pkg_dir, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str, needs_helm: bool) -> str:
	return await (
		dag.monorepo()
		.test(pkg_dir, pkg, needs_helm)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str) -> dagger.Container:
	return (
		dag.monorepo()
		.build_package(pkg_dir, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.generate_and_lint(pkg_dir, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.generate_and_typecheck(pkg_dir, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.generate_and_typecheck_with_secrets(pkg_dir, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.generate_and_test(pkg_dir, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str, needs_helm: bool, include_astro_check: bool, include_astro_build: bool, include_build: bool, skip_test: bool) -> str:
	return await (
		dag.monorepo()
		.lint_typecheck_test(pkg_dir, pkg, needs_helm, include_astro_check, include_astro_build, include_build, skip_test)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.generate_and_lint_typecheck_test(pkg_dir, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.astro_check(pkg_dir, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str) -> dagger.Directory:
	return (
		dag.monorepo()
		.astro_build(pkg_dir, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str) -> dagger.Directory:
	return (
		dag.monorepo()
		.vite_build(pkg_dir, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str, version: str, git_sha: str, use_prisma: bool, install_editor_clis: bool) -> dagger.Container:
	return (
		dag.monorepo()
		.build_image(pkg_dir, pkg, version, git_sha, use_prisma, install_editor_clis)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str, tags: List[str], registry_username: str, registry_password: dagger.Secret, version: str, git_sha: str, use_prisma: bool, install_editor_clis: bool) -> str:
	return await (
		dag.monorepo()
		.push_image(pkg_dir, pkg, tags, registry_username, registry_password, version, git_sha, use_prisma, install_editor_clis)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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, git_sha: str) -> dagger.Container:
	return (
		dag.monorepo()
		.build_caddy_s3_proxy_image(version, git_sha)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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, git_sha: str) -> dagger.Container:
	return (
		dag.monorepo()
		.build_obsidian_headless_image(version, git_sha)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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], registry_username: str, registry_password: dagger.Secret, version: str, git_sha: str) -> str:
	return await (
		dag.monorepo()
		.push_caddy_s3_proxy_image(tags, registry_username, registry_password, version, git_sha)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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], registry_username: str, registry_password: dagger.Secret, version: str, git_sha: str) -> str:
	return await (
		dag.monorepo()
		.push_obsidian_headless_image(tags, registry_username, registry_password, version, git_sha)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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, git_sha: str) -> dagger.Container:
	return (
		dag.monorepo()
		.build_mcp_gateway_image(version, git_sha)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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], registry_username: str, registry_password: dagger.Secret, version: str, git_sha: str) -> str:
	return await (
		dag.monorepo()
		.push_mcp_gateway_image(tags, registry_username, registry_password, version, git_sha)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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, git_sha: str) -> dagger.Container:
	return (
		dag.monorepo()
		.build_redlib_image(version, git_sha)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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], registry_username: str, registry_password: dagger.Secret, version: str, git_sha: str) -> str:
	return await (
		dag.monorepo()
		.push_redlib_image(tags, registry_username, registry_password, version, git_sha)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, version: str, git_sha: str) -> dagger.Container:
	return (
		dag.monorepo()
		.build_scout_image(pkg_dir, version, git_sha)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, tags: List[str], registry_username: str, registry_password: dagger.Secret, version: str, git_sha: str) -> str:
	return await (
		dag.monorepo()
		.push_scout_image(pkg_dir, tags, registry_username, registry_password, version, git_sha)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, version: str, git_sha: str) -> dagger.Container:
	return (
		dag.monorepo()
		.build_discord_plays_pokemon_image(pkg_dir, version, git_sha)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, tags: List[str], registry_username: str, registry_password: dagger.Secret, version: str, git_sha: str) -> str:
	return await (
		dag.monorepo()
		.push_discord_plays_pokemon_image(pkg_dir, tags, registry_username, registry_password, version, git_sha)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, version: str, git_sha: str) -> dagger.Container:
	return (
		dag.monorepo()
		.build_discord_plays_mario_kart_image(pkg_dir, version, git_sha)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, tags: List[str], registry_username: str, registry_password: dagger.Secret, version: str, git_sha: str) -> str:
	return await (
		dag.monorepo()
		.push_discord_plays_mario_kart_image(pkg_dir, tags, registry_username, registry_password, version, git_sha)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, version: str, git_sha: str) -> dagger.Container:
	return (
		dag.monorepo()
		.build_temporal_worker_image(pkg_dir, version, git_sha)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, tags: List[str], registry_username: str, registry_password: dagger.Secret, version: str, git_sha: str) -> str:
	return await (
		dag.monorepo()
		.push_temporal_worker_image(pkg_dir, tags, registry_username, registry_password, version, git_sha)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, version: str, git_sha: str) -> dagger.Container:
	return (
		dag.monorepo()
		.build_trmnl_dashboard_image(pkg_dir, version, git_sha)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, tags: List[str], registry_username: str, registry_password: dagger.Secret, version: str, git_sha: str) -> str:
	return await (
		dag.monorepo()
		.push_trmnl_dashboard_image(pkg_dir, tags, registry_username, registry_password, version, git_sha)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.build_ci_base_image(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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], registry_username: str, registry_password: dagger.Secret) -> str:
	return await (
		dag.monorepo()
		.push_ci_base_image(context, tags, registry_username, registry_password)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.go_build(pkg_dir)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.go_test(pkg_dir)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.go_lint(pkg_dir)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.go_lint_test_build(pkg_dir)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 call \
 homelab-synth --pkg-dir DIR_PATH
func (m *MyModule) Example(pkgDir *dagger.Directory) *dagger.Directory  {
	return dag.
			Monorepo().
			HomelabSynth(pkgDir)
}
@function
def example(pkg_dir: dagger.Directory) -> dagger.Directory:
	return (
		dag.monorepo()
		.homelab_synth(pkg_dir)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.helm_types_drift_check(pkg_dir)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.homelab_one_password_lint(pkg_dir)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.homelab_cdk8_s_bundle(pkg_dir)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.swift_lint(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.playwright_test(pkg_dir, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str) -> dagger.Directory:
	return (
		dag.monorepo()
		.playwright_update(pkg_dir, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.ci_all(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.maven_build(pkg_dir)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.maven_test(pkg_dir)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.maven_coverage(pkg_dir)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.latex_build(pkg_dir)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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, cdk8_s_dist: dagger.Directory, chart_name: str, version: str, chart_museum_username: str, chart_museum_password: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.helm_package(source, cdk8_s_dist, chart_name, version, chart_museum_username, chart_museum_password, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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, synth_pkg_dir: dagger.Directory, chart_name: str, version: str, chart_museum_username: str, chart_museum_password: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.helm_synth_and_package(source, synth_pkg_dir, chart_name, version, chart_museum_username, chart_museum_password, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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, synth_pkg_dir: dagger.Directory, chart_names: List[str], version: str, chart_museum_username: str, chart_museum_password: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.helm_push_all(source, synth_pkg_dir, chart_names, version, chart_museum_username, chart_museum_password, 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
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@f55d3f748d4346fabf47511e319bcf351ff1e672 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, aws_access_key_id: dagger.Secret, aws_secret_access_key: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.tofu_apply(source, stack, aws_access_key_id, aws_secret_access_key, 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
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@f55d3f748d4346fabf47511e319bcf351ff1e672 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, aws_access_key_id: dagger.Secret, aws_secret_access_key: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.tofu_plan(source, stack, aws_access_key_id, aws_secret_access_key, 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
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@f55d3f748d4346fabf47511e319bcf351ff1e672 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], aws_access_key_id: dagger.Secret, aws_secret_access_key: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.tofu_apply_all(source, stacks, aws_access_key_id, aws_secret_access_key, 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
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@f55d3f748d4346fabf47511e319bcf351ff1e672 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], aws_access_key_id: dagger.Secret, aws_secret_access_key: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.tofu_plan_all(source, stacks, aws_access_key_id, aws_secret_access_key, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str, npm_token: dagger.Secret, dryrun: bool, dev_suffix: str, pkg_path: str) -> str:
	return await (
		dag.monorepo()
		.publish_npm(pkg_dir, pkg, npm_token, dryrun, dev_suffix, pkg_path)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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], pkg_paths: List[str], npm_token: dagger.Secret, dev_suffix: str, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.npm_publish_all(source, pkgs, pkg_paths, npm_token, dev_suffix, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str, bucket: str, build_cmd: str, dist_subdir: str, target: str, aws_access_key_id: dagger.Secret, aws_secret_access_key: dagger.Secret, cloudflare_account_id: str, dryrun: bool, needs_playwright: bool) -> str:
	return await (
		dag.monorepo()
		.deploy_site(pkg_dir, pkg, bucket, build_cmd, dist_subdir, target, aws_access_key_id, aws_secret_access_key, cloudflare_account_id, dryrun, needs_playwright)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(site_dir: dagger.Directory, bucket: str, target: str, aws_access_key_id: dagger.Secret, aws_secret_access_key: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.deploy_static_site(site_dir, bucket, target, aws_access_key_id, aws_secret_access_key, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(app_name: str, argo_cd_token: dagger.Secret, server_url: str, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.argo_cd_sync(app_name, argo_cd_token, server_url, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(app_name: str, argo_cd_token: dagger.Secret, timeout_seconds: int, server_url: str, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.argo_cd_health_wait(app_name, argo_cd_token, timeout_seconds, server_url, 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)
}

argoCdWaitForResourceDeletion() 🔗

Poll the ArgoCD resource API until the specified resource returns 404 (i.e., fully deleted including finalizer completion). Fail if it is still present after timeoutSeconds. Use between an ArgoCD sync step that prunes a resource with a finalizer and any downstream step that depends on the resource being gone.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
appNameString !-No description provided
groupString !-No description provided
versionString !-No description provided
kindString !-No description provided
namespaceString !-No description provided
resourceNameString !-No description provided
argoCdTokenSecret !-No description provided
timeoutSecondsInteger !120No description provided
serverUrlString !"https://argocd.sjer.red"No description provided
dryrunBoolean !falseNo description provided
Example
dagger -m github.com/shepherdjerred/monorepo@f55d3f748d4346fabf47511e319bcf351ff1e672 call \
 argo-cd-wait-for-resource-deletion --app-name string --group string --version string --kind string --namespace string --resource-name string --argo-cd-token env:MYSECRET --timeout-seconds integer --server-url string --dryrun boolean
func (m *MyModule) Example(ctx context.Context, appName string, group string, version string, kind string, namespace string, resourceName string, argoCdToken *dagger.Secret, timeoutSeconds int, serverUrl string, dryrun bool) string  {
	return dag.
			Monorepo().
			ArgoCdWaitForResourceDeletion(ctx, appName, group, version, kind, namespace, resourceName, argoCdToken, timeoutSeconds, serverUrl, dryrun)
}
@function
async def example(app_name: str, group: str, version: str, kind: str, namespace: str, resource_name: str, argo_cd_token: dagger.Secret, timeout_seconds: int, server_url: str, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.argo_cd_wait_for_resource_deletion(app_name, group, version, kind, namespace, resource_name, argo_cd_token, timeout_seconds, server_url, dryrun)
	)
@func()
async example(appName: string, group: string, version: string, kind: string, namespace: string, resourceName: string, argoCdToken: Secret, timeoutSeconds: number, serverUrl: string, dryrun: boolean): Promise<string> {
	return dag
		.monorepo()
		.argoCdWaitForResourceDeletion(appName, group, version, kind, namespace, resourceName, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(app_name: str, argo_cd_token: dagger.Secret, timeout_seconds: int, server_url: str, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.argo_cd_sync_and_wait(app_name, argo_cd_token, timeout_seconds, server_url, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 call \
 cooklang-build --pkg-dir DIR_PATH
func (m *MyModule) Example(pkgDir *dagger.Directory) *dagger.Directory  {
	return dag.
			Monorepo().
			CooklangBuild(pkgDir)
}
@function
def example(pkg_dir: dagger.Directory) -> dagger.Directory:
	return (
		dag.monorepo()
		.cooklang_build(pkg_dir)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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, token_source: dagger.Directory, plugin_repo: str, github_app_id: dagger.Secret, github_app_installation_id: dagger.Secret, github_app_private_key: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.cooklang_publish(source, token_source, plugin_repo, github_app_id, github_app_installation_id, github_app_private_key, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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, pkg_dir: dagger.Directory, plugin_repo: str, github_app_id: dagger.Secret, github_app_installation_id: dagger.Secret, github_app_private_key: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.cooklang_build_and_publish(source, pkg_dir, plugin_repo, github_app_id, github_app_installation_id, github_app_private_key, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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, github_app_id: dagger.Secret, github_app_installation_id: dagger.Secret, github_app_private_key: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.version_commit_back(source, digests, version, github_app_id, github_app_installation_id, github_app_private_key, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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, github_app_id: dagger.Secret, github_app_installation_id: dagger.Secret, github_app_private_key: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.ci_base_version_commit_back(source, version, github_app_id, github_app_installation_id, github_app_private_key, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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, github_app_id: dagger.Secret, github_app_installation_id: dagger.Secret, github_app_private_key: dagger.Secret, claude_oauth_token: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.release_please(source, github_app_id, github_app_installation_id, github_app_private_key, claude_oauth_token, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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, min_app_version: str, github_app_id: dagger.Secret, github_app_installation_id: dagger.Secret, github_app_private_key: dagger.Secret, dryrun: bool) -> str:
	return await (
		dag.monorepo()
		.cooklang_version_commit_back(source, version, min_app_version, github_app_id, github_app_installation_id, github_app_private_key, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.caddyfile_validate(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.quality_ratchet(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.compliance_check(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.knip_check(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.gitleaks_check(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.suppression_check(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.trivy_scan(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.dagger_hygiene(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.tunnel_dns_coverage(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.talos_schematic_sync(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.react_version_sync(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.semgrep_scan(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.lockfile_check(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.bun_lock_drift_check(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.env_var_names(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.line_endings_check(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.migration_guard(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.check_todos(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.scout_test_template_check(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.merge_conflict_check(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.large_file_check(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.tasks_for_obsidian_ios_native_deps(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.quality_bundle(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.soft_fail_bundle(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@f55d3f748d4346fabf47511e319bcf351ff1e672 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, health_path: str, timeout_seconds: int) -> str:
	return await (
		dag.monorepo()
		.smoke_test(image, port, health_path, timeout_seconds)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.smoke_test_scout_for_lol(pkg_dir)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.smoke_test_birmel(pkg_dir, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.smoke_test_starlight_karma_bot(pkg_dir, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, pkg: str) -> str:
	return await (
		dag.monorepo()
		.smoke_test_tasknotes_server(pkg_dir, 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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.smoke_test_caddy_s3_proxy()
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.smoke_test_obsidian_headless()
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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()
		.smoke_test_mcp_gateway()
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.smoke_test_discord_plays_pokemon(pkg_dir)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.smoke_test_streambot(pkg_dir)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory, bot_token: dagger.Secret, user_token: dagger.Secret, guild_id: str, video_channel_id: str) -> str:
	return await (
		dag.monorepo()
		.e2_e_streambot(pkg_dir, bot_token, user_token, guild_id, video_channel_id)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.smoke_test_discord_plays_mario_kart(pkg_dir)
	)
@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@f55d3f748d4346fabf47511e319bcf351ff1e672 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(pkg_dir: dagger.Directory) -> str:
	return await (
		dag.monorepo()
		.smoke_test_trmnl_dashboard(pkg_dir)
	)
@func()
async example(pkgDir: Directory): Promise<string> {
	return dag
		.monorepo()
		.smokeTestTrmnlDashboard(pkgDir)
}