@openchambery/web 1.19.13-beta.2 → 1.19.13-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/AssistantView-4rOhnCbj.js +2 -0
- package/dist/assets/{DiagramView-CjNUrHsU.js → DiagramView-qyOlOyET.js} +1 -1
- package/dist/assets/{MarkdownRenderer-BHfbAwVO.js → MarkdownRenderer-DJORbaAh.js} +2 -2
- package/dist/assets/{MarkdownRendererImpl-CkBoUibc.js → MarkdownRendererImpl-Baw1_E_b.js} +4 -1
- package/dist/assets/MarkstreamRendererImpl-C3y7cRux.js +3 -0
- package/dist/assets/{MobileDetailNavigation-aY9-HwBN.js → MobileDetailNavigation-Cy-LwJ5M.js} +1 -1
- package/dist/assets/{MobileShareBridge-CRt_8DmM.js → MobileShareBridge-CTai3NEM.js} +1 -1
- package/dist/assets/{MobileSurface-CIhtF-CU.js → MobileSurface-CYg5Flgz.js} +1 -1
- package/dist/assets/{MultiRunWindow-DDq6C8t7.js → MultiRunWindow-CnzvP7OW.js} +1 -1
- package/dist/assets/{SettingsView-DFWWMvAj.js → SettingsView-Gerbi-eT.js} +1 -1
- package/dist/assets/{SettingsWindow-CnYfBplB.js → SettingsWindow-Czkt-v7v.js} +1 -1
- package/dist/assets/{TerminalView-D5CQFVVm.js → TerminalView-C3PKUnFu.js} +1 -1
- package/dist/assets/{ToolOutputDialog-VMI7TQFT.js → ToolOutputDialog-Nv1AVjeU.js} +1 -1
- package/dist/assets/{appThemeRegistry-UIrP0-5h.js → appThemeRegistry-eohB6OfO.js} +1 -1
- package/dist/assets/{gitApi-Bu4W3bgD.js → gitApi-CrP1R39C.js} +1 -1
- package/dist/assets/{insertionBoundaries-B1AqxsBD.js → insertionBoundaries-C8jXd3NT.js} +1 -1
- package/dist/assets/{main-DG-k0j8A.js → main-Bjgj-x5l.js} +2 -2
- package/dist/assets/{main-CqcB6tKc.js → main-DZg9T7tk.js} +4 -4
- package/dist/assets/{miniChat-BQtYQrsh.js → miniChat-DUFEC4jl.js} +2 -2
- package/dist/assets/{mobile-8iyqtXkr.js → mobile-BqOSxf04.js} +2 -2
- package/dist/assets/{multirun-CG_FCb_Z.js → multirun-IUfGqjJa.js} +1 -1
- package/dist/assets/{projectMeta-DMpMDWE1.js → projectMeta-B94Ha79_.js} +1 -1
- package/dist/assets/{renderElectronMiniChatApp-DBzRdJl8.js → renderElectronMiniChatApp-DwWmaqPt.js} +2 -2
- package/dist/assets/{renderMobileApp-CIseqCyn.js → renderMobileApp-ByS1wjSm.js} +4 -4
- package/dist/assets/{runtimeConfig-D8nJYB-e.js → runtimeConfig-DhAd_g4W.js} +1 -1
- package/dist/assets/runtimeEndpointReset-Dk_Xpe6y.js +147 -0
- package/dist/assets/{sessionLookup-BiBD-4wC.js → sessionLookup-DZcwnQYW.js} +1 -1
- package/dist/assets/{useAppFontEffects-qHt5uaFN.js → useAppFontEffects-BO7HWYlJ.js} +5 -5
- package/dist/assets/{useDesktopWindowControlsLayout-BipyIXiK.js → useDesktopWindowControlsLayout-BAuvqFxV.js} +1 -1
- package/dist/assets/{useEffectiveDirectory-DSNCCbCt.js → useEffectiveDirectory-B9GzC3CE.js} +1 -1
- package/dist/assets/{useMobileNavigationStore-C1NJGAik.js → useMobileNavigationStore-Dqe-sz0u.js} +1 -1
- package/dist/assets/{useSessionAutoCleanup-Dcn6Unvd.js → useSessionAutoCleanup-DSAkV_JD.js} +1 -1
- package/dist/assets/{useWorkerHighlightedLines-CzpT4M7V.js → useWorkerHighlightedLines-BW-HxZ9_.js} +1 -1
- package/dist/index.html +2 -2
- package/dist/mini-chat.html +2 -2
- package/dist/mobile.html +2 -2
- package/package.json +1 -1
- package/server/lib/assistants/DOCUMENTATION.md +20 -11
- package/server/lib/assistants/assign.js +56 -1
- package/server/lib/assistants/assign.test.js +60 -0
- package/server/lib/assistants/contact-tools.js +212 -1
- package/server/lib/assistants/contact-tools.test.js +151 -0
- package/server/lib/assistants/harness.js +56 -5
- package/server/lib/assistants/harness.test.js +17 -9
- package/server/lib/assistants/service.js +514 -16
- package/server/lib/assistants/service.test.js +546 -26
- package/dist/assets/AssistantView-D5c557Oe.js +0 -2
- package/dist/assets/MarkstreamRendererImpl-BrXUOI9g.js +0 -3
- package/dist/assets/runtimeEndpointReset-CSub_ecV.js +0 -147
|
@@ -297,7 +297,8 @@ describe('runContactTurn', () => {
|
|
|
297
297
|
expect(assignWork).toHaveBeenCalledTimes(1)
|
|
298
298
|
expect(result.cards).toEqual([expect.objectContaining({ sessionID: 'ses_once', cardType: 'session' })])
|
|
299
299
|
expect(result.cards).toHaveLength(1)
|
|
300
|
-
|
|
300
|
+
// Card is the user-facing confirm — English toolText must not leak into bubbles.
|
|
301
|
+
expect(result.bubbles.join('\n')).not.toContain('Opened a coding session.')
|
|
301
302
|
// First completion issues assign; terminate skips the auto follow-up LLM.
|
|
302
303
|
expect(createChatCompletion).toHaveBeenCalledTimes(1)
|
|
303
304
|
expect(completions).toBe(1)
|
|
@@ -389,7 +390,9 @@ describe('runContactTurn', () => {
|
|
|
389
390
|
createChatCompletion: vi.fn(), AgentImpl,
|
|
390
391
|
})
|
|
391
392
|
expect(prompts).toHaveLength(2)
|
|
392
|
-
|
|
393
|
+
// assign toolText is not a user bubble; no spoken/card in this fixture.
|
|
394
|
+
expect(result.bubbles).toEqual([])
|
|
395
|
+
expect(result.bubbles.join('\n')).not.toContain('Opened session.')
|
|
393
396
|
})
|
|
394
397
|
it('runs pi-agent-core with thinking off and no tools by default', async () => {
|
|
395
398
|
const prompt = vi.fn(async function prompt() {
|
|
@@ -558,7 +561,9 @@ describe('runContactTurn', () => {
|
|
|
558
561
|
projects: [{ id: 'proj_yee', path: '/repo/sample-app', label: 'OpenChamber Yee' }],
|
|
559
562
|
AgentImpl,
|
|
560
563
|
})
|
|
561
|
-
|
|
564
|
+
// Keep assistant spoken/confirm text; do not paint English assign toolText.
|
|
565
|
+
expect(result.bubbles).toEqual(['Opening that.'])
|
|
566
|
+
expect(result.bubbles.join('\n')).not.toContain('opened')
|
|
562
567
|
expect(result.cards).toEqual([expect.objectContaining({ sessionID: 'ses_1', cardType: 'session' })])
|
|
563
568
|
expect(result.thinkingLevel).toBe('off')
|
|
564
569
|
})
|
|
@@ -602,7 +607,7 @@ describe('runContactTurn', () => {
|
|
|
602
607
|
AgentImpl,
|
|
603
608
|
})
|
|
604
609
|
expect(result.bubbles.join('\n')).not.toMatch(/Let me think|assign_session/)
|
|
605
|
-
expect(result.bubbles).
|
|
610
|
+
expect(result.bubbles.join('\n')).not.toContain('Opened a coding session.')
|
|
606
611
|
expect(result.cards).toEqual([expect.objectContaining({ sessionID: 'ses_plan' })])
|
|
607
612
|
})
|
|
608
613
|
|
|
@@ -644,7 +649,7 @@ describe('runContactTurn', () => {
|
|
|
644
649
|
tools: [{ name: 'assign_session', execute: vi.fn() }],
|
|
645
650
|
AgentImpl,
|
|
646
651
|
})
|
|
647
|
-
expect(result.bubbles).toEqual(['我去找一下'
|
|
652
|
+
expect(result.bubbles).toEqual(['我去找一下'])
|
|
648
653
|
expect(result.cards).toEqual([expect.objectContaining({ sessionID: 'ses_speak' })])
|
|
649
654
|
})
|
|
650
655
|
|
|
@@ -733,7 +738,8 @@ describe('runContactTurn', () => {
|
|
|
733
738
|
assistantID: 'asst_flow',
|
|
734
739
|
})])
|
|
735
740
|
expect(result.bubbles.join('')).not.toContain('好的,我来直接创建')
|
|
736
|
-
expect(result.bubbles.join('')).toContain('Created assistant FlowNL')
|
|
741
|
+
expect(result.bubbles.join('')).not.toContain('Created assistant FlowNL')
|
|
742
|
+
expect(result.cards).toHaveLength(1)
|
|
737
743
|
expect(result.thinkingLevel).toBe('off')
|
|
738
744
|
})
|
|
739
745
|
|
|
@@ -769,8 +775,9 @@ describe('runContactTurn', () => {
|
|
|
769
775
|
])
|
|
770
776
|
expect(createAssistant).not.toHaveBeenCalled()
|
|
771
777
|
expect(result.cards).toEqual([])
|
|
772
|
-
|
|
773
|
-
expect(result.bubbles
|
|
778
|
+
// Prefer existing assistant text over the English missed-tool fallback.
|
|
779
|
+
expect(result.bubbles).toEqual(['好的,已创建。'])
|
|
780
|
+
expect(result.bubbles).not.toEqual([MISSED_TOOL_FAILURE_BUBBLE])
|
|
774
781
|
})
|
|
775
782
|
|
|
776
783
|
it('retries a missed fence once and then executes message_assistant', async () => {
|
|
@@ -828,7 +835,8 @@ describe('runContactTurn', () => {
|
|
|
828
835
|
text: 'hello-from-assistant 写好了',
|
|
829
836
|
})
|
|
830
837
|
expect(result.cards).toEqual([])
|
|
831
|
-
|
|
838
|
+
// English tool confirm must not leak; retry slice has no spoken preamble.
|
|
839
|
+
expect(result.bubbles.join('')).not.toContain('Sent to PeerQA')
|
|
832
840
|
expect(result.bubbles.join('')).not.toContain('好的,我去说一声')
|
|
833
841
|
})
|
|
834
842
|
|