angie
Angie — AI-powered Angular development agent with MCP integration.
Installation
dagger install github.com/telchak/daggerverse/angie@v0.1.0Entrypoint
Return Type
Angie !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory | - | Angular project source directory |
| nodeVersion | String ! | "22" | Node.js version for the Angular CLI MCP server container |
| selfImprove | String ! | "off" | Self-improvement mode: 'off' (default), 'write' (update context file), 'commit' (update + git commit) |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve stringfunc (m *MyModule) Example(nodeVersion string, selfImprove string) *dagger.Angie {
return dag.
Angie(nodeVersion, selfImprove)
}@function
def example(node_version: str, self_improve: str) -> dagger.Angie:
return (
dag.angie(node_version, self_improve)
)@func()
example(nodeVersion: string, selfImprove: string): Angie {
return dag
.angie(nodeVersion, selfImprove)
}Types
Angie 🔗
AI-powered Angular development agent. Uses the Angular CLI MCP server for docs, best practices, build, test, and modernize capabilities. Provides workspace tools for reading, editing, and searching files. Pass your Angular project as --source and use the agent entrypoints (assist, review, write-tests, build, upgrade) to work with your code.
source() 🔗
Angular project source directory
Return Type
Directory ! Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string sourcefunc (m *MyModule) Example(nodeVersion string, selfImprove string) *dagger.Directory {
return dag.
Angie(nodeVersion, selfImprove).
Source()
}@function
def example(node_version: str, self_improve: str) -> dagger.Directory:
return (
dag.angie(node_version, self_improve)
.source()
)@func()
example(nodeVersion: string, selfImprove: string): Directory {
return dag
.angie(nodeVersion, selfImprove)
.source()
}nodeVersion() 🔗
Node.js version for the Angular CLI MCP server container
Return Type
String ! Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string node-versionfunc (m *MyModule) Example(ctx context.Context, nodeVersion string, selfImprove string) string {
return dag.
Angie(nodeVersion, selfImprove).
NodeVersion(ctx)
}@function
async def example(node_version: str, self_improve: str) -> str:
return await (
dag.angie(node_version, self_improve)
.node_version()
)@func()
async example(nodeVersion: string, selfImprove: string): Promise<string> {
return dag
.angie(nodeVersion, selfImprove)
.nodeVersion()
}selfImprove() 🔗
Self-improvement mode: ‘off’ (default), ‘write’ (update context file), ‘commit’ (update + git commit)
Return Type
String ! Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string self-improvefunc (m *MyModule) Example(ctx context.Context, nodeVersion string, selfImprove string) string {
return dag.
Angie(nodeVersion, selfImprove).
SelfImprove(ctx)
}@function
async def example(node_version: str, self_improve: str) -> str:
return await (
dag.angie(node_version, self_improve)
.self_improve()
)@func()
async example(nodeVersion: string, selfImprove: string): Promise<string> {
return dag
.angie(nodeVersion, selfImprove)
.selfImprove()
}githubToken() 🔗
Return Type
Secret Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string github-tokenfunc (m *MyModule) Example(nodeVersion string, selfImprove string) *dagger.Secret {
return dag.
Angie(nodeVersion, selfImprove).
GithubToken()
}@function
def example(node_version: str, self_improve: str) -> dagger.Secret:
return (
dag.angie(node_version, self_improve)
.github_token()
)@func()
example(nodeVersion: string, selfImprove: string): Secret {
return dag
.angie(nodeVersion, selfImprove)
.githubToken()
}prRepo() 🔗
Return Type
String ! Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string pr-repofunc (m *MyModule) Example(ctx context.Context, nodeVersion string, selfImprove string) string {
return dag.
Angie(nodeVersion, selfImprove).
PrRepo(ctx)
}@function
async def example(node_version: str, self_improve: str) -> str:
return await (
dag.angie(node_version, self_improve)
.pr_repo()
)@func()
async example(nodeVersion: string, selfImprove: string): Promise<string> {
return dag
.angie(nodeVersion, selfImprove)
.prRepo()
}prNumber() 🔗
Return Type
Integer ! Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string pr-numberfunc (m *MyModule) Example(ctx context.Context, nodeVersion string, selfImprove string) int {
return dag.
Angie(nodeVersion, selfImprove).
PrNumber(ctx)
}@function
async def example(node_version: str, self_improve: str) -> int:
return await (
dag.angie(node_version, self_improve)
.pr_number()
)@func()
async example(nodeVersion: string, selfImprove: string): Promise<number> {
return dag
.angie(nodeVersion, selfImprove)
.prNumber()
}prCommitSha() 🔗
Return Type
String ! Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string pr-commit-shafunc (m *MyModule) Example(ctx context.Context, nodeVersion string, selfImprove string) string {
return dag.
Angie(nodeVersion, selfImprove).
PrCommitSha(ctx)
}@function
async def example(node_version: str, self_improve: str) -> str:
return await (
dag.angie(node_version, self_improve)
.pr_commit_sha()
)@func()
async example(nodeVersion: string, selfImprove: string): Promise<string> {
return dag
.angie(nodeVersion, selfImprove)
.prCommitSha()
}angularBuild() 🔗
Build an Angular project using ng build.
Returns the dist directory with compiled output.
Return Type
Directory !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | Angular project source directory |
| configuration | String ! | "production" | Build configuration (e.g. 'production', 'development') |
| outputPath | String ! | "" | Custom output path (auto-detected from angular.json if empty) |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string angular-build --source DIR_PATH --configuration string --output-path stringfunc (m *MyModule) Example(nodeVersion string, selfImprove string, source *dagger.Directory, configuration string, outputPath string) *dagger.Directory {
return dag.
Angie(nodeVersion, selfImprove).
AngularBuild(source, configuration, outputPath)
}@function
def example(node_version: str, self_improve: str, source: dagger.Directory, configuration: str, output_path: str) -> dagger.Directory:
return (
dag.angie(node_version, self_improve)
.angular_build(source, configuration, output_path)
)@func()
example(nodeVersion: string, selfImprove: string, source: Directory, configuration: string, outputPath: string): Directory {
return dag
.angie(nodeVersion, selfImprove)
.angularBuild(source, configuration, outputPath)
}angularInstall() 🔗
Install Angular project dependencies.
Returns the source directory with node_modules installed.
Return Type
Directory !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | Angular project source directory |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string angular-install --source DIR_PATHfunc (m *MyModule) Example(nodeVersion string, selfImprove string, source *dagger.Directory) *dagger.Directory {
return dag.
Angie(nodeVersion, selfImprove).
AngularInstall(source)
}@function
def example(node_version: str, self_improve: str, source: dagger.Directory) -> dagger.Directory:
return (
dag.angie(node_version, self_improve)
.angular_install(source)
)@func()
example(nodeVersion: string, selfImprove: string, source: Directory): Directory {
return dag
.angie(nodeVersion, selfImprove)
.angularInstall(source)
}angularLint() 🔗
Lint an Angular project using ng lint.
Returns the lint output.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | Angular project source directory |
| fix | Boolean ! | false | Automatically fix lint errors |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string angular-lint --source DIR_PATH --fix booleanfunc (m *MyModule) Example(ctx context.Context, nodeVersion string, selfImprove string, source *dagger.Directory, fix bool) string {
return dag.
Angie(nodeVersion, selfImprove).
AngularLint(ctx, source, fix)
}@function
async def example(node_version: str, self_improve: str, source: dagger.Directory, fix: bool) -> str:
return await (
dag.angie(node_version, self_improve)
.angular_lint(source, fix)
)@func()
async example(nodeVersion: string, selfImprove: string, source: Directory, fix: boolean): Promise<string> {
return dag
.angie(nodeVersion, selfImprove)
.angularLint(source, fix)
}angularTest() 🔗
Run Angular project tests using ng test.
Returns the test output.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory ! | - | Angular project source directory |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string angular-test --source DIR_PATHfunc (m *MyModule) Example(ctx context.Context, nodeVersion string, selfImprove string, source *dagger.Directory) string {
return dag.
Angie(nodeVersion, selfImprove).
AngularTest(ctx, source)
}@function
async def example(node_version: str, self_improve: str, source: dagger.Directory) -> str:
return await (
dag.angie(node_version, self_improve)
.angular_test(source)
)@func()
async example(nodeVersion: string, selfImprove: string, source: Directory): Promise<string> {
return dag
.angie(nodeVersion, selfImprove)
.angularTest(source)
}assist() 🔗
General Angular coding assistant.
Reads code, answers questions, implements features, refactors, and uses Angular CLI MCP tools for docs and best practices. Returns the modified workspace directory.
Return Type
Directory !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| assignment | String ! | - | What you want the agent to do (e.g. 'Add a login component with reactive forms') |
| source | Directory | null | Override source directory (uses constructor source if omitted) |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string assist --assignment stringfunc (m *MyModule) Example(nodeVersion string, selfImprove string, assignment string) *dagger.Directory {
return dag.
Angie(nodeVersion, selfImprove).
Assist(assignment)
}@function
def example(node_version: str, self_improve: str, assignment: str) -> dagger.Directory:
return (
dag.angie(node_version, self_improve)
.assist(assignment)
)@func()
example(nodeVersion: string, selfImprove: string, assignment: string): Directory {
return dag
.angie(nodeVersion, selfImprove)
.assist(assignment)
}build() 🔗
Build, compile, or lint an Angular project.
Diagnoses build errors and suggests fixes using Angular CLI MCP tools. Returns the workspace directory with any fixes applied.
Return Type
Directory !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory | null | Source directory (uses constructor source if omitted) |
| command | String ! | "" | Build command to run (e.g. 'ng build --configuration production') |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string build --command stringfunc (m *MyModule) Example(nodeVersion string, selfImprove string, command string) *dagger.Directory {
return dag.
Angie(nodeVersion, selfImprove).
Build(command)
}@function
def example(node_version: str, self_improve: str, command: str) -> dagger.Directory:
return (
dag.angie(node_version, self_improve)
.build(command)
)@func()
example(nodeVersion: string, selfImprove: string, command: string): Directory {
return dag
.angie(nodeVersion, selfImprove)
.build(command)
}developGithubIssue() 🔗
Read a GitHub issue, route it to the best agent, and create a Pull Request.
A router LLM reads the issue and selects the optimal function — assist, upgrade, build, or write-tests — then calls it with extracted parameters. Comments on the issue with a summary and a link to the PR. Returns the PR URL.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| githubToken | Secret ! | - | GitHub token with repo and pull-request permissions |
| issueId | Integer ! | - | GitHub issue number |
| repository | String ! | - | GitHub repository URL (e.g. 'https://github.com/owner/repo') |
| source | Directory | null | Override source directory (uses constructor source if omitted) |
| base | String ! | "main" | Base branch for the pull request |
| suggestGithubFixOnFailure | Boolean ! | false | Post a diagnostic comment on the issue if the agent fails |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string develop-github-issue --github-token env:MYSECRET --issue-id integer --repository string --base string --suggest-github-fix-on-failure booleanfunc (m *MyModule) Example(ctx context.Context, nodeVersion string, selfImprove string, githubToken *dagger.Secret, issueId int, repository string, base string, suggestGithubFixOnFailure bool) string {
return dag.
Angie(nodeVersion, selfImprove).
DevelopGithubIssue(ctx, githubToken, issueId, repository, base, suggestGithubFixOnFailure)
}@function
async def example(node_version: str, self_improve: str, github_token: dagger.Secret, issue_id: int, repository: str, base: str, suggest_github_fix_on_failure: bool) -> str:
return await (
dag.angie(node_version, self_improve)
.develop_github_issue(github_token, issue_id, repository, base, suggest_github_fix_on_failure)
)@func()
async example(nodeVersion: string, selfImprove: string, githubToken: Secret, issueId: number, repository: string, base: string, suggestGithubFixOnFailure: boolean): Promise<string> {
return dag
.angie(nodeVersion, selfImprove)
.developGithubIssue(githubToken, issueId, repository, base, suggestGithubFixOnFailure)
}editFile() 🔗
Edit a file by replacing a string. The old_string must match exactly.
Returns a changeset showing the diff.
Return Type
Changeset !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| filePath | String ! | - | Path to the file relative to the workspace root |
| oldString | String ! | - | The exact string to find and replace |
| newString | String ! | - | The replacement string |
| replaceAll | Boolean ! | false | Replace all occurrences (default: first only) |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string edit-file --file-path string --old-string string --new-string string --replace-all booleanfunc (m *MyModule) Example(nodeVersion string, selfImprove string, filePath string, oldString string, newString string, replaceAll bool) *dagger.Changeset {
return dag.
Angie(nodeVersion, selfImprove).
EditFile(filePath, oldString, newString, replaceAll)
}@function
def example(node_version: str, self_improve: str, file_path: str, old_string: str, new_string: str, replace_all: bool) -> dagger.Changeset:
return (
dag.angie(node_version, self_improve)
.edit_file(file_path, old_string, new_string, replace_all)
)@func()
example(nodeVersion: string, selfImprove: string, filePath: string, oldString: string, newString: string, replaceAll: boolean): Changeset {
return dag
.angie(nodeVersion, selfImprove)
.editFile(filePath, oldString, newString, replaceAll)
}glob() 🔗
Find files in the workspace matching a glob pattern.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| pattern | String ! | - | Glob pattern (e.g. 'src/**/*.ts', '**/*.component.ts') |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string glob --pattern stringfunc (m *MyModule) Example(ctx context.Context, nodeVersion string, selfImprove string, pattern string) string {
return dag.
Angie(nodeVersion, selfImprove).
Glob(ctx, pattern)
}@function
async def example(node_version: str, self_improve: str, pattern: str) -> str:
return await (
dag.angie(node_version, self_improve)
.glob(pattern)
)@func()
async example(nodeVersion: string, selfImprove: string, pattern: string): Promise<string> {
return dag
.angie(nodeVersion, selfImprove)
.glob(pattern)
}grep() 🔗
Search file contents in the workspace using grep.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| pattern | String ! | - | Search pattern (regex supported) |
| paths | String ! | "" | Comma-separated paths to search in (optional) |
| fileGlob | String ! | "" | Glob pattern to filter files (e.g. '*.ts') |
| insensitive | Boolean ! | false | Case-insensitive search |
| limit | Integer ! | 100 | Maximum number of matching lines to return |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string grep --pattern string --paths string --file-glob string --insensitive boolean --limit integerfunc (m *MyModule) Example(ctx context.Context, nodeVersion string, selfImprove string, pattern string, paths string, fileGlob string, insensitive bool, limit int) string {
return dag.
Angie(nodeVersion, selfImprove).
Grep(ctx, pattern, paths, fileGlob, insensitive, limit)
}@function
async def example(node_version: str, self_improve: str, pattern: str, paths: str, file_glob: str, insensitive: bool, limit: int) -> str:
return await (
dag.angie(node_version, self_improve)
.grep(pattern, paths, file_glob, insensitive, limit)
)@func()
async example(nodeVersion: string, selfImprove: string, pattern: string, paths: string, fileGlob: string, insensitive: boolean, limit: number): Promise<string> {
return dag
.angie(nodeVersion, selfImprove)
.grep(pattern, paths, fileGlob, insensitive, limit)
}readFile() 🔗
Read a file from the workspace with line numbers.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| filePath | String ! | - | Path to the file relative to the workspace root |
| offset | Integer ! | 0 | Line number to start reading from (1-based) |
| limit | Integer ! | 0 | Maximum number of lines to read |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string read-file --file-path string --offset integer --limit integerfunc (m *MyModule) Example(ctx context.Context, nodeVersion string, selfImprove string, filePath string, offset int, limit int) string {
return dag.
Angie(nodeVersion, selfImprove).
ReadFile(ctx, filePath, offset, limit)
}@function
async def example(node_version: str, self_improve: str, file_path: str, offset: int, limit: int) -> str:
return await (
dag.angie(node_version, self_improve)
.read_file(file_path, offset, limit)
)@func()
async example(nodeVersion: string, selfImprove: string, filePath: string, offset: number, limit: number): Promise<string> {
return dag
.angie(nodeVersion, selfImprove)
.readFile(filePath, offset, limit)
}review() 🔗
Review Angular code for best practices, performance, accessibility, and type safety.
Provides structured feedback with issues, suggestions, and a summary. Returns the review as text (no files modified).
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory | null | Source directory to review (uses constructor source if omitted) |
| diff | String ! | "" | Git diff or PR diff to review (optional) |
| focus | String ! | "" | Specific area to focus the review on (optional) |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string review --diff string --focus stringfunc (m *MyModule) Example(ctx context.Context, nodeVersion string, selfImprove string, diff string, focus string) string {
return dag.
Angie(nodeVersion, selfImprove).
Review(ctxdiff, focus)
}@function
async def example(node_version: str, self_improve: str, diff: str, focus: str) -> str:
return await (
dag.angie(node_version, self_improve)
.review(diff, focus)
)@func()
async example(nodeVersion: string, selfImprove: string, diff: string, focus: string): Promise<string> {
return dag
.angie(nodeVersion, selfImprove)
.review(diff, focus)
}suggestGithubFix() 🔗
Analyze a CI failure and post inline code suggestions on a GitHub PR.
Reads the error output, explores source files, and posts GitHub “suggested changes” that developers can apply with one click.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| githubToken | Secret ! | - | GitHub token with repo permissions |
| prNumber | Integer ! | - | Pull request number |
| repo | String ! | - | GitHub repository URL (e.g. 'https://github.com/owner/repo') |
| commitSha | String ! | - | HEAD commit SHA of the PR branch |
| errorOutput | String ! | - | CI error output (stderr/stdout) |
| source | Directory | null | Source directory of the PR branch |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string suggest-github-fix --github-token env:MYSECRET --pr-number integer --repo string --commit-sha string --error-output stringfunc (m *MyModule) Example(ctx context.Context, nodeVersion string, selfImprove string, githubToken *dagger.Secret, prNumber int, repo string, commitSha string, errorOutput string) string {
return dag.
Angie(nodeVersion, selfImprove).
SuggestGithubFix(ctx, githubToken, prNumber, repo, commitSha, errorOutput)
}@function
async def example(node_version: str, self_improve: str, github_token: dagger.Secret, pr_number: int, repo: str, commit_sha: str, error_output: str) -> str:
return await (
dag.angie(node_version, self_improve)
.suggest_github_fix(github_token, pr_number, repo, commit_sha, error_output)
)@func()
async example(nodeVersion: string, selfImprove: string, githubToken: Secret, prNumber: number, repo: string, commitSha: string, errorOutput: string): Promise<string> {
return dag
.angie(nodeVersion, selfImprove)
.suggestGithubFix(githubToken, prNumber, repo, commitSha, errorOutput)
}suggestGithubPrCodeComment() 🔗
Post an inline code suggestion on a GitHub pull request.
The suggestion will appear as a GitHub “suggested change” that developers can apply with one click.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| path | String ! | - | File path relative to repo root |
| line | Integer ! | - | Line number to suggest a change on |
| suggestion | String ! | - | Replacement code (no ```suggestion fences, just the raw code) |
| comment | String ! | "" | Explanation of the fix |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string suggest-github-pr-code-comment --path string --line integer --suggestion string --comment stringfunc (m *MyModule) Example(ctx context.Context, nodeVersion string, selfImprove string, path string, line int, suggestion string, comment string) string {
return dag.
Angie(nodeVersion, selfImprove).
SuggestGithubPrCodeComment(ctx, path, line, suggestion, comment)
}@function
async def example(node_version: str, self_improve: str, path: str, line: int, suggestion: str, comment: str) -> str:
return await (
dag.angie(node_version, self_improve)
.suggest_github_pr_code_comment(path, line, suggestion, comment)
)@func()
async example(nodeVersion: string, selfImprove: string, path: string, line: number, suggestion: string, comment: string): Promise<string> {
return dag
.angie(nodeVersion, selfImprove)
.suggestGithubPrCodeComment(path, line, suggestion, comment)
}task() 🔗
Launch a sub-agent for research or focused work.
The sub-agent has read-only access to the workspace and Angular MCP tools. Use this for research, analysis, or exploring documentation.
Return Type
String !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| description | String ! | - | Short description of the sub-task |
| prompt | String ! | - | Detailed prompt for the sub-agent |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string task --description string --prompt stringfunc (m *MyModule) Example(ctx context.Context, nodeVersion string, selfImprove string, description string, prompt string) string {
return dag.
Angie(nodeVersion, selfImprove).
Task(ctx, description, prompt)
}@function
async def example(node_version: str, self_improve: str, description: str, prompt: str) -> str:
return await (
dag.angie(node_version, self_improve)
.task(description, prompt)
)@func()
async example(nodeVersion: string, selfImprove: string, description: string, prompt: string): Promise<string> {
return dag
.angie(nodeVersion, selfImprove)
.task(description, prompt)
}upgrade() 🔗
Upgrade an Angular project to a target version.
Detects the current Angular version, researches breaking changes and migration steps between versions, analyzes the codebase for impacted code, and applies the necessary modifications. Returns the workspace directory with upgrade changes applied.
Return Type
Directory !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| targetVersion | String ! | - | Target Angular version (e.g. '19', '18.2', '20.0.0') |
| source | Directory | null | Source directory (uses constructor source if omitted) |
| dryRun | Boolean ! | false | Analyze and report changes without modifying files |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string upgrade --target-version string --dry-run booleanfunc (m *MyModule) Example(nodeVersion string, selfImprove string, targetVersion string, dryRun bool) *dagger.Directory {
return dag.
Angie(nodeVersion, selfImprove).
Upgrade(targetVersion, dryRun)
}@function
def example(node_version: str, self_improve: str, target_version: str, dry_run: bool) -> dagger.Directory:
return (
dag.angie(node_version, self_improve)
.upgrade(target_version, dry_run)
)@func()
example(nodeVersion: string, selfImprove: string, targetVersion: string, dryRun: boolean): Directory {
return dag
.angie(nodeVersion, selfImprove)
.upgrade(targetVersion, dryRun)
}writeFile() 🔗
Create or overwrite a file in the workspace.
Returns a changeset showing the diff.
Return Type
Changeset !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| filePath | String ! | - | Path to the file relative to the workspace root |
| contents | String ! | - | The full file contents to write |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string write-file --file-path string --contents stringfunc (m *MyModule) Example(nodeVersion string, selfImprove string, filePath string, contents string) *dagger.Changeset {
return dag.
Angie(nodeVersion, selfImprove).
WriteFile(filePath, contents)
}@function
def example(node_version: str, self_improve: str, file_path: str, contents: str) -> dagger.Changeset:
return (
dag.angie(node_version, self_improve)
.write_file(file_path, contents)
)@func()
example(nodeVersion: string, selfImprove: string, filePath: string, contents: string): Changeset {
return dag
.angie(nodeVersion, selfImprove)
.writeFile(filePath, contents)
}writeTests() 🔗
Generate unit, integration, or e2e tests for Angular components and services.
Follows Angular testing patterns and uses the project’s existing test setup. Returns the workspace directory with generated test files.
Return Type
Directory !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| source | Directory | null | Source directory (uses constructor source if omitted) |
| target | String ! | "" | Specific file or component to write tests for (optional) |
| testFramework | String ! | "" | Test framework preference: 'jest', 'karma', 'vitest' (optional) |
Example
dagger -m github.com/telchak/daggerverse/angie@010621c997378db92da5969584001be575c5e5a7 call \
--node-version string --self-improve string write-tests --target string --test-framework stringfunc (m *MyModule) Example(nodeVersion string, selfImprove string, target string, testFramework string) *dagger.Directory {
return dag.
Angie(nodeVersion, selfImprove).
WriteTests(target, testFramework)
}@function
def example(node_version: str, self_improve: str, target: str, test_framework: str) -> dagger.Directory:
return (
dag.angie(node_version, self_improve)
.write_tests(target, test_framework)
)@func()
example(nodeVersion: string, selfImprove: string, target: string, testFramework: string): Directory {
return dag
.angie(nodeVersion, selfImprove)
.writeTests(target, testFramework)
}