You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+33-1Lines changed: 33 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,39 @@ All notable changes to this project will be documented in this file.
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
8
-
## [Unreleased] - 2026-04-02
8
+
## [Unreleased] - 2026-04-05
9
+
10
+
---
11
+
12
+
## [v1.7.0] - 2026-04-05
13
+
14
+
### Added
15
+
16
+
#### Git Built-in Tool
17
+
18
+
-**Built-in Git Client**: New `git` tool with auto-install support for Windows, macOS, and Linux. Downloads official pre-built git binaries to `~/.local/git/bin/` when git is not available - no package manager required.
-**Git Convenience Methods**: Python SDK (`session.git(...)`) and Node SDK (`session.git(...)`) convenience methods for git operations.
23
+
24
+
#### System Prompt Updates
25
+
26
+
- Updated all system prompts to reference "A3S Code" instead of "Claude Code"
27
+
- Updated skill references to use `a3s-lab/code-skills`
28
+
29
+
### Removed
30
+
31
+
-**Document Parser**: Removed `composite_document_parser` and `document` modules and all related code. This feature was not fully implemented and has been removed to simplify the codebase.
32
+
33
+
-**Agentic Search/Parse Tools**: Removed `agentic_search` and `agentic_parse` built-in tools.
34
+
35
+
-**Git Worktree Tool**: Replaced by the new unified `git` tool with `worktree` subcommand.
36
+
37
+
### Changed
38
+
39
+
-**Tool Count**: Updated built-in tool count from 15 to 16 to reflect new git and box tools.
40
+
-**Documentation**: Updated all documentation to reflect new tool names and capabilities.
You can configure the built-in agentic tools from `config.hcl`:
77
-
78
-
```hcl
79
-
agentic_search {
80
-
enabled = true
81
-
default_mode = "fast"
82
-
max_results = 10
83
-
context_lines = 2
84
-
}
85
-
86
-
agentic_parse {
87
-
enabled = true
88
-
default_strategy = "auto"
89
-
max_chars = 8000
90
-
}
91
-
92
-
document_parser {
93
-
enabled = true
94
-
max_file_size_mb = 50
95
-
96
-
ocr {
97
-
enabled = false
98
-
model = "openai/gpt-4.1-mini"
99
-
prompt = "Extract text from scanned pages and preserve structure."
100
-
max_images = 8
101
-
dpi = 144
102
-
}
103
-
}
104
-
```
105
-
106
-
The `document_parser.ocr` block configures OCR policy. Applications can still supply a custom OCR / vision backend at runtime via `SessionOptions`. When `document_parser.ocr.enabled=true`, the built-in parser can also auto-detect local OCR tooling when available:
107
-
108
-
- Images: if `tesseract` is available on `PATH` (or `A3S_DOCUMENT_OCR_TESSERACT_BIN` points to it), `CompositeDocumentParser` can OCR image files without an injected provider.
109
-
- PDFs: if both `tesseract` and `pdftoppm` are available (or `A3S_DOCUMENT_OCR_PDFTOPPM_BIN` points to `pdftoppm`), `CompositeDocumentParser` can rasterize pages and OCR PDFs without an injected provider.
110
-
- Custom providers supplied via `SessionOptions` still take precedence over the built-in fallback.
111
-
112
-
Current OCR execution matrix:
113
-
114
-
-`pdf`: when OCR is enabled, OCR fallback runs when native text extraction is weak or empty.
115
-
-`png` / `jpg` / `jpeg` / `webp` / `gif` / `bmp` / `tif` / `tiff`: when OCR is enabled, OCR is the primary decode path.
116
-
-`docx` / `pptx` / `xlsx` / `xlsm` / `odt` / `ods` / `odp`: when OCR is enabled, OCR fallback runs only when the native structured-text pass yields no extractable content.
117
-
118
-
Runtime normalization:
119
-
120
-
-`agentic_search.default_mode` accepts `fast`, `deep`, or `filename_only`; invalid values fall back to `fast`.
121
-
-`agentic_search.max_results` is clamped to `1..=100`; `context_lines` is clamped to `0..=20`.
122
-
-`agentic_parse.default_strategy` accepts `auto`, `structured`, `narrative`, `tabular`, or `code`; invalid values fall back to `auto`.
123
-
-`agentic_parse.max_chars` is clamped to `500..=200000`.
124
-
-`document_parser.max_file_size_mb` is clamped to `1..=1024`; OCR `max_images` is clamped to `1..=64`; OCR `dpi` is clamped to `72..=600`.
125
-
126
-
## Agentic Document Flow
127
-
128
-
`agentic_search` and `agentic_parse` are built-in tools. They do not parse PDFs, Office files, images, or emails themselves. Both tools delegate file decoding to the shared document parser registry, which includes `CompositeDocumentParser` by default when `document_parser.enabled=true`.
129
-
130
-
```text
131
-
User / LLM
132
-
|
133
-
v
134
-
agentic_search / agentic_parse
135
-
|
136
-
v
137
-
ToolContext.document_parsers
138
-
|
139
-
v
140
-
DocumentParserRegistry
141
-
|
142
-
+--> PlainTextParser
143
-
| |
144
-
| `--> text/code/config files
145
-
|
146
-
`--> CompositeDocumentParser
147
-
|
148
-
`--> pdf / office / odf / image / epub / html / xml / eml / rtf
149
-
|
150
-
v
151
-
ParsedDocument
152
-
- title
153
-
- blocks[]
154
-
- block.kind / label / content / location
155
-
- optional OCR runtime metadata
156
-
|
157
-
+-----------+-----------+
158
-
| |
159
-
v v
160
-
agentic_search agentic_parse
161
-
- builds search lines - builds structural summary
162
-
- matches/ranks files - detects parse strategy
163
-
- uses block metadata - sends block-aware context to LLM
164
-
```
165
-
166
-
Responsibility split:
167
-
168
-
-`CompositeDocumentParser`: decode project documents into a shared structured model for agent context.
169
-
-`CompositeDocumentParser` covers a broad set of document families, including PDF, Office, ODF, iWork, HWP/HWPX, archive containers, HTML/XML, email/mailbox formats, notebooks, citation formats, calendar/contact formats, and common image formats.
`metadata` / `metadataJson` exposes the full tool metadata as parsed object plus raw JSON. Python additionally exposes `document_runtime_info` as a typed runtime object. In Node, `documentRuntime` and `parseDocumentRuntime(...)` expose the structured `DocumentRuntimeMetadata` view, while `document_runtime_json` / `documentRuntimeJson` keep the raw JSON string form.
201
-
202
-
`agentic_search` also exposes structured match metadata, including page / section
203
-
locators derived from `CompositeDocumentParser` blocks:
Goal: make `agentic_search` and `agentic_parse` capable of searching and understanding a broad range of project and business document formats through the default document parser stack, while steadily closing the gap with higher-fidelity systems such as `kreuzberg`.
251
-
252
-
Current state:
253
-
254
-
-[x] Parse plain text, Markdown, code, CSV/JSON/YAML/TOML, and part of the PDF / Office surface.
255
-
-[x] Expand format detection and container handling for more archive, iWork, `xlsb`, and `hwp/hwpx` scenarios.
256
-
-[x] Add default pipeline stages for language enrichment, keyword extraction, hierarchical chunking, and quality evaluation.
257
-
-[x] Expose structural summaries, quality metadata, language, keywords, chunk highlights, provenance, and confidence in `agentic_parse`.
258
-
259
-
Phase 1: Structured result surfaces
260
-
261
-
-[x] Expose `structured_payload` directly in `agentic_parse` output and metadata.
262
-
-[x] Expose table payloads in a stable machine-readable form.
263
-
-[x] Expose page-level data in `agentic_parse` output and metadata.
264
-
-[x] Add stable `tables[]` output instead of relying on text summaries alone.
265
-
-[x] Add stable `pages[]` output instead of relying on text summaries alone.
266
-
-[x] Add stable `elements[]` output instead of relying on text summaries alone.
267
-
-[ ] Teach `agentic_search` to consume chunk context more directly.
268
-
-[ ] Teach `agentic_search` to consume tabular content more directly.
269
-
-[ ] Teach `agentic_search` to consume page numbers and locators more directly.
270
-
-[ ] Exit criteria: complex PDF and Office documents return stable locators in search results.
271
-
-[ ] Exit criteria: parse results are directly consumable by downstream agents.
272
-
273
-
Phase 2: High-value parser depth
274
-
275
-
-[x] Improve native PDF extraction quality (lopdf position-aware extraction).
276
-
-[x] Reduce dependence on weak text fallbacks for PDF.
277
-
-[x] Add position-aware table detection for PDF documents.
278
-
-[ ] Reduce dependence on OCR-only recovery for PDF.
279
-
-[ ] Deepen true BIFF12 `xlsb` extraction.
280
-
-[ ] Improve workbook structure recovery for `xlsb`.
0 commit comments