@godv61/dsh-task-engine 0.23.8 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/engine.js CHANGED
@@ -9,6 +9,22 @@
9
9
  *
10
10
  * @module dsh-task-engine/engine
11
11
  */
12
+ /** Render a reference as `source:name`, the form used in config and status output. */
13
+ export function formatResourceRef(ref) {
14
+ return `${ref.source}:${ref.name}`;
15
+ }
16
+ /**
17
+ * Parse a `source:name` reference. Returns undefined for a bare name, which is
18
+ * the legacy shape and must go through precedence resolution instead.
19
+ * @param text - the stored reference text.
20
+ * @returns the parsed reference, or undefined when it carries no source.
21
+ */
22
+ export function parseResourceRef(text) {
23
+ const match = /^(bundled|project|user):(.+)$/u.exec(text);
24
+ if (match === null)
25
+ return undefined;
26
+ return { source: match[1], name: match[2] };
27
+ }
12
28
  /** The full guard vocabulary. Unknown guard names are configuration errors. */
13
29
  const GUARD_NAMES = [
14
30
  'requirement_confirmation',
@@ -87,16 +103,33 @@ export function validateWorkflow(config) {
87
103
  if (!config.stages.includes(stage)) {
88
104
  problems.push(`stage_bindings: stage "${stage}" is not a stage`);
89
105
  }
90
- for (const skill of binding.skills ?? []) {
91
- if (typeof skill !== 'string' || skill.trim() === '') {
92
- problems.push(`stage_bindings "${stage}": empty skill name`);
106
+ // A skill carries its own rules, so each binding is checked as a unit: an
107
+ // empty skill reference or a malformed rule reference is reported with the
108
+ // skill it belongs to, which is where the user has to fix it.
109
+ for (const [index, entry] of (binding.skills ?? []).entries()) {
110
+ if (typeof entry?.skill?.name !== 'string' || entry.skill.name.trim() === '') {
111
+ problems.push(`stage_bindings "${stage}": skill ${index + 1} has no name`);
112
+ continue;
93
113
  }
94
- }
95
- for (const rule of binding.rules ?? []) {
96
- if (typeof rule !== 'string' || rule.trim() === '') {
97
- problems.push(`stage_bindings "${stage}": empty rule name`);
114
+ if (!['bundled', 'project', 'user'].includes(entry.skill.source)) {
115
+ problems.push(`stage_bindings "${stage}": skill "${entry.skill.name}" has unknown source "${String(entry.skill.source)}"`);
116
+ }
117
+ for (const rule of entry.rules ?? []) {
118
+ if (typeof rule?.name !== 'string' || rule.name.trim() === '') {
119
+ problems.push(`stage_bindings "${stage}": skill "${entry.skill.name}" has a rule with no name`);
120
+ continue;
121
+ }
122
+ if (!['bundled', 'project', 'user'].includes(rule.source)) {
123
+ problems.push(`stage_bindings "${stage}": skill "${entry.skill.name}" rule "${rule.name}" has unknown source "${String(rule.source)}"`);
124
+ }
98
125
  }
99
126
  }
127
+ // Stage-level rules exist only as a migration state: they are disclosed and
128
+ // enforced, but they are not a feature. Reporting them keeps the pending
129
+ // decision visible instead of letting it settle into a permanent dual model.
130
+ if ((binding.legacy_rules ?? []).length > 0) {
131
+ problems.push(`stage_bindings "${stage}": ${binding.legacy_rules.length} legacy stage-level rule(s) are unassigned and still in force; assign each to the skill that should carry it`);
132
+ }
100
133
  }
101
134
  if (!['task', 'item', 'manual'].includes(config.commit.policy)) {
102
135
  problems.push(`commit.policy "${config.commit.policy}" is not task|item|manual`);
@@ -114,6 +147,11 @@ export function validateWorkflow(config) {
114
147
  problems.push('commit.message_pattern is not a valid regular expression');
115
148
  }
116
149
  }
150
+ // An unrecognised depth would silently fall back to the heaviest one, hiding a
151
+ // typo behind stricter-than-intended behaviour.
152
+ if (config.review_depth !== undefined && config.review_depth !== 'two-stage' && config.review_depth !== 'single') {
153
+ problems.push(`review_depth "${String(config.review_depth)}" is not one of: two-stage, single`);
154
+ }
117
155
  return problems;
118
156
  }
119
157
  function requireKnownStage(stage, config) {
@@ -146,9 +184,10 @@ export function findTransition(from, to, config) {
146
184
  * two-stage review whose both stages passed, so the implementation and its
147
185
  * audit trail are completed together.
148
186
  */
149
- export function todosBlockers(state) {
187
+ export function todosBlockers(state, config) {
150
188
  if (state.items.length === 0)
151
189
  return ['no implementation items'];
190
+ const depth = config?.review_depth ?? 'two-stage';
152
191
  const blockers = [];
153
192
  for (const item of state.items) {
154
193
  if (item.status !== 'done') {
@@ -156,13 +195,20 @@ export function todosBlockers(state) {
156
195
  continue;
157
196
  }
158
197
  if (item.review === undefined) {
159
- blockers.push(`item "${item.id}" is done but has no two-stage review`);
198
+ // Every depth still requires the item to have been reviewed: a lighter flow
199
+ // checks less per change, it does not skip checking. Only the number of
200
+ // required verdicts differs.
201
+ blockers.push(`item "${item.id}" is done but has no review`);
160
202
  continue;
161
203
  }
162
- if (item.review.spec.outcome !== 'pass')
204
+ if (item.review.spec?.outcome !== 'pass')
163
205
  blockers.push(`item "${item.id}" spec review is not pass`);
164
- if (item.review.quality.outcome !== 'pass')
206
+ // `quality` is read defensively: a record written under a lighter depth, or an
207
+ // older snapshot, may carry only the specification verdict. Requiring the
208
+ // field to exist would crash on such a record instead of reporting it.
209
+ if (depth === 'two-stage' && item.review.quality?.outcome !== 'pass') {
165
210
  blockers.push(`item "${item.id}" quality review is not pass`);
211
+ }
166
212
  }
167
213
  return blockers;
168
214
  }
@@ -173,7 +219,7 @@ function guardSatisfied(guard, state, config) {
173
219
  case 'solution_confirmation':
174
220
  return state.solution_confirmed;
175
221
  case 'todos_done':
176
- return todosBlockers(state).length === 0;
222
+ return todosBlockers(state, config).length === 0;
177
223
  case 'verified': {
178
224
  if (!state.verification.passed)
179
225
  return false;
@@ -222,7 +268,7 @@ export function assertAdvance(state, targetStage, config) {
222
268
  if (unmet.length > 0) {
223
269
  const details = unmet.map(guard => {
224
270
  if (guard === 'todos_done')
225
- return `todos_done (${todosBlockers(state).join('; ')})`;
271
+ return `todos_done (${todosBlockers(state, config).join('; ')})`;
226
272
  return guard;
227
273
  });
228
274
  return { ok: false, errors: [`guards unmet: ${details.join(', ')}`] };
@@ -272,6 +318,81 @@ export function taskIdFromMessage(message, config) {
272
318
  const match = new RegExp(config.commit.message_pattern).exec(message);
273
319
  return match?.[1];
274
320
  }
321
+ /**
322
+ * Whether this task's flow ever demands a passing verification.
323
+ *
324
+ * A preset that never guards an edge on `verified` is telling the engine that
325
+ * verification is not one of its completion conditions, so a downstream stage
326
+ * must not invent the requirement.
327
+ * @param config - the frozen workflow config.
328
+ * @returns true when any configured transition requires `verified`.
329
+ */
330
+ export function flowRequiresVerification(config) {
331
+ return config.transitions.some(transition => (transition.requires ?? []).includes('verified'));
332
+ }
333
+ /**
334
+ * Stages where a passing verification must still HOLD, derived from the graph.
335
+ *
336
+ * `verified` guards the edge INTO a stage, so the requirement follows the task
337
+ * past that edge rather than applying from the start: a task sitting at 需求评审
338
+ * has produced nothing to verify. Once a task has crossed a `verified` edge,
339
+ * though, the requirement stays with it — that is the case the old code missed,
340
+ * where re-verifying and failing let the task continue and commit.
341
+ *
342
+ * Computed by walking forward from every `verified` edge's target, so it is a
343
+ * property of the configured graph rather than a hardcoded stage name.
344
+ * @param config - the frozen workflow config.
345
+ * @returns the set of stages at or after a verification gate.
346
+ */
347
+ export function verificationHeldStages(config) {
348
+ const held = new Set();
349
+ const queue = config.transitions
350
+ .filter(transition => (transition.requires ?? []).includes('verified'))
351
+ .map(transition => transition.to);
352
+ while (queue.length > 0) {
353
+ const stage = queue.shift();
354
+ if (held.has(stage))
355
+ continue;
356
+ held.add(stage);
357
+ for (const transition of config.transitions) {
358
+ if (transition.from === stage && !held.has(transition.to))
359
+ queue.push(transition.to);
360
+ }
361
+ }
362
+ return held;
363
+ }
364
+ /**
365
+ * Why the current state fails the flow's verification requirement, if it does.
366
+ *
367
+ * Applies only once the task has reached a stage that sits at or after a
368
+ * verification gate, so it never fires on a task that has not yet had anything
369
+ * to verify. Completion and commit share this rule, which is what stops a failed
370
+ * re-verification from being outrun by advancing to a stage whose own outgoing
371
+ * edge happens not to repeat the guard.
372
+ * @param state - the task state.
373
+ * @param config - the frozen workflow config.
374
+ * @returns human-readable blockers; empty when the requirement does not apply or holds.
375
+ */
376
+ export function verificationBlockers(state, config) {
377
+ if (state.execution_version !== 1)
378
+ return [];
379
+ if (!verificationHeldStages(config).has(state.stage))
380
+ return [];
381
+ const blockers = [];
382
+ if (!state.verification.passed) {
383
+ blockers.push('this flow requires a passing verification at this stage, and the current verification is not passing');
384
+ }
385
+ if (config.high_risk_requires_verification && state.risk_level === 'high_risk') {
386
+ const receipt = state.verification.receipt;
387
+ if (receipt === undefined) {
388
+ blockers.push('a high-risk task needs a real command receipt, and none is recorded');
389
+ }
390
+ else if (receipt.exit_code !== 0 || receipt.timed_out || receipt.aborted) {
391
+ blockers.push('a high-risk task needs a command that exited 0 without timing out or aborting');
392
+ }
393
+ }
394
+ return blockers;
395
+ }
275
396
  /**
276
397
  * Decide whether the current task state permits a commit and with what label.
277
398
  *
@@ -285,6 +406,14 @@ export function commitCheckpoint(state, config) {
285
406
  if (policy === 'manual') {
286
407
  return { allowed: false, reason: 'commit policy is manual — await an explicit user instruction' };
287
408
  }
409
+ // A flow that requires verification requires it HERE, wherever "here" is. The
410
+ // outgoing-guard check below only sees the current stage's edges, so a task
411
+ // that re-verified and failed could reach a stage whose edge does not repeat
412
+ // `verified` and be authorized anyway. Completion and commit share this rule.
413
+ const verification = verificationBlockers(state, config);
414
+ if (verification.length > 0) {
415
+ return { allowed: false, reason: verification.join('; ') };
416
+ }
288
417
  if (checkpoints.includes(state.stage)) {
289
418
  const ready = config.transitions
290
419
  .filter(transition => transition.from === state.stage)
@@ -302,6 +431,128 @@ export function commitCheckpoint(state, config) {
302
431
  }
303
432
  return { allowed: false, reason: 'no commit is due at this stage under the current policy' };
304
433
  }
434
+ /**
435
+ * Whether a stage is terminal in the configured graph (no outgoing transition).
436
+ * @param stage - the stage to test.
437
+ * @param config - the frozen workflow config.
438
+ * @returns true when nothing follows this stage.
439
+ */
440
+ export function isTerminalStage(stage, config) {
441
+ return !config.transitions.some(transition => transition.from === stage);
442
+ }
443
+ /**
444
+ * Whether the delivery mode requires a recorded commit before completion.
445
+ * @param config - the frozen workflow config.
446
+ * @returns true when a commit must be recorded (the historical default).
447
+ */
448
+ export function commitRequired(config) {
449
+ return config.commit_required ?? true;
450
+ }
451
+ /**
452
+ * Every reason the task may not be marked complete.
453
+ *
454
+ * Completion is its own fact, checked here rather than inferred from standing on
455
+ * the last stage. Three things can hold it back: the task has not reached a
456
+ * terminal stage, the flow's own `todos_done` conditions are unmet, or the
457
+ * delivery mode wants a commit that is not recorded. Deliberately NOT included:
458
+ * a blanket demand for a commit on every flow, because a commit is one delivery
459
+ * mode rather than a universal finish line.
460
+ * @param state - the task state.
461
+ * @param config - the frozen workflow config.
462
+ * @returns human-readable blockers; empty when the task may complete.
463
+ */
464
+ export function completionBlockers(state, config) {
465
+ const blockers = [];
466
+ if (state.completed !== undefined)
467
+ return [];
468
+ if (!isTerminalStage(state.stage, config)) {
469
+ blockers.push(`task is at "${state.stage}", which is not a final stage; advance to one of: ${config.stages.filter(s => isTerminalStage(s, config)).join(', ')}`);
470
+ }
471
+ for (const guard of new Set(config.transitions.flatMap(transition => transition.requires ?? []))) {
472
+ // Only conditions that describe the finished work. Confirmation guards are
473
+ // per-edge approvals and are already enforced on the way through.
474
+ if (guard === 'todos_done') {
475
+ const unmet = todosBlockers(state, config);
476
+ if (unmet.length > 0)
477
+ blockers.push(`implementation items are not finished: ${unmet.join('; ')}`);
478
+ }
479
+ }
480
+ if (commitRequired(config)) {
481
+ const hasCommit = state.commits.some(commit => commit.hash !== undefined);
482
+ if (!hasCommit)
483
+ blockers.push('this flow requires a recorded commit before completion, and none is recorded');
484
+ }
485
+ return blockers;
486
+ }
487
+ /**
488
+ * Which recorded conclusions a rework of the given kind invalidates.
489
+ *
490
+ * Derived from what each kind of change actually supersedes:
491
+ *
492
+ * - `requirement`: the agreed requirement changed, so its confirmation no longer
493
+ * speaks for the work, and neither does the solution built on it. Verification,
494
+ * review and item audits all judged a tree derived from the old requirement.
495
+ * - `solution`: the requirement stands, but the approach changed. Its confirmation
496
+ * falls, along with everything that judged the implementation of the old one.
497
+ * - `defect`: a defect in the work as specified. The requirement and solution stay
498
+ * agreed; what falls is the evidence that the OLD implementation was correct —
499
+ * verification, review, and the per-item audits.
500
+ *
501
+ * A confirmation is always re-askable rather than silently assumed, because the
502
+ * human who approved it approved a different thing.
503
+ * @param kind - the kind of change being recorded.
504
+ * @returns the conclusion names to clear.
505
+ */
506
+ export function invalidatedBy(kind) {
507
+ switch (kind) {
508
+ case 'requirement':
509
+ return ['requirement_confirmation', 'solution_confirmation', 'verification', 'review', 'item_reviews', 'commits'];
510
+ case 'solution':
511
+ return ['solution_confirmation', 'verification', 'review', 'item_reviews', 'commits'];
512
+ case 'defect':
513
+ return ['verification', 'review', 'item_reviews', 'commits'];
514
+ }
515
+ }
516
+ /**
517
+ * Apply a rework to a task record, clearing exactly the superseded conclusions.
518
+ *
519
+ * Confirmation flags are reset rather than deleted because the engine reads them
520
+ * as booleans; the other conclusions are cleared by removing the record that
521
+ * carried them, so `status` reports them as absent instead of stale.
522
+ * @param state - the task state, mutated in place.
523
+ * @param revision - the rework to apply.
524
+ * @returns the stage reached and the conclusions cleared.
525
+ */
526
+ export function applyRevision(state, revision) {
527
+ const cleared = invalidatedBy(revision.kind);
528
+ if (cleared.includes('requirement_confirmation'))
529
+ state.requirement_confirmed = false;
530
+ if (cleared.includes('solution_confirmation'))
531
+ state.solution_confirmed = false;
532
+ if (cleared.includes('verification')) {
533
+ state.verification = { passed: false, evidence: [] };
534
+ }
535
+ if (cleared.includes('review')) {
536
+ state.review = { outcome: 'pending' };
537
+ }
538
+ if (cleared.includes('item_reviews')) {
539
+ for (const item of state.items) {
540
+ delete item.review;
541
+ // An item whose audit is gone is no longer proven done, so it returns to
542
+ // the state where its work is still outstanding.
543
+ if (item.status === 'done')
544
+ item.status = 'doing';
545
+ }
546
+ }
547
+ if (cleared.includes('commits'))
548
+ state.commits = [];
549
+ // Going back means the task is open again; a completed task that reworks is a
550
+ // task whose completion no longer describes it.
551
+ delete state.completed;
552
+ state.stage = revision.to;
553
+ state.revisions = [...(state.revisions ?? []), { ...revision, invalidated: cleared }];
554
+ return { stage: revision.to, invalidated: cleared };
555
+ }
305
556
  /**
306
557
  * Check a commit's file set against the task's declared scope. No-op when
307
558
  * `file_scope` is off; an empty declared scope refuses every commit (the task
package/lib/engine.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * Seed the `eng` preset into the user's `.agent-presets` root.
3
3
  *
4
- * Installing the bundle must put a pickable "工程化开发引�? preset in the preset
4
+ * Installing the bundle must put a pickable "工程化开发引操 preset in the preset
5
5
  * picker without anyone hand-copying a composition. The preset is the shipped
6
6
  * `standard` composition with three edits: the persona is replaced by the
7
7
  * engineering persona, `task-engine-agent` is appended, and nothing else changes
8
- * �?so a session on it has every tool `standard` has, plus `dev_task`.
8
+ * —so a session on it has every tool `standard` has, plus `dev_task`.
9
9
  *
10
10
  * The seed DERIVES the composition from the `standard` that is running, and
11
11
  * RE-DERIVES it whenever that source moves. The earlier version copied once and
@@ -43,7 +43,7 @@ declare const SEEDED_PERSONA_MARKER = " text: |-\n";
43
43
  * schemas are mutually exclusive: a preset written with `prefix` is rejected
44
44
  * outright by an older persona plugin with `$.text missing required value`, and
45
45
  * `text` is rejected by the newer one. The seed therefore cannot hardcode
46
- * either name �?it reads which one the source composition already uses, since
46
+ * either name —it reads which one the source composition already uses, since
47
47
  * that composition is what the running harness mounts.
48
48
  */
49
49
  type PersonaField = 'text' | 'prefix';
@@ -74,7 +74,7 @@ declare function personaFieldOf(composition: string): PersonaField;
74
74
  * Replace the persona row's config with the engineering persona, keeping the
75
75
  * field name the running harness uses.
76
76
  *
77
- * The persona schema has moved (`text:` �?`prefix`/`suffix`), so this rewrites
77
+ * The persona schema has moved (`text:` →`prefix`/`suffix`), so this rewrites
78
78
  * the whole `config:` block of the `persona` row rather than matching one
79
79
  * historical phrasing, and writes whichever field
80
80
  * {@link personaFieldOf} found in the source. A `suffix:` row is preserved when
@@ -101,7 +101,7 @@ declare function wasSeeded(composition: string): boolean;
101
101
  *
102
102
  * Failures are swallowed: a seed that cannot write must not stop the bundle's
103
103
  * host half (its Remote controller and workbench) from loading. A preset that
104
- * was deleted by the user stays deleted �?re-derivation only touches a file the
104
+ * was deleted by the user stays deleted —re-derivation only touches a file the
105
105
  * seed itself created.
106
106
  */
107
107
  export declare function seedEngPreset(): void;
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * Seed the `eng` preset into the user's `.agent-presets` root.
3
3
  *
4
- * Installing the bundle must put a pickable "工程化开发引�? preset in the preset
4
+ * Installing the bundle must put a pickable "工程化开发引操 preset in the preset
5
5
  * picker without anyone hand-copying a composition. The preset is the shipped
6
6
  * `standard` composition with three edits: the persona is replaced by the
7
7
  * engineering persona, `task-engine-agent` is appended, and nothing else changes
8
- * �?so a session on it has every tool `standard` has, plus `dev_task`.
8
+ * —so a session on it has every tool `standard` has, plus `dev_task`.
9
9
  *
10
10
  * The seed DERIVES the composition from the `standard` that is running, and
11
11
  * RE-DERIVES it whenever that source moves. The earlier version copied once and
@@ -57,7 +57,7 @@ function dshHome() {
57
57
  * time from the installed DSH rather than from a build-time constant.
58
58
  *
59
59
  * `@deepseek-ai/dsh-agent-presets` also exports `SHIPPED_PRESET_ROOT`, but that
60
- * is `fileURLToPath(new URL('../presets/', import.meta.url))` �?a constant baked
60
+ * is `fileURLToPath(new URL('../presets/', import.meta.url))` —a constant baked
61
61
  * into whichever copy of the package the *plugin* resolves. Under a real install
62
62
  * that is the plugin's own dependency tree, which can sit at a different DSH
63
63
  * version than the one running: the seed then copies an obsolete `standard`,
@@ -126,7 +126,7 @@ function personaFieldOf(composition) {
126
126
  * Replace the persona row's config with the engineering persona, keeping the
127
127
  * field name the running harness uses.
128
128
  *
129
- * The persona schema has moved (`text:` �?`prefix`/`suffix`), so this rewrites
129
+ * The persona schema has moved (`text:` →`prefix`/`suffix`), so this rewrites
130
130
  * the whole `config:` block of the `persona` row rather than matching one
131
131
  * historical phrasing, and writes whichever field
132
132
  * {@link personaFieldOf} found in the source. A `suffix:` row is preserved when
@@ -204,7 +204,7 @@ function deriveComposition() {
204
204
  *
205
205
  * Failures are swallowed: a seed that cannot write must not stop the bundle's
206
206
  * host half (its Remote controller and workbench) from loading. A preset that
207
- * was deleted by the user stays deleted �?re-derivation only touches a file the
207
+ * was deleted by the user stays deleted —re-derivation only touches a file the
208
208
  * seed itself created.
209
209
  */
210
210
  export function seedEngPreset() {
@@ -44,7 +44,11 @@ export function skillBlockers(state, workflow, session) {
44
44
  if (state.execution_version !== 1)
45
45
  return [];
46
46
  const loaded = loadedSkills(session);
47
- return obligationStages(state, workflow).flatMap(stage => (workflow.stage_bindings?.[stage]?.skills ?? []).flatMap(name => {
47
+ return obligationStages(state, workflow).flatMap(stage => (workflow.stage_bindings?.[stage]?.skills ?? []).flatMap(entry => {
48
+ // A binding names its skill with a source layer; the loaded set and the
49
+ // skill_result keys are keyed by name, because DSH's skill tool is addressed
50
+ // by name. The source decides which layer to resolve, not which key to use.
51
+ const name = entry.skill.name;
48
52
  if (!loaded.has(name))
49
53
  return [`${stage}: load skill "${name}" with the skill tool before leaving this stage`];
50
54
  if (!needsSkillReceipt(name))
@@ -1 +1 @@
1
- {"version":3,"file":"skill-audit.js","sourceRoot":"","sources":["../src/skill-audit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-audit.js","sourceRoot":"","sources":["../src/skill-audit.ts"],"names":[],"mappings":"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"}