@te-river/opencode-team-mode 1.5.14 → 1.6.0
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/README.md +788 -674
- package/README.zh-CN.md +712 -618
- package/dist/agents.d.ts +5 -3
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +19 -8
- package/dist/agents.js.map +1 -1
- package/dist/capabilities.d.ts +1 -1
- package/dist/capabilities.js +2 -2
- package/dist/capabilities.js.map +1 -1
- package/dist/host-hooks.d.ts +13 -2
- package/dist/host-hooks.d.ts.map +1 -1
- package/dist/host-hooks.js +19 -5
- package/dist/host-hooks.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +54 -14
- package/dist/index.js.map +1 -1
- package/dist/prompts/lead.d.ts +1 -1
- package/dist/prompts/lead.d.ts.map +1 -1
- package/dist/prompts/lead.js +135 -17
- package/dist/prompts/lead.js.map +1 -1
- package/dist/prompts/shared.d.ts +2 -2
- package/dist/prompts/shared.d.ts.map +1 -1
- package/dist/prompts/shared.js +94 -16
- package/dist/prompts/shared.js.map +1 -1
- package/dist/prompts/specialists.d.ts +2 -2
- package/dist/prompts/specialists.d.ts.map +1 -1
- package/dist/prompts/specialists.js +43 -10
- package/dist/prompts/specialists.js.map +1 -1
- package/dist/task-offload.d.ts +67 -0
- package/dist/task-offload.d.ts.map +1 -0
- package/dist/task-offload.js +123 -0
- package/dist/task-offload.js.map +1 -0
- package/dist/tm/args-schema.d.ts +4 -0
- package/dist/tm/args-schema.d.ts.map +1 -1
- package/dist/tm/args-schema.js +44 -3
- package/dist/tm/args-schema.js.map +1 -1
- package/dist/tm/board.d.ts +113 -0
- package/dist/tm/board.d.ts.map +1 -0
- package/dist/tm/board.js +275 -0
- package/dist/tm/board.js.map +1 -0
- package/dist/tm/browser.d.ts +325 -6
- package/dist/tm/browser.d.ts.map +1 -1
- package/dist/tm/browser.js +1329 -135
- package/dist/tm/browser.js.map +1 -1
- package/dist/tm/config.d.ts +36 -1
- package/dist/tm/config.d.ts.map +1 -1
- package/dist/tm/config.js +29 -1
- package/dist/tm/config.js.map +1 -1
- package/dist/tm/dispatch.d.ts +118 -31
- package/dist/tm/dispatch.d.ts.map +1 -1
- package/dist/tm/dispatch.js +385 -131
- package/dist/tm/dispatch.js.map +1 -1
- package/dist/tm/dupe-guard.js +1 -1
- package/dist/tm/dupe-guard.js.map +1 -1
- package/dist/tm/egress.d.ts +44 -0
- package/dist/tm/egress.d.ts.map +1 -0
- package/dist/tm/egress.js +191 -0
- package/dist/tm/egress.js.map +1 -0
- package/dist/tm/guard.js +1 -1
- package/dist/tm/guard.js.map +1 -1
- package/dist/tm/index.d.ts +28 -2
- package/dist/tm/index.d.ts.map +1 -1
- package/dist/tm/index.js +198 -10
- package/dist/tm/index.js.map +1 -1
- package/dist/tm/perm-ask.d.ts +47 -5
- package/dist/tm/perm-ask.d.ts.map +1 -1
- package/dist/tm/perm-ask.js +98 -7
- package/dist/tm/perm-ask.js.map +1 -1
- package/dist/tm/pipelines.d.ts.map +1 -1
- package/dist/tm/pipelines.js +24 -2
- package/dist/tm/pipelines.js.map +1 -1
- package/dist/tm/ptc/tool.d.ts.map +1 -1
- package/dist/tm/ptc/tool.js +2 -4
- package/dist/tm/ptc/tool.js.map +1 -1
- package/dist/tm/pty.d.ts.map +1 -1
- package/dist/tm/pty.js +6 -3
- package/dist/tm/pty.js.map +1 -1
- package/dist/tm/search.d.ts +5 -0
- package/dist/tm/search.d.ts.map +1 -1
- package/dist/tm/search.js +19 -17
- package/dist/tm/search.js.map +1 -1
- package/dist/tm/stats.d.ts +46 -0
- package/dist/tm/stats.d.ts.map +1 -1
- package/dist/tm/stats.js +124 -7
- package/dist/tm/stats.js.map +1 -1
- package/dist/tm/store.d.ts +3 -0
- package/dist/tm/store.d.ts.map +1 -1
- package/dist/tm/store.js +6 -1
- package/dist/tm/store.js.map +1 -1
- package/dist/tm/webfetch.d.ts +52 -0
- package/dist/tm/webfetch.d.ts.map +1 -1
- package/dist/tm/webfetch.js +128 -22
- package/dist/tm/webfetch.js.map +1 -1
- package/dist/tool-coerce.d.ts +24 -0
- package/dist/tool-coerce.d.ts.map +1 -0
- package/dist/tool-coerce.js +63 -0
- package/dist/tool-coerce.js.map +1 -0
- package/dist/types.d.ts +7 -1
- package/dist/types.d.ts.map +1 -1
- package/docs/installation.md +69 -2
- package/package.json +61 -59
package/dist/tm/index.js
CHANGED
|
@@ -25,13 +25,15 @@ import { hmacToken, newRunId } from "./refs.js";
|
|
|
25
25
|
import { RunStore } from "./store.js";
|
|
26
26
|
import { buildTmTools } from "./tools.js";
|
|
27
27
|
import { buildPipelines } from "./pipelines.js";
|
|
28
|
-
import { buildPtcArgsSchema, buildWebfetchArgsSchema, buildMemoryArgsSchema, buildBrowserArgsSchema, buildSearchArgsSchema } from "./args-schema.js";
|
|
28
|
+
import { buildPtcArgsSchema, buildWebfetchArgsSchema, buildMemoryArgsSchema, buildBrowserArgsSchema, buildSearchArgsSchema, buildBoardArgsSchema } from "./args-schema.js";
|
|
29
29
|
import { buildPtcRunTool } from "./ptc/index.js";
|
|
30
30
|
import { buildStatsTool } from "./stats.js";
|
|
31
|
+
import { buildBoardWriteTool } from "./board.js";
|
|
31
32
|
import { createWebCache } from "./cache.js";
|
|
32
33
|
import { buildTmWebfetchTool } from "./webfetch.js";
|
|
33
34
|
import { buildTmSearchTool } from "./search.js";
|
|
34
|
-
|
|
35
|
+
import { rmForceSafe } from "../fs-safe.js";
|
|
36
|
+
export { rmForceSafe };
|
|
35
37
|
export { buildTmMemoryTool, MEMORY_CATEGORIES, MEMORY_CONTENT_MAX, MEMORY_TITLE_MAX, projectSlug, scoreMemory, parseMemoryMarkdown, renderMemoryMarkdown, } from "./memory.js";
|
|
36
38
|
export { buildTmBrowserTool, defaultBrowserExecutable, findBrowserExecutable, isChromiumFamily, isPassiveResource, normalizeResourceType, parseDesktopExec, parseProgId, parseRegCommand, playwrightLaunchTarget, rememberSite, resolveHeadless, siteOf, subresourcePass, } from "./browser.js";
|
|
37
39
|
import { buildTmMemoryTool } from "./memory.js";
|
|
@@ -40,6 +42,140 @@ import { buildDispatchTools } from "./dispatch.js";
|
|
|
40
42
|
import { buildTmPtyTool } from "./pty.js";
|
|
41
43
|
export { ptyCommandLine, ptyCommandBlocked, ptyVerdictLine } from "./pty.js";
|
|
42
44
|
export { buildDispatchTools, DISPATCH_TARGETS, lastAssistantText, renderChildLine, sessionApiOf, summarizeStates, } from "./dispatch.js";
|
|
45
|
+
/** Collision-free shard key for a workspace path. It is a HASH rather than a
|
|
46
|
+
* sanitized basename because the CJK paths this plugin actually meets strip
|
|
47
|
+
* to nothing useful — `D:\扒取数据` and `D:\文档` both slug to "d", and a store
|
|
48
|
+
* shard that collides is the exact bug this exists to kill. */
|
|
49
|
+
export function workspaceStoreKey(directory) {
|
|
50
|
+
const norm = path
|
|
51
|
+
.resolve(String(directory ?? "").trim() || process.cwd())
|
|
52
|
+
.replace(/[\\/]+$/g, "")
|
|
53
|
+
.toLowerCase();
|
|
54
|
+
return crypto.createHash("sha256").update(path.normalize(norm)).digest("hex").slice(0, 10);
|
|
55
|
+
}
|
|
56
|
+
/** The shard dir is created lazily, one per non-git workspace — so a machine
|
|
57
|
+
* that runs this plugin's own test suite a hundred times grows a `w-*`
|
|
58
|
+
* directory per throwaway temp dir (64 after a single dev session). Prune
|
|
59
|
+
* the siblings that have produced nothing inside the TTL, never the live
|
|
60
|
+
* one, and never with a bare rmSync (win32 silently no-ops on non-ASCII
|
|
61
|
+
* paths, which would leave the directory in place and the loop lying about
|
|
62
|
+
* what it removed). */
|
|
63
|
+
export function pruneStaleStoreShards(base, keep, ttlMs, now = Date.now()) {
|
|
64
|
+
const removed = [];
|
|
65
|
+
let names;
|
|
66
|
+
try {
|
|
67
|
+
names = fs.readdirSync(base);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return removed;
|
|
71
|
+
}
|
|
72
|
+
const keepName = path.basename(keep);
|
|
73
|
+
for (const name of names) {
|
|
74
|
+
if (!/^w-[0-9a-f]{10}$/.test(name) || name === keepName)
|
|
75
|
+
continue;
|
|
76
|
+
const dir = path.join(base, name);
|
|
77
|
+
let newest = 0;
|
|
78
|
+
try {
|
|
79
|
+
newest = fs.statSync(dir).mtimeMs;
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
for (const sub of ["trajectory/runs", "blackboard/runs"]) {
|
|
85
|
+
try {
|
|
86
|
+
newest = Math.max(newest, fs.statSync(path.join(dir, sub)).mtimeMs);
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
/* absent — no evidence of life either way */
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (now - newest > ttlMs) {
|
|
93
|
+
rmForceSafe(dir, { recursive: true });
|
|
94
|
+
if (!fs.existsSync(dir))
|
|
95
|
+
removed.push(name);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return removed;
|
|
99
|
+
}
|
|
100
|
+
/** A layout nothing reads is still a layout the user paid disk for. Sharding
|
|
101
|
+
* moved the run/trajectory trees under `w-<hash>/`, which silently orphaned
|
|
102
|
+
* the pre-shard `blackboard/` (runs + webcache) and `trajectory/` at the
|
|
103
|
+
* shared tmpdir base — measured 503 MB and 2654 run dirs on one machine, and
|
|
104
|
+
* no sweeper points there any more, so an upgrade would never reclaim it.
|
|
105
|
+
* Drain them under the SAME TTL rule the live store uses: expired is
|
|
106
|
+
* deletable, fresh is not (a session started before the upgrade may still be
|
|
107
|
+
* writing there), and the empty shells go last. `memories/` and the team
|
|
108
|
+
* blackboard's date-named dirs are still live at that base and are not
|
|
109
|
+
* touched here. */
|
|
110
|
+
export function reclaimLegacyStoreBuckets(base, ttlMs, now = Date.now()) {
|
|
111
|
+
const removed = [];
|
|
112
|
+
const emptyTree = (dir) => {
|
|
113
|
+
// A FILE is not "empty" — it is an entry that exists. Treating the
|
|
114
|
+
// readdir throw as true once deleted a live run dir along with its shell.
|
|
115
|
+
if (!fs.existsSync(dir))
|
|
116
|
+
return true;
|
|
117
|
+
let names;
|
|
118
|
+
try {
|
|
119
|
+
names = fs.readdirSync(dir);
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
return names.every((n) => emptyTree(path.join(dir, n)));
|
|
125
|
+
};
|
|
126
|
+
let top;
|
|
127
|
+
try {
|
|
128
|
+
top = fs.readdirSync(base);
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
return removed;
|
|
132
|
+
}
|
|
133
|
+
if (!top.includes("blackboard") && !top.includes("trajectory"))
|
|
134
|
+
return removed;
|
|
135
|
+
for (const name of ["blackboard", "trajectory"]) {
|
|
136
|
+
const dir = path.join(base, name);
|
|
137
|
+
let containers;
|
|
138
|
+
try {
|
|
139
|
+
containers = fs.readdirSync(dir);
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
for (const container of containers) {
|
|
145
|
+
if (container !== "runs" && container !== "webcache")
|
|
146
|
+
continue;
|
|
147
|
+
const cdir = path.join(dir, container);
|
|
148
|
+
let kids;
|
|
149
|
+
try {
|
|
150
|
+
kids = fs.readdirSync(cdir);
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
for (const kid of kids) {
|
|
156
|
+
const p = path.join(cdir, kid);
|
|
157
|
+
let mtime = 0;
|
|
158
|
+
try {
|
|
159
|
+
mtime = fs.statSync(p).mtimeMs;
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
if (now - mtime > ttlMs) {
|
|
165
|
+
rmForceSafe(p, { recursive: true });
|
|
166
|
+
if (!fs.existsSync(p))
|
|
167
|
+
removed.push(`${name}/${container}/${kid}`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
if (emptyTree(dir)) {
|
|
172
|
+
rmForceSafe(dir, { recursive: true });
|
|
173
|
+
if (!fs.existsSync(dir))
|
|
174
|
+
removed.push(name);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return removed;
|
|
178
|
+
}
|
|
43
179
|
export async function createTmTools(input, opts = {}) {
|
|
44
180
|
const cfg = resolveTmConfig(process.env);
|
|
45
181
|
const directory = typeof input?.directory === "string" && input.directory.length > 0
|
|
@@ -66,9 +202,41 @@ export async function createTmTools(input, opts = {}) {
|
|
|
66
202
|
return false;
|
|
67
203
|
}
|
|
68
204
|
})();
|
|
69
|
-
const
|
|
205
|
+
const sharedBase = gitUsable
|
|
70
206
|
? path.join(gitDir, "opencode-team")
|
|
71
207
|
: path.join(os.tmpdir(), "opencode-team");
|
|
208
|
+
// A non-git workspace used to share ONE tmpdir bucket with every other
|
|
209
|
+
// non-git workspace — and with this plugin's own test runs. tm_stats then
|
|
210
|
+
// reported somebody else's session: a user's read-only self-check printed
|
|
211
|
+
// "窗口 10 个 run · 墙钟 81370s" of traffic that belonged to neither their
|
|
212
|
+
// session nor their project. The run/trajectory/blackboard trees are
|
|
213
|
+
// therefore sharded per workspace. `memories/` deliberately stays on the
|
|
214
|
+
// shared base — its project tier is already keyed by project slug, and
|
|
215
|
+
// moving it would strand memories the user already wrote.
|
|
216
|
+
const storeBase = gitUsable ? sharedBase : path.join(sharedBase, `w-${workspaceStoreKey(directory)}`);
|
|
217
|
+
// Boot-time reclamation of what an upgrade leaves behind. Both passes are
|
|
218
|
+
// TTL-gated (expired is deletable, fresh is not — a session started before
|
|
219
|
+
// the upgrade may still be writing), and TM_STORE_RECLAIM=off exists so the
|
|
220
|
+
// test runner never reaches into the developer's real Temp.
|
|
221
|
+
if (cfg.storeReclaim !== "off") {
|
|
222
|
+
const ttlMs = cfg.blackboardTtlDays * 24 * 60 * 60 * 1000;
|
|
223
|
+
if (!gitUsable) {
|
|
224
|
+
try {
|
|
225
|
+
pruneStaleStoreShards(sharedBase, storeBase, ttlMs);
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
228
|
+
/* cleanup only — a failed prune must never cost the session its tools */
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
// The pre-shard layout lives at the TMPDIR base and nowhere else: inside a
|
|
232
|
+
// repo, `blackboard/`+`trajectory/` ARE the live store.
|
|
233
|
+
try {
|
|
234
|
+
reclaimLegacyStoreBuckets(path.join(os.tmpdir(), "opencode-team"), ttlMs);
|
|
235
|
+
}
|
|
236
|
+
catch {
|
|
237
|
+
/* same: reclamation is never worth failing a session over */
|
|
238
|
+
}
|
|
239
|
+
}
|
|
72
240
|
// User-level global memory root — OUTSIDE any repo, so "global" scope
|
|
73
241
|
// really follows the user across projects (repo scope stays in .git).
|
|
74
242
|
const globalMemoriesDir = cfg.memoryGlobalDir || path.join(os.homedir(), ".opencode-team", "memories", "global");
|
|
@@ -138,7 +306,7 @@ export async function createTmTools(input, opts = {}) {
|
|
|
138
306
|
// a network channel, it is shared project knowledge.
|
|
139
307
|
const memoryArgs = await buildMemoryArgsSchema();
|
|
140
308
|
tools.tm_memory = buildTmMemoryTool({
|
|
141
|
-
storeBase,
|
|
309
|
+
storeBase: sharedBase,
|
|
142
310
|
globalRoot: globalMemoriesDir,
|
|
143
311
|
directory,
|
|
144
312
|
cfg,
|
|
@@ -213,17 +381,23 @@ export async function createTmTools(input, opts = {}) {
|
|
|
213
381
|
webTools: ptcWebTools,
|
|
214
382
|
});
|
|
215
383
|
tools.tm_ptc_run = ptcTool;
|
|
216
|
-
//
|
|
217
|
-
// the
|
|
218
|
-
//
|
|
219
|
-
//
|
|
220
|
-
//
|
|
384
|
+
// tm_join — the collect side of sub-agent work (see src/tm/dispatch.ts for
|
|
385
|
+
// the whole story). tm_dispatch is NOT registered: a plugin-spawned child is
|
|
386
|
+
// a session the user can neither open from a card nor stop from the UI, so
|
|
387
|
+
// delegation has exactly one route left — the host's own `task` (governed,
|
|
388
|
+
// visible, killable). The dispatcher object stays because tm_join needs its
|
|
389
|
+
// registry: children dispatched before the removal are still adopted,
|
|
390
|
+
// collected and cancelled through it, and it self-gates to the lead agent.
|
|
221
391
|
const dispatch = buildDispatchTools({
|
|
222
392
|
client: input?.client,
|
|
223
393
|
pipelines,
|
|
224
394
|
onChildSession: opts.onChildSession,
|
|
395
|
+
maxWaitMs: cfg.joinMaxWaitMs,
|
|
396
|
+
// #80: tm_join reports a child that settled while still holding a browser
|
|
397
|
+
// window. One shared instance already owns the lease table, so this is a
|
|
398
|
+
// read of a fact, not a second source of truth.
|
|
399
|
+
browserLeases: () => browserTool.leases(),
|
|
225
400
|
});
|
|
226
|
-
tools.tm_dispatch = dispatch.tm_dispatch;
|
|
227
401
|
tools.tm_join = dispatch.tm_join;
|
|
228
402
|
// tm_pty — non-blocking command execution on the host's own terminal
|
|
229
403
|
// sessions (issue #6: three serial 120 s test suites are minutes of dead
|
|
@@ -235,6 +409,20 @@ export async function createTmTools(input, opts = {}) {
|
|
|
235
409
|
// with a number behind it instead of a vibe, and what names the surface an
|
|
236
410
|
// OpenCode upgrade removed.
|
|
237
411
|
tools.tm_stats = buildStatsTool({ store, capabilities: opts.capabilities });
|
|
412
|
+
// tm_board_write — the blackboard's write side. The board layout the
|
|
413
|
+
// workspace note publishes is <root>/<session-key>/<task>/NN-<role>-<topic>,
|
|
414
|
+
// and reaching it used to require a file tool: architect and researcher carry
|
|
415
|
+
// none (no write, no edit, not even bash to stamp the session folder), so
|
|
416
|
+
// every oversized deliverable from those roles came back as
|
|
417
|
+
// BLACKBOARD WRITE FAILED + the whole document pasted inline. This writer is
|
|
418
|
+
// scoped to that one path shape under the SAME root the note advertises —
|
|
419
|
+
// sharedBase, which is teamRootFor(directory) in every mode.
|
|
420
|
+
tools.tm_board_write = buildBoardWriteTool({
|
|
421
|
+
pipelines,
|
|
422
|
+
boardRoot: sharedBase,
|
|
423
|
+
cfg: { boardMaxChars: cfg.boardMaxChars, boardMaxFiles: cfg.boardMaxFiles },
|
|
424
|
+
args: await buildBoardArgsSchema(),
|
|
425
|
+
});
|
|
238
426
|
return {
|
|
239
427
|
runId,
|
|
240
428
|
config: cfg,
|
package/dist/tm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tm/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tm/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tm/perm-ask.d.ts
CHANGED
|
@@ -30,9 +30,51 @@ export declare function setAskBridgeObserver(fn: ((present: boolean) => void) |
|
|
|
30
30
|
/** Extract ctx.ask defensively — host versions before the ctx bridge lack
|
|
31
31
|
* it, and test stubs may not provide it. */
|
|
32
32
|
export declare function askFnOf(ctx: unknown): TmAskFn | null;
|
|
33
|
-
export type AskOutcome = "approved" | "rejected" | "unavailable";
|
|
34
|
-
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
|
|
33
|
+
export type AskOutcome = "approved" | "rejected" | "timed-out" | "unavailable";
|
|
34
|
+
/** A remembered allow rule resolves the ask inside the host; a human has to
|
|
35
|
+
* read the dialog, decide and click. 1.5 s separates the two by an order of
|
|
36
|
+
* magnitude on the observed desktop, and this is a HEURISTIC, not a host
|
|
37
|
+
* contract — which is exactly why the sentence it produces says "没有人点这个
|
|
38
|
+
* 窗" only alongside the mechanism, never instead of it. */
|
|
39
|
+
export declare const ASK_AUTO_GRANT_MS = 1500;
|
|
40
|
+
export interface AskResult {
|
|
41
|
+
outcome: AskOutcome;
|
|
42
|
+
/** How long the host took to answer. Undefined when there was no bridge. */
|
|
43
|
+
answeredInMs?: number;
|
|
44
|
+
/** approved AND answered fast enough that nobody can have clicked it — i.e.
|
|
45
|
+
* a saved rule (an "always" the user granted earlier, possibly in another
|
|
46
|
+
* agent's session) answered on their behalf. */
|
|
47
|
+
autoGranted: boolean;
|
|
48
|
+
}
|
|
49
|
+
/** The same drive as `askUserForTarget`, but it reports HOW the approval
|
|
50
|
+
* arrived. Callers that show the user a result need this: an agent that
|
|
51
|
+
* cannot tell "the host remembered an always-allow" from "the user just
|
|
52
|
+
* approved this" will report 免弹窗 as evidence about the allowlist, and that
|
|
53
|
+
* is how a correct observation becomes a wrong conclusion. */
|
|
54
|
+
export declare function askUserForTargetDetailed(ctx: unknown, req: TmAskRequest, waitMs?: number, autoGrantMs?: number): Promise<AskResult>;
|
|
55
|
+
/** The line a caller appends when a governed web fetch/navigation proceeded on
|
|
56
|
+
* an approval rather than on the static allowlist. One function so no tool
|
|
57
|
+
* can half-report it. */
|
|
58
|
+
export declare function askGrantNote(res: AskResult): string;
|
|
59
|
+
/** The unified approval gate auto-rejects an unanswered dialog after
|
|
60
|
+
* `TM_ASK_TIMEOUT_MIN`, but it is only ARMED when R6 is on and the client can
|
|
61
|
+
* reply. Where it is not armed, `await ask()` hung until the user interrupted
|
|
62
|
+
* the whole turn — live evidence: an out-of-allowlist tm_webfetch that showed
|
|
63
|
+
* as a spinning card and then `Tool execution aborted`. A tool-side deadline
|
|
64
|
+
* is the backstop, so no caller has to remember it. */
|
|
65
|
+
export declare const ASK_GRACE_MS = 15000;
|
|
66
|
+
/** Wired once at boot from `resolveAskTimeoutMs() + ASK_GRACE_MS`, so the
|
|
67
|
+
* gate's authoritative reject always wins when it is able to fire and this
|
|
68
|
+
* timer only catches the un-armed case. */
|
|
69
|
+
export declare function setAskWaitMs(ms: number): void;
|
|
70
|
+
export declare function getAskWaitMs(): number;
|
|
71
|
+
/** Drive the official dialog for an out-of-allowlist target. Never throws: a
|
|
72
|
+
* missing bridge is "unavailable", a refusal is "rejected", and a dialog
|
|
73
|
+
* nobody answered is "timed-out" — three different answers that need three
|
|
74
|
+
* different next moves. */
|
|
75
|
+
export declare function askUserForTarget(ctx: unknown, req: TmAskRequest, waitMs?: number): Promise<AskOutcome>;
|
|
76
|
+
/** One sentence naming WHY the dialog did not grant access. This is not
|
|
77
|
+
* cosmetic: "用户未批准" for a dialog nobody saw teaches the agent to give up
|
|
78
|
+
* (or retry silently) instead of telling the human to look at the screen. */
|
|
79
|
+
export declare function askRefusalNote(outcome: AskOutcome, waitMs?: number): string;
|
|
38
80
|
//# sourceMappingURL=perm-ask.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"perm-ask.d.ts","sourceRoot":"","sources":["../../src/tm/perm-ask.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,YAAY;IAC3B,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAA;IAClB,kEAAkE;IAClE,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAM7D,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAElF;AAED;6CAC6C;AAC7C,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CASpD;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"perm-ask.d.ts","sourceRoot":"","sources":["../../src/tm/perm-ask.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,YAAY;IAC3B,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAA;IAClB,kEAAkE;IAClE,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED,MAAM,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAM7D,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAElF;AAED;6CAC6C;AAC7C,wBAAgB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CASpD;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,CAAA;AAE9E;;;;4DAI4D;AAC5D,eAAO,MAAM,iBAAiB,OAAQ,CAAA;AAEtC,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,UAAU,CAAA;IACnB,6EAA6E;IAC7E,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;qDAEiD;IACjD,WAAW,EAAE,OAAO,CAAA;CACrB;AAED;;;;+DAI+D;AAC/D,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,YAAY,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,WAAW,SAAoB,GAC9B,OAAO,CAAC,SAAS,CAAC,CAkBpB;AAED;;0BAE0B;AAC1B,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAOnD;AAMD;;;;;wDAKwD;AACxD,eAAO,MAAM,YAAY,QAAS,CAAA;AAIlC;;4CAE4C;AAC5C,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE7C;AACD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;4BAG4B;AAC5B,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,YAAY,EACjB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,CAAC,CAgBrB;AAED;;8EAE8E;AAC9E,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAY,GAAG,MAAM,CAU9E"}
|
package/dist/tm/perm-ask.js
CHANGED
|
@@ -37,19 +37,110 @@ export function askFnOf(ctx) {
|
|
|
37
37
|
}
|
|
38
38
|
return present ? ask : null;
|
|
39
39
|
}
|
|
40
|
-
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
|
|
40
|
+
/** A remembered allow rule resolves the ask inside the host; a human has to
|
|
41
|
+
* read the dialog, decide and click. 1.5 s separates the two by an order of
|
|
42
|
+
* magnitude on the observed desktop, and this is a HEURISTIC, not a host
|
|
43
|
+
* contract — which is exactly why the sentence it produces says "没有人点这个
|
|
44
|
+
* 窗" only alongside the mechanism, never instead of it. */
|
|
45
|
+
export const ASK_AUTO_GRANT_MS = 1_500;
|
|
46
|
+
/** The same drive as `askUserForTarget`, but it reports HOW the approval
|
|
47
|
+
* arrived. Callers that show the user a result need this: an agent that
|
|
48
|
+
* cannot tell "the host remembered an always-allow" from "the user just
|
|
49
|
+
* approved this" will report 免弹窗 as evidence about the allowlist, and that
|
|
50
|
+
* is how a correct observation becomes a wrong conclusion. */
|
|
51
|
+
export async function askUserForTargetDetailed(ctx, req, waitMs, autoGrantMs = ASK_AUTO_GRANT_MS) {
|
|
52
|
+
const ask = askFnOf(ctx);
|
|
53
|
+
if (!ask)
|
|
54
|
+
return { outcome: "unavailable", autoGranted: false };
|
|
55
|
+
const budget = Math.max(ASK_WAIT_FLOOR_MS, Math.round(waitMs ?? askWaitMs));
|
|
56
|
+
const t0 = Date.now();
|
|
57
|
+
let timer = null;
|
|
58
|
+
try {
|
|
59
|
+
await new Promise((resolve, reject) => {
|
|
60
|
+
timer = setTimeout(() => reject(TIMED_OUT), budget);
|
|
61
|
+
Promise.resolve(ask(req)).then(resolve, reject);
|
|
62
|
+
});
|
|
63
|
+
const answeredInMs = Date.now() - t0;
|
|
64
|
+
return { outcome: "approved", answeredInMs, autoGranted: answeredInMs < autoGrantMs };
|
|
65
|
+
}
|
|
66
|
+
catch (err) {
|
|
67
|
+
return { outcome: err === TIMED_OUT ? "timed-out" : "rejected", answeredInMs: Date.now() - t0, autoGranted: false };
|
|
68
|
+
}
|
|
69
|
+
finally {
|
|
70
|
+
if (timer)
|
|
71
|
+
clearTimeout(timer);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/** The line a caller appends when a governed web fetch/navigation proceeded on
|
|
75
|
+
* an approval rather than on the static allowlist. One function so no tool
|
|
76
|
+
* can half-report it. */
|
|
77
|
+
export function askGrantNote(res) {
|
|
78
|
+
if (res.outcome !== "approved")
|
|
79
|
+
return "";
|
|
80
|
+
return res.autoGranted
|
|
81
|
+
? `\n(本次不是静态白名单放行:宿主按已记住的规则直接准了,${res.answeredInMs ?? 0}ms 内没有人可能点过这个窗。` +
|
|
82
|
+
`那通常是用户先前点过的"始终允许"——它按项目生效,对所有 agent 会话都算,所以这不证明本会话被单独征求过意见。` +
|
|
83
|
+
`要收回:在宿主的权限设置里删掉那条规则。)`
|
|
84
|
+
: `\n(本次由用户刚刚在确认窗里批准,仅这一会话有效。)`;
|
|
85
|
+
}
|
|
86
|
+
/** Our own reject sentinel — an `ask()` that never settles has to be told
|
|
87
|
+
* apart from a dialog the user actually answered "no". */
|
|
88
|
+
const TIMED_OUT = Symbol("ask-timed-out");
|
|
89
|
+
/** The unified approval gate auto-rejects an unanswered dialog after
|
|
90
|
+
* `TM_ASK_TIMEOUT_MIN`, but it is only ARMED when R6 is on and the client can
|
|
91
|
+
* reply. Where it is not armed, `await ask()` hung until the user interrupted
|
|
92
|
+
* the whole turn — live evidence: an out-of-allowlist tm_webfetch that showed
|
|
93
|
+
* as a spinning card and then `Tool execution aborted`. A tool-side deadline
|
|
94
|
+
* is the backstop, so no caller has to remember it. */
|
|
95
|
+
export const ASK_GRACE_MS = 15_000;
|
|
96
|
+
const ASK_WAIT_FLOOR_MS = 5_000;
|
|
97
|
+
let askWaitMs = 75_000;
|
|
98
|
+
/** Wired once at boot from `resolveAskTimeoutMs() + ASK_GRACE_MS`, so the
|
|
99
|
+
* gate's authoritative reject always wins when it is able to fire and this
|
|
100
|
+
* timer only catches the un-armed case. */
|
|
101
|
+
export function setAskWaitMs(ms) {
|
|
102
|
+
if (Number.isFinite(ms) && ms >= ASK_WAIT_FLOOR_MS)
|
|
103
|
+
askWaitMs = Math.round(ms);
|
|
104
|
+
}
|
|
105
|
+
export function getAskWaitMs() {
|
|
106
|
+
return askWaitMs;
|
|
107
|
+
}
|
|
108
|
+
/** Drive the official dialog for an out-of-allowlist target. Never throws: a
|
|
109
|
+
* missing bridge is "unavailable", a refusal is "rejected", and a dialog
|
|
110
|
+
* nobody answered is "timed-out" — three different answers that need three
|
|
111
|
+
* different next moves. */
|
|
112
|
+
export async function askUserForTarget(ctx, req, waitMs) {
|
|
44
113
|
const ask = askFnOf(ctx);
|
|
45
114
|
if (!ask)
|
|
46
115
|
return "unavailable";
|
|
116
|
+
const budget = Math.max(ASK_WAIT_FLOOR_MS, Math.round(waitMs ?? askWaitMs));
|
|
117
|
+
let timer = null;
|
|
47
118
|
try {
|
|
48
|
-
await
|
|
119
|
+
await new Promise((resolve, reject) => {
|
|
120
|
+
timer = setTimeout(() => reject(TIMED_OUT), budget);
|
|
121
|
+
Promise.resolve(ask(req)).then(resolve, reject);
|
|
122
|
+
});
|
|
49
123
|
return "approved";
|
|
50
124
|
}
|
|
51
|
-
catch {
|
|
52
|
-
return "rejected";
|
|
125
|
+
catch (err) {
|
|
126
|
+
return err === TIMED_OUT ? "timed-out" : "rejected";
|
|
127
|
+
}
|
|
128
|
+
finally {
|
|
129
|
+
if (timer)
|
|
130
|
+
clearTimeout(timer);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/** One sentence naming WHY the dialog did not grant access. This is not
|
|
134
|
+
* cosmetic: "用户未批准" for a dialog nobody saw teaches the agent to give up
|
|
135
|
+
* (or retry silently) instead of telling the human to look at the screen. */
|
|
136
|
+
export function askRefusalNote(outcome, waitMs = askWaitMs) {
|
|
137
|
+
if (outcome === "rejected")
|
|
138
|
+
return "用户未批准。";
|
|
139
|
+
if (outcome === "timed-out") {
|
|
140
|
+
return (`确认窗无人应答——我等满了 ${Math.round(waitMs / 1000)} 秒(本机 ask 的等待上限)才放弃,` +
|
|
141
|
+
`所以这不是被拒绝,是没有人在界面上点它。请提醒用户查看待确认的对话框;` +
|
|
142
|
+
`如果确实不想开权限,就改用白名单内的源,不要重复调用。`);
|
|
53
143
|
}
|
|
144
|
+
return "宿主无法弹出确认窗口(旧版协议)。";
|
|
54
145
|
}
|
|
55
146
|
//# sourceMappingURL=perm-ask.js.map
|
package/dist/tm/perm-ask.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"perm-ask.js","sourceRoot":"","sources":["../../src/tm/perm-ask.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAaH;;6EAE6E;AAC7E,IAAI,iBAAiB,GAAwC,IAAI,CAAA;AACjE,MAAM,UAAU,oBAAoB,CAAC,EAAuC;IAC1E,iBAAiB,GAAG,EAAE,CAAA;AACxB,CAAC;AAED;6CAC6C;AAC7C,MAAM,UAAU,OAAO,CAAC,GAAY;IAClC,MAAM,GAAG,GAAI,GAA4C,EAAE,GAAG,CAAA;IAC9D,MAAM,OAAO,GAAG,OAAO,GAAG,KAAK,UAAU,CAAA;IACzC,IAAI,CAAC;QACH,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAE,GAAe,CAAC,CAAC,CAAC,IAAI,CAAA;AAC1C,CAAC;AAID;;
|
|
1
|
+
{"version":3,"file":"perm-ask.js","sourceRoot":"","sources":["../../src/tm/perm-ask.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipelines.d.ts","sourceRoot":"","sources":["../../src/tm/pipelines.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAG1C,OAAO,EAAgE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACpH,OAAO,EAA0C,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAIL,iBAAiB,EAClB,MAAM,cAAc,CAAA;AAmBrB,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,OAAO,CAAA;IACf,CAAC,EAAE,OAAO,CAAA;IACV,GAAG,EAAE,QAAQ,CAAA;IACb,KAAK,EAAE,QAAQ,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC,UAAU,CAAA;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,cAAc,CAAA;IACpB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAID,UAAU,aAAa;IACrB,WAAW,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA;IACjD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AA6CD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA6ClE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM;;qBA0BjB,MAAM,QAAQ,MAAM,WAAW,MAAM,QAAQ,aAAa,KAAG,OAAO;sBA0D7D,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,OAAO,KAAG,OAAO,CAAC,OAAO,CAAC;sBAgDxD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,OAAO,KAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"pipelines.d.ts","sourceRoot":"","sources":["../../src/tm/pipelines.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAG1C,OAAO,EAAgE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACpH,OAAO,EAA0C,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAIL,iBAAiB,EAClB,MAAM,cAAc,CAAA;AAmBrB,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,OAAO,CAAA;IACf,CAAC,EAAE,OAAO,CAAA;IACV,GAAG,EAAE,QAAQ,CAAA;IACb,KAAK,EAAE,QAAQ,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC,UAAU,CAAA;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,cAAc,CAAA;IACpB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAID,UAAU,aAAa;IACrB,WAAW,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAA;IACjD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AA6CD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA6ClE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM;;qBA0BjB,MAAM,QAAQ,MAAM,WAAW,MAAM,QAAQ,aAAa,KAAG,OAAO;sBA0D7D,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,OAAO,KAAG,OAAO,CAAC,OAAO,CAAC;sBAgDxD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,OAAO,KAAG,OAAO,CAAC,OAAO,CAAC;sBAkExD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,OAAO,KAAG,OAAO,CAAC,OAAO,CAAC;uBA8CvD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,OAAO,KAAG,OAAO,CAAC,OAAO,CAAC;;EAiH1F;AAED,kFAAkF;AAClF,MAAM,MAAM,WAAW,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA"}
|
package/dist/tm/pipelines.js
CHANGED
|
@@ -310,6 +310,21 @@ export function buildPipelines(deps) {
|
|
|
310
310
|
return tmError(tool, "client", unwrapped.message);
|
|
311
311
|
const content = extractText(unwrapped.data);
|
|
312
312
|
const matchLines = content ? content.split(/\r?\n/).filter((l) => l.trim()).length : 0;
|
|
313
|
+
if (!matchLines) {
|
|
314
|
+
// A bare empty result reads as "the search is broken", and the agent
|
|
315
|
+
// then re-runs it a wider way or concludes the opposite of the truth
|
|
316
|
+
// (live: a 0-hit search the model called a tool failure). 0 is an
|
|
317
|
+
// ANSWER, so print it as one — with the scope it applies to.
|
|
318
|
+
// …and a widening hint ONLY when the caller narrowed it — telling a
|
|
319
|
+
// root-wide search to drop `path` is noise that costs a round.
|
|
320
|
+
const scopeNote = requested
|
|
321
|
+
? `\n本次范围由 path="${shorten(requested, 80)}" 限定——要搜整个工作区就去掉 path 再试一次。`
|
|
322
|
+
: "";
|
|
323
|
+
return govern(stepId, tool, `(0 命中)pattern="${pattern}" · 范围=${shorten(scopeDir, 120)}${scopeNote}\n这只表示"在该目录及其子目录里没有匹配",不证明整个仓库没有:这是正则,换写法常能救回来([Aa]rk 同时命中 Ark/ark),或直接 tm_read 读你怀疑的那个文件。`, {
|
|
324
|
+
contentType: "text",
|
|
325
|
+
clue: `pattern=${shorten(pattern, 60)}, 命中 0 行, dir=${shorten(scopeDir, 80)}`,
|
|
326
|
+
});
|
|
327
|
+
}
|
|
313
328
|
return govern(stepId, tool, content, {
|
|
314
329
|
contentType: detectContentType(content),
|
|
315
330
|
clue: `pattern=${shorten(pattern, 60)}, 命中 ${matchLines} 行, dir=${shorten(scopeDir, 80)}`,
|
|
@@ -345,8 +360,15 @@ export function buildPipelines(deps) {
|
|
|
345
360
|
// workspace all session.
|
|
346
361
|
const cwd = ctxDir(ctx);
|
|
347
362
|
const output = await runShellCommand(deps.$, command, cwd);
|
|
348
|
-
|
|
349
|
-
|
|
363
|
+
// Empty stdout used to come back as an empty result — indistinguishable
|
|
364
|
+
// from "the tool never ran", so the model re-issued the command or
|
|
365
|
+
// concluded the tool was broken (live: a `-Skip 168` on a file PowerShell
|
|
366
|
+
// decodes as 168 lines, where the honest answer is "0 行输出").
|
|
367
|
+
const text = output.trim() === ""
|
|
368
|
+
? `(命令执行完成,stdout 为空 = 0 行输出 · cwd=${shorten(cwd, 120)})\n空输出是命令给出的答案,不是工具失败。若你预期有内容:先核对相对路径是按上面的 cwd 解析的;读文件内容请用 tm_read——Windows PowerShell 5.1 的默认解码口径与 tm_read/tm_grep 不一致,含中文的 UTF-8 文件在它眼里行数可能更少,按行取片段时这会直接骗到你。`
|
|
369
|
+
: output;
|
|
370
|
+
return govern(stepId, tool, text, {
|
|
371
|
+
contentType: detectContentType(text),
|
|
350
372
|
clue: `cmd=${shorten(command, 60)}, dir=${shorten(cwd, 80)}`,
|
|
351
373
|
});
|
|
352
374
|
}
|