@woosau/dsh-custom-env 0.1.8 → 0.1.9

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.
@@ -1,373 +1,371 @@
1
- /* Generated by @deepseek-ai/dsh-typert-generator from the Host FaceModel — do not edit. */
2
- import { z } from 'zod'
3
-
4
- import { createTypertRemoteInfo } from '@deepseek-ai/dsh-typert-protocol/remote-info'
5
-
6
- let list$result$schema$value
7
- const list$result$schema = () => (list$result$schema$value ??= z.object({
8
- path: z.string().readonly(),
9
- exists: z.boolean().readonly(),
10
- entries: z.array(z.object({
11
- id: z.string().readonly(),
12
- name: z.string().readonly(),
13
- value: z.string().readonly(),
14
- kind: z.enum(['unchanged', 'modified', 'added']).readonly(),
15
- previous: z.string().nullable().readonly(),
16
- }).readonly()).readonly(),
17
- }))
18
-
19
- let cliStatus$result$schema$value
20
- const cliStatus$result$schema = () => (cliStatus$result$schema$value ??= z.object({
21
- platform: z.string().readonly(),
22
- activePath: z.string().nullable().readonly(),
23
- expectedPath: z.string().nullable().readonly(),
24
- expectedDirectory: z.string().nullable().readonly(),
25
- matches: z.boolean().readonly(),
26
- canInstall: z.boolean().readonly(),
27
- reason: z.string().nullable().readonly(),
28
- }))
29
-
30
- let upsert$parameter$0$schema$value
31
- const upsert$parameter$0$schema = () => (upsert$parameter$0$schema$value ??= z.string())
32
- let upsert$parameter$1$schema$value
33
- const upsert$parameter$1$schema = () => (upsert$parameter$1$schema$value ??= z.string())
34
- let upsert$parameter$2$schema$value
35
- const upsert$parameter$2$schema = () => (upsert$parameter$2$schema$value ??= z.string())
36
-
37
- let remove$parameter$0$schema$value
38
- const remove$parameter$0$schema = () => (remove$parameter$0$schema$value ??= z.string())
39
-
40
- let setVar$parameter$0$schema$value
41
- const setVar$parameter$0$schema = () => (setVar$parameter$0$schema$value ??= z.string())
42
- let setVar$parameter$1$schema$value
43
- const setVar$parameter$1$schema = () => (setVar$parameter$1$schema$value ??= z.string())
44
-
45
- let setVars$parameter$0$schema$value
46
- const setVars$parameter$0$schema = () => (setVars$parameter$0$schema$value ??= z.array(z.object({
47
- name: z.string().readonly(),
48
- value: z.string().readonly(),
49
- }).readonly()).readonly())
50
-
51
- let removeVar$parameter$0$schema$value
52
- const removeVar$parameter$0$schema = () => (removeVar$parameter$0$schema$value ??= z.string())
53
-
54
- let removeVars$parameter$0$schema$value
55
- const removeVars$parameter$0$schema = () => (removeVars$parameter$0$schema$value ??= z.array(z.string()).readonly())
56
-
57
- const envVarWriteJsonSchema = {
58
- type: 'object',
59
- properties: {
60
- name: { type: 'string' },
61
- value: { type: 'string' },
62
- },
63
- required: ['name', 'value'],
64
- additionalProperties: false,
65
- }
66
-
67
- let restore$parameter$0$schema$value
68
- const restore$parameter$0$schema = () => (restore$parameter$0$schema$value ??= z.string())
69
-
70
- const cliStatusJsonSchema = {
71
- type: 'object',
72
- properties: {
73
- platform: { type: 'string' },
74
- activePath: { type: ['string', 'null'] },
75
- expectedPath: { type: ['string', 'null'] },
76
- expectedDirectory: { type: ['string', 'null'] },
77
- matches: { type: 'boolean' },
78
- canInstall: { type: 'boolean' },
79
- reason: { type: ['string', 'null'] },
80
- },
81
- required: ['platform', 'activePath', 'expectedPath', 'expectedDirectory', 'matches', 'canInstall', 'reason'],
82
- additionalProperties: true,
83
- }
84
-
85
- const envSnapshotJsonSchema = {
86
- type: 'object',
87
- properties: {
88
- path: { type: 'string' },
89
- exists: { type: 'boolean' },
90
- entries: {
91
- type: 'array',
92
- items: {
93
- type: 'object',
94
- properties: {
95
- id: { type: 'string' },
96
- name: { type: 'string' },
97
- value: { type: 'string' },
98
- kind: { type: 'string', enum: ['unchanged', 'modified', 'added'] },
99
- previous: { type: ['string', 'null'] },
100
- },
101
- required: ['id', 'name', 'value', 'kind', 'previous'],
102
- additionalProperties: true,
103
- },
104
- },
105
- },
106
- required: ['path', 'exists', 'entries'],
107
- additionalProperties: true,
108
- }
109
-
110
- export const TYPERT_REMOTE = createTypertRemoteInfo({
111
- package: '@woosau/dsh-custom-env',
112
- methods: {
113
- 'customEnv/list': {
114
- service: 'customEnv',
115
- description: 'List current $DSH_HOME/.env entries with pending classification.',
116
- invocation: { kind: 'direct' },
117
- parameters: [],
118
- result: {
119
- mode: 'strict',
120
- typeSymbol: '@woosau/dsh-custom-env/types#EnvSnapshot',
121
- create: list$result$schema,
122
- description: 'path, existence, and sorted entries.',
123
- jsonSchema: envSnapshotJsonSchema,
124
- },
125
- sourceLocation: { file: 'src/index.ts', line: 1, column: 1 },
126
- },
127
- 'customEnv/upsert': {
128
- service: 'customEnv',
129
- description: 'Create or update one row. Empty id creates a new row; otherwise keeps that baseline id across renames.',
130
- invocation: { kind: 'direct' },
131
- parameters: [
132
- {
133
- name: 'id',
134
- description: 'stable row id from list(), or empty string for a new row.',
135
- source: 'json',
136
- codec: {
137
- mode: 'strict',
138
- typeSymbol: 'string',
139
- create: upsert$parameter$0$schema,
140
- jsonSchema: { type: 'string' },
141
- },
142
- },
143
- {
144
- name: 'name',
145
- description: 'writable variable name.',
146
- source: 'json',
147
- codec: {
148
- mode: 'strict',
149
- typeSymbol: 'string',
150
- create: upsert$parameter$1$schema,
151
- jsonSchema: { type: 'string' },
152
- },
153
- },
154
- {
155
- name: 'value',
156
- description: 'value (empty string allowed).',
157
- source: 'json',
158
- codec: {
159
- mode: 'strict',
160
- typeSymbol: 'string',
161
- create: upsert$parameter$2$schema,
162
- jsonSchema: { type: 'string' },
163
- },
164
- },
165
- ],
166
- result: {
167
- mode: 'strict',
168
- typeSymbol: '@woosau/dsh-custom-env/types#EnvSnapshot',
169
- create: list$result$schema,
170
- description: 'updated snapshot.',
171
- jsonSchema: envSnapshotJsonSchema,
172
- },
173
- sourceLocation: { file: 'src/index.ts', line: 1, column: 1 },
174
- },
175
- 'customEnv/setVars': {
176
- service: 'customEnv',
177
- description: 'Create or replace many variables by name in one rewrite. Empty values write NAME=.',
178
- invocation: { kind: 'direct' },
179
- parameters: [
180
- {
181
- name: 'entries',
182
- description: 'name/value pairs (last duplicate name wins).',
183
- source: 'json',
184
- codec: {
185
- mode: 'strict',
186
- typeSymbol: 'readonly EnvVarWrite[]',
187
- create: setVars$parameter$0$schema,
188
- jsonSchema: { type: 'array', items: envVarWriteJsonSchema },
189
- },
190
- },
191
- ],
192
- result: {
193
- mode: 'strict',
194
- typeSymbol: 'void',
195
- create: () => z.undefined(),
196
- description: 'no return value.',
197
- jsonSchema: { type: 'null' },
198
- },
199
- sourceLocation: { file: 'src/index.ts', line: 1, column: 1 },
200
- },
201
- 'customEnv/setVar': {
202
- service: 'customEnv',
203
- description: 'Create or replace one variable by name. Empty value writes NAME=.',
204
- invocation: { kind: 'direct' },
205
- parameters: [
206
- {
207
- name: 'name',
208
- description: 'writable variable name.',
209
- source: 'json',
210
- codec: {
211
- mode: 'strict',
212
- typeSymbol: 'string',
213
- create: setVar$parameter$0$schema,
214
- jsonSchema: { type: 'string' },
215
- },
216
- },
217
- {
218
- name: 'value',
219
- description: 'value to store (empty string allowed).',
220
- source: 'json',
221
- codec: {
222
- mode: 'strict',
223
- typeSymbol: 'string',
224
- create: setVar$parameter$1$schema,
225
- jsonSchema: { type: 'string' },
226
- },
227
- },
228
- ],
229
- result: {
230
- mode: 'strict',
231
- typeSymbol: 'void',
232
- create: () => z.undefined(),
233
- description: 'no return value.',
234
- jsonSchema: { type: 'null' },
235
- },
236
- sourceLocation: { file: 'src/index.ts', line: 1, column: 1 },
237
- },
238
- 'customEnv/removeVars': {
239
- service: 'customEnv',
240
- description: 'Remove many variables by name from the file, Host, and OS user environment.',
241
- invocation: { kind: 'direct' },
242
- parameters: [
243
- {
244
- name: 'names',
245
- description: 'writable variable names.',
246
- source: 'json',
247
- codec: {
248
- mode: 'strict',
249
- typeSymbol: 'readonly string[]',
250
- create: removeVars$parameter$0$schema,
251
- jsonSchema: { type: 'array', items: { type: 'string' } },
252
- },
253
- },
254
- ],
255
- result: {
256
- mode: 'strict',
257
- typeSymbol: 'number',
258
- create: () => z.number(),
259
- description: 'number of .env lines removed.',
260
- jsonSchema: { type: 'number' },
261
- },
262
- sourceLocation: { file: 'src/index.ts', line: 1, column: 1 },
263
- },
264
- 'customEnv/removeVar': {
265
- service: 'customEnv',
266
- description: 'Remove one variable by name from the file, Host, and OS user environment.',
267
- invocation: { kind: 'direct' },
268
- parameters: [
269
- {
270
- name: 'name',
271
- description: 'writable variable name.',
272
- source: 'json',
273
- codec: {
274
- mode: 'strict',
275
- typeSymbol: 'string',
276
- create: removeVar$parameter$0$schema,
277
- jsonSchema: { type: 'string' },
278
- },
279
- },
280
- ],
281
- result: {
282
- mode: 'strict',
283
- typeSymbol: 'boolean',
284
- create: () => z.boolean(),
285
- description: 'true when a .env line was removed.',
286
- jsonSchema: { type: 'boolean' },
287
- },
288
- sourceLocation: { file: 'src/index.ts', line: 1, column: 1 },
289
- },
290
- 'customEnv/deleteEntry': {
291
- service: 'customEnv',
292
- description: 'Delete one entry from the file, Host, and OS user environment.',
293
- invocation: { kind: 'direct' },
294
- parameters: [
295
- {
296
- name: 'id',
297
- description: 'stable row id from list().',
298
- source: 'json',
299
- codec: {
300
- mode: 'strict',
301
- typeSymbol: 'string',
302
- create: remove$parameter$0$schema,
303
- jsonSchema: { type: 'string' },
304
- },
305
- },
306
- ],
307
- result: {
308
- mode: 'strict',
309
- typeSymbol: '@woosau/dsh-custom-env/types#EnvSnapshot',
310
- create: list$result$schema,
311
- description: 'updated snapshot.',
312
- jsonSchema: envSnapshotJsonSchema,
313
- },
314
- sourceLocation: { file: 'src/index.ts', line: 1, column: 1 },
315
- },
316
- 'customEnv/restore': {
317
- service: 'customEnv',
318
- description: 'Restore Host-start original name+value for this id, or delete if added after start.',
319
- invocation: { kind: 'direct' },
320
- parameters: [
321
- {
322
- name: 'id',
323
- description: 'stable row id from list().',
324
- source: 'json',
325
- codec: {
326
- mode: 'strict',
327
- typeSymbol: 'string',
328
- create: restore$parameter$0$schema,
329
- jsonSchema: { type: 'string' },
330
- },
331
- },
332
- ],
333
- result: {
334
- mode: 'strict',
335
- typeSymbol: '@woosau/dsh-custom-env/types#EnvSnapshot',
336
- create: list$result$schema,
337
- description: 'updated snapshot.',
338
- jsonSchema: envSnapshotJsonSchema,
339
- },
340
- sourceLocation: { file: 'src/index.ts', line: 1, column: 1 },
341
- },
342
- 'customEnv/cliStatus': {
343
- service: 'customEnv',
344
- description: 'Compare the user-environment dsh with the launcher expected for this Host.',
345
- invocation: { kind: 'direct' },
346
- parameters: [],
347
- result: {
348
- mode: 'strict',
349
- typeSymbol: '@woosau/dsh-custom-env/types#CliStatus',
350
- create: cliStatus$result$schema,
351
- description: 'active path, expected path, and whether Install should be offered.',
352
- jsonSchema: cliStatusJsonSchema,
353
- },
354
- sourceLocation: { file: 'src/index.ts', line: 1, column: 1 },
355
- },
356
- 'customEnv/cliInstall': {
357
- service: 'customEnv',
358
- description: 'Install the expected CLI onto the Windows user PATH or as /usr/local/bin/dsh on macOS.',
359
- invocation: { kind: 'direct' },
360
- parameters: [],
361
- result: {
362
- mode: 'strict',
363
- typeSymbol: '@woosau/dsh-custom-env/types#CliStatus',
364
- create: cliStatus$result$schema,
365
- description: 'refreshed status after install.',
366
- jsonSchema: cliStatusJsonSchema,
367
- },
368
- sourceLocation: { file: 'src/index.ts', line: 1, column: 1 },
369
- },
370
- },
371
- }, z)
372
-
373
- export default TYPERT_REMOTE
1
+ /* Hand-maintained Remote FaceModel for @woosau/dsh-custom-env. */
2
+ import { z } from 'zod'
3
+
4
+ import { createTypertRemoteInfo } from '@deepseek-ai/dsh-typert-protocol/remote-info'
5
+
6
+ const envGroupSchema = () => z.object({
7
+ id: z.string().readonly(),
8
+ title: z.string().readonly(),
9
+ }).readonly()
10
+
11
+ const envEntrySchema = () => z.object({
12
+ id: z.string().readonly(),
13
+ name: z.string().readonly(),
14
+ value: z.string().readonly(),
15
+ groupId: z.string().readonly(),
16
+ kind: z.enum(['unchanged', 'modified', 'added']).readonly(),
17
+ previous: z.string().nullable().readonly(),
18
+ }).readonly()
19
+
20
+ let list$result$schema$value
21
+ const list$result$schema = () => (list$result$schema$value ??= z.object({
22
+ path: z.string().readonly(),
23
+ exists: z.boolean().readonly(),
24
+ groups: z.array(envGroupSchema()).readonly(),
25
+ entries: z.array(envEntrySchema()).readonly(),
26
+ }))
27
+
28
+ let envGroup$result$schema$value
29
+ const envGroup$result$schema = () => (envGroup$result$schema$value ??= envGroupSchema())
30
+
31
+ let cliStatus$result$schema$value
32
+ const cliStatus$result$schema = () => (cliStatus$result$schema$value ??= z.object({
33
+ platform: z.string().readonly(),
34
+ activePath: z.string().nullable().readonly(),
35
+ expectedPath: z.string().nullable().readonly(),
36
+ expectedDirectory: z.string().nullable().readonly(),
37
+ matches: z.boolean().readonly(),
38
+ canInstall: z.boolean().readonly(),
39
+ reason: z.string().nullable().readonly(),
40
+ }))
41
+
42
+ const str = () => z.string()
43
+
44
+ let setVars$parameter$0$schema$value
45
+ const setVars$parameter$0$schema = () => (setVars$parameter$0$schema$value ??= z.array(z.object({
46
+ name: z.string().readonly(),
47
+ value: z.string().readonly(),
48
+ group: z.string().optional(),
49
+ }).readonly()).readonly())
50
+
51
+ let removeVars$parameter$0$schema$value
52
+ const removeVars$parameter$0$schema = () => (removeVars$parameter$0$schema$value ??= z.array(z.string()).readonly())
53
+
54
+ let deleteGroup$parameter$1$schema$value
55
+ const deleteGroup$parameter$1$schema = () => (deleteGroup$parameter$1$schema$value ??= z.object({
56
+ moveToDefault: z.boolean().readonly(),
57
+ }).readonly())
58
+
59
+ const envVarWriteJsonSchema = {
60
+ type: 'object',
61
+ properties: {
62
+ name: { type: 'string' },
63
+ value: { type: 'string' },
64
+ group: { type: 'string' },
65
+ },
66
+ required: ['name', 'value'],
67
+ additionalProperties: false,
68
+ }
69
+
70
+ const envGroupJsonSchema = {
71
+ type: 'object',
72
+ properties: {
73
+ id: { type: 'string' },
74
+ title: { type: 'string' },
75
+ },
76
+ required: ['id', 'title'],
77
+ additionalProperties: true,
78
+ }
79
+
80
+ const cliStatusJsonSchema = {
81
+ type: 'object',
82
+ properties: {
83
+ platform: { type: 'string' },
84
+ activePath: { type: ['string', 'null'] },
85
+ expectedPath: { type: ['string', 'null'] },
86
+ expectedDirectory: { type: ['string', 'null'] },
87
+ matches: { type: 'boolean' },
88
+ canInstall: { type: 'boolean' },
89
+ reason: { type: ['string', 'null'] },
90
+ },
91
+ required: ['platform', 'activePath', 'expectedPath', 'expectedDirectory', 'matches', 'canInstall', 'reason'],
92
+ additionalProperties: true,
93
+ }
94
+
95
+ const envSnapshotJsonSchema = {
96
+ type: 'object',
97
+ properties: {
98
+ path: { type: 'string' },
99
+ exists: { type: 'boolean' },
100
+ groups: {
101
+ type: 'array',
102
+ items: envGroupJsonSchema,
103
+ },
104
+ entries: {
105
+ type: 'array',
106
+ items: {
107
+ type: 'object',
108
+ properties: {
109
+ id: { type: 'string' },
110
+ name: { type: 'string' },
111
+ value: { type: 'string' },
112
+ groupId: { type: 'string' },
113
+ kind: { type: 'string', enum: ['unchanged', 'modified', 'added'] },
114
+ previous: { type: ['string', 'null'] },
115
+ },
116
+ required: ['id', 'name', 'value', 'groupId', 'kind', 'previous'],
117
+ additionalProperties: true,
118
+ },
119
+ },
120
+ },
121
+ required: ['path', 'exists', 'groups', 'entries'],
122
+ additionalProperties: true,
123
+ }
124
+
125
+ const stringParam = (name, description, options = {}) => ({
126
+ name,
127
+ description,
128
+ source: 'json',
129
+ ...(options.acceptsUndefined ? { acceptsUndefined: true } : {}),
130
+ codec: {
131
+ mode: 'strict',
132
+ typeSymbol: 'string',
133
+ create: str,
134
+ jsonSchema: { type: 'string' },
135
+ },
136
+ })
137
+
138
+ const snapshotResult = (description = 'updated snapshot.') => ({
139
+ mode: 'strict',
140
+ typeSymbol: '@woosau/dsh-custom-env/types#EnvSnapshot',
141
+ create: list$result$schema,
142
+ description,
143
+ jsonSchema: envSnapshotJsonSchema,
144
+ })
145
+
146
+ const groupResult = (description = 'group record.') => ({
147
+ mode: 'strict',
148
+ typeSymbol: '@woosau/dsh-custom-env/types#EnvGroup',
149
+ create: envGroup$result$schema,
150
+ description,
151
+ jsonSchema: envGroupJsonSchema,
152
+ })
153
+
154
+ const voidResult = {
155
+ mode: 'strict',
156
+ typeSymbol: 'void',
157
+ create: () => z.undefined(),
158
+ description: 'no return value.',
159
+ jsonSchema: { type: 'null' },
160
+ }
161
+
162
+ const src = { file: 'src/index.ts', line: 1, column: 1 }
163
+
164
+ export const TYPERT_REMOTE = createTypertRemoteInfo({
165
+ package: '@woosau/dsh-custom-env',
166
+ methods: {
167
+ 'customEnv/list': {
168
+ service: 'customEnv',
169
+ description: 'List current $DSH_HOME/.env entries with groups and pending classification.',
170
+ invocation: { kind: 'direct' },
171
+ parameters: [],
172
+ result: snapshotResult('path, existence, groups, and sorted entries.'),
173
+ sourceLocation: src,
174
+ },
175
+ 'customEnv/upsert': {
176
+ service: 'customEnv',
177
+ description: 'Create or update one row. Empty id creates a new row; optional groupId assigns membership.',
178
+ invocation: { kind: 'direct' },
179
+ parameters: [
180
+ stringParam('id', 'stable row id from list(), or empty string for a new row.'),
181
+ stringParam('name', 'writable variable name.'),
182
+ stringParam('value', 'value (empty string allowed).'),
183
+ stringParam('groupId', 'target group id for create/move (optional).', { acceptsUndefined: true }),
184
+ ],
185
+ result: snapshotResult(),
186
+ sourceLocation: src,
187
+ },
188
+ 'customEnv/setVars': {
189
+ service: 'customEnv',
190
+ description: 'Create or replace many variables by name in one rewrite. Optional group per entry.',
191
+ invocation: { kind: 'direct' },
192
+ parameters: [
193
+ {
194
+ name: 'entries',
195
+ description: 'name/value pairs with optional group (last duplicate name wins).',
196
+ source: 'json',
197
+ codec: {
198
+ mode: 'strict',
199
+ typeSymbol: 'readonly EnvVarWrite[]',
200
+ create: setVars$parameter$0$schema,
201
+ jsonSchema: { type: 'array', items: envVarWriteJsonSchema },
202
+ },
203
+ },
204
+ ],
205
+ result: voidResult,
206
+ sourceLocation: src,
207
+ },
208
+ 'customEnv/setVar': {
209
+ service: 'customEnv',
210
+ description: 'Create or replace one variable by name. Optional group: new names default to default; existing keep group when omitted.',
211
+ invocation: { kind: 'direct' },
212
+ parameters: [
213
+ stringParam('name', 'writable variable name.'),
214
+ stringParam('value', 'value to store (empty string allowed).'),
215
+ stringParam('group', 'optional group id; omit to keep existing membership.', { acceptsUndefined: true }),
216
+ ],
217
+ result: voidResult,
218
+ sourceLocation: src,
219
+ },
220
+ 'customEnv/removeVars': {
221
+ service: 'customEnv',
222
+ description: 'Remove many variables by name from the file, Host, and OS user environment.',
223
+ invocation: { kind: 'direct' },
224
+ parameters: [
225
+ {
226
+ name: 'names',
227
+ description: 'writable variable names.',
228
+ source: 'json',
229
+ codec: {
230
+ mode: 'strict',
231
+ typeSymbol: 'readonly string[]',
232
+ create: removeVars$parameter$0$schema,
233
+ jsonSchema: { type: 'array', items: { type: 'string' } },
234
+ },
235
+ },
236
+ ],
237
+ result: {
238
+ mode: 'strict',
239
+ typeSymbol: 'number',
240
+ create: () => z.number(),
241
+ description: 'number of .env lines removed.',
242
+ jsonSchema: { type: 'number' },
243
+ },
244
+ sourceLocation: src,
245
+ },
246
+ 'customEnv/removeVar': {
247
+ service: 'customEnv',
248
+ description: 'Remove one variable by name from the file, Host, and OS user environment.',
249
+ invocation: { kind: 'direct' },
250
+ parameters: [
251
+ stringParam('name', 'writable variable name.'),
252
+ ],
253
+ result: {
254
+ mode: 'strict',
255
+ typeSymbol: 'boolean',
256
+ create: () => z.boolean(),
257
+ description: 'true when a .env line was removed.',
258
+ jsonSchema: { type: 'boolean' },
259
+ },
260
+ sourceLocation: src,
261
+ },
262
+ 'customEnv/deleteEntry': {
263
+ service: 'customEnv',
264
+ description: 'Delete one entry from the file, Host, and OS user environment.',
265
+ invocation: { kind: 'direct' },
266
+ parameters: [
267
+ stringParam('id', 'stable row id from list().'),
268
+ ],
269
+ result: snapshotResult(),
270
+ sourceLocation: src,
271
+ },
272
+ 'customEnv/restore': {
273
+ service: 'customEnv',
274
+ description: 'Restore Host-start original name+value for this id, or delete if added after start.',
275
+ invocation: { kind: 'direct' },
276
+ parameters: [
277
+ stringParam('id', 'stable row id from list().'),
278
+ ],
279
+ result: snapshotResult(),
280
+ sourceLocation: src,
281
+ },
282
+ 'customEnv/createGroup': {
283
+ service: 'customEnv',
284
+ description: 'Create a custom environment variable group.',
285
+ invocation: { kind: 'direct' },
286
+ parameters: [
287
+ stringParam('title', 'non-empty display title.'),
288
+ ],
289
+ result: groupResult('created group.'),
290
+ sourceLocation: src,
291
+ },
292
+ 'customEnv/renameGroup': {
293
+ service: 'customEnv',
294
+ description: 'Rename a custom group (not the default group).',
295
+ invocation: { kind: 'direct' },
296
+ parameters: [
297
+ stringParam('id', 'group id.'),
298
+ stringParam('title', 'new non-empty title.'),
299
+ ],
300
+ result: groupResult('renamed group.'),
301
+ sourceLocation: src,
302
+ },
303
+ 'customEnv/deleteGroup': {
304
+ service: 'customEnv',
305
+ description: 'Delete a custom group; optionally move members to default or remove their variables.',
306
+ invocation: { kind: 'direct' },
307
+ parameters: [
308
+ stringParam('id', 'group id (not default).'),
309
+ {
310
+ name: 'options',
311
+ description: 'moveToDefault controls whether members are kept.',
312
+ source: 'json',
313
+ codec: {
314
+ mode: 'strict',
315
+ typeSymbol: 'DeleteGroupOptions',
316
+ create: deleteGroup$parameter$1$schema,
317
+ jsonSchema: {
318
+ type: 'object',
319
+ properties: { moveToDefault: { type: 'boolean' } },
320
+ required: ['moveToDefault'],
321
+ additionalProperties: false,
322
+ },
323
+ },
324
+ },
325
+ ],
326
+ result: snapshotResult(),
327
+ sourceLocation: src,
328
+ },
329
+ 'customEnv/moveEntry': {
330
+ service: 'customEnv',
331
+ description: 'Move one row into another group.',
332
+ invocation: { kind: 'direct' },
333
+ parameters: [
334
+ stringParam('id', 'stable row id from list().'),
335
+ stringParam('groupId', 'target group id.'),
336
+ ],
337
+ result: snapshotResult(),
338
+ sourceLocation: src,
339
+ },
340
+ 'customEnv/cliStatus': {
341
+ service: 'customEnv',
342
+ description: 'Compare the user-environment dsh with the launcher expected for this Host.',
343
+ invocation: { kind: 'direct' },
344
+ parameters: [],
345
+ result: {
346
+ mode: 'strict',
347
+ typeSymbol: '@woosau/dsh-custom-env/types#CliStatus',
348
+ create: cliStatus$result$schema,
349
+ description: 'active path, expected path, and whether Install should be offered.',
350
+ jsonSchema: cliStatusJsonSchema,
351
+ },
352
+ sourceLocation: src,
353
+ },
354
+ 'customEnv/cliInstall': {
355
+ service: 'customEnv',
356
+ description: 'Install the expected CLI onto the Windows user PATH or as /usr/local/bin/dsh on macOS.',
357
+ invocation: { kind: 'direct' },
358
+ parameters: [],
359
+ result: {
360
+ mode: 'strict',
361
+ typeSymbol: '@woosau/dsh-custom-env/types#CliStatus',
362
+ create: cliStatus$result$schema,
363
+ description: 'refreshed status after install.',
364
+ jsonSchema: cliStatusJsonSchema,
365
+ },
366
+ sourceLocation: src,
367
+ },
368
+ },
369
+ }, z)
370
+
371
+ export default TYPERT_REMOTE