@boboddy/sdk 0.0.16-alpha → 0.1.0-alpha

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.
@@ -21,10 +21,10 @@ type OpenCodeMcpServers = Record<string, {
21
21
  enabled: boolean;
22
22
  }>;
23
23
  type SignalTypeStr = "string" | "number" | "boolean" | "object" | "array";
24
- type DotPaths<T, D extends readonly unknown[] = []> = D["length"] extends 4 ? string : unknown extends T ? string : T extends readonly unknown[] ? string : T extends object ? {
24
+ export type DotPaths<T, D extends readonly unknown[] = []> = D["length"] extends 4 ? string : unknown extends T ? string : T extends readonly unknown[] ? string : T extends object ? {
25
25
  [K in keyof T & string]: K | (NonNullable<T[K]> extends object ? `${K}.${DotPaths<NonNullable<T[K]>, [...D, unknown]> & string}` : never);
26
26
  }[keyof T & string] : string;
27
- type TypeAtPath<T, P extends string> = P extends `${infer K}.${infer Rest}` ? K extends keyof NonNullable<T> ? TypeAtPath<NonNullable<NonNullable<T>[K]>, Rest> : unknown : P extends keyof NonNullable<T> ? NonNullable<T>[P] : unknown;
27
+ export type TypeAtPath<T, P extends string> = P extends `${infer K}.${infer Rest}` ? K extends keyof NonNullable<T> ? TypeAtPath<NonNullable<NonNullable<T>[K]>, Rest> : unknown : P extends keyof NonNullable<T> ? NonNullable<T>[P] : unknown;
28
28
  type ToSignalType<T> = string extends T ? SignalTypeStr : [T] extends [string] ? "string" : [T] extends [number] ? "number" : [T] extends [boolean] ? "boolean" : [T] extends [readonly unknown[]] ? "array" : [T] extends [object] ? "object" : SignalTypeStr;
29
29
  type SignalSpecInput<TOutput> = {
30
30
  [P in DotPaths<TOutput>]: {
@@ -88,5 +88,18 @@ export type StepDefinitionSpec = {
88
88
  }>;
89
89
  opencodeMcpJson: OpenCodeMcpServers | null;
90
90
  };
91
- export declare function defineStep<TInput extends ZodType = ZodType, TResult extends ZodType = ZodType>(config: DefineStepInput<TInput, TResult>): StepDefinitionSpec;
91
+ export type TypedStepDefinitionSpec<TInput = unknown, TResult = unknown, TSignalKeys extends string = string> = StepDefinitionSpec & {
92
+ readonly __inputType: TInput;
93
+ readonly __resultType: TResult;
94
+ readonly __signalKeys: TSignalKeys;
95
+ };
96
+ type ExtractSignalKey<T> = T extends {
97
+ key: infer K extends string;
98
+ } ? K : T extends {
99
+ sourcePath: infer S extends string;
100
+ } ? S : string;
101
+ export type SignalKeysOf<TSignals extends readonly unknown[]> = TSignals extends readonly (infer S)[] ? ExtractSignalKey<S> : string;
102
+ export declare function defineStep<TInput extends ZodType = ZodType, TResult extends ZodType = ZodType, const TSignals extends ReadonlyArray<SignalSpecInput<TResult["_output"]>> = never[]>(config: Omit<DefineStepInput<TInput, TResult>, "signals"> & {
103
+ signals?: TSignals;
104
+ }): TypedStepDefinitionSpec<TInput["_output"], TResult["_output"], SignalKeysOf<TSignals>>;
92
105
  export {};
@@ -0,0 +1,2 @@
1
+ export * from "./define-step";
2
+ export * from "./step-definitions-client";