@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.
Files changed (202) hide show
  1. package/LICENSE.txt +322 -0
  2. package/README.md +158 -0
  3. package/dist/LICENSE.txt +322 -0
  4. package/dist/README.md +158 -0
  5. package/dist/base-image/Dockerfile +184 -0
  6. package/dist/base-image/agent-wrapper.sh +143 -0
  7. package/dist/base-image/apply-local-state.sh +357 -0
  8. package/dist/base-image/coder-git-credential-helper +307 -0
  9. package/dist/base-image/entrypoint.sh +942 -0
  10. package/dist/base-image/ssh_config_template +41 -0
  11. package/dist/base-image/start-code-server.sh +76 -0
  12. package/dist/base-image/sync-repos.sh +170 -0
  13. package/dist/base-image/vscode-extensions.txt +10 -0
  14. package/dist/base-image/vscode-settings.json +41 -0
  15. package/dist/coder-server.js +2 -0
  16. package/dist/config/cli-models.json +45 -0
  17. package/dist/config/imported-skills.schema.json +83 -0
  18. package/dist/config/skill-catalog.json +18 -0
  19. package/dist/config/skill-catalog.schema.json +140 -0
  20. package/dist/config.js +1 -0
  21. package/dist/examples/oidc.json.example +11 -0
  22. package/dist/lib/agent-keepalive.js +1 -0
  23. package/dist/lib/api-keys.js +1 -0
  24. package/dist/lib/apiKeys.js +1 -0
  25. package/dist/lib/auto-judge.js +1 -0
  26. package/dist/lib/basic-auth.js +1 -0
  27. package/dist/lib/build-history.js +1 -0
  28. package/dist/lib/build-output-service.js +1 -0
  29. package/dist/lib/build-scheduler.js +1 -0
  30. package/dist/lib/build-service.js +1 -0
  31. package/dist/lib/claude-oauth-refresh.js +1 -0
  32. package/dist/lib/cli/build.js +1 -0
  33. package/dist/lib/cli/config-command.js +1 -0
  34. package/dist/lib/cli/config.js +1 -0
  35. package/dist/lib/cli/create-user.js +1 -0
  36. package/dist/lib/cli/init.js +1 -0
  37. package/dist/lib/cli/jira.js +1 -0
  38. package/dist/lib/cli/license.js +1 -0
  39. package/dist/lib/cli/server-manager.js +1 -0
  40. package/dist/lib/container-tokens.js +1 -0
  41. package/dist/lib/data-dir.js +1 -0
  42. package/dist/lib/deployment-history.js +1 -0
  43. package/dist/lib/deployment-service.js +1 -0
  44. package/dist/lib/docker-utils.js +1 -0
  45. package/dist/lib/email.js +1 -0
  46. package/dist/lib/emailTemplates.js +1 -0
  47. package/dist/lib/entitlement.js +1 -0
  48. package/dist/lib/fetch-utils.js +1 -0
  49. package/dist/lib/git-provider-service.js +1 -0
  50. package/dist/lib/git-provider-setup/assets/coderflow_github_app.png +0 -0
  51. package/dist/lib/git-provider-setup/github-setup-handler.js +1 -0
  52. package/dist/lib/git-provider-setup/index.js +1 -0
  53. package/dist/lib/git-provider-setup/setup-factory.js +1 -0
  54. package/dist/lib/git-provider-setup/setup-interface.js +1 -0
  55. package/dist/lib/git-providers/azure-devops-provider.js +1 -0
  56. package/dist/lib/git-providers/github-app-provider.js +1 -0
  57. package/dist/lib/git-providers/index.js +1 -0
  58. package/dist/lib/git-providers/provider-factory.js +1 -0
  59. package/dist/lib/git-providers/provider-interface.js +1 -0
  60. package/dist/lib/jira-client.js +1 -0
  61. package/dist/lib/logger.js +1 -0
  62. package/dist/lib/model-fetcher.js +1 -0
  63. package/dist/lib/notifications.js +1 -0
  64. package/dist/lib/oidc-auth.js +1 -0
  65. package/dist/lib/oidc-device-flow.js +1 -0
  66. package/dist/lib/passwordTokens.js +1 -0
  67. package/dist/lib/pin-cascade.js +1 -0
  68. package/dist/lib/provider-accounts.js +1 -0
  69. package/dist/lib/provider-oauth.js +1 -0
  70. package/dist/lib/provider-profile.js +1 -0
  71. package/dist/lib/provider-token-refresh.js +1 -0
  72. package/dist/lib/roles.js +1 -0
  73. package/dist/lib/secrets.js +1 -0
  74. package/dist/lib/state-capture.js +1 -0
  75. package/dist/lib/static-files.js +1 -0
  76. package/dist/lib/task-name-generator.js +1 -0
  77. package/dist/lib/users.js +1 -0
  78. package/dist/middleware/requireAuth.js +1 -0
  79. package/dist/middleware/requireInit.js +1 -0
  80. package/dist/middleware/requirePermission.js +1 -0
  81. package/dist/package-lock.json +4151 -0
  82. package/dist/package.json +50 -0
  83. package/dist/routes/apiKeys.js +1 -0
  84. package/dist/routes/auth-oidc.js +1 -0
  85. package/dist/routes/auth.js +1 -0
  86. package/dist/routes/build.js +1 -0
  87. package/dist/routes/containers.js +1 -0
  88. package/dist/routes/deploy-task.js +1 -0
  89. package/dist/routes/environment-management.js +1 -0
  90. package/dist/routes/environments.js +1 -0
  91. package/dist/routes/external-skills.js +1 -0
  92. package/dist/routes/git-credentials.js +1 -0
  93. package/dist/routes/git-provider-setup.js +1 -0
  94. package/dist/routes/health.js +1 -0
  95. package/dist/routes/jira.js +1 -0
  96. package/dist/routes/objective-management.js +1 -0
  97. package/dist/routes/password.js +1 -0
  98. package/dist/routes/prompt.js +1 -0
  99. package/dist/routes/provider-auth.js +1 -0
  100. package/dist/routes/qa.js +1 -0
  101. package/dist/routes/settings.js +1 -0
  102. package/dist/routes/skill-management.js +1 -0
  103. package/dist/routes/skills.js +1 -0
  104. package/dist/routes/tasks.js +2 -0
  105. package/dist/routes/templates.js +1 -0
  106. package/dist/routes/test-task.js +1 -0
  107. package/dist/routes/test.js +1 -0
  108. package/dist/routes/users.js +1 -0
  109. package/dist/routes/visualizations.js +1 -0
  110. package/dist/schemas/template-metadata.schema.json +178 -0
  111. package/dist/scripts/create-user.js +2 -0
  112. package/dist/shipped-skills/environment-instructions/SKILL.md +154 -0
  113. package/dist/shipped-skills/environment-templates/SKILL.md +282 -0
  114. package/dist/shipped-skills/objective-management/SKILL.md +238 -0
  115. package/dist/shipped-skills/skill-editor/SKILL.md +326 -0
  116. package/dist/start.js +2 -0
  117. package/dist/web-ui/public/activity-detail-modal.js +1 -0
  118. package/dist/web-ui/public/activity-feed.js +1 -0
  119. package/dist/web-ui/public/activity-formatters.js +1 -0
  120. package/dist/web-ui/public/agent-event-parser.js +1 -0
  121. package/dist/web-ui/public/app.js +1 -0
  122. package/dist/web-ui/public/approve-dialog.js +1 -0
  123. package/dist/web-ui/public/coderflow-logo-reversed.svg +46 -0
  124. package/dist/web-ui/public/coderflow-logo.svg +46 -0
  125. package/dist/web-ui/public/comments-widget.js +1 -0
  126. package/dist/web-ui/public/docs/.nojekyll +0 -0
  127. package/dist/web-ui/public/docs/README.md +26 -0
  128. package/dist/web-ui/public/docs/_sidebar.md +47 -0
  129. package/dist/web-ui/public/docs/admin/ai-providers.md +132 -0
  130. package/dist/web-ui/public/docs/admin/email-notifications.md +69 -0
  131. package/dist/web-ui/public/docs/admin/environments.md +215 -0
  132. package/dist/web-ui/public/docs/admin/git-providers.md +147 -0
  133. package/dist/web-ui/public/docs/admin/installation.md +313 -0
  134. package/dist/web-ui/public/docs/admin/skills.md +35 -0
  135. package/dist/web-ui/public/docs/admin/sso.md +241 -0
  136. package/dist/web-ui/public/docs/admin/users-and-roles.md +57 -0
  137. package/dist/web-ui/public/docs/code/cli.md +102 -0
  138. package/dist/web-ui/public/docs/code/files-and-editing.md +86 -0
  139. package/dist/web-ui/public/docs/code/terminal-access.md +110 -0
  140. package/dist/web-ui/public/docs/code/vscode-extension.md +58 -0
  141. package/dist/web-ui/public/docs/getting-started/core-concepts.md +129 -0
  142. package/dist/web-ui/public/docs/getting-started/overview.md +46 -0
  143. package/dist/web-ui/public/docs/index.html +151 -0
  144. package/dist/web-ui/public/docs/integrations/custom.md +58 -0
  145. package/dist/web-ui/public/docs/integrations/ibmi/overview.md +58 -0
  146. package/dist/web-ui/public/docs/integrations/overview.md +48 -0
  147. package/dist/web-ui/public/docs/objectives/qa-mode.md +90 -0
  148. package/dist/web-ui/public/docs/objectives/staged-tasks.md +60 -0
  149. package/dist/web-ui/public/docs/objectives/working-with-objectives.md +102 -0
  150. package/dist/web-ui/public/docs/tasks/approval-and-deployment.md +83 -0
  151. package/dist/web-ui/public/docs/tasks/creating-tasks.md +111 -0
  152. package/dist/web-ui/public/docs/tasks/judging.md +114 -0
  153. package/dist/web-ui/public/docs/tasks/providing-feedback.md +41 -0
  154. package/dist/web-ui/public/docs/tasks/task-groups.md +73 -0
  155. package/dist/web-ui/public/docs/tasks/winner-selection.md +75 -0
  156. package/dist/web-ui/public/docs/templates/batch-processing.md +152 -0
  157. package/dist/web-ui/public/docs/templates/task-templates.md +44 -0
  158. package/dist/web-ui/public/docs/templates/template-examples.md +93 -0
  159. package/dist/web-ui/public/docs/testing/profound-automated-testing.md +77 -0
  160. package/dist/web-ui/public/docs/testing/task-visualizations.md +42 -0
  161. package/dist/web-ui/public/docs/testing/testing-menu.md +118 -0
  162. package/dist/web-ui/public/environments.css +3942 -0
  163. package/dist/web-ui/public/environments.html +1791 -0
  164. package/dist/web-ui/public/environments.js +1 -0
  165. package/dist/web-ui/public/favicon-16.png +0 -0
  166. package/dist/web-ui/public/favicon-32.png +0 -0
  167. package/dist/web-ui/public/favicon.ico +0 -0
  168. package/dist/web-ui/public/feedback-widget.css +3133 -0
  169. package/dist/web-ui/public/feedback-widget.js +1 -0
  170. package/dist/web-ui/public/git-history.css +2663 -0
  171. package/dist/web-ui/public/git-history.html +272 -0
  172. package/dist/web-ui/public/git-history.js +1 -0
  173. package/dist/web-ui/public/git-status.js +1 -0
  174. package/dist/web-ui/public/index.html +1459 -0
  175. package/dist/web-ui/public/index.js +1 -0
  176. package/dist/web-ui/public/login.html +346 -0
  177. package/dist/web-ui/public/login.js +1 -0
  178. package/dist/web-ui/public/markdown-editor.js +1 -0
  179. package/dist/web-ui/public/markdown-file-editor.js +1 -0
  180. package/dist/web-ui/public/modal-maximize.js +1 -0
  181. package/dist/web-ui/public/notifications.js +1 -0
  182. package/dist/web-ui/public/server-health.js +1 -0
  183. package/dist/web-ui/public/settings.css +761 -0
  184. package/dist/web-ui/public/settings.html +1044 -0
  185. package/dist/web-ui/public/settings.js +1 -0
  186. package/dist/web-ui/public/setup-password.html +355 -0
  187. package/dist/web-ui/public/setup-password.js +1 -0
  188. package/dist/web-ui/public/skills.css +1949 -0
  189. package/dist/web-ui/public/skills.html +820 -0
  190. package/dist/web-ui/public/skills.js +1 -0
  191. package/dist/web-ui/public/sse-client.js +1 -0
  192. package/dist/web-ui/public/sse-shared-worker.js +1 -0
  193. package/dist/web-ui/public/styles.css +18614 -0
  194. package/dist/web-ui/public/task.html +1779 -0
  195. package/dist/web-ui/public/task.js +1 -0
  196. package/dist/web-ui/public/terminal.html +45 -0
  197. package/dist/web-ui/public/terminal.js +1 -0
  198. package/dist/web-ui/public/theme.js +1 -0
  199. package/dist/web-ui/public/users.html +298 -0
  200. package/dist/web-ui/public/users.js +1 -0
  201. package/dist/web-ui/public/variant-grouping.js +1 -0
  202. 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.