@superglue/cli 1.1.163 → 1.1.165

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.
@@ -44,10 +44,10 @@ Read these on demand — they are authoritative for their topic and kept in sync
44
44
 
45
45
  **Authentication & Credentials**
46
46
 
47
- - Authentication must ALWAYS be explicitly configured — nothing is injected automatically in any protocol.
48
- - HTTP: include auth headers using `<<systemId_credentialKey>>` (e.g. `"Authorization": "Bearer <<my_api_access_token>>"`). `sg system find --id <id>` prints each secret's exact placeholder; `sg system call` rejects bare `<<credentialKey>>` placeholders before sending.
47
+ - `sg system call --system-id <id> --url <url>` selects your credential (starred, then your oldest, then a shared one), refreshes OAuth tokens, and adds the `Authorization` header for `oauth2`, `basic_auth`, and `api_key` systems. The output reports `credential` and `auth`; `auth.applied: "unavailable"` names what is missing. Pass `--credential-id` to use a specific credential. `--url` is the absolute URL, or `<<systemId_url>>` plus the path for tenant-specific hosts.
48
+ - Pass `--headers` with `<<systemId_credentialKey>>` placeholders only when the API expects another header or a query parameter; that replaces the default header. `sg system find --id <id>` prints each secret's exact placeholder; `sg system call` rejects bare `<<credentialKey>>` placeholders before sending.
49
+ - Saved tool steps inject nothing: put the auth header or connection string in the step config.
49
50
  - Databases/Redis/file servers: embed credential placeholders in the connection URL (e.g. `postgres://<<sys_user>>:<<sys_pass>>@host/db`).
50
- - OAuth: token refresh is automatic, but the header must still be explicit.
51
51
 
52
52
  **Saving tools**
53
53
 
@@ -101,11 +101,11 @@ Verify with `sg whoami` or `sg system list` — should return authenticated cont
101
101
 
102
102
  Set via `SUPERGLUE_CLI_PRESET` env var or `config.json` as `"preset"`. Legacy `sg init --preset` still writes this value for existing scripts.
103
103
 
104
- | Preset | Description |
105
- | --------- | ---------------------------------------------------------------------------------------------- |
106
- | `runner` | Run saved tools by ID only. Read-only lookups. No building/editing |
107
- | `builder` | Runner + build/edit/save tools, call systems, manage MCP servers and schedules. No system CRUD |
108
- | `admin` | Full access (default) |
104
+ | Preset | Description |
105
+ | --------- | -------------------------------------------------------------------------------------------------------------- |
106
+ | `runner` | Run saved tools by ID only. Read-only lookups. No building/editing |
107
+ | `builder` | Runner + build/edit/save tools, call systems, manage MCP servers, schedules, and project tasks. No system CRUD |
108
+ | `admin` | Full access (default) |
109
109
 
110
110
  Blocked commands print a clear error showing the current preset and how to change it.
111
111
 
@@ -203,6 +203,25 @@ Optional flags:
203
203
  - `--retries <n>` and `--timeout <ms>` set request options.
204
204
  - `--clear-webhook` removes the webhook/tool-chain success action during edit.
205
205
 
206
+ ### Managing Project Tasks
207
+
208
+ Projects group tasks in four status columns: `not_started`, `in_progress`, `waiting`, and `done`. Task order is per column. `--position` is the 0-based index in the column: `0` is the top, and values past the end place the task last.
209
+
210
+ ```bash
211
+ sg project list
212
+ sg project task list --project <projectId>
213
+ sg project task create --project <projectId> --name "Map customer fields"
214
+ sg project task create --project <projectId> --name "Fix blockers" --position 0
215
+ sg project task edit --project <projectId> --id <taskId> --position 0
216
+ sg project task edit --project <projectId> --id <taskId> --status done
217
+ ```
218
+
219
+ - `sg project task list` returns tasks in board order with each task's `position`. Add `--full` for descriptions and attachments.
220
+ - A new task, or a status change without `--position`, goes to the end of its column. Other edits keep the order.
221
+ - `sg project task edit` changes only the given fields. `--clear-due-date` and `--unassign` clear those fields.
222
+ - `--resource-refs` replaces the attachment list. Task attachments also join the project.
223
+ - Tasks cannot be deleted from the CLI. Archived projects reject task writes.
224
+
206
225
  ---
