@rubytech/taskmaster 1.0.86 → 1.0.87

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,5 +1,5 @@
1
1
  {
2
- "version": "1.0.86",
3
- "commit": "4df19413921a7bd2fe032dc9c0c9ec304b37ba55",
4
- "builtAt": "2026-02-20T23:18:11.799Z"
2
+ "version": "1.0.87",
3
+ "commit": "34922d22a6f68faea9266d374524fe8983fa64dd",
4
+ "builtAt": "2026-02-20T23:33:41.236Z"
5
5
  }
@@ -1,6 +1,6 @@
1
1
  import fsp from "node:fs/promises";
2
2
  import path from "node:path";
3
- import { resolveAgentWorkspaceRoot, resolveDefaultAgentId } from "../../agents/agent-scope.js";
3
+ import { resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../../agents/agent-scope.js";
4
4
  import { loadConfig } from "../../config/config.js";
5
5
  import { ErrorCodes, errorShape } from "../protocol/index.js";
6
6
  const MAX_PREVIEW_BYTES = 256 * 1024; // 256 KB for preview
@@ -8,7 +8,7 @@ const MAX_DOWNLOAD_BYTES = 5 * 1024 * 1024; // 5 MB for download
8
8
  const MAX_UPLOAD_BYTES = 5 * 1024 * 1024; // 5 MB for upload
9
9
  function resolveWorkspaceRoot() {
10
10
  const cfg = loadConfig();
11
- return resolveAgentWorkspaceRoot(cfg, resolveDefaultAgentId(cfg));
11
+ return resolveAgentWorkspaceDir(cfg, resolveDefaultAgentId(cfg));
12
12
  }
13
13
  /**
14
14
  * Resolve workspace root from request params.
@@ -20,7 +20,7 @@ function resolveWorkspaceForRequest(params) {
20
20
  if (!agentId)
21
21
  return resolveWorkspaceRoot();
22
22
  const cfg = loadConfig();
23
- return resolveAgentWorkspaceRoot(cfg, agentId);
23
+ return resolveAgentWorkspaceDir(cfg, agentId);
24
24
  }
25
25
  /**
26
26
  * Validate and resolve a relative path within the workspace.
@@ -2,6 +2,7 @@ import { resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../../agents/ag
2
2
  import { loadConfig } from "../../config/config.js";
3
3
  import { clearAuditEntries, getUnreviewedEntries } from "../../memory/audit.js";
4
4
  import { getMemorySearchManager } from "../../memory/index.js";
5
+ import { listMemoryFiles } from "../../memory/internal.js";
5
6
  import { ErrorCodes, errorShape } from "../protocol/index.js";
6
7
  export const memoryHandlers = {
7
8
  "memory.status": async ({ params, respond }) => {
@@ -30,6 +31,8 @@ export const memoryHandlers = {
30
31
  model: status.model,
31
32
  fts: status.fts,
32
33
  embeddingState: status.embeddingState,
34
+ workspaceDir: status.workspaceDir,
35
+ dbPath: status.dbPath,
33
36
  });
34
37
  }
35
38
  catch (err) {
@@ -48,6 +51,8 @@ export const memoryHandlers = {
48
51
  return;
49
52
  }
50
53
  try {
54
+ const workspaceDir = resolveAgentWorkspaceDir(cfg, agentId);
55
+ const memoryFilesBefore = await listMemoryFiles(workspaceDir);
51
56
  await manager.sync({ reason: "ui", force });
52
57
  const status = manager.status();
53
58
  respond(true, {
@@ -57,6 +62,9 @@ export const memoryHandlers = {
57
62
  chunks: status.chunks,
58
63
  sources: status.sources,
59
64
  sourceCounts: status.sourceCounts,
65
+ workspaceDir,
66
+ memoryFilesOnDisk: memoryFilesBefore.length,
67
+ memoryFilePaths: memoryFilesBefore.map((f) => f.replace(workspaceDir, "")),
60
68
  });
61
69
  }
62
70
  catch (err) {
@@ -1,4 +1,4 @@
1
- import { resolveAgentWorkspaceRoot, resolveDefaultAgentId } from "../../agents/agent-scope.js";
1
+ import { resolveAgentWorkspaceDir, resolveDefaultAgentId } from "../../agents/agent-scope.js";
2
2
  import { installSkill } from "../../agents/skills-install.js";
3
3
  import { buildWorkspaceSkillStatus } from "../../agents/skills-status.js";
4
4
  import { loadWorkspaceSkillEntries } from "../../agents/skills.js";
@@ -11,11 +11,11 @@ function listWorkspaceDirs(cfg) {
11
11
  if (Array.isArray(list)) {
12
12
  for (const entry of list) {
13
13
  if (entry && typeof entry === "object" && typeof entry.id === "string") {
14
- dirs.add(resolveAgentWorkspaceRoot(cfg, entry.id));
14
+ dirs.add(resolveAgentWorkspaceDir(cfg, entry.id));
15
15
  }
16
16
  }
17
17
  }
18
- dirs.add(resolveAgentWorkspaceRoot(cfg, resolveDefaultAgentId(cfg)));
18
+ dirs.add(resolveAgentWorkspaceDir(cfg, resolveDefaultAgentId(cfg)));
19
19
  return [...dirs];
20
20
  }
21
21
  function collectSkillBins(entries) {
@@ -52,7 +52,7 @@ export const skillsHandlers = {
52
52
  return;
53
53
  }
54
54
  const cfg = loadConfig();
55
- const workspaceDir = resolveAgentWorkspaceRoot(cfg, resolveDefaultAgentId(cfg));
55
+ const workspaceDir = resolveAgentWorkspaceDir(cfg, resolveDefaultAgentId(cfg));
56
56
  const report = buildWorkspaceSkillStatus(workspaceDir, {
57
57
  config: cfg,
58
58
  eligibility: { remote: getRemoteSkillEligibility() },
@@ -81,7 +81,7 @@ export const skillsHandlers = {
81
81
  }
82
82
  const p = params;
83
83
  const cfg = loadConfig();
84
- const workspaceDirRaw = resolveAgentWorkspaceRoot(cfg, resolveDefaultAgentId(cfg));
84
+ const workspaceDirRaw = resolveAgentWorkspaceDir(cfg, resolveDefaultAgentId(cfg));
85
85
  const result = await installSkill({
86
86
  workspaceDir: workspaceDirRaw,
87
87
  skillName: p.name,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rubytech/taskmaster",
3
- "version": "1.0.86",
3
+ "version": "1.0.87",
4
4
  "description": "AI-powered business assistant for small businesses",
5
5
  "publishConfig": {
6
6
  "access": "public"