@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,93 @@
|
|
|
1
|
+
# Template Examples
|
|
2
|
+
|
|
3
|
+
Templates can automate many types of repetitive work. Here are common use cases that show how templates turn manual, one-at-a-time tasks into scalable operations.
|
|
4
|
+
|
|
5
|
+
## Code Modernization
|
|
6
|
+
|
|
7
|
+
### Legacy RPG to Modern RPG
|
|
8
|
+
|
|
9
|
+
Convert fixed-format RPG to modern free-format RPG:
|
|
10
|
+
|
|
11
|
+
- **Parameter**: Source file to convert
|
|
12
|
+
- **Instructions**: Analyze the program, convert to free-format syntax, update data definitions, add documentation
|
|
13
|
+
- **Validation**: Compile the converted program, run Profound Automated Testing to verify behavior matches original
|
|
14
|
+
- **Batch**: Select all programs in a library and convert them in parallel
|
|
15
|
+
|
|
16
|
+
### Language Migration
|
|
17
|
+
|
|
18
|
+
Convert from legacy languages to modern platforms:
|
|
19
|
+
|
|
20
|
+
- **Parameter**: Source program
|
|
21
|
+
- **Instructions**: Analyze code structure, convert to target language (Node.js, .NET, Java), adapt platform-specific patterns
|
|
22
|
+
- **Validation**: Run Profound Automated Testing to ensure functional equivalence
|
|
23
|
+
- **Batch**: Migrate complete applications program by program
|
|
24
|
+
|
|
25
|
+
## Refactoring
|
|
26
|
+
|
|
27
|
+
### Code Pattern Updates
|
|
28
|
+
|
|
29
|
+
Apply consistent refactoring across a codebase:
|
|
30
|
+
|
|
31
|
+
- **Parameter**: File to refactor
|
|
32
|
+
- **Instructions**: Find deprecated patterns, replace with modern equivalents, update imports/dependencies
|
|
33
|
+
- **Validation**: Run tests, verify compilation
|
|
34
|
+
- **Batch**: Apply the same refactoring to every file matching a pattern
|
|
35
|
+
|
|
36
|
+
### API Modernization
|
|
37
|
+
|
|
38
|
+
Update legacy API calls to modern interfaces:
|
|
39
|
+
|
|
40
|
+
- **Parameter**: Program using legacy APIs
|
|
41
|
+
- **Instructions**: Identify deprecated API calls, update to current versions, handle signature changes
|
|
42
|
+
- **Validation**: Test API interactions, verify responses
|
|
43
|
+
- **Batch**: Update all programs using the legacy API
|
|
44
|
+
|
|
45
|
+
## Testing
|
|
46
|
+
|
|
47
|
+
### Test Generation
|
|
48
|
+
|
|
49
|
+
Generate tests for existing code:
|
|
50
|
+
|
|
51
|
+
- **Parameter**: Program or module to test
|
|
52
|
+
- **Instructions**: Analyze code paths, generate unit tests covering key scenarios, create test data
|
|
53
|
+
- **Output**: Test files ready for integration
|
|
54
|
+
- **Batch**: Generate tests for all modules in a project
|
|
55
|
+
|
|
56
|
+
### Test Expansion
|
|
57
|
+
|
|
58
|
+
Add coverage for edge cases:
|
|
59
|
+
|
|
60
|
+
- **Parameter**: Existing test file
|
|
61
|
+
- **Instructions**: Analyze current coverage, identify gaps, add tests for boundary conditions and error paths
|
|
62
|
+
- **Batch**: Expand coverage across entire test suite
|
|
63
|
+
|
|
64
|
+
## Documentation
|
|
65
|
+
|
|
66
|
+
### Code Documentation
|
|
67
|
+
|
|
68
|
+
Generate documentation from source code:
|
|
69
|
+
|
|
70
|
+
- **Parameter**: Source file or module
|
|
71
|
+
- **Instructions**: Analyze code structure, document functions/procedures, explain business logic, create usage examples
|
|
72
|
+
- **Output**: Markdown documentation files
|
|
73
|
+
- **Batch**: Document entire libraries or applications
|
|
74
|
+
|
|
75
|
+
### API Documentation
|
|
76
|
+
|
|
77
|
+
Generate API reference documentation:
|
|
78
|
+
|
|
79
|
+
- **Parameter**: API endpoint or service definition
|
|
80
|
+
- **Instructions**: Extract endpoint details, document parameters and responses, provide example requests
|
|
81
|
+
- **Batch**: Document all endpoints in a service
|
|
82
|
+
|
|
83
|
+
## Building Effective Templates
|
|
84
|
+
|
|
85
|
+
When creating templates for these use cases:
|
|
86
|
+
|
|
87
|
+
1. **Start specific**: Write instructions that work perfectly for one item
|
|
88
|
+
2. **Test thoroughly**: Validate the template produces correct results
|
|
89
|
+
3. **Parameterize carefully**: Only expose parameters users need to change
|
|
90
|
+
4. **Include validation**: Add steps for testing and verification
|
|
91
|
+
5. **Scale gradually**: Start with small batches before processing hundreds
|
|
92
|
+
|
|
93
|
+
See **Task Templates** for how to run templates, and **Batch Processing** for scaling to large operations.
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Profound Automated Testing
|
|
2
|
+
|
|
3
|
+
Profound Automated Testing verifies that refactored code behaves identically to the original. Tests are recorded once against your original application, then replayed automatically against refactored versions to detect any discrepancies in screens or data.
|
|
4
|
+
|
|
5
|
+
This is especially valuable for agent-driven refactoring tasks—like converting legacy RPG to modern RPG, or migrating from one language to another—where you need confidence that functionality remains intact.
|
|
6
|
+
|
|
7
|
+
## How It Works
|
|
8
|
+
|
|
9
|
+
### 1. Record Against the Original
|
|
10
|
+
|
|
11
|
+
Before refactoring begins, tests are recorded against your original application:
|
|
12
|
+
|
|
13
|
+
- Interact with the application (5250/Genie screens or Rich Display interfaces)
|
|
14
|
+
- The system captures JSON payloads representing the UI state at each step
|
|
15
|
+
- Database changes are also tracked at each step
|
|
16
|
+
- This creates a baseline without writing any test code
|
|
17
|
+
|
|
18
|
+
### 2. Validate to Establish Baseline
|
|
19
|
+
|
|
20
|
+
Run the recorded test against the original environment to establish expected outcomes:
|
|
21
|
+
|
|
22
|
+
- Data hashes are captured for each database table at every step
|
|
23
|
+
- These hashes become the reference for future comparisons
|
|
24
|
+
- Any dynamic elements (like timestamps) are accounted for
|
|
25
|
+
|
|
26
|
+
### 3. Replay Against Refactored Code
|
|
27
|
+
|
|
28
|
+
When an agent refactors code, the tests replay automatically:
|
|
29
|
+
|
|
30
|
+
- The same interactions run against the refactored application
|
|
31
|
+
- UI payloads are compared against the baseline
|
|
32
|
+
- Database changes are compared using the captured hashes
|
|
33
|
+
- Any differences are flagged—altered screens, missing data, unexpected changes
|
|
34
|
+
|
|
35
|
+
### 4. Review Results
|
|
36
|
+
|
|
37
|
+
After replay, you can see exactly what matched and what differed:
|
|
38
|
+
|
|
39
|
+
- Which screens rendered correctly
|
|
40
|
+
- Which data changes matched expectations
|
|
41
|
+
- Where discrepancies occurred and why
|
|
42
|
+
|
|
43
|
+
## Agent Integration
|
|
44
|
+
|
|
45
|
+
Agents run these tests automatically in **headless mode** during refactoring tasks. This means:
|
|
46
|
+
|
|
47
|
+
- Tests execute without manual intervention
|
|
48
|
+
- Multiple tests can run in parallel
|
|
49
|
+
- Results feed back into the agent's understanding of whether the refactor succeeded
|
|
50
|
+
- Agents can iterate on their changes if tests fail
|
|
51
|
+
|
|
52
|
+
This creates a tight feedback loop: the agent refactors, tests verify, and if something breaks, the agent knows immediately and can adjust.
|
|
53
|
+
|
|
54
|
+
## Modernization and Refactoring
|
|
55
|
+
|
|
56
|
+
Profound offers a combination of algorithmic and AI-based refactoring for enterprise modernization efforts, including:
|
|
57
|
+
|
|
58
|
+
- **5250 to Web**: Converting terminal-based interfaces to modern web applications
|
|
59
|
+
- **RPG to modern languages**: Transforming RPG code to Node.js, .NET, or Java
|
|
60
|
+
- **COBOL to modern languages**: Migrating COBOL applications to contemporary platforms
|
|
61
|
+
|
|
62
|
+
The algorithmic approach ensures consistent, predictable transformations for well-understood patterns, while AI handles nuanced decisions and edge cases. Profound Automated Testing validates these transformations automatically, ensuring the modernized application behaves identically to the original.
|
|
63
|
+
|
|
64
|
+
## When to Use
|
|
65
|
+
|
|
66
|
+
Profound Automated Testing is most valuable for:
|
|
67
|
+
|
|
68
|
+
- **Code modernization**: Converting legacy code to modern languages or frameworks
|
|
69
|
+
- **RPG refactoring**: Updating old RPG patterns to modern free-format RPG
|
|
70
|
+
- **Platform migrations**: Moving applications between environments
|
|
71
|
+
- **Large-scale changes**: Any refactoring where manual verification would be impractical
|
|
72
|
+
|
|
73
|
+
For smaller changes or new features, manual testing through the Testing menu may be sufficient. Automated testing shines when you need to verify that complex, existing functionality remains unchanged.
|
|
74
|
+
|
|
75
|
+
## Learn More
|
|
76
|
+
|
|
77
|
+
For detailed documentation on recording tests, configuring environments, and analyzing results, see the [Profound Automated Testing documentation](https://profoundlogicsupport.atlassian.net/wiki/spaces/PUI/pages/1461092365/Automated+Testing).
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Task Visualizations
|
|
2
|
+
|
|
3
|
+
As agents work on tasks, they automatically capture screenshots and screen states from applications they interact with. These visualizations show exactly what the agent saw during execution—giving you visibility into how the agent tested and verified its changes.
|
|
4
|
+
|
|
5
|
+
## What Gets Captured
|
|
6
|
+
|
|
7
|
+
Agents capture visualizations whenever they interact with running applications:
|
|
8
|
+
|
|
9
|
+
- **5250 terminal screens**: Character-based displays from IBM i systems and legacy applications
|
|
10
|
+
- **Rich Display screens**: Modern web interfaces built with Profound UI or similar frameworks
|
|
11
|
+
- **Web page screenshots**: Browser-rendered pages the agent navigated to
|
|
12
|
+
|
|
13
|
+
Captures happen automatically during task execution. Agents know when to capture screens automatically based on the testing context and instructions configured in the environment.
|
|
14
|
+
|
|
15
|
+
## Viewing Visualizations
|
|
16
|
+
|
|
17
|
+
After a task completes, you can view the captured screens:
|
|
18
|
+
|
|
19
|
+
1. Open the task detail page
|
|
20
|
+
2. Look for captured screens in the **Output Summary** section
|
|
21
|
+
|
|
22
|
+
Each visualization shows:
|
|
23
|
+
- The rendered screen as the agent saw it
|
|
24
|
+
- When it was captured during execution
|
|
25
|
+
- Which session or test produced it
|
|
26
|
+
|
|
27
|
+
For 5250 screens, visualizations render in a terminal-style format with proper formatting and colors. For web interfaces, you see the page as it appeared in the browser.
|
|
28
|
+
|
|
29
|
+
## Why Visualizations Matter
|
|
30
|
+
|
|
31
|
+
Visualizations help you:
|
|
32
|
+
|
|
33
|
+
- **Verify agent work**: See exactly what the agent tested, not just what it reported
|
|
34
|
+
- **Debug issues**: When something goes wrong, screenshots show the application state
|
|
35
|
+
- **Document changes**: Captured screens serve as visual evidence of testing
|
|
36
|
+
- **Understand legacy systems**: 5250 screens are rendered in a readable format even if you're unfamiliar with terminal interfaces
|
|
37
|
+
|
|
38
|
+
## Configuration
|
|
39
|
+
|
|
40
|
+
Visualizations require environment-level configuration to render certain screen types (especially 5250 screens). If visualizations aren't appearing for your environment, ask your administrator to check the environment settings.
|
|
41
|
+
|
|
42
|
+
See **Environments** in the Administration section for configuration details.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Testing Menu
|
|
2
|
+
|
|
3
|
+
The Testing menu provides tools to verify that agent changes work correctly. Start your application server, run test commands, and interact with your running application—all from the task toolbar.
|
|
4
|
+
|
|
5
|
+
## What is an Application Server?
|
|
6
|
+
|
|
7
|
+
An application server is the runtime environment where your code executes. In CoderFlow, the application server:
|
|
8
|
+
|
|
9
|
+
- Runs your application so you can test it interactively
|
|
10
|
+
- Exposes web URLs you can click to open the running application
|
|
11
|
+
- Enables manual testing and validation of code changes
|
|
12
|
+
- Captures screens for visualization and documentation
|
|
13
|
+
|
|
14
|
+
Application servers are configured per environment by administrators. See **Environments** in the Administration section for configuration details.
|
|
15
|
+
|
|
16
|
+
## Container Mode vs Proxy Mode
|
|
17
|
+
|
|
18
|
+
Environments can be configured with one of two application server modes:
|
|
19
|
+
|
|
20
|
+
### Container Mode
|
|
21
|
+
|
|
22
|
+
The application runs inside the task container itself. When you start the server, a command executes within the container (like `npm start` or a custom startup script), and the application begins listening for requests.
|
|
23
|
+
|
|
24
|
+
This mode is fully self-contained—the application runs in the same isolated environment where the agent made its changes.
|
|
25
|
+
|
|
26
|
+
### Proxy Mode
|
|
27
|
+
|
|
28
|
+
Requests are forwarded to an external application server running outside the container. This is common when connecting to:
|
|
29
|
+
|
|
30
|
+
- Remote IBM i systems
|
|
31
|
+
- Shared development servers
|
|
32
|
+
- External testing platforms
|
|
33
|
+
|
|
34
|
+
In proxy mode, CoderFlow acts as an intermediary, forwarding your requests to the external server and returning responses.
|
|
35
|
+
|
|
36
|
+
## Starting and Stopping
|
|
37
|
+
|
|
38
|
+
### Starting the Application Server
|
|
39
|
+
|
|
40
|
+
1. Open a task with an application server configured
|
|
41
|
+
2. Open the **Testing** menu in the toolbar
|
|
42
|
+
3. Click **Start Server** or use **Start Server & Launch** to start and open a URL in one step
|
|
43
|
+
4. Wait for the server to initialize
|
|
44
|
+
|
|
45
|
+
You can view server logs from the Testing menu while the server is running.
|
|
46
|
+
|
|
47
|
+
### Stopping the Application Server
|
|
48
|
+
|
|
49
|
+
Open the Testing menu and click **Stop Server**. The server also stops automatically when:
|
|
50
|
+
|
|
51
|
+
- The task is paused or stopped
|
|
52
|
+
- The container is removed
|
|
53
|
+
|
|
54
|
+
## Launch URLs
|
|
55
|
+
|
|
56
|
+
Launch URLs are pre-configured links that open specific pages in your running application. They appear in the Testing menu under **Launch URLs** (when the server is running) or **Start Server & Launch** (to start and open in one step).
|
|
57
|
+
|
|
58
|
+
Click any launch URL to open that page in a new browser tab. Common examples include:
|
|
59
|
+
|
|
60
|
+
- Application home page
|
|
61
|
+
- Admin dashboards
|
|
62
|
+
- Specific features or modules under development
|
|
63
|
+
|
|
64
|
+
Launch URLs are defined in the environment configuration. If you need different URLs, ask your administrator to update the environment settings.
|
|
65
|
+
|
|
66
|
+
## Running Tests
|
|
67
|
+
|
|
68
|
+
The Testing menu also provides access to test commands configured for your environment. These can include unit tests, integration tests, linting, or any custom commands your team has set up.
|
|
69
|
+
|
|
70
|
+
### Executing a Test
|
|
71
|
+
|
|
72
|
+
1. Open the **Testing** menu
|
|
73
|
+
2. Find your test under **Run Test Commands**
|
|
74
|
+
3. Click the test name
|
|
75
|
+
4. If the test has parameters, select or enter values when prompted
|
|
76
|
+
5. Click **Run** to execute
|
|
77
|
+
|
|
78
|
+
Test output streams in real-time. When complete, you'll see the exit code—0 means passed, non-zero means failed.
|
|
79
|
+
|
|
80
|
+
### Tests with Parameters
|
|
81
|
+
|
|
82
|
+
Some tests accept parameters to customize what runs. For example, a unit test might let you select which test file to run, or choose between debug and coverage modes. The UI prompts you for these values before execution.
|
|
83
|
+
|
|
84
|
+
If a test supports multiple selections, you can run the same test against several files or configurations in one go.
|
|
85
|
+
|
|
86
|
+
### Viewing Results
|
|
87
|
+
|
|
88
|
+
Test output appears in a results panel showing:
|
|
89
|
+
|
|
90
|
+
- Real-time command output
|
|
91
|
+
- Pass/fail status
|
|
92
|
+
- Exit code
|
|
93
|
+
- Error messages and stack traces (if failed)
|
|
94
|
+
|
|
95
|
+
Use test results alongside manual application testing to validate that agent changes work correctly.
|
|
96
|
+
|
|
97
|
+
## Providing Feedback
|
|
98
|
+
|
|
99
|
+
If you find issues while testing, you can provide feedback in two ways:
|
|
100
|
+
|
|
101
|
+
**From the task detail page:** Return to CoderFlow and send follow-up instructions describing what needs to change.
|
|
102
|
+
|
|
103
|
+
**From the application itself:** Use the feedback widget injected into your running application. This lets you capture context directly—take screenshots, select DOM elements, or record screen state—without leaving the application. Your feedback is sent to the agent along with the captured context.
|
|
104
|
+
|
|
105
|
+
The in-app feedback widget is especially useful when issues are easier to show than describe.
|
|
106
|
+
|
|
107
|
+
## Testing Workflow
|
|
108
|
+
|
|
109
|
+
A typical testing workflow:
|
|
110
|
+
|
|
111
|
+
1. Agent completes a task with code changes
|
|
112
|
+
2. Run automated tests from the Testing menu to catch obvious issues
|
|
113
|
+
3. Start the application server and open a launch URL
|
|
114
|
+
4. Manually test the changes—verify the fix works, check for regressions
|
|
115
|
+
5. If issues are found, provide feedback (from the app or task page)
|
|
116
|
+
6. When satisfied, approve and deploy the changes
|
|
117
|
+
|
|
118
|
+
Combining automated tests with hands-on verification gives you confidence that the changes are ready for production.
|