@tachu/extensions 1.0.0-alpha.4 → 1.0.0-alpha.5

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/CHANGELOG.md CHANGED
@@ -5,6 +5,40 @@ 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.1.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.0.0-alpha.5] - 2026-05-11
9
+
10
+ ### Added
11
+
12
+ #### `@tachu/core`
13
+
14
+ - **Descriptor governance fields** — `BaseDescriptor` 新增可选 `version` / `displayName` / `deprecated` / `deprecatedMessage`,用于版本治理与迁移提示
15
+ - **Version-aware registry APIs** — `DescriptorRegistry` 新增 `get(kind,name,version)`、`getLatest(kind,name)`、`listVersions(kind,name)`,支持同名多版本共存与精确查询
16
+ - **Timeout policy split** — 新增 `llmWaitFirstTokenMs`、`llmStreamingMs`、`maxToolLoopActiveMs` 三类预算项,并支持 `runtime.timeouts.byPhase` 分阶段覆盖
17
+ - **LLM timeout utility layer** — 新增 `engine/llm-timeouts.ts`,统一 LLM 调用超时解析与信号构造
18
+
19
+ #### `@tachu/extensions`
20
+
21
+ - **`search-code` regex self-healing** — 当正则语法非法时自动降级为 fixed-string 搜索,减少因参数细节导致的整轮失败
22
+
23
+ ### Changed
24
+
25
+ #### `@tachu/core`
26
+
27
+ - **DescriptorRegistry storage model** — 从单一 `name -> descriptor` 升级为 `name -> version -> descriptor`;重复冲突判定调整为 `kind + name + version`
28
+ - **Latest selection semantics** — `get(kind,name)` 保持向后兼容但改为 latest 解析(稳定版优先;无稳定版时取最高 pre-release)
29
+ - **Unknown field passthrough contract** — `RegistryLoader` 与 `DescriptorRegistry` 明确保留未知顶层字段,`register -> get` 往返不丢失扩展字段
30
+ - **Deprecation consistency check** — `deprecated === true` 且缺失 `deprecatedMessage` 时在 `registry.register()` 统一抛出 `RegistryError`
31
+ - **Tool-loop budget accounting** — 新增“活跃时长”统计,审批/HITL/交互等待记为阻塞时间并从 tool-loop 预算中扣除
32
+
33
+ #### `@tachu/cli`
34
+
35
+ - **`tachu init` template budget defaults** — 默认预算更新为 12h 级运行兜底,并生成 LLM 超时拆分字段与 phase 覆盖注释模板
36
+
37
+ #### Docs
38
+
39
+ - **ADR contract updates** — `architecture-design.md` 与 `detailed-design.md` 补充 Descriptor 扩展字段契约与版本治理规则
40
+ - **README / README_ZH roadmap** — 当前里程碑更新为 `1.0.0-alpha.5`,新增本版本交付摘要
41
+
8
42
  ## [1.0.0-alpha.4] - 2026-05-07
9
43
 
10
44
  ### Added
package/README.md CHANGED
@@ -24,7 +24,7 @@ Tachu ships as a Bun-native TypeScript monorepo with three packages: the zero-de
24
24
 
25
25
  ## Project Status
26
26
 
27
- **Current release:** `1.0.0-alpha.4` on the `alpha` dist-tag.
27
+ **Current release:** `1.0.0-alpha.5` on the `alpha` dist-tag.
28
28
 
29
29
  This is the **first public alpha** — most infrastructure is in place, but several LLM-backed stages are still stubbed. The table below is the single source of truth; every claim made elsewhere in this README must be cross-checked against it.
30
30
 
@@ -228,7 +228,7 @@ bun add -g @tachu/cli@alpha
228
228
  After global installation, verify with:
229
229
 
230
230
  ```bash
231
- tachu --version # expect 1.0.0-alpha.4 or newer
231
+ tachu --version # expect 1.0.0-alpha.5 or newer
232
232
  ```
233
233
 
234
234
  ---
