naftiko: 1.0.0-alpha2 info: label: WakaTime API — Custom Rules description: 'WakaTime API — Custom Rules. 5 operations. Lead operation: List Custom Rules. Self-contained Naftiko capability covering one WakaTime business surface.' tags: - WakaTime - Developer Productivity - Custom Rules created: '2026-05-30' modified: '2026-05-30' binds: - namespace: env keys: WAKATIME_API_KEY: WAKATIME_API_KEY capability: consumes: - type: http namespace: wakatime-api-v1-custom-rules baseUri: https://wakatime.com/api/v1 description: WakaTime API — Custom Rules business capability. Self-contained, no shared references. authentication: type: basic username: '{{env.WAKATIME_API_KEY}}' password: '' resources: - name: users-current-custom-rules path: /users/current/custom_rules operations: - name: listCustomRules method: GET description: List Custom Rules outputRawFormat: json outputParameters: - name: result type: object value: $. - name: putCustomRules method: PUT description: Put Custom Rules inputParameters: - name: body in: body type: object required: true description: Request body payload. outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-current-custom-rules-rule-id path: /users/current/custom_rules/{rule_id} operations: - name: deleteCustomRule method: DELETE description: Delete Custom Rule inputParameters: - name: rule_id in: path type: string required: true outputRawFormat: json outputParameters: - name: result type: object value: $. - name: users-current-custom-rules-progress path: /users/current/custom_rules_progress operations: - name: getCustomRulesProgress method: GET description: Get Custom Rules Progress outputRawFormat: json outputParameters: - name: result type: object value: $. - name: abortCustomRulesProgress method: DELETE description: Abort Custom Rules Progress outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest namespace: wakatime-api-v1-custom-rules-rest port: 8080 description: REST adapter for WakaTime API — Custom Rules. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/users/current/custom-rules name: users-current-custom-rules description: REST surface for /users/current/custom_rules. operations: - method: GET name: listCustomRules description: List Custom Rules call: wakatime-api-v1-custom-rules.listCustomRules outputParameters: - type: object mapping: $. - method: PUT name: putCustomRules description: Put Custom Rules call: wakatime-api-v1-custom-rules.putCustomRules with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/users/current/custom-rules/{rule-id} name: users-current-custom-rules-rule-id description: REST surface for /users/current/custom_rules/{rule_id}. operations: - method: DELETE name: deleteCustomRule description: Delete Custom Rule call: wakatime-api-v1-custom-rules.deleteCustomRule with: rule_id: rest.rule_id outputParameters: - type: object mapping: $. - path: /v1/users/current/custom-rules-progress name: users-current-custom-rules-progress description: REST surface for /users/current/custom_rules_progress. operations: - method: GET name: getCustomRulesProgress description: Get Custom Rules Progress call: wakatime-api-v1-custom-rules.getCustomRulesProgress outputParameters: - type: object mapping: $. - method: DELETE name: abortCustomRulesProgress description: Abort Custom Rules Progress call: wakatime-api-v1-custom-rules.abortCustomRulesProgress outputParameters: - type: object mapping: $. - type: mcp namespace: wakatime-api-v1-custom-rules-mcp port: 9090 transport: http description: MCP adapter for WakaTime API — Custom Rules. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-custom-rules description: List Custom Rules hints: destructive: false idempotent: true readOnly: true call: wakatime-api-v1-custom-rules.listCustomRules outputParameters: - type: object mapping: $. - name: put-custom-rules description: Put Custom Rules hints: destructive: false idempotent: true readOnly: false call: wakatime-api-v1-custom-rules.putCustomRules with: body: tools.body outputParameters: - type: object mapping: $. - name: delete-custom-rule description: Delete Custom Rule hints: destructive: true idempotent: true readOnly: false call: wakatime-api-v1-custom-rules.deleteCustomRule with: rule_id: tools.rule_id outputParameters: - type: object mapping: $. - name: get-custom-rules-progress description: Get Custom Rules Progress hints: destructive: false idempotent: true readOnly: true call: wakatime-api-v1-custom-rules.getCustomRulesProgress outputParameters: - type: object mapping: $. - name: abort-custom-rules-progress description: Abort Custom Rules Progress hints: destructive: true idempotent: true readOnly: false call: wakatime-api-v1-custom-rules.abortCustomRulesProgress outputParameters: - type: object mapping: $.