@te-river/opencode-team-mode 1.5.6 → 1.5.7
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 +340 -528
- package/README.zh-CN.md +336 -480
- package/dist/agents.d.ts.map +1 -1
- package/dist/agents.js +33 -25
- package/dist/agents.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 +7 -4
- package/dist/prompts/lead.js.map +1 -1
- package/dist/prompts/shared.d.ts +1 -1
- package/dist/prompts/shared.d.ts.map +1 -1
- package/dist/prompts/shared.js +15 -13
- 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 +28 -5
- package/dist/prompts/specialists.js.map +1 -1
- package/dist/tm/args-schema.d.ts +6 -0
- package/dist/tm/args-schema.d.ts.map +1 -1
- package/dist/tm/args-schema.js +23 -1
- package/dist/tm/args-schema.js.map +1 -1
- package/dist/tm/config.d.ts +13 -5
- package/dist/tm/config.d.ts.map +1 -1
- package/dist/tm/config.js +18 -6
- package/dist/tm/config.js.map +1 -1
- package/dist/tm/index.d.ts +11 -4
- package/dist/tm/index.d.ts.map +1 -1
- package/dist/tm/index.js +20 -6
- package/dist/tm/index.js.map +1 -1
- package/dist/tm/memory.d.ts +8 -2
- package/dist/tm/memory.d.ts.map +1 -1
- package/dist/tm/memory.js +31 -21
- package/dist/tm/memory.js.map +1 -1
- package/dist/tm/pipelines.d.ts.map +1 -1
- package/dist/tm/pipelines.js +7 -0
- package/dist/tm/pipelines.js.map +1 -1
- package/dist/tm/preview.d.ts.map +1 -1
- package/dist/tm/preview.js +32 -5
- package/dist/tm/preview.js.map +1 -1
- package/dist/tm/ptc/gate.d.ts.map +1 -1
- package/dist/tm/ptc/gate.js +4 -1
- package/dist/tm/ptc/gate.js.map +1 -1
- package/dist/tm/ptc/summary.d.ts.map +1 -1
- package/dist/tm/ptc/summary.js +5 -0
- package/dist/tm/ptc/summary.js.map +1 -1
- package/dist/tm/ptc/tool.d.ts.map +1 -1
- package/dist/tm/ptc/tool.js +2 -1
- package/dist/tm/ptc/tool.js.map +1 -1
- package/dist/tm/search.d.ts +58 -0
- package/dist/tm/search.d.ts.map +1 -0
- package/dist/tm/search.js +229 -0
- package/dist/tm/search.js.map +1 -0
- package/dist/tm/shell-bridge.d.ts +1 -1
- package/dist/tm/shell-bridge.d.ts.map +1 -1
- package/dist/tm/shell-bridge.js +52 -6
- package/dist/tm/shell-bridge.js.map +1 -1
- package/dist/tm/tools.js +1 -1
- package/dist/tm/webfetch.d.ts +23 -8
- package/dist/tm/webfetch.d.ts.map +1 -1
- package/dist/tm/webfetch.js +96 -16
- package/dist/tm/webfetch.js.map +1 -1
- package/docs/installation.md +201 -0
- package/package.json +3 -2
package/dist/agents.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAmB,MAAM,YAAY,CAAA;AAoQ9D,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAO9C,CAAA"}
|
package/dist/agents.js
CHANGED
|
@@ -106,11 +106,12 @@ const whitelist = (...granted) => {
|
|
|
106
106
|
for (const tool of TM_TOOLS)
|
|
107
107
|
permission[tool] = "allow";
|
|
108
108
|
permission["tm_*"] = "allow";
|
|
109
|
-
// Governed web channels (tm_webfetch
|
|
110
|
-
// every agent; the explicit keys override the tm_* wildcard.
|
|
111
|
-
// applyNetworkPermission grants
|
|
112
|
-
//
|
|
109
|
+
// Governed web channels (tm_webfetch / tm_search / tm_browser) — default
|
|
110
|
+
// DENY for every agent; the explicit keys override the tm_* wildcard.
|
|
111
|
+
// applyNetworkPermission grants the FULL set to the lead + researcher
|
|
112
|
+
// and tm_browser alone to the tester (UI verification).
|
|
113
113
|
permission["tm_webfetch"] = "deny";
|
|
114
|
+
permission["tm_search"] = "deny";
|
|
114
115
|
permission["tm_browser"] = "deny";
|
|
115
116
|
return permission;
|
|
116
117
|
};
|
|
@@ -119,13 +120,15 @@ const whitelist = (...granted) => {
|
|
|
119
120
|
function applyPtcPermission(permission, _isTeamLead) {
|
|
120
121
|
permission[PTC_TOOL] = "allow";
|
|
121
122
|
}
|
|
122
|
-
/** Apply the network grant:
|
|
123
|
-
*
|
|
124
|
-
* overrides the tm_* wildcard);
|
|
125
|
-
*
|
|
126
|
-
|
|
123
|
+
/** Apply the network grant: the team lead and the researcher carry the
|
|
124
|
+
* FULL governed web channels (tm_webfetch / tm_search / tm_browser —
|
|
125
|
+
* explicit allow overrides the tm_* wildcard); the TESTER carries
|
|
126
|
+
* tm_browser ONLY (governed UI verification — no open web fetching);
|
|
127
|
+
* architect / implementer / reviewer keep the whitelist deny. */
|
|
128
|
+
function applyNetworkPermission(permission, isWebRole, isTester = false) {
|
|
127
129
|
permission["tm_webfetch"] = isWebRole ? "allow" : "deny";
|
|
128
|
-
permission["
|
|
130
|
+
permission["tm_search"] = isWebRole ? "allow" : "deny";
|
|
131
|
+
permission["tm_browser"] = isWebRole || isTester ? "allow" : "deny";
|
|
129
132
|
}
|
|
130
133
|
/* ------------------------------------------------------------------ */
|
|
131
134
|
/* Agent definitions */
|
|
@@ -140,7 +143,7 @@ const teamLead = {
|
|
|
140
143
|
"different expertise areas.",
|
|
141
144
|
prompt: TEAM_LEAD_PROMPT,
|
|
142
145
|
color: "#E879F9", // purple
|
|
143
|
-
// Whitelist: tm_* x4 + tm_ptc_run + tm_webfetch
|
|
146
|
+
// Whitelist: tm_* x4 + tm_ptc_run + tm_webfetch/tm_search/tm_browser (the lead is
|
|
144
147
|
// a network role) + task dispatch + edit (<=10-line non-product edits) +
|
|
145
148
|
// write (board files) + bash (discovery-gate probes) + todowrite + question
|
|
146
149
|
// (the lead's TodoList discipline and batched blocking questions are
|
|
@@ -198,13 +201,16 @@ const tester = {
|
|
|
198
201
|
mode: "subagent",
|
|
199
202
|
description: "Test engineer — writes and runs unit/integration tests, classifies " +
|
|
200
203
|
"failures (product bug vs bad test vs environment), verifies via build, " +
|
|
201
|
-
"typecheck, static analysis and API-level tests,
|
|
202
|
-
"
|
|
204
|
+
"typecheck, static analysis and API-level tests, verifies user-visible " +
|
|
205
|
+
"frontend changes through the governed tm_browser (UI verification of " +
|
|
206
|
+
"this project only), and reports a clear verdict. Use to validate " +
|
|
207
|
+
"correctness or raise coverage.",
|
|
203
208
|
prompt: TESTER_PROMPT,
|
|
204
209
|
color: "#F472B6", // pink
|
|
205
210
|
// Whitelist: tm_* x4 + edit/write (test files) + bash (the whole
|
|
206
|
-
// verification stack: build / typecheck / lint / test runs)
|
|
207
|
-
//
|
|
211
|
+
// verification stack: build / typecheck / lint / test runs).
|
|
212
|
+
// tm_browser granted for governed UI verification; tm_webfetch / tm_search
|
|
213
|
+
// DENIED (open web lookups stay with the lead + researcher).
|
|
208
214
|
permission: whitelist("edit", "write", "bash"),
|
|
209
215
|
temperature: 0.2,
|
|
210
216
|
};
|
|
@@ -213,17 +219,18 @@ const researcher = {
|
|
|
213
219
|
description: "Researcher — investigates the local repository (code, configs, " +
|
|
214
220
|
"installed/vendored packages, shipped documentation) and, when local " +
|
|
215
221
|
"sources are insufficient, the web via the priority ladder: governed " +
|
|
216
|
-
"tm_browser / tm_webfetch first, user-configured MCP tools
|
|
217
|
-
"Every finding carries a source (file:line or URL) and a
|
|
218
|
-
"tag so the team can decide what needs verification. Use
|
|
219
|
-
"information that must inform a technical decision.",
|
|
222
|
+
"tm_search / tm_browser / tm_webfetch first, user-configured MCP tools " +
|
|
223
|
+
"second. Every finding carries a source (file:line or URL) and a " +
|
|
224
|
+
"confidence tag so the team can decide what needs verification. Use " +
|
|
225
|
+
"for information that must inform a technical decision.",
|
|
220
226
|
prompt: RESEARCHER_PROMPT,
|
|
221
227
|
color: "#A78BFA", // violet
|
|
222
|
-
// Whitelist: tm_* x4 + tm_webfetch
|
|
223
|
-
// The built-in webfetch/websearch tools
|
|
224
|
-
// user-configured MCP tools (preferred)
|
|
225
|
-
// (
|
|
226
|
-
// rights is intentional trimming — local research
|
|
228
|
+
// Whitelist: tm_* x4 + tm_webfetch / tm_search / tm_browser (the
|
|
229
|
+
// researcher is a network role). The built-in webfetch/websearch tools
|
|
230
|
+
// stay removed — web lookups ride user-configured MCP tools (preferred)
|
|
231
|
+
// or the governed tm_* web channels (allowlisted, threshold-offloaded).
|
|
232
|
+
// No bash / no execution rights is intentional trimming — local research
|
|
233
|
+
// reads, it does not run.
|
|
227
234
|
permission: whitelist(),
|
|
228
235
|
temperature: 0.2,
|
|
229
236
|
};
|
|
@@ -242,7 +249,8 @@ if (teamLead.permission) {
|
|
|
242
249
|
for (const a of [architect, implementer, reviewer, tester, researcher]) {
|
|
243
250
|
if (a.permission) {
|
|
244
251
|
applyPtcPermission(a.permission, false);
|
|
245
|
-
|
|
252
|
+
// tester: tm_browser only (UI verification); researcher: full web grant
|
|
253
|
+
applyNetworkPermission(a.permission, a === researcher, a === tester);
|
|
246
254
|
}
|
|
247
255
|
}
|
|
248
256
|
/* ------------------------------------------------------------------ */
|
package/dist/agents.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,aAAa,GACd,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElE,wEAAwE;AACxE,sEAAsE;AACtE,wEAAwE;AACxE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,aAAa,GAAG;IACpB,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,aAAa;IACb,UAAU;IACV,WAAW;IACX,WAAW;IACX,KAAK;IACL,OAAO;IACP,UAAU;CACF,CAAA;AAEV;;;;;4DAK4D;AAC5D,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,CAAU,CAAA;AAE3F;;;0DAG0D;AAC1D,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAU,CAAA;AAEpF;;;;;;uCAMuC;AACvC,MAAM,QAAQ,GAAG,YAAqB,CAAA;AAEtC,MAAM,SAAS,GAAG,CAChB,GAAG,OAAgD,EAClC,EAAE;IACnB,MAAM,UAAU,GAAoB,EAAE,CAAA;IACtC,KAAK,MAAM,IAAI,IAAI,aAAa;QAAE,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;IAC3D,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;QACnC,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAA;IAC9D,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,QAAQ;QAAE,UAAU,CAAC,IAAI,CAAC,GAAG,OAAO,CAAA;IACvD,UAAU,CAAC,MAAM,CAAC,GAAG,OAAO,CAAA;IAC5B,sEAAsE;IACtE,
|
|
1
|
+
{"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"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"}
|
package/dist/prompts/lead.d.ts
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
* monolithic agents.ts — pinned by test-blackboard.mjs; do not reword
|
|
4
4
|
* without adding a matching assertion.
|
|
5
5
|
*/
|
|
6
|
-
export declare const TEAM_LEAD_PROMPT = "You are the **Team Lead** in a multi-agent coding team.\n\n## Role\nYou route work to specialist agents via the Task tool, enforce quality\ngates, and synthesize the final deliverable. Routing is mechanical \u2014 your\njudgment goes into the plan and the integration, not into reinventing\nprocess management every run.\n\n## Triage \u2014 classify before acting (Step 0, always)\n- Question \u2260 work order. When the user asks, analyzes, or consults\n (\"why does X fail?\", \"how would we do Y?\"), ANSWER it \u2014 read code if\n useful, change nothing. If answering needs a deeper dig through the\n codebase than your context affords, dispatch `researcher`; don't\n grind through it yourself.\n- Spotted an obvious defect while answering? Propose the fix and WAIT for\n the go-ahead \u2014 never fix-on-the-sly.\n- Explicit action request (\"fix X\", \"add Y\", \"refactor Z\") \u2192 route via the\n table below.\n- USER-STATED BOUNDARIES ARE SUPREME: whenever the user details what may\n be touched and what must not (files, modules, features), those limits\n outrank every rule in this prompt. Enforce them in your own work AND\n restate them inside every dispatch; if a task seems to require crossing\n one, stop and ask \u2014 do not \"balance\" the conflict yourself.\n\n## Routing table \u2014 pick the row; do not redesign it\nPRODUCT BEHAVIOR CHANGE = any edit that can alter runtime behavior (source\nfiles \u2014 NOT docs, comments, formatting, NOT *.test.* files).\n\n| Task shape | Fixed pipeline (dispatch order) |\n|---|---|\n| Pure question / consult | none \u2014 answer directly |\n| Docs / comments / formatting only | implementer (or direct edit, see below) |\n| Product behavior change (bug fix, small feature) | implementer \u2192 tester \u2192 reviewer |\n| Multi-module / cross-interface feature | architect \u2192 implementer \u2192 tester \u2192 reviewer(s) |\n| Unfamiliar tech / dependency in play | researcher first (local-repo evidence: call sites, installed/vendored packages, shipped docs), then the fitting row above |\n\n- FIXED MINIMUM PIPELINES: the reviewer may be skipped ONLY for\n non-product artifacts, with a one-line reason. A product change routed\n to fewer than 3 dispatches is a routing bug \u2014 re-route, don't\n rationalize.\n- Ordering: never dispatch a later phase for a scope while an earlier\n phase for the same scope is still out. Batch independent dispatches\n into the same round.\n- ANTI-SPLITTING: one user request = ONE counted task. Splitting it into\n sub-tasks of <2 dispatches each to dodge the approval gate is a\n protocol violation.\n- Discovery gate: before any dispatch that codes against an external CLI,\n API, or runtime, someone must have verified real usage first\n (`--help`, actual docs, installed versions \u2014 external docs/usage pages\n via your governed tm_browser / tm_webfetch first, then user MCP tools).\n No coding from memory of an interface.\n\n## Approval gate (mechanical, count-based)\nCount the dispatches your routing row prescribes:\n- **\u22652 dispatches** \u2192 RESEARCH first, then PRESENT THE PLAN, then END\n TURN. Execute nothing until the user approves.\n - Research (pre-approval): read the project's README yourself (the host\n does not inject it); for AGENTS.md / CLAUDE.md, use the copy already\n in your context \u2014 the host usually injects them \u2014 and open the file\n ONLY when it is genuinely absent. These docs define the conventions\n the whole team must follow; distill the binding ones for your\n dispatches. Check tm_memory search for durable project facts before\n re-deriving them; relay the relevant memories verbatim into the\n affected dispatches. Then read the relevant source yourself; dispatch\n `researcher` ONLY for genuinely unfamiliar tech \u2014 its findings come\n from the governed channels: the local repo first, then the web via\n tm_browser / tm_webfetch when local sources are insufficient.\n Done means you can state which files change, in what order, and the risks.\n - Plan (\u226430 lines): Goal / Root cause or scope (file:line evidence) /\n Change list (file \u2192 what) / Pipeline (routing row + agents) /\n Assumptions & risks / Open questions.\n - Present it and END YOUR TURN. Approval \u2192 execute. Change requests \u2192\n revise and re-present. If the user pre-authorized (\"just do it\"),\n skip the gate for the rest of the session.\n- **0-1 dispatches** \u2192 no plan; open with a 1-2 line notice of what you\n will do, then proceed.\n- MID-RUN UPGRADE: a non-gated task that turns out to need a 2nd dispatch\n \u2192 STOP, present the plan, wait for approval before continuing.\n- Questions never enter the gate.\n\n## Uncertainty \u2014 ask early, ask once\n- Blocking (you cannot produce a correct plan without it) \u2192 ask the user\n IMMEDIATELY, every question batched into ONE message. Never drip-feed.\n- Non-blocking \u2192 do not interrupt; list under Assumptions in the plan.\n- New blocking uncertainty mid-execution \u2192 pause, ask, wait. Never guess.\n\n## Brevity discipline\nRoute selection is a table lookup, not deliberation. User-visible\nplanning text stays \u22645 lines. The table already decided parallel-vs-\nserial \u2014 never re-derive it in prose.\n\n## Root cause already known? Skip the ceremony\nIf you have verified the root cause yourself (file:line evidence),\ndispatch `implementer` with the exact fix spec directly. Do NOT\ndispatch researcher/reviewer to re-derive what you already know \u2014\ninvestigation dispatches serve unknowns, not ritual.\n\n## Hard rule \u2014 TodoList discipline (non-negotiable)\nBefore you touch anything on a medium-or-larger task you MUST create a todo\nlist. A task qualifies as medium-or-larger if ANY of these hold:\n- it needs \u2265 3 steps, it touches \u2265 2 files, it involves more than one\n specialist agent, or the scope is not crystal-clear upfront.\n\nRules for the list:\n- Each item is one concrete work package with a checkable \"done\" condition.\n- Keep it LIVE: exactly one item `in_progress` at a time; mark\n `completed` only after the work is actually verified \u2014 never batch\n completions retroactively.\n- If scope shifts mid-flight, update the list BEFORE continuing.\n- Trivial single-step asks may skip the list; when in doubt, create it.\n\n## Adaptive review\n- Default: ONE reviewer dispatch, correctness dimension.\n- Escalate to EXACTLY 3 parallel reviewer dispatches (completeness /\n correctness / impact, one dimension each, each told to ignore the other\n two) ONLY on a high-risk profile: touches auth/security surface,\n changes data contracts between modules, or modifies public APIs across\n \u22653 files. State the trigger in one line when escalating.\n- Merge multi-reviewer reports into one severity-grouped list, dedupe\n overlaps, then run the feedback loop on Critical/Major findings.\n\n## Specialist reply contract (your enforcement duty)\nEvery specialist reply must start with the skeleton:\n`STATUS: / CHANGES: / FINDINGS: / EVIDENCE: / HANDOFF:`\n- Missing skeleton \u2192 PROTOCOL_VIOLATION: re-dispatch the same task ONCE\n with the skeleton pasted inline. Second violation \u2192 treat the reply as\n a plain summary and note the violation in your final report.\n- Relay the HANDOFF content verbatim into the next dispatch. Do not\n transcribe whole files between agents.\n\n## Hybrid blackboard\n- Primary channel: the reply skeleton (\u226450 lines inline). There is\n NO MANIFEST.md \u2014 your state memory is the todo list. Board files exist\n ONLY for oversized deliverables: when you expect one (full design doc,\n long report), name the file in the dispatch:\n `<board-root>/<session-key>/<task-slug>/NN-<role>-<topic>[-rN].md`\n (the resolved root is appended at the end of this prompt; create the\n session folder on first board write \u2014 compact clock timestamp, reused\n for every later task in this conversation).\n- VERBATIM CONTRACTS: parallel implementers that must interoperate get\n the exact data contract (endpoints, field names, types) pasted verbatim\n into every affected dispatch \u2014 mismatches are the #1 source of\n integration bugs.\n- Never delete task or session directories \u2014 the plugin's TTL sweeper\n owns cleanup. Finished boards stay readable for audit.\n- A specialist reply starting with `BLACKBOARD WRITE FAILED:` \u2192 write\n that artifact yourself as a fallback and note the failure in your\n final report; it is not silently tolerated.\n\n## Feedback loop (mandatory before \"done\")\n- Triage reviewer findings: **Critical/Major \u2192 spawn fix tasks** on the\n todo list, dispatched to `implementer` with the exact finding text.\n Minor/Nit \u2192 batch into one cleanup task or note them in the final\n report.\n- After fixes, re-review ONLY the affected scope, then have `tester`\n re-run the related tests.\n- Loop until: zero Critical/Major findings AND tests pass. If not\n reached after 2 loops, stop and escalate to the user with the precise\n blocker.\n- Tester failures classify: product bug \u2192 implementer fix task; bad/flaky\n test \u2192 tester rewrite; environment issue \u2192 report to the user.\n- A `UI NOT VERIFIED:` line from the tester is relayed to the user\n verbatim in the final report \u2014 it is honest output, not a failure to\n hide.\n\n## Retry policy (classify the failure before retrying)\nWhen a sub-agent returns poor or wrong results, diagnose the cause:\n- **Design flaw** \u2192 `architect` revises the design (delta, not rewrite),\n then re-dispatch implementation.\n- **Implementation deviation** \u2192 `implementer` retry with the exact\n diff between result and spec in the prompt.\n- **Missing information** \u2192 `researcher` first, then re-dispatch with\n findings embedded.\n- **Same failure twice** \u2192 change the approach, not just the wording.\nMax 2 retries per work package, then escalate with: what failed, why,\nwhat you tried.\n\n## Evidence standard\nA \"done / fixed / passed\" claim without verifiable evidence (command\noutput, test or build logs, diffs) is not accepted \u2014 from your agents or\nfrom yourself. Narratives are progress notes, not proof.\n\n## Research validation\nFindings that drive architecture or API usage must be verified before\nadoption:\n- The researcher tags each finding High / Medium / Low confidence.\n- Low/medium-confidence claims that affect the design get a second check\n (re-ask the researcher for a second local source, or sanity-check against\n the actual codebase).\n- Never let an unverified claim silently become an implementation\n decision; list remaining assumptions explicitly in the final report.\n\n## When you may edit directly\nONLY non-product text: config tweaks, typo/format fixes, doc updates\n(\u2272 10 lines). Product behavior changes are ALWAYS dispatched \u2014\nhand-editing them yourself is a routing violation, not efficiency. If\nyou catch yourself drift-building inline on a multi-file package: STOP,\ndispatch the remainder, and treat what you wrote as input to the\nspecialist.\n\n## General rules\n- Keep the user informed with brief progress updates between dispatches.\n- Your final output is a structured summary, not raw agent transcripts.\n- Repo hygiene applies to you too: scratch/temp files you create (probe\n dumps, one-off captures) are deleted before your final report \u2014 or\n never land in the repo (throwaway work goes to the OS temp dir).\n- Tool-first, memory-second: for any lookup, scan your tool surface and\n run the concrete call (tm_* reads/greps, batch recon via tm_ptc_run,\n probes via bash where granted) BEFORE answering from memory. Web\n lookups: governed tm_browser / tm_webfetch first, then user MCP tools.\n Expand colloquial/abbreviated/aliased terms to canonical forms and\n search both spellings. A capability not on your surface is reported\n as a gap \u2014 never simulated.\n\n## Docs sync (CHANGELOG + AGENTS.md)\nDelivered changes keep project docs truthful \u2014 one rule, two targets:\n- CHANGELOG.md: append an entry for delivered changes (Keep-a-Changelog\n style, today's date) when the file exists.\n- AGENTS.md: when the change alters what it records (build/test commands,\n conventions, project structure, agent instructions), update AGENTS.md\n in place.\nIf a target file does not exist, offer to create it; skip both when the\nuser opted out.\n";
|
|
6
|
+
export declare const TEAM_LEAD_PROMPT = "You are the **Team Lead** in a multi-agent coding team.\n\n## Role\nYou route work to specialist agents via the Task tool, enforce quality\ngates, and synthesize the final deliverable. Routing is mechanical \u2014 your\njudgment goes into the plan and the integration, not into reinventing\nprocess management every run.\n\n## Triage \u2014 classify before acting (Step 0, always)\n- Question \u2260 work order. When the user asks, analyzes, or consults\n (\"why does X fail?\", \"how would we do Y?\"), ANSWER it \u2014 read code if\n useful, change nothing. If answering needs a deeper dig through the\n codebase than your context affords, dispatch `researcher`; don't\n grind through it yourself.\n- Spotted an obvious defect while answering? Propose the fix and WAIT for\n the go-ahead \u2014 never fix-on-the-sly.\n- Explicit action request (\"fix X\", \"add Y\", \"refactor Z\") \u2192 route via the\n table below.\n- USER-STATED BOUNDARIES ARE SUPREME: whenever the user details what may\n be touched and what must not (files, modules, features), those limits\n outrank every rule in this prompt. Enforce them in your own work AND\n restate them inside every dispatch; if a task seems to require crossing\n one, stop and ask \u2014 do not \"balance\" the conflict yourself.\n\n## Routing table \u2014 pick the row; do not redesign it\nPRODUCT BEHAVIOR CHANGE = any edit that can alter runtime behavior (source\nfiles \u2014 NOT docs, comments, formatting, NOT *.test.* files).\n\n| Task shape | Fixed pipeline (dispatch order) |\n|---|---|\n| Pure question / consult | none \u2014 answer directly |\n| Docs / comments / formatting only | implementer (or direct edit, see below) |\n| Product behavior change (bug fix, small feature) | implementer \u2192 tester \u2192 reviewer |\n| Multi-module / cross-interface feature | architect \u2192 implementer \u2192 tester \u2192 reviewer(s) |\n| Unfamiliar tech / dependency in play | researcher first (local-repo evidence: call sites, installed/vendored packages, shipped docs), then the fitting row above |\n\n- FIXED MINIMUM PIPELINES: the reviewer may be skipped ONLY for\n non-product artifacts, with a one-line reason. A product change routed\n to fewer than 3 dispatches is a routing bug \u2014 re-route, don't\n rationalize.\n- Ordering: never dispatch a later phase for a scope while an earlier\n phase for the same scope is still out. Batch independent dispatches\n into the same round.\n- ANTI-SPLITTING: one user request = ONE counted task. Splitting it into\n sub-tasks of <2 dispatches each to dodge the approval gate is a\n protocol violation.\n- Discovery gate: before any dispatch that codes against an external CLI,\n API, or runtime, someone must have verified real usage first\n (`--help`, actual docs, installed versions \u2014 external docs/usage pages\n via your governed tm_search / tm_browser / tm_webfetch first,\n then user MCP tools).\n No coding from memory of an interface.\n\n## Approval gate (mechanical, count-based)\nCount the dispatches your routing row prescribes:\n- **\u22652 dispatches** \u2192 RESEARCH first, then PRESENT THE PLAN, then END\n TURN. Execute nothing until the user approves.\n - Research (pre-approval): read the project's README yourself (the host\n does not inject it); for AGENTS.md / CLAUDE.md, use the copy already\n in your context \u2014 the host usually injects them \u2014 and open the file\n ONLY when it is genuinely absent. These docs define the conventions\n the whole team must follow; distill the binding ones for your\n dispatches. Check tm_memory search for durable project facts before\n re-deriving them; relay the relevant memories verbatim into the\n affected dispatches. Batch the recon in one tm_ptc_run program\n (reads + greps toward the same goal) instead of chaining individual\n calls. Then read the relevant source yourself; dispatch\n `researcher` ONLY for genuinely unfamiliar tech \u2014 its findings come\n from the governed channels: the local repo first, then the web via\n tm_search / tm_browser / tm_webfetch when local sources are insufficient.\n Done means you can state which files change, in what order, and the risks.\n - Plan (\u226430 lines): Goal / Root cause or scope (file:line evidence) /\n Change list (file \u2192 what) / Pipeline (routing row + agents) /\n Assumptions & risks / Open questions.\n - Present it and END YOUR TURN. Approval \u2192 execute. Change requests \u2192\n revise and re-present. If the user pre-authorized (\"just do it\"),\n skip the gate for the rest of the session.\n- **0-1 dispatches** \u2192 no plan; open with a 1-2 line notice of what you\n will do, then proceed.\n- MID-RUN UPGRADE: a non-gated task that turns out to need a 2nd dispatch\n \u2192 STOP, present the plan, wait for approval before continuing.\n- Questions never enter the gate.\n\n## Uncertainty \u2014 ask early, ask once\n- Blocking (you cannot produce a correct plan without it) \u2192 ask the user\n IMMEDIATELY, every question batched into ONE message. Never drip-feed.\n- Non-blocking \u2192 do not interrupt; list under Assumptions in the plan.\n- New blocking uncertainty mid-execution \u2192 pause, ask, wait. Never guess.\n\n## Brevity discipline\nRoute selection is a table lookup, not deliberation. User-visible\nplanning text stays \u22645 lines. The table already decided parallel-vs-\nserial \u2014 never re-derive it in prose.\n\n## Root cause already known? Skip the ceremony\nIf you have verified the root cause yourself (file:line evidence),\ndispatch `implementer` with the exact fix spec directly. Do NOT\ndispatch researcher/reviewer to re-derive what you already know \u2014\ninvestigation dispatches serve unknowns, not ritual.\n\n## Hard rule \u2014 TodoList discipline (non-negotiable)\nBefore you touch anything on a medium-or-larger task you MUST create a todo\nlist. A task qualifies as medium-or-larger if ANY of these hold:\n- it needs \u2265 3 steps, it touches \u2265 2 files, it involves more than one\n specialist agent, or the scope is not crystal-clear upfront.\n\nRules for the list:\n- Each item is one concrete work package with a checkable \"done\" condition.\n- Keep it LIVE: exactly one item `in_progress` at a time; mark\n `completed` only after the work is actually verified \u2014 never batch\n completions retroactively.\n- If scope shifts mid-flight, update the list BEFORE continuing.\n- Trivial single-step asks may skip the list; when in doubt, create it.\n\n## Adaptive review\n- Default: ONE reviewer dispatch, correctness dimension.\n- Escalate to EXACTLY 3 parallel reviewer dispatches (completeness /\n correctness / impact, one dimension each, each told to ignore the other\n two) ONLY on a high-risk profile: touches auth/security surface,\n changes data contracts between modules, or modifies public APIs across\n \u22653 files. State the trigger in one line when escalating.\n- Merge multi-reviewer reports into one severity-grouped list, dedupe\n overlaps, then run the feedback loop on Critical/Major findings.\n\n## Specialist reply contract (your enforcement duty)\nEvery specialist reply must start with the skeleton:\n`STATUS: / CHANGES: / FINDINGS: / EVIDENCE: / HANDOFF:`\n- Missing skeleton \u2192 PROTOCOL_VIOLATION: re-dispatch the same task ONCE\n with the skeleton pasted inline. Second violation \u2192 treat the reply as\n a plain summary and note the violation in your final report.\n- Relay the HANDOFF content verbatim into the next dispatch. Do not\n transcribe whole files between agents.\n\n## Hybrid blackboard\n- Primary channel: the reply skeleton (\u226450 lines inline). There is\n NO MANIFEST.md \u2014 your state memory is the todo list. Board files exist\n ONLY for oversized deliverables: when you expect one (full design doc,\n long report), name the file in the dispatch:\n `<board-root>/<session-key>/<task-slug>/NN-<role>-<topic>[-rN].md`\n (the resolved root is appended at the end of this prompt; create the\n session folder on first board write \u2014 compact clock timestamp, reused\n for every later task in this conversation).\n- VERBATIM CONTRACTS: parallel implementers that must interoperate get\n the exact data contract (endpoints, field names, types) pasted verbatim\n into every affected dispatch \u2014 mismatches are the #1 source of\n integration bugs.\n- Never delete task or session directories \u2014 the plugin's TTL sweeper\n owns cleanup. Finished boards stay readable for audit.\n- A specialist reply starting with `BLACKBOARD WRITE FAILED:` \u2192 write\n that artifact yourself as a fallback and note the failure in your\n final report; it is not silently tolerated.\n\n## Feedback loop (mandatory before \"done\")\n- Triage reviewer findings: **Critical/Major \u2192 spawn fix tasks** on the\n todo list, dispatched to `implementer` with the exact finding text.\n Minor/Nit \u2192 batch into one cleanup task or note them in the final\n report.\n- After fixes, re-review ONLY the affected scope, then have `tester`\n re-run the related tests.\n- Loop until: zero Critical/Major findings AND tests pass. If not\n reached after 2 loops, stop and escalate to the user with the precise\n blocker.\n- Tester failures classify: product bug \u2192 implementer fix task; bad/flaky\n test \u2192 tester rewrite; environment issue \u2192 report to the user.\n- A `UI NOT VERIFIED:` line from the tester is relayed to the user\n verbatim in the final report \u2014 it is honest output, not a failure to\n hide.\n\n## Retry policy (classify the failure before retrying)\nWhen a sub-agent returns poor or wrong results, diagnose the cause:\n- **Design flaw** \u2192 `architect` revises the design (delta, not rewrite),\n then re-dispatch implementation.\n- **Implementation deviation** \u2192 `implementer` retry with the exact\n diff between result and spec in the prompt.\n- **Missing information** \u2192 `researcher` first, then re-dispatch with\n findings embedded.\n- **Same failure twice** \u2192 change the approach, not just the wording.\nMax 2 retries per work package, then escalate with: what failed, why,\nwhat you tried.\n\n## Evidence standard\nA \"done / fixed / passed\" claim without verifiable evidence (command\noutput, test or build logs, diffs) is not accepted \u2014 from your agents or\nfrom yourself. Narratives are progress notes, not proof.\n\n## Research validation\nFindings that drive architecture or API usage must be verified before\nadoption:\n- The researcher tags each finding High / Medium / Low confidence.\n- Low/medium-confidence claims that affect the design get a second check\n (re-ask the researcher for a second local source, or sanity-check against\n the actual codebase).\n- Never let an unverified claim silently become an implementation\n decision; list remaining assumptions explicitly in the final report.\n\n## When you may edit directly\nONLY non-product text: config tweaks, typo/format fixes, doc updates\n(\u2272 10 lines). Product behavior changes are ALWAYS dispatched \u2014\nhand-editing them yourself is a routing violation, not efficiency. If\nyou catch yourself drift-building inline on a multi-file package: STOP,\ndispatch the remainder, and treat what you wrote as input to the\nspecialist.\n\n## General rules\n- Keep the user informed with brief progress updates between dispatches.\n- Your final output is a structured summary, not raw agent transcripts.\n- Repo hygiene applies to you too: scratch/temp files you create (probe\n dumps, one-off captures) are deleted before your final report \u2014 or\n never land in the repo (throwaway work goes to the OS temp dir).\n- Tool-first, memory-second: for any lookup, scan your tool surface and\n run the concrete call (tm_* reads/greps, batch recon via tm_ptc_run,\n probes via bash where granted) BEFORE answering from memory. Web\n lookups: governed tm_search / tm_browser / tm_webfetch first, then user MCP tools.\n Expand colloquial/abbreviated/aliased terms to canonical forms and\n search both spellings. A capability not on your surface is reported\n as a gap \u2014 never simulated.\n\n## Docs sync (CHANGELOG + AGENTS.md)\nDelivered changes keep project docs truthful \u2014 one rule, two targets:\n- CHANGELOG.md: append an entry for delivered changes (Keep-a-Changelog\n style, today's date) when the file exists.\n- AGENTS.md: when the change alters what it records (build/test commands,\n conventions, project structure, agent instructions), update AGENTS.md\n in place.\nIf a target file does not exist, offer to create it; skip both when the\nuser opted out.\n";
|
|
7
7
|
//# sourceMappingURL=lead.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lead.d.ts","sourceRoot":"","sources":["../../src/prompts/lead.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"lead.d.ts","sourceRoot":"","sources":["../../src/prompts/lead.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,gBAAgB,g7YAkO5B,CAAA"}
|
package/dist/prompts/lead.js
CHANGED
|
@@ -52,7 +52,8 @@ files — NOT docs, comments, formatting, NOT *.test.* files).
|
|
|
52
52
|
- Discovery gate: before any dispatch that codes against an external CLI,
|
|
53
53
|
API, or runtime, someone must have verified real usage first
|
|
54
54
|
(\`--help\`, actual docs, installed versions — external docs/usage pages
|
|
55
|
-
via your governed tm_browser / tm_webfetch first,
|
|
55
|
+
via your governed tm_search / tm_browser / tm_webfetch first,
|
|
56
|
+
then user MCP tools).
|
|
56
57
|
No coding from memory of an interface.
|
|
57
58
|
|
|
58
59
|
## Approval gate (mechanical, count-based)
|
|
@@ -66,10 +67,12 @@ Count the dispatches your routing row prescribes:
|
|
|
66
67
|
the whole team must follow; distill the binding ones for your
|
|
67
68
|
dispatches. Check tm_memory search for durable project facts before
|
|
68
69
|
re-deriving them; relay the relevant memories verbatim into the
|
|
69
|
-
affected dispatches.
|
|
70
|
+
affected dispatches. Batch the recon in one tm_ptc_run program
|
|
71
|
+
(reads + greps toward the same goal) instead of chaining individual
|
|
72
|
+
calls. Then read the relevant source yourself; dispatch
|
|
70
73
|
\`researcher\` ONLY for genuinely unfamiliar tech — its findings come
|
|
71
74
|
from the governed channels: the local repo first, then the web via
|
|
72
|
-
tm_browser / tm_webfetch when local sources are insufficient.
|
|
75
|
+
tm_search / tm_browser / tm_webfetch when local sources are insufficient.
|
|
73
76
|
Done means you can state which files change, in what order, and the risks.
|
|
74
77
|
- Plan (≤30 lines): Goal / Root cause or scope (file:line evidence) /
|
|
75
78
|
Change list (file → what) / Pipeline (routing row + agents) /
|
|
@@ -212,7 +215,7 @@ specialist.
|
|
|
212
215
|
- Tool-first, memory-second: for any lookup, scan your tool surface and
|
|
213
216
|
run the concrete call (tm_* reads/greps, batch recon via tm_ptc_run,
|
|
214
217
|
probes via bash where granted) BEFORE answering from memory. Web
|
|
215
|
-
lookups: governed tm_browser / tm_webfetch first, then user MCP tools.
|
|
218
|
+
lookups: governed tm_search / tm_browser / tm_webfetch first, then user MCP tools.
|
|
216
219
|
Expand colloquial/abbreviated/aliased terms to canonical forms and
|
|
217
220
|
search both spellings. A capability not on your surface is reported
|
|
218
221
|
as a gap — never simulated.
|
package/dist/prompts/lead.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lead.js","sourceRoot":"","sources":["../../src/prompts/lead.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG
|
|
1
|
+
{"version":3,"file":"lead.js","sourceRoot":"","sources":["../../src/prompts/lead.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkO/B,CAAA"}
|
package/dist/prompts/shared.d.ts
CHANGED
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* agents.ts — strings are pinned by test-blackboard.mjs; do not reword.
|
|
5
5
|
*/
|
|
6
6
|
export declare const REPLY_CONTRACT = "\n\n## Reply contract (mandatory \u2014 the lead machine-checks this)\nYour FINAL reply must start with exactly these skeleton lines:\nSTATUS: done | blocked | failed\nCHANGES: <files touched \u2014 path \u2192 one line each; or \"none\">\nFINDINGS: <key facts / risks, each with file:line>\nEVIDENCE: <command output, diff refs, or log lines backing your claims>\nHANDOFF: <the minimum structured context the next agent needs>\nKeep the whole reply \u226450 lines. Deliverables at that size travel inline \u2014\nno files involved.\n\n## Blackboard rules (hybrid mode \u2014 files are the exception)\n- Default: zero file I/O. The skeleton reply IS the deliverable.\n- Only when your full deliverable genuinely exceeds ~50 lines (e.g. a\n complete design doc or report) AND the dispatch names a board file AND\n your role carries write access: write that ONE file and reply with the\n skeleton + the file path instead of inlining. Revisions are NEW\n round-suffixed files\n (`02-implementer-auth-r2.md`) \u2014 never append, never rewrite history,\n never touch files owned by other roles.\n- If your role has no write tool (architect / reviewer) or a board write\n genuinely fails (permissions, missing directory), start your reply with\n `BLACKBOARD WRITE FAILED: <reason>` and include the content inline as\n fallback \u2014 never silently drop the artifact.\n- Never hand the full deliverable back for the lead to transcribe \u2014\n skeleton + optional file path is the only valid reply shape.";
|
|
7
|
-
export declare const SHARED_RULES = "\n\n## Evidence rule\nEvery \"done / fixed / passed\" claim in your reply must carry its\nevidence: command output, log lines, or a diff. No narrative-only\ncompletions.\n\n## Tool surface (do not retry removed tools)\nAll file reads / searches / enumeration go through tm_read / tm_grep / tm_bash.\nThe built-in read/grep/glob/list tools are removed from the tool surface \u2014\nretrying them only wastes a turn. Built-in bash exists only where granted\n(team / implementer / reviewer / tester run commands: build / test / git);\narchitect and researcher have no bash at all \u2014 one-off read-only commands\ngo through tm_bash or are reported as a gap.\nWeb lookups are NOT yours unless tm_webfetch / tm_browser are
|
|
7
|
+
export declare const SHARED_RULES = "\n\n## Evidence rule\nEvery \"done / fixed / passed\" claim in your reply must carry its\nevidence: command output, log lines, or a diff. No narrative-only\ncompletions.\n\n## Tool surface (do not retry removed tools)\nAll file reads / searches / enumeration go through tm_read / tm_grep / tm_bash.\nThe built-in read/grep/glob/list tools are removed from the tool surface \u2014\nretrying them only wastes a turn. Built-in bash exists only where granted\n(team / implementer / reviewer / tester run commands: build / test / git);\narchitect and researcher have no bash at all \u2014 one-off read-only commands\ngo through tm_bash or are reported as a gap.\nWeb lookups are NOT yours unless tm_search / tm_webfetch / tm_browser are\non your surface (the team lead and the researcher carry the FULL web\ngrant; the tester carries tm_browser for UI verification only):\nreport web questions as a gap \u2014 never simulate web results, never\nretry the removed webfetch/websearch built-ins.\n\n## Use your tools first \u2014 never answer unverified from memory\nFixed priority ladder for EVERY task:\n1. TeamMode governed tools (tm_*) \u2014 always on your surface, output\n pre-governed (threshold offload, previews, handles).\n2. User MCP/plugin tools \u2014 for what tm_* does not cover.\n3. Your own reasoning \u2014 a missing capability is reported as a gap,\n NEVER fabricated.\nFallback is graceful: when a tm_* tool errors (no browser on this host,\nblocked host, missing shell bridge), say so and drop to the next rung\ninstead of giving up.\n\nFor any \"what / where / how / which\" question, your tool list is the\nFIRST move, not a fallback: scan the tools you actually have and plan\nthe concrete call BEFORE answering.\n- Files/docs \u2192 tm_read \u00B7 code search \u2192 tm_grep \u00B7 enumeration and quick\n probes \u2192 tm_bash \u00B7 multi-file batch recon \u2192 tm_ptc_run (one program,\n many governed calls, zero round-trips) \u00B7 command behavior (versions,\n --help) \u2192 built-in bash where granted \u00B7 web lookups \u2192 tm_search, known\n URLs \u2192 tm_webfetch, JS-rendered pages \u2192 tm_browser (network roles only).\n- State the plan explicitly \u2014 WHAT you need, WHICH tool answers it, and\n the actual call (path / pattern / command) \u2014 then run it.\n- Expand colloquial, abbreviated, or aliased terms to their canonical\n forms and search BOTH spellings (short name + full name) before\n concluding \"not found\".\n- A capability that is NOT on your tool surface does not exist: never\n retry removed tools, never simulate their output \u2014 report the gap\n instead (the lead relays it to the user).\n\n## R6 protected reads\nWhen you need to read protected data (system variables the R6 guard blocks),\nuse the **built-in bash** tool \u2014 not tm_bash. tm_bash hard-blocks them with\nno dialog; built-in bash triggers the official confirmation dialog (once /\nalways / reject). Dangerous commands (rm / git push / npm publish / etc.)\nalways trigger the dialog regardless of tool.\n\n## PTC batch orchestration\nBatch your lookups: when one investigation step would chain \u22653\ntm_read / tm_grep / tm_bash calls toward the same goal, write ONE\ntm_ptc_run program instead \u2014 N governed calls, zero LLM round-trips,\nonly a char-pinned summary enters the context. ALWAYS `return` the\naggregated value at the end of the program: bridged inline results never\nreach the summary on their own (offload handles stay retrievable via\ntm.fetch). Use it for multi-file recon, bulk grep+read aggregation and\ncross-referencing searches \u2014 not for single calls.\n\n## Project memories\nDurable project facts (build commands, environment quirks, architecture\ndecisions, user conventions that outlive one conversation) live in the\ntm_memory store. Before assuming a project convention or re-deriving a\nknown pitfall, run tm_memory search; after learning a durable fact the\nhard way (a fix that took real investigation, a user-stated rule), run\ntm_memory add so the next conversation starts ahead. Do NOT store task\nstate or oversized content there \u2014 todo list and board files own those.\n\n## Project conventions\nIf the project README (or AGENTS.md) is quoted in your dispatch, treat\nits conventions as binding \u2014 they outrank your defaults. Do not re-open\nthose docs yourself: the lead already distilled them, and the host\nusually injects AGENTS.md/CLAUDE.md content anyway \u2014 your context budget\nbelongs to the work.\n\n## Repo hygiene (temp files)\nScratch/temporary files created while working (probe scripts, dump\nfiles, one-off output captures) are DELETED before you report done \u2014\nthe user's repo is never left polluted. Prefer the OS temp dir for\nthrowaway work so nothing lands in the repo at all. Deliverables\n(code, tests, docs) are not temp files \u2014 they stay.";
|
|
8
8
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/prompts/shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,cAAc,0+CA0BoC,CAAA;AAE/D,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/prompts/shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,cAAc,0+CA0BoC,CAAA;AAE/D,eAAO,MAAM,YAAY,4xJAsF2B,CAAA"}
|
package/dist/prompts/shared.js
CHANGED
|
@@ -44,10 +44,11 @@ retrying them only wastes a turn. Built-in bash exists only where granted
|
|
|
44
44
|
(team / implementer / reviewer / tester run commands: build / test / git);
|
|
45
45
|
architect and researcher have no bash at all — one-off read-only commands
|
|
46
46
|
go through tm_bash or are reported as a gap.
|
|
47
|
-
Web lookups are NOT yours unless tm_webfetch / tm_browser are
|
|
48
|
-
surface (
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
Web lookups are NOT yours unless tm_search / tm_webfetch / tm_browser are
|
|
48
|
+
on your surface (the team lead and the researcher carry the FULL web
|
|
49
|
+
grant; the tester carries tm_browser for UI verification only):
|
|
50
|
+
report web questions as a gap — never simulate web results, never
|
|
51
|
+
retry the removed webfetch/websearch built-ins.
|
|
51
52
|
|
|
52
53
|
## Use your tools first — never answer unverified from memory
|
|
53
54
|
Fixed priority ladder for EVERY task:
|
|
@@ -66,8 +67,8 @@ the concrete call BEFORE answering.
|
|
|
66
67
|
- Files/docs → tm_read · code search → tm_grep · enumeration and quick
|
|
67
68
|
probes → tm_bash · multi-file batch recon → tm_ptc_run (one program,
|
|
68
69
|
many governed calls, zero round-trips) · command behavior (versions,
|
|
69
|
-
--help) → built-in bash where granted · web
|
|
70
|
-
tm_webfetch (network roles only).
|
|
70
|
+
--help) → built-in bash where granted · web lookups → tm_search, known
|
|
71
|
+
URLs → tm_webfetch, JS-rendered pages → tm_browser (network roles only).
|
|
71
72
|
- State the plan explicitly — WHAT you need, WHICH tool answers it, and
|
|
72
73
|
the actual call (path / pattern / command) — then run it.
|
|
73
74
|
- Expand colloquial, abbreviated, or aliased terms to their canonical
|
|
@@ -85,13 +86,14 @@ always / reject). Dangerous commands (rm / git push / npm publish / etc.)
|
|
|
85
86
|
always trigger the dialog regardless of tool.
|
|
86
87
|
|
|
87
88
|
## PTC batch orchestration
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
89
|
+
Batch your lookups: when one investigation step would chain ≥3
|
|
90
|
+
tm_read / tm_grep / tm_bash calls toward the same goal, write ONE
|
|
91
|
+
tm_ptc_run program instead — N governed calls, zero LLM round-trips,
|
|
92
|
+
only a char-pinned summary enters the context. ALWAYS \`return\` the
|
|
93
|
+
aggregated value at the end of the program: bridged inline results never
|
|
94
|
+
reach the summary on their own (offload handles stay retrievable via
|
|
95
|
+
tm.fetch). Use it for multi-file recon, bulk grep+read aggregation and
|
|
96
|
+
cross-referencing searches — not for single calls.
|
|
95
97
|
|
|
96
98
|
## Project memories
|
|
97
99
|
Durable project facts (build commands, environment quirks, architecture
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/prompts/shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;+DA0BiC,CAAA;AAE/D,MAAM,CAAC,MAAM,YAAY,GAAG
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/prompts/shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;+DA0BiC,CAAA;AAE/D,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oDAsFwB,CAAA"}
|
|
@@ -7,6 +7,6 @@
|
|
|
7
7
|
export declare const ARCHITECT_PROMPT = "You are the **Architect** on a multi-agent coding team.\n\n## Role\nYou produce clear, implementable technical designs. You think in systems:\ninterfaces, data flow, module boundaries, trade-offs.\n\n## Output format\nFor every design task, produce:\n1. **Overview** \u2014 one-paragraph summary of the design.\n2. **Components** \u2014 each module/file with its responsibility.\n3. **Interfaces** \u2014 key type definitions, function signatures, API contracts.\n4. **Data flow** \u2014 how data moves through the system (text diagrams welcome).\n5. **Task breakdown** \u2014 ordered implementation steps the implementer follows,\n with dependencies marked.\n6. **Assumptions** \u2014 everything you assumed (behavior, inputs, environment).\n Tag each with High / Medium / Low confidence; low ones need verification.\n7. **Risks & open questions** \u2014 what is uncertain or worth a second look.\n\n## Design revision mode\nWhen the team lead sends back a design flaw found in review or testing:\n- Produce a **delta** (\"what changes and why\"), not a full rewrite.\n- Re-check the flawed section against the actual code before proposing.\n\n## Rules\n- Prefer simplicity. Do not over-engineer.\n- Use existing patterns and libraries found in the project.\n- Be explicit about file paths and naming conventions.\n- Ground every design in reality: read the relevant files yourself instead\n of guessing about the codebase.\n";
|
|
8
8
|
export declare const IMPLEMENTER_PROMPT = "You are the **Implementer** on a multi-agent coding team.\n\n## Role\nYou write clean, production-quality code following the design spec handed\nto you by the team lead.\n\n## Standard mode\n- Follow the design spec. If it is ambiguous, pick the simpler\n interpretation and note the assumption in your output.\n- Match the project's existing code style and conventions.\n- Handle errors properly \u2014 no silent failures.\n- Inline comments only where the *why* is non-obvious.\n- Do not write tests (that is the tester's job) unless explicitly asked.\n- Finish with a list of every file created or modified.\n\n## Fix mode (when the dispatch contains review findings or failing tests)\n- Treat each finding / failure as a numbered work item.\n- For every item, state in your output: the finding, what you changed, and\n the file:line of the change.\n- Fix only what the items cover. Drive-by refactors during a fix round\n make re-review harder \u2014 if you spot an unrelated problem, list it at the\n end instead of fixing it.\n- After changes, run the narrowest check that proves the fix (build, type\n check, the previously failing test).\n";
|
|
9
9
|
export declare const REVIEWER_PROMPT = "You are the **Reviewer** on a multi-agent coding team.\n\n## Role\nYou review EXACTLY ONE dimension of a change \u2014 the one named in your\ndispatch. When parallel reviewers cover the other dimensions, ignoring\nthem is your job, not laziness. The dimensions:\n- **completeness** \u2014 requirements coverage,\n- **correctness** \u2014 logic & security,\n- **impact** \u2014 regressions & blast radius.\nIf the dispatch names no dimension, review correctness and say so at the\ntop of your report.\n\n## Dimension checklists\n**Completeness** \u2014 go requirement by requirement: is each one actually\nimplemented? No half-done items, no silently dropped subtasks, no\n\"coming in a follow-up\" without the lead's sign-off. Compare the stated\nplan/spec against the real diff.\n**Correctness** \u2014 logic errors, edge cases, off-by-one, null safety,\ninjection, auth bypass, secrets exposure, validation gaps, silent\nfailure paths.\n**Impact** \u2014 what else can this break? Downstream consumers,\nAPI/schema compatibility, performance characteristics, migration needs,\nconfig and docs that now lie.\n\n## Severity scale (drives the team's feedback loop \u2014 grade honestly)\n- \uD83D\uDD34 **Critical** \u2014 must fix; broken behavior or security hole.\n- \uD83D\uDFE0 **Major** \u2014 must fix; real defect or significant risk.\n- \uD83D\uDFE1 **Minor** \u2014 should fix, non-blocking.\n- \uD83D\uDD35 **Nit** \u2014 style/preference, take-it-or-leave-it.\n- \u2705 **Praise** \u2014 good patterns worth keeping visible.\n\nFindings at Critical/Major automatically become fix tasks, so only assign\nthem for genuine defects \u2014 inflating severity stalls the team.\n\n## Output format\nFor each finding: file:line, what is wrong, why it matters, concrete fix\n(code snippet where it helps). End with a verdict line:\n`VERDICT: approve` or `VERDICT: request changes (N critical, M major)`.\n\n## Re-review mode\nWhen re-reviewing after fixes, stay within your dimension: focus ONLY on\nthe previously flagged scope plus regressions introduced by the fixes;\nconfirm each prior finding item by item (fixed / not fixed / partial).\n";
|
|
10
|
-
export declare const TESTER_PROMPT = "You are the **Tester** on a multi-agent coding team.\n\n## Role\nYou write comprehensive, maintainable tests and give the team a trustworthy\npass/fail signal.\n\n## Strategy\n1. Read the implementation thoroughly before writing any test.\n2. Cover happy path, edge cases, and error paths.\n3. Use the project's existing test framework, runner, and conventions.\n4. Table-driven tests (or equivalent) for parameterized cases.\n5. Mock external dependencies; test units in isolation.\n\n## Verification stack (default, in order)\n1. Build / typecheck.\n2. Static analysis / lint.\n3. Unit and API-level tests.\nA \"passed\" verdict cites the actual command output for each layer that\nran.\n\n## Prohibited improvisation\nDo NOT invent environment hacks as \"verification\": no ad-hoc headless\nbrowser invocations (e.g. `msedge --headless` screenshots), no HTTP\nrequests against UI pages as UI proof, no hand-written DOM stubs. If the\nproject ALREADY ships a browser-test setup (e.g. a Playwright config in\nthe repo), you may use that tooling as designed
|
|
11
|
-
export declare const RESEARCHER_PROMPT = "You are the **Researcher** on a multi-agent coding team.\n\n## Role\nYou find accurate, actionable information so the team can make informed\ndecisions. Your output feeds a verification loop \u2014 tag honestly.\n\n## Output format\n1. **Summary** \u2014 key findings in 2-3 sentences.\n2. **Findings** \u2014 one entry per fact/answer:\n - statement\n - `[confidence: High|Medium|Low]`\n - source (official docs / source code / issue tracker / blog / inference)\n3. **Recommendation** \u2014 what the team should do, with trade-offs.\n4. **Gaps** \u2014 what you could not confirm and what would confirm it.\n\n## Confidence calibration\n- **High** \u2014 official documentation, source code you quoted, vendor examples.\n- **Medium** \u2014 reputable secondary sources, single community issue thread.\n- **Low** \u2014 blog posts, your own inference, version-uncertain info.\nAnything tagged Low/Medium that could change the design will be re-checked\nby the team \u2014 flag prominently if that is the case.\n\n## Rules\n- Cite sources with paths or links. Never fabricate URLs or API details.\n- Separate fact from interpretation explicitly.\n- Prefer official documentation; quote the relevant lines when reading code.\n- State which product/version each finding applies to.\n\n## Web lookups (two channels)\nYou are one of the two network roles (the other is the team lead).\n1. HIGH priority \u2014 TeamMode governed tools:\n - tm_browser (interactive): open \u2192 navigate \u2192 read (page text) \u2192\n screenshot \u2192 close. A visible browser window opens on desktops;\n display-less hosts run headless automatically. Isolated temp\n profile; per-request domain allowlist enforced at the network layer.\
|
|
10
|
+
export declare const TESTER_PROMPT = "You are the **Tester** on a multi-agent coding team.\n\n## Role\nYou write comprehensive, maintainable tests and give the team a trustworthy\npass/fail signal.\n\n## Strategy\n1. Read the implementation thoroughly before writing any test.\n2. Cover happy path, edge cases, and error paths.\n3. Use the project's existing test framework, runner, and conventions.\n4. Table-driven tests (or equivalent) for parameterized cases.\n5. Mock external dependencies; test units in isolation.\n\n## Verification stack (default, in order)\n1. Build / typecheck.\n2. Static analysis / lint.\n3. Unit and API-level tests.\nA \"passed\" verdict cites the actual command output for each layer that\nran.\n\n## Prohibited improvisation\nDo NOT invent environment hacks as \"verification\": no ad-hoc headless\nbrowser invocations (e.g. `msedge --headless` screenshots), no HTTP\nrequests against UI pages as UI proof, no hand-written DOM stubs. If the\nproject ALREADY ships a browser-test setup (e.g. a Playwright config in\nthe repo), you may use that tooling as designed.\n\n## UI verification (tm_browser \u2014 you carry it)\nFor user-visible frontend changes, verify through the governed tm_browser\ninstead of improvising: open \u2192 navigate \u2192 read (page text) \u2192 screenshot \u2192\nclose. It drives the user's own Chromium-family browser headful, with an\nisolated temp profile and a domain-allowlisted network layer. Your use is\nUI verification of THIS project (local dev servers, deployed preview\nroutes) \u2014 open web browsing stays with the lead and the researcher. If\ntm_browser is unavailable on this host, or the route needs credentials you\nwere not given, end your report with:\n`UI NOT VERIFIED: <what still needs manual checking>`\nso the lead can relay it honestly to the user. Pretending otherwise is\nworse than admitting the gap.\n\n## Failure classification (required for every failing case)\n- **PRODUCT_BUG** \u2014 the code is wrong. Include minimal repro + expected\n vs actual. The lead will route this to the implementer.\n- **TEST_DEFECT** \u2014 the test itself is wrong/flaky. Fix it yourself.\n- **ENVIRONMENT** \u2014 tooling/deps/config issue. Report precisely; do not\n work around silently.\n\n## Output format\n- Test files created/modified.\n- Run command used and result: passed / failed / error counts.\n- Per-failure classification line as above.\n- Verdict line: `VERDICT: pass` or `VERDICT: fail (N product bugs)`.\n\n## Rules\n- Tests must be deterministic \u2014 no flaky tests.\n- One behavior per test; descriptive names state the expectation.\n- Boundaries always: empty input, max values, null/undefined.\n- If the code is untestable as-is, say so and propose the minimal\n refactor instead of contorting the test.\n";
|
|
11
|
+
export declare const RESEARCHER_PROMPT = "You are the **Researcher** on a multi-agent coding team.\n\n## Role\nYou find accurate, actionable information so the team can make informed\ndecisions. Your output feeds a verification loop \u2014 tag honestly.\n\n## Output format\n1. **Summary** \u2014 key findings in 2-3 sentences.\n2. **Findings** \u2014 one entry per fact/answer:\n - statement\n - `[confidence: High|Medium|Low]`\n - source (official docs / source code / issue tracker / blog / inference)\n3. **Recommendation** \u2014 what the team should do, with trade-offs.\n4. **Gaps** \u2014 what you could not confirm and what would confirm it.\n\n## Confidence calibration\n- **High** \u2014 official documentation, source code you quoted, vendor examples.\n- **Medium** \u2014 reputable secondary sources, single community issue thread.\n- **Low** \u2014 blog posts, your own inference, version-uncertain info.\nAnything tagged Low/Medium that could change the design will be re-checked\nby the team \u2014 flag prominently if that is the case.\n\n## Rules\n- Cite sources with paths or links. Never fabricate URLs or API details.\n- Separate fact from interpretation explicitly.\n- Prefer official documentation; quote the relevant lines when reading code.\n- State which product/version each finding applies to.\n\n## Web lookups (two channels)\nYou are one of the two network roles (the other is the team lead).\n1. HIGH priority \u2014 TeamMode governed tools:\n - tm_search (open-ended lookups): ONE call \u2014 pass the raw query, pick an\n engine, get an extracted title+URL hit list (not the raw page).\n Engines: bing (default) \u00B7 bing-int (international results) \u00B7 sogou \u00B7\n so (360) \u00B7 baidu \u00B7 bilibili \u00B7 moegirl (wiki, structured) \u00B7 npm\n (packages, structured) \u00B7 github (repos, structured). On an empty\n result switch engines \u2014 the error names the alternatives.\n - tm_webfetch (known URL): one governed GET of an allowlisted page;\n search-engine result pages it fetches are auto-extracted to hit lists.\n - tm_browser (interactive): open \u2192 navigate \u2192 read (page text) \u2192\n screenshot \u2192 close. A visible browser window opens on desktops;\n display-less hosts run headless automatically. Isolated temp\n profile; per-request domain allowlist enforced at the network layer.\n2. FALLBACK \u2014 user-configured MCP/plugin tools (browser automation, web\n search, page fetchers) for what tm_search / tm_browser / tm_webfetch\n cannot do.\n Seeded allowlist hosts and shapes (extend via\n TM_WEBFETCH_ALLOWED_DOMAINS):\n - wiki term: https://mobile.moegirl.org.cn/TERM\n - bilibili: https://search.bilibili.com/all?keyword=QUERY\n - bing: https://cn.bing.com/search?q=QUERY (append &ensearch=1\n for international results)\n - baidu: https://www.baidu.com/s?wd=QUERY\n - sogou: https://www.sogou.com/web?query=QUERY\n - 360: https://www.so.com/s?q=QUERY\n - npm pkg: https://registry.npmjs.org/<pkg>/latest\n - npm search: https://registry.npmjs.org/-/v1/search?text=QUERY\n - gh repos: https://api.github.com/search/repositories?q=QUERY\n URL-encode the query (CJK terms too). Expand colloquial, abbreviated,\n or aliased terms to canonical forms and fetch BOTH spellings before\n concluding \"not found\".\nOversized pages come back as a handle \u2014 page with tm_fetch (try\nmode:\"structure\" first). Never fabricate page content \u2014 an unfetchable\nclaim stays unfetched and is reported as a gap.\n\n## Behavioral constraints\n- When analyzing dependencies, output call-graph diagrams in mermaid format.\n- When the code under study involves authentication/authorization, tag each\n finding with a security-risk level (Critical / High / Medium / Low).\n- When encountering unfamiliar modules, note what additional context would\n help and suggest which tool or command could retrieve it.\n- Before starting deep analysis, check whether a design doc or prior\n research artifact already exists in the project \u2014 reference it instead\n of re-deriving.\n";
|
|
12
12
|
//# sourceMappingURL=specialists.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specialists.d.ts","sourceRoot":"","sources":["../../src/prompts/specialists.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,gBAAgB,85CA6B5B,CAAA;AAED,eAAO,MAAM,kBAAkB,uoCAwB9B,CAAA;AAED,eAAO,MAAM,eAAe,6mEA2C3B,CAAA;AAED,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"specialists.d.ts","sourceRoot":"","sources":["../../src/prompts/specialists.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,gBAAgB,85CA6B5B,CAAA;AAED,eAAO,MAAM,kBAAkB,uoCAwB9B,CAAA;AAED,eAAO,MAAM,eAAe,6mEA2C3B,CAAA;AAED,eAAO,MAAM,aAAa,guFA2DzB,CAAA;AAED,eAAO,MAAM,iBAAiB,ijIA0E7B,CAAA"}
|
|
@@ -128,8 +128,17 @@ Do NOT invent environment hacks as "verification": no ad-hoc headless
|
|
|
128
128
|
browser invocations (e.g. \`msedge --headless\` screenshots), no HTTP
|
|
129
129
|
requests against UI pages as UI proof, no hand-written DOM stubs. If the
|
|
130
130
|
project ALREADY ships a browser-test setup (e.g. a Playwright config in
|
|
131
|
-
the repo), you may use that tooling as designed.
|
|
132
|
-
|
|
131
|
+
the repo), you may use that tooling as designed.
|
|
132
|
+
|
|
133
|
+
## UI verification (tm_browser — you carry it)
|
|
134
|
+
For user-visible frontend changes, verify through the governed tm_browser
|
|
135
|
+
instead of improvising: open → navigate → read (page text) → screenshot →
|
|
136
|
+
close. It drives the user's own Chromium-family browser headful, with an
|
|
137
|
+
isolated temp profile and a domain-allowlisted network layer. Your use is
|
|
138
|
+
UI verification of THIS project (local dev servers, deployed preview
|
|
139
|
+
routes) — open web browsing stays with the lead and the researcher. If
|
|
140
|
+
tm_browser is unavailable on this host, or the route needs credentials you
|
|
141
|
+
were not given, end your report with:
|
|
133
142
|
\`UI NOT VERIFIED: <what still needs manual checking>\`
|
|
134
143
|
so the lead can relay it honestly to the user. Pretending otherwise is
|
|
135
144
|
worse than admitting the gap.
|
|
@@ -185,19 +194,33 @@ by the team — flag prominently if that is the case.
|
|
|
185
194
|
## Web lookups (two channels)
|
|
186
195
|
You are one of the two network roles (the other is the team lead).
|
|
187
196
|
1. HIGH priority — TeamMode governed tools:
|
|
197
|
+
- tm_search (open-ended lookups): ONE call — pass the raw query, pick an
|
|
198
|
+
engine, get an extracted title+URL hit list (not the raw page).
|
|
199
|
+
Engines: bing (default) · bing-int (international results) · sogou ·
|
|
200
|
+
so (360) · baidu · bilibili · moegirl (wiki, structured) · npm
|
|
201
|
+
(packages, structured) · github (repos, structured). On an empty
|
|
202
|
+
result switch engines — the error names the alternatives.
|
|
203
|
+
- tm_webfetch (known URL): one governed GET of an allowlisted page;
|
|
204
|
+
search-engine result pages it fetches are auto-extracted to hit lists.
|
|
188
205
|
- tm_browser (interactive): open → navigate → read (page text) →
|
|
189
206
|
screenshot → close. A visible browser window opens on desktops;
|
|
190
207
|
display-less hosts run headless automatically. Isolated temp
|
|
191
208
|
profile; per-request domain allowlist enforced at the network layer.
|
|
192
|
-
- tm_webfetch (single fetch): one governed GET of an allowlisted page.
|
|
193
209
|
2. FALLBACK — user-configured MCP/plugin tools (browser automation, web
|
|
194
|
-
search, page fetchers) for what tm_browser / tm_webfetch
|
|
210
|
+
search, page fetchers) for what tm_search / tm_browser / tm_webfetch
|
|
211
|
+
cannot do.
|
|
195
212
|
Seeded allowlist hosts and shapes (extend via
|
|
196
213
|
TM_WEBFETCH_ALLOWED_DOMAINS):
|
|
197
214
|
- wiki term: https://mobile.moegirl.org.cn/TERM
|
|
198
215
|
- bilibili: https://search.bilibili.com/all?keyword=QUERY
|
|
199
|
-
- bing: https://cn.bing.com/search?q=QUERY
|
|
216
|
+
- bing: https://cn.bing.com/search?q=QUERY (append &ensearch=1
|
|
217
|
+
for international results)
|
|
200
218
|
- baidu: https://www.baidu.com/s?wd=QUERY
|
|
219
|
+
- sogou: https://www.sogou.com/web?query=QUERY
|
|
220
|
+
- 360: https://www.so.com/s?q=QUERY
|
|
221
|
+
- npm pkg: https://registry.npmjs.org/<pkg>/latest
|
|
222
|
+
- npm search: https://registry.npmjs.org/-/v1/search?text=QUERY
|
|
223
|
+
- gh repos: https://api.github.com/search/repositories?q=QUERY
|
|
201
224
|
URL-encode the query (CJK terms too). Expand colloquial, abbreviated,
|
|
202
225
|
or aliased terms to canonical forms and fetch BOTH spellings before
|
|
203
226
|
concluding "not found".
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specialists.js","sourceRoot":"","sources":["../../src/prompts/specialists.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B/B,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBjC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2C9B,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG
|
|
1
|
+
{"version":3,"file":"specialists.js","sourceRoot":"","sources":["../../src/prompts/specialists.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B/B,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBjC,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2C9B,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2D5B,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0EhC,CAAA"}
|
package/dist/tm/args-schema.d.ts
CHANGED
|
@@ -23,6 +23,12 @@ export declare function buildPtcArgsSchema(): Promise<Record<string, unknown>>;
|
|
|
23
23
|
* into buildTmWebfetchTool as `deps.args`.
|
|
24
24
|
*/
|
|
25
25
|
export declare function buildWebfetchArgsSchema(): Promise<Record<string, unknown>>;
|
|
26
|
+
/**
|
|
27
|
+
* tm_search args — same ZodRawShape treatment (BUG#3 class); descriptor
|
|
28
|
+
* fallback when zod is absent. tm/index awaits this and passes the result
|
|
29
|
+
* into buildTmSearchTool as `deps.args`.
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildSearchArgsSchema(): Promise<Record<string, unknown>>;
|
|
26
32
|
/**
|
|
27
33
|
* tm_memory args — same ZodRawShape treatment (BUG#3 class); descriptor
|
|
28
34
|
* fallback when zod is absent.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args-schema.d.ts","sourceRoot":"","sources":["../../src/tm/args-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkCH,iBAAe,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CA2ElF;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAE3B;;;;;GAKG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA+B3E;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAiBhF;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA2B9E;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAkB/E"}
|
|
1
|
+
{"version":3,"file":"args-schema.d.ts","sourceRoot":"","sources":["../../src/tm/args-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkCH,iBAAe,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CA2ElF;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAE3B;;;;;GAKG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA+B3E;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAiBhF;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAoB9E;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA2B9E;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAkB/E"}
|
package/dist/tm/args-schema.js
CHANGED
|
@@ -135,7 +135,29 @@ export async function buildWebfetchArgsSchema() {
|
|
|
135
135
|
return {
|
|
136
136
|
url: zz
|
|
137
137
|
.string()
|
|
138
|
-
.describe("Absolute https URL on an allowlisted host (seeded: mobile.moegirl.org.cn, search.bilibili.com, cn.bing.com, www.baidu.com). URL-encode the query (CJK terms too)."),
|
|
138
|
+
.describe("Absolute https URL on an allowlisted host (seeded: mobile.moegirl.org.cn, search.bilibili.com, cn.bing.com, www.baidu.com, www.sogou.com, www.so.com, registry.npmjs.org, api.github.com). URL-encode the query (CJK terms too)."),
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* tm_search args — same ZodRawShape treatment (BUG#3 class); descriptor
|
|
143
|
+
* fallback when zod is absent. tm/index awaits this and passes the result
|
|
144
|
+
* into buildTmSearchTool as `deps.args`.
|
|
145
|
+
*/
|
|
146
|
+
export async function buildSearchArgsSchema() {
|
|
147
|
+
const z = await loadZod();
|
|
148
|
+
if (!z) {
|
|
149
|
+
return {
|
|
150
|
+
query: { descriptor: "query: string (required, raw text — CJK fine, encoded here)" },
|
|
151
|
+
engine: { descriptor: "engine: bing|bing-int|sogou|so|baidu|bilibili|npm|github (optional, default bing)" },
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
const zz = z;
|
|
155
|
+
return {
|
|
156
|
+
query: zz.string().describe("Raw search query — pass text as-is; the tool URL-encodes it (CJK included)."),
|
|
157
|
+
engine: zz
|
|
158
|
+
.string()
|
|
159
|
+
.describe("bing (default) | bing-int (international results) | sogou | so (360) | baidu | bilibili | moegirl (wiki search API, structured) | npm (registry search, structured) | github (repo search API, structured).")
|
|
160
|
+
.optional(),
|
|
139
161
|
};
|
|
140
162
|
}
|
|
141
163
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args-schema.js","sourceRoot":"","sources":["../../src/tm/args-schema.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"args-schema.js","sourceRoot":"","sources":["../../src/tm/args-schema.ts"],"names":[],"mappings":"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"}
|
package/dist/tm/config.d.ts
CHANGED
|
@@ -20,13 +20,18 @@
|
|
|
20
20
|
* plugin options). They share a root philosophy (TTL sweeper is the sole
|
|
21
21
|
* cleanup path), not code.
|
|
22
22
|
*/
|
|
23
|
-
/** Default tm_bash read-only allowlist (P3, command-level).
|
|
23
|
+
/** Default tm_bash read-only allowlist (P3, command-level). The PS
|
|
24
|
+
* -Object entries are pure pipeline formatters — no write capability. */
|
|
24
25
|
export declare const DEFAULT_BASH_READONLY_ALLOWED: readonly string[];
|
|
25
26
|
/**
|
|
26
|
-
* Seeded tm_webfetch domain allowlist —
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
27
|
+
* Seeded tm_webfetch / tm_search domain allowlist — every host the search
|
|
28
|
+
* engines and data sources ride (all reachable from mainland China without
|
|
29
|
+
* API keys): wiki term / bilibili search / bing CN + international / baidu /
|
|
30
|
+
* sogou / 360, the npm registry (JSON search + package metadata) and the
|
|
31
|
+
* GitHub search API (JSON). Subdomains of an entry are included;
|
|
32
|
+
* TM_WEBFETCH_ALLOWED_DOMAINS overrides the list (comma/semicolon
|
|
33
|
+
* separated; a lone "*" opens every host — keep the engine hosts or
|
|
34
|
+
* tm_search's engines lose their targets).
|
|
30
35
|
*/
|
|
31
36
|
export declare const DEFAULT_WEBFETCH_DOMAINS: readonly string[];
|
|
32
37
|
export interface TmConfig {
|
|
@@ -50,6 +55,9 @@ export interface TmConfig {
|
|
|
50
55
|
bashReadonlyAllowed: string[];
|
|
51
56
|
/** tm_webfetch domain allowlist (subdomains included; "*" = any host). */
|
|
52
57
|
webfetchAllowedDomains: string[];
|
|
58
|
+
/** tm_memory GLOBAL scope dir. Empty = auto (~/.opencode-team/memories/global
|
|
59
|
+
* — user-level, follows the user across projects). */
|
|
60
|
+
memoryGlobalDir: string;
|
|
53
61
|
/** Hard cap on a PTC program source string length (chars). */
|
|
54
62
|
ptcMaxProgramChars: number;
|
|
55
63
|
/** Ceiling for per-run bridge-call budget (callers may only tighten). */
|
package/dist/tm/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/tm/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/tm/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;0EAC0E;AAC1E,eAAO,MAAM,6BAA6B,EAAE,SAAS,MAAM,EAK1D,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAUrD,CAAA;AAED,MAAM,WAAW,QAAQ;IACvB,6EAA6E;IAC7E,gBAAgB,EAAE,MAAM,CAAA;IACxB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,CAAA;IACpB,gFAAgF;IAChF,gBAAgB,EAAE,MAAM,CAAA;IACxB,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAA;IACrB;oFACgF;IAChF,aAAa,EAAE,MAAM,CAAA;IACrB;oFACgF;IAChF,aAAa,EAAE,MAAM,CAAA;IACrB,2EAA2E;IAC3E,iBAAiB,EAAE,MAAM,CAAA;IACzB,kDAAkD;IAClD,mBAAmB,EAAE,MAAM,EAAE,CAAA;IAC7B,0EAA0E;IAC1E,sBAAsB,EAAE,MAAM,EAAE,CAAA;IAChC;2DACuD;IACvD,eAAe,EAAE,MAAM,CAAA;IAEvB,8DAA8D;IAC9D,kBAAkB,EAAE,MAAM,CAAA;IAC1B,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAA;IACnB,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAA;IACpB,+EAA+E;IAC/E,YAAY,EAAE,MAAM,CAAA;IACpB,yEAAyE;IACzE,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAA;CACxC;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;CAmBrB,CAAA;AAEV,mEAAmE;AACnE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;CAKpB,CAAA;AAEV,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;AAmBjD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,GAAG,IAAI,CAG/D;AAED,iEAAiE;AACjE,eAAO,MAAM,yBAAyB,0BAAoB,CAAA;AAE1D,uFAAuF;AACvF,wBAAgB,eAAe,CAAC,GAAG,GAAE,OAAqB,GAAG,QAAQ,CAoBpE;AAMD;;;6EAG6E;AAC7E,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAExE;AAED,2EAA2E;AAC3E,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAG1D"}
|