brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
dingtalk_channel_connectUse a headed browser to automatically complete DingTalk channel integration for QwenPaw. Applicable when the user mentions DingTalk, developer console, Client ID, Client Secret, bot, Stream mode, binding or configuring a channel. Supports pausing when a login page is detected and resuming after the user logs in.
Independent GitHub snapshot · Automated classification · Original documentation governs
This skill automates the creation of a DingTalk application and the binding of a QwenPaw channel using a headed browser.
{"action": "start", "headed": true}
Must pause when a login gate is encountered:
Any application configuration change only takes effect after creating a new version and publishing:
Before starting automated clicks, initiate a "configuration confirmation" with the user, clearly informing them of customizable fields, image specifications, and default values. Use the following structured confirmation:
Allow the user to customize the following fields:
Clearly state the image specifications (prominently):
240*240px or larger, 1:1 ratio, under 2MB, no rounded corners.png/jpeg/jpg, no more than 2MB.Clearly state the default values (used automatically if the user does not specify):
QwenPawYour personal assistanthttps://img.alicdn.com/imgextra/i4/O1CN01M0iyHF1FVNzM9qjC0_!!6000000000492-2-tps-254-254.pnghttps://img.alicdn.com/imgextra/i4/O1CN01M0iyHF1FVNzM9qjC0_!!6000000000492-2-tps-254-254.pngIf the user provides no custom values, you must first explicitly reply:
file_upload with the local path array (paths_json)paths_json of file_upload must be a "JSON string array" -- note the escaping:{
"action": "file_upload",
"paths_json": "[\"xxx.png\"]",
"frame_selector": "iframe[src*=\"/fe/app?isHideOuterFrame=true\"]"
}
If the page is within an iframe, prefer including frame_selector; otherwise the upload control may not be found or the chooser may not trigger.
You must click the upload entry before calling file_upload; calling it directly will result in:
No chooser. Click upload then file_upload.Common structural features of the bot icon area that can be used for locating elements (examples; these may appear as Chinese UI labels in the DingTalk console):
text: "* 机器人图标" (Bot Icon)button: "使用应用图标" (Use App Icon)button: "avatar" (usually contains img "avatar" inside)When the snapshot shows both "使用应用图标" ("Use App Icon") and "avatar", prefer clicking the avatar button to trigger the upload, then call file_upload.
headed: true)https://open-dev.dingtalk.com/snapshot to check if login is requiredIf login is required, pause with the following message:
Login to the DingTalk Developer Console is required. I have paused automated operations. Please complete the login in the opened browser. Reply "continue" when done, and I will resume from the current page.
After the user confirms login, continue:
QwenPawYour personal assistantIf the page text or structure does not match expectations, re-run snapshot and relocate elements based on visible text semantics.
https://img.alicdn.com/imgextra/i4/O1CN01M0iyHF1FVNzM9qjC0_!!6000000000492-2-tps-254-254.pnghttps://img.alicdn.com/imgextra/i4/O1CN01M0iyHF1FVNzM9qjC0_!!6000000000492-2-tps-254-254.pngStream Mode (the Chinese UI may display Stream 模式)Application Release -> Version Management & ReleaseBasic Information -> Credentials & Basic InfoClient ID (AppKey) and Client Secret (AppSecret) are on this page. Do not make changes proactively; guide the user to bind them on their ownAfter obtaining the credentials, guide the user to choose one of the following methods:
Console frontend configuration:
Control -> Channels -> DingTalkClient ID and Client SecretConfiguration file method:
"dingtalk": {
"enabled": true,
"bot_prefix": "[BOT]",
"client_id": "Your Client ID",
"client_secret": "Your Client Secret"
}
Path: ~/.qwenpaw/config.json, under channels.dingtalk.
Client ID and the actual Client Secret.console configuration or ~/.qwenpaw/config.json.Control -> Channels -> DingTalkchannels.dingtalk field in ~/.qwenpaw/config.jsonExecute in the following order by default:
start with headed: trueopensnapshotclick / type / select_option / press_key as neededsnapshot after page transitionsstop when doneref from the latest snapshot; only use selector when necessary.wait_for) and immediately re-run snapshot.