@zmzai/agent-framework 0.1.0 → 0.2.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 (145) hide show
  1. package/README.md +37 -0
  2. package/dist/adapters/openai-provider.d.ts +31 -2
  3. package/dist/adapters/openai-provider.d.ts.map +1 -1
  4. package/dist/adapters/openai-provider.js +118 -74
  5. package/dist/adapters/openai-provider.js.map +1 -1
  6. package/dist/adapters/subprocess-sandbox.d.ts +4 -5
  7. package/dist/adapters/subprocess-sandbox.d.ts.map +1 -1
  8. package/dist/adapters/subprocess-sandbox.js +106 -18
  9. package/dist/adapters/subprocess-sandbox.js.map +1 -1
  10. package/dist/adapters/terminal-backend.d.ts +5 -0
  11. package/dist/adapters/terminal-backend.d.ts.map +1 -0
  12. package/dist/adapters/terminal-backend.js +153 -0
  13. package/dist/adapters/terminal-backend.js.map +1 -0
  14. package/dist/cli.js +0 -0
  15. package/dist/core/agent/registry.d.ts +3 -0
  16. package/dist/core/agent/registry.d.ts.map +1 -1
  17. package/dist/core/agent/registry.js +9 -2
  18. package/dist/core/agent/registry.js.map +1 -1
  19. package/dist/core/events/manifest.d.ts +29 -4
  20. package/dist/core/events/manifest.d.ts.map +1 -1
  21. package/dist/core/events/manifest.js +21 -0
  22. package/dist/core/events/manifest.js.map +1 -1
  23. package/dist/core/mcp/client.d.ts +46 -0
  24. package/dist/core/mcp/client.d.ts.map +1 -0
  25. package/dist/core/mcp/client.js +286 -0
  26. package/dist/core/mcp/client.js.map +1 -0
  27. package/dist/core/mcp/http-client.d.ts +54 -0
  28. package/dist/core/mcp/http-client.d.ts.map +1 -0
  29. package/dist/core/mcp/http-client.js +385 -0
  30. package/dist/core/mcp/http-client.js.map +1 -0
  31. package/dist/core/mcp/servers.d.ts +30 -0
  32. package/dist/core/mcp/servers.d.ts.map +1 -0
  33. package/dist/core/mcp/servers.js +104 -0
  34. package/dist/core/mcp/servers.js.map +1 -0
  35. package/dist/core/permission/ruleset.d.ts +1 -1
  36. package/dist/core/permission/ruleset.d.ts.map +1 -1
  37. package/dist/core/permission/ruleset.js +4 -0
  38. package/dist/core/permission/ruleset.js.map +1 -1
  39. package/dist/core/permission/write-path.d.ts +27 -0
  40. package/dist/core/permission/write-path.d.ts.map +1 -0
  41. package/dist/core/permission/write-path.js +52 -0
  42. package/dist/core/permission/write-path.js.map +1 -0
  43. package/dist/core/repomap/cache.d.ts +24 -0
  44. package/dist/core/repomap/cache.d.ts.map +1 -0
  45. package/dist/core/repomap/cache.js +59 -0
  46. package/dist/core/repomap/cache.js.map +1 -0
  47. package/dist/core/repomap/graph.d.ts +14 -0
  48. package/dist/core/repomap/graph.d.ts.map +1 -0
  49. package/dist/core/repomap/graph.js +89 -0
  50. package/dist/core/repomap/graph.js.map +1 -0
  51. package/dist/core/repomap/render.d.ts +10 -0
  52. package/dist/core/repomap/render.d.ts.map +1 -0
  53. package/dist/core/repomap/render.js +33 -0
  54. package/dist/core/repomap/render.js.map +1 -0
  55. package/dist/core/repomap/repomap.d.ts +38 -0
  56. package/dist/core/repomap/repomap.d.ts.map +1 -0
  57. package/dist/core/repomap/repomap.js +116 -0
  58. package/dist/core/repomap/repomap.js.map +1 -0
  59. package/dist/core/repomap/tags.d.ts +26 -0
  60. package/dist/core/repomap/tags.d.ts.map +1 -0
  61. package/dist/core/repomap/tags.js +191 -0
  62. package/dist/core/repomap/tags.js.map +1 -0
  63. package/dist/core/runtime/compaction.d.ts +26 -14
  64. package/dist/core/runtime/compaction.d.ts.map +1 -1
  65. package/dist/core/runtime/compaction.js +46 -34
  66. package/dist/core/runtime/compaction.js.map +1 -1
  67. package/dist/core/runtime/lifecycle.d.ts +79 -0
  68. package/dist/core/runtime/lifecycle.d.ts.map +1 -0
  69. package/dist/core/runtime/lifecycle.js +71 -0
  70. package/dist/core/runtime/lifecycle.js.map +1 -0
  71. package/dist/core/runtime/pi-bridge.d.ts +4 -1
  72. package/dist/core/runtime/pi-bridge.d.ts.map +1 -1
  73. package/dist/core/runtime/pi-bridge.js +15 -1
  74. package/dist/core/runtime/pi-bridge.js.map +1 -1
  75. package/dist/core/runtime/run-transcript.d.ts +14 -0
  76. package/dist/core/runtime/run-transcript.d.ts.map +1 -0
  77. package/dist/core/runtime/run-transcript.js +35 -0
  78. package/dist/core/runtime/run-transcript.js.map +1 -0
  79. package/dist/core/runtime/runner.d.ts +38 -9
  80. package/dist/core/runtime/runner.d.ts.map +1 -1
  81. package/dist/core/runtime/runner.js +140 -20
  82. package/dist/core/runtime/runner.js.map +1 -1
  83. package/dist/core/session/sqlite-store.d.ts +18 -0
  84. package/dist/core/session/sqlite-store.d.ts.map +1 -0
  85. package/dist/core/session/sqlite-store.js +159 -0
  86. package/dist/core/session/sqlite-store.js.map +1 -0
  87. package/dist/core/session/types.d.ts +12 -0
  88. package/dist/core/session/types.d.ts.map +1 -1
  89. package/dist/core/tools/adapter.d.ts +11 -4
  90. package/dist/core/tools/adapter.d.ts.map +1 -1
  91. package/dist/core/tools/adapter.js +167 -8
  92. package/dist/core/tools/adapter.js.map +1 -1
  93. package/dist/core/tools/builtins.d.ts.map +1 -1
  94. package/dist/core/tools/builtins.js +5 -2
  95. package/dist/core/tools/builtins.js.map +1 -1
  96. package/dist/core/tools/context.d.ts +2 -0
  97. package/dist/core/tools/context.d.ts.map +1 -1
  98. package/dist/core/tools/def.d.ts +25 -0
  99. package/dist/core/tools/def.d.ts.map +1 -1
  100. package/dist/core/tools/def.js +3 -1
  101. package/dist/core/tools/def.js.map +1 -1
  102. package/dist/core/tools/git.d.ts +12 -0
  103. package/dist/core/tools/git.d.ts.map +1 -0
  104. package/dist/core/tools/git.js +189 -0
  105. package/dist/core/tools/git.js.map +1 -0
  106. package/dist/core/tools/patch.d.ts +45 -0
  107. package/dist/core/tools/patch.d.ts.map +1 -0
  108. package/dist/core/tools/patch.js +224 -0
  109. package/dist/core/tools/patch.js.map +1 -0
  110. package/dist/core/tools/qa-check.d.ts.map +1 -1
  111. package/dist/core/tools/qa-check.js +9 -2
  112. package/dist/core/tools/qa-check.js.map +1 -1
  113. package/dist/core/tools/repomap.d.ts +8 -0
  114. package/dist/core/tools/repomap.d.ts.map +1 -0
  115. package/dist/core/tools/repomap.js +34 -0
  116. package/dist/core/tools/repomap.js.map +1 -0
  117. package/dist/core/tools/terminal.d.ts +80 -0
  118. package/dist/core/tools/terminal.d.ts.map +1 -0
  119. package/dist/core/tools/terminal.js +265 -0
  120. package/dist/core/tools/terminal.js.map +1 -0
  121. package/dist/core/tools/trim.d.ts +31 -0
  122. package/dist/core/tools/trim.d.ts.map +1 -0
  123. package/dist/core/tools/trim.js +98 -0
  124. package/dist/core/tools/trim.js.map +1 -0
  125. package/dist/core/tools/webfetch.d.ts +10 -0
  126. package/dist/core/tools/webfetch.d.ts.map +1 -0
  127. package/dist/core/tools/webfetch.js +104 -0
  128. package/dist/core/tools/webfetch.js.map +1 -0
  129. package/dist/core/tools/websearch.d.ts +19 -0
  130. package/dist/core/tools/websearch.d.ts.map +1 -0
  131. package/dist/core/tools/websearch.js +132 -0
  132. package/dist/core/tools/websearch.js.map +1 -0
  133. package/dist/index.d.ts +30 -5
  134. package/dist/index.d.ts.map +1 -1
  135. package/dist/index.js +19 -1
  136. package/dist/index.js.map +1 -1
  137. package/dist/server/create-agent-runtime.d.ts +68 -0
  138. package/dist/server/create-agent-runtime.d.ts.map +1 -0
  139. package/dist/server/create-agent-runtime.js +67 -0
  140. package/dist/server/create-agent-runtime.js.map +1 -0
  141. package/dist/server/create-server.d.ts +5 -0
  142. package/dist/server/create-server.d.ts.map +1 -1
  143. package/dist/server/create-server.js +2 -0
  144. package/dist/server/create-server.js.map +1 -1
  145. package/package.json +23 -9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../../src/core/tools/git.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import type { ToolDef } from "./def.js";
