@profoundlogic/coderflow-server 0.7.5 → 0.7.7
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/dist/base-image/agent-wrapper.sh +3 -1
- package/dist/coder-server.js +1 -1
- package/dist/config.js +1 -1
- package/dist/lib/agent-keepalive.js +1 -1
- package/dist/lib/agent-models.js +1 -1
- package/dist/lib/api-keys.js +1 -1
- package/dist/lib/apiKeys.js +1 -1
- package/dist/lib/app-server-ports.js +1 -1
- package/dist/lib/auto-judge.js +1 -1
- package/dist/lib/automation-service.js +1 -1
- package/dist/lib/basic-auth.js +1 -1
- package/dist/lib/bindings.js +1 -1
- package/dist/lib/build-history.js +1 -1
- package/dist/lib/build-output-service.js +1 -1
- package/dist/lib/build-scheduler.js +1 -1
- package/dist/lib/build-service.js +1 -1
- package/dist/lib/ca-certificates.js +1 -1
- package/dist/lib/claude-oauth-refresh.js +1 -1
- package/dist/lib/cli/build.js +1 -1
- package/dist/lib/cli/cleanup-users.js +1 -1
- package/dist/lib/cli/config-command.js +1 -1
- package/dist/lib/cli/config.js +1 -1
- package/dist/lib/cli/create-user.js +1 -1
- package/dist/lib/cli/grant-admin.js +1 -1
- package/dist/lib/cli/init.js +1 -1
- package/dist/lib/cli/jira.js +1 -1
- package/dist/lib/cli/license.js +1 -1
- package/dist/lib/cli/list-roles.js +1 -1
- package/dist/lib/cli/list-users.js +1 -1
- package/dist/lib/cli/server-manager.js +1 -1
- package/dist/lib/cli/set-password.js +1 -1
- package/dist/lib/config-migration.js +1 -1
- package/dist/lib/container-credential-sync.js +1 -1
- package/dist/lib/container-tokens.js +1 -1
- package/dist/lib/data-dir.js +1 -1
- package/dist/lib/deployment-history.js +1 -1
- package/dist/lib/deployment-service.js +1 -1
- package/dist/lib/docker-utils.js +1 -1
- package/dist/lib/email.js +1 -1
- package/dist/lib/emailTemplates.js +1 -1
- package/dist/lib/entitlement.js +1 -1
- package/dist/lib/external-connections.js +1 -1
- package/dist/lib/fetch-utils.js +1 -1
- package/dist/lib/git-commit-details-route.js +1 -1
- package/dist/lib/git-history-diff-guardrails.js +1 -1
- package/dist/lib/git-provider-service.js +1 -1
- package/dist/lib/git-provider-setup/github-setup-handler.js +1 -1
- package/dist/lib/git-provider-setup/index.js +1 -1
- package/dist/lib/git-provider-setup/setup-factory.js +1 -1
- package/dist/lib/git-provider-setup/setup-interface.js +1 -1
- package/dist/lib/git-providers/azure-devops-provider.js +1 -1
- package/dist/lib/git-providers/github-app-provider.js +1 -1
- package/dist/lib/git-providers/index.js +1 -1
- package/dist/lib/git-providers/provider-factory.js +1 -1
- package/dist/lib/git-providers/provider-interface.js +1 -1
- package/dist/lib/github-urls.js +1 -1
- package/dist/lib/group-objective-linking.js +1 -1
- package/dist/lib/ibmi-sync.js +1 -1
- package/dist/lib/jira-client.js +1 -1
- package/dist/lib/judge-blinding.js +1 -1
- package/dist/lib/logger.js +1 -1
- package/dist/lib/memory-utils.js +1 -1
- package/dist/lib/migration-to-scoped-rbac.js +1 -1
- package/dist/lib/model-fetcher.js +1 -1
- package/dist/lib/notifications.js +1 -1
- package/dist/lib/objective-context.js +1 -1
- package/dist/lib/oidc-auth.js +1 -1
- package/dist/lib/oidc-device-flow.js +1 -1
- package/dist/lib/passwordTokens.js +1 -1
- package/dist/lib/permission-resolver.js +1 -1
- package/dist/lib/pin-cascade.js +1 -1
- package/dist/lib/provider-accounts.js +1 -1
- package/dist/lib/provider-oauth.js +1 -1
- package/dist/lib/provider-profile.js +1 -1
- package/dist/lib/provider-token-refresh.js +1 -1
- package/dist/lib/rbac-user-state.js +1 -1
- package/dist/lib/request-url.js +1 -1
- package/dist/lib/rewind.js +1 -1
- package/dist/lib/role-definitions.js +1 -1
- package/dist/lib/roles.js +1 -1
- package/dist/lib/secrets.js +1 -1
- package/dist/lib/setup-repo-git-auth.js +1 -1
- package/dist/lib/state-capture.js +1 -1
- package/dist/lib/static-files.js +1 -1
- package/dist/lib/task-aliases.js +1 -1
- package/dist/lib/task-name-format.js +1 -1
- package/dist/lib/task-name-generator.js +1 -1
- package/dist/lib/task-source-metadata.js +1 -1
- package/dist/lib/teams.js +1 -1
- package/dist/lib/user-git-oauth.js +1 -1
- package/dist/lib/user-git-tokens.js +1 -1
- package/dist/lib/users.js +1 -1
- package/dist/middleware/requireAuth.js +1 -1
- package/dist/middleware/requireInit.js +1 -1
- package/dist/middleware/requirePermission.js +1 -1
- package/dist/package.json +1 -1
- package/dist/playwright.config.js +1 -1
- package/dist/playwright.task-terminal.config.js +1 -1
- package/dist/routes/apiKeys.js +1 -1
- package/dist/routes/auth-oidc.js +1 -1
- package/dist/routes/auth.js +1 -1
- package/dist/routes/automations.js +1 -1
- package/dist/routes/bindings.js +1 -1
- package/dist/routes/build.js +1 -1
- package/dist/routes/containers.js +1 -1
- package/dist/routes/deploy-task.js +1 -1
- package/dist/routes/environment-management.js +1 -1
- package/dist/routes/environments.js +1 -1
- package/dist/routes/external-skills.js +1 -1
- package/dist/routes/git-credentials.js +1 -1
- package/dist/routes/git-oauth.js +1 -1
- package/dist/routes/git-provider-setup.js +1 -1
- package/dist/routes/health.js +1 -1
- package/dist/routes/jira.js +1 -1
- package/dist/routes/objective-management.js +1 -1
- package/dist/routes/password.js +1 -1
- package/dist/routes/prompt.js +1 -1
- package/dist/routes/provider-auth.js +1 -1
- package/dist/routes/qa.js +1 -1
- package/dist/routes/roles.js +1 -1
- package/dist/routes/settings.js +1 -1
- package/dist/routes/skill-management.js +1 -1
- package/dist/routes/skills.js +1 -1
- package/dist/routes/tasks.js +1 -1
- package/dist/routes/teams.js +1 -1
- package/dist/routes/templates.js +1 -1
- package/dist/routes/test-task.js +1 -1
- package/dist/routes/test.js +1 -1
- package/dist/routes/users.js +1 -1
- package/dist/routes/visualizations.js +1 -1
- package/dist/scripts/create-user.js +1 -1
- package/dist/scripts/migrate-config-to-data-dir.js +1 -1
- package/dist/shipped-skills/environment-templates/SKILL.md +152 -17
- package/dist/start.js +1 -1
- package/dist/web-ui/public/activity-detail-modal.js +1 -1
- package/dist/web-ui/public/activity-feed.js +1 -1
- package/dist/web-ui/public/activity-formatters.js +1 -1
- package/dist/web-ui/public/agent-event-parser.js +1 -1
- package/dist/web-ui/public/app.js +1 -1
- package/dist/web-ui/public/approve-dialog.js +1 -1
- package/dist/web-ui/public/automation-links.js +1 -1
- package/dist/web-ui/public/automation-schedule.js +1 -1
- package/dist/web-ui/public/comments-widget.js +1 -1
- package/dist/web-ui/public/diff-utils.js +1 -1
- package/dist/web-ui/public/environments.js +1 -1
- package/dist/web-ui/public/feedback-widget.css +6 -0
- package/dist/web-ui/public/feedback-widget.js +1 -1
- package/dist/web-ui/public/file-selection-tree.js +1 -1
- package/dist/web-ui/public/git-history-lazy-utils.js +1 -1
- package/dist/web-ui/public/git-history.js +1 -1
- package/dist/web-ui/public/git-status.js +1 -1
- package/dist/web-ui/public/ibmi-file-filter.js +1 -1
- package/dist/web-ui/public/index.js +1 -1
- package/dist/web-ui/public/login.js +1 -1
- package/dist/web-ui/public/markdown-editor.js +1 -1
- package/dist/web-ui/public/markdown-file-editor.js +1 -1
- package/dist/web-ui/public/modal-maximize.js +1 -1
- package/dist/web-ui/public/notifications.js +1 -1
- package/dist/web-ui/public/permissions.js +1 -1
- package/dist/web-ui/public/pr-dialog.js +1 -1
- package/dist/web-ui/public/roles.js +1 -1
- package/dist/web-ui/public/server-health.js +1 -1
- package/dist/web-ui/public/settings.js +1 -1
- package/dist/web-ui/public/setup-password.js +1 -1
- package/dist/web-ui/public/skills.js +1 -1
- package/dist/web-ui/public/sse-client.js +1 -1
- package/dist/web-ui/public/sse-shared-worker.js +1 -1
- package/dist/web-ui/public/task-judging-helpers.js +1 -1
- package/dist/web-ui/public/task.js +1 -1
- package/dist/web-ui/public/teams.js +1 -1
- package/dist/web-ui/public/terminal.js +1 -1
- package/dist/web-ui/public/theme.js +1 -1
- package/dist/web-ui/public/users.js +1 -1
- package/dist/web-ui/public/variant-grouping.js +1 -1
- package/package.json +1 -1
|
@@ -67,20 +67,119 @@ Templates consist of two files:
|
|
|
67
67
|
2. **`<name>.json`** (optional) - Template metadata (description, parameters)
|
|
68
68
|
|
|
69
69
|
### Metadata JSON Structure
|
|
70
|
+
|
|
71
|
+
The metadata JSON has a `description` string and an optional `parameters` object. **Parameters are keyed by name** (an object map, not an array).
|
|
72
|
+
|
|
70
73
|
```json
|
|
71
74
|
{
|
|
72
75
|
"description": "Brief description shown in template picker",
|
|
73
|
-
"parameters":
|
|
74
|
-
{
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
|
|
76
|
+
"parameters": {
|
|
77
|
+
"feature_name": {
|
|
78
|
+
"required": true,
|
|
79
|
+
"description": "Help text shown in the UI",
|
|
80
|
+
"default": "optional default value"
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
#### Parameter Fields
|
|
87
|
+
|
|
88
|
+
Each parameter supports:
|
|
89
|
+
- `required` (boolean) - Whether the parameter must be filled in. Default: `false`
|
|
90
|
+
- `description` (string) - Help text shown in the UI
|
|
91
|
+
- `default` (string) - Default value if not provided
|
|
92
|
+
- `prompt` (object) - Interactive selection configuration (see below)
|
|
93
|
+
|
|
94
|
+
Parameters without a `prompt` are rendered as plain text inputs.
|
|
95
|
+
|
|
96
|
+
#### Prompt Configuration (Interactive Selection)
|
|
97
|
+
|
|
98
|
+
Add a `prompt` object to a parameter to render it as an interactive selector instead of a text input.
|
|
99
|
+
|
|
100
|
+
**Common prompt fields (all prompt types):**
|
|
101
|
+
- `type` (required) - One of: `"list"`, `"command"`, `"files"`
|
|
102
|
+
- `label` (string) - Label shown on the prompt button/dialog
|
|
103
|
+
- `multiSelect` (boolean) - Allow selecting multiple values. Default: `false`. Max 4 multi-select parameters per template. Selected values are joined as a comma-separated string.
|
|
104
|
+
|
|
105
|
+
#### Prompt Type: `list` (hard-coded options)
|
|
106
|
+
|
|
107
|
+
```json
|
|
108
|
+
{
|
|
109
|
+
"parameters": {
|
|
110
|
+
"output_format": {
|
|
111
|
+
"required": true,
|
|
112
|
+
"description": "Output format to generate",
|
|
113
|
+
"prompt": {
|
|
114
|
+
"type": "list",
|
|
115
|
+
"label": "Select Format",
|
|
116
|
+
"multiSelect": true,
|
|
117
|
+
"options": [
|
|
118
|
+
{ "value": "json", "label": "JSON", "description": "Standard JSON output" },
|
|
119
|
+
{ "value": "csv", "label": "CSV", "description": "Comma-separated values" },
|
|
120
|
+
{ "value": "xml", "label": "XML" }
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
- `options` (required) - Array of choices. Each requires `value` (string). Optional: `label` (display text, defaults to value), `description` (smaller helper text).
|
|
129
|
+
|
|
130
|
+
#### Prompt Type: `command` (dynamic options from shell command)
|
|
131
|
+
|
|
132
|
+
```json
|
|
133
|
+
{
|
|
134
|
+
"parameters": {
|
|
135
|
+
"branch": {
|
|
136
|
+
"required": true,
|
|
137
|
+
"description": "Git branch to work on",
|
|
138
|
+
"prompt": {
|
|
139
|
+
"type": "command",
|
|
140
|
+
"label": "Select Branch",
|
|
141
|
+
"command": "git branch -a",
|
|
142
|
+
"parser": "git-branches"
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
- `command` (required) - Shell command to run in the container to generate choices
|
|
150
|
+
- `parser` - How to parse output. One of: `"json"` (default, expects `[{value, label?, description?}, ...]`), `"lines"` (newline-separated values), `"git-branches"` (parses git branch output), `"files"` (parses file paths)
|
|
151
|
+
- `repos` (array of strings) - Optional repo names to scope the command to
|
|
152
|
+
|
|
153
|
+
#### Prompt Type: `files` (file/directory browser)
|
|
154
|
+
|
|
155
|
+
```json
|
|
156
|
+
{
|
|
157
|
+
"parameters": {
|
|
158
|
+
"source_file": {
|
|
159
|
+
"required": true,
|
|
160
|
+
"description": "Source file to process",
|
|
161
|
+
"prompt": {
|
|
162
|
+
"type": "files",
|
|
163
|
+
"label": "Select File",
|
|
164
|
+
"multiSelect": true,
|
|
165
|
+
"path": "src/",
|
|
166
|
+
"include": "files",
|
|
167
|
+
"pattern": "*.{js,ts,tsx}"
|
|
168
|
+
}
|
|
79
169
|
}
|
|
80
|
-
|
|
170
|
+
}
|
|
81
171
|
}
|
|
82
172
|
```
|
|
83
173
|
|
|
174
|
+
- `path` (required) - Directory path relative to `/workspace`
|
|
175
|
+
- `include` - What to show: `"files"` (default), `"directories"`, or `"both"`
|
|
176
|
+
- `pattern` (string) - Optional glob pattern filter (e.g., `"*.{rpg,rpgle,sqlrpgle}"`)
|
|
177
|
+
- `repos` (array of strings) - Optional repo names to scope to
|
|
178
|
+
|
|
179
|
+
#### Multi-Select and Batch Processing
|
|
180
|
+
|
|
181
|
+
When `multiSelect: true`, the UI renders checkboxes instead of radio buttons. If multiple parameters have `multiSelect` enabled, the system generates a cartesian product of all selected values, creating a separate task for each combination. Max 4 multi-select parameters per template, max 100 total combinations.
|
|
182
|
+
|
|
84
183
|
### Template Content Syntax
|
|
85
184
|
|
|
86
185
|
**CRITICAL**: Template parameters must use `${parameter_name}` syntax (dollar sign + curly braces), NOT `{{parameter_name}}`.
|
|
@@ -153,14 +252,33 @@ curl -s "${CODERFLOW_SERVER_URL}/api/environment-management/templates/bug-fix" \
|
|
|
153
252
|
# Create a temporary file with the complete JSON payload
|
|
154
253
|
cat > /tmp/template-payload.json <<'EOF'
|
|
155
254
|
{
|
|
156
|
-
"content": "# API Endpoint Implementation\n\n
|
|
255
|
+
"content": "# API Endpoint Implementation\n\nCreate a ${http_method} endpoint at ${endpoint_path}.\n\n${description}",
|
|
157
256
|
"metadata": {
|
|
158
257
|
"description": "Create a new API endpoint",
|
|
159
|
-
"parameters":
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
258
|
+
"parameters": {
|
|
259
|
+
"endpoint_path": {
|
|
260
|
+
"required": true,
|
|
261
|
+
"description": "URL path for the endpoint (e.g., /api/users)"
|
|
262
|
+
},
|
|
263
|
+
"http_method": {
|
|
264
|
+
"required": true,
|
|
265
|
+
"description": "HTTP method",
|
|
266
|
+
"prompt": {
|
|
267
|
+
"type": "list",
|
|
268
|
+
"label": "Select HTTP Method",
|
|
269
|
+
"options": [
|
|
270
|
+
{ "value": "GET" },
|
|
271
|
+
{ "value": "POST" },
|
|
272
|
+
{ "value": "PUT" },
|
|
273
|
+
{ "value": "DELETE" }
|
|
274
|
+
]
|
|
275
|
+
}
|
|
276
|
+
},
|
|
277
|
+
"description": {
|
|
278
|
+
"required": false,
|
|
279
|
+
"description": "Additional context for the endpoint"
|
|
280
|
+
}
|
|
281
|
+
}
|
|
164
282
|
}
|
|
165
283
|
}
|
|
166
284
|
EOF
|
|
@@ -179,12 +297,29 @@ curl -s -X PUT "${CODERFLOW_SERVER_URL}/api/environment-management/templates/api
|
|
|
179
297
|
-H "X-Task-Id: ${TASK_ID}" \
|
|
180
298
|
-d @- <<'EOF'
|
|
181
299
|
{
|
|
182
|
-
"content": "# API Endpoint Implementation\n\
|
|
300
|
+
"content": "# API Endpoint Implementation\n\nCreate a ${http_method} endpoint at ${endpoint_path}.",
|
|
183
301
|
"metadata": {
|
|
184
302
|
"description": "Create a new API endpoint",
|
|
185
|
-
"parameters":
|
|
186
|
-
|
|
187
|
-
|
|
303
|
+
"parameters": {
|
|
304
|
+
"endpoint_path": {
|
|
305
|
+
"required": true,
|
|
306
|
+
"description": "URL path for the endpoint"
|
|
307
|
+
},
|
|
308
|
+
"http_method": {
|
|
309
|
+
"required": true,
|
|
310
|
+
"description": "HTTP method",
|
|
311
|
+
"prompt": {
|
|
312
|
+
"type": "list",
|
|
313
|
+
"label": "Select HTTP Method",
|
|
314
|
+
"options": [
|
|
315
|
+
{ "value": "GET" },
|
|
316
|
+
{ "value": "POST" },
|
|
317
|
+
{ "value": "PUT" },
|
|
318
|
+
{ "value": "DELETE" }
|
|
319
|
+
]
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
}
|
|
188
323
|
}
|
|
189
324
|
}
|
|
190
325
|
EOF
|