@@ -937,7 +937,16 @@ The contract is enforced by `packages/core/src/engine/phases/fallback-contract.t
937
937
  Tachu follows a `1.0.0-alpha.n` → `1.0.0-beta.n` → `1.0.0` release lane. Each
938
938
  cut-line below is a real, shippable deliverable with tests, not a wish list.
939
939
 
940
- ### 1.0.0-alpha.4Code editing capabilities + architecture boundary fix (current)
940
+ ### 1.0.0-alpha.5Descriptor governance + timeout budgeting hardening (current)
941
+
942
+ - [x] `BaseDescriptor` governance metadata: `version`, `displayName`, `deprecated`, `deprecatedMessage`
943
+ - [x] `DescriptorRegistry` version-aware resolution: same-name multi-version coexistence, `get(kind,name,version)`, `getLatest`, `listVersions`, and stable-first latest selection
944
+ - [x] Descriptor passthrough contract: unknown top-level fields are preserved through loader + registry round-trip
945
+ - [x] Registry validation: `deprecated=true` now requires `deprecatedMessage`; invalid semver is rejected with explicit registry errors
946
+ - [x] Runtime timeout split: `llmWaitFirstTokenMs`, `llmStreamingMs`, `maxToolLoopActiveMs` (excluding user-blocking waits), plus phase-level timeout overrides
947
+ - [x] `search-code` resilience: invalid regex patterns auto-downgrade to fixed-string matching instead of failing the turn
948
+
949
+ ### 1.0.0-alpha.4 — Code editing capabilities + architecture boundary fix
941
950
 
942
951
  - [x] 14 new tools in `@tachu/extensions`: `edit-file`, `multi-edit`, `glob`, `todo-write/read`, `git-status/diff/log/blame/show/branch`, `run-typecheck`, `run-tests`
943
952
  - [x] `read-file` — `offset`/`limit` pagination, `withLineNumbers` (default on), `totalLines`/`hasMore`
package/README_ZH.md CHANGED
@@ -26,7 +26,7 @@ Tachu 以 Bun 原生 TypeScript Monorepo 形式发布,包含三个包:零依
26
26
 
27
27
  ## 项目状态(Project Status)
28
28
 
29
- **当前发布版本:** `1.0.0-alpha.4`(`alpha` dist-tag)
29
+ **当前发布版本:** `1.0.0-alpha.5`(`alpha` dist-tag)
30
30
 
31
31
  这是一次**架构骨架**发布——基础设施基本就绪,但几个依赖 LLM 的阶段仍是占位实现。下表是唯一的事实来源;README 其他位置的任何声称都必须能在这张表里找到对应。
32
32
 
@@ -227,7 +227,7 @@ bun add -g @tachu/cli@alpha
227
227
  安装完成后验证:
228
228
 
229
229
  ```bash
