Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module github.com/flashcatcloud/flashduty-cli
go 1.25.1

require (
github.com/flashcatcloud/go-flashduty v0.14.4
github.com/flashcatcloud/go-flashduty v0.14.5
github.com/mattn/go-runewidth v0.0.28
github.com/spf13/cobra v1.10.2
github.com/spf13/pflag v1.0.10
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
github.com/clipperhouse/uax29/v2 v2.2.0 h1:ChwIKnQN3kcZteTXMgb1wztSgaU+ZemkgWdohwgs8tY=
github.com/clipperhouse/uax29/v2 v2.2.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM=
github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
github.com/flashcatcloud/go-flashduty v0.14.4 h1:b+Hrkt631lP41o5M4fqxgLZPGd85CHvCnch1qv3Dj+E=
github.com/flashcatcloud/go-flashduty v0.14.4/go.mod h1:YpHiTYXR5NXBI/rGRZfUy537XMkhdCkwA8NW1QoRHwk=
github.com/flashcatcloud/go-flashduty v0.14.5 h1:MNiKJTogpO9MDU50rN5G3OUXpq7O3Tv+l4iNw2SJyGY=
github.com/flashcatcloud/go-flashduty v0.14.5/go.mod h1:YpHiTYXR5NXBI/rGRZfUy537XMkhdCkwA8NW1QoRHwk=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/mattn/go-runewidth v0.0.28 h1:rPyg2ybwEKPebvpzVWe1gKBkH8EQFkxO4Y0hjBeLaBU=
Expand Down
718 changes: 718 additions & 0 deletions internal/cli/zz_generated_artifacts.go

Large diffs are not rendered by default.

12 changes: 12 additions & 0 deletions internal/cli/zz_generated_manifest.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions internal/cli/zz_generated_register.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions internal/cli/zz_generated_response_help.go

Large diffs are not rendered by default.

50 changes: 50 additions & 0 deletions internal/cli/zz_generated_status_pages.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

63 changes: 63 additions & 0 deletions skills/flashduty/reference/safari.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,69 @@ Update A2A agent
- `--team-id` int64 — Reassign team scope. Omit to leave unchanged. Reassigning requires rights on the destination team; if the team changes without also sending a new environment binding, the existing runner binding must remain selectable by the caller or the update is rejected.
- body-only (`--data`): auth_config (object)

### artifact-gallery-delete <artifact-id>
Remove artifact from gallery
- `<artifact-id>` (positional, required) string — Artifact ID ('art_' prefix). Also the key of the public-share link.

### artifact-gallery-file-state <file-id> [<id2>...]
Get file publish state
- `<file-ids>` (positional, required) stringSlice — Presented-file IDs ('pf_' prefix) to probe. At most 50 per call; duplicates and empty strings are ignored.
- response: `{items: [...]}` page wrapper — pipe `--json | jq '.items[]'` (NOT top-level `.[]`) — items fields: artifact_id (string); file_id (string); gallery_path (string); title (string)

### artifact-gallery-get <artifact-id>
Get artifact detail
- `<artifact-id>` (positional, required) string — Artifact ID ('art_' prefix). Also the key of the public-share link.
- response: single object (`data` unwrapped to the top level) — fields: artifact_id (string); can_edit (boolean); content_type (string); created_at (string); creator_name (string); file_id (string); is_mine (boolean); name (string); person_id (integer); public_url (string); session_id (string); session_title (string); share_enabled (boolean); share_file_id (string); shared_at (string); shared_by (integer); size (integer); team_id (integer); team_name (string); title (string); updated_at (string)

### artifact-gallery-list
List artifacts
- `--asc` bool — Sort ascending when true, descending when false. Applies only when 'orderby' is set.
- `--limit` int64 — Page size. Defaults to 20; capped at 100. (max 100)
- `--orderby` string — Sort field: 'created_at' or 'updated_at'. Empty means 'updated_at' descending. · enum: created_at | updated_at
- `--page` int64 — Page number, 1-based. (min 1)
- `--query` string — Case-insensitive substring match on the artifact title.
- `--scope` string — Visibility scope. 'all' (default) lists the caller's own personal artifacts plus artifacts of every team the caller belongs to; 'personal' lists only the caller's own; 'team' lists only team-owned artifacts of the caller's teams. · enum: all | personal | team
- `--team-ids` intSlice — Restrict to artifacts owned by these team IDs, intersected with the caller's visibility — teams the caller does not belong to silently return nothing.
- response: `{items: [...], total}` page wrapper — pipe `--json | jq '.items[]'` (NOT top-level `.[]`) — items fields: artifact_id (string); can_edit (boolean); content_type (string); created_at (string); creator_name (string); file_id (string); is_mine (boolean); name (string); person_id (integer); public_url (string); session_id (string); session_title (string); share_enabled (boolean); share_file_id (string); shared_at (string); shared_by (integer); size (integer); team_id (integer); team_name (string); title (string); updated_at (string)

### artifact-gallery-publish-from-file <file-id>
Publish file as artifact
- `<file-id>` (positional, required) string — Presented-file ID ('pf_' prefix) of a file produced in a session, as shown on the file card in chat.
- `--title` string (required) — Gallery display title. Trimmed; must be non-empty.
- response: single object (`data` unwrapped to the top level) — fields: artifact_id (string); gallery_path (string); title (string)

### artifact-gallery-share-enable <artifact-id>
Enable public sharing
- `<artifact-id>` (positional, required) string — Artifact ID ('art_' prefix). Also the key of the public-share link.
- response: single object (`data` unwrapped to the top level) — fields: artifact_id (string); public_url (string); share_enabled (boolean); shared_at (string); shared_by (integer)

### artifact-gallery-share-revoke <artifact-id>
Revoke public sharing
- `<artifact-id>` (positional, required) string — Artifact ID ('art_' prefix). Also the key of the public-share link.

### artifact-gallery-share-sync <artifact-id>
Update shared snapshot
- `<artifact-id>` (positional, required) string — Artifact ID ('art_' prefix). Also the key of the public-share link.
- response: same shape as `artifact-gallery-share-enable <artifact-id>` above

### artifact-gallery-update <artifact-id>
Update artifact
- `<artifact-id>` (positional, required) string — Artifact ID ('art_' prefix). Also the key of the public-share link.
- `--team-id` int64 — Transfer target scope. '0' moves the artifact to personal scope (only the creator can manage it); a positive value moves it to a team the caller must belong to. Omit to leave unchanged.
- `--title` string — New title. Trimmed; must be non-empty when provided. Omit to leave unchanged.
- response: same shape as `artifact-gallery-get <artifact-id>` above

### artifact-sign <file-id>
Create signed file URLs
- `<file-id>` (positional, required) string — Presented-file ID ('pf_' prefix) to sign.
- `--share-token` string — Optional session share-link token. Needed only when the caller reaches the file through a shared session link rather than account membership.
- response: single object (`data` unwrapped to the top level) — fields: content_type (string); download_url (string); expires_in (integer); name (string); preview_url (string); size (integer)

### artifact-stream
Download or preview a file
- `--mode` string — 'download' (default) serves the file as an attachment; 'preview' serves it inline for browser display. Any other value falls back to 'download'. · enum: download | preview
- `--t` string (required) — Signed token issued by 'POST /safari/artifact/sign'. Bound to the calling account and person; valid for 5 minutes.

### automation-rule-create
Create Automation rule
- `--cron-expr` string (required) — Run cadence. Supports 4 fields ('hour day month weekday', minute defaults to 0) and 5 fields ('minute hour day month weekday'). The minute must be one fixed integer; 6-field seconds are not supported. A cron that sets both day-of-month and day-of-week is rejected. The create API currently requires this field even for HTTP-POST-only rules; send a valid cron and set 'schedule_trigger_enabled=false'.
Expand Down
6 changes: 6 additions & 0 deletions skills/flashduty/reference/status-page.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,12 @@ Create status page
Delete status page
- `<page-id>` (positional, required) int64 — Status page ID; obtain it from 'GET /status-page/list'.

### draft-create
Create status page draft
- `--source` string — Opaque marker of the drafting origin, e.g. 'ai_sre:sess_xxx'. Up to 64 characters. (≤64 chars)
- body-only (`--data`): draft (object) (required)
- response: single object (`data` unwrapped to the top level) — fields: created_at (string); draft_id (string)

### info <page-id>
Get status page detail
- `<page-id>` (positional, required) int64 — Status page ID.
Expand Down