2
+ /** apply_patch(P0 补齐):把 unified diff 应用到 Workspace 文件。
3
+ * 与 write/edit 同走 WorkspaceFiles 门面——每次落盘生成不可变版本与
4
+ * diff 记录(可审查、可回滚),不是裸文件写。
5
+ *
6
+ * 支持:一个补丁多文件 / 多 hunk / 新建文件(--- /dev/null)/ 行号漂移
7
+ * 容差匹配。删除文件不被门面支持,明确报错。
8
+ * 应用策略:两阶段——先对全部文件完成解析+试算(不写盘),任一失败整体
9
+ * 拒绝并原样报错;全部通过后才逐个落盘。 */
10
+ export type FilePatch = {
11
+ oldPath: string | null;
12
+ newPath: string | null;
13
+ hunks: Array<{
14
+ oldStart: number;
15
+ segments: Array<{
16
+ kind: "context" | "remove" | "add";
17
+ text: string;
18
+ }>;
19
+ }>;
20
+ };
21
+ export type PatchParseResult = {
22
+ files: FilePatch[];
23
+ errors: string[];
24
+ };
25
+ export declare function parseUnifiedPatch(patchText: string): PatchParseResult;
26
+ type ApplyOutcome = {
27
+ ok: true;
28
+ content: string;
29
+ additions: number;
30
+ deletions: number;
31
+ } | {
32
+ ok: false;
33
+ error: string;
34
+ };
35
+ export declare function applyFilePatch(original: string | null, patch: FilePatch): ApplyOutcome;
36
+ export type ApplyPatchReportEntry = {
37
+ path: string;
38
+ action: "created" | "updated";
39
+ additions: number;
40
+ deletions: number;
41
+ revisionId: string;
42
+ };
43
+ export declare const applyPatchTool: ToolDef;
44
+ export {};
45
+ //# sourceMappingURL=patch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.d.ts","sourceRoot":"","sources":["../../../src/core/tools/patch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGxC;;;;;;;0BAO0B;AAE1B,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACvE,CAAC,CAAC;CACJ,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAWxE,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAqErE;AAED,KAAK,YAAY,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAuBvH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,SAAS,GAAG,YAAY,CA6DtF;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAgDF,eAAO,MAAM,cAAc,EAAE,OAc5B,CAAC"}
@@ -0,0 +1,224 @@
1
+ import { z } from "zod";
2
+ const DRIFT_WINDOW = 300;
3
+ const NULL_PATH = /^(\/dev\/null|NUL)$/i;
4
+ function stripHeaderPath(raw) {
5
+ const noTimestamp = raw.split("\t")[0].trim();
6
+ if (NULL_PATH.test(noTimestamp))
7
+ return null;
8
+ return noTimestamp.replace(/^[ab]\//, "");
9
+ }
10
+ export function parseUnifiedPatch(patchText) {
11
+ const files = [];
12
+ const errors = [];
13
+ const lines = patchText.replace(/\r\n/g, "\n").split("\n");
14
+ let index = 0;
15
+ while (index < lines.length) {
16
+ const line = lines[index];
17
+ if (!line.startsWith("--- ")) {
18
+ index += 1;
19
+ continue;
20
+ }
21
+ const plusLine = lines[index + 1];
22
+ if (!plusLine?.startsWith("+++ ")) {
23
+ errors.push(`第 ${index + 1} 行 --- 之后缺少 +++ 文件头`);
24
+ break;
25
+ }
26
+ const filePatch = {
27
+ oldPath: stripHeaderPath(line.slice(4)),
28
+ newPath: stripHeaderPath(plusLine.slice(4)),
29
+ hunks: [],
30
+ };
31
+ index += 2;
32
+ while (index < lines.length && lines[index].startsWith("@@")) {
33
+ const head = /^@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/.exec(lines[index]);
34
+ if (!head) {
35
+ errors.push(`无法解析 hunk 头:${lines[index].slice(0, 60)}`);
36
+ index = lines.length;
37
+ break;
38
+ }
39
+ const oldStart = Number(head[1]);
40
+ index += 1;
41
+ const segments = [];
42
+ let consumedOldSide = 0;
43
+ while (index < lines.length) {
44
+ const body = lines[index];
45
+ if (body.startsWith("@@") || body.startsWith("--- "))
46
+ break;
47
+ if (body.startsWith("\")) {
48
+ index += 1;
49
+ continue;
50
+ }
51
+ if (body.startsWith(" ") || body === "") {
52
+ segments.push({ kind: "context", text: body.slice(1) });
53
+ consumedOldSide += 1;
54
+ index += 1;
55
+ }
56
+ else if (body.startsWith("-")) {
57
+ segments.push({ kind: "remove", text: body.slice(1) });
58
+ consumedOldSide += 1;
59
+ index += 1;
60
+ }
61
+ else if (body.startsWith("+")) {
62
+ segments.push({ kind: "add", text: body.slice(1) });
63
+ index += 1;
64
+ }
65
+ else {
66
+ break; // 非补丁正文(其它文件头等)——hunk 结束
67
+ }
68
+ }
69
+ if (consumedOldSide === 0 && !segments.some((s) => s.kind === "add")) {
70
+ errors.push(`${filePatch.newPath ?? "?"} 存在空 hunk`);
71
+ }
72
+ filePatch.hunks.push({ oldStart, segments });
73
+ }
74
+ if (!filePatch.hunks.length && !errors.length) {
75
+ errors.push(`${filePatch.newPath ?? "?"} 缺少 @@ hunk(不支持整文件包裹格式)`);
76
+ }
77
+ files.push(filePatch);
78
+ }
79
+ if (!files.length && !errors.length)
80
+ errors.push("没有找到补丁内容(需要 unified diff 格式)");
81
+ return { files, errors };
82
+ }
83
+ function hunkSides(hunk) {
84
+ const expected = [];
85
+ const replacement = [];
86
+ let added = 0;
87
+ let removed = 0;
88
+ for (const seg of hunk.segments) {
89
+ if (seg.kind === "add") {
90
+ replacement.push(seg.text);
91
+ added += 1;
92
+ }
93
+ else if (seg.kind === "context") {
94
+ expected.push(seg.text);
95
+ replacement.push(seg.text);
96
+ }
97
+ else {
98
+ // remove:只进期望侧,不进重建结果
99
+ expected.push(seg.text);
100
+ removed += 1;
101
+ }
102
+ }
103
+ return { expected, replacement, added, removed };
104
+ }
105
+ export function applyFilePatch(original, patch) {
106
+ // —— 新建文件 —— //
107
+ if (patch.oldPath === null) {
108
+ if (original !== null)
109
+ return { ok: false, error: `${patch.newPath} 标记为新建,但文件已存在` };
110
+ const contentLines = patch.hunks.flatMap((h) => h.segments.filter((s) => s.kind === "add").map((s) => s.text));
111
+ return { ok: true, content: contentLines.join("\n") + "\n", additions: contentLines.length, deletions: 0 };
112
+ }
113
+ if (patch.newPath === null) {
114
+ return { ok: false, error: `apply_patch 不支持删除文件(${patch.oldPath}):请改用 bash rm 后再提交补丁或保留文件` };
115
+ }
116
+ if (original === null) {
117
+ return { ok: false, error: `文件不存在或不可读:${patch.oldPath}` };
118
+ }
119
+ // —— 修改现有文件:按 oldStart 从后往前应用,天然免行号漂移叠加 —— //
120
+ const endedWithNewline = original.endsWith("\n");
121
+ const work = original.split("\n");
122
+ if (endedWithNewline)
123
+ work.pop();
124
+ let additions = 0;
125
+ let deletions = 0;
126
+ const ordered = [...patch.hunks].sort((a, b) => b.oldStart - a.oldStart);
127
+ for (let h = 0; h < ordered.length; h++) {
128
+ const hunk = ordered[h];
129
+ const sides = hunkSides(hunk);
130
+ const { expected, replacement } = sides;
131
+ if (!expected.length) {
132
+ // 纯新增块:oldStart 表示插入位置(其后行号)
133
+ const insertAt = Math.max(0, Math.min(work.length, hunk.oldStart));
134
+ work.splice(insertAt, 0, ...replacement);
135
+ additions += replacement.length;
136
+ void hunkSides;
137
+ continue;
138
+ }
139
+ const idealPos = hunk.oldStart - 1;
140
+ let foundAt = -1;
141
+ for (let offset = 0; offset <= DRIFT_WINDOW && foundAt < 0; offset++) {
142
+ for (const candidate of [idealPos + offset, idealPos - offset]) {
143
+ if (candidate < 0 || candidate + expected.length > work.length)
144
+ continue;
145
+ if (expected.every((line, i) => work[candidate + i] === line)) {
146
+ foundAt = candidate;
147
+ break;
148
+ }
149
+ }
150
+ }
151
+ if (foundAt < 0) {
152
+ return {
153
+ ok: false,
154
+ error: `${patch.newPath} 第 ${h + 1} 个 hunk 无法应用:±${DRIFT_WINDOW} 行内找不到匹配上下文(期望首行「${expected[0]?.slice(0, 60)}」)`,
155
+ };
156
+ }
157
+ work.splice(foundAt, expected.length, ...replacement);
158
+ additions += sides.added;
159
+ deletions += sides.removed;
160
+ }
161
+ const content = work.join("\n") + (work.length ? (endedWithNewline ? "\n" : "") : "");
162
+ return { ok: true, content, additions, deletions };
163
+ }
164
+ async function commitPatches(patchText, ctx) {
165
+ const { files, errors } = parseUnifiedPatch(patchText);
166
+ const fatal = [...errors];
167
+ const staged = [];
168
+ for (const filePatch of files) {
169
+ const target = filePatch.newPath ?? filePatch.oldPath ?? "?";
170
+ if (fatal.length)
171
+ break;
172
+ const existing = await ctx.workspace.read(target);
173
+ const outcome = applyFilePatch(existing ? existing.content : null, filePatch);
174
+ if (!outcome.ok)
175
+ fatal.push(outcome.error);
176
+ else
177
+ staged.push({ path: target, created: filePatch.oldPath === null, outcome });
178
+ }
179
+ if (fatal.length) {
180
+ throw new Error(`补丁未应用任何变更(两阶段校验未通过):\n${fatal.map((e) => `- ${e}`).join("\n")}`);
181
+ }
182
+ const reports = [];
183
+ for (const entry of staged) {
184
+ const written = await ctx.workspace.write({
185
+ path: entry.path,
186
+ content: entry.outcome.content,
187
+ author: "agent",
188
+ summary: `apply_patch 更新 ${entry.path}`,
189
+ });
190
+ if (!written)
191
+ throw new Error(`写入被拒绝:${entry.path}`);
192
+ await ctx.emitFileEdited({ path: entry.path, revisionId: written.revisionId, diff: written.diff });
193
+ reports.push({
194
+ path: entry.path,
195
+ action: entry.created ? "created" : "updated",
196
+ additions: entry.outcome.additions,
197
+ deletions: entry.outcome.deletions,
198
+ revisionId: written.revisionId,
199
+ });
200
+ }
201
+ return {
202
+ title: `apply_patch:${reports.length} 个文件`,
203
+ output: reports.map((r) => `更新 ${r.path}(+${r.additions}/-${r.deletions},版本 ${r.revisionId})`).join("\n"),
204
+ reports,
205
+ };
206
+ }
207
+ function affectedPaths(patchText) {
208
+ return [...patchText.matchAll(/^\+\+\+ (?:b\/)?([^\t\\\n]+)/gm)].map((m) => m[1]);
209
+ }
210
+ export const applyPatchTool = {
211
+ id: "apply_patch",
212
+ label: "应用补丁",
213
+ description: "把 unified diff 补丁应用到 Workspace:一个补丁可改多个文件/多处 hunk,支持新建文件(--- /dev/null);逐块上下文匹配允许 ±300 行漂移。任一文件校验失败则整体不变更。大范围结构化修改首选本工具。",
214
+ parameters: z.object({
215
+ patch: z.string().min(8).max(256 * 1024),
216
+ }),
217
+ permission: (args) => ({ permission: "edit", patterns: affectedPaths(args.patch) }),
218
+ executionMode: "sequential",
219
+ async execute(args, ctx) {
220
+ const result = await commitPatches(args.patch, ctx);
221
+ return { title: result.title, output: result.output, metadata: { files: result.reports } };
222
+ },
223
+ };
224
+ //# sourceMappingURL=patch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patch.js","sourceRoot":"","sources":["../../../src/core/tools/patch.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"qa-check.d.ts","sourceRoot":"","sources":["../../../src/core/tools/qa-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;iBAK9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAmBhE,eAAO,MAAM,WAAW,EAAE,OA4BzB,CAAC"}
1
+ {"version":3,"file":"qa-check.d.ts","sourceRoot":"","sources":["../../../src/core/tools/qa-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;iBAK9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAsBhE,eAAO,MAAM,WAAW,EAAE,OAgCzB,CAAC"}
@@ -16,7 +16,10 @@ function hasResponsiveStyles(styles) {
16
16
  return /@media\s*\(/i.test(styles) || /\b(?:display\s*:\s*(?:grid|flex)|max-width\s*:|clamp\s*\()/i.test(styles);
17
17
  }
18
18
  function hasFixedOverflowRisk(styles) {
19
- return /(?:width|min-width)\s*:\s*(?:[5-9]\d{2}|\d{4,})px/i.test(styles) && !/max-width\s*:\s*100%/i.test(styles);
19
+ // `max-width` is commonly used in responsive media queries and containers;
20
+ // it constrains a layout rather than forcing it wider. Only a literal width
21
+ // or min-width declaration at a CSS declaration boundary is an overflow risk.
22
+ return /(?:^|[;{]\s*)(?:width|min-width)\s*:\s*(?:[5-9]\d{2}|\d{4,})px\s*(?:;|})/im.test(styles) && !/max-width\s*:\s*100%/i.test(styles);
20
23
  }
21
24
  export const qaCheckTool = {
22
25
  id: "qa-check",
@@ -26,8 +29,12 @@ export const qaCheckTool = {
26
29
  permission: () => null,
27
30
  async execute(args, ctx) {
28
31
  const entry = await ctx.workspace.read(args.entryPath);
29
- const styles = (await Promise.all((await ctx.workspace.list()).filter((file) => file.path.endsWith(".css")).slice(0, 20).map((file) => ctx.workspace.read(file.path)))).filter((file) => Boolean(file)).map((file) => file.content).join("\n");
32
+ const cssFiles = (await Promise.all((await ctx.workspace.list()).filter((file) => file.path.endsWith(".css")).slice(0, 20).map((file) => ctx.workspace.read(file.path)))).filter((file) => Boolean(file)).map((file) => file.content).join("\n");
30
33
  const html = entry?.content ?? "";
34
+ // 单文件 web_app 的样式全部内联在 <style> 块里(workspace 没有 .css 文件),
35
+ // 响应式/溢出检测必须并入内联样式,否则永远判"缺少响应式样式"。
36
+ const inlineStyles = [...html.matchAll(/<style[^>]*>([\s\S]*?)<\/style>/gi)].map((match) => match[1] ?? "").join("\n");
37
+ const styles = `${cssFiles}\n${inlineStyles}`;
31
38
  const htmlLoads = Boolean(entry && /<html\b/i.test(html) && /<body\b/i.test(html));
32
39
  const missingText = args.requiredText.filter((text) => !html.includes(text));
33
40
  const responsive = hasViewportMeta(html) && hasResponsiveStyles(styles);
@@ -1 +1 @@
1
- {"version":3,"file":"qa-check.js","sourceRoot":"","sources":["../../../src/core/tools/qa-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qa-check.js","sourceRoot":"","sources":["../../../src/core/tools/qa-check.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ToolDef } from "./def.js";
2
+ /** repo_map 工具(R1,来源 Aider):返回工作区的代码结构导航图。
3
+ * 只读(permission 复用 read 类,基线 allow / explore 显式 allow)。
4
+ * 用法建议已写进 default/explore prompt:大型探索任务先 repo_map 再精准 read。 */
5
+ export declare function createRepoMapTool(opts: {
6
+ workspaceRoot: () => string;
7
+ }): ToolDef;
8
+ //# sourceMappingURL=repomap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repomap.d.ts","sourceRoot":"","sources":["../../../src/core/tools/repomap.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC;;gEAEgE;AAChE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IAAE,aAAa,EAAE,MAAM,MAAM,CAAA;CAAE,GAAG,OAAO,CA4BhF"}
@@ -0,0 +1,34 @@
1
+ import { z } from "zod";
2
+ import { renderRepoMap } from "../repomap/repomap.js";
3
+ /** repo_map 工具(R1,来源 Aider):返回工作区的代码结构导航图。
4
+ * 只读(permission 复用 read 类,基线 allow / explore 显式 allow)。
5
+ * 用法建议已写进 default/explore prompt:大型探索任务先 repo_map 再精准 read。 */
6
+ export function createRepoMapTool(opts) {
7
+ return {
8
+ id: "repo_map",
9
+ label: "仓库地图",
10
+ description: "获取当前 Workspace 的代码结构导航图:按重要性排序的文件 + 每文件的定义符号(函数/类/接口,带行号)。在开始大范围探索前先调用它,可以少走 glob/grep 弯路;用 focus 传入任务描述或关键符号名,地图会优先显示与任务最相关的文件。返回文本很紧凑(默认 ~1k tokens)。",
11
+ parameters: z.object({
12
+ focus: z.string().max(4000).optional().describe("当前任务描述或关键符号名(如类/函数名),地图会优先显示相关文件"),
13
+ paths: z.array(z.string().max(512)).max(20).optional().describe("只索引这些目录前缀(相对工作区路径)"),
14
+ tokenBudget: z.number().int().min(256).max(8192).optional().describe("渲染 token 预算,默认 1024"),
15
+ }),
16
+ permission: () => ({ permission: "read", patterns: ["**"] }),
17
+ async execute(args) {
18
+ const root = opts.workspaceRoot();
19
+ const result = await renderRepoMap({
20
+ root,
21
+ focus: args.focus,
22
+ paths: args.paths,
23
+ tokenBudget: args.tokenBudget,
24
+ });
25
+ const header = `[仓库地图] 索引 ${result.stats.indexedFiles} 个代码文件,渲染 ${result.stats.fileCount} 个文件 / ${result.stats.symbolCount} 个符号(~${result.stats.tokenEstimate} tokens)${result.stats.hitCap ? "(文件数触顶,结果可能不完整)" : ""}`;
26
+ return {
27
+ title: "仓库地图",
28
+ output: result.text ? `${header}\n\n${result.text}` : `${header}\n\n(工作区没有可索引的代码文件)`,
29
+ metadata: { ...result.stats },
30
+ };
31
+ },
32
+ };
33
+ }
34
+ //# sourceMappingURL=repomap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repomap.js","sourceRoot":"","sources":["../../../src/core/tools/repomap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD;;gEAEgE;AAChE,MAAM,UAAU,iBAAiB,CAAC,IAAqC;IACrE,OAAO;QACL,EAAE,EAAE,UAAU;QACd,KAAK,EAAE,MAAM;QACb,WAAW,EACT,yJAAyJ;QAC3J,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;YACnB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YACnF,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YACrF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;SAC5F,CAAC;QACF,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5D,KAAK,CAAC,OAAO,CAAC,IAAI;YAChB,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;gBACjC,IAAI;gBACJ,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,aAAa,MAAM,CAAC,KAAK,CAAC,YAAY,aAAa,MAAM,CAAC,KAAK,CAAC,SAAS,UAAU,MAAM,CAAC,KAAK,CAAC,WAAW,SAAS,MAAM,CAAC,KAAK,CAAC,aAAa,WAAW,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACvN,OAAO;gBACL,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,qBAAqB;gBACpF,QAAQ,EAAE,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE;aAC9B,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,80 @@
1
+ import type { ToolDef } from "./def.js";
2
+ /** 交互式终端(P0):面向 Agent 的长驻/交互式进程能力——`npm run dev`、
3
+ * watch 模式、会问 y/n 的安装器等,一次性 bash 沙箱跑不了或会卡死。
4
+ *
5
+ * 分层:TerminalManager(环形缓冲 + 会话生命周期)只依赖 TerminalBackend
6
+ * 接口;真正的 PTY vs 管道由宿主注入的 backend 决定(见
7
+ * adapters/terminal-backend.ts:动态 import node-pty,ABI 不匹配时降级
8
+ * 管道模式)。工具层不需要知道区别。
9
+ *
10
+ * 安全位阶:start 直接在宿主机起进程(不进沙箱),独立权限分类
11
+ * `terminal` 走审批;read/write/kill 针对已批准创建的会话不再重复询问。 */
12
+ export type TerminalSessionStatus = "running" | "exited" | "killed";
13
+ export type TerminalSessionInfo = {
14
+ id: string;
15
+ name?: string;
16
+ status: TerminalSessionStatus;
17
+ backend: "pty" | "pipe";
18
+ pid?: number;
19
+ exitCode?: number | null;
20
+ signal?: string | null;
21
+ startedAt: string;
22
+ bytesTotal: number;
23
+ };
24
+ /** 后端只关心这四件事。onData 之后必须保证 onExit 恰好触发一次。 */
25
+ export interface TerminalHandle {
26
+ write(data: string): void;
27
+ kill(signal?: string): void;
28
+ resize?(cols: number, rows: number): void;
29
+ }
30
+ export interface TerminalBackend {
31
+ readonly kind: "pty" | "pipe";
32
+ start(input: {
33
+ command: string;
34
+ cwd: string;
35
+ env?: Record<string, string>;
36
+ cols?: number;
37
+ rows?: number;
38
+ }, hooks: {
39
+ onData(chunk: string): void;
40
+ onExit(result: {
41
+ exitCode: number | null;
42
+ signal: string | null;
43
+ }): void;
44
+ }): Promise<TerminalHandle & {
45
+ pid?: number;
46
+ }>;
47
+ }
48
+ export declare class TerminalManager {
49
+ #private;
50
+ constructor(backend: TerminalBackend, opts?: {
51
+ ringCapBytes?: number;
52
+ maxSessions?: number;
53
+ });
54
+ get backendKind(): "pty" | "pipe";
55
+ start(input: {
56
+ name?: string;
57
+ command: string;
58
+ cwd: string;
59
+ env?: Record<string, string>;
60
+ cols?: number;
61
+ rows?: number;
62
+ }): Promise<TerminalSessionInfo>;
63
+ list(): TerminalSessionInfo[];
64
+ getSession(id: string): TerminalSessionInfo | null;
65
+ read(id: string, sinceBytes?: number): {
66
+ output: string;
67
+ cursor: number;
68
+ totalDropped: number;
69
+ truncatedHead: boolean;
70
+ session: TerminalSessionInfo;
71
+ } | null;
72
+ write(id: string, text: string): boolean;
73
+ resize(id: string, cols: number, rows: number): boolean;
74
+ kill(id: string, signal?: string): boolean;
75
+ disposeAll(signal?: string): void;
76
+ }
77
+ export declare function createTerminalTools(manager: TerminalManager, opts: {
78
+ workspaceRoot: () => string;
79
+ }): ToolDef[];
80
+ //# sourceMappingURL=terminal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"terminal.d.ts","sourceRoot":"","sources":["../../../src/core/tools/terminal.ts"],"names":[],"mappings":"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"}