207
226
 
208
227
  ## Reference
@@ -221,7 +240,7 @@ Agents familiar with the web agent (its native tools and the `superglue` node mo
221
240
  | `tools.writeSystem` (superglue/approved; saved) | `sg system edit --id <id> ...` | Edits the system with that exact ID |
222
241
  | `run_command` with `vfs` for `/org/systems/` | `sg system find <query>` / `--id <id>` | Returns secret-key presence and the system URL |
223
242
  | Credentials VFS / saved credentials | `sg system credentials get/set/clear` | Manage the current user's credentials for a system |
224
- | `tools.callSystem` | `sg system call --url "..." --system-id <id>` | Authenticated ad-hoc calls for testing / schema introspection |
243
+ | `tools.callSystem` | `sg system call --system-id <id> --url <url>` | Ad-hoc calls; credential and auth header are added server-side |
225
244
  | `run_command search` | `sg system search-docs --system-id <id> -k` | Targeted keyword search over ingested system docs |
226
245
  | `authenticate_oauth` | `sg system oauth --system-id <id> [--scopes]` | Opens browser flow. Supports `--grant-type client_credentials` too |
227
246
  | `run_command` with `vfs` for `/org/runs/` | `sg run list` / `sg run get <runId>` | Filter `list` by `--tool`, `--status`, `--source`, `--limit` |
@@ -230,6 +249,9 @@ Agents familiar with the web agent (its native tools and the `superglue` node mo
230
249
  | `tools.writeMcpServer` (superglue/approved) | `sg mcp edit --id <id> ...` | Edits name, auth mode, description, or selected tool IDs |
231
250
  | `tools.writeSchedule` (superglue module; new) | `sg schedule create --tool <id> --cron <expr>` | Creates a cron schedule for a saved tool |
232
251
  | `tools.writeSchedule` (superglue/approved; id) | `sg schedule edit --tool <id> --id <schedule>` | Updates, enables, or disables an existing schedule |
252
+ | `run_command` with `vfs` for `/projects/` | `sg project list` / `sg project task list` | Tasks are listed in board order with `position` |
253
+ | `tools.writeTask` (superglue module; no id) | `sg project task create --project <id>` | Same fields; `--position` places the task in its column |
254
+ | `tools.writeTask` (superglue module; id) | `sg project task edit --project <p> --id <t>` | Updates only the given fields, including `--position` |
233
255
  | (no direct equivalent) | `sg login`, `sg update`, `sg skill` | CLI-specific setup, updater, and this reference system |
234
256
 
235
257
  Web-agent-only concepts with no CLI equivalent: `run_command`'s virtual filesystem (CLI uses concrete `sg` subcommands), `authenticate_oauth`'s dedicated MCP `authenticate` tool (CLI uses `sg system oauth`), and `setup_gateway` (the gateway install command is created in the web app).
@@ -271,8 +293,8 @@ sg system find --id my_api
271
293
  sg system credentials get --system-id my_api
272
294
  sg system credentials set --system-id my_api --credentials '{"api_key":"sk-xxx"}'
273
295
  sg system credentials clear --system-id my_api
274
- sg system call --url https://api.example.com/users --system-id my_api --method GET \
275
- --headers '{"Authorization":"Bearer <<my_api_access_token>>"}'
296
+ sg system call --system-id my_api --url "<<my_api_url>>/users"
297
+ sg system call --system-id my_api --url https://api.example.com/users --headers '{"X-API-Key":"<<my_api_api_key>>"}'
276
298
  sg system search-docs --system-id slack -k "send message channels"
277
299
  sg system oauth --system-id gmail --scopes "https://www.googleapis.com/auth/gmail.modify"
278
300
  sg system oauth --system-id my_api --grant-type client_credentials --scopes "read write"
@@ -291,6 +313,16 @@ sg mcp edit --id <serverId> --remove-tool old_tool
291
313
  sg mcp edit --id <serverId> --auth-mode creator_api_key
292
314
  ```
293
315
 
316
+ **Project commands:**
317
+
318
+ ```bash
319
+ sg project list --include-archived
320
+ sg project task list --project crm-migration --status in_progress
321
+ sg project task create --project crm-migration --name "Await credentials" --status waiting --due-date 2026-11-01
322
+ sg project task edit --project crm-migration --id await-credentials --status in_progress --position 0
323
+ sg project task edit --project crm-migration --id await-credentials --description-file notes.md --unassign
324
+ ```
325
+
294
326
  **Run commands:**
295
327
 
296
328
  ```bash
@@ -520,7 +552,7 @@ System id="stripe", selected credential has secret named: api_key
520
552
  → Available as: <<stripe_api_key>>
521
553
  ```
522
554
 
523
- **Auth header patterns:**
555
+ **Auth header patterns for tool steps** (`sg system call` adds the Bearer or Basic header itself):
524
556
 
525
557
  ```json
526
558
  {"Authorization": "Bearer <<stripe_api_key>>"}
@@ -34,13 +34,13 @@ For APIs that require the same query key multiple times, use an array value:
34
34
 
35
35
  ## Authentication
36
36
 
37
- Credentials are never injected automatically. You must place auth headers explicitly using `<<systemId_credentialKey>>` syntax.
37
+ Saved tool steps never inject credentials: place auth headers explicitly with `<<systemId_credentialKey>>` placeholders. `sg system call` adds the `Authorization` header itself for `oauth2` (Bearer), `basic_auth` (Basic), and `api_key` (Bearer) systems; pass your own header only when the API expects a different one.
38
38
 
39
39
  ```javascript
40
- // Bearer token (including OAuth — token refresh is automatic, header is not)
40
+ // Bearer token (including OAuth — token refresh is automatic, the step header is not)
41
41
  { "Authorization": "Bearer <<systemId_access_token>>" }
42
42
 
43
- // API key
43
+ // API key in a custom header
44
44
  { "X-API-Key": "<<systemId_api_key>>" }
45
45
 
46
46
  // Basic Auth — auto-encoded to Base64, do NOT manually encode
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superglue/cli",
3
- "version": "1.1.163",
3
+ "version": "1.1.165",
4
4
  "bin": {
5
5
  "sg": "./dist/cli.js"
6
6
  },
@@ -44,10 +44,10 @@ Read these on demand — they are authoritative for their topic and kept in sync
44
44
 
45
45
  **Authentication & Credentials**
46
46
 
47
- - Authentication must ALWAYS be explicitly configured — nothing is injected automatically in any protocol.
48
- - HTTP: include auth headers using `<<systemId_credentialKey>>` (e.g. `"Authorization": "Bearer <<my_api_access_token>>"`). `sg system find --id <id>` prints each secret's exact placeholder; `sg system call` rejects bare `<<credentialKey>>` placeholders before sending.
47
+ - `sg system call --system-id <id> --url <url>` selects your credential (starred, then your oldest, then a shared one), refreshes OAuth tokens, and adds the `Authorization` header for `oauth2`, `basic_auth`, and `api_key` systems. The output reports `credential` and `auth`; `auth.applied: "unavailable"` names what is missing. Pass `--credential-id` to use a specific credential. `--url` is the absolute URL, or `<<systemId_url>>` plus the path for tenant-specific hosts.
48
+ - Pass `--headers` with `<<systemId_credentialKey>>` placeholders only when the API expects another header or a query parameter; that replaces the default header. `sg system find --id <id>` prints each secret's exact placeholder; `sg system call` rejects bare `<<credentialKey>>` placeholders before sending.
49
+ - Saved tool steps inject nothing: put the auth header or connection string in the step config.
49
50
  - Databases/Redis/file servers: embed credential placeholders in the connection URL (e.g. `postgres://<<sys_user>>:<<sys_pass>>@host/db`).
50
- - OAuth: token refresh is automatic, but the header must still be explicit.
51
51
 
52
52
  **Saving tools**
53
53
 
@@ -101,11 +101,11 @@ Verify with `sg whoami` or `sg system list` — should return authenticated cont
101
101
 
102
102
  Set via `SUPERGLUE_CLI_PRESET` env var or `config.json` as `"preset"`. Legacy `sg init --preset` still writes this value for existing scripts.
103
103
 
104
- | Preset | Description |
105
- | --------- | ---------------------------------------------------------------------------------------------- |
106
- | `runner` | Run saved tools by ID only. Read-only lookups. No building/editing |
107
- | `builder` | Runner + build/edit/save tools, call systems, manage MCP servers and schedules. No system CRUD |
108
- | `admin` | Full access (default) |
104
+ | Preset | Description |
105
+ | --------- | -------------------------------------------------------------------------------------------------------------- |
106
+ | `runner` | Run saved tools by ID only. Read-only lookups. No building/editing |
107
+ | `builder` | Runner + build/edit/save tools, call systems, manage MCP servers, schedules, and project tasks. No system CRUD |
108
+ | `admin` | Full access (default) |
109
109
 
110
110
  Blocked commands print a clear error showing the current preset and how to change it.
111
111
 
@@ -203,6 +203,25 @@ Optional flags:
203
203
  - `--retries <n>` and `--timeout <ms>` set request options.
204
204
  - `--clear-webhook` removes the webhook/tool-chain success action during edit.
205
205
 
206
+ ### Managing Project Tasks
207
+
208
+ Projects group tasks in four status columns: `not_started`, `in_progress`, `waiting`, and `done`. Task order is per column. `--position` is the 0-based index in the column: `0` is the top, and values past the end place the task last.
209
+
210
+ ```bash
211
+ sg project list
212
+ sg project task list --project <projectId>
213
+ sg project task create --project <projectId> --name "Map customer fields"
214
+ sg project task create --project <projectId> --name "Fix blockers" --position 0
215
+ sg project task edit --project <projectId> --id <taskId> --position 0
216
+ sg project task edit --project <projectId> --id <taskId> --status done
217
+ ```
218
+
219
+ - `sg project task list` returns tasks in board order with each task's `position`. Add `--full` for descriptions and attachments.
220
+ - A new task, or a status change without `--position`, goes to the end of its column. Other edits keep the order.
221
+ - `sg project task edit` changes only the given fields. `--clear-due-date` and `--unassign` clear those fields.
222
+ - `--resource-refs` replaces the attachment list. Task attachments also join the project.
223
+ - Tasks cannot be deleted from the CLI. Archived projects reject task writes.
224
+
206
225
  ---
207
226
 
208
227
  ## Reference
@@ -221,7 +240,7 @@ Agents familiar with the web agent (its native tools and the `superglue` node mo
221
240
  | `tools.writeSystem` (superglue/approved; saved) | `sg system edit --id <id> ...` | Edits the system with that exact ID |
222
241
  | `run_command` with `vfs` for `/org/systems/` | `sg system find <query>` / `--id <id>` | Returns secret-key presence and the system URL |
223
242
  | Credentials VFS / saved credentials | `sg system credentials get/set/clear` | Manage the current user's credentials for a system |
224
- | `tools.callSystem` | `sg system call --url "..." --system-id <id>` | Authenticated ad-hoc calls for testing / schema introspection |
243
+ | `tools.callSystem` | `sg system call --system-id <id> --url <url>` | Ad-hoc calls; credential and auth header are added server-side |
225
244
  | `run_command search` | `sg system search-docs --system-id <id> -k` | Targeted keyword search over ingested system docs |
226
245
  | `authenticate_oauth` | `sg system oauth --system-id <id> [--scopes]` | Opens browser flow. Supports `--grant-type client_credentials` too |
227
246
  | `run_command` with `vfs` for `/org/runs/` | `sg run list` / `sg run get <runId>` | Filter `list` by `--tool`, `--status`, `--source`, `--limit` |
@@ -230,6 +249,9 @@ Agents familiar with the web agent (its native tools and the `superglue` node mo
230
249
  | `tools.writeMcpServer` (superglue/approved) | `sg mcp edit --id <id> ...` | Edits name, auth mode, description, or selected tool IDs |
231
250
  | `tools.writeSchedule` (superglue module; new) | `sg schedule create --tool <id> --cron <expr>` | Creates a cron schedule for a saved tool |
232
251
  | `tools.writeSchedule` (superglue/approved; id) | `sg schedule edit --tool <id> --id <schedule>` | Updates, enables, or disables an existing schedule |
252
+ | `run_command` with `vfs` for `/projects/` | `sg project list` / `sg project task list` | Tasks are listed in board order with `position` |
253
+ | `tools.writeTask` (superglue module; no id) | `sg project task create --project <id>` | Same fields; `--position` places the task in its column |
254
+ | `tools.writeTask` (superglue module; id) | `sg project task edit --project <p> --id <t>` | Updates only the given fields, including `--position` |
233
255
  | (no direct equivalent) | `sg login`, `sg update`, `sg skill` | CLI-specific setup, updater, and this reference system |
234
256
 
235
257
  Web-agent-only concepts with no CLI equivalent: `run_command`'s virtual filesystem (CLI uses concrete `sg` subcommands), `authenticate_oauth`'s dedicated MCP `authenticate` tool (CLI uses `sg system oauth`), and `setup_gateway` (the gateway install command is created in the web app).
@@ -271,8 +293,8 @@ sg system find --id my_api
271
293
  sg system credentials get --system-id my_api
272
294
  sg system credentials set --system-id my_api --credentials '{"api_key":"sk-xxx"}'
273
295
  sg system credentials clear --system-id my_api
274
- sg system call --url https://api.example.com/users --system-id my_api --method GET \
275
- --headers '{"Authorization":"Bearer <<my_api_access_token>>"}'
296
+ sg system call --system-id my_api --url "<<my_api_url>>/users"
297
+ sg system call --system-id my_api --url https://api.example.com/users --headers '{"X-API-Key":"<<my_api_api_key>>"}'
276
298
  sg system search-docs --system-id slack -k "send message channels"
277
299
  sg system oauth --system-id gmail --scopes "https://www.googleapis.com/auth/gmail.modify"
278
300
  sg system oauth --system-id my_api --grant-type client_credentials --scopes "read write"
@@ -291,6 +313,16 @@ sg mcp edit --id <serverId> --remove-tool old_tool
291
313
  sg mcp edit --id <serverId> --auth-mode creator_api_key
292
314
  ```
293
315
 
316
+ **Project commands:**
317
+
318
+ ```bash
319
+ sg project list --include-archived
320
+ sg project task list --project crm-migration --status in_progress
321
+ sg project task create --project crm-migration --name "Await credentials" --status waiting --due-date 2026-11-01
322
+ sg project task edit --project crm-migration --id await-credentials --status in_progress --position 0
323
+ sg project task edit --project crm-migration --id await-credentials --description-file notes.md --unassign
324
+ ```
325
+
294
326
  **Run commands:**
295
327
 
296
328
  ```bash
@@ -520,7 +552,7 @@ System id="stripe", selected credential has secret named: api_key
520
552
  → Available as: <<stripe_api_key>>
521
553
  ```
522
554
 
523
- **Auth header patterns:**
555
+ **Auth header patterns for tool steps** (`sg system call` adds the Bearer or Basic header itself):
524
556
 
525
557
  ```json
526
558
  {"Authorization": "Bearer <<stripe_api_key>>"}
@@ -34,13 +34,13 @@ For APIs that require the same query key multiple times, use an array value:
34
34
 
35
35
  ## Authentication
36
36
 
37
- Credentials are never injected automatically. You must place auth headers explicitly using `<<systemId_credentialKey>>` syntax.
37
+ Saved tool steps never inject credentials: place auth headers explicitly with `<<systemId_credentialKey>>` placeholders. `sg system call` adds the `Authorization` header itself for `oauth2` (Bearer), `basic_auth` (Basic), and `api_key` (Bearer) systems; pass your own header only when the API expects a different one.
38
38
 
39
39
  ```javascript
40
- // Bearer token (including OAuth — token refresh is automatic, header is not)
40
+ // Bearer token (including OAuth — token refresh is automatic, the step header is not)
41
41
  { "Authorization": "Bearer <<systemId_access_token>>" }
42
42
 
43
- // API key
43
+ // API key in a custom header
44
44
  { "X-API-Key": "<<systemId_api_key>>" }
45
45
 
46
46
  // Basic Auth — auto-encoded to Base64, do NOT manually encode