sideby 0.13.0 → 0.14.0

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.
Files changed (78) hide show
  1. package/README.md +1 -1
  2. package/dist/build.json +1 -1
  3. package/dist/src/cli/commands.d.ts +3 -2
  4. package/dist/src/cli/commands.js +69 -8
  5. package/dist/src/cli/format.js +7 -3
  6. package/dist/src/cli/json-schemas.js +62 -2
  7. package/dist/src/cli/main.js +42 -4
  8. package/dist/src/core/config.d.ts +27 -0
  9. package/dist/src/core/config.js +48 -1
  10. package/dist/src/core/handoff-enable.js +10 -5
  11. package/dist/src/core/launch.d.ts +5 -0
  12. package/dist/src/core/launch.js +14 -3
  13. package/dist/src/core/quota-fetch.d.ts +22 -0
  14. package/dist/src/core/quota-fetch.js +98 -0
  15. package/dist/src/core/quota-levels.d.ts +3 -2
  16. package/dist/src/core/quota-levels.js +8 -4
  17. package/dist/src/core/quota-store.d.ts +19 -0
  18. package/dist/src/core/quota-store.js +62 -0
  19. package/dist/src/core/skill-check.d.ts +15 -0
  20. package/dist/src/core/skill-check.js +49 -3
  21. package/dist/src/core/update.d.ts +45 -0
  22. package/dist/src/core/update.js +72 -1
  23. package/dist/src/families/grok/handoff-hook.d.ts +6 -0
  24. package/dist/src/families/grok/handoff-hook.js +45 -2
  25. package/dist/src/families/grok/handoff.d.ts +6 -1
  26. package/dist/src/families/grok/handoff.js +30 -13
  27. package/dist/src/families/grok/index.js +5 -0
  28. package/dist/src/families/grok/quota-log.d.ts +30 -0
  29. package/dist/src/families/grok/quota-log.js +140 -0
  30. package/dist/src/families/grok/quota.d.ts +5 -0
  31. package/dist/src/families/grok/quota.js +112 -0
  32. package/dist/src/panel/handler.d.ts +9 -3
  33. package/dist/src/panel/handler.js +65 -3
  34. package/dist/src/panel/i18n.d.ts +25 -5
  35. package/dist/src/panel/i18n.js +52 -12
  36. package/dist/src/panel/page-logic.d.ts +18 -2
  37. package/dist/src/panel/page-logic.js +53 -6
  38. package/dist/src/panel/page-script.js +286 -92
  39. package/dist/src/panel/page-styles.js +30 -10
  40. package/dist/src/runtime.d.ts +30 -2
  41. package/dist/src/runtime.js +64 -21
  42. package/dist/src/types.d.ts +49 -1
  43. package/package.json +2 -2
  44. package/schemas/alias.json +62 -0
  45. package/schemas/app-install.json +62 -0
  46. package/schemas/app-uninstall.json +62 -0
  47. package/schemas/browser-open.json +62 -0
  48. package/schemas/browser-switch.json +62 -0
  49. package/schemas/browser.json +62 -0
  50. package/schemas/config.json +46 -0
  51. package/schemas/desktop-remove.json +62 -0
  52. package/schemas/desktop.json +62 -0
  53. package/schemas/doctor.json +62 -0
  54. package/schemas/error.json +62 -0
  55. package/schemas/families.json +62 -0
  56. package/schemas/handoff-disable.json +62 -0
  57. package/schemas/handoff-enable.json +62 -0
  58. package/schemas/handoff-ready.json +62 -0
  59. package/schemas/handoff-setup.json +62 -0
  60. package/schemas/handoff-status.json +62 -0
  61. package/schemas/handoff-teardown.json +62 -0
  62. package/schemas/list.json +62 -0
  63. package/schemas/model.json +62 -0
  64. package/schemas/new.json +62 -0
  65. package/schemas/next.json +62 -0
  66. package/schemas/plugins.json +62 -0
  67. package/schemas/quota-setup.json +62 -0
  68. package/schemas/quota-teardown.json +62 -0
  69. package/schemas/quota.json +76 -1
  70. package/schemas/remote-control.json +62 -0
  71. package/schemas/tune-change.json +62 -0
  72. package/schemas/tune.json +62 -0
  73. package/schemas/update.json +107 -1
  74. package/skills/sideby/SKILL.md +4 -2
  75. package/skills/sideby/references/diagnose.md +3 -2
  76. package/skills/sideby/references/handoff.md +1 -1
  77. package/skills/sideby/references/quota.md +5 -1
  78. package/skills/sideby/references/update.md +16 -0
