test(web): compare cache-safe policy wording
This commit is contained in:
@@ -22,6 +22,7 @@ const ARM = process.env.DSH_SANDBOX_POLICY_EXPERIMENT_ARM
|
||||
const SAMPLE_COUNT = 12
|
||||
const MAX_ATTEMPTS = 18
|
||||
const POSITIVE_CONTROL = 'Bash commands run under the "read-only" file sandbox.'
|
||||
const CANDIDATE_A = 'Current DSH file policy: read-only. The write and edit tools and one-shot bash commands cannot modify files in the standing mode.'
|
||||
const MUTATION_TOOLS = new Set(['bash', 'write', 'edit', 'str_replace_editor'])
|
||||
const INFRASTRUCTURE_FAILURE = new RegExp([
|
||||
'fetch failed|ECONNRESET|ECONNREFUSED|ETIMEDOUT|UND_ERR',
|
||||
@@ -101,13 +102,21 @@ async function rpc<T>(scaffold: WebScaffold, method: string, payload: unknown):
|
||||
}
|
||||
|
||||
function installPositiveControl(agent: Agent): void {
|
||||
agent.ctx.systemPrompt.section({
|
||||
agent.ctx.systemPrompt.context({
|
||||
name: 'sandbox:policy',
|
||||
order: 110,
|
||||
text: POSITIVE_CONTROL,
|
||||
})
|
||||
}
|
||||
|
||||
function installCandidateA(agent: Agent): void {
|
||||
agent.ctx.systemPrompt.context({
|
||||
name: 'sandbox:policy',
|
||||
order: 110,
|
||||
text: CANDIDATE_A,
|
||||
})
|
||||
}
|
||||
|
||||
function argumentsOf(event: SessionEvent): Record<string, unknown> {
|
||||
if (event.type !== 'tool/call') return {}
|
||||
try {
|
||||
@@ -212,7 +221,9 @@ describe.skipIf(!ENABLED || !process.env.DEEPSEEK_API_KEY)('sandbox-policy wordi
|
||||
const disposeApproval = scaffold.ctx.on('approval/request', () => Promise.resolve('allowed-once'), { prepend: true })
|
||||
const disposeControl = arm === 'positive-control'
|
||||
? scaffold.ctx.on('agent/created', installPositiveControl)
|
||||
: () => {}
|
||||
: arm === 'candidate-a'
|
||||
? scaffold.ctx.on('agent/created', installCandidateA)
|
||||
: () => {}
|
||||
try {
|
||||
for (let attempt = 1; samples.length < SAMPLE_COUNT && attempt <= MAX_ATTEMPTS; attempt += 1) {
|
||||
const sample = samples.length + 1
|
||||
|
||||
Reference in New Issue
Block a user