@godv61/dsh-task-engine 0.17.0 → 0.19.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.
@@ -17,7 +17,7 @@ export interface EngConfigView {
17
17
  ok: boolean;
18
18
  /** Where the config came from: a preset default, a sound project file, or an invalid one. */
19
19
  source: 'default' | 'project' | 'invalid';
20
- /** Selected workflow id (always a known preset). */
20
+ /** Selected workflow id (empty when the file lacks a `flow` field). */
21
21
  flow: string;
22
22
  /** The resolved workflow (preset plus the project's stage-binding override). */
23
23
  config: WorkflowConfig;
@@ -164,6 +164,42 @@ export interface TaskLedgerEntry {
164
164
  export interface TaskLedgerView {
165
165
  tasks: TaskLedgerEntry[];
166
166
  }
167
+ /** `readInit` result: the workspace's root `AGENTS.md`, or absent. */
168
+ export interface InitView {
169
+ /** Whether an AGENTS.md exists at the workspace root. */
170
+ exists: boolean;
171
+ /** Full body when `exists`, otherwise empty string. */
172
+ content: string;
173
+ /** Physical line count (0 when absent). */
174
+ lines: number;
175
+ /** Absolute AGENTS.md location when it was resolved outside the workspace root (e.g. a single child project). */
176
+ path?: string;
177
+ }
178
+ /** Write the workspace's root `AGENTS.md` (init apply). */
179
+ export interface InitWriteRequest {
180
+ /** Absolute workspace directory; `AGENTS.md` is written at its root. */
181
+ path: string;
182
+ /** Full AGENTS.md body. */
183
+ content: string;
184
+ }
185
+ /** `generateInit` request: scan the workspace and prompt the model for a draft. */
186
+ export interface InitGenerateRequest {
187
+ /** Absolute workspace directory to scan. */
188
+ path: string;
189
+ }
190
+ /** `generateInit` result: a model-drafted AGENTS.md body (not yet written). */
191
+ export interface InitDraft {
192
+ ok: boolean;
193
+ content: string;
194
+ lines: number;
195
+ error?: string;
196
+ }
197
+ /** `writeInit` result: write succeeded, or failed with the offending line count. */
198
+ export interface InitWriteResult {
199
+ ok: boolean;
200
+ lines: number;
201
+ error?: string;
202
+ }
167
203
  /**
168
204
  * Host owner of the `task-engine` Remote namespace. Discovered by the Typert
169
205
  * Gateway through source-mode reflection (the `typertRemote` binding on the
@@ -211,6 +247,25 @@ export default class TaskEngineController extends TypertRemoteService {
211
247
  * @returns the ledger entries, empty when no task records exist.
212
248
  */
213
249
  readTasks(path: string): Promise<TaskLedgerView>;
250
+ /**
251
+ * Read the workspace's root `AGENTS.md` for the project-initialization tab.
252
+ * @param path - absolute workspace directory.
253
+ * @returns existence, body, and line count.
254
+ */
255
+ readInit(path: string): Promise<InitView>;
256
+ /**
257
+ * Write the workspace's root `AGENTS.md` (init apply).
258
+ * @param request - workspace directory and full body.
259
+ * @returns `ok: false` with `lines` over the cap when the body is too long.
260
+ */
261
+ writeInit(request: InitWriteRequest): Promise<InitWriteResult>;
262
+ /**
263
+ * Scan the workspace and prompt the default model for an AGENTS.md draft. The
264
+ * result is a preview only — nothing is written until {@link writeInit}.
265
+ * @param request - absolute workspace directory.
266
+ * @returns the drafted body, or `ok: false` with an error when generation fails.
267
+ */
268
+ generateInit(request: InitGenerateRequest): Promise<InitDraft>;
214
269
  /**
215
270
  * Create a project- or user-level skill by writing its SKILL.md.
216
271
  * @param request - name, description, whenToUse, body, and target level.
package/lib/controller.js CHANGED
@@ -42,15 +42,29 @@ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn,
42
42
  if (target) Object.defineProperty(target, contextIn.name, descriptor);
43
43
  done = true;
44
44
  };
45
- import { mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync } from 'node:fs';
45
+ import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync } from 'node:fs';
46
46
  import { homedir } from 'node:os';
47
47
  import { dirname, join } from 'node:path';
48
48
  import { fileURLToPath } from 'node:url';
49
+ import { createUserMessage } from '@deepseek-ai/dsh-llm';
49
50
  import { Remote, RemoteError, TypertRemoteService } from '@deepseek-ai/dsh-typert-protocol';
50
51
  import { validateWorkflow } from "./engine.js";
51
- import { FLOW_OPTIONS, isKnownFlow, resolveFlowConfig } from "./workflows.js";
52
+ import { resolveFlow } from "./workflows.js";
52
53
  /** The one file this controller reads and writes, relative to a workspace directory. */
53
54
  const ENGFILE = '.dsh/eng.json';
55
+ /** The project description file read/written at the workspace root by `init`. */
56
+ const INITFILE = 'AGENTS.md';
57
+ /** Hard line cap the init draft must satisfy before it can be written. */
58
+ const INIT_MAX_LINES = 200;
59
+ /** Hard timeout for the model-draft call; the UI reports elapsed time toward it. */
60
+ const INIT_GENERATE_TIMEOUT_MS = 150000;
61
+ /** System prompt for drafting a project AGENTS.md from a scanned snapshot. */
62
+ const INIT_SYSTEM_PROMPT = '你是一名工程交付助理。根据下面提供的项目快照,为该项目写一份项目级 AGENTS.md(Markdown)。'
63
+ + '要求:用中文,只写骨架,不超过 200 行:项目是什么 → 怎么跑/构建 → 目录结构 → 开发约定 → 红线与坑。'
64
+ + '不要客套的开头和结尾,不要复述项目快照里无关的细节,直接输出 Markdown 正文。'
65
+ + '整个回答就是 AGENTS.md 的内容,不要用代码块包裹,不要附加任何说明。';
66
+ /** Files worth quoting into the scan snapshot (each truncated). */
67
+ const SCAN_KEY_FILES = ['README.md', 'package.json', 'tsconfig.json', 'tsconfig.client.json', 'pnpm-workspace.yaml', 'pyproject.toml', 'Cargo.toml', 'go.mod', '.dsh/eng.json'];
54
68
  /** Bundled skill directory, scanned as a fallback list when no skill registry exists. */
55
69
  const BUNDLED_SKILLS_DIR = fileURLToPath(new URL('../skills/', import.meta.url));
56
70
  /** Bundled rule directory. */
@@ -64,6 +78,21 @@ function sanitizeName(raw) {
64
78
  const cleaned = raw.trim().toLowerCase().replace(/[^0-9a-z-]+/g, '-').replace(/^-+|-+$/g, '');
65
79
  return cleaned;
66
80
  }
81
+ /** The standard preset's config; the built-in id always resolves. */
82
+ function standardConfig() {
83
+ const standard = resolveFlow('standard');
84
+ if (!standard.ok)
85
+ throw new Error('built-in "standard" preset is missing');
86
+ return standard.config;
87
+ }
88
+ /** Whether a bundled (core) skill already owns a name. */
89
+ function bundledSkillExists(name) {
90
+ return existsSync(join(BUNDLED_SKILLS_DIR, name, 'SKILL.md'));
91
+ }
92
+ /** Whether a bundled (core) rule already owns a name. */
93
+ function bundledRuleExists(name) {
94
+ return existsSync(join(BUNDLED_RULES_DIR, `${name}.md`));
95
+ }
67
96
  /** Frontmatter-wrapped SKILL.md body. */
68
97
  function renderSkillFile(name, description, whenToUse, content) {
69
98
  const head = [`name: ${name}`, `description: ${description}`];
@@ -153,6 +182,9 @@ let TaskEngineController = (() => {
153
182
  let _listSkills_decorators;
154
183
  let _listRules_decorators;
155
184
  let _readTasks_decorators;
185
+ let _readInit_decorators;
186
+ let _writeInit_decorators;
187
+ let _generateInit_decorators;
156
188
  let _writeSkill_decorators;
157
189
  let _writeRule_decorators;
158
190
  let _readSkill_decorators;
@@ -167,6 +199,9 @@ let TaskEngineController = (() => {
167
199
  _listSkills_decorators = [Remote];
168
200
  _listRules_decorators = [Remote];
169
201
  _readTasks_decorators = [Remote];
202
+ _readInit_decorators = [Remote];
203
+ _writeInit_decorators = [Remote];
204
+ _generateInit_decorators = [Remote];
170
205
  _writeSkill_decorators = [Remote];
171
206
  _writeRule_decorators = [Remote];
172
207
  _readSkill_decorators = [Remote];
@@ -178,6 +213,9 @@ let TaskEngineController = (() => {
178
213
  __esDecorate(this, null, _listSkills_decorators, { kind: "method", name: "listSkills", static: false, private: false, access: { has: obj => "listSkills" in obj, get: obj => obj.listSkills }, metadata: _metadata }, null, _instanceExtraInitializers);
179
214
  __esDecorate(this, null, _listRules_decorators, { kind: "method", name: "listRules", static: false, private: false, access: { has: obj => "listRules" in obj, get: obj => obj.listRules }, metadata: _metadata }, null, _instanceExtraInitializers);
180
215
  __esDecorate(this, null, _readTasks_decorators, { kind: "method", name: "readTasks", static: false, private: false, access: { has: obj => "readTasks" in obj, get: obj => obj.readTasks }, metadata: _metadata }, null, _instanceExtraInitializers);
216
+ __esDecorate(this, null, _readInit_decorators, { kind: "method", name: "readInit", static: false, private: false, access: { has: obj => "readInit" in obj, get: obj => obj.readInit }, metadata: _metadata }, null, _instanceExtraInitializers);
217
+ __esDecorate(this, null, _writeInit_decorators, { kind: "method", name: "writeInit", static: false, private: false, access: { has: obj => "writeInit" in obj, get: obj => obj.writeInit }, metadata: _metadata }, null, _instanceExtraInitializers);
218
+ __esDecorate(this, null, _generateInit_decorators, { kind: "method", name: "generateInit", static: false, private: false, access: { has: obj => "generateInit" in obj, get: obj => obj.generateInit }, metadata: _metadata }, null, _instanceExtraInitializers);
181
219
  __esDecorate(this, null, _writeSkill_decorators, { kind: "method", name: "writeSkill", static: false, private: false, access: { has: obj => "writeSkill" in obj, get: obj => obj.writeSkill }, metadata: _metadata }, null, _instanceExtraInitializers);
182
220
  __esDecorate(this, null, _writeRule_decorators, { kind: "method", name: "writeRule", static: false, private: false, access: { has: obj => "writeRule" in obj, get: obj => obj.writeRule }, metadata: _metadata }, null, _instanceExtraInitializers);
183
221
  __esDecorate(this, null, _readSkill_decorators, { kind: "method", name: "readSkill", static: false, private: false, access: { has: obj => "readSkill" in obj, get: obj => obj.readSkill }, metadata: _metadata }, null, _instanceExtraInitializers);
@@ -200,7 +238,7 @@ let TaskEngineController = (() => {
200
238
  const fs = this.fs();
201
239
  const raw = await readEngText(fs, path);
202
240
  if (raw === undefined) {
203
- return { ok: true, source: 'default', flow: 'standard', config: resolveFlowConfig('standard'), problems: [] };
241
+ return { ok: true, source: 'default', flow: 'standard', config: standardConfig(), problems: [] };
204
242
  }
205
243
  let parsed;
206
244
  try {
@@ -211,18 +249,35 @@ let TaskEngineController = (() => {
211
249
  ok: false,
212
250
  source: 'invalid',
213
251
  flow: 'standard',
214
- config: resolveFlowConfig('standard'),
252
+ config: standardConfig(),
215
253
  problems: [`invalid JSON: ${error instanceof Error ? error.message : String(error)}`],
216
254
  };
217
255
  }
218
- const flow = parsed.flow ?? 'standard';
219
- const config = resolveFlowConfig(flow, parsed.stage_bindings !== undefined ? { stage_bindings: parsed.stage_bindings } : undefined);
220
- const problems = validateWorkflow(config);
256
+ if (parsed.flow === undefined || parsed.flow.trim() === '') {
257
+ return {
258
+ ok: false,
259
+ source: 'invalid',
260
+ flow: '',
261
+ config: standardConfig(),
262
+ problems: ['eng.json exists but is missing a "flow" field — set it to standard|agile|minimal, or delete the file'],
263
+ };
264
+ }
265
+ const resolved = resolveFlow(parsed.flow, parsed.stage_bindings !== undefined ? { stage_bindings: parsed.stage_bindings } : undefined);
266
+ if (!resolved.ok) {
267
+ return {
268
+ ok: false,
269
+ source: 'invalid',
270
+ flow: resolved.flow,
271
+ config: standardConfig(),
272
+ problems: [`unknown flow "${resolved.flow}" (known: ${resolved.knownFlows.join(', ')})`],
273
+ };
274
+ }
275
+ const problems = validateWorkflow(resolved.config);
221
276
  return {
222
277
  ok: problems.length === 0,
223
278
  source: problems.length === 0 ? 'project' : 'invalid',
224
- flow,
225
- config,
279
+ flow: resolved.preset.id,
280
+ config: resolved.config,
226
281
  problems,
227
282
  };
228
283
  }
@@ -233,19 +288,19 @@ let TaskEngineController = (() => {
233
288
  * `problems` filled when validation fails (nothing is written then).
234
289
  */
235
290
  async write(request) {
236
- if (!isKnownFlow(request.flow)) {
291
+ const resolved = resolveFlow(request.flow, request.stage_bindings !== undefined ? { stage_bindings: request.stage_bindings } : undefined);
292
+ if (!resolved.ok) {
237
293
  return {
238
294
  ok: false,
239
295
  source: 'invalid',
240
- flow: request.flow,
241
- config: resolveFlowConfig(request.flow),
242
- problems: [`unknown flow "${request.flow}" (known: ${FLOW_OPTIONS.map(f => f.id).join(', ')})`],
296
+ flow: resolved.flow,
297
+ config: standardConfig(),
298
+ problems: [`unknown flow "${resolved.flow}" (known: ${resolved.knownFlows.join(', ')})`],
243
299
  };
244
300
  }
245
- const config = resolveFlowConfig(request.flow, request.stage_bindings !== undefined ? { stage_bindings: request.stage_bindings } : undefined);
246
- const problems = validateWorkflow(config);
301
+ const problems = validateWorkflow(resolved.config);
247
302
  if (problems.length > 0) {
248
- return { ok: false, source: 'invalid', flow: request.flow, config, problems };
303
+ return { ok: false, source: 'invalid', flow: request.flow, config: resolved.config, problems };
249
304
  }
250
305
  const payload = {
251
306
  flow: request.flow,
@@ -257,7 +312,7 @@ let TaskEngineController = (() => {
257
312
  mode: 'workspace-write',
258
313
  workspaceRoot: request.path,
259
314
  });
260
- return { ok: true, source: 'project', flow: request.flow, config, problems: [] };
315
+ return { ok: true, source: 'project', flow: request.flow, config: resolved.config, problems: [] };
261
316
  }
262
317
  /**
263
318
  * List every skill available for stage binding by scanning the same three
@@ -272,9 +327,10 @@ let TaskEngineController = (() => {
272
327
  const project = path === '' ? [] : listSkillsFromDir(join(path, '.dsh/skills'), 'project');
273
328
  const user = listSkillsFromDir(join(dshHome(), 'skills'), 'user');
274
329
  const bundled = listSkillsFromDir(BUNDLED_SKILLS_DIR, 'bundled');
275
- // Prefer the most specific source for a given name; project wins over user over bundled.
330
+ // Bundled (core) entries win over user and project entries of the same name,
331
+ // so a project cannot shadow a shipped skill; local additions use distinct names.
276
332
  const merged = new Map();
277
- for (const entry of [...bundled, ...user, ...project])
333
+ for (const entry of [...project, ...user, ...bundled])
278
334
  merged.set(entry.name, entry);
279
335
  const skills = [...merged.values()].sort((a, b) => a.name.localeCompare(b.name));
280
336
  return { skills };
@@ -289,9 +345,11 @@ let TaskEngineController = (() => {
289
345
  const project = path === '' ? [] : scanRuleDir(join(path, '.dsh/rules'), 'project');
290
346
  const user = scanRuleDir(join(dshHome(), 'rules'), 'user');
291
347
  const bundled = scanRuleDir(BUNDLED_RULES_DIR, 'bundled');
292
- // Prefer the most specific source for a given name; project wins over user over bundled.
348
+ // Bundled (core) rules win over user and project rules of the same name, so a
349
+ // project cannot shadow a shipped rule like `security-redlines`; local additions
350
+ // use distinct names.
293
351
  const merged = new Map();
294
- for (const entry of [...bundled, ...user, ...project])
352
+ for (const entry of [...project, ...user, ...bundled])
295
353
  merged.set(entry.name, entry.source);
296
354
  const rules = [...merged.entries()]
297
355
  .map(([name, source]) => ({ name, source }))
@@ -345,6 +403,92 @@ let TaskEngineController = (() => {
345
403
  }
346
404
  return { tasks };
347
405
  }
406
+ /**
407
+ * Read the workspace's root `AGENTS.md` for the project-initialization tab.
408
+ * @param path - absolute workspace directory.
409
+ * @returns existence, body, and line count.
410
+ */
411
+ async readInit(path) {
412
+ const { root } = locateInitRoot(path);
413
+ const raw = await readTextAt(this.fs(), root, INITFILE);
414
+ if (raw === undefined)
415
+ return { exists: false, content: '', lines: 0 };
416
+ return {
417
+ exists: true,
418
+ content: raw,
419
+ lines: lineCount(raw),
420
+ ...(root === path ? {} : { path: join(root, INITFILE) }),
421
+ };
422
+ }
423
+ /**
424
+ * Write the workspace's root `AGENTS.md` (init apply).
425
+ * @param request - workspace directory and full body.
426
+ * @returns `ok: false` with `lines` over the cap when the body is too long.
427
+ */
428
+ async writeInit(request) {
429
+ const lines = lineCount(request.content);
430
+ if (lines > INIT_MAX_LINES) {
431
+ return { ok: false, lines, error: `AGENTS.md 为 ${lines} 行,超过上限 ${INIT_MAX_LINES} 行;请精简到项目骨架后重试。` };
432
+ }
433
+ const { root } = locateInitRoot(request.path);
434
+ const fs = this.fs();
435
+ const target = await fs.resolve(INITFILE, { cwd: root });
436
+ await fs.writeText(target, request.content, undefined, undefined, {
437
+ mode: 'workspace-write',
438
+ workspaceRoot: request.path,
439
+ });
440
+ return { ok: true, lines };
441
+ }
442
+ /**
443
+ * Scan the workspace and prompt the default model for an AGENTS.md draft. The
444
+ * result is a preview only — nothing is written until {@link writeInit}.
445
+ * @param request - absolute workspace directory.
446
+ * @returns the drafted body, or `ok: false` with an error when generation fails.
447
+ */
448
+ async generateInit(request) {
449
+ const { root } = locateInitRoot(request.path);
450
+ const snapshot = scanProject(root);
451
+ const llm = this.ctx.get('llm');
452
+ if (llm === undefined) {
453
+ return { ok: false, content: '', lines: 0, error: 'task-engine: llm service is absent from the host composition' };
454
+ }
455
+ const defaultModel = this.ctx.get('agentDefaultModel');
456
+ if (defaultModel === undefined) {
457
+ return { ok: false, content: '', lines: 0, error: 'task-engine: agent 默认模型未配置,请先在「模型」页选择一个模型' };
458
+ }
459
+ const selection = defaultModel.currentSelection();
460
+ const options = {
461
+ provider: selection.provider,
462
+ model: selection.model,
463
+ system: INIT_SYSTEM_PROMPT,
464
+ messages: [createUserMessage({
465
+ content: [{ type: 'text', text: `请为项目 ${root} 生成 AGENTS.md。\n\n${snapshot}` }],
466
+ source: { kind: 'user' },
467
+ })],
468
+ temperature: 0.2,
469
+ signal: AbortSignal.timeout(INIT_GENERATE_TIMEOUT_MS),
470
+ };
471
+ let text = '';
472
+ try {
473
+ const stream = llm.stream(options);
474
+ for await (const chunk of stream) {
475
+ if (chunk.type === 'text-delta')
476
+ text += chunk.text;
477
+ else if (chunk.type === 'finish' && chunk.reason.kind === 'error') {
478
+ throw new Error(chunk.reason.failure.message);
479
+ }
480
+ }
481
+ }
482
+ catch (error) {
483
+ if (options.signal?.aborted === true) {
484
+ return { ok: false, content: '', lines: 0, error: `生成超时(超过 ${Math.round(INIT_GENERATE_TIMEOUT_MS / 1000)} 秒),请稍后重试。` };
485
+ }
486
+ return { ok: false, content: '', lines: 0, error: error instanceof Error ? error.message : String(error) };
487
+ }
488
+ const content = stripMarkdownFence(text);
489
+ const lines = lineCount(content);
490
+ return { ok: content.trim() !== '', content, lines };
491
+ }
348
492
  /**
349
493
  * Create a project- or user-level skill by writing its SKILL.md.
350
494
  * @param request - name, description, whenToUse, body, and target level.
@@ -355,6 +499,9 @@ let TaskEngineController = (() => {
355
499
  if (name === '' || request.description.trim() === '') {
356
500
  return { ok: false, name, path: '', error: 'skill name and description must not be empty' };
357
501
  }
502
+ if (bundledSkillExists(name)) {
503
+ return { ok: false, name, path: '', error: `"${name}" is a bundled skill and cannot be overridden; choose a distinct name` };
504
+ }
358
505
  const base = request.level === 'project'
359
506
  ? join(request.path ?? '', '.dsh/skills')
360
507
  : join(dshHome(), 'skills');
@@ -371,6 +518,9 @@ let TaskEngineController = (() => {
371
518
  if (name === '' || request.content.trim() === '') {
372
519
  return { ok: false, name, path: '', error: 'rule name and content must not be empty' };
373
520
  }
521
+ if (bundledRuleExists(name)) {
522
+ return { ok: false, name, path: '', error: `"${name}" is a bundled rule and cannot be overridden; choose a distinct name` };
523
+ }
374
524
  const base = request.level === 'project'
375
525
  ? join(request.path ?? '', '.dsh/rules')
376
526
  : join(dshHome(), 'rules');
@@ -516,4 +666,121 @@ async function readEngText(fs, path) {
516
666
  return undefined;
517
667
  }
518
668
  }
669
+ /** Directories the scan tree never descends into. */
670
+ const SCAN_SKIP = new Set(['node_modules', '.git', 'dist', 'build', 'coverage', 'target', '__pycache__', '.venv', 'venv', '.next', 'out', '.dsh']);
671
+ /** Maximum entries listed per directory in the scan tree; the rest collapse to a count line. */
672
+ const SCAN_MAX_ENTRIES = 40;
673
+ /** Maximum directory depth the scan tree renders. */
674
+ const SCAN_MAX_DEPTH = 3;
675
+ /** Render a compact directory tree (depth-bounded, skip-listed) for the model. */
676
+ function renderScanTree(root) {
677
+ const lines = [root.replace(/[\\/]+$/, '').split(/[\\/]/).pop() ?? root];
678
+ function walk(dir, depth, prefix) {
679
+ if (depth > SCAN_MAX_DEPTH)
680
+ return;
681
+ let entries;
682
+ try {
683
+ entries = readdirSync(dir, { withFileTypes: true });
684
+ }
685
+ catch {
686
+ return;
687
+ }
688
+ entries = entries
689
+ .filter(e => !SCAN_SKIP.has(e.name))
690
+ .sort((a, b) => (a.isDirectory() === b.isDirectory() ? a.name.localeCompare(b.name) : a.isDirectory() ? -1 : 1));
691
+ const shown = entries.slice(0, SCAN_MAX_ENTRIES);
692
+ for (const entry of shown) {
693
+ const isDir = entry.isDirectory();
694
+ lines.push(`${prefix}${isDir ? '▸ ' : ''}${entry.name}${isDir ? '/' : ''}`);
695
+ if (isDir)
696
+ walk(join(dir, entry.name), depth + 1, `${prefix} `);
697
+ }
698
+ const hidden = entries.length - shown.length;
699
+ if (hidden > 0)
700
+ lines.push(`${prefix}… (+${hidden} 项)`);
701
+ }
702
+ walk(root, 1, ' ');
703
+ return lines.join('\n');
704
+ }
705
+ /** Build the project snapshot fed to the model: a bounded tree plus key file bodies. */
706
+ function scanProject(path) {
707
+ const parts = [`目录结构:\n\`\`\`\n${renderScanTree(path)}\n\`\`\``];
708
+ for (const rel of SCAN_KEY_FILES) {
709
+ const raw = readResourceFile(join(path, rel));
710
+ if (raw === undefined || raw.trim() === '')
711
+ continue;
712
+ parts.push(`文件 ${rel}:\n\`\`\`\n${raw.slice(0, 3000)}\n\`\`\``);
713
+ }
714
+ return parts.join('\n\n');
715
+ }
716
+ /** Strip a surrounding ```markdown fence if the model wrapped the draft anyway. */
717
+ function stripMarkdownFence(text) {
718
+ const trimmed = text.trim();
719
+ const m = trimmed.match(/^```(?:markdown|md)?\s*\n([\s\S]*?)\n```\s*$/);
720
+ if (m)
721
+ return m[1].trimEnd();
722
+ return trimmed;
723
+ }
724
+ /** Count physical lines after CRLF normalization; an empty string counts as one. */
725
+ function lineCount(text) {
726
+ return text.replace(/\r\n/g, '\n').split('\n').length;
727
+ }
728
+ /** Read one workspace-relative file through the sandboxed fs, or `undefined`. */
729
+ async function readTextAt(fs, path, rel) {
730
+ try {
731
+ const target = await fs.resolve(rel, { cwd: path });
732
+ return await fs.readText(target);
733
+ }
734
+ catch {
735
+ return undefined;
736
+ }
737
+ }
738
+ /**
739
+ * Locate the effective `AGENTS.md` for a workspace directory. Order:
740
+ * workspace root → exactly one direct child project → ancestor chain. When
741
+ * several direct children own the file the location is ambiguous, so nothing is
742
+ * guessed (`undefined`), keeping the write target at the workspace root.
743
+ * @param path - absolute workspace directory.
744
+ * @returns the absolute AGENTS.md path, or `undefined` when none is discoverable.
745
+ */
746
+ function locateInitFile(path) {
747
+ const rootFile = join(path, INITFILE);
748
+ if (existsSync(rootFile))
749
+ return rootFile;
750
+ const children = [];
751
+ try {
752
+ for (const entry of readdirSync(path, { withFileTypes: true })) {
753
+ if (!entry.isDirectory() || entry.name.startsWith('.'))
754
+ continue;
755
+ const child = join(path, entry.name, INITFILE);
756
+ if (existsSync(child))
757
+ children.push(child);
758
+ }
759
+ }
760
+ catch {
761
+ return undefined;
762
+ }
763
+ if (children.length === 1)
764
+ return children[0];
765
+ if (children.length > 1)
766
+ return undefined;
767
+ let current = dirname(path);
768
+ for (;;) {
769
+ const up = join(current, INITFILE);
770
+ if (existsSync(up))
771
+ return up;
772
+ const parent = dirname(current);
773
+ if (parent === current)
774
+ break;
775
+ current = parent;
776
+ }
777
+ return undefined;
778
+ }
779
+ /** Resolve the project root that owns AGENTS.md for a workspace, or the workspace itself. */
780
+ function locateInitRoot(path) {
781
+ const file = locateInitFile(path);
782
+ if (file !== undefined)
783
+ return { root: dirname(file), found: true };
784
+ return { root: path, found: false };
785
+ }
519
786
  //# sourceMappingURL=controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"controller.js","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller.js","sourceRoot":"","sources":["../src/controller.ts"],"names":[],"mappings":"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"}