~bigbes/lethe

713460735c77a2f089b30155726b92294cf1af1c — Eugene Blikh 30 days ago 26d7789
web: map tool-call setting to boolean attribute
3 files changed, 15 insertions(+), 15 deletions(-)

M web/src/lib/toolCalls.test.ts
M web/src/lib/toolCalls.ts
M web/src/styles/session.css
M web/src/lib/toolCalls.test.ts => web/src/lib/toolCalls.test.ts +11 -11
@@ 50,15 50,15 @@ describe('getToolCallsPreference', () => {
})

describe('bootstrapToolCalls', () => {
  it('no stored value → data-show-toolcalls="yes"', () => {
  it('no stored value → data-show-toolcalls="true"', () => {
    bootstrapToolCalls()
    expect(document.documentElement.dataset['showToolcalls']).toBe('yes')
    expect(document.documentElement.dataset['showToolcalls']).toBe('true')
  })

  it('stored "no" → data-show-toolcalls="no"', () => {
  it('stored "no" → data-show-toolcalls="false"', () => {
    lsStub.setItem('showToolCalls', 'no')
    bootstrapToolCalls()
    expect(document.documentElement.dataset['showToolcalls']).toBe('no')
    expect(document.documentElement.dataset['showToolcalls']).toBe('false')
  })

  it('does not register a matchMedia listener', () => {


@@ 69,23 69,23 @@ describe('bootstrapToolCalls', () => {
})

describe('setToolCalls', () => {
  it('setToolCalls("no") stores and sets data-show-toolcalls', () => {
  it('setToolCalls("no") stores and sets data-show-toolcalls="false"', () => {
    setToolCalls('no')
    expect(lsStub.getItem('showToolCalls')).toBe('no')
    expect(document.documentElement.dataset['showToolcalls']).toBe('no')
    expect(document.documentElement.dataset['showToolcalls']).toBe('false')
  })

  it('setToolCalls("yes") stores and sets data-show-toolcalls', () => {
  it('setToolCalls("yes") stores and sets data-show-toolcalls="true"', () => {
    setToolCalls('yes')
    expect(lsStub.getItem('showToolCalls')).toBe('yes')
    expect(document.documentElement.dataset['showToolcalls']).toBe('yes')
    expect(document.documentElement.dataset['showToolcalls']).toBe('true')
  })

  it('setToolCalls(null) removes key and applies default "yes"', () => {
  it('setToolCalls(null) removes key and applies default data-show-toolcalls="true"', () => {
    lsStub.setItem('showToolCalls', 'no')
    document.documentElement.dataset['showToolcalls'] = 'no'
    document.documentElement.dataset['showToolcalls'] = 'false'
    setToolCalls(null)
    expect(lsStub.getItem('showToolCalls')).toBeNull()
    expect(document.documentElement.dataset['showToolcalls']).toBe('yes')
    expect(document.documentElement.dataset['showToolcalls']).toBe('true')
  })
})

M web/src/lib/toolCalls.ts => web/src/lib/toolCalls.ts +3 -3
@@ 11,15 11,15 @@ export function getToolCallsPreference(): ToolCallsPreference {

export function bootstrapToolCalls(): void {
  const val = getToolCallsPreference()
  document.documentElement.dataset['showToolcalls'] = val
  document.documentElement.dataset['showToolcalls'] = val === 'yes' ? 'true' : 'false'
}

export function setToolCalls(value: ToolCallsPreference | null): void {
  if (value === null) {
    localStorage.removeItem('showToolCalls')
    document.documentElement.dataset['showToolcalls'] = 'yes'
    document.documentElement.dataset['showToolcalls'] = 'true'
  } else {
    localStorage.setItem('showToolCalls', value)
    document.documentElement.dataset['showToolcalls'] = value
    document.documentElement.dataset['showToolcalls'] = value === 'yes' ? 'true' : 'false'
  }
}

M web/src/styles/session.css => web/src/styles/session.css +1 -1
@@ 46,7 46,7 @@
  cursor: pointer;
}

[data-show-toolcalls="no"] .turn[data-tool="1"] { display: none; }
[data-show-toolcalls="false"] .turn[data-tool="1"] { display: none; }

.turn.user      { background: var(--turn-user); border-left-color: var(--ink-4); }
.turn.assistant { background: var(--turn-asst); border-left-color: var(--accent); }