diff --git a/packages/kbot/dist-in/lib/images-google.js b/packages/kbot/dist-in/lib/images-google.js index f0d6385b..10f1a8b4 100644 --- a/packages/kbot/dist-in/lib/images-google.js +++ b/packages/kbot/dist-in/lib/images-google.js @@ -71,17 +71,12 @@ export const createImage = async (prompt, options) => { } } else if ('text' in part && part.text) { - // Check if this is a rejection message - const text = part.text.toLowerCase(); - if (text.includes('cannot fulfill') || text.includes('not able to create') || - text.includes('unable to generate') || text.includes('cannot generate') || - text.includes('cannot create') || text.includes('not appropriate')) { - logger.error('Google AI rejected the request:', { - rejectionMessage: part.text, - finishReason: candidate.finishReason - }); - throw new Error(`Request rejected by Google AI: ${part.text}`); - } + // Google AI returned text instead of an image - show this to the user + logger.info('Google AI returned text response instead of image:', { + textResponse: part.text, + finishReason: candidate.finishReason + }); + throw new Error(`Google AI response: ${part.text}`); } } logger.warn('No image data found in API response parts', { @@ -173,19 +168,14 @@ export const editImage = async (prompt, imagePaths, options) => { } } else if ('text' in part && part.text) { - // Check if this is a rejection message - const text = part.text.toLowerCase(); - if (text.includes('cannot fulfill') || text.includes('not able to create') || - text.includes('unable to generate') || text.includes('cannot generate') || - text.includes('cannot create') || text.includes('not appropriate')) { - logger.error('Google AI rejected the image edit request:', { - rejectionMessage: part.text, - finishReason: candidate.finishReason, - prompt: prompt.substring(0, 100) + '...', - imageCount: imagePaths.length - }); - throw new Error(`Request rejected by Google AI: ${part.text}`); - } + // Google AI returned text instead of an image - show this to the user + logger.info('Google AI returned text response instead of image (editImage):', { + textResponse: part.text, + finishReason: candidate.finishReason, + prompt: prompt.substring(0, 100) + '...', + imageCount: imagePaths.length + }); + throw new Error(`Google AI response: ${part.text}`); } } logger.warn('No image data found in API response parts (editImage)', { @@ -208,4 +198,4 @@ export const editImage = async (prompt, imagePaths, options) => { throw error; // Re-throw to let the caller handle it } }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLWdvb2dsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvaW1hZ2VzLWdvb2dsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQVEsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUU5QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVuQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsT0FBcUIsRUFBRSxFQUFFO0lBQ3RELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDVixNQUFNLENBQUMsS0FBSyxDQUNSLDhDQUE4QztZQUM5Qyx3RUFBd0UsQ0FDM0UsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0lBRXBELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNWLE1BQU0sQ0FBQyxLQUFLLENBQUMscUdBQXFHLENBQUMsQ0FBQztRQUNwSCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzFDLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsTUFBYyxFQUFFLE9BQXFCLEVBQTBCLEVBQUU7SUFDL0YsTUFBTSxFQUFFLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsSUFBSSxDQUFDLEVB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 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLWdvb2dsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvaW1hZ2VzLWdvb2dsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQVEsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEtBQUssRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUU5QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVuQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsT0FBcUIsRUFBRSxFQUFFO0lBQ3RELE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDVixNQUFNLENBQUMsS0FBSyxDQUNSLDhDQUE4QztZQUM5Qyx3RUFBd0UsQ0FDM0UsQ0FBQztRQUNGLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDO0lBRXBELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNWLE1BQU0sQ0FBQyxLQUFLLENBQUMscUdBQXFHLENBQUMsQ0FBQztRQUNwSCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTyxJQUFJLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzFDLENBQUMsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsTUFBYyxFQUFFLE9BQXFCLEVBQTBCLEVBQUU7SUFDL0YsTUFBTSxFQUFFLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ04sT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLGdDQUFnQyxFQUFFLENBQUMsQ0FBQztJQUVsRyxJQUFJLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFbkQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNqQyxNQUFNLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxFQUFFO1lBQzlDLFdBQVcsRUFBRSxDQUFDLENBQUMsUUFBUTtZQUN2QixhQUFhLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxVQUFVO1lBQ3JDLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTTtZQUM5QyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNsRCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4RSxNQUFNLENBQUMsS0FBSyxDQUFDLHNEQUFzRCxFQUFFO2dCQUNqRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUM5QyxDQUFDLENBQUM7WUFDSCxNQUFNLElBQUksS0FBSyxDQUFDLDJIQUEySCxDQUFDLENBQUM7UUFDakosQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekMsMkNBQTJDO1FBQzNDLElBQUksU0FBUyxDQUFDLFlBQVksSUFBSSxTQUFTLENBQUMsWUFBWSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzlELE1BQU0sb0JBQW9CLEdBQUc7Z0JBQ3pCLGNBQWMsRUFBRSx3SEFBd0g7Z0JBQ3hJLFFBQVEsRUFBRSx5R0FBeUc7Z0JBQ25ILFlBQVksRUFBRSx3SEFBd0g7Z0JBQ3RJLE9BQU8sRUFBRSxnRUFBZ0U7YUFDNUUsQ0FBQztZQUVGLE1BQU0sT0FBTyxHQUFHLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7Z0JBQzdDLHVDQUF1QyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFL0UsTUFBTSxDQUFDLEtBQUssQ0FBQyxrREFBa0QsRUFBRTtnQkFDN0QsWUFBWSxFQUFFLFNBQVMsQ0FBQyxZQUFZO2dCQUNwQyxnQkFBZ0IsRUFBRSxPQUFPO2dCQUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUNoRCxDQUFDLENBQUM7WUFDSCxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakQsTUFBTSxDQUFDLEtBQUssQ0FBQyxzREFBc0QsRUFBRTtnQkFDakUsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDaEQsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxJQUFJLEtBQUssQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO1FBQy9GLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUN0QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLElBQUksWUFBWSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN2QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUNuQyxJQUFJLFVBQVUsRUFBRSxDQUFDO29CQUNiLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNsRCxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNyQyxzRUFBc0U7Z0JBQ3RFLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0RBQW9ELEVBQUU7b0JBQzlELFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSTtvQkFDdkIsWUFBWSxFQUFFLFNBQVMsQ0FBQyxZQUFZO2lCQUN2QyxDQUFDLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDeEQsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLDJDQUEyQyxFQUFFO1lBQ3JELFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTTtZQUN4QixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNyQyxZQUFZLEVBQUUsU0FBUyxDQUFDLFlBQVk7U0FDdkMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxJQUFJLEtBQUssQ0FBQyxpRkFBaUYsQ0FBQyxDQUFDO0lBRXZHLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2IsTUFBTSxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsRUFBRTtZQUNoRCxLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDcEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ2xCLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxLQUFLO1NBQzNDLENBQUMsQ0FBQztRQUNILE1BQU0sS0FBSyxDQUFDLENBQUMsdUNBQXVDO0lBQ3hELENBQUM7QUFDTCxDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsS0FBSyxFQUFFLE1BQWMsRUFBRSxVQUFvQixFQUFFLE9BQXFCLEVBQTBCLEVBQUU7SUFDbkgsTUFBTSxFQUFFLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ04sT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLGdDQUFnQyxFQUFFLENBQUMsQ0FBQztJQUVsRyxJQUFJLENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBVyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ2xELE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDN0MsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksV0FBVyxDQUFDO1lBQ2xELE9BQU87Z0JBQ0gsVUFBVSxFQUFFO29CQUNSLFFBQVE7b0JBQ1IsSUFBSSxFQUFFLFdBQVc7aUJBQ3BCO2FBQ0osQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDeEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUU5QyxNQUFNLE1BQU0sR0FBRyxNQUFNLEtBQUssQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFeEQsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNqQyxNQUFNLENBQUMsS0FBSyxDQUFDLCtDQUErQyxFQUFFO1lBQzFELFdBQVcsRUFBRSxDQUFDLENBQUMsUUFBUTtZQUN2QixhQUFhLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxVQUFVO1lBQ3JDLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTTtZQUM5QyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUNsRCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4RSxNQUFNLENBQUMsS0FBSyxDQUFDLGtFQUFrRSxFQUFFO2dCQUM3RSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDM0MsTUFBTSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUs7Z0JBQ3hDLFVBQVUsRUFBRSxVQUFVLENBQUMsTUFBTTthQUNoQyxDQUFDLENBQUM7WUFDSCxNQUFNLElBQUksS0FBSyxDQUFDLDJIQUEySCxDQUFDLENBQUM7UUFDakosQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekMsMkNBQTJDO1FBQzNDLElBQUksU0FBUyxDQUFDLFlBQVksSUFBSSxTQUFTLENBQUMsWUFBWSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzlELE1BQU0sb0JBQW9CLEdBQUc7Z0JBQ3pCLGNBQWMsRUFBRSx3SEFBd0g7Z0JBQ3hJLFFBQVEsRUFBRSx5R0FBeUc7Z0JBQ25ILFlBQVksRUFBRSx3SEFBd0g7Z0JBQ3RJLE9BQU8sRUFBRSxnRUFBZ0U7YUFDNUUsQ0FBQztZQUVGLE1BQU0sT0FBTyxHQUFHLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7Z0JBQzdDLHVDQUF1QyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7WUFFL0UsTUFBTSxDQUFDLEtBQUssQ0FBQyxxREFBcUQsRUFBRTtnQkFDaEUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxZQUFZO2dCQUNwQyxnQkFBZ0IsRUFBRSxPQUFPO2dCQUN6QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDN0MsTUFBTSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEtBQUs7Z0JBQ3hDLFVBQVUsRUFBRSxVQUFVLENBQUMsTUFBTTthQUNoQyxDQUFDLENBQUM7WUFDSCxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakQsTUFBTSxDQUFDLEtBQUssQ0FBQyxrRUFBa0UsRUFBRTtnQkFDN0UsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzdDLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxLQUFLO2dCQUN4QyxVQUFVLEVBQUUsVUFBVSxDQUFDLE1BQU07YUFDaEMsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxJQUFJLEtBQUssQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO1FBQy9GLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUN0QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLElBQUksWUFBWSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUN2QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUNuQyxJQUFJLFVBQVUsRUFBRSxDQUFDO29CQUNiLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUNsRCxDQUFDO1lBQ0wsQ0FBQztpQkFBTSxJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNyQyxzRUFBc0U7Z0JBQ3RFLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0VBQWdFLEVBQUU7b0JBQzFFLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSTtvQkFDdkIsWUFBWSxFQUFFLFNBQVMsQ0FBQyxZQUFZO29CQUNwQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSztvQkFDeEMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxNQUFNO2lCQUNoQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDeEQsQ0FBQztRQUNMLENBQUM7UUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLHVEQUF1RCxFQUFFO1lBQ2pFLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTTtZQUN4QixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNyQyxNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSztZQUN4QyxVQUFVLEVBQUUsVUFBVSxDQUFDLE1BQU07WUFDN0IsWUFBWSxFQUFFLFNBQVMsQ0FBQyxZQUFZO1NBQ3ZDLENBQUMsQ0FBQztRQUNILE1BQU0sSUFBSSxLQUFLLENBQUMsaUZBQWlGLENBQUMsQ0FBQztJQUV2RyxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNiLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUNBQW1DLEVBQUU7WUFDOUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3BCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztZQUNsQixNQUFNLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSztZQUN4QyxVQUFVLEVBQUUsVUFBVSxDQUFDLE1BQU07WUFDN0IsVUFBVSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO1NBQzFELENBQUMsQ0FBQztRQUNILE1BQU0sS0FBSyxDQUFDLENBQUMsdUNBQXVDO0lBQ3hELENBQUM7QUFDTCxDQUFDLENBQUEifQ== \ No newline at end of file diff --git a/packages/kbot/dist/win-64/tauri-app.exe b/packages/kbot/dist/win-64/tauri-app.exe index 65d01c60..634820e1 100644 Binary files a/packages/kbot/dist/win-64/tauri-app.exe and b/packages/kbot/dist/win-64/tauri-app.exe differ diff --git a/packages/kbot/gui/tauri-app/build-android.sh b/packages/kbot/gui/tauri-app/build-android.sh new file mode 100644 index 00000000..2662d3e5 Binary files /dev/null and b/packages/kbot/gui/tauri-app/build-android.sh differ diff --git a/packages/kbot/gui/tauri-app/misc/cert.sh b/packages/kbot/gui/tauri-app/misc/cert.sh new file mode 100644 index 00000000..01f948e7 --- /dev/null +++ b/packages/kbot/gui/tauri-app/misc/cert.sh @@ -0,0 +1 @@ +keytool -genkey -v -keystore debug.keystore -alias debug -keyalg RSA -keysize 2048 -validity 10000 -storepass android -keypass android -dname "CN=Debug,O=Dev,C=US" \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/misc/debug.keystore b/packages/kbot/gui/tauri-app/misc/debug.keystore new file mode 100644 index 00000000..cf81cbc2 Binary files /dev/null and b/packages/kbot/gui/tauri-app/misc/debug.keystore differ diff --git a/packages/kbot/gui/tauri-app/ref/ProfileCard.tsx b/packages/kbot/gui/tauri-app/ref/ProfileCard.tsx deleted file mode 100644 index a1b0b686..00000000 --- a/packages/kbot/gui/tauri-app/ref/ProfileCard.tsx +++ /dev/null @@ -1,379 +0,0 @@ -import React, { useState, useEffect, useMemo } from 'react'; -import { Card, CardContent, CardFooter, CardHeader, CardTitle } from '@/components/ui/card'; -import { Button } from '@/components/ui/button'; -import { Profile, PlotStatus, TemperatureProfileCommand } from '@/types'; -import BezierEditor from '@/components/profiles/bezier/BezierEditor'; -import { Edit, Trash2, Play, Pause, StopCircle, Copy, CopyPlus } from 'lucide-react'; -import { Switch } from "@/components/ui/switch"; -import { Label } from "@/components/ui/label"; -import { T, translate } from '../../i18n'; -import { useModbus } from '../../contexts/ModbusContext'; -import { getSlaveIdFromGroup, findCoilForProfile } from '../../lib/controllerUtils'; -import { PV_REGISTER_NAME_SUFFIX, PROFILE_REGISTER_NAMES } from '../../constants'; -import { useNavigate } from 'react-router-dom'; - -import { - Select, - SelectContent, - SelectItem, - SelectTrigger, - SelectValue, -} from '@/components/ui/select'; - -interface ProfileCardProps { - profile: Profile; - onDelete: (id: string) => void; - onCommand: (profileSlot: number, command: TemperatureProfileCommand) => void; - zones?: { id: string, name: string }[]; - onApplyToZone?: (profileId: string, zoneId: string) => void; - onDuplicate: (profileToDuplicate: Profile) => void; - onCopyTo: (profileToCopy: Profile) => void; - canDuplicate?: boolean; -} - -const formatDuration = (ms: number): string => { - if (isNaN(ms) || ms < 0) return '00h 00min 00s'; - const totalSeconds = Math.floor(ms / 1000); - const hours = Math.floor(totalSeconds / 3600); - const minutes = Math.floor((totalSeconds % 3600) / 60); - const seconds = totalSeconds % 60; - - // For durations less than 1 hour, show minutes and seconds - if (hours === 0) { - const paddedMinutes = minutes.toString().padStart(2, '0'); - const paddedSeconds = seconds.toString().padStart(2, '0'); - return `${paddedMinutes}min ${paddedSeconds}s`; - } - - // For durations 1+ hours, show hours and minutes - const paddedHours = hours.toString().padStart(2, '0'); - const paddedMinutes = minutes.toString().padStart(2, '0'); - return `${paddedHours}h ${paddedMinutes}min`; -}; - -// Helper function to get status text -const getStatusText = (status: PlotStatus): string => { - switch (status) { - case PlotStatus.IDLE: - return 'Idle'; - case PlotStatus.RUNNING: - return 'Running'; - case PlotStatus.INITIALIZING: - return 'Warmup'; - case PlotStatus.PAUSED: - return 'Paused'; - case PlotStatus.FINISHED: - return 'Finished'; - case PlotStatus.STOPPED: - return 'Stopped'; - default: - return 'Unknown'; - } -}; - -const ProfileCard: React.FC = ({ - profile, - onDelete, - onCommand, - zones, - onApplyToZone, - onDuplicate, - onCopyTo, - canDuplicate -}) => { - const navigate = useNavigate(); - const profileId = String(profile.slot); - const [plainTextDescription, setPlainTextDescription] = useState(''); - const { registers, settings, coils, updateCoil } = useModbus(); - const [isToggling, setIsToggling] = useState(false); - - const enableCoil = useMemo(() => { - if (!coils || !profile.name) return null; - return findCoilForProfile( - coils, - profile.name, - profile.slot, - PROFILE_REGISTER_NAMES.ENABLED - ); - }, [coils, profile.name, profile.slot]); - - const isEnabled = enableCoil ? enableCoil.value : false; - // console.log("isEnabled",profile.enabled,enableCoil); - - const handleToggle = async (newState: boolean) => { - if (!enableCoil) return; - setIsToggling(true); - try { - await updateCoil(enableCoil.address, newState); - } catch (error) { - console.error(`Failed to toggle profile ${profile.slot}`, error); - } finally { - setIsToggling(false); - } - }; - - // Create a name-to-slaveid map from the partition config - const controllerNameToSlaveIdMap = React.useMemo(() => { - const map = new Map(); - if (!settings) return map; - settings.partitions.forEach(partition => { - partition.controllers?.forEach(controller => { - if (controller.name) { - map.set(controller.name, controller.slaveid); - } - }); - }); - return map; - }, [settings]); - - const getControllerPv = (controllerName: string): number | string => { - const slaveid = controllerNameToSlaveIdMap.get(controllerName); - - if (slaveid === undefined) { - // Fallback or error for controllers not in the static config - // This might happen if profiles are associated with controllers not in PARTITION_CONFIG - const fallbackSlaveId = getSlaveIdFromGroup(controllerName); - if(fallbackSlaveId) { - // You can decide if you want to support this fallback. - // For now, let's just log a warning and return N/A if not in the map. - } - console.warn(`Could not determine slaveid for controller from settings: ${controllerName}`,controllerNameToSlaveIdMap); - return 'N/A'; - } - - const pvRegister = registers.find( - reg => getSlaveIdFromGroup(reg.group) === slaveid && reg.name.endsWith(PV_REGISTER_NAME_SUFFIX) - ); - - if (pvRegister && typeof pvRegister.value === 'number') { - return pvRegister.value.toFixed(1); - } else { - // It's possible for the register to exist but the value not be a number yet. - // Or for the register not to be found immediately. - console.error(`PV register not found for controller ${controllerName} (slaveid: ${slaveid})`); - } - - return 'N/A'; - }; - - useEffect(() => { - const getPlainTextFromMarkdown = async (markdown: string = '') => { - return markdown; - }; - - if (profile.description) { - getPlainTextFromMarkdown(profile.description); - } else { - setPlainTextDescription(''); - } - }, [profile.description]); - - return ( - - -
- - {profile.name} - -
-
- - -
-
-
-
-
- {formatDuration(profile.duration)} Total -
-
- {getStatusText(profile.status)} -
-
- {profile.max}°C Max -
- {(profile.status === PlotStatus.RUNNING || profile.status === PlotStatus.PAUSED || profile.status === PlotStatus.INITIALIZING) && ( - <> - {profile.currentTemp !== undefined && ( -
- {profile.currentTemp}°C Now -
- )} - {profile.elapsed !== undefined && ( -
- {formatDuration(profile.elapsed)} Elapsed -
- )} - {profile.remaining !== undefined && ( -
- {formatDuration(profile.remaining)} Remaining -
- )} - - - )} -
-
-
- - {plainTextDescription && ( -

- {plainTextDescription} -

- )} - - {profile.associatedControllerNames && profile.associatedControllerNames.length > 0 && ( -
-

{translate("Associated Controllers:")}

-
- {profile.associatedControllerNames.map((name, index) => { - const slaveid = controllerNameToSlaveIdMap.get(name); - return ( -
- {name}{slaveid !== undefined ? ` (${slaveid})` : ''}: - {getControllerPv(name)}°C -
- ); - })} -
-
- )} - -
- {}} - max={profile.max} - duration={profile.duration} - readonly - showGridLabels={false} - className="h-40 w-full" - elapsedTime={profile.elapsed} - isRunning={profile.status === PlotStatus.RUNNING || profile.status === PlotStatus.PAUSED || profile.status === PlotStatus.INITIALIZING} - currentTemp={profile.currentTemp} - /> -
- - {zones && zones.length > 0 && onApplyToZone && ( -
-

Apply to zone:

- -
- )} -
- - - - {(profile.status === PlotStatus.IDLE || profile.status === PlotStatus.FINISHED || profile.status === PlotStatus.STOPPED) && ( - - )} - {(profile.status === PlotStatus.RUNNING || profile.status === PlotStatus.INITIALIZING) && ( - - )} - {profile.status === PlotStatus.PAUSED && ( - - )} - - {(profile.status === PlotStatus.RUNNING || profile.status === PlotStatus.PAUSED || profile.status === PlotStatus.INITIALIZING) && ( - - )} - - - - - - - -
- ); -}; - -export default ProfileCard; diff --git a/packages/kbot/gui/tauri-app/src-tauri/2 b/packages/kbot/gui/tauri-app/src-tauri/2 deleted file mode 100644 index c78ecc4b..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/2 +++ /dev/null @@ -1,7 +0,0 @@ - -up to date, audited 206 packages in 2s - -31 packages are looking for funding - run `npm fund` for details - -found 0 vulnerabilities diff --git a/packages/kbot/gui/tauri-app/src-tauri/debug.keystore b/packages/kbot/gui/tauri-app/src-tauri/debug.keystore new file mode 100644 index 00000000..0d17ae3d Binary files /dev/null and b/packages/kbot/gui/tauri-app/src-tauri/debug.keystore differ diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/.editorconfig b/packages/kbot/gui/tauri-app/src-tauri/gen/android/.editorconfig index ebe51d3b..b1a4b7c2 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/.editorconfig +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/.editorconfig @@ -1,12 +1,12 @@ -# EditorConfig is awesome: https://EditorConfig.org - -# top-most EditorConfig file -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = false +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = false insert_final_newline = false \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/.gitignore b/packages/kbot/gui/tauri-app/src-tauri/gen/android/.gitignore index b2482031..3971e690 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/.gitignore +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/.gitignore @@ -1,19 +1,19 @@ -*.iml -.gradle -/local.properties -/.idea/caches -/.idea/libraries -/.idea/modules.xml -/.idea/workspace.xml -/.idea/navEditor.xml -/.idea/assetWizardSettings.xml -.DS_Store -build -/captures -.externalNativeBuild -.cxx -local.properties -key.properties - -/.tauri +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +build +/captures +.externalNativeBuild +.cxx +local.properties +key.properties + +/.tauri /tauri.settings.gradle \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/.gitignore b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/.gitignore index 4008dd74..9225854a 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/.gitignore +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/.gitignore @@ -1,6 +1,6 @@ -/src/main/java/com/tauri/api/generated -/src/main/jniLibs/**/*.so -/src/main/assets/tauri.conf.json -/tauri.build.gradle.kts -/proguard-tauri.pro +/src/main/java/com/zx/tauri_app/generated +/src/main/jniLibs/**/*.so +/src/main/assets/tauri.conf.json +/tauri.build.gradle.kts +/proguard-tauri.pro /tauri.properties \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/build.gradle.kts b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/build.gradle.kts index f7047ca0..6c73772c 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/build.gradle.kts +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/build.gradle.kts @@ -1,69 +1,70 @@ -import java.util.Properties - -plugins { - id("com.android.application") - id("org.jetbrains.kotlin.android") - id("rust") -} - -val tauriProperties = Properties().apply { - val propFile = file("tauri.properties") - if (propFile.exists()) { - propFile.inputStream().use { load(it) } - } -} - -android { - compileSdk = 34 - namespace = "com.tauri.api" - defaultConfig { - manifestPlaceholders["usesCleartextTraffic"] = "false" - applicationId = "com.tauri.api" - minSdk = 24 - targetSdk = 34 - versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt() - versionName = tauriProperties.getProperty("tauri.android.versionName", "1.0") - } - buildTypes { - getByName("debug") { - manifestPlaceholders["usesCleartextTraffic"] = "true" - isDebuggable = true - isJniDebuggable = true - isMinifyEnabled = false - packaging { jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so") - jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so") - jniLibs.keepDebugSymbols.add("*/x86/*.so") - jniLibs.keepDebugSymbols.add("*/x86_64/*.so") - } - } - getByName("release") { - isMinifyEnabled = true - proguardFiles( - *fileTree(".") { include("**/*.pro") } - .plus(getDefaultProguardFile("proguard-android-optimize.txt")) - .toList().toTypedArray() - ) - } - } - kotlinOptions { - jvmTarget = "1.8" - } - buildFeatures { - buildConfig = true - } -} - -rust { - rootDirRel = "../../../" -} - -dependencies { - implementation("androidx.webkit:webkit:1.6.1") - implementation("androidx.appcompat:appcompat:1.6.1") - implementation("com.google.android.material:material:1.8.0") - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test.ext:junit:1.1.4") - androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0") -} - +import java.util.Properties + +plugins { + id("com.android.application") + id("org.jetbrains.kotlin.android") + id("rust") +} + +val tauriProperties = Properties().apply { + val propFile = file("tauri.properties") + if (propFile.exists()) { + propFile.inputStream().use { load(it) } + } +} + +android { + compileSdk = 36 + namespace = "com.zx.tauri_app" + defaultConfig { + manifestPlaceholders["usesCleartextTraffic"] = "false" + applicationId = "com.zx.tauri_app" + minSdk = 24 + targetSdk = 36 + versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt() + versionName = tauriProperties.getProperty("tauri.android.versionName", "1.0") + } + buildTypes { + getByName("debug") { + manifestPlaceholders["usesCleartextTraffic"] = "true" + isDebuggable = true + isJniDebuggable = true + isMinifyEnabled = false + packaging { jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so") + jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so") + jniLibs.keepDebugSymbols.add("*/x86/*.so") + jniLibs.keepDebugSymbols.add("*/x86_64/*.so") + } + } + getByName("release") { + isMinifyEnabled = true + proguardFiles( + *fileTree(".") { include("**/*.pro") } + .plus(getDefaultProguardFile("proguard-android-optimize.txt")) + .toList().toTypedArray() + ) + } + } + kotlinOptions { + jvmTarget = "1.8" + } + buildFeatures { + buildConfig = true + } +} + +rust { + rootDirRel = "../../../" +} + +dependencies { + implementation("androidx.webkit:webkit:1.14.0") + implementation("androidx.appcompat:appcompat:1.7.1") + implementation("androidx.activity:activity-ktx:1.10.1") + implementation("com.google.android.material:material:1.12.0") + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.ext:junit:1.1.4") + androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0") +} + apply(from = "tauri.build.gradle.kts") \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/proguard-rules.pro b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/proguard-rules.pro index 481bb434..64b4a059 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/proguard-rules.pro +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/proguard-rules.pro @@ -1,21 +1,21 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. #-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/AndroidManifest.xml b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/AndroidManifest.xml index 8ebe7c4b..9e84891a 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/AndroidManifest.xml +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/AndroidManifest.xml @@ -1,57 +1,37 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/java/com/tauri/api/MainActivity.kt b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/java/com/tauri/api/MainActivity.kt deleted file mode 100644 index 0a05f42b..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/java/com/tauri/api/MainActivity.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.tauri.api - -class MainActivity : TauriActivity() \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml index 2b068d11..cc14f035 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -1,30 +1,30 @@ - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml index 07d5da9c..a4f78de5 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml @@ -1,170 +1,170 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml index 4fc24441..ca0c0de6 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml @@ -1,18 +1,18 @@ - - - - - + + + + + \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/values-night/themes.xml b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/values-night/themes.xml index f0378527..64f26787 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/values-night/themes.xml +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/values-night/themes.xml @@ -1,6 +1,6 @@ - - - - + + + + diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/values/colors.xml b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/values/colors.xml index f8c6127d..823492c9 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/values/colors.xml +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/values/colors.xml @@ -1,10 +1,10 @@ - - - #FFBB86FC - #FF6200EE - #FF3700B3 - #FF03DAC5 - #FF018786 - #FF000000 - #FFFFFFFF + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/values/strings.xml b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/values/strings.xml index 6f4305e0..b0037cbf 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/values/strings.xml +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/values/strings.xml @@ -1,4 +1,4 @@ - - Tauri API - Tauri API + + tauri-app + tauri-app \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/values/themes.xml b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/values/themes.xml index f0378527..64f26787 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/values/themes.xml +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/values/themes.xml @@ -1,6 +1,6 @@ - - - - + + + + diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml index 782d63b9..2c05685d 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml @@ -1,5 +1,5 @@ - - - - - + + + + + diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/build.gradle.kts b/packages/kbot/gui/tauri-app/src-tauri/gen/android/build.gradle.kts index c5ef452a..e0665957 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/build.gradle.kts +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/build.gradle.kts @@ -1,22 +1,22 @@ -buildscript { - repositories { - google() - mavenCentral() - } - dependencies { - classpath("com.android.tools.build:gradle:8.5.1") - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25") - } -} - -allprojects { - repositories { - google() - mavenCentral() - } -} - -tasks.register("clean").configure { - delete("build") -} - +buildscript { + repositories { + google() + mavenCentral() + } + dependencies { + classpath("com.android.tools.build:gradle:8.11.0") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25") + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +tasks.register("clean").configure { + delete("build") +} + diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/buildSrc/build.gradle.kts b/packages/kbot/gui/tauri-app/src-tauri/gen/android/buildSrc/build.gradle.kts index 39e90b05..d4975785 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/buildSrc/build.gradle.kts +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/buildSrc/build.gradle.kts @@ -1,23 +1,23 @@ -plugins { - `kotlin-dsl` -} - -gradlePlugin { - plugins { - create("pluginsForCoolKids") { - id = "rust" - implementationClass = "RustPlugin" - } - } -} - -repositories { - google() - mavenCentral() -} - -dependencies { - compileOnly(gradleApi()) - implementation("com.android.tools.build:gradle:8.5.1") -} - +plugins { + `kotlin-dsl` +} + +gradlePlugin { + plugins { + create("pluginsForCoolKids") { + id = "rust" + implementationClass = "RustPlugin" + } + } +} + +repositories { + google() + mavenCentral() +} + +dependencies { + compileOnly(gradleApi()) + implementation("com.android.tools.build:gradle:8.11.0") +} + diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt b/packages/kbot/gui/tauri-app/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt deleted file mode 100644 index f9874825..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt +++ /dev/null @@ -1,52 +0,0 @@ -import java.io.File -import org.apache.tools.ant.taskdefs.condition.Os -import org.gradle.api.DefaultTask -import org.gradle.api.GradleException -import org.gradle.api.logging.LogLevel -import org.gradle.api.tasks.Input -import org.gradle.api.tasks.TaskAction - -open class BuildTask : DefaultTask() { - @Input - var rootDirRel: String? = null - @Input - var target: String? = null - @Input - var release: Boolean? = null - - @TaskAction - fun assemble() { - val executable = """pnpm"""; - try { - runTauriCli(executable) - } catch (e: Exception) { - if (Os.isFamily(Os.FAMILY_WINDOWS)) { - runTauriCli("$executable.cmd") - } else { - throw e; - } - } - } - - fun runTauriCli(executable: String) { - val rootDirRel = rootDirRel ?: throw GradleException("rootDirRel cannot be null") - val target = target ?: throw GradleException("target cannot be null") - val release = release ?: throw GradleException("release cannot be null") - val args = listOf("tauri", "android", "android-studio-script"); - - project.exec { - workingDir(File(project.projectDir, rootDirRel)) - executable(executable) - args(args) - if (project.logger.isEnabled(LogLevel.DEBUG)) { - args("-vv") - } else if (project.logger.isEnabled(LogLevel.INFO)) { - args("-v") - } - if (release) { - args("--release") - } - args(listOf("--target", target)) - }.assertNormalExitValue() - } -} \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/RustPlugin.kt b/packages/kbot/gui/tauri-app/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/RustPlugin.kt deleted file mode 100644 index 4aa7fcaf..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/api/kotlin/RustPlugin.kt +++ /dev/null @@ -1,85 +0,0 @@ -import com.android.build.api.dsl.ApplicationExtension -import org.gradle.api.DefaultTask -import org.gradle.api.Plugin -import org.gradle.api.Project -import org.gradle.kotlin.dsl.configure -import org.gradle.kotlin.dsl.get - -const val TASK_GROUP = "rust" - -open class Config { - lateinit var rootDirRel: String -} - -open class RustPlugin : Plugin { - private lateinit var config: Config - - override fun apply(project: Project) = with(project) { - config = extensions.create("rust", Config::class.java) - - val defaultAbiList = listOf("arm64-v8a", "armeabi-v7a", "x86", "x86_64"); - val abiList = (findProperty("abiList") as? String)?.split(',') ?: defaultAbiList - - val defaultArchList = listOf("arm64", "arm", "x86", "x86_64"); - val archList = (findProperty("archList") as? String)?.split(',') ?: defaultArchList - - val targetsList = (findProperty("targetList") as? String)?.split(',') ?: listOf("aarch64", "armv7", "i686", "x86_64") - - extensions.configure { - @Suppress("UnstableApiUsage") - flavorDimensions.add("abi") - productFlavors { - create("universal") { - dimension = "abi" - ndk { - abiFilters += abiList - } - } - defaultArchList.forEachIndexed { index, arch -> - create(arch) { - dimension = "abi" - ndk { - abiFilters.add(defaultAbiList[index]) - } - } - } - } - } - - afterEvaluate { - for (profile in listOf("debug", "release")) { - val profileCapitalized = profile.replaceFirstChar { it.uppercase() } - val buildTask = tasks.maybeCreate( - "rustBuildUniversal$profileCapitalized", - DefaultTask::class.java - ).apply { - group = TASK_GROUP - description = "Build dynamic library in $profile mode for all targets" - } - - tasks["mergeUniversal${profileCapitalized}JniLibFolders"].dependsOn(buildTask) - - for (targetPair in targetsList.withIndex()) { - val targetName = targetPair.value - val targetArch = archList[targetPair.index] - val targetArchCapitalized = targetArch.replaceFirstChar { it.uppercase() } - val targetBuildTask = project.tasks.maybeCreate( - "rustBuild$targetArchCapitalized$profileCapitalized", - BuildTask::class.java - ).apply { - group = TASK_GROUP - description = "Build dynamic library in $profile mode for $targetArch" - rootDirRel = config.rootDirRel - target = targetName - release = profile == "release" - } - - buildTask.dependsOn(targetBuildTask) - tasks["merge$targetArchCapitalized${profileCapitalized}JniLibFolders"].dependsOn( - targetBuildTask - ) - } - } - } - } -} \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/gradle.properties b/packages/kbot/gui/tauri-app/src-tauri/gen/android/gradle.properties index 2a7ec695..a9bfbfc4 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/gradle.properties +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/gradle.properties @@ -1,24 +1,24 @@ -# Project-wide Gradle settings. -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true -# AndroidX package structure to make it clearer which packages are bundled with the -# Android operating system, and which are packaged with your app"s APK -# https://developer.android.com/topic/libraries/support-library/androidx-rn -android.useAndroidX=true -# Kotlin code style for this project: "official" or "obsolete": -kotlin.code.style=official -# Enables namespacing of each library's R class so that its R class includes only the -# resources declared in the library itself and none from the library's dependencies, -# thereby reducing the size of the R class for that library -android.nonTransitiveRClass=true +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app"s APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true android.nonFinalResIds=false \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties b/packages/kbot/gui/tauri-app/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties index 0df10d55..db80da3b 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Tue May 10 19:22:52 CST 2022 -distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip -distributionPath=wrapper/dists -zipStorePath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME +#Tue May 10 19:22:52 CST 2022 +distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip +distributionPath=wrapper/dists +zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/gradlew b/packages/kbot/gui/tauri-app/src-tauri/gen/android/gradlew index 4f906e0c..02640cba 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/gradlew +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/gradlew @@ -1,185 +1,185 @@ -#!/usr/bin/env sh - -# -# Copyright 2015 the original author or authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn () { - echo "$*" -} - -die () { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=`expr $i + 1` - done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -exec "$JAVACMD" "$@" +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/gradlew.bat b/packages/kbot/gui/tauri-app/src-tauri/gen/android/gradlew.bat index 107acd32..ac1b06f9 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/gradlew.bat +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/gradlew.bat @@ -1,89 +1,89 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android/settings.gradle b/packages/kbot/gui/tauri-app/src-tauri/gen/android/settings.gradle index 39391166..e958d1e8 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android/settings.gradle +++ b/packages/kbot/gui/tauri-app/src-tauri/gen/android/settings.gradle @@ -1,3 +1,3 @@ -include ':app' - -apply from: 'tauri.settings.gradle' +include ':app' + +apply from: 'tauri.settings.gradle' diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/.editorconfig b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/.editorconfig deleted file mode 100644 index ebe51d3b..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/.editorconfig +++ /dev/null @@ -1,12 +0,0 @@ -# EditorConfig is awesome: https://EditorConfig.org - -# top-most EditorConfig file -root = true - -[*] -indent_style = space -indent_size = 2 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = false -insert_final_newline = false \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/.gitignore b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/.gitignore deleted file mode 100644 index b2482031..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -*.iml -.gradle -/local.properties -/.idea/caches -/.idea/libraries -/.idea/modules.xml -/.idea/workspace.xml -/.idea/navEditor.xml -/.idea/assetWizardSettings.xml -.DS_Store -build -/captures -.externalNativeBuild -.cxx -local.properties -key.properties - -/.tauri -/tauri.settings.gradle \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/.gitignore b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/.gitignore deleted file mode 100644 index 4008dd74..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -/src/main/java/com/tauri/api/generated -/src/main/jniLibs/**/*.so -/src/main/assets/tauri.conf.json -/tauri.build.gradle.kts -/proguard-tauri.pro -/tauri.properties \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/build.gradle.kts b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/build.gradle.kts deleted file mode 100644 index f7047ca0..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/build.gradle.kts +++ /dev/null @@ -1,69 +0,0 @@ -import java.util.Properties - -plugins { - id("com.android.application") - id("org.jetbrains.kotlin.android") - id("rust") -} - -val tauriProperties = Properties().apply { - val propFile = file("tauri.properties") - if (propFile.exists()) { - propFile.inputStream().use { load(it) } - } -} - -android { - compileSdk = 34 - namespace = "com.tauri.api" - defaultConfig { - manifestPlaceholders["usesCleartextTraffic"] = "false" - applicationId = "com.tauri.api" - minSdk = 24 - targetSdk = 34 - versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt() - versionName = tauriProperties.getProperty("tauri.android.versionName", "1.0") - } - buildTypes { - getByName("debug") { - manifestPlaceholders["usesCleartextTraffic"] = "true" - isDebuggable = true - isJniDebuggable = true - isMinifyEnabled = false - packaging { jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so") - jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so") - jniLibs.keepDebugSymbols.add("*/x86/*.so") - jniLibs.keepDebugSymbols.add("*/x86_64/*.so") - } - } - getByName("release") { - isMinifyEnabled = true - proguardFiles( - *fileTree(".") { include("**/*.pro") } - .plus(getDefaultProguardFile("proguard-android-optimize.txt")) - .toList().toTypedArray() - ) - } - } - kotlinOptions { - jvmTarget = "1.8" - } - buildFeatures { - buildConfig = true - } -} - -rust { - rootDirRel = "../../../" -} - -dependencies { - implementation("androidx.webkit:webkit:1.6.1") - implementation("androidx.appcompat:appcompat:1.6.1") - implementation("com.google.android.material:material:1.8.0") - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test.ext:junit:1.1.4") - androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0") -} - -apply(from = "tauri.build.gradle.kts") \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/proguard-rules.pro b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/proguard-rules.pro deleted file mode 100644 index 481bb434..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/AndroidManifest.xml b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/AndroidManifest.xml deleted file mode 100644 index 8ebe7c4b..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/java/com/tauri/api/MainActivity.kt b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/java/com/tauri/api/MainActivity.kt deleted file mode 100644 index 0a05f42b..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/java/com/tauri/api/MainActivity.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.tauri.api - -class MainActivity : TauriActivity() \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/drawable-v24/ic_launcher_foreground.xml deleted file mode 100644 index 2b068d11..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/drawable/ic_launcher_background.xml b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/drawable/ic_launcher_background.xml deleted file mode 100644 index 07d5da9c..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/drawable/ic_launcher_background.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/layout/activity_main.xml b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/layout/activity_main.xml deleted file mode 100644 index 4fc24441..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/layout/activity_main.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-hdpi/ic_launcher.png b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 28f1aa11..00000000 Binary files a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-hdpi/ic_launcher.png and /dev/null differ diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png deleted file mode 100644 index 85d0c88a..00000000 Binary files a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-hdpi/ic_launcher_round.png deleted file mode 100644 index 28f1aa11..00000000 Binary files a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and /dev/null differ diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-mdpi/ic_launcher.png b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 73e48dbf..00000000 Binary files a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-mdpi/ic_launcher.png and /dev/null differ diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png deleted file mode 100644 index 13dd2147..00000000 Binary files a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-mdpi/ic_launcher_round.png deleted file mode 100644 index 73e48dbf..00000000 Binary files a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and /dev/null differ diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xhdpi/ic_launcher.png deleted file mode 100644 index 1d98044f..00000000 Binary files a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xhdpi/ic_launcher.png and /dev/null differ diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png deleted file mode 100644 index a888b336..00000000 Binary files a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png deleted file mode 100644 index 1d98044f..00000000 Binary files a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and /dev/null differ diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 08183246..00000000 Binary files a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and /dev/null differ diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png deleted file mode 100644 index a2a838e7..00000000 Binary files a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png deleted file mode 100644 index 08183246..00000000 Binary files a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index b18bceb6..00000000 Binary files a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and /dev/null differ diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png deleted file mode 100644 index 3f8a57f3..00000000 Binary files a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png and /dev/null differ diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png deleted file mode 100644 index b18bceb6..00000000 Binary files a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and /dev/null differ diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/values-night/themes.xml b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/values-night/themes.xml deleted file mode 100644 index f0378527..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/values-night/themes.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/values/colors.xml b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/values/colors.xml deleted file mode 100644 index f8c6127d..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/values/colors.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - #FFBB86FC - #FF6200EE - #FF3700B3 - #FF03DAC5 - #FF018786 - #FF000000 - #FFFFFFFF - \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/values/strings.xml b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/values/strings.xml deleted file mode 100644 index 6f4305e0..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/values/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - Tauri API - Tauri API - \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/values/themes.xml b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/values/themes.xml deleted file mode 100644 index f0378527..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/values/themes.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/xml/file_paths.xml b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/xml/file_paths.xml deleted file mode 100644 index 782d63b9..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/app/src/main/res/xml/file_paths.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/build.gradle.kts b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/build.gradle.kts deleted file mode 100644 index c5ef452a..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/build.gradle.kts +++ /dev/null @@ -1,22 +0,0 @@ -buildscript { - repositories { - google() - mavenCentral() - } - dependencies { - classpath("com.android.tools.build:gradle:8.5.1") - classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25") - } -} - -allprojects { - repositories { - google() - mavenCentral() - } -} - -tasks.register("clean").configure { - delete("build") -} - diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/buildSrc/build.gradle.kts b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/buildSrc/build.gradle.kts deleted file mode 100644 index 39e90b05..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/buildSrc/build.gradle.kts +++ /dev/null @@ -1,23 +0,0 @@ -plugins { - `kotlin-dsl` -} - -gradlePlugin { - plugins { - create("pluginsForCoolKids") { - id = "rust" - implementationClass = "RustPlugin" - } - } -} - -repositories { - google() - mavenCentral() -} - -dependencies { - compileOnly(gradleApi()) - implementation("com.android.tools.build:gradle:8.5.1") -} - diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt deleted file mode 100644 index f9874825..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/buildSrc/src/main/java/com/tauri/api/kotlin/BuildTask.kt +++ /dev/null @@ -1,52 +0,0 @@ -import java.io.File -import org.apache.tools.ant.taskdefs.condition.Os -import org.gradle.api.DefaultTask -import org.gradle.api.GradleException -import org.gradle.api.logging.LogLevel -import org.gradle.api.tasks.Input -import org.gradle.api.tasks.TaskAction - -open class BuildTask : DefaultTask() { - @Input - var rootDirRel: String? = null - @Input - var target: String? = null - @Input - var release: Boolean? = null - - @TaskAction - fun assemble() { - val executable = """pnpm"""; - try { - runTauriCli(executable) - } catch (e: Exception) { - if (Os.isFamily(Os.FAMILY_WINDOWS)) { - runTauriCli("$executable.cmd") - } else { - throw e; - } - } - } - - fun runTauriCli(executable: String) { - val rootDirRel = rootDirRel ?: throw GradleException("rootDirRel cannot be null") - val target = target ?: throw GradleException("target cannot be null") - val release = release ?: throw GradleException("release cannot be null") - val args = listOf("tauri", "android", "android-studio-script"); - - project.exec { - workingDir(File(project.projectDir, rootDirRel)) - executable(executable) - args(args) - if (project.logger.isEnabled(LogLevel.DEBUG)) { - args("-vv") - } else if (project.logger.isEnabled(LogLevel.INFO)) { - args("-v") - } - if (release) { - args("--release") - } - args(listOf("--target", target)) - }.assertNormalExitValue() - } -} \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/buildSrc/src/main/java/com/tauri/api/kotlin/RustPlugin.kt b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/buildSrc/src/main/java/com/tauri/api/kotlin/RustPlugin.kt deleted file mode 100644 index 4aa7fcaf..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/buildSrc/src/main/java/com/tauri/api/kotlin/RustPlugin.kt +++ /dev/null @@ -1,85 +0,0 @@ -import com.android.build.api.dsl.ApplicationExtension -import org.gradle.api.DefaultTask -import org.gradle.api.Plugin -import org.gradle.api.Project -import org.gradle.kotlin.dsl.configure -import org.gradle.kotlin.dsl.get - -const val TASK_GROUP = "rust" - -open class Config { - lateinit var rootDirRel: String -} - -open class RustPlugin : Plugin { - private lateinit var config: Config - - override fun apply(project: Project) = with(project) { - config = extensions.create("rust", Config::class.java) - - val defaultAbiList = listOf("arm64-v8a", "armeabi-v7a", "x86", "x86_64"); - val abiList = (findProperty("abiList") as? String)?.split(',') ?: defaultAbiList - - val defaultArchList = listOf("arm64", "arm", "x86", "x86_64"); - val archList = (findProperty("archList") as? String)?.split(',') ?: defaultArchList - - val targetsList = (findProperty("targetList") as? String)?.split(',') ?: listOf("aarch64", "armv7", "i686", "x86_64") - - extensions.configure { - @Suppress("UnstableApiUsage") - flavorDimensions.add("abi") - productFlavors { - create("universal") { - dimension = "abi" - ndk { - abiFilters += abiList - } - } - defaultArchList.forEachIndexed { index, arch -> - create(arch) { - dimension = "abi" - ndk { - abiFilters.add(defaultAbiList[index]) - } - } - } - } - } - - afterEvaluate { - for (profile in listOf("debug", "release")) { - val profileCapitalized = profile.replaceFirstChar { it.uppercase() } - val buildTask = tasks.maybeCreate( - "rustBuildUniversal$profileCapitalized", - DefaultTask::class.java - ).apply { - group = TASK_GROUP - description = "Build dynamic library in $profile mode for all targets" - } - - tasks["mergeUniversal${profileCapitalized}JniLibFolders"].dependsOn(buildTask) - - for (targetPair in targetsList.withIndex()) { - val targetName = targetPair.value - val targetArch = archList[targetPair.index] - val targetArchCapitalized = targetArch.replaceFirstChar { it.uppercase() } - val targetBuildTask = project.tasks.maybeCreate( - "rustBuild$targetArchCapitalized$profileCapitalized", - BuildTask::class.java - ).apply { - group = TASK_GROUP - description = "Build dynamic library in $profile mode for $targetArch" - rootDirRel = config.rootDirRel - target = targetName - release = profile == "release" - } - - buildTask.dependsOn(targetBuildTask) - tasks["merge$targetArchCapitalized${profileCapitalized}JniLibFolders"].dependsOn( - targetBuildTask - ) - } - } - } - } -} \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/gradle.properties b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/gradle.properties deleted file mode 100644 index 2a7ec695..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/gradle.properties +++ /dev/null @@ -1,24 +0,0 @@ -# Project-wide Gradle settings. -# IDE (e.g. Android Studio) users: -# Gradle settings configured through the IDE *will override* -# any settings specified in this file. -# For more details on how to configure your build environment visit -# http://www.gradle.org/docs/current/userguide/build_environment.html -# Specifies the JVM arguments used for the daemon process. -# The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 -# When configured, Gradle will run in incubating parallel mode. -# This option should only be used with decoupled projects. More details, visit -# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true -# AndroidX package structure to make it clearer which packages are bundled with the -# Android operating system, and which are packaged with your app"s APK -# https://developer.android.com/topic/libraries/support-library/androidx-rn -android.useAndroidX=true -# Kotlin code style for this project: "official" or "obsolete": -kotlin.code.style=official -# Enables namespacing of each library's R class so that its R class includes only the -# resources declared in the library itself and none from the library's dependencies, -# thereby reducing the size of the R class for that library -android.nonTransitiveRClass=true -android.nonFinalResIds=false \ No newline at end of file diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/gradle/wrapper/gradle-wrapper.jar b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index e708b1c0..00000000 Binary files a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/gradle/wrapper/gradle-wrapper.jar and /dev/null differ diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/gradle/wrapper/gradle-wrapper.properties b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index 0df10d55..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Tue May 10 19:22:52 CST 2022 -distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip -distributionPath=wrapper/dists -zipStorePath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/gradlew b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/gradlew deleted file mode 100644 index 4f906e0c..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/gradlew +++ /dev/null @@ -1,185 +0,0 @@ -#!/usr/bin/env sh - -# -# Copyright 2015 the original author or authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn () { - echo "$*" -} - -die () { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; -esac - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=`expr $i + 1` - done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` - -# Collect all arguments for the java command, following the shell quoting and substitution rules -eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" - -exec "$JAVACMD" "$@" diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/gradlew.bat b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/gradlew.bat deleted file mode 100644 index 107acd32..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/gradlew.bat +++ /dev/null @@ -1,89 +0,0 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/settings.gradle b/packages/kbot/gui/tauri-app/src-tauri/gen/android_/settings.gradle deleted file mode 100644 index 39391166..00000000 --- a/packages/kbot/gui/tauri-app/src-tauri/gen/android_/settings.gradle +++ /dev/null @@ -1,3 +0,0 @@ -include ':app' - -apply from: 'tauri.settings.gradle' diff --git a/packages/kbot/gui/tauri-app/src-tauri/src/lib.rs b/packages/kbot/gui/tauri-app/src-tauri/src/lib.rs index ee36a076..4ca3c120 100644 --- a/packages/kbot/gui/tauri-app/src-tauri/src/lib.rs +++ b/packages/kbot/gui/tauri-app/src-tauri/src/lib.rs @@ -1,12 +1,11 @@ -use tauri::Manager; use serde::{Serialize, Deserialize}; - mod handlers; mod stdin_processor; // Desktop-only modules #[cfg(not(any(target_os = "android", target_os = "ios")))] mod clipboard; +use tauri::Manager; pub use handlers::*; diff --git a/packages/kbot/gui/tauri-app/src/App.tsx b/packages/kbot/gui/tauri-app/src/App.tsx index d9825fe3..3d617e5f 100644 --- a/packages/kbot/gui/tauri-app/src/App.tsx +++ b/packages/kbot/gui/tauri-app/src/App.tsx @@ -364,8 +364,9 @@ function App() { // Check if this is a clipboard image (from temp directory) const isClipboardImage = firstPath.includes('kbot_clipboard_') || - firstPath.includes(process.platform === 'win32' ? '\\Temp\\' : '/tmp/') || - firstPath.includes('AppData\\Local\\Temp') || + firstPath.includes('\\Temp\\') || // Windows temp + firstPath.includes('/tmp/') || // Unix/Linux temp + firstPath.includes('AppData\\Local\\Temp') || // Windows user temp firstPath.includes('/var/folders/'); // macOS temp let newDir: string; diff --git a/packages/kbot/kbot_clipboard_DTZJLkckfu768HfB-B-JH.png b/packages/kbot/kbot_clipboard_DTZJLkckfu768HfB-B-JH.png new file mode 100644 index 00000000..48a1868e Binary files /dev/null and b/packages/kbot/kbot_clipboard_DTZJLkckfu768HfB-B-JH.png differ diff --git a/packages/kbot/package.json b/packages/kbot/package.json index 8b685b60..025f72a6 100644 --- a/packages/kbot/package.json +++ b/packages/kbot/package.json @@ -26,6 +26,7 @@ "gui:test": ".gui/tauri-app/src-tauri/target/release/tauri-app.exe", "gui:build": "cd ./gui/tauri-app/ && npm run build", "gui:dist": "cd ./gui/tauri-app/ && sh ./scripts/build.sh", + "gui:dist:android": "cd ./gui/tauri-app/ && sh ./scripts/build-android.sh", "register-commands": "pm-cli register-commands --config=salamand.json --group=kbot", "test": "vitest run", "test:basic": "vitest run tests/unit/basic.test.ts", diff --git a/packages/kbot/src/lib/images-google.ts b/packages/kbot/src/lib/images-google.ts index f4777a5e..080efa8e 100644 --- a/packages/kbot/src/lib/images-google.ts +++ b/packages/kbot/src/lib/images-google.ts @@ -88,17 +88,12 @@ export const createImage = async (prompt: string, options: IKBotOptions): Promis return Buffer.from(inlineData.data, "base64"); } } else if ('text' in part && part.text) { - // Check if this is a rejection message - const text = part.text.toLowerCase(); - if (text.includes('cannot fulfill') || text.includes('not able to create') || - text.includes('unable to generate') || text.includes('cannot generate') || - text.includes('cannot create') || text.includes('not appropriate')) { - logger.error('Google AI rejected the request:', { - rejectionMessage: part.text, - finishReason: candidate.finishReason - }); - throw new Error(`Request rejected by Google AI: ${part.text}`); - } + // Google AI returned text instead of an image - show this to the user + logger.info('Google AI returned text response instead of image:', { + textResponse: part.text, + finishReason: candidate.finishReason + }); + throw new Error(`Google AI response: ${part.text}`); } } @@ -203,19 +198,14 @@ export const editImage = async (prompt: string, imagePaths: string[], options: I return Buffer.from(inlineData.data, "base64"); } } else if ('text' in part && part.text) { - // Check if this is a rejection message - const text = part.text.toLowerCase(); - if (text.includes('cannot fulfill') || text.includes('not able to create') || - text.includes('unable to generate') || text.includes('cannot generate') || - text.includes('cannot create') || text.includes('not appropriate')) { - logger.error('Google AI rejected the image edit request:', { - rejectionMessage: part.text, - finishReason: candidate.finishReason, - prompt: prompt.substring(0, 100) + '...', - imageCount: imagePaths.length - }); - throw new Error(`Request rejected by Google AI: ${part.text}`); - } + // Google AI returned text instead of an image - show this to the user + logger.info('Google AI returned text response instead of image (editImage):', { + textResponse: part.text, + finishReason: candidate.finishReason, + prompt: prompt.substring(0, 100) + '...', + imageCount: imagePaths.length + }); + throw new Error(`Google AI response: ${part.text}`); } }