Inherit agent presets and auto-bind IM delivery targets (0.1.7).

Cron jobs created from WhatsApp can omit bot/target ids and reuse chat overrides; sidebar/agent preset pins persist on fire.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-09-06 02:31:43 +08:00
parent 2f08136adf
commit 2e690c30c8
15 changed files with 830 additions and 82 deletions

View file

@ -34,6 +34,8 @@ test('installable bundle declares host apply, client half, unique id, and no @de
assert.match(tools, /resolveCreateCwd/)
assert.match(tools, /after_minutes/)
assert.match(tools, /Extra schedule fields are ignored/)
assert.match(tools, /agent_preset/)
assert.match(tools, /resolveCreateAgentPreset/)
assert.doesNotMatch(tools, /pass only one of expr, at, or hour/)
assert.match(index, /makeCronSkill/)
assert.doesNotMatch(index, /agent\/session-start/)
@ -46,9 +48,12 @@ test('installable bundle declares host apply, client half, unique id, and no @de
assert.match(host, /API_PREFIX = '\/dsh-ops-cron'/)
assert.match(host, /resolveSessionPlacement/)
assert.match(host, /\/models/)
assert.match(host, /\/presets/)
assert.match(host, /composeCronAgent/)
assert.match(host, /listPresetChoices/)
assert.doesNotMatch(host, /from ['"]@deepseek-ai\//)
const client = await readFile(join(root, 'lib/client.js'), 'utf8')
assert.match(client, /运维定时/)
assert.match(client, /定时任务/)
assert.match(client, /dsh-ops-cron/)
assert.match(client, /settings\.plugin\.item/)
assert.match(client, /deliveryKind/)
@ -56,7 +61,11 @@ test('installable bundle declares host apply, client half, unique id, and no @de
assert.match(client, /imTargetId/)
assert.match(client, /CwdField/)
assert.match(client, /ModelField/)
assert.match(client, /PresetField/)
assert.match(client, /agentPreset/)
assert.match(client, /inject = \['slots', 'locale', 'settingsScope'\]/)
const preset = await readFile(join(root, 'lib/preset.js'), 'utf8')
assert.match(preset, /resolveCreateAgentPreset/)
const delivery = await readFile(join(root, 'lib/delivery.js'), 'utf8')
assert.match(delivery, /resolveCreateDelivery/)
assert.match(delivery, /deliverRunToIm/)