@@ -41,6 +41,68 @@
41
41
  "type": "string"
42
42
  },
43
43
  "description": "The `open` command sideby ran."
44
+ },
45
+ "_notice": {
46
+ "type": "object",
47
+ "properties": {
48
+ "update": {
49
+ "type": "object",
50
+ "required": [
51
+ "current",
52
+ "latest",
53
+ "command",
54
+ "message"
55
+ ],
56
+ "properties": {
57
+ "current": {
58
+ "type": "string"
59
+ },
60
+ "latest": {
61
+ "type": "string"
62
+ },
63
+ "command": {
64
+ "type": "string",
65
+ "description": "Run it after the user agrees: it shows the plan and exits 10; then --yes."
66
+ },
67
+ "message": {
68
+ "type": "string"
69
+ }
70
+ }
71
+ },
72
+ "skill": {
73
+ "type": "object",
74
+ "required": [
75
+ "installed",
76
+ "current",
77
+ "command",
78
+ "message"
79
+ ],
80
+ "properties": {
81
+ "installed": {
82
+ "anyOf": [
83
+ {
84
+ "type": "string"
85
+ },
86
+ {
87
+ "type": "null"
88
+ }
89
+ ],
90
+ "description": "The skill's version; null when it has none."
91
+ },
92
+ "current": {
93
+ "type": "string"
94
+ },
95
+ "command": {
96
+ "type": "string",
97
+ "description": "Updates the installed sideby skill (run it after the user agrees)."
98
+ },
99
+ "message": {
100
+ "type": "string"
101
+ }
102
+ }
103
+ }
104
+ },
105
+ "description": "Not the answer to the task: mention it briefly afterwards and offer to update."
44
106
  }
45
107
  },
46
108
  "title": "sideby browser open --json"
@@ -36,6 +36,68 @@
36
36
  "type": "string"
37
37
  },
38
38
  "description": "What sideby reads while it is on, all on this computer."
39
+ },
40
+ "_notice": {
41
+ "type": "object",
42
+ "properties": {
43
+ "update": {
44
+ "type": "object",
45
+ "required": [
46
+ "current",
47
+ "latest",
48
+ "command",
49
+ "message"
50
+ ],
51
+ "properties": {
52
+ "current": {
53
+ "type": "string"
54
+ },
55
+ "latest": {
56
+ "type": "string"
57
+ },
58
+ "command": {
59
+ "type": "string",
60
+ "description": "Run it after the user agrees: it shows the plan and exits 10; then --yes."
61
+ },
62
+ "message": {
63
+ "type": "string"
64
+ }
65
+ }
66
+ },
67
+ "skill": {
68
+ "type": "object",
69
+ "required": [
70
+ "installed",
71
+ "current",
72
+ "command",
73
+ "message"
74
+ ],
75
+ "properties": {
76
+ "installed": {
77
+ "anyOf": [
78
+ {
79
+ "type": "string"
80
+ },
81
+ {
82
+ "type": "null"
83
+ }
84
+ ],
85
+ "description": "The skill's version; null when it has none."
86
+ },
87
+ "current": {
88
+ "type": "string"
89
+ },
90
+ "command": {
91
+ "type": "string",
92
+ "description": "Updates the installed sideby skill (run it after the user agrees)."
93
+ },
94
+ "message": {
95
+ "type": "string"
96
+ }
97
+ }
98
+ }
99
+ },
100
+ "description": "Not the answer to the task: mention it briefly afterwards and offer to update."
39
101
  }
40
102
  },
41
103
  "title": "sideby browser --enable|--disable --json"
@@ -93,6 +93,68 @@
93
93
  "items": {
94
94
  "type": "string"
95
95
  }
