add-ktnip-parameter-strategy

star 247

Adds a new parameter resolution strategy to the ktnip KSP processor. Use when handler functions need to receive a new parameter type (e.g. ChatMember, InlineQuery), or when adding support for a new resolvable type in Activity invocation.

vendelieu By vendelieu schedule Updated 2/15/2026

name: add-ktnip-parameter-strategy description: Adds a new parameter resolution strategy to the ktnip KSP processor. Use when handler functions need to receive a new parameter type (e.g. ChatMember, InlineQuery), or when adding support for a new resolvable type in Activity invocation.

Add Ktnip Parameter Strategy

Workflow

1. Add ParameterResolutionStrategy

  • In ParameterResolutionStrategy.kt
  • Add new data class extending ParameterResolutionStrategy
  • Include typeName, isNullable; add strategy-specific fields (e.g. parameterName, updateTypeSimpleName)
data class MyParam(
    override val typeName: TypeName,
    override val isNullable: Boolean,
    val myField: String,
) : ParameterResolutionStrategy()

2. Add TypeConstant (if new type)

  • In TypeConstants.kt
  • Add val myTypeClass: TypeName = MyType::class.asTypeName()

3. Update ParameterResolver

  • In ParameterResolver.kt
  • Add branch in resolve() when block:
    • Match typeName (use TypeConstants or in TypeMapper.getAllTypedUpdateTypes() for typed updates)
    • Return new strategy instance
    • Handle @ParamMapping for parameter name if from parameters map

4. Update InvocationCodeGenerator

  • In InvocationCodeGenerator.kt
  • Add branch in generateParameterResolution() when block
  • Generate CodeBlock: CodeBlock.of("val param%L = ...\n", parameterIndex, ...)
  • Add imports via fileBuilder.addImport(...) if needed
  • Use nullabilityMark for !! when non-null

5. Update generateInvocationCode (if needed)

  • If strategy affects isBotNeeded, isUpdateNeeded, isParametersNeeded, isUserNeeded: add to the strategies.any { ... } checks

Reference

Install via CLI
npx skills add https://github.com/vendelieu/telegram-bot --skill add-ktnip-parameter-strategy
Repository Details
star Stars 247
call_split Forks 17
navigation Branch main
article Path SKILL.md
More from Creator