diff --git a/nx2/blocks/chat/chat-controller.js b/nx2/blocks/chat/chat-controller.js index 02da447a1..ff34ccfe2 100644 --- a/nx2/blocks/chat/chat-controller.js +++ b/nx2/blocks/chat/chat-controller.js @@ -90,7 +90,15 @@ export default class ChatController { _pageContextForAgent() { const { org, site, path, view } = this._context ?? {}; - return org && site ? { org, site, path: path ?? '', view } : undefined; + return org && site + ? { + org, + site, + path: path ?? '', + view, + timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone, + } + : undefined; } async _getRoom() { diff --git a/test/nx2/blocks/chat/chat-controller.test.js b/test/nx2/blocks/chat/chat-controller.test.js index 40d488e38..8cc6edd83 100644 --- a/test/nx2/blocks/chat/chat-controller.test.js +++ b/test/nx2/blocks/chat/chat-controller.test.js @@ -103,3 +103,21 @@ describe('chat-controller _messagesForAgent', () => { expect(result).to.deep.equal([]); // no orphan tool-call emitted }); }); + +describe('chat-controller _pageContextForAgent', () => { + it('includes the browser IANA time zone alongside org/site/path/view', () => { + const controller = new ChatController({ onUpdate() {}, onToolDone() {} }); + controller.setContext({ org: 'adobe', site: 'da-nx', path: '/foo', view: 'edit' }); + const result = controller._pageContextForAgent(); + expect(result.timeZone).to.equal(Intl.DateTimeFormat().resolvedOptions().timeZone); + expect(result).to.deep.equal({ + org: 'adobe', site: 'da-nx', path: '/foo', view: 'edit', timeZone: result.timeZone, + }); + }); + + it('returns undefined when org/site are missing, same as before', () => { + const controller = new ChatController({ onUpdate() {}, onToolDone() {} }); + controller.setContext({ path: '/foo' }); + expect(controller._pageContextForAgent()).to.equal(undefined); + }); +});