Преглед изворни кода

test(web): anchor policy experiment on durable state

NI0317 пре 2 месеци
родитељ
комит
5dabddb164
1 измењених фајлова са 7 додато и 2 уклоњено
  1. 7 2
      apps/web/tests/sandbox-policy-wording.experiment.e2e.ts

+ 7 - 2
apps/web/tests/sandbox-policy-wording.experiment.e2e.ts

@@ -13,6 +13,7 @@ import { join } from 'node:path'
 import { describe, expect, it } from 'vitest'
 import { describe, expect, it } from 'vitest'
 import type { Agent } from '@deepseek-ai/dsh-agent'
 import type { Agent } from '@deepseek-ai/dsh-agent'
 import type { Session, SessionEvent } from '@deepseek-ai/dsh-session'
 import type { Session, SessionEvent } from '@deepseek-ai/dsh-session'
+import { SessionId } from '@deepseek-ai/dsh-session'
 import { launchWebScaffold, type WebScaffold } from './scaffold.ts'
 import { launchWebScaffold, type WebScaffold } from './scaffold.ts'
 import { REPO_ROOT } from './support.ts'
 import { REPO_ROOT } from './support.ts'
 
 
@@ -221,12 +222,16 @@ describe.skipIf(!ENABLED || !process.env.DEEPSEEK_API_KEY)('sandbox-policy wordi
         const prompt = samplePrompt(family, path, expected)
         const prompt = samplePrompt(family, path, expected)
         try {
         try {
           const created = await rpc<{ sessionId: string }>(scaffold, 'session.create', {})
           const created = await rpc<{ sessionId: string }>(scaffold, 'session.create', {})
-          const command = await rpc<{ accepted: true; command?: { kind: 'success'; text?: string } }>(scaffold, 'session.prompt', {
+          await rpc<{ accepted: true }>(scaffold, 'session.prompt', {
             sessionId: created.sessionId,
             sessionId: created.sessionId,
             mode: 'queue',
             mode: 'queue',
             content: [{ type: 'text', text: '/permission read-only' }],
             content: [{ type: 'text', text: '/permission read-only' }],
           })
           })
-          if (command.command?.kind !== 'success') throw new Error('read-only permission command did not complete')
+          const configured = scaffold.ctx.agents.get(SessionId(created.sessionId))
+          const configuredMode = configured?.session.events.findLast(event => event.type === 'sandbox/mode')
+          if (configuredMode?.type !== 'sandbox/mode' || configuredMode.data.mode !== 'read-only') {
+            throw new Error('read-only permission command did not commit sandbox/mode')
+          }
           const settled = scaffold.whenTurnSettled(180_000)
           const settled = scaffold.whenTurnSettled(180_000)
           await rpc<{ accepted: true }>(scaffold, 'session.prompt', {
           await rpc<{ accepted: true }>(scaffold, 'session.prompt', {
             sessionId: created.sessionId,
             sessionId: created.sessionId,