mirror of
https://github.com/hansjone/dsh-ops-cron.git
synced 2026-10-18 00:30:45 +08:00
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:
parent
2f08136adf
commit
2e690c30c8
15 changed files with 830 additions and 82 deletions
46
test/preset.test.js
Normal file
46
test/preset.test.js
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
import assert from 'node:assert/strict'
|
||||
import test from 'node:test'
|
||||
import { normalizeAgentPresetId, resolveCreateAgentPreset } from '../lib/preset.js'
|
||||
import { createJobRecord, emptyState } from '../lib/store.js'
|
||||
|
||||
test('normalizeAgentPresetId accepts empty and valid ids', () => {
|
||||
assert.equal(normalizeAgentPresetId(''), '')
|
||||
assert.equal(normalizeAgentPresetId(' ops-desk '), 'ops-desk')
|
||||
assert.throws(() => normalizeAgentPresetId('bad preset'), /agentPreset/)
|
||||
})
|
||||
|
||||
test('createJobRecord persists agentPreset', () => {
|
||||
const job = createJobRecord({
|
||||
name: 'n',
|
||||
prompt: 'p',
|
||||
schedule: { kind: 'cron', expr: '0 9 * * *', timezone: 'Asia/Shanghai' },
|
||||
agentPreset: 'ops-desk',
|
||||
}, emptyState(), Date.now())
|
||||
assert.equal(job.agentPreset, 'ops-desk')
|
||||
})
|
||||
|
||||
test('resolveCreateAgentPreset prefers explicit then peer then session then host default', async () => {
|
||||
assert.equal(
|
||||
await resolveCreateAgentPreset({ agent_preset: 'explicit' }, {}, {}),
|
||||
'explicit',
|
||||
)
|
||||
|
||||
const fromPeer = await resolveCreateAgentPreset({}, { agent: { session: { id: 's1' } } }, {
|
||||
dshIm: {
|
||||
resolveSessionPeer: async () => ({ agentPreset: 'from-peer' }),
|
||||
},
|
||||
})
|
||||
assert.equal(fromPeer, 'from-peer')
|
||||
|
||||
const fromMeta = await resolveCreateAgentPreset({}, {
|
||||
agent: { session: { meta: { agentPreset: 'from-meta' } } },
|
||||
}, {})
|
||||
assert.equal(fromMeta, 'from-meta')
|
||||
|
||||
const fromHost = await resolveCreateAgentPreset({}, {}, {
|
||||
agentPresets: {
|
||||
resolve: async () => ({ id: 'host-default' }),
|
||||
},
|
||||
})
|
||||
assert.equal(fromHost, 'host-default')
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue