@shuffl/cli 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/README.md +7 -7
- package/dist/commands.generated.js +170 -0
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -14,7 +14,7 @@ shuffl --help
|
|
|
14
14
|
|
|
15
15
|
Or run it without installing: `npx @shuffl/cli --help`. To pin it in a project, add `@shuffl/cli` as a dev dependency and run `npx shuffl`. The CLI is built on [`@shuffl/sdk`](https://www.npmjs.com/package/@shuffl/sdk) and released with it under one version; its operation names, help and input flags are generated from the public API contract.
|
|
16
16
|
|
|
17
|
-
`shuffl permissions list --json` discovers endpoint grants. Each command’s `--help` shows its permission ID and Read/Write classification. Create a delegated key with `shuffl credentials api create --input-file key-command.json --json`, using a `permissions` array such as `["users.list", "groups.save"]`. The issuer must hold `credentials.api.create` and every requested permission. See [endpoint permissions](https://shuffl
|
|
17
|
+
`shuffl permissions list --json` discovers endpoint grants. Each command’s `--help` shows its permission ID and Read/Write classification. Create a delegated key with `shuffl credentials api create --input-file key-command.json --json`, using a `permissions` array such as `["users.list", "groups.save"]`. The issuer must hold `credentials.api.create` and every requested permission. See [endpoint permissions](https://shuffl.ai/docs/api-permissions).
|
|
18
18
|
|
|
19
19
|
## Authentication and commands
|
|
20
20
|
|
|
@@ -22,7 +22,7 @@ Create an API key in **Settings → API keys**, choosing only the endpoint permi
|
|
|
22
22
|
|
|
23
23
|
```sh
|
|
24
24
|
# Your credential manager supplies the token on stdin.
|
|
25
|
-
credential-command | shuffl login --base-url https://
|
|
25
|
+
credential-command | shuffl login --base-url https://shuffl.ai --token-stdin
|
|
26
26
|
|
|
27
27
|
shuffl users list --limit 25 --json
|
|
28
28
|
shuffl programs list --json
|
|
@@ -35,7 +35,7 @@ shuffl logout
|
|
|
35
35
|
|
|
36
36
|
Alternatively set `SHUFFL_API_KEY` and `SHUFFL_BASE_URL` through your environment. Tokens are never accepted as command-line arguments or printed after login. Saved credentials are stored with mode `0600` under `$XDG_CONFIG_HOME/shuffl/config.json` (default `~/.config/shuffl/config.json`). `SHUFFL_CONFIG_DIR` overrides the Shuffl directory. Logout removes the local copy; revoke the token in Settings to disable other copies.
|
|
37
37
|
|
|
38
|
-
The saved token cannot be used with a different `--base-url`; log into that server or supply an explicit environment token. Login verifies the token before saving it.
|
|
38
|
+
The saved token cannot be used with a different `--base-url`; log into that server or supply an explicit environment token. Login verifies the token before saving it. For production, use `https://shuffl.ai`. If your saved login uses the old Vercel host, log in again with the canonical URL; environment-based setups must update `SHUFFL_BASE_URL`.
|
|
39
39
|
|
|
40
40
|
Select the team when creating the token. Each token controls exactly that team; switching teams requires a token issued there. There is no team flag that can broaden the token's authority. `shuffl teams current --json` reads back the selected team. `users list` accepts `--limit` (1–100) and `--cursor` from the previous response's `nextCursor`; other resources retain the pagination fields shown by their command help.
|
|
41
41
|
|
|
@@ -45,7 +45,7 @@ Every operation accepts `--input JSON`, `--input -` for stdin, or `--input-file
|
|
|
45
45
|
|
|
46
46
|
Programs are created paused by default. Keep the same `requestKey` for a retry, and use `expectedRevision` to update the version you reviewed. Activating a program enables its schedule. A requested run is queued durably and can be inspected with `shuffl runs get --id RUN_ID`.
|
|
47
47
|
|
|
48
|
-
Management resources use the same nested command names as the [SDK](https://shuffl
|
|
48
|
+
Management resources use the same nested command names as the [SDK](https://shuffl.ai/docs/sdk):
|
|
49
49
|
|
|
50
50
|
```sh
|
|
51
51
|
shuffl groups list --json
|
|
@@ -61,16 +61,16 @@ Management writes require `requestKey` and return `{receipt, result}`. Sensitive
|
|
|
61
61
|
Commands under `shuffl company` take a company key (`shuffl_company_`) from **Company settings → API keys** instead of a workspace key:
|
|
62
62
|
|
|
63
63
|
```sh
|
|
64
|
-
credential-command | shuffl login --company --base-url https://
|
|
64
|
+
credential-command | shuffl login --company --base-url https://shuffl.ai --token-stdin
|
|
65
65
|
shuffl company current --json
|
|
66
66
|
shuffl company members list --limit 100 --json
|
|
67
67
|
shuffl company members remove --user-id USER_ID --json
|
|
68
68
|
shuffl logout --company
|
|
69
69
|
```
|
|
70
70
|
|
|
71
|
-
Or set `SHUFFL_COMPANY_KEY` and `SHUFFL_BASE_URL`. The company key is saved in `company.json` next to `config.json`, and only `shuffl company` commands send it; `shuffl logout --company` removes it. Each command's `--help` names its company permission. See [company keys](https://shuffl
|
|
71
|
+
Or set `SHUFFL_COMPANY_KEY` and `SHUFFL_BASE_URL`. The company key is saved in `company.json` next to `config.json`, and only `shuffl company` commands send it; `shuffl logout --company` removes it. Each command's `--help` names its company permission. See [company keys](https://shuffl.ai/docs/api-permissions#company-keys).
|
|
72
72
|
|
|
73
|
-
Full guide: [Use the Shuffl CLI](https://shuffl
|
|
73
|
+
Full guide: [Use the Shuffl CLI](https://shuffl.ai/docs/cli).
|
|
74
74
|
|
|
75
75
|
## License
|
|
76
76
|
|
|
@@ -3212,6 +3212,10 @@ export const commands = [
|
|
|
3212
3212
|
const: 'mentorship.members.setStatus',
|
|
3213
3213
|
type: 'string',
|
|
3214
3214
|
},
|
|
3215
|
+
{
|
|
3216
|
+
const: 'mentorship.mentors.choose',
|
|
3217
|
+
type: 'string',
|
|
3218
|
+
},
|
|
3215
3219
|
{
|
|
3216
3220
|
const: 'mentorship.mine',
|
|
3217
3221
|
type: 'string',
|
|
@@ -3248,6 +3252,18 @@ export const commands = [
|
|
|
3248
3252
|
const: 'mentorship.programs.setStatus',
|
|
3249
3253
|
type: 'string',
|
|
3250
3254
|
},
|
|
3255
|
+
{
|
|
3256
|
+
const: 'mentorship.requests.answer',
|
|
3257
|
+
type: 'string',
|
|
3258
|
+
},
|
|
3259
|
+
{
|
|
3260
|
+
const: 'mentorship.sessions.remove',
|
|
3261
|
+
type: 'string',
|
|
3262
|
+
},
|
|
3263
|
+
{
|
|
3264
|
+
const: 'mentorship.sessions.save',
|
|
3265
|
+
type: 'string',
|
|
3266
|
+
},
|
|
3251
3267
|
{
|
|
3252
3268
|
const: 'mentorship.settings.get',
|
|
3253
3269
|
type: 'string',
|
|
@@ -8476,6 +8492,37 @@ export const commands = [
|
|
|
8476
8492
|
scope: 'mentorship:write',
|
|
8477
8493
|
summary: 'Take someone off a mentorship program, or put them back',
|
|
8478
8494
|
},
|
|
8495
|
+
{
|
|
8496
|
+
access: 'write',
|
|
8497
|
+
command: ['mentorship', 'mentors', 'choose'],
|
|
8498
|
+
input: {
|
|
8499
|
+
$schema: 'https://json-schema.org/draft/2020-12/schema',
|
|
8500
|
+
additionalProperties: false,
|
|
8501
|
+
properties: {
|
|
8502
|
+
confirm: {
|
|
8503
|
+
const: 'mentorship.mentors.choose',
|
|
8504
|
+
type: 'string',
|
|
8505
|
+
},
|
|
8506
|
+
mentorId: {
|
|
8507
|
+
type: 'string',
|
|
8508
|
+
},
|
|
8509
|
+
programId: {
|
|
8510
|
+
type: 'string',
|
|
8511
|
+
},
|
|
8512
|
+
requestKey: {
|
|
8513
|
+
maxLength: 128,
|
|
8514
|
+
minLength: 1,
|
|
8515
|
+
type: 'string',
|
|
8516
|
+
},
|
|
8517
|
+
},
|
|
8518
|
+
required: ['mentorId', 'programId', 'confirm', 'requestKey'],
|
|
8519
|
+
type: 'object',
|
|
8520
|
+
},
|
|
8521
|
+
path: ['mentorship', 'mentors', 'choose'],
|
|
8522
|
+
permission: 'mentorship.mentors.choose',
|
|
8523
|
+
scope: 'self:write',
|
|
8524
|
+
summary: 'Choose your mentor from the mentors Shuffl suggests, in a program where mentees choose',
|
|
8525
|
+
},
|
|
8479
8526
|
{
|
|
8480
8527
|
access: 'read',
|
|
8481
8528
|
command: ['mentorship', 'mine'],
|
|
@@ -8686,6 +8733,18 @@ export const commands = [
|
|
|
8686
8733
|
id: {
|
|
8687
8734
|
type: 'string',
|
|
8688
8735
|
},
|
|
8736
|
+
menteesChoose: {
|
|
8737
|
+
anyOf: [
|
|
8738
|
+
{
|
|
8739
|
+
const: false,
|
|
8740
|
+
type: 'boolean',
|
|
8741
|
+
},
|
|
8742
|
+
{
|
|
8743
|
+
const: true,
|
|
8744
|
+
type: 'boolean',
|
|
8745
|
+
},
|
|
8746
|
+
],
|
|
8747
|
+
},
|
|
8689
8748
|
mentorCapacity: {
|
|
8690
8749
|
type: 'number',
|
|
8691
8750
|
},
|
|
@@ -8753,6 +8812,117 @@ export const commands = [
|
|
|
8753
8812
|
scope: 'mentorship:write',
|
|
8754
8813
|
summary: 'Turn mentorship programs on, pause one, or archive one and end its pairs',
|
|
8755
8814
|
},
|
|
8815
|
+
{
|
|
8816
|
+
access: 'write',
|
|
8817
|
+
command: ['mentorship', 'requests', 'answer'],
|
|
8818
|
+
input: {
|
|
8819
|
+
$schema: 'https://json-schema.org/draft/2020-12/schema',
|
|
8820
|
+
additionalProperties: false,
|
|
8821
|
+
properties: {
|
|
8822
|
+
confirm: {
|
|
8823
|
+
const: 'mentorship.requests.answer',
|
|
8824
|
+
type: 'string',
|
|
8825
|
+
},
|
|
8826
|
+
decision: {
|
|
8827
|
+
anyOf: [
|
|
8828
|
+
{
|
|
8829
|
+
const: 'accept',
|
|
8830
|
+
type: 'string',
|
|
8831
|
+
},
|
|
8832
|
+
{
|
|
8833
|
+
const: 'pass',
|
|
8834
|
+
type: 'string',
|
|
8835
|
+
},
|
|
8836
|
+
],
|
|
8837
|
+
},
|
|
8838
|
+
pairId: {
|
|
8839
|
+
type: 'string',
|
|
8840
|
+
},
|
|
8841
|
+
requestKey: {
|
|
8842
|
+
maxLength: 128,
|
|
8843
|
+
minLength: 1,
|
|
8844
|
+
type: 'string',
|
|
8845
|
+
},
|
|
8846
|
+
},
|
|
8847
|
+
required: ['decision', 'pairId', 'confirm', 'requestKey'],
|
|
8848
|
+
type: 'object',
|
|
8849
|
+
},
|
|
8850
|
+
path: ['mentorship', 'requests', 'answer'],
|
|
8851
|
+
permission: 'mentorship.requests.answer',
|
|
8852
|
+
scope: 'self:write',
|
|
8853
|
+
summary: 'Accept or pass on a mentee who chose you as their mentor',
|
|
8854
|
+
},
|
|
8855
|
+
{
|
|
8856
|
+
access: 'write',
|
|
8857
|
+
command: ['mentorship', 'sessions', 'remove'],
|
|
8858
|
+
input: {
|
|
8859
|
+
$schema: 'https://json-schema.org/draft/2020-12/schema',
|
|
8860
|
+
additionalProperties: false,
|
|
8861
|
+
properties: {
|
|
8862
|
+
confirm: {
|
|
8863
|
+
const: 'mentorship.sessions.remove',
|
|
8864
|
+
type: 'string',
|
|
8865
|
+
},
|
|
8866
|
+
pairId: {
|
|
8867
|
+
type: 'string',
|
|
8868
|
+
},
|
|
8869
|
+
requestKey: {
|
|
8870
|
+
maxLength: 128,
|
|
8871
|
+
minLength: 1,
|
|
8872
|
+
type: 'string',
|
|
8873
|
+
},
|
|
8874
|
+
sessionId: {
|
|
8875
|
+
type: 'string',
|
|
8876
|
+
},
|
|
8877
|
+
},
|
|
8878
|
+
required: ['pairId', 'sessionId', 'confirm', 'requestKey'],
|
|
8879
|
+
type: 'object',
|
|
8880
|
+
},
|
|
8881
|
+
path: ['mentorship', 'sessions', 'remove'],
|
|
8882
|
+
permission: 'mentorship.sessions.remove',
|
|
8883
|
+
scope: 'self:write',
|
|
8884
|
+
summary: 'Remove your notes from a mentorship meeting',
|
|
8885
|
+
},
|
|
8886
|
+
{
|
|
8887
|
+
access: 'write',
|
|
8888
|
+
command: ['mentorship', 'sessions', 'save'],
|
|
8889
|
+
input: {
|
|
8890
|
+
$schema: 'https://json-schema.org/draft/2020-12/schema',
|
|
8891
|
+
additionalProperties: false,
|
|
8892
|
+
properties: {
|
|
8893
|
+
confirm: {
|
|
8894
|
+
const: 'mentorship.sessions.save',
|
|
8895
|
+
type: 'string',
|
|
8896
|
+
},
|
|
8897
|
+
heldOn: {
|
|
8898
|
+
type: 'string',
|
|
8899
|
+
},
|
|
8900
|
+
nextStep: {
|
|
8901
|
+
type: 'string',
|
|
8902
|
+
},
|
|
8903
|
+
notes: {
|
|
8904
|
+
type: 'string',
|
|
8905
|
+
},
|
|
8906
|
+
pairId: {
|
|
8907
|
+
type: 'string',
|
|
8908
|
+
},
|
|
8909
|
+
requestKey: {
|
|
8910
|
+
maxLength: 128,
|
|
8911
|
+
minLength: 1,
|
|
8912
|
+
type: 'string',
|
|
8913
|
+
},
|
|
8914
|
+
sessionId: {
|
|
8915
|
+
type: 'string',
|
|
8916
|
+
},
|
|
8917
|
+
},
|
|
8918
|
+
required: ['heldOn', 'pairId', 'confirm', 'requestKey'],
|
|
8919
|
+
type: 'object',
|
|
8920
|
+
},
|
|
8921
|
+
path: ['mentorship', 'sessions', 'save'],
|
|
8922
|
+
permission: 'mentorship.sessions.save',
|
|
8923
|
+
scope: 'self:write',
|
|
8924
|
+
summary: 'Add or change your notes from a mentorship meeting: what you talked about and one thing to try',
|
|
8925
|
+
},
|
|
8756
8926
|
{
|
|
8757
8927
|
access: 'read',
|
|
8758
8928
|
command: ['mentorship', 'settings', 'get'],
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"dependencies": {
|
|
3
3
|
"@orpc/client": "1.15.3",
|
|
4
|
-
"@shuffl/api-contracts": "0.7.
|
|
5
|
-
"@shuffl/sdk": "0.7.
|
|
4
|
+
"@shuffl/api-contracts": "0.7.7",
|
|
5
|
+
"@shuffl/sdk": "0.7.7"
|
|
6
6
|
},
|
|
7
7
|
"description": "Shuffl command line: every public API operation as a scriptable command with JSON output.",
|
|
8
8
|
"engines": {
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"LICENSE",
|
|
20
20
|
"README.md"
|
|
21
21
|
],
|
|
22
|
-
"homepage": "https://shuffl
|
|
22
|
+
"homepage": "https://shuffl.ai/docs/sdk",
|
|
23
23
|
"keywords": [
|
|
24
24
|
"shuffl",
|
|
25
25
|
"cli",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"sideEffects": false,
|
|
34
34
|
"type": "module",
|
|
35
35
|
"types": "./dist/index.d.ts",
|
|
36
|
-
"version": "0.7.
|
|
36
|
+
"version": "0.7.7",
|
|
37
37
|
"bin": {
|
|
38
38
|
"shuffl": "./dist/bin.js"
|
|
39
39
|
}
|