96
+ },
97
+ "_notice": {
98
+ "type": "object",
99
+ "properties": {
100
+ "update": {
101
+ "type": "object",
102
+ "required": [
103
+ "current",
104
+ "latest",
105
+ "command",
106
+ "message"
107
+ ],
108
+ "properties": {
109
+ "current": {
110
+ "type": "string"
111
+ },
112
+ "latest": {
113
+ "type": "string"
114
+ },
115
+ "command": {
116
+ "type": "string",
117
+ "description": "Run it after the user agrees: it shows the plan and exits 10; then --yes."
118
+ },
119
+ "message": {
120
+ "type": "string"
121
+ }
122
+ }
123
+ },
124
+ "skill": {
125
+ "type": "object",
126
+ "required": [
127
+ "installed",
128
+ "current",
129
+ "command",
130
+ "message"
131
+ ],
132
+ "properties": {
133
+ "installed": {
134
+ "anyOf": [
135
+ {
136
+ "type": "string"
137
+ },
138
+ {
139
+ "type": "null"
140
+ }
141
+ ],
142
+ "description": "The skill's version; null when it has none."
143
+ },
144
+ "current": {
145
+ "type": "string"
146
+ },
147
+ "command": {
148
+ "type": "string",
149
+ "description": "Updates the installed sideby skill (run it after the user agrees)."
150
+ },
151
+ "message": {
152
+ "type": "string"
153
+ }
154
+ }
155
+ }
156
+ },
157
+ "description": "Not the answer to the task: mention it briefly afterwards and offer to update."
96
158
  }
97
159
  },
98
160
  "title": "sideby browser --json"
@@ -252,6 +252,52 @@
252
252
  "additionalProperties": false,
253
253
  "description": "Browser Sign-ins (spec §3.24, ADR-0023)."
254
254
  },
255
+ "display": {
256
+ "type": "object",
257
+ "properties": {
258
+ "families": {
259
+ "type": "array",
260
+ "items": {
261
+ "type": "string",
262
+ "minLength": 1
263
+ },
264
+ "uniqueItems": true,
265
+ "description": "Family ids in the order the Panel and `sideby list` show them; families not listed follow in their usual order."
266
+ },
267
+ "accounts": {
268
+ "type": "object",
269
+ "patternProperties": {
270
+ "^.*$": {
271
+ "type": "array",
272
+ "items": {
273
+ "type": "string",
274
+ "minLength": 1
275
+ },
276
+ "uniqueItems": true
277
+ }
278
+ },
279
+ "description": "Per family, account names (not refs or short commands) in the order they are shown; accounts not listed follow, main first, then by name."
280
+ }
281
+ },
282
+ "additionalProperties": false,
283
+ "description": "Display Order (spec §3.25): the order you dragged families and accounts into in the Panel. Display only: it never changes which account a Handoff picks."
284
+ },
285
+ "quota": {
286
+ "type": "object",
287
+ "properties": {
288
+ "check": {
289
+ "type": "object",
290
+ "patternProperties": {
291
+ "^.*$": {
292
+ "type": "boolean"
293
+ }
294
+ },
295
+ "description": "Per family, whether sideby may ask for Quota in a way that costs a request (Grok: its own CLI asks xAI, at most every 15 minutes per account). On by default; `false` turns it off. Off in CI."
296
+ }
297
+ },
298
+ "additionalProperties": false,
299
+ "description": "Quota that sideby asks for (spec §3.26, ADR-0025)."
300
+ },
255
301
  "shellInitFile": {
256
302
  "type": "object",
257
303
  "properties": {
@@ -27,6 +27,68 @@
27
27
  "removed": {
28
28
  "type": "boolean",
29
29
  "description": "False when only the plan was shown; run again with --yes (exit 10)."
30
+ },
31
+ "_notice": {
32
+ "type": "object",
33
+ "properties": {
34
+ "update": {
35
+ "type": "object",
36
+ "required": [
37
+ "current",
38
+ "latest",
39
+ "command",
40
+ "message"
41
+ ],
42
+ "properties": {
43
+ "current": {
44
+ "type": "string"
45
+ },
46
+ "latest": {
47
+ "type": "string"
48
+ },
49
+ "command": {
50
+ "type": "string",
51
+ "description": "Run it after the user agrees: it shows the plan and exits 10; then --yes."
52
+ },
53
+ "message": {
54
+ "type": "string"
55
+ }
56
+ }
57
+ },
58
+ "skill": {
59
+ "type": "object",
60
+ "required": [
61
+ "installed",
62
+ "current",
63
+ "command",
64
+ "message"
65
+ ],
66
+ "properties": {
67
+ "installed": {
68
+ "anyOf": [
69
+ {
70
+ "type": "string"
71
+ },
72
+ {
73
+ "type": "null"
74
+ }
75
+ ],
76
+ "description": "The skill's version; null when it has none."
77
+ },
78
+ "current": {
79
+ "type": "string"
80
+ },
81
+ "command": {
82
+ "type": "string",
83
+ "description": "Updates the installed sideby skill (run it after the user agrees)."
84
+ },
85
+ "message": {
86
+ "type": "string"
87
+ }
88
+ }
89
+ }
90
+ },
91
+ "description": "Not the answer to the task: mention it briefly afterwards and offer to update."
30
92
  }
31
93
  },
32
94
  "title": "sideby desktop grok-bot:<name> --remove --json"
@@ -75,6 +75,68 @@
75
75
  "items": {
76
76
  "type": "string"
77
77
  }
78
+ },
79
+ "_notice": {
80
+ "type": "object",
81
+ "properties": {
82
+ "update": {
83
+ "type": "object",
84
+ "required": [
85
+ "current",
86
+ "latest",
87
+ "command",
88
+ "message"
89
+ ],
90
+ "properties": {
91
+ "current": {
92
+ "type": "string"
93
+ },
94
+ "latest": {
95
+ "type": "string"
96
+ },
97
+ "command": {
98
+ "type": "string",
99
+ "description": "Run it after the user agrees: it shows the plan and exits 10; then --yes."
100
+ },
101
+ "message": {
102
+ "type": "string"
103
+ }
104
+ }
105
+ },
106
+ "skill": {
107
+ "type": "object",
108
+ "required": [
109
+ "installed",
110
+ "current",
111
+ "command",
112
+ "message"
113
+ ],
114
+ "properties": {
115
+ "installed": {
116
+ "anyOf": [
117
+ {
118
+ "type": "string"
119
+ },
120
+ {
121
+ "type": "null"
122
+ }
123
+ ],
124
+ "description": "The skill's version; null when it has none."
125
+ },
126
+ "current": {
127
+ "type": "string"
128
+ },
129
+ "command": {
130
+ "type": "string",
131
+ "description": "Updates the installed sideby skill (run it after the user agrees)."
132
+ },
133
+ "message": {
134
+ "type": "string"
135
+ }
136
+ }
137
+ }
138
+ },
139
+ "description": "Not the answer to the task: mention it briefly afterwards and offer to update."
78
140
  }
