@vibe-forge/client 0.11.0 → 0.11.1
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/{arc-M4HYfcHs.js → arc-CSepokz3.js} +1 -1
- package/dist/assets/{blockDiagram-c4efeb88-CUrDjrxj.js → blockDiagram-c4efeb88-D0ARcoNf.js} +1 -1
- package/dist/assets/{c4Diagram-c83219d4-BMEtqlFp.js → c4Diagram-c83219d4-BysYF9kP.js} +1 -1
- package/dist/assets/channel-CeKPk6Nd.js +1 -0
- package/dist/assets/{classDiagram-beda092f-BOmDJ0Ml.js → classDiagram-beda092f-BG1GhIOL.js} +1 -1
- package/dist/assets/{classDiagram-v2-2358418a-BODzX2MB.js → classDiagram-v2-2358418a-Dd08uGSH.js} +1 -1
- package/dist/assets/clone-CrkD2PuD.js +1 -0
- package/dist/assets/{createText-1719965b-B9Dd8zcR.js → createText-1719965b-CigPEIEn.js} +1 -1
- package/dist/assets/{cssMode-DLxG92Ot.js → cssMode-MjflyEfm.js} +1 -1
- package/dist/assets/{edges-96097737-CuZFd43m.js → edges-96097737-DuTBJJRv.js} +1 -1
- package/dist/assets/{erDiagram-0228fc6a-8g9lu2-Z.js → erDiagram-0228fc6a-Cp1bL7Y7.js} +1 -1
- package/dist/assets/{flowDb-c6c81e3f-BlBS1tdN.js → flowDb-c6c81e3f-BfKbhiq5.js} +1 -1
- package/dist/assets/{flowDiagram-50d868cf-u6mWflpF.js → flowDiagram-50d868cf-m7gGc3PK.js} +1 -1
- package/dist/assets/flowDiagram-v2-4f6560a1-4ZU4bdp1.js +1 -0
- package/dist/assets/{flowchart-elk-definition-6af322e1-BDqI2NFr.js → flowchart-elk-definition-6af322e1-EVeTDRRK.js} +1 -1
- package/dist/assets/{freemarker2-tVtpTMPu.js → freemarker2-Bb3-QAIN.js} +1 -1
- package/dist/assets/{ganttDiagram-a2739b55-CDQjx9Wu.js → ganttDiagram-a2739b55-DslB2U0R.js} +1 -1
- package/dist/assets/{gitGraphDiagram-82fe8481-DUHFKRVA.js → gitGraphDiagram-82fe8481-C-KFWMXL.js} +1 -1
- package/dist/assets/{graph-2HKPi5B_.js → graph-CukaUc0o.js} +1 -1
- package/dist/assets/{handlebars-D00tgNd8.js → handlebars-C4le-2Y6.js} +1 -1
- package/dist/assets/{html-B-TDzBiR.js → html-CjNiRs5S.js} +1 -1
- package/dist/assets/{htmlMode-ClycqSTM.js → htmlMode-B73_3-We.js} +1 -1
- package/dist/assets/{index-5325376f-DPrJpRQ-.js → index-5325376f-CVISZFPw.js} +1 -1
- package/dist/assets/{index-CAHZZEoo.js → index-BZosmb5_.js} +330 -326
- package/dist/assets/index-C1oh0w9H.css +32 -0
- package/dist/assets/{infoDiagram-8eee0895-Co5tS1I5.js → infoDiagram-8eee0895-DoirLE1K.js} +1 -1
- package/dist/assets/{javascript-zbkwarmb.js → javascript-BDjnqJFP.js} +1 -1
- package/dist/assets/{journeyDiagram-c64418c1-k_qioHgy.js → journeyDiagram-c64418c1-Ckn-p2CM.js} +1 -1
- package/dist/assets/{jsonMode-C3CSpzBF.js → jsonMode-C-ftOc5j.js} +1 -1
- package/dist/assets/{layout-CjOXKxvs.js → layout-Z7yUG7hB.js} +1 -1
- package/dist/assets/{line-C-XnQrKR.js → line-DPG_cfAy.js} +1 -1
- package/dist/assets/{linear-C7MMERzS.js → linear--GSeVfMi.js} +1 -1
- package/dist/assets/{liquid-5G37EU6K.js → liquid-COiLZ9py.js} +1 -1
- package/dist/assets/{lspLanguageFeatures-zaDMuhCE.js → lspLanguageFeatures-DGmhryFq.js} +1 -1
- package/dist/assets/{mdx-Bc-LY0gi.js → mdx-BpL87Gej.js} +1 -1
- package/dist/assets/{mermaid.core-CechbHof.js → mermaid.core-Cg1CCDo6.js} +4 -4
- package/dist/assets/{mindmap-definition-8da855dc-ejftCDGb.js → mindmap-definition-8da855dc-CKDof1lD.js} +1 -1
- package/dist/assets/{pieDiagram-a8764435-DY__X3Qj.js → pieDiagram-a8764435-DwvCaZVE.js} +1 -1
- package/dist/assets/{python-vK2Ff2J5.js → python-63dBmWV_.js} +1 -1
- package/dist/assets/{quadrantDiagram-1e28029f-azIZCv_2.js → quadrantDiagram-1e28029f-CkzYBQpy.js} +1 -1
- package/dist/assets/{razor-BipjBJKu.js → razor-C50tBqEZ.js} +1 -1
- package/dist/assets/{requirementDiagram-08caed73-C4EB0Xs2.js → requirementDiagram-08caed73-Brgdjqf4.js} +1 -1
- package/dist/assets/{sankeyDiagram-a04cb91d-PNhR6YWu.js → sankeyDiagram-a04cb91d-CGkYexrs.js} +1 -1
- package/dist/assets/{sequenceDiagram-c5b8d532-4c-qV-Ri.js → sequenceDiagram-c5b8d532-D0wE-_J8.js} +1 -1
- package/dist/assets/{stateDiagram-1ecb1508-CnURumPE.js → stateDiagram-1ecb1508-BYb3NCXZ.js} +1 -1
- package/dist/assets/{stateDiagram-v2-c2b004d7-DR2qHTPg.js → stateDiagram-v2-c2b004d7-DrPqi4Pt.js} +1 -1
- package/dist/assets/{styles-b4e223ce-B2PWXT_i.js → styles-b4e223ce-DD66TIO4.js} +1 -1
- package/dist/assets/{styles-ca3715f6-DEhgVF5H.js → styles-ca3715f6-iy02LHIV.js} +1 -1
- package/dist/assets/{styles-d45a18b0-DyzccA5F.js → styles-d45a18b0-BgqAgJyW.js} +1 -1
- package/dist/assets/{svgDrawCommon-b86b1483-C_1tMhxp.js → svgDrawCommon-b86b1483-CDq7ugnw.js} +1 -1
- package/dist/assets/{timeline-definition-faaaa080-FdaC0dQH.js → timeline-definition-faaaa080-DzcLLjK0.js} +1 -1
- package/dist/assets/{tsMode-CrMC5T3_.js → tsMode-BFRFI4ct.js} +1 -1
- package/dist/assets/{typescript-CRfPu8v7.js → typescript-CBZQRAPv.js} +1 -1
- package/dist/assets/{xml-jlRvQfFI.js → xml-BpWm6upt.js} +1 -1
- package/dist/assets/{xychartDiagram-f5964ef8-sxjv75h9.js → xychartDiagram-f5964ef8-zBN8FmLQ.js} +1 -1
- package/dist/assets/{yaml-B47_IHOH.js → yaml-CqbJPiIP.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +6 -6
- package/src/api/git.ts +78 -0
- package/src/api.ts +24 -0
- package/src/components/chat/ChatHeader.tsx +4 -0
- package/src/components/chat/git-controls/BranchSwitcherDropdown.tsx +157 -0
- package/src/components/chat/git-controls/ChatGitControls.scss +616 -0
- package/src/components/chat/git-controls/ChatGitControls.tsx +151 -0
- package/src/components/chat/git-controls/GitCommitModal.tsx +199 -0
- package/src/components/chat/git-controls/GitCommitModalParts.tsx +151 -0
- package/src/components/chat/git-controls/GitOperationsDropdown.tsx +123 -0
- package/src/components/chat/git-controls/GitPushModal.tsx +106 -0
- package/src/components/chat/git-controls/GitWorktreeDropdown.tsx +68 -0
- package/src/components/chat/git-controls/git-branch-utils.ts +88 -0
- package/src/components/chat/git-controls/git-commit-utils.ts +79 -0
- package/src/components/chat/git-controls/git-mutation-utils.ts +69 -0
- package/src/components/chat/git-controls/git-operation-utils.ts +98 -0
- package/src/components/chat/git-controls/git-worktree-utils.ts +49 -0
- package/src/components/chat/git-controls/use-chat-git-commit.ts +185 -0
- package/src/components/chat/git-controls/use-chat-git-controls.ts +200 -0
- package/src/components/chat/git-controls/use-chat-git-push-state.ts +19 -0
- package/src/components/chat/git-controls/use-chat-git-worktrees.ts +39 -0
- package/src/components/chat/tools/DefaultTool.tsx +40 -31
- package/src/components/chat/tools/adapter-claude/GenericClaudeTool.tsx +1 -15
- package/src/components/chat/tools/adapter-claude/claude-tool-edit-builders.ts +8 -1
- package/src/components/chat/tools/adapter-claude/claude-tool-field-sections.tsx +10 -95
- package/src/components/chat/tools/core/ToolCallBox.scss +18 -0
- package/src/components/chat/tools/core/generic-tool-presentation.ts +661 -0
- package/src/components/chat/tools/core/tool-display.ts +12 -1
- package/src/components/chat/tools/core/tool-field-sections.tsx +132 -0
- package/src/components/chat/tools/core/tool-summary.ts +18 -6
- package/src/components/chat/tools/plugin-chrome-devtools/ChromeDevtoolsTool.tsx +0 -7
- package/src/hooks/chat/session-view-cache.ts +80 -0
- package/src/hooks/chat/use-chat-session-messages.ts +124 -30
- package/src/resources/locales/en.json +68 -0
- package/src/resources/locales/zh.json +68 -0
- package/dist/assets/channel-Cj3Cp2OJ.js +0 -1
- package/dist/assets/clone-B7Q9B1dS.js +0 -1
- package/dist/assets/flowDiagram-v2-4f6560a1-G3v545eF.js +0 -1
- package/dist/assets/index-Di7lePfb.css +0 -32
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { Tooltip } from 'antd'
|
|
2
2
|
import React from 'react'
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
import { TOOL_TOOLTIP_PROPS, getToolFieldIcon, getToolInlineValueText, getToolValueText } from '../core/tool-display'
|
|
4
|
+
import { TOOL_TOOLTIP_PROPS, getToolFieldIcon } from '../core/tool-display'
|
|
5
|
+
import { renderToolBlockField } from '../core/tool-field-sections'
|
|
8
6
|
import type { ClaudeToolField, ClaudeToolQuestion } from './claude-tool-presentation'
|
|
9
7
|
|
|
10
8
|
type Translate = (key: string, options?: Record<string, unknown>) => string
|
|
11
9
|
|
|
12
|
-
|
|
10
|
+
export { ToolInlineFields as ClaudeToolInlineFields } from '../core/tool-field-sections'
|
|
13
11
|
|
|
14
12
|
const getSectionHeader = (icon: string, label: string) => (
|
|
15
13
|
<div className='tool-detail-section__header'>
|
|
@@ -19,93 +17,17 @@ const getSectionHeader = (icon: string, label: string) => (
|
|
|
19
17
|
</div>
|
|
20
18
|
)
|
|
21
19
|
|
|
22
|
-
export function ClaudeToolInlineFields({
|
|
23
|
-
fields,
|
|
24
|
-
t
|
|
25
|
-
}: {
|
|
26
|
-
fields: ClaudeToolField[]
|
|
27
|
-
t: Translate
|
|
28
|
-
}) {
|
|
29
|
-
if (fields.length === 0) {
|
|
30
|
-
return null
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return (
|
|
34
|
-
<div
|
|
35
|
-
className='tool-inline-token-list tool-inline-token-list--standalone'
|
|
36
|
-
aria-label={t('chat.tools.fields.details')}
|
|
37
|
-
>
|
|
38
|
-
{fields.map((field, index) => {
|
|
39
|
-
const label = t(field.labelKey, { defaultValue: field.fallbackLabel })
|
|
40
|
-
const valueText = getToolInlineValueText(field.value)
|
|
41
|
-
return (
|
|
42
|
-
<Tooltip
|
|
43
|
-
key={getFieldKey(field, index)}
|
|
44
|
-
title={
|
|
45
|
-
<div className='tool-tooltip-content'>
|
|
46
|
-
<div className='tool-tooltip-content__title'>{label}</div>
|
|
47
|
-
<div className='tool-tooltip-content__value'>{getToolValueText(field.value)}</div>
|
|
48
|
-
</div>
|
|
49
|
-
}
|
|
50
|
-
{...TOOL_TOOLTIP_PROPS}
|
|
51
|
-
>
|
|
52
|
-
<div className='tool-inline-token'>
|
|
53
|
-
<span className='tool-inline-token__icon material-symbols-rounded'>
|
|
54
|
-
{getToolFieldIcon(field.labelKey, field.format)}
|
|
55
|
-
</span>
|
|
56
|
-
<span className='tool-inline-token__value'>{valueText}</span>
|
|
57
|
-
</div>
|
|
58
|
-
</Tooltip>
|
|
59
|
-
)
|
|
60
|
-
})}
|
|
61
|
-
</div>
|
|
62
|
-
)
|
|
63
|
-
}
|
|
64
|
-
|
|
65
20
|
export function renderClaudeBlockField(field: ClaudeToolField, index: number, t: Translate) {
|
|
66
21
|
const label = t(field.labelKey, { defaultValue: field.fallbackLabel })
|
|
67
22
|
const sectionHeader = getSectionHeader(getToolFieldIcon(field.labelKey, field.format), label)
|
|
68
23
|
|
|
69
|
-
if (field.format === 'text') {
|
|
70
|
-
return (
|
|
71
|
-
<div className='tool-detail-section claude-generic-tool__section' key={getFieldKey(field, index)}>
|
|
72
|
-
{sectionHeader}
|
|
73
|
-
<div className='tool-detail-section__text'>{String(field.value)}</div>
|
|
74
|
-
</div>
|
|
75
|
-
)
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
if (field.format === 'code') {
|
|
79
|
-
return (
|
|
80
|
-
<div className='tool-detail-section claude-generic-tool__section' key={getFieldKey(field, index)}>
|
|
81
|
-
{sectionHeader}
|
|
82
|
-
<CodeBlock
|
|
83
|
-
code={String(field.value)}
|
|
84
|
-
lang={field.lang ?? 'text'}
|
|
85
|
-
hideHeader={true}
|
|
86
|
-
/>
|
|
87
|
-
</div>
|
|
88
|
-
)
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
if (field.format === 'list') {
|
|
92
|
-
const items = Array.isArray(field.value) ? field.value.map(item => String(item)) : []
|
|
93
|
-
return (
|
|
94
|
-
<div className='tool-detail-section claude-generic-tool__section' key={getFieldKey(field, index)}>
|
|
95
|
-
{sectionHeader}
|
|
96
|
-
<div className='claude-generic-tool__list'>
|
|
97
|
-
{items.map(listItem => (
|
|
98
|
-
<div className='claude-generic-tool__list-item' key={listItem}>{listItem}</div>
|
|
99
|
-
))}
|
|
100
|
-
</div>
|
|
101
|
-
</div>
|
|
102
|
-
)
|
|
103
|
-
}
|
|
104
|
-
|
|
105
24
|
if (field.format === 'questions') {
|
|
106
25
|
const questions = Array.isArray(field.value) ? field.value as ClaudeToolQuestion[] : []
|
|
107
26
|
return (
|
|
108
|
-
<div
|
|
27
|
+
<div
|
|
28
|
+
className='tool-detail-section claude-generic-tool__section'
|
|
29
|
+
key={`${field.labelKey}-${index}`}
|
|
30
|
+
>
|
|
109
31
|
{sectionHeader}
|
|
110
32
|
<div className='claude-generic-tool__questions'>
|
|
111
33
|
{questions.map((question, questionIndex) => (
|
|
@@ -155,14 +77,7 @@ export function renderClaudeBlockField(field: ClaudeToolField, index: number, t:
|
|
|
155
77
|
)
|
|
156
78
|
}
|
|
157
79
|
|
|
158
|
-
return (
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
<CodeBlock
|
|
162
|
-
code={safeJsonStringify(field.value, 2)}
|
|
163
|
-
lang='json'
|
|
164
|
-
hideHeader={true}
|
|
165
|
-
/>
|
|
166
|
-
</div>
|
|
167
|
-
)
|
|
80
|
+
return renderToolBlockField(field, index, t, {
|
|
81
|
+
sectionClassName: 'tool-detail-section claude-generic-tool__section'
|
|
82
|
+
})
|
|
168
83
|
}
|
|
@@ -587,6 +587,24 @@
|
|
|
587
587
|
overflow-wrap: anywhere;
|
|
588
588
|
}
|
|
589
589
|
|
|
590
|
+
.tool-detail-list {
|
|
591
|
+
display: flex;
|
|
592
|
+
flex-direction: column;
|
|
593
|
+
gap: 4px;
|
|
594
|
+
}
|
|
595
|
+
|
|
596
|
+
.tool-detail-list-item {
|
|
597
|
+
padding: 4px 0 4px 10px;
|
|
598
|
+
border: none;
|
|
599
|
+
border-left: 1px solid var(--border-color);
|
|
600
|
+
border-radius: 0;
|
|
601
|
+
background: transparent;
|
|
602
|
+
color: var(--text-color);
|
|
603
|
+
font-family: var(--font-mono);
|
|
604
|
+
font-size: 12px;
|
|
605
|
+
overflow-wrap: anywhere;
|
|
606
|
+
}
|
|
607
|
+
|
|
590
608
|
.tool-inline-token-list {
|
|
591
609
|
display: flex;
|
|
592
610
|
flex-wrap: wrap;
|