aitoearn-dsh-plugin-test 0.0.1 → 0.0.2

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 CHANGED
@@ -16,12 +16,17 @@ Generated artifacts live only under `dist/` (gitignored).
16
16
  ## Build
17
17
 
18
18
  ```bash
19
- pnpm nx build agent-plugin # dsh distribution → dist/tools/agent-plugin/dsh
20
- pnpm nx pack agent-plugin # workbuddy distribution → dist/tools/agent-plugin/workbuddy
19
+ pnpm nx build agent-plugin # dsh distribution → dist/tools/agent-plugin/dsh
20
+ pnpm nx pack agent-plugin # workbuddy distribution (prod) → dist/tools/agent-plugin/workbuddy
21
+ pnpm nx run agent-plugin:pack:dev # workbuddy distribution (dev) → dist/tools/agent-plugin/workbuddy-dev
21
22
  pnpm nx test agent-plugin
22
23
  pnpm nx lint agent-plugin
23
24
  ```
24
25
 
26
+ WorkBuddy MCP connectors are packaged per environment: prod packs
27
+ `aitoearn` (aitoearn.ai) + `aitoearn-cn` (aitoearn.cn); dev packs
28
+ `aitoearn-dev` (dev endpoint).
29
+
25
30
  ## Install (DeepSeek Harness)
26
31
 
27
32
  ```bash
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "aitoearn-dsh-plugin-test",
3
3
  "type": "module",
4
- "version": "0.0.1",
4
+ "version": "0.0.2",
5
5
  "description": "[TEST] Aitoearn agent preset, skills, and MCP tools for DeepSeek Harness",
6
6
  "exports": {
7
7
  ".": {
@@ -8,11 +8,14 @@ const MCP_CLIENT_PACKAGE = '@deepseek-ai/dsh-mcp-client';
8
8
  * Make one bare package resolvable by plain Node resolution from the preset
9
9
  * directory. Module resolution from `<dshHome>/.agent-presets/aitoearn` walks
10
10
  * `<dshHome>/node_modules` — which nothing populates — so every bare runtime
11
- * import a bundled preset module makes needs its package linked there. An
12
- * existing real directory at the link path is left untouched.
11
+ * import a bundled preset module makes needs its package linked there. The
12
+ * link target is re-resolved on every sync, so a dangling or stale link (e.g.
13
+ * after the plugin moved or was reinstalled from a different source) heals
14
+ * itself; an existing real directory at the link path is left untouched.
13
15
  */
14
16
  function linkRuntimeDependency(packageName, dshHome) {
15
17
  const link = join(dshHome, 'node_modules', packageName);
18
+ const target = resolvePackageDir(packageName);
16
19
  let existing;
17
20
  try {
18
21
  existing = readlinkSync(link);
@@ -20,23 +23,28 @@ function linkRuntimeDependency(packageName, dshHome) {
20
23
  catch {
21
24
  existing = undefined;
22
25
  }
23
- if (existing !== undefined)
26
+ if (existing === target)
24
27
  return;
25
- if (existsSync(link))
26
- return;
27
- const hostRequire = createRequire(join(packageRoot(), 'package.json'));
28
- const target = nearestPackageDir(hostRequire, packageName);
29
- mkdirSync(dirname(link), { recursive: true });
30
- symlinkSync(target, link, process.platform === 'win32' ? 'junction' : 'dir');
28
+ if (existing !== undefined || !existsSync(link)) {
29
+ mkdirSync(dirname(link), { recursive: true });
30
+ rmSync(link, { force: true });
31
+ symlinkSync(target, link, process.platform === 'win32' ? 'junction' : 'dir');
32
+ }
31
33
  }
32
- /** Locate the installed package directory for one bare specifier. */
33
- function nearestPackageDir(hostRequire, packageName) {
34
- for (const searchPath of hostRequire.resolve.paths(packageName) ?? []) {
35
- const manifest = join(searchPath, packageName, 'package.json');
36
- if (existsSync(manifest))
37
- return dirname(manifest);
34
+ /** Resolve one bare specifier through the plugin's own graph, then walk up from the resolved entry to its package root. */
35
+ function resolvePackageDir(packageName) {
36
+ const hostRequire = createRequire(join(packageRoot(), 'package.json'));
37
+ const entry = hostRequire.resolve(packageName);
38
+ let dir = dirname(entry);
39
+ while (true) {
40
+ if (existsSync(join(dir, 'package.json')))
41
+ return dir;
42
+ const parent = dirname(dir);
43
+ if (parent === dir) {
44
+ throw new Error(`Aitoearn preset: cannot locate the package root of ${JSON.stringify(packageName)} (resolved to ${entry})`);
45
+ }
46
+ dir = parent;
38
47
  }
39
- throw new Error(`Aitoearn preset: cannot resolve installed package ${JSON.stringify(packageName)} for preset linking`);
40
48
  }
41
49
  export function syncAitoearnPreset(sourceDir = bundledPresetDir(), targetDir = userPresetDir(), dshHome = dshHomeDir()) {
42
50
  if (!existsSync(sourceDir)) {
@@ -1 +1 @@
1
- {"version":3,"file":"preset-sync.js","sourceRoot":"","sources":["../../../../../../tools/agent-plugin/src/dsh/preset-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preset-sync.js","sourceRoot":"","sources":["../../../../../../tools/agent-plugin/src/dsh/preset-sync.ts"],"names":[],"mappings":"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"}