@godv61/dsh-task-engine 0.23.8 → 0.23.9

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.
@@ -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() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@godv61/dsh-task-engine",
3
- "version": "0.23.8",
3
+ "version": "0.23.9",
4
4
  "description": "Preset-workflow engineering delivery engine for DeepSeek Harness: a `dev_task` tool that hard-gates stage transitions and commit scope/message, per-node skill/rule bindings with progressive disclosure, a workbench to pick a flow preset and mount skills/rules, and preset-scoped activation — the tool and skills activate only for sessions on a preset that names the agent row.",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Black-box verification of the npm tarball before publishing: packs the
3
3
  * package, extracts it into a clean temp dir, and proves the published entry
4
- * points actually work �?main import, browser client registration, the bundled
4
+ * points actually work —main import, browser client registration, the bundled
5
5
  * `.p0-test.mjs`, the CLI, and the `files` whitelist.
6
6
  *
7
7
  * Run: `npm run verify:package`
@@ -51,7 +51,7 @@ check('tarball excludes build scripts', !listing.some(line => line.endsWith('bui
51
51
  // Every `node <file>` script the manifest declares must actually ship, EXCEPT
52
52
  // the build-time ones that `prepare` needs in the source tree only. A script
53
53
  // whose target is absent from `files` installs fine and then dies with
54
- // MODULE_NOT_FOUND �?which is exactly what verify:package and verify:dsh did
54
+ // MODULE_NOT_FOUND —which is exactly what verify:package and verify:dsh did
55
55
  // until this assertion existed, because neither scripts/ path was published.
56
56
  {
57
57
  const manifest = JSON.parse(readFileSync(join(pkgRoot, 'package.json'), 'utf8'))