Skip to content

Commit 214a64e

Browse files
committed
escaped behaviour
1 parent 72f384c commit 214a64e

2 files changed

Lines changed: 23 additions & 0 deletions

File tree

apps/sim/executor/variables/resolver.test.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,25 @@ describe('VariableResolver function block inputs', () => {
201201
expect(result.contextVariables).toEqual({ __blockRef_0: 'hello world' })
202202
})
203203

204+
it('ignores escaped triple-double quotes before later Python block references', () => {
205+
const { block, ctx, resolver } = createResolver('python')
206+
207+
const result = resolver.resolveInputsForFunctionBlock(
208+
ctx,
209+
'function',
210+
{ code: 'prompt = """Escaped delimiter: \\"\\"\\"\nSummary: <Producer.result>\n"""' },
211+
block
212+
)
213+
214+
expect(result.resolvedInputs.code).toBe(
215+
'prompt = """Escaped delimiter: \\"\\"\\"\nSummary: """ + json.dumps(globals()["__blockRef_0"]) + """\n"""'
216+
)
217+
expect(result.displayInputs.code).toBe(
218+
'prompt = """Escaped delimiter: \\"\\"\\"\nSummary: "hello world"\n"""'
219+
)
220+
expect(result.contextVariables).toEqual({ __blockRef_0: 'hello world' })
221+
})
222+
204223
it('breaks Python triple-single-quoted strings around block references', () => {
205224
const { block, ctx, resolver } = createResolver('python')
206225

apps/sim/executor/variables/resolver.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,10 @@ export class VariableResolver {
485485

486486
if (mode.type === 'triple-single' || mode.type === 'triple-double') {
487487
const quote = mode.type === 'triple-single' ? "'" : '"'
488+
if (char === '\\') {
489+
i++
490+
continue
491+
}
488492
if (char === quote && next === quote && template[i + 2] === quote) {
489493
modes.pop()
490494
i += 2

0 commit comments

Comments
 (0)