230
- tachu --version # 预期输出 1.0.0-alpha.4 或更新
230
+ tachu --version # 预期输出 1.0.0-alpha.5 或更新
231
231
  ```
232
232
 
233
233
  ---
@@ -929,7 +929,16 @@ Tachu 保证 **用户看到的每一次响应都是可读的自然语言答复**
929
929
 
930
930
  Tachu 按 `1.0.0-alpha.n` → `1.0.0-beta.n` → `1.0.0` 三条通道演进。下面每个里程碑都对应真实、可发布、有测试的交付物,不是愿望清单。
931
931
 
932
- ### 1.0.0-alpha.4 —— 代码编写能力 + 架构边界修正(当前)
932
+ ### 1.0.0-alpha.5 —— Descriptor 治理 + 超时预算加固(当前)
933
+
934
+ - [x] `BaseDescriptor` 治理元数据:`version`、`displayName`、`deprecated`、`deprecatedMessage`
935
+ - [x] `DescriptorRegistry` 版本化解析:同名多版本共存,支持 `get(kind,name,version)`、`getLatest`、`listVersions`,默认 latest 采用“稳定版优先”
936
+ - [x] 描述符扩展字段 passthrough 契约:未知顶层字段在 loader + registry 全链路保留
937
+ - [x] Registry 一致性校验:`deprecated=true` 必须提供 `deprecatedMessage`;非法 semver 显式报错
938
+ - [x] 运行时超时拆分:`llmWaitFirstTokenMs`、`llmStreamingMs`、`maxToolLoopActiveMs`(排除用户阻塞等待),并支持 phase 级覆盖
939
+ - [x] `search-code` 容错:非法正则自动降级为 fixed-string 搜索,避免整轮直接失败
940
+
941
+ ### 1.0.0-alpha.4 —— 代码编写能力 + 架构边界修正
933
942
 
934
943
  - [x] `@tachu/extensions` 新增 14 个工具:`edit-file`、`multi-edit`、`glob`、`todo-write/read`、`git-status/diff/log/blame/show/branch`、`run-typecheck`、`run-tests`
935
944
  - [x] `read-file` 新增 `offset`/`limit` 分段读取、`withLineNumbers`(默认开启)、`totalLines`/`hasMore`
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/tools/search-code/executor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAI9C,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;CACpB;AA0BD;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,eAAe,EAAE,gBAAgB,CAkG9E,CAAC"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/tools/search-code/executor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAI9C,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;CACpB;AAmED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,YAAY,CAAC,eAAe,EAAE,gBAAgB,CAsF9E,CAAC"}
@@ -2,6 +2,38 @@ import { readdir, readFile } from "node:fs/promises";
2
2
  import { join } from "node:path";
3
3
  import { assertNotAborted, resolveSandboxPolicy } from "../shared";
4
4
  import { resolveAllowedPath, toWorkspaceRelativePath } from "../../common/path";
5
+ const escapeRegExp = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
6
+ const isRegexSyntaxError = (stderr) => /(regex parse error|invalid regular expression|unclosed group|missing \))/i.test(stderr);
7
+ const runRgSearch = async (input, root, maxResults, useFixedStrings) => {
8
+ const args = [
9
+ "--line-number",
10
+ "--no-heading",
11
+ "--color",
12
+ "never",
13
+ input.caseSensitive ? "--case-sensitive" : "--ignore-case",
14
+ "--max-count",
15
+ String(maxResults),
16
+ ];
17
+ if (useFixedStrings) {
18
+ args.push("--fixed-strings");
19
+ }
20
+ if (input.fileGlob) {
21
+ args.push("--glob", input.fileGlob);
22
+ }
23
+ args.push(input.pattern, root);
24
+ const process = Bun.spawn({
25
+ cmd: ["rg", ...args],
26
+ stdout: "pipe",
27
+ stderr: "pipe",
28
+ cwd: root,
29
+ });
30
+ const [stdout, stderr] = await Promise.all([
31
+ new Response(process.stdout).text(),
32
+ new Response(process.stderr).text(),
33
+ ]);
34
+ const code = await process.exited;
35
+ return { code, stdout, stderr };
36
+ };
5
37
  const parseRgOutput = (output, maxResults) => {
6
38
  const matches = [];
7
39
  const lines = output.split("\n").filter((line) => line.length > 0);
@@ -30,30 +62,12 @@ export const searchCodeExecutor = async (input, context) => {
30
62
  const root = resolveAllowedPath(input.path ?? ".", resolveSandboxPolicy(context));
31
63
  const maxResults = input.maxResults ?? 100;
32
64
  try {
33
- const args = [
34
- "--line-number",
35
- "--no-heading",
36
- "--color",
37
- "never",
38
- input.caseSensitive ? "--case-sensitive" : "--ignore-case",
39
- "--max-count",
40
- String(maxResults),
41
- ];
42
- if (input.fileGlob) {
43
- args.push("--glob", input.fileGlob);
65
+ let { code, stdout, stderr } = await runRgSearch(input, root, maxResults, false);
66
+ if (code === 2 && isRegexSyntaxError(stderr)) {
67
+ // 常见场景:LLM 把字面量(如 JSON.stringify()当正则传入导致解析失败。
68
+ // 自动降级为 fixed-string 搜索,减少一次失败-重试往返。
69
+ ({ code, stdout, stderr } = await runRgSearch(input, root, maxResults, true));
44
70
  }
45
- args.push(input.pattern, root);
46
- const process = Bun.spawn({
47
- cmd: ["rg", ...args],
48
- stdout: "pipe",
49
- stderr: "pipe",
50
- cwd: root,
51
- });
52
- const [stdout, stderr] = await Promise.all([
53
- new Response(process.stdout).text(),
54
- new Response(process.stderr).text(),
55
- ]);
56
- const code = await process.exited;
57
71
  if (code !== 0 && code !== 1) {
58
72
  throw new Error(stderr || `rg exited with code ${code}`);
59
73
  }
@@ -67,7 +81,14 @@ export const searchCodeExecutor = async (input, context) => {
67
81
  };
68
82
  }
69
83
  catch {
70
- const matcher = new RegExp(input.pattern, input.caseSensitive ? "g" : "gi");
84
+ let matcher;
85
+ try {
86
+ matcher = new RegExp(input.pattern, input.caseSensitive ? "g" : "gi");
87
+ }
88
+ catch {
89
+ // JS 回退路径同样兼容非法正则:转义后按字面量匹配。
90
+ matcher = new RegExp(escapeRegExp(input.pattern), input.caseSensitive ? "g" : "gi");
91
+ }
71
92
  const matches = [];
72
93
  let truncated = false;
73
94
  const walk = async (dir) => {
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/tools/search-code/executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAqBhF,MAAM,aAAa,GAAG,CACpB,MAAc,EACd,UAAkB,EACkC,EAAE;IACtD,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACtC,SAAS;QACX,CAAC;QACD,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;YAC1B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;YAC3C,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SAC7B,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;YACjC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAoD,KAAK,EACtF,KAAK,EACL,OAAO,EACP,EAAE;IACF,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;IAClF,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,GAAG,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG;YACX,eAAe;YACf,cAAc;YACd,SAAS;YACT,OAAO;YACP,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,eAAe;YAC1D,aAAa;YACb,MAAM,CAAC,UAAU,CAAC;SACnB,CAAC;QACF,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC;YACxB,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC;YACpB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,IAAI;SACV,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACzC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;YACnC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;SACpC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;QAClC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,MAAM,IAAI,uBAAuB,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACjD,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBACrC,GAAG,IAAI;gBACP,IAAI,EAAE,uBAAuB,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;aAC5E,CAAC,CAAC;YACH,SAAS,EAAE,MAAM,CAAC,SAAS;SAC5B,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAsB,EAAE,CAAC;QACtC,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,MAAM,IAAI,GAAG,KAAK,EAAE,GAAW,EAAiB,EAAE;YAChD,uCAAuC;YACvC,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7D,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC7B,4BAA4B;gBAC5B,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACtC,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;oBACjC,SAAS,GAAG,IAAI,CAAC;oBACjB,OAAO;gBACT,CAAC;gBACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;oBACnB,SAAS;gBACX,CAAC;gBACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBACpB,SAAS;gBACX,CAAC;gBACD,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC;oBACxE,SAAS;gBACX,CAAC;gBACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAClC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;oBACrD,sBAAsB;oBACtB,IAAI,KAAK,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;wBACtB,gBAAgB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBACxC,CAAC;oBACD,IAAI,OAAO,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC;wBACjC,SAAS,GAAG,IAAI,CAAC;wBACjB,MAAM;oBACR,CAAC;oBACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;oBAChC,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;wBACvB,OAAO,CAAC,IAAI,CAAC;4BACX,IAAI,EAAE,uBAAuB,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC;4BAC5D,IAAI,EAAE,KAAK,GAAG,CAAC;4BACf,IAAI,EAAE,IAAI;yBACX,CAAC,CAAC;oBACL,CAAC;oBACD,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAChC,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/tools/search-code/executor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tachu/extensions",
3
- "version": "1.0.0-alpha.4",
3
+ "version": "1.0.0-alpha.5",
4
4
  "description": "Tachu extensions (alpha) — OpenAI/Anthropic/Mock providers, 7 built-in tools, execution backends, MCP adapters (stdio+SSE), vector stores (local/Qdrant), observability emitters, input transformers and common rules.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -59,7 +59,7 @@
59
59
  "@opentelemetry/sdk-trace-base": "^2.7.0",
60
60
  "@opentelemetry/sdk-trace-node": "^2.7.0",
61
61
  "@qdrant/js-client-rest": "^1.17.0",
62
- "@tachu/core": "1.0.0-alpha.2",
62
+ "@tachu/core": "1.0.0-alpha.4",
63
63
  "mammoth": "^1.12.0",
64
64
  "openai": "^6.34.0",
65
65
  "pdf-parse": "^2.4.5"