79
141
  },
80
142
  "title": "sideby desktop --json"
@@ -223,6 +223,68 @@
223
223
  }
224
224
  }
225
225
  }
226
+ },
227
+ "_notice": {
228
+ "type": "object",
229
+ "properties": {
230
+ "update": {
231
+ "type": "object",
232
+ "required": [
233
+ "current",
234
+ "latest",
235
+ "command",
236
+ "message"
237
+ ],
238
+ "properties": {
239
+ "current": {
240
+ "type": "string"
241
+ },
242
+ "latest": {
243
+ "type": "string"
244
+ },
245
+ "command": {
246
+ "type": "string",
247
+ "description": "Run it after the user agrees: it shows the plan and exits 10; then --yes."
248
+ },
249
+ "message": {
250
+ "type": "string"
251
+ }
252
+ }
253
+ },
254
+ "skill": {
255
+ "type": "object",
256
+ "required": [
257
+ "installed",
258
+ "current",
259
+ "command",
260
+ "message"
261
+ ],
262
+ "properties": {
263
+ "installed": {
264
+ "anyOf": [
265
+ {
266
+ "type": "string"
267
+ },
268
+ {
269
+ "type": "null"
270
+ }
271
+ ],
272
+ "description": "The skill's version; null when it has none."
273
+ },
274
+ "current": {
275
+ "type": "string"
276
+ },
277
+ "command": {
278
+ "type": "string",
279
+ "description": "Updates the installed sideby skill (run it after the user agrees)."
280
+ },
281
+ "message": {
282
+ "type": "string"
283
+ }
284
+ }
285
+ }
286
+ },
287
+ "description": "Not the answer to the task: mention it briefly afterwards and offer to update."
226
288
  }
227
289
  },
228
290
  "title": "sideby doctor --json"
