@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 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-rebuild.vercel.app/docs/api-permissions).
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://YOUR-SHUFFL-HOST --token-stdin
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-rebuild.vercel.app/docs/sdk):
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://YOUR-SHUFFL-HOST --token-stdin
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-rebuild.vercel.app/docs/api-permissions#company-keys).
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-rebuild.vercel.app/docs/cli).
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",
5
- "@shuffl/sdk": "0.7.5"
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-rebuild.vercel.app/docs/sdk",
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.5",
36
+ "version": "0.7.7",
37
37
  "bin": {
38
38
  "shuffl": "./dist/bin.js"
39
39
  }