Skip to content

Commit b92ab0b

Browse files
committed
fix: satisfy fallow command contract audit
1 parent 545277e commit b92ab0b

8 files changed

Lines changed: 34 additions & 51 deletions

src/command-catalog.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export const INTERNAL_COMMANDS = {
5454
sessionList: 'session_list',
5555
} as const;
5656

57-
export const LOCAL_CLI_COMMANDS = {
57+
const LOCAL_CLI_COMMANDS = {
5858
auth: 'auth',
5959
connect: 'connect',
6060
connection: 'connection',

src/commands/cli-grammar/capture.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ export const captureDaemonWriters = {
8585
),
8686
} satisfies Record<string, DaemonWriter>;
8787

88-
export function readWaitOptionsFromPositionals(
88+
function readWaitOptionsFromPositionals(
8989
positionals: string[],
9090
flags: CliFlags,
9191
): WaitCommandOptions {

src/commands/cli-grammar/interactions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ export function readInteractionTargetFromPositionals(positionals: string[]): Int
129129
return { x: Number(positionals[0]), y: Number(positionals[1]) };
130130
}
131131

132-
export function readLongPressTargetFromPositionals(positionals: string[]): LongPressOptions {
132+
function readLongPressTargetFromPositionals(positionals: string[]): LongPressOptions {
133133
const targetPositionals = readLongPressTargetPositionals(positionals);
134134
return {
135135
...readInteractionTargetFromPositionals(targetPositionals.target),

src/commands/client-command-contracts.ts

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import type {
2-
AgentDeviceClient,
32
AppCloseOptions,
43
ClipboardCommandOptions,
54
MetroPrepareOptions,
@@ -11,27 +10,23 @@ import type {
1110
WaitCommandOptions,
1211
} from '../client-types.ts';
1312
import type { DaemonInstallSource } from '../contracts.ts';
14-
import { defineCommand } from './command-contract.ts';
1513
import {
1614
booleanSchema,
1715
booleanField,
1816
enumField,
19-
fieldsInputSchema,
2017
integerField,
2118
integerSchema,
2219
jsonSchemaField,
2320
looseObjectField,
2421
looseObjectSchema,
2522
numberField,
2623
optionalEnum,
27-
readFieldInput,
2824
requiredField,
2925
stringArrayField,
3026
stringField,
3127
stringSchema,
32-
type InferCommandInput,
33-
type CommandFieldMap,
3428
} from './command-input.ts';
29+
import { defineFieldCommand } from './field-command-contract.ts';
3530

3631
const SURFACE_VALUES = ['app', 'frontmost-app', 'desktop', 'menubar'] as const;
3732
const WAIT_KIND_VALUES = ['duration', 'text', 'ref', 'selector'] as const;
@@ -363,25 +358,6 @@ export const clientCommandDefinitions = [
363358
),
364359
] as const;
365360

366-
function defineFieldCommand<
367-
const TName extends string,
368-
const TFields extends CommandFieldMap,
369-
TResult,
370-
>(
371-
name: TName,
372-
description: string,
373-
fields: TFields,
374-
run: (client: AgentDeviceClient, input: InferCommandInput<TFields>) => Promise<TResult>,
375-
) {
376-
return defineCommand({
377-
name,
378-
description,
379-
inputSchema: fieldsInputSchema(fields),
380-
readInput: (input) => readFieldInput(input, fields),
381-
run,
382-
});
383-
}
384-
385361
function withoutApp(input: AppCloseOptions & { shutdown?: boolean }): { shutdown?: boolean } {
386362
const { app: _app, ...rest } = input;
387363
return rest;

src/commands/command-input.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ export function stringSchema(description?: string): JsonSchema {
8585
return { type: 'string', ...(description ? { description } : {}) };
8686
}
8787

88-
export function numberSchema(description?: string): JsonSchema {
88+
function numberSchema(description?: string): JsonSchema {
8989
return { type: 'number', ...(description ? { description } : {}) };
9090
}
9191

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import type { AgentDeviceClient } from '../client-types.ts';
2+
import { defineCommand } from './command-contract.ts';
3+
import {
4+
fieldsInputSchema,
5+
readFieldInput,
6+
type CommandFieldMap,
7+
type InferCommandInput,
8+
} from './command-input.ts';
9+
10+
export function defineFieldCommand<
11+
const TName extends string,
12+
const TFields extends CommandFieldMap,
13+
TResult,
14+
>(
15+
name: TName,
16+
description: string,
17+
fields: TFields,
18+
run: (client: AgentDeviceClient, input: InferCommandInput<TFields>) => Promise<TResult>,
19+
) {
20+
return defineCommand({
21+
name,
22+
description,
23+
inputSchema: fieldsInputSchema(fields),
24+
readInput: (input) => readFieldInput(input, fields),
25+
run,
26+
});
27+
}

src/commands/interaction-command-contracts.ts

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import type {
2-
AgentDeviceClient,
32
ClickOptions,
43
FindOptions,
54
FlingOptions,
@@ -44,10 +43,10 @@ import {
4443
toRepeatedOptions,
4544
toSelectorSnapshotOptions,
4645
type CommonCommandInput,
47-
type CommandFieldMap,
4846
type InferCommandInput,
4947
type PointInput,
5048
} from './command-input.ts';
49+
import { defineFieldCommand } from './field-command-contract.ts';
5150

5251
const CLICK_BUTTON_VALUES = ['primary', 'secondary', 'middle'] as const;
5352
const GESTURE_KIND_VALUES = ['pan', 'fling', 'pinch', 'rotate', 'transform'] as const;
@@ -281,25 +280,6 @@ export const interactionCommandDefinitions = [
281280
}),
282281
] as const;
283282

284-
function defineFieldCommand<
285-
const TName extends string,
286-
const TFields extends CommandFieldMap,
287-
TResult,
288-
>(
289-
name: TName,
290-
description: string,
291-
fields: TFields,
292-
run: (client: AgentDeviceClient, input: InferCommandInput<TFields>) => Promise<TResult>,
293-
) {
294-
return defineCommand({
295-
name,
296-
description,
297-
inputSchema: fieldsInputSchema(fields),
298-
readInput: (input) => readFieldInput(input, fields),
299-
run,
300-
});
301-
}
302-
303283
function readGestureInput(input: unknown): GestureInput {
304284
const record = readInputRecord(input);
305285
const common = readCommonInput(record);

src/utils/cli-command-overrides.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ const SCHEMA_ONLY_CLI_COMMAND_SCHEMAS = {
6060
},
6161
} as const satisfies Record<SchemaOnlyCliCommandName, CommandSchema>;
6262

63-
export const CLI_COMMAND_OVERRIDES = {
63+
const CLI_COMMAND_OVERRIDES = {
6464
boot: {
6565
summary: 'Boot target device/simulator',
6666
allowedFlags: ['headless'],

0 commit comments

Comments
 (0)