@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.
Files changed (96) hide show
  1. package/dist/assets/{arc-M4HYfcHs.js → arc-CSepokz3.js} +1 -1
  2. package/dist/assets/{blockDiagram-c4efeb88-CUrDjrxj.js → blockDiagram-c4efeb88-D0ARcoNf.js} +1 -1
  3. package/dist/assets/{c4Diagram-c83219d4-BMEtqlFp.js → c4Diagram-c83219d4-BysYF9kP.js} +1 -1
  4. package/dist/assets/channel-CeKPk6Nd.js +1 -0
  5. package/dist/assets/{classDiagram-beda092f-BOmDJ0Ml.js → classDiagram-beda092f-BG1GhIOL.js} +1 -1
  6. package/dist/assets/{classDiagram-v2-2358418a-BODzX2MB.js → classDiagram-v2-2358418a-Dd08uGSH.js} +1 -1
  7. package/dist/assets/clone-CrkD2PuD.js +1 -0
  8. package/dist/assets/{createText-1719965b-B9Dd8zcR.js → createText-1719965b-CigPEIEn.js} +1 -1
  9. package/dist/assets/{cssMode-DLxG92Ot.js → cssMode-MjflyEfm.js} +1 -1
  10. package/dist/assets/{edges-96097737-CuZFd43m.js → edges-96097737-DuTBJJRv.js} +1 -1
  11. package/dist/assets/{erDiagram-0228fc6a-8g9lu2-Z.js → erDiagram-0228fc6a-Cp1bL7Y7.js} +1 -1
  12. package/dist/assets/{flowDb-c6c81e3f-BlBS1tdN.js → flowDb-c6c81e3f-BfKbhiq5.js} +1 -1
  13. package/dist/assets/{flowDiagram-50d868cf-u6mWflpF.js → flowDiagram-50d868cf-m7gGc3PK.js} +1 -1
  14. package/dist/assets/flowDiagram-v2-4f6560a1-4ZU4bdp1.js +1 -0
  15. package/dist/assets/{flowchart-elk-definition-6af322e1-BDqI2NFr.js → flowchart-elk-definition-6af322e1-EVeTDRRK.js} +1 -1
  16. package/dist/assets/{freemarker2-tVtpTMPu.js → freemarker2-Bb3-QAIN.js} +1 -1
  17. package/dist/assets/{ganttDiagram-a2739b55-CDQjx9Wu.js → ganttDiagram-a2739b55-DslB2U0R.js} +1 -1
  18. package/dist/assets/{gitGraphDiagram-82fe8481-DUHFKRVA.js → gitGraphDiagram-82fe8481-C-KFWMXL.js} +1 -1
  19. package/dist/assets/{graph-2HKPi5B_.js → graph-CukaUc0o.js} +1 -1
  20. package/dist/assets/{handlebars-D00tgNd8.js → handlebars-C4le-2Y6.js} +1 -1
  21. package/dist/assets/{html-B-TDzBiR.js → html-CjNiRs5S.js} +1 -1
  22. package/dist/assets/{htmlMode-ClycqSTM.js → htmlMode-B73_3-We.js} +1 -1
  23. package/dist/assets/{index-5325376f-DPrJpRQ-.js → index-5325376f-CVISZFPw.js} +1 -1
  24. package/dist/assets/{index-CAHZZEoo.js → index-BZosmb5_.js} +330 -326
  25. package/dist/assets/index-C1oh0w9H.css +32 -0
  26. package/dist/assets/{infoDiagram-8eee0895-Co5tS1I5.js → infoDiagram-8eee0895-DoirLE1K.js} +1 -1
  27. package/dist/assets/{javascript-zbkwarmb.js → javascript-BDjnqJFP.js} +1 -1
  28. package/dist/assets/{journeyDiagram-c64418c1-k_qioHgy.js → journeyDiagram-c64418c1-Ckn-p2CM.js} +1 -1
  29. package/dist/assets/{jsonMode-C3CSpzBF.js → jsonMode-C-ftOc5j.js} +1 -1
  30. package/dist/assets/{layout-CjOXKxvs.js → layout-Z7yUG7hB.js} +1 -1
  31. package/dist/assets/{line-C-XnQrKR.js → line-DPG_cfAy.js} +1 -1
  32. package/dist/assets/{linear-C7MMERzS.js → linear--GSeVfMi.js} +1 -1
  33. package/dist/assets/{liquid-5G37EU6K.js → liquid-COiLZ9py.js} +1 -1
  34. package/dist/assets/{lspLanguageFeatures-zaDMuhCE.js → lspLanguageFeatures-DGmhryFq.js} +1 -1
  35. package/dist/assets/{mdx-Bc-LY0gi.js → mdx-BpL87Gej.js} +1 -1
  36. package/dist/assets/{mermaid.core-CechbHof.js → mermaid.core-Cg1CCDo6.js} +4 -4
  37. package/dist/assets/{mindmap-definition-8da855dc-ejftCDGb.js → mindmap-definition-8da855dc-CKDof1lD.js} +1 -1
  38. package/dist/assets/{pieDiagram-a8764435-DY__X3Qj.js → pieDiagram-a8764435-DwvCaZVE.js} +1 -1
  39. package/dist/assets/{python-vK2Ff2J5.js → python-63dBmWV_.js} +1 -1
  40. package/dist/assets/{quadrantDiagram-1e28029f-azIZCv_2.js → quadrantDiagram-1e28029f-CkzYBQpy.js} +1 -1
  41. package/dist/assets/{razor-BipjBJKu.js → razor-C50tBqEZ.js} +1 -1
  42. package/dist/assets/{requirementDiagram-08caed73-C4EB0Xs2.js → requirementDiagram-08caed73-Brgdjqf4.js} +1 -1
  43. package/dist/assets/{sankeyDiagram-a04cb91d-PNhR6YWu.js → sankeyDiagram-a04cb91d-CGkYexrs.js} +1 -1
  44. package/dist/assets/{sequenceDiagram-c5b8d532-4c-qV-Ri.js → sequenceDiagram-c5b8d532-D0wE-_J8.js} +1 -1
  45. package/dist/assets/{stateDiagram-1ecb1508-CnURumPE.js → stateDiagram-1ecb1508-BYb3NCXZ.js} +1 -1
  46. package/dist/assets/{stateDiagram-v2-c2b004d7-DR2qHTPg.js → stateDiagram-v2-c2b004d7-DrPqi4Pt.js} +1 -1
  47. package/dist/assets/{styles-b4e223ce-B2PWXT_i.js → styles-b4e223ce-DD66TIO4.js} +1 -1
  48. package/dist/assets/{styles-ca3715f6-DEhgVF5H.js → styles-ca3715f6-iy02LHIV.js} +1 -1
  49. package/dist/assets/{styles-d45a18b0-DyzccA5F.js → styles-d45a18b0-BgqAgJyW.js} +1 -1
  50. package/dist/assets/{svgDrawCommon-b86b1483-C_1tMhxp.js → svgDrawCommon-b86b1483-CDq7ugnw.js} +1 -1
  51. package/dist/assets/{timeline-definition-faaaa080-FdaC0dQH.js → timeline-definition-faaaa080-DzcLLjK0.js} +1 -1
  52. package/dist/assets/{tsMode-CrMC5T3_.js → tsMode-BFRFI4ct.js} +1 -1
  53. package/dist/assets/{typescript-CRfPu8v7.js → typescript-CBZQRAPv.js} +1 -1
  54. package/dist/assets/{xml-jlRvQfFI.js → xml-BpWm6upt.js} +1 -1
  55. package/dist/assets/{xychartDiagram-f5964ef8-sxjv75h9.js → xychartDiagram-f5964ef8-zBN8FmLQ.js} +1 -1
  56. package/dist/assets/{yaml-B47_IHOH.js → yaml-CqbJPiIP.js} +1 -1
  57. package/dist/index.html +2 -2
  58. package/package.json +6 -6
  59. package/src/api/git.ts +78 -0
  60. package/src/api.ts +24 -0
  61. package/src/components/chat/ChatHeader.tsx +4 -0
  62. package/src/components/chat/git-controls/BranchSwitcherDropdown.tsx +157 -0
  63. package/src/components/chat/git-controls/ChatGitControls.scss +616 -0
  64. package/src/components/chat/git-controls/ChatGitControls.tsx +151 -0
  65. package/src/components/chat/git-controls/GitCommitModal.tsx +199 -0
  66. package/src/components/chat/git-controls/GitCommitModalParts.tsx +151 -0
  67. package/src/components/chat/git-controls/GitOperationsDropdown.tsx +123 -0
  68. package/src/components/chat/git-controls/GitPushModal.tsx +106 -0
  69. package/src/components/chat/git-controls/GitWorktreeDropdown.tsx +68 -0
  70. package/src/components/chat/git-controls/git-branch-utils.ts +88 -0
  71. package/src/components/chat/git-controls/git-commit-utils.ts +79 -0
  72. package/src/components/chat/git-controls/git-mutation-utils.ts +69 -0
  73. package/src/components/chat/git-controls/git-operation-utils.ts +98 -0
  74. package/src/components/chat/git-controls/git-worktree-utils.ts +49 -0
  75. package/src/components/chat/git-controls/use-chat-git-commit.ts +185 -0
  76. package/src/components/chat/git-controls/use-chat-git-controls.ts +200 -0
  77. package/src/components/chat/git-controls/use-chat-git-push-state.ts +19 -0
  78. package/src/components/chat/git-controls/use-chat-git-worktrees.ts +39 -0
  79. package/src/components/chat/tools/DefaultTool.tsx +40 -31
  80. package/src/components/chat/tools/adapter-claude/GenericClaudeTool.tsx +1 -15
  81. package/src/components/chat/tools/adapter-claude/claude-tool-edit-builders.ts +8 -1
  82. package/src/components/chat/tools/adapter-claude/claude-tool-field-sections.tsx +10 -95
  83. package/src/components/chat/tools/core/ToolCallBox.scss +18 -0
  84. package/src/components/chat/tools/core/generic-tool-presentation.ts +661 -0
  85. package/src/components/chat/tools/core/tool-display.ts +12 -1
  86. package/src/components/chat/tools/core/tool-field-sections.tsx +132 -0
  87. package/src/components/chat/tools/core/tool-summary.ts +18 -6
  88. package/src/components/chat/tools/plugin-chrome-devtools/ChromeDevtoolsTool.tsx +0 -7
  89. package/src/hooks/chat/session-view-cache.ts +80 -0
  90. package/src/hooks/chat/use-chat-session-messages.ts +124 -30
  91. package/src/resources/locales/en.json +68 -0
  92. package/src/resources/locales/zh.json +68 -0
  93. package/dist/assets/channel-Cj3Cp2OJ.js +0 -1
  94. package/dist/assets/clone-B7Q9B1dS.js +0 -1
  95. package/dist/assets/flowDiagram-v2-4f6560a1-G3v545eF.js +0 -1
  96. 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 { CodeBlock } from '#~/components/CodeBlock'
5
- import { safeJsonStringify } from '#~/utils/safe-serialize'
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
- const getFieldKey = (field: ClaudeToolField, index: number) => `${field.labelKey}-${index}`
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 className='tool-detail-section claude-generic-tool__section' key={getFieldKey(field, index)}>
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
- <div className='tool-detail-section claude-generic-tool__section' key={getFieldKey(field, index)}>
160
- {sectionHeader}
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;