@profoundlogic/coderflow-server 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +322 -0
- package/README.md +158 -0
- package/dist/LICENSE.txt +322 -0
- package/dist/README.md +158 -0
- package/dist/base-image/Dockerfile +184 -0
- package/dist/base-image/agent-wrapper.sh +143 -0
- package/dist/base-image/apply-local-state.sh +357 -0
- package/dist/base-image/coder-git-credential-helper +307 -0
- package/dist/base-image/entrypoint.sh +942 -0
- package/dist/base-image/ssh_config_template +41 -0
- package/dist/base-image/start-code-server.sh +76 -0
- package/dist/base-image/sync-repos.sh +170 -0
- package/dist/base-image/vscode-extensions.txt +10 -0
- package/dist/base-image/vscode-settings.json +41 -0
- package/dist/coder-server.js +2 -0
- package/dist/config/cli-models.json +45 -0
- package/dist/config/imported-skills.schema.json +83 -0
- package/dist/config/skill-catalog.json +18 -0
- package/dist/config/skill-catalog.schema.json +140 -0
- package/dist/config.js +1 -0
- package/dist/examples/oidc.json.example +11 -0
- package/dist/lib/agent-keepalive.js +1 -0
- package/dist/lib/api-keys.js +1 -0
- package/dist/lib/apiKeys.js +1 -0
- package/dist/lib/auto-judge.js +1 -0
- package/dist/lib/basic-auth.js +1 -0
- package/dist/lib/build-history.js +1 -0
- package/dist/lib/build-output-service.js +1 -0
- package/dist/lib/build-scheduler.js +1 -0
- package/dist/lib/build-service.js +1 -0
- package/dist/lib/claude-oauth-refresh.js +1 -0
- package/dist/lib/cli/build.js +1 -0
- package/dist/lib/cli/config-command.js +1 -0
- package/dist/lib/cli/config.js +1 -0
- package/dist/lib/cli/create-user.js +1 -0
- package/dist/lib/cli/init.js +1 -0
- package/dist/lib/cli/jira.js +1 -0
- package/dist/lib/cli/license.js +1 -0
- package/dist/lib/cli/server-manager.js +1 -0
- package/dist/lib/container-tokens.js +1 -0
- package/dist/lib/data-dir.js +1 -0
- package/dist/lib/deployment-history.js +1 -0
- package/dist/lib/deployment-service.js +1 -0
- package/dist/lib/docker-utils.js +1 -0
- package/dist/lib/email.js +1 -0
- package/dist/lib/emailTemplates.js +1 -0
- package/dist/lib/entitlement.js +1 -0
- package/dist/lib/fetch-utils.js +1 -0
- package/dist/lib/git-provider-service.js +1 -0
- package/dist/lib/git-provider-setup/assets/coderflow_github_app.png +0 -0
- package/dist/lib/git-provider-setup/github-setup-handler.js +1 -0
- package/dist/lib/git-provider-setup/index.js +1 -0
- package/dist/lib/git-provider-setup/setup-factory.js +1 -0
- package/dist/lib/git-provider-setup/setup-interface.js +1 -0
- package/dist/lib/git-providers/azure-devops-provider.js +1 -0
- package/dist/lib/git-providers/github-app-provider.js +1 -0
- package/dist/lib/git-providers/index.js +1 -0
- package/dist/lib/git-providers/provider-factory.js +1 -0
- package/dist/lib/git-providers/provider-interface.js +1 -0
- package/dist/lib/jira-client.js +1 -0
- package/dist/lib/logger.js +1 -0
- package/dist/lib/model-fetcher.js +1 -0
- package/dist/lib/notifications.js +1 -0
- package/dist/lib/oidc-auth.js +1 -0
- package/dist/lib/oidc-device-flow.js +1 -0
- package/dist/lib/passwordTokens.js +1 -0
- package/dist/lib/pin-cascade.js +1 -0
- package/dist/lib/provider-accounts.js +1 -0
- package/dist/lib/provider-oauth.js +1 -0
- package/dist/lib/provider-profile.js +1 -0
- package/dist/lib/provider-token-refresh.js +1 -0
- package/dist/lib/roles.js +1 -0
- package/dist/lib/secrets.js +1 -0
- package/dist/lib/state-capture.js +1 -0
- package/dist/lib/static-files.js +1 -0
- package/dist/lib/task-name-generator.js +1 -0
- package/dist/lib/users.js +1 -0
- package/dist/middleware/requireAuth.js +1 -0
- package/dist/middleware/requireInit.js +1 -0
- package/dist/middleware/requirePermission.js +1 -0
- package/dist/package-lock.json +4151 -0
- package/dist/package.json +50 -0
- package/dist/routes/apiKeys.js +1 -0
- package/dist/routes/auth-oidc.js +1 -0
- package/dist/routes/auth.js +1 -0
- package/dist/routes/build.js +1 -0
- package/dist/routes/containers.js +1 -0
- package/dist/routes/deploy-task.js +1 -0
- package/dist/routes/environment-management.js +1 -0
- package/dist/routes/environments.js +1 -0
- package/dist/routes/external-skills.js +1 -0
- package/dist/routes/git-credentials.js +1 -0
- package/dist/routes/git-provider-setup.js +1 -0
- package/dist/routes/health.js +1 -0
- package/dist/routes/jira.js +1 -0
- package/dist/routes/objective-management.js +1 -0
- package/dist/routes/password.js +1 -0
- package/dist/routes/prompt.js +1 -0
- package/dist/routes/provider-auth.js +1 -0
- package/dist/routes/qa.js +1 -0
- package/dist/routes/settings.js +1 -0
- package/dist/routes/skill-management.js +1 -0
- package/dist/routes/skills.js +1 -0
- package/dist/routes/tasks.js +2 -0
- package/dist/routes/templates.js +1 -0
- package/dist/routes/test-task.js +1 -0
- package/dist/routes/test.js +1 -0
- package/dist/routes/users.js +1 -0
- package/dist/routes/visualizations.js +1 -0
- package/dist/schemas/template-metadata.schema.json +178 -0
- package/dist/scripts/create-user.js +2 -0
- package/dist/shipped-skills/environment-instructions/SKILL.md +154 -0
- package/dist/shipped-skills/environment-templates/SKILL.md +282 -0
- package/dist/shipped-skills/objective-management/SKILL.md +238 -0
- package/dist/shipped-skills/skill-editor/SKILL.md +326 -0
- package/dist/start.js +2 -0
- package/dist/web-ui/public/activity-detail-modal.js +1 -0
- package/dist/web-ui/public/activity-feed.js +1 -0
- package/dist/web-ui/public/activity-formatters.js +1 -0
- package/dist/web-ui/public/agent-event-parser.js +1 -0
- package/dist/web-ui/public/app.js +1 -0
- package/dist/web-ui/public/approve-dialog.js +1 -0
- package/dist/web-ui/public/coderflow-logo-reversed.svg +46 -0
- package/dist/web-ui/public/coderflow-logo.svg +46 -0
- package/dist/web-ui/public/comments-widget.js +1 -0
- package/dist/web-ui/public/docs/.nojekyll +0 -0
- package/dist/web-ui/public/docs/README.md +26 -0
- package/dist/web-ui/public/docs/_sidebar.md +47 -0
- package/dist/web-ui/public/docs/admin/ai-providers.md +132 -0
- package/dist/web-ui/public/docs/admin/email-notifications.md +69 -0
- package/dist/web-ui/public/docs/admin/environments.md +215 -0
- package/dist/web-ui/public/docs/admin/git-providers.md +147 -0
- package/dist/web-ui/public/docs/admin/installation.md +313 -0
- package/dist/web-ui/public/docs/admin/skills.md +35 -0
- package/dist/web-ui/public/docs/admin/sso.md +241 -0
- package/dist/web-ui/public/docs/admin/users-and-roles.md +57 -0
- package/dist/web-ui/public/docs/code/cli.md +102 -0
- package/dist/web-ui/public/docs/code/files-and-editing.md +86 -0
- package/dist/web-ui/public/docs/code/terminal-access.md +110 -0
- package/dist/web-ui/public/docs/code/vscode-extension.md +58 -0
- package/dist/web-ui/public/docs/getting-started/core-concepts.md +129 -0
- package/dist/web-ui/public/docs/getting-started/overview.md +46 -0
- package/dist/web-ui/public/docs/index.html +151 -0
- package/dist/web-ui/public/docs/integrations/custom.md +58 -0
- package/dist/web-ui/public/docs/integrations/ibmi/overview.md +58 -0
- package/dist/web-ui/public/docs/integrations/overview.md +48 -0
- package/dist/web-ui/public/docs/objectives/qa-mode.md +90 -0
- package/dist/web-ui/public/docs/objectives/staged-tasks.md +60 -0
- package/dist/web-ui/public/docs/objectives/working-with-objectives.md +102 -0
- package/dist/web-ui/public/docs/tasks/approval-and-deployment.md +83 -0
- package/dist/web-ui/public/docs/tasks/creating-tasks.md +111 -0
- package/dist/web-ui/public/docs/tasks/judging.md +114 -0
- package/dist/web-ui/public/docs/tasks/providing-feedback.md +41 -0
- package/dist/web-ui/public/docs/tasks/task-groups.md +73 -0
- package/dist/web-ui/public/docs/tasks/winner-selection.md +75 -0
- package/dist/web-ui/public/docs/templates/batch-processing.md +152 -0
- package/dist/web-ui/public/docs/templates/task-templates.md +44 -0
- package/dist/web-ui/public/docs/templates/template-examples.md +93 -0
- package/dist/web-ui/public/docs/testing/profound-automated-testing.md +77 -0
- package/dist/web-ui/public/docs/testing/task-visualizations.md +42 -0
- package/dist/web-ui/public/docs/testing/testing-menu.md +118 -0
- package/dist/web-ui/public/environments.css +3942 -0
- package/dist/web-ui/public/environments.html +1791 -0
- package/dist/web-ui/public/environments.js +1 -0
- package/dist/web-ui/public/favicon-16.png +0 -0
- package/dist/web-ui/public/favicon-32.png +0 -0
- package/dist/web-ui/public/favicon.ico +0 -0
- package/dist/web-ui/public/feedback-widget.css +3133 -0
- package/dist/web-ui/public/feedback-widget.js +1 -0
- package/dist/web-ui/public/git-history.css +2663 -0
- package/dist/web-ui/public/git-history.html +272 -0
- package/dist/web-ui/public/git-history.js +1 -0
- package/dist/web-ui/public/git-status.js +1 -0
- package/dist/web-ui/public/index.html +1459 -0
- package/dist/web-ui/public/index.js +1 -0
- package/dist/web-ui/public/login.html +346 -0
- package/dist/web-ui/public/login.js +1 -0
- package/dist/web-ui/public/markdown-editor.js +1 -0
- package/dist/web-ui/public/markdown-file-editor.js +1 -0
- package/dist/web-ui/public/modal-maximize.js +1 -0
- package/dist/web-ui/public/notifications.js +1 -0
- package/dist/web-ui/public/server-health.js +1 -0
- package/dist/web-ui/public/settings.css +761 -0
- package/dist/web-ui/public/settings.html +1044 -0
- package/dist/web-ui/public/settings.js +1 -0
- package/dist/web-ui/public/setup-password.html +355 -0
- package/dist/web-ui/public/setup-password.js +1 -0
- package/dist/web-ui/public/skills.css +1949 -0
- package/dist/web-ui/public/skills.html +820 -0
- package/dist/web-ui/public/skills.js +1 -0
- package/dist/web-ui/public/sse-client.js +1 -0
- package/dist/web-ui/public/sse-shared-worker.js +1 -0
- package/dist/web-ui/public/styles.css +18614 -0
- package/dist/web-ui/public/task.html +1779 -0
- package/dist/web-ui/public/task.js +1 -0
- package/dist/web-ui/public/terminal.html +45 -0
- package/dist/web-ui/public/terminal.js +1 -0
- package/dist/web-ui/public/theme.js +1 -0
- package/dist/web-ui/public/users.html +298 -0
- package/dist/web-ui/public/users.js +1 -0
- package/dist/web-ui/public/variant-grouping.js +1 -0
- package/package.json +63 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, shrink-to-fit=no">
|
|
6
|
+
<meta name="description" content="CoderFlow Documentation">
|
|
7
|
+
<title>CoderFlow - Documentation</title>
|
|
8
|
+
|
|
9
|
+
<!-- docsify-themeable: auto dark/light mode based on system preference -->
|
|
10
|
+
<link rel="stylesheet" media="(prefers-color-scheme: dark)"
|
|
11
|
+
href="https://cdn.jsdelivr.net/npm/docsify-themeable@0/dist/css/theme-simple-dark.css">
|
|
12
|
+
<link rel="stylesheet" media="(prefers-color-scheme: light)"
|
|
13
|
+
href="https://cdn.jsdelivr.net/npm/docsify-themeable@0/dist/css/theme-simple.css">
|
|
14
|
+
|
|
15
|
+
<!-- Sidebar collapse with arrow/chevron icons -->
|
|
16
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsify-sidebar-collapse/dist/sidebar.min.css">
|
|
17
|
+
|
|
18
|
+
<!-- Prism syntax highlighting -->
|
|
19
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/prismjs@1/themes/prism-tomorrow.min.css">
|
|
20
|
+
|
|
21
|
+
<style>
|
|
22
|
+
:root {
|
|
23
|
+
--theme-color: #3498db;
|
|
24
|
+
--base-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
|
|
25
|
+
--sidebar-nav-link-border-color--active: var(--theme-color);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* Improve content width */
|
|
29
|
+
.markdown-section {
|
|
30
|
+
max-width: 900px;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* Better code block styling */
|
|
34
|
+
.markdown-section pre {
|
|
35
|
+
border-radius: 6px;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.markdown-section code {
|
|
39
|
+
border-radius: 4px;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* Search styling */
|
|
43
|
+
.search input {
|
|
44
|
+
border-radius: 6px;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* Sidebar hover effects */
|
|
48
|
+
.sidebar-nav li a:hover {
|
|
49
|
+
color: var(--theme-color);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Style non-link category headers */
|
|
53
|
+
.sidebar-nav li > strong {
|
|
54
|
+
display: block;
|
|
55
|
+
font-weight: 600;
|
|
56
|
+
color: var(--sidebar-nav-strong-color, #333);
|
|
57
|
+
cursor: default;
|
|
58
|
+
padding: 0.25em 0;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/* Dark mode adjustment for headers */
|
|
62
|
+
@media (prefers-color-scheme: dark) {
|
|
63
|
+
.sidebar-nav li > strong {
|
|
64
|
+
color: #ccc;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
</style>
|
|
68
|
+
</head>
|
|
69
|
+
<body>
|
|
70
|
+
<div id="app">Loading documentation...</div>
|
|
71
|
+
|
|
72
|
+
<script>
|
|
73
|
+
window.$docsify = {
|
|
74
|
+
name: 'CoderFlow',
|
|
75
|
+
nameLink: '/docs/',
|
|
76
|
+
repo: '',
|
|
77
|
+
loadSidebar: true,
|
|
78
|
+
alias: {
|
|
79
|
+
'/.*/_sidebar.md': '/_sidebar.md' // Always use root sidebar
|
|
80
|
+
},
|
|
81
|
+
subMaxLevel: 2,
|
|
82
|
+
sidebarDisplayLevel: 1,
|
|
83
|
+
auto2top: true,
|
|
84
|
+
|
|
85
|
+
// Search configuration
|
|
86
|
+
search: {
|
|
87
|
+
placeholder: 'Search docs...',
|
|
88
|
+
noData: 'No results found',
|
|
89
|
+
paths: 'auto',
|
|
90
|
+
depth: 3
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
// Copy code button
|
|
94
|
+
copyCode: {
|
|
95
|
+
buttonText: 'Copy',
|
|
96
|
+
successText: 'Copied'
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
</script>
|
|
100
|
+
|
|
101
|
+
<!-- Docsify core -->
|
|
102
|
+
<script src="https://cdn.jsdelivr.net/npm/docsify@4/lib/docsify.min.js"></script>
|
|
103
|
+
|
|
104
|
+
<!-- docsify-themeable (must come after docsify) -->
|
|
105
|
+
<script src="https://cdn.jsdelivr.net/npm/docsify-themeable@0/dist/js/docsify-themeable.min.js"></script>
|
|
106
|
+
|
|
107
|
+
<!-- Plugins -->
|
|
108
|
+
<script src="https://cdn.jsdelivr.net/npm/docsify-sidebar-collapse/dist/docsify-sidebar-collapse.min.js"></script>
|
|
109
|
+
<script src="https://cdn.jsdelivr.net/npm/docsify@4/lib/plugins/search.min.js"></script>
|
|
110
|
+
<script src="https://cdn.jsdelivr.net/npm/docsify-copy-code@2/dist/docsify-copy-code.min.js"></script>
|
|
111
|
+
<script src="https://cdn.jsdelivr.net/npm/docsify-plugin-flexible-alerts/dist/docsify-plugin-flexible-alerts.min.js"></script>
|
|
112
|
+
|
|
113
|
+
<!-- Syntax highlighting -->
|
|
114
|
+
<script src="https://cdn.jsdelivr.net/npm/prismjs@1/components/prism-bash.min.js"></script>
|
|
115
|
+
<script src="https://cdn.jsdelivr.net/npm/prismjs@1/components/prism-javascript.min.js"></script>
|
|
116
|
+
<script src="https://cdn.jsdelivr.net/npm/prismjs@1/components/prism-json.min.js"></script>
|
|
117
|
+
<script src="https://cdn.jsdelivr.net/npm/prismjs@1/components/prism-yaml.min.js"></script>
|
|
118
|
+
|
|
119
|
+
<!-- About CoderFlow Modal (shared with main UI) -->
|
|
120
|
+
<div id="about-coderflow-modal" class="modal" hidden>
|
|
121
|
+
<div class="modal-overlay"></div>
|
|
122
|
+
<div class="modal-content modal-content-narrow">
|
|
123
|
+
<div class="modal-header">
|
|
124
|
+
<h2>About CoderFlow</h2>
|
|
125
|
+
<button type="button" class="modal-close" id="about-coderflow-close" aria-label="Close">
|
|
126
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
|
127
|
+
<line x1="18" y1="6" x2="6" y2="18"></line>
|
|
128
|
+
<line x1="6" y1="6" x2="18" y2="18"></line>
|
|
129
|
+
</svg>
|
|
130
|
+
</button>
|
|
131
|
+
</div>
|
|
132
|
+
<div class="modal-body about-modal-body">
|
|
133
|
+
<div class="about-modal-hero">
|
|
134
|
+
<img src="/coderflow-logo.svg" alt="CoderFlow" class="brand-logo brand-logo-light about-logo">
|
|
135
|
+
<img src="/coderflow-logo-reversed.svg" alt="CoderFlow" class="brand-logo brand-logo-dark about-logo">
|
|
136
|
+
</div>
|
|
137
|
+
<div class="about-version-card">
|
|
138
|
+
<span class="about-version-label">Server version</span>
|
|
139
|
+
<span class="about-version-value" id="about-server-version">Loading...</span>
|
|
140
|
+
</div>
|
|
141
|
+
<div id="about-version-error" class="error-message" hidden></div>
|
|
142
|
+
<p class="about-copyright">© <span id="about-year"></span> Profound Logic Software, Inc.</p>
|
|
143
|
+
<a class="about-link" href="https://coderflow.ai" target="_blank" rel="noopener">coderflow.ai</a>
|
|
144
|
+
</div>
|
|
145
|
+
<div class="modal-actions">
|
|
146
|
+
<button type="button" id="about-coderflow-ok" class="btn-primary">OK</button>
|
|
147
|
+
</div>
|
|
148
|
+
</div>
|
|
149
|
+
</div>
|
|
150
|
+
</body>
|
|
151
|
+
</html>
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Custom Integrations
|
|
2
|
+
|
|
3
|
+
Beyond standard platforms and IBM i, CoderFlow can be configured for any development environment that runs in Docker or connects to remote systems.
|
|
4
|
+
|
|
5
|
+
## What Can Be Customized
|
|
6
|
+
|
|
7
|
+
Custom environments can integrate:
|
|
8
|
+
|
|
9
|
+
- **Legacy systems**: Mainframes, AS/400, or other platforms with remote access capabilities
|
|
10
|
+
- **Specialized toolchains**: Proprietary compilers, custom build systems, internal tools
|
|
11
|
+
- **Hybrid architectures**: Combinations of modern and legacy components
|
|
12
|
+
- **Industry-specific platforms**: Healthcare, finance, manufacturing systems with unique requirements
|
|
13
|
+
|
|
14
|
+
## How Custom Integrations Work
|
|
15
|
+
|
|
16
|
+
Custom integrations follow the same pattern as built-in integrations:
|
|
17
|
+
|
|
18
|
+
1. **Docker environment**: Package required tools, runtimes, and dependencies in a Docker image
|
|
19
|
+
2. **Connection configuration**: Define how agents connect to remote systems (SSH, APIs, databases)
|
|
20
|
+
3. **Agent skills**: Create reusable skills and assign them to the environment
|
|
21
|
+
4. **Build and test commands**: Define how code is compiled and tested
|
|
22
|
+
|
|
23
|
+
Once configured, agents work with custom environments the same way they work with standard platforms.
|
|
24
|
+
|
|
25
|
+
## Examples
|
|
26
|
+
|
|
27
|
+
### Remote Mainframe
|
|
28
|
+
|
|
29
|
+
- Docker container with terminal emulator and file transfer tools
|
|
30
|
+
- SSH/TN3270 connection to mainframe
|
|
31
|
+
- Custom build scripts that invoke mainframe compilers
|
|
32
|
+
- Screen capture for verification
|
|
33
|
+
|
|
34
|
+
### Proprietary Build System
|
|
35
|
+
|
|
36
|
+
- Docker container with vendor SDK
|
|
37
|
+
- License server connectivity
|
|
38
|
+
- Custom build commands wrapped in agent-accessible tools
|
|
39
|
+
- Integration with vendor testing frameworks
|
|
40
|
+
|
|
41
|
+
### Multi-Platform Application
|
|
42
|
+
|
|
43
|
+
- Docker container with multiple runtimes (e.g., Node.js + Python)
|
|
44
|
+
- Connections to multiple backend systems
|
|
45
|
+
- Coordinated build across platforms
|
|
46
|
+
- End-to-end testing across components
|
|
47
|
+
|
|
48
|
+
## Configuration
|
|
49
|
+
|
|
50
|
+
Custom integrations are configured by administrators in the environment settings. This includes:
|
|
51
|
+
|
|
52
|
+
- Docker image with required tools
|
|
53
|
+
- Connection secrets and credentials
|
|
54
|
+
- Environment variables
|
|
55
|
+
- Agent instructions (AGENTS.md)
|
|
56
|
+
- Skills assigned to the environment
|
|
57
|
+
|
|
58
|
+
See **Environments** in the Administration section for detailed configuration options.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# IBM i Integration
|
|
2
|
+
|
|
3
|
+
CoderFlow enables AI agents to work directly with enterprise IBM i systems. Agents can compile RPG, COBOL, and CL programs, interact with 5250 terminal sessions, query DB2 databases, and test Rich Display applications—all autonomously.
|
|
4
|
+
|
|
5
|
+
## What Agents Can Do
|
|
6
|
+
|
|
7
|
+
With IBM i integration, agents can:
|
|
8
|
+
|
|
9
|
+
- **Compile programs**: Build RPG, COBOL, CL, DDS display files, and other IBM i objects using native compilers
|
|
10
|
+
- **Query databases**: Execute SQL against DB2 to understand data structures and verify results
|
|
11
|
+
- **Test applications**: Operate 5250 terminal sessions and Rich Display interfaces to verify functionality
|
|
12
|
+
- **Modernize code**: Convert legacy RPG to modern formats, verified by Profound Automated Testing
|
|
13
|
+
|
|
14
|
+
This enables the same AI-assisted development workflows available for modern platforms—but for IBM i applications that most AI tools cannot handle.
|
|
15
|
+
|
|
16
|
+
## Database Access (RAS)
|
|
17
|
+
|
|
18
|
+
Remote Access Server (RAS) provides high-performance database connectivity between containers and IBM i systems. Agents use RAS to:
|
|
19
|
+
|
|
20
|
+
- Execute SQL queries against DB2 databases
|
|
21
|
+
- Discover table schemas and data structures
|
|
22
|
+
- Verify that changes produce expected results
|
|
23
|
+
|
|
24
|
+
RAS offers better performance than traditional JDBC/ODBC connections over network distances. Agents interact with it automatically through the SQL tool—no manual connection management required.
|
|
25
|
+
|
|
26
|
+
## Compiling with ibmimake
|
|
27
|
+
|
|
28
|
+
`ibmimake` is the build system agents use to compile IBM i programs. It runs in containers and uses SSH to invoke native IBM i compilers on remote systems.
|
|
29
|
+
|
|
30
|
+
When an agent modifies source code, it runs `ibmimake` to compile. The tool handles RPG, COBOL, CL, display files, and database files—with automatic dependency tracking to rebuild only what's changed.
|
|
31
|
+
|
|
32
|
+
Each task gets its own IBM i library, so agents can work on the same codebase simultaneously without interfering with each other. Experimental changes stay isolated from the shared environment.
|
|
33
|
+
|
|
34
|
+
## Interactive Testing
|
|
35
|
+
|
|
36
|
+
Agents can operate interactive applications for testing:
|
|
37
|
+
|
|
38
|
+
**5250 Terminal Sessions**
|
|
39
|
+
- Connect to IBM i applications via 5250
|
|
40
|
+
- Navigate screens, enter data, press function keys
|
|
41
|
+
- Verify application behavior matches expectations
|
|
42
|
+
|
|
43
|
+
**Rich Display Sessions**
|
|
44
|
+
- Test modern Profound UI interfaces in a browser context
|
|
45
|
+
- Interact with Rich Display File applications
|
|
46
|
+
- Capture screen states for verification
|
|
47
|
+
|
|
48
|
+
Interactive sessions let agents test applications the way users would. All sessions are automatically recorded and appear in the task's visualizations.
|
|
49
|
+
|
|
50
|
+
## Configuration
|
|
51
|
+
|
|
52
|
+
IBM i integration requires administrator setup:
|
|
53
|
+
|
|
54
|
+
- RAS service running on the IBM i system
|
|
55
|
+
- SSH access for compilation
|
|
56
|
+
- Profound UI for interactive session testing (optional but recommended)
|
|
57
|
+
|
|
58
|
+
See **Environments** in the Administration section for configuration details.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Integrations
|
|
2
|
+
|
|
3
|
+
CoderFlow works with a wide range of platforms and technologies. Agents run in Docker containers, so any development environment that can be containerized can be used with CoderFlow.
|
|
4
|
+
|
|
5
|
+
## Standard Platforms
|
|
6
|
+
|
|
7
|
+
Modern development platforms work with CoderFlow through standard Docker environments:
|
|
8
|
+
|
|
9
|
+
- **Node.js** — JavaScript and TypeScript applications
|
|
10
|
+
- **.NET** — C# and F# applications
|
|
11
|
+
- **Java** — Spring, Maven, Gradle projects
|
|
12
|
+
- **Python** — Django, Flask, data science workflows
|
|
13
|
+
- **Go, Rust, Ruby** — And other languages with Docker support
|
|
14
|
+
|
|
15
|
+
For these platforms, administrators configure environments with the appropriate runtimes, tools, and dependencies. Agents then use standard development workflows—editing code, running builds, executing tests.
|
|
16
|
+
|
|
17
|
+
## IBM i
|
|
18
|
+
|
|
19
|
+
IBM i is a specialized integration for enterprise legacy systems. Most AI tools cannot work with IBM i applications, but CoderFlow provides deep integration:
|
|
20
|
+
|
|
21
|
+
- Compile RPG, COBOL, and CL programs using native IBM i compilers
|
|
22
|
+
- Query DB2 databases via high-performance RAS connections
|
|
23
|
+
- Test applications through 5250 terminal and Rich Display sessions
|
|
24
|
+
- Modernize legacy code with automated verification
|
|
25
|
+
|
|
26
|
+
See the **IBM i** section for details on RAS, ibmimake, and AI tools for IBM i development.
|
|
27
|
+
|
|
28
|
+
## Custom Environments
|
|
29
|
+
|
|
30
|
+
Organizations can create custom environments tailored to their specific needs:
|
|
31
|
+
|
|
32
|
+
- **Legacy systems** — Mainframe, AS/400, or other platforms with remote access
|
|
33
|
+
- **Specialized toolchains** — Custom build systems, proprietary compilers
|
|
34
|
+
- **Hybrid architectures** — Combinations of modern and legacy components
|
|
35
|
+
|
|
36
|
+
Custom environments are configured by administrators with the necessary tools, connections, and agent instructions. Once configured, agents work with these environments like any other.
|
|
37
|
+
|
|
38
|
+
## Configuring Integrations
|
|
39
|
+
|
|
40
|
+
All integrations are configured at the environment level. Administrators define:
|
|
41
|
+
|
|
42
|
+
- Docker images with required tools and runtimes
|
|
43
|
+
- Connection details for remote systems
|
|
44
|
+
- Agent instructions (AGENTS.md)
|
|
45
|
+
- Skills assigned to the environment (managed in Administration -> Skills)
|
|
46
|
+
- Build and test commands
|
|
47
|
+
|
|
48
|
+
See **Environments** in the Administration section for configuration details.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# QA Mode
|
|
2
|
+
|
|
3
|
+
QA Mode lets you capture observations from a running application and turn them into objectives. Instead of writing requirements from scratch, you interact with your application while a proxy captures screenshots, DOM elements, and screen data—giving AI agents the exact context they need to understand what you want.
|
|
4
|
+
|
|
5
|
+
## How It Works
|
|
6
|
+
|
|
7
|
+
QA Mode creates a transparent proxy between you and your application. As you navigate and interact:
|
|
8
|
+
|
|
9
|
+
- Screenshots are captured and can be annotated
|
|
10
|
+
- DOM elements can be selected for inspection
|
|
11
|
+
- 5250 terminal buffers are recorded (for terminal applications)
|
|
12
|
+
- Rich Display data is captured (for RDF applications)
|
|
13
|
+
|
|
14
|
+
All captured context is bundled into objectives that agents can interpret and act on.
|
|
15
|
+
|
|
16
|
+
## Accessing Applications via Proxy
|
|
17
|
+
|
|
18
|
+
When QA Mode is enabled for an environment, you access your application through a special proxy URL provided in the CoderFlow interface. The proxy:
|
|
19
|
+
|
|
20
|
+
- Injects a feedback widget into your application's pages
|
|
21
|
+
- Rewrites URLs so assets load correctly through the proxy
|
|
22
|
+
- Handles redirects transparently
|
|
23
|
+
- Preserves normal application functionality while adding observation capabilities
|
|
24
|
+
|
|
25
|
+
Your environment's QA URLs are displayed in the environment settings or when starting QA Mode.
|
|
26
|
+
|
|
27
|
+
## Capturing Context
|
|
28
|
+
|
|
29
|
+
The feedback widget appears as a floating panel on your application. It captures multiple types of context depending on your application type:
|
|
30
|
+
|
|
31
|
+
### Screenshots
|
|
32
|
+
|
|
33
|
+
Click **Capture Screenshot** to snapshot the current page. Screenshots appear in the widget and can be edited with the built-in annotation tools—add highlights, arrows, or text to clarify what you're pointing out.
|
|
34
|
+
|
|
35
|
+
### DOM Elements
|
|
36
|
+
|
|
37
|
+
Use **Select Elements** to highlight and capture specific parts of the page:
|
|
38
|
+
|
|
39
|
+
- Click elements to select them (they highlight with an overlay)
|
|
40
|
+
- Right-click to deselect
|
|
41
|
+
- Captured DOM includes element hierarchy and attributes, helping agents understand page structure
|
|
42
|
+
|
|
43
|
+
### 5250 Terminal Buffers
|
|
44
|
+
|
|
45
|
+
For terminal-based applications, QA Mode automatically captures:
|
|
46
|
+
|
|
47
|
+
- Current screen buffer contents
|
|
48
|
+
- Screen state and field positions
|
|
49
|
+
- Optional full screen payload for detailed context
|
|
50
|
+
|
|
51
|
+
### Rich Display Data
|
|
52
|
+
|
|
53
|
+
For Rich Display (RDF) applications, the widget captures:
|
|
54
|
+
|
|
55
|
+
- Structured widget data and hierarchy
|
|
56
|
+
- Field values and display properties
|
|
57
|
+
- Rendering context that helps agents understand the UI
|
|
58
|
+
|
|
59
|
+
## Creating Objectives
|
|
60
|
+
|
|
61
|
+
Once you've captured context, create an objective directly from the widget:
|
|
62
|
+
|
|
63
|
+
1. Enter a **title** describing the work
|
|
64
|
+
2. Write **instructions** explaining what you want the agent to do
|
|
65
|
+
3. Review the captured context shown in the widget
|
|
66
|
+
4. Click **Create**
|
|
67
|
+
|
|
68
|
+
The objective is created with your instructions plus all captured context—screenshots, selected elements, and application data. Agents see exactly what you saw when you created the objective.
|
|
69
|
+
|
|
70
|
+
## Launching Tasks from QA Mode
|
|
71
|
+
|
|
72
|
+
When creating an objective, you can optionally launch tasks immediately:
|
|
73
|
+
|
|
74
|
+
1. Check **Launch task after creating objective**
|
|
75
|
+
2. Select which agent(s) to use
|
|
76
|
+
3. Click **Create**
|
|
77
|
+
|
|
78
|
+
This creates the objective and immediately launches one or more tasks from it. Each task receives a copy of the instructions and captured context.
|
|
79
|
+
|
|
80
|
+
If you prefer to review the objective first, skip the launch option. You can always launch tasks later from the objectives view.
|
|
81
|
+
|
|
82
|
+
## Best Practices
|
|
83
|
+
|
|
84
|
+
**Capture before explaining**: Take screenshots and select elements first, then write your instructions. This ensures you have visual context to reference.
|
|
85
|
+
|
|
86
|
+
**Annotate meaningfully**: Use the screenshot editor to highlight the specific area you're discussing. A circle around a button is clearer than describing its location in text.
|
|
87
|
+
|
|
88
|
+
**Be specific about the problem**: Captured context shows *what* the application looks like—your instructions should explain *what's wrong* and *what you want instead*.
|
|
89
|
+
|
|
90
|
+
**Combine context types**: For complex issues, capture a screenshot AND select relevant DOM elements. More context helps agents understand the full picture.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Staged Tasks
|
|
2
|
+
|
|
3
|
+
A staged task prepares the full execution environment—container, repositories, dependencies—but pauses before the agent starts working. This gives you a chance to inspect the environment, refine your instructions, or attach additional context before committing to agent execution.
|
|
4
|
+
|
|
5
|
+
## When to Use Staged Tasks
|
|
6
|
+
|
|
7
|
+
Staged tasks are useful when:
|
|
8
|
+
|
|
9
|
+
- **You want to verify setup**: Confirm the container started correctly and repositories are checked out to the right branches before the agent begins
|
|
10
|
+
- **Instructions depend on environment state**: You need to observe the prepared environment to write effective instructions
|
|
11
|
+
- **Complex or high-risk work**: For critical changes, reviewing the starting state adds confidence before execution
|
|
12
|
+
|
|
13
|
+
## Creating a Staged Task
|
|
14
|
+
|
|
15
|
+
When launching a task—either from an objective or directly—select the **Staged** option (on the home page, click the *Name and Save* icon or press F2). The system will:
|
|
16
|
+
|
|
17
|
+
1. Build and start the container with all dependencies
|
|
18
|
+
2. Clone and sync repositories to the specified branches
|
|
19
|
+
3. Run environment setup scripts
|
|
20
|
+
4. Stop before executing the agent
|
|
21
|
+
5. Mark the task as "staged" and wait for your instructions
|
|
22
|
+
|
|
23
|
+
The container is fully prepared, but the agent is idle. You can take your time reviewing and preparing before starting execution.
|
|
24
|
+
|
|
25
|
+
## Inspecting the Environment
|
|
26
|
+
|
|
27
|
+
While a task is staged, you can:
|
|
28
|
+
|
|
29
|
+
- **Open a terminal**: Access the container directly to inspect files, run commands, or verify setup
|
|
30
|
+
- **Open VS Code**: Launch a VS Code session (browser-based) connected to the container for a full IDE experience
|
|
31
|
+
- **Start an application server**: If your environment includes an app server, start it to test web interfaces
|
|
32
|
+
- **Run IBM i sessions**: For IBM i environments, launch 5250 or Rich Display sessions to interact with legacy applications using the temporary library list assigned to the container
|
|
33
|
+
- **Review branches**: Confirm the correct branches are checked out in each repository
|
|
34
|
+
- **Check dependencies**: Verify build tools and runtime dependencies are available
|
|
35
|
+
- **Test manually**: Run your application or tests to ensure the environment is ready
|
|
36
|
+
|
|
37
|
+
This inspection step catches configuration issues before you spend agent time on a broken environment.
|
|
38
|
+
|
|
39
|
+
## Starting Execution
|
|
40
|
+
|
|
41
|
+
When you're ready for the agent to begin:
|
|
42
|
+
|
|
43
|
+
1. Open the staged task
|
|
44
|
+
2. Write or refine your additional instructions under follow-up instructions
|
|
45
|
+
3. Attach any additional files or screenshots
|
|
46
|
+
4. Submit to start execution
|
|
47
|
+
|
|
48
|
+
The agent immediately begins working with your finalized instructions. The task transitions from "staged" to "running," and you can monitor progress in real-time.
|
|
49
|
+
|
|
50
|
+
## Staged Tasks vs. Regular Tasks
|
|
51
|
+
|
|
52
|
+
| Aspect | Regular Task | Staged Task |
|
|
53
|
+
|--------|--------------|-------------|
|
|
54
|
+
| Container setup | Automatic | Automatic |
|
|
55
|
+
| Agent starts | Immediately after setup | When you explicitly start it |
|
|
56
|
+
| Instruction timing | Provided at creation | Can be refined before start |
|
|
57
|
+
| Environment inspection | After agent runs | Before agent runs |
|
|
58
|
+
| Use case | Well-defined work | Exploratory or high-stakes work |
|
|
59
|
+
|
|
60
|
+
Choose staged tasks when you need the extra control. For routine work where you're confident in your instructions and environment, regular tasks are more efficient.
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# Working with Objectives
|
|
2
|
+
|
|
3
|
+
Objectives are where you plan, draft, and refine your requirements before executing work. They provide a permanent space to develop your ideas—from initial rough concepts through to well-defined specifications ready for AI agents to implement.
|
|
4
|
+
|
|
5
|
+
## When to Use Objectives
|
|
6
|
+
|
|
7
|
+
For simple, straightforward tasks where you know exactly what needs to be done, you can create and launch a task directly. But objectives become valuable when:
|
|
8
|
+
|
|
9
|
+
- **Requirements need refinement**: You have a general idea but need to work through the specifics
|
|
10
|
+
- **Work is complex**: The task benefits from being broken down into smaller pieces
|
|
11
|
+
- **You expect iteration**: You'll likely need multiple attempts to get the implementation right
|
|
12
|
+
- **You want history**: You want to track how requirements evolved and compare different approaches
|
|
13
|
+
|
|
14
|
+
Think of objectives as living documents that grow more precise over time, informed by the results of tasks launched from them.
|
|
15
|
+
|
|
16
|
+
## The Objective Tree
|
|
17
|
+
|
|
18
|
+
Objectives are hierarchical. A top-level objective can contain sub-objectives, which can contain their own sub-objectives, and so on. The home page displays this structure as an interactive tree view.
|
|
19
|
+
|
|
20
|
+
This hierarchy lets you:
|
|
21
|
+
|
|
22
|
+
- **Break down large initiatives**: Decompose "Redesign the checkout flow" into discrete pieces like "Update cart summary," "Add payment options," "Improve confirmation page"
|
|
23
|
+
- **Organize related work**: Group objectives by feature area, sprint, or any structure that makes sense for your team
|
|
24
|
+
- **Track progress visually**: See at a glance which parts of a larger initiative have been addressed
|
|
25
|
+
|
|
26
|
+
Sub-objectives inherit context from their parents, making it easy to understand where each piece fits in the bigger picture.
|
|
27
|
+
|
|
28
|
+
## Creating Objectives
|
|
29
|
+
|
|
30
|
+
Create a new objective from the home page or objectives view. Provide:
|
|
31
|
+
|
|
32
|
+
- **Name**: A clear, descriptive title for the work
|
|
33
|
+
- **Environment**: Which development environment (Docker image) agents should use
|
|
34
|
+
- **Instructions**: Detailed requirements, context, and any specific guidance for agents
|
|
35
|
+
- **Attachments**: Screenshots, mockups, documentation, or other reference materials
|
|
36
|
+
- **Agents**: Which AI agents can work on this objective (Claude, Codex, Gemini, etc.)
|
|
37
|
+
|
|
38
|
+
For sub-objectives, select a parent objective to nest under. The new objective appears in the tree beneath its parent.
|
|
39
|
+
|
|
40
|
+
## Launching Tasks
|
|
41
|
+
|
|
42
|
+
When you're ready to execute work defined in an objective, launch a task from it:
|
|
43
|
+
|
|
44
|
+
1. Open the objective
|
|
45
|
+
2. Choose which agent(s) to use (you can override the objective's defaults)
|
|
46
|
+
3. Decide whether to launch immediately or as a staged task
|
|
47
|
+
4. Launch
|
|
48
|
+
|
|
49
|
+
Launching creates a new, independent task that runs in its own container. The objective itself remains unchanged—it's the parent record that tracks all tasks launched from it.
|
|
50
|
+
|
|
51
|
+
You can launch multiple tasks from the same objective:
|
|
52
|
+
- Run the same objective with different agents to compare approaches
|
|
53
|
+
- Iterate on requirements by launching new tasks after refining the objective
|
|
54
|
+
- Re-attempt work if an earlier task didn't produce satisfactory results
|
|
55
|
+
|
|
56
|
+
## The Iterative Workflow
|
|
57
|
+
|
|
58
|
+
Objectives shine in an iterative workflow:
|
|
59
|
+
|
|
60
|
+
1. **Start with what you know**: Create an objective with your initial understanding of the requirements. It doesn't need to be perfect.
|
|
61
|
+
|
|
62
|
+
2. **Launch and observe**: Run a task from the objective. Watch how the agent interprets your instructions and what questions or assumptions arise from its work.
|
|
63
|
+
|
|
64
|
+
3. **Learn and refine**: Review the results. Often, seeing an agent's attempt reveals gaps or ambiguities in the original requirements. Update the objective with what you learned.
|
|
65
|
+
|
|
66
|
+
4. **Relaunch**: Submit another task with the improved requirements. Each iteration brings you closer to the right solution.
|
|
67
|
+
|
|
68
|
+
This cycle continues until the work meets your expectations. Throughout, the objective serves as your canonical requirements document, improving with each iteration.
|
|
69
|
+
|
|
70
|
+
## Managing Your Work
|
|
71
|
+
|
|
72
|
+
### Pinning
|
|
73
|
+
|
|
74
|
+
Pin objectives you're actively working on to keep them visible in your default view. As you complete work, unpin objectives to move them out of your active workspace. They remain accessible in the "All" view for future reference.
|
|
75
|
+
|
|
76
|
+
### Viewing Task History
|
|
77
|
+
|
|
78
|
+
Each objective tracks all tasks launched from it. You can review:
|
|
79
|
+
- Which tasks have been launched and their outcomes
|
|
80
|
+
- How requirements evolved between task attempts
|
|
81
|
+
- Which agent produced each result
|
|
82
|
+
|
|
83
|
+
This history helps you understand what worked, what didn't, and why.
|
|
84
|
+
|
|
85
|
+
### Parent-Child Navigation
|
|
86
|
+
|
|
87
|
+
Navigate the objective tree to understand context:
|
|
88
|
+
- From a sub-objective, see its parent and siblings
|
|
89
|
+
- From a parent, see all its children and their status
|
|
90
|
+
- Collapse or expand branches to focus on relevant areas
|
|
91
|
+
|
|
92
|
+
## Best Practices
|
|
93
|
+
|
|
94
|
+
**Start broad, then refine**: Begin with high-level objectives and break them down as you understand the work better. You don't need the full hierarchy upfront.
|
|
95
|
+
|
|
96
|
+
**Include context**: Give agents background on why the work matters, not just what to do. Context helps agents make better decisions when requirements are ambiguous.
|
|
97
|
+
|
|
98
|
+
**Attach visual references**: Screenshots, mockups, and examples are often clearer than text descriptions. Agents can interpret images and use them to guide their work.
|
|
99
|
+
|
|
100
|
+
**Review before relaunching**: After a task completes, review what worked and what didn't before updating the objective. Targeted refinements are more effective than wholesale rewrites.
|
|
101
|
+
|
|
102
|
+
**Use the tree for organization**: Group related objectives under common parents. This makes it easier to find work and understand how pieces relate to each other.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Approval & Deployment
|
|
2
|
+
|
|
3
|
+
Once a task completes successfully, you review the changes and decide whether to approve and deploy them. This is the final step before code goes into your repositories.
|
|
4
|
+
|
|
5
|
+
## Reviewing Changes
|
|
6
|
+
|
|
7
|
+
Before approving, carefully review what the agent changed.
|
|
8
|
+
|
|
9
|
+
### Changes Review Process
|
|
10
|
+
|
|
11
|
+
1. **Open task detail** page for completed task
|
|
12
|
+
2. **Scroll to "Results" section**
|
|
13
|
+
3. **View files changed** showing git diffs for each repository
|
|
14
|
+
4. **Review test results** (passed/failed counts)
|
|
15
|
+
5. **Read activity feed** to understand what was done
|
|
16
|
+
|
|
17
|
+
## Approving Tasks
|
|
18
|
+
|
|
19
|
+
When you're satisfied with the changes, approve them to commit and optionally push.
|
|
20
|
+
|
|
21
|
+
### Approval Workflow
|
|
22
|
+
|
|
23
|
+
1. **Click "Approve" button** on task detail
|
|
24
|
+
2. **Adjust generated commit message** if desired
|
|
25
|
+
3. **Choose deployment options**:
|
|
26
|
+
- **Pull from remote after commit (rebase)**: Keep local branch up to date
|
|
27
|
+
- **Push to branch**: Immediately push to the current/default branch
|
|
28
|
+
- **Create new branch**: Create a new branch for this work
|
|
29
|
+
- **Commit only**: Commit but don't push (manual push later)
|
|
30
|
+
5. **Click **Commit Changes** when ready
|
|
31
|
+
|
|
32
|
+
### Approval Restrictions
|
|
33
|
+
|
|
34
|
+
You cannot approve if:
|
|
35
|
+
- **No changes**: Task made no file modifications
|
|
36
|
+
- **No container**: Environment has been deleted
|
|
37
|
+
- **Task is queued or running**: Wait for task to complete
|
|
38
|
+
- **Permissions**: You don't have permission to approve for this environment
|
|
39
|
+
|
|
40
|
+
### After Approval
|
|
41
|
+
|
|
42
|
+
Once approved:
|
|
43
|
+
- Changes are **committed** with your commit message
|
|
44
|
+
- Changes are **pushed** (if you selected that option)
|
|
45
|
+
- Task status shows **"Approved"**
|
|
46
|
+
- Approver info is recorded (name, email, timestamp)
|
|
47
|
+
- Previous approval status is cleared if you provide follow-up instructions
|
|
48
|
+
|
|
49
|
+
## Deployment Workflow
|
|
50
|
+
|
|
51
|
+
### Full Task Lifecycle
|
|
52
|
+
|
|
53
|
+
1. **Create task** with instructions
|
|
54
|
+
2. **Agent runs** autonomously
|
|
55
|
+
3. **Review changes** (patches, logs, tests)
|
|
56
|
+
4. **Provide feedback** if needed (follow-up instructions)
|
|
57
|
+
5. **Agent resumes** and refines work
|
|
58
|
+
6. **Repeat until satisfied** (steps 3-5)
|
|
59
|
+
7. **Approve changes** when complete
|
|
60
|
+
8. **Changes deployed** to your deployment target
|
|
61
|
+
|
|
62
|
+
### Multi-Variant Deployment
|
|
63
|
+
|
|
64
|
+
When comparing multiple agents (task groups):
|
|
65
|
+
|
|
66
|
+
1. **All variants complete**
|
|
67
|
+
2. **Judge tasks evaluate** (if auto-judge enabled)
|
|
68
|
+
3. **You select winner** (manually or via judge recommendation)
|
|
69
|
+
4. **Approve winner variant**
|
|
70
|
+
5. **Changes from winner** are deployed
|
|
71
|
+
6. **Other variants** remain available for reference
|
|
72
|
+
7. **Loser variants** can be deleted or archived
|
|
73
|
+
|
|
74
|
+
### Approval Audit Trail
|
|
75
|
+
|
|
76
|
+
CoderFlow tracks:
|
|
77
|
+
- **Approver**: Who approved the changes
|
|
78
|
+
- **Approval time**: When approval was given
|
|
79
|
+
- **Commit message**: What was written
|
|
80
|
+
- **Branch deployed to**: Where changes went
|
|
81
|
+
- **Remote push**: Whether changes were pushed
|
|
82
|
+
|
|
83
|
+
This creates an audit trail for compliance and history.
|