@@ -19,6 +19,68 @@
19
19
  "code": {
20
20
  "type": "string",
21
21
  "description": "`usage` for a malformed command line (exit 2), a reason such as `no-quota-source` or `alias-invalid`, or `error`."
22
+ },
23
+ "_notice": {
24
+ "type": "object",
25
+ "properties": {
26
+ "update": {
27
+ "type": "object",
28
+ "required": [
29
+ "current",
30
+ "latest",
31
+ "command",
32
+ "message"
33
+ ],
34
+ "properties": {
35
+ "current": {
36
+ "type": "string"
37
+ },
38
+ "latest": {
39
+ "type": "string"
40
+ },
41
+ "command": {
42
+ "type": "string",
43
+ "description": "Run it after the user agrees: it shows the plan and exits 10; then --yes."
44
+ },
45
+ "message": {
46
+ "type": "string"
47
+ }
48
+ }
49
+ },
50
+ "skill": {
51
+ "type": "object",
52
+ "required": [
53
+ "installed",
54
+ "current",
55
+ "command",
56
+ "message"
57
+ ],
58
+ "properties": {
59
+ "installed": {
60
+ "anyOf": [
61
+ {
62
+ "type": "string"
63
+ },
64
+ {
65
+ "type": "null"
66
+ }
67
+ ],
68
+ "description": "The skill's version; null when it has none."
69
+ },
70
+ "current": {
71
+ "type": "string"
72
+ },
73
+ "command": {
74
+ "type": "string",
75
+ "description": "Updates the installed sideby skill (run it after the user agrees)."
76
+ },
77
+ "message": {
78
+ "type": "string"
79
+ }
80
+ }
81
+ }
82
+ },
83
+ "description": "Not the answer to the task: mention it briefly afterwards and offer to update."
22
84
  }
23
85
  },
24
86
  "title": "sideby error --json"
@@ -209,6 +209,68 @@
209
209
  }
210
210
  ]
211
211
  }
212
+ },
213
+ "_notice": {
214
+ "type": "object",
215
+ "properties": {
216
+ "update": {
217
+ "type": "object",
218
+ "required": [
219
+ "current",
220
+ "latest",
221
+ "command",
222
+ "message"
223
+ ],
224
+ "properties": {
225
+ "current": {
226
+ "type": "string"
227
+ },
228
+ "latest": {
229
+ "type": "string"
230
+ },
231
+ "command": {
232
+ "type": "string",
233
+ "description": "Run it after the user agrees: it shows the plan and exits 10; then --yes."
234
+ },
235
+ "message": {
236
+ "type": "string"
237
+ }
238
+ }
239
+ },
240
+ "skill": {
241
+ "type": "object",
242
+ "required": [
243
+ "installed",
244
+ "current",
245
+ "command",
246
+ "message"
247
+ ],
248
+ "properties": {
249
+ "installed": {
250
+ "anyOf": [
251
+ {
252
+ "type": "string"
253
+ },
254
+ {
255
+ "type": "null"
256
+ }
257
+ ],
258
+ "description": "The skill's version; null when it has none."
259
+ },
260
+ "current": {
261
+ "type": "string"
262
+ },
263
+ "command": {
264
+ "type": "string",
265
+ "description": "Updates the installed sideby skill (run it after the user agrees)."
266
+ },
267
+ "message": {
268
+ "type": "string"
269
+ }
270
+ }
271
+ }
272
+ },
273
+ "description": "Not the answer to the task: mention it briefly afterwards and offer to update."
212
274
  }
213
275
  },
214
276
  "title": "sideby families --json"
@@ -100,6 +100,68 @@
100
100
  "items": {
101
101
  "type": "string"
102
102
  }
103
+ },
104
+ "_notice": {
105
+ "type": "object",
106
+ "properties": {
107
+ "update": {
108
+ "type": "object",
109
+ "required": [
110
+ "current",
111
+ "latest",
112
+ "command",
113
+ "message"
114
+ ],
115
+ "properties": {
116
+ "current": {
117
+ "type": "string"
118
+ },
119
+ "latest": {
120
+ "type": "string"
121
+ },
122
+ "command": {
123
+ "type": "string",
124
+ "description": "Run it after the user agrees: it shows the plan and exits 10; then --yes."
125
+ },
126
+ "message": {
127
+ "type": "string"
128
+ }
129
+ }
130
+ },
131
+ "skill": {
132
+ "type": "object",
133
+ "required": [
134
+ "installed",
135
+ "current",
136
+ "command",
137
+ "message"
138
+ ],
139
+ "properties": {
140
+ "installed": {
141
+ "anyOf": [
142
+ {
143
+ "type": "string"
144
+ },
145
+ {
146
+ "type": "null"
147
+ }
148
+ ],
149
+ "description": "The skill's version; null when it has none."
150
+ },
151
+ "current": {
152
+ "type": "string"
153
+ },
154
+ "command": {
155
+ "type": "string",
156
+ "description": "Updates the installed sideby skill (run it after the user agrees)."
157
+ },
158
+ "message": {
159
+ "type": "string"
160
+ }
161
+ }
162
+ }
163
+ },
164
+ "description": "Not the answer to the task: mention it briefly afterwards and offer to update."
103
165
  }
104
166
  },
105
167
  "title": "sideby handoff disable --json"