@alexnetrebskii/hive-agent 1.4.0 → 1.5.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.
Files changed (67) hide show
  1. package/dist/agent.d.ts +1 -1
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +19 -11
  4. package/dist/agent.js.map +1 -1
  5. package/dist/index.d.ts +1 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/providers/workspace/file.d.ts +11 -6
  10. package/dist/providers/workspace/file.d.ts.map +1 -1
  11. package/dist/providers/workspace/file.js +90 -20
  12. package/dist/providers/workspace/file.js.map +1 -1
  13. package/dist/providers/workspace/memory.d.ts +17 -5
  14. package/dist/providers/workspace/memory.d.ts.map +1 -1
  15. package/dist/providers/workspace/memory.js +122 -8
  16. package/dist/providers/workspace/memory.js.map +1 -1
  17. package/dist/providers/workspace/types.d.ts +9 -10
  18. package/dist/providers/workspace/types.d.ts.map +1 -1
  19. package/dist/providers/workspace/types.js +2 -2
  20. package/dist/providers/workspace/workspace-provider.test.js +161 -179
  21. package/dist/providers/workspace/workspace-provider.test.js.map +1 -1
  22. package/dist/shell/commands/cat.js +2 -2
  23. package/dist/shell/commands/cat.js.map +1 -1
  24. package/dist/shell/commands/find.js +5 -5
  25. package/dist/shell/commands/find.js.map +1 -1
  26. package/dist/shell/commands/grep.js +3 -3
  27. package/dist/shell/commands/grep.js.map +1 -1
  28. package/dist/shell/commands/head.js +1 -1
  29. package/dist/shell/commands/head.js.map +1 -1
  30. package/dist/shell/commands/jq.js +1 -1
  31. package/dist/shell/commands/jq.js.map +1 -1
  32. package/dist/shell/commands/ls.js +4 -4
  33. package/dist/shell/commands/ls.js.map +1 -1
  34. package/dist/shell/commands/mkdir.js +2 -2
  35. package/dist/shell/commands/mkdir.js.map +1 -1
  36. package/dist/shell/commands/rm.js +4 -4
  37. package/dist/shell/commands/rm.js.map +1 -1
  38. package/dist/shell/commands/tail.js +1 -1
  39. package/dist/shell/commands/tail.js.map +1 -1
  40. package/dist/shell/index.d.ts +0 -1
  41. package/dist/shell/index.d.ts.map +1 -1
  42. package/dist/shell/index.js +0 -1
  43. package/dist/shell/index.js.map +1 -1
  44. package/dist/shell/shell.d.ts +5 -7
  45. package/dist/shell/shell.d.ts.map +1 -1
  46. package/dist/shell/shell.js +7 -11
  47. package/dist/shell/shell.js.map +1 -1
  48. package/dist/shell/shell.test.js +34 -46
  49. package/dist/shell/shell.test.js.map +1 -1
  50. package/dist/shell/types.d.ts +2 -12
  51. package/dist/shell/types.d.ts.map +1 -1
  52. package/dist/tools/sub-agent.d.ts.map +1 -1
  53. package/dist/tools/sub-agent.js +2 -0
  54. package/dist/tools/sub-agent.js.map +1 -1
  55. package/dist/tools/tasks.d.ts +1 -1
  56. package/dist/tools/tasks.d.ts.map +1 -1
  57. package/dist/tools/tasks.js +2 -2
  58. package/dist/tools/tasks.js.map +1 -1
  59. package/dist/workspace.d.ts +18 -38
  60. package/dist/workspace.d.ts.map +1 -1
  61. package/dist/workspace.js +46 -108
  62. package/dist/workspace.js.map +1 -1
  63. package/package.json +1 -1
  64. package/dist/shell/fs.d.ts +0 -31
  65. package/dist/shell/fs.d.ts.map +0 -1
  66. package/dist/shell/fs.js +0 -161
  67. package/dist/shell/fs.js.map +0 -1
package/dist/agent.d.ts CHANGED
@@ -7,7 +7,7 @@ import type { HiveConfig, RunOptions, AgentResult } from "./types.js";
7
7
  import { TraceBuilder } from "./trace.js";
8
8
  /** Path where the plan is stored in workspace */
9
9
  export declare const PLAN_PATH = ".hive/plan.md";
10
- /** Full filesystem path for the plan in VirtualFS */
10
+ /** Full filesystem path for the plan */
11
11
  export declare const PLAN_FS_PATH = "/.hive/plan.md";
12
12
  /**
13
13
  * Hive Agent Class
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,UAAU,EAGV,UAAU,EACV,WAAW,EAEZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAa1C,iDAAiD;AACjD,eAAO,MAAM,SAAS,kBAAkB,CAAC;AAEzC,qDAAqD;AACrD,eAAO,MAAM,YAAY,mBAAkB,CAAC;AA4C5C;;GAEG;AACH,qBAAa,IAAI;IACf,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,KAAK,CAAS;IACtB,yEAAyE;IACzE,OAAO,CAAC,mBAAmB,CAAC,CAAe;gBAE/B,MAAM,EAAE,UAAU;IA0C9B;;OAEG;IACH,sBAAsB,IAAI,YAAY,GAAG,SAAS;IAIlD;;OAEG;IACH,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;IAI/D;;;OAGG;IACH,OAAO,CAAC,WAAW;IA6DnB;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,WAAW,CAAC;CAiO3E"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,UAAU,EAGV,UAAU,EACV,WAAW,EAEZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAa1C,iDAAiD;AACjD,eAAO,MAAM,SAAS,kBAAkB,CAAC;AAEzC,wCAAwC;AACxC,eAAO,MAAM,YAAY,mBAAkB,CAAC;AA4C5C;;GAEG;AACH,qBAAa,IAAI;IACf,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,KAAK,CAAS;IACtB,yEAAyE;IACzE,OAAO,CAAC,mBAAmB,CAAC,CAAe;gBAE/B,MAAM,EAAE,UAAU;IAiD9B;;OAEG;IACH,sBAAsB,IAAI,YAAY,GAAG,SAAS;IAIlD;;OAEG;IACH,sBAAsB,CAAC,OAAO,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;IAI/D;;;OAGG;IACH,OAAO,CAAC,WAAW;IA6DnB;;OAEG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,UAAe,GAAG,OAAO,CAAC,WAAW,CAAC;CAiO3E"}
package/dist/agent.js CHANGED
@@ -12,7 +12,7 @@ import { createAskUserTool, createTaskTool as createSubAgentTool, TaskManager, c
12
12
  import { getBuiltInAgents } from "./built-in-agents/index.js";
13
13
  /** Path where the plan is stored in workspace */
14
14
  export const PLAN_PATH = ".hive/plan.md";
15
- /** Full filesystem path for the plan in VirtualFS */
15
+ /** Full filesystem path for the plan */
16
16
  export const PLAN_FS_PATH = `/${PLAN_PATH}`;
17
17
  /** System prompt prepended in plan mode */
18
18
  const PLAN_MODE_INSTRUCTIONS = `# Plan Mode
@@ -76,11 +76,19 @@ export class Hive {
76
76
  if (!config.disableAskUser) {
77
77
  this.tools.push(createAskUserTool());
78
78
  }
79
- // Auto-merge built-in agents (user-defined agents with same name take priority)
80
- const builtIn = getBuiltInAgents();
81
- const userAgentNames = new Set((this.config.agents || []).map((a) => a.name));
82
- const newAgents = builtIn.filter((a) => !userAgentNames.has(a.name));
83
- this.config.agents = [...(this.config.agents || []), ...newAgents];
79
+ // Auto-merge built-in agents only when agents is not explicitly set.
80
+ // If agents is explicitly provided (even as []), respect that — no auto-injection.
81
+ // This prevents sub-agents from recursively spawning their own sub-agents.
82
+ if (!('agents' in config)) {
83
+ const builtIn = getBuiltInAgents();
84
+ this.config.agents = [...builtIn];
85
+ }
86
+ else if (config.agents && config.agents.length > 0) {
87
+ const builtIn = getBuiltInAgents();
88
+ const userAgentNames = new Set(config.agents.map((a) => a.name));
89
+ const newAgents = builtIn.filter((a) => !userAgentNames.has(a.name));
90
+ this.config.agents = [...config.agents, ...newAgents];
91
+ }
84
92
  // Add __sub_agent__ tool if sub-agents are defined
85
93
  if (this.config.agents && this.config.agents.length > 0) {
86
94
  this.tools.push(createSubAgentTool({
@@ -231,12 +239,12 @@ export class Hive {
231
239
  const ws = workspace ?? new Workspace();
232
240
  await ws.init();
233
241
  // Capture existing plan content before cleanup (for prompt injection)
234
- const existingPlan = ws.read(PLAN_PATH);
242
+ const existingPlan = await ws.read(PLAN_PATH);
235
243
  const hasExistingPlan = !!existingPlan && typeof existingPlan === "string";
236
244
  // Always delete old plan file — each run starts clean.
237
245
  // The content is already captured above for prompt injection.
238
246
  if (hasExistingPlan) {
239
- ws.delete(PLAN_PATH);
247
+ await ws.delete(PLAN_PATH);
240
248
  }
241
249
  // Configure shell read-only mode based on mode option
242
250
  const shell = ws.getShell();
@@ -253,10 +261,10 @@ export class Hive {
253
261
  // On a normal run (even with conversation history), start with a clean task list.
254
262
  const taskManager = new TaskManager();
255
263
  if (isResuming) {
256
- taskManager.restoreFromWorkspace(ws);
264
+ await taskManager.restoreFromWorkspace(ws);
257
265
  }
258
266
  else {
259
- ws.delete(".hive/tasks.json");
267
+ await ws.delete(".hive/tasks.json");
260
268
  }
261
269
  // Create tool context
262
270
  const toolContext = {
@@ -287,7 +295,7 @@ export class Hive {
287
295
  }
288
296
  // Inject workspace state snapshot so the AI knows what data exists
289
297
  // without needing to call explore first
290
- const workspaceItems = ws.list().filter((item) => !item.path.startsWith("/.hive/"));
298
+ const workspaceItems = (await ws.list()).filter((item) => !item.path.startsWith("/.hive/"));
291
299
  if (workspaceItems.length > 0) {
292
300
  const stateLines = workspaceItems.map((item) => `- ${item.path}: ${item.preview}`);
293
301
  systemPrompt += `\n\n## Current Workspace State\n\nThe following data currently exists in workspace:\n\n${stateLines.join("\n")}\n\nUse the shell to read full contents (e.g. \`cat ${workspaceItems[0].path}\`). Do NOT recreate data that already exists — read and present it instead.`;
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -15,7 +15,7 @@ export { TaskManager, formatTaskList, createTaskTools, createTaskCreateTool, cre
15
15
  export { TraceBuilder, ConsoleTraceProvider, generateTraceId, generateSpanId, calculateCost, DEFAULT_MODEL_PRICING, type TraceProvider, type TraceId, type SpanId, type Trace, type AgentSpan, type TraceEvent, type LLMCallEvent, type ToolCallEvent, type TraceContext, type ModelPricing, type ConsoleTraceConfig } from './trace.js';
16
16
  export { Workspace, type WorkspaceEntry, type WorkspaceListItem, type WorkspaceConfig, type WorkspaceConfigExt, type PathConfig, type ValidatorFn, type ZodLike, type ValidationError, type WriteResult } from './workspace.js';
17
17
  export { type WorkspaceProvider, type WorkspaceChange, type WorkspaceChangeListener, MemoryWorkspaceProvider, FileWorkspaceProvider } from './providers/workspace/index.js';
18
- export { Shell, VirtualFS, type ShellConfig, type ShellResult, type CommandHandler, type CommandHelp, type CommandFlag, type CommandExample } from './shell/index.js';
18
+ export { Shell, type ShellConfig, type ShellResult, type CommandHandler, type CommandHelp, type CommandFlag, type CommandExample } from './shell/index.js';
19
19
  export { exploreAgent, planAgent, getBuiltInAgents } from './built-in-agents/index.js';
20
20
  export { RunRecorder, RunReplayer, RunTester, type RunRecorderConfig, type RunRecord, type RunRecordConfig, type RunRecordResult, type SerializedTool, type SerializedSubAgentConfig, type RunTesterConfig, type TestResult, type TestSummary } from './providers/dataset/index.js';
21
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAG1D,YAAY,EAEV,OAAO,EACP,WAAW,EACX,YAAY,EACZ,SAAS,EACT,aAAa,EACb,YAAY,EACZ,eAAe,EAGf,IAAI,EACJ,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,EAGV,UAAU,EACV,cAAc,EACd,UAAU,EACV,WAAW,EACX,WAAW,EACX,eAAe,EACf,cAAc,EACd,gBAAgB,EAGhB,QAAQ,EACR,UAAU,EACV,WAAW,EACX,YAAY,EACZ,sBAAsB,EAGtB,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,UAAU,EAGV,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,cAAc,EAGd,UAAU,EAGV,eAAe,EACf,kBAAkB,EAClB,eAAe,EAChB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,cAAc,EACd,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,aAAa,EACb,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACd,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,gBAAgB,EACjB,MAAM,kCAAkC,CAAA;AAGzC,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACf,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EAErB,gBAAgB,EAChB,eAAe,EAEf,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EAEb,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAA;AAGpB,OAAO,EACL,WAAW,EACX,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,eAAe,EAEpB,WAAW,EACX,cAAc,EACd,cAAc,EACd,KAAK,eAAe,EACrB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,OAAO,EACZ,KAAK,MAAM,EACX,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACxB,MAAM,YAAY,CAAA;AAGnB,OAAO,EACL,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,OAAO,EACZ,KAAK,eAAe,EACpB,KAAK,WAAW,EACjB,MAAM,gBAAgB,CAAA;AAGvB,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAC5B,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,gCAAgC,CAAA;AAGvC,OAAO,EACL,KAAK,EACL,SAAS,EACT,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAGtF,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,WAAW,EACjB,MAAM,8BAA8B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -27,8 +27,8 @@ export { TraceBuilder, ConsoleTraceProvider, generateTraceId, generateSpanId, ca
27
27
  export { Workspace } from './workspace.js';
28
28
  // Workspace Providers
29
29
  export { MemoryWorkspaceProvider, FileWorkspaceProvider } from './providers/workspace/index.js';
30
- // Shell (Virtual FS for context)
31
- export { Shell, VirtualFS } from './shell/index.js';
30
+ // Shell
31
+ export { Shell } from './shell/index.js';
32
32
  // Built-in Agents
33
33
  export { exploreAgent, planAgent, getBuiltInAgents } from './built-in-agents/index.js';
34
34
  // Dataset (Run Recording, Replay & Testing)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mBAAmB;AACnB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AA8D1D,YAAY;AACZ,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,aAAa,EAGd,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,gBAAgB,EACjB,MAAM,kCAAkC,CAAA;AAEzC,YAAY;AACZ,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACf,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB;AACrB,kBAAkB;AAClB,gBAAgB,EAChB,eAAe;AACf,kDAAkD;AAClD,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EAUd,MAAM,aAAa,CAAA;AAEpB,kDAAkD;AAClD,OAAO,EACL,WAAW,EACX,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB;AAElB,sCAAsC;AACtC,WAAW,EACX,cAAc,EACd,cAAc,EAEf,MAAM,kBAAkB,CAAA;AAEzB,UAAU;AACV,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,aAAa,EACb,qBAAqB,EAYtB,MAAM,YAAY,CAAA;AAEnB,YAAY;AACZ,OAAO,EACL,SAAS,EAUV,MAAM,gBAAgB,CAAA;AAEvB,sBAAsB;AACtB,OAAO,EAIL,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,gCAAgC,CAAA;AAEvC,iCAAiC;AACjC,OAAO,EACL,KAAK,EACL,SAAS,EAOV,MAAM,kBAAkB,CAAA;AAEzB,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAEtF,4CAA4C;AAC5C,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EAUV,MAAM,8BAA8B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,mBAAmB;AACnB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AA8D1D,YAAY;AACZ,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,cAAc,EAEf,MAAM,2BAA2B,CAAA;AAElC,OAAO,EACL,aAAa,EAGd,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,gBAAgB,EACjB,MAAM,kCAAkC,CAAA;AAEzC,YAAY;AACZ,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACf,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB;AACrB,kBAAkB;AAClB,gBAAgB,EAChB,eAAe;AACf,kDAAkD;AAClD,WAAW,EACX,cAAc,EACd,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EAUd,MAAM,aAAa,CAAA;AAEpB,kDAAkD;AAClD,OAAO,EACL,WAAW,EACX,cAAc,EACd,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB;AAElB,sCAAsC;AACtC,WAAW,EACX,cAAc,EACd,cAAc,EAEf,MAAM,kBAAkB,CAAA;AAEzB,UAAU;AACV,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,aAAa,EACb,qBAAqB,EAYtB,MAAM,YAAY,CAAA;AAEnB,YAAY;AACZ,OAAO,EACL,SAAS,EAUV,MAAM,gBAAgB,CAAA;AAEvB,sBAAsB;AACtB,OAAO,EAIL,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,gCAAgC,CAAA;AAEvC,QAAQ;AACR,OAAO,EACL,KAAK,EAON,MAAM,kBAAkB,CAAA;AAEzB,kBAAkB;AAClB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAEtF,4CAA4C;AAC5C,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EAUV,MAAM,8BAA8B,CAAA"}
@@ -2,19 +2,24 @@
2
2
  * File Workspace Provider
3
3
  *
4
4
  * Persists workspace entries to a directory on disk.
5
- * load() reads all files recursively; write/delete sync individual files.
5
+ * All read/write operations go directly to the filesystem.
6
6
  */
7
7
  import type { WorkspaceProvider } from './types.js';
8
8
  export declare class FileWorkspaceProvider implements WorkspaceProvider {
9
9
  private dir;
10
10
  constructor(dir: string);
11
- load(): Promise<Record<string, string>>;
11
+ read(path: string): Promise<string | null>;
12
12
  write(path: string, content: string): Promise<void>;
13
- delete(path: string): Promise<void>;
14
- /** Convert a VirtualFS path (e.g. /user.json) to a local file path */
13
+ delete(path: string): Promise<boolean>;
14
+ exists(path: string): Promise<boolean>;
15
+ list(path: string): Promise<string[]>;
16
+ glob(pattern: string): Promise<string[]>;
17
+ mkdir(path: string): Promise<void>;
18
+ isDirectory(path: string): Promise<boolean>;
19
+ /** Convert a workspace path (e.g. /user.json) to a local file path */
15
20
  private toFilePath;
16
- /** Convert a local file path back to a VirtualFS path */
21
+ /** Convert a local file path back to a workspace path */
17
22
  private toFSPath;
18
- private readDirRecursive;
23
+ private walkDir;
19
24
  }
20
25
  //# sourceMappingURL=file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/providers/workspace/file.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,qBAAa,qBAAsB,YAAW,iBAAiB;IAC7D,OAAO,CAAC,GAAG,CAAQ;gBAEP,GAAG,EAAE,MAAM;IAIjB,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAgBvC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzC,sEAAsE;IACtE,OAAO,CAAC,UAAU;IAMlB,yDAAyD;IACzD,OAAO,CAAC,QAAQ;YAKF,gBAAgB;CAc/B"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../../src/providers/workspace/file.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAmBnD,qBAAa,qBAAsB,YAAW,iBAAiB;IAC7D,OAAO,CAAC,GAAG,CAAQ;gBAEP,GAAG,EAAE,MAAM;IAIjB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAY1C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBtC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYtC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAarC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAaxC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYjD,sEAAsE;IACtE,OAAO,CAAC,UAAU;IAKlB,yDAAyD;IACzD,OAAO,CAAC,QAAQ;YAKF,OAAO;CAWtB"}
@@ -2,28 +2,41 @@
2
2
  * File Workspace Provider
3
3
  *
4
4
  * Persists workspace entries to a directory on disk.
5
- * load() reads all files recursively; write/delete sync individual files.
5
+ * All read/write operations go directly to the filesystem.
6
6
  */
7
- import { readdir, readFile, writeFile, unlink, mkdir } from 'node:fs/promises';
7
+ import { readdir, readFile, writeFile, unlink, mkdir, stat, rm } from 'node:fs/promises';
8
8
  import { join, relative } from 'node:path';
9
+ /**
10
+ * Simple glob pattern matcher
11
+ */
12
+ function matchGlob(path, pattern) {
13
+ const regexPattern = pattern
14
+ .replace(/[.+^${}()|[\]\\]/g, '\\$&')
15
+ .replace(/\/\*\*\//g, '{{GLOBSTARSLASH}}') // /**/ → match / or /anything/
16
+ .replace(/\*\*/g, '{{GLOBSTAR}}') // remaining ** (e.g. at end)
17
+ .replace(/\*/g, '[^/]*')
18
+ .replace(/\?/g, '[^/]')
19
+ .replace(/{{GLOBSTARSLASH}}/g, '(?:/|/.*/)') // /**/ → / or /stuff/
20
+ .replace(/{{GLOBSTAR}}/g, '.*'); // ** alone → match anything
21
+ const regex = new RegExp(`^${regexPattern}$`);
22
+ return regex.test(path);
23
+ }
9
24
  export class FileWorkspaceProvider {
10
25
  dir;
11
26
  constructor(dir) {
12
27
  this.dir = dir;
13
28
  }
14
- async load() {
15
- const result = {};
29
+ async read(path) {
16
30
  try {
17
- await this.readDirRecursive(this.dir, result);
31
+ const filePath = this.toFilePath(path);
32
+ return await readFile(filePath, 'utf-8');
18
33
  }
19
34
  catch (err) {
20
- // Directory doesn't exist yet — return empty
21
35
  if (err.code === 'ENOENT') {
22
- return result;
36
+ return null;
23
37
  }
24
38
  throw err;
25
39
  }
26
- return result;
27
40
  }
28
41
  async write(path, content) {
29
42
  const filePath = this.toFilePath(path);
@@ -34,37 +47,94 @@ export class FileWorkspaceProvider {
34
47
  async delete(path) {
35
48
  const filePath = this.toFilePath(path);
36
49
  try {
37
- await unlink(filePath);
50
+ const s = await stat(filePath);
51
+ if (s.isDirectory()) {
52
+ await rm(filePath, { recursive: true, force: true });
53
+ }
54
+ else {
55
+ await unlink(filePath);
56
+ }
57
+ return true;
58
+ }
59
+ catch (err) {
60
+ if (err.code === 'ENOENT') {
61
+ return false;
62
+ }
63
+ throw err;
64
+ }
65
+ }
66
+ async exists(path) {
67
+ try {
68
+ await stat(this.toFilePath(path));
69
+ return true;
70
+ }
71
+ catch (err) {
72
+ if (err.code === 'ENOENT') {
73
+ return false;
74
+ }
75
+ throw err;
76
+ }
77
+ }
78
+ async list(path) {
79
+ try {
80
+ const dirPath = this.toFilePath(path);
81
+ const entries = await readdir(dirPath, { withFileTypes: true });
82
+ return entries.map(e => e.isDirectory() ? e.name + '/' : e.name).sort();
83
+ }
84
+ catch (err) {
85
+ if (err.code === 'ENOENT') {
86
+ return [];
87
+ }
88
+ throw err;
89
+ }
90
+ }
91
+ async glob(pattern) {
92
+ const results = [];
93
+ try {
94
+ await this.walkDir(this.dir, results);
95
+ }
96
+ catch (err) {
97
+ if (err.code === 'ENOENT') {
98
+ return [];
99
+ }
100
+ throw err;
101
+ }
102
+ return results.filter(p => matchGlob(p, pattern)).sort();
103
+ }
104
+ async mkdir(path) {
105
+ await mkdir(this.toFilePath(path), { recursive: true });
106
+ }
107
+ async isDirectory(path) {
108
+ try {
109
+ const s = await stat(this.toFilePath(path));
110
+ return s.isDirectory();
38
111
  }
39
112
  catch (err) {
40
- // Ignore if file doesn't exist
41
- if (err.code !== 'ENOENT') {
42
- throw err;
113
+ if (err.code === 'ENOENT') {
114
+ return false;
43
115
  }
116
+ throw err;
44
117
  }
45
118
  }
46
- /** Convert a VirtualFS path (e.g. /user.json) to a local file path */
119
+ /** Convert a workspace path (e.g. /user.json) to a local file path */
47
120
  toFilePath(fsPath) {
48
- // Strip leading / for storage
49
121
  const stripped = fsPath.replace(/^\//, '');
50
122
  return join(this.dir, stripped);
51
123
  }
52
- /** Convert a local file path back to a VirtualFS path */
124
+ /** Convert a local file path back to a workspace path */
53
125
  toFSPath(filePath) {
54
126
  const rel = relative(this.dir, filePath);
55
127
  return `/${rel}`;
56
128
  }
57
- async readDirRecursive(dir, result) {
129
+ async walkDir(dir, results) {
58
130
  const entries = await readdir(dir, { withFileTypes: true });
59
131
  for (const entry of entries) {
60
132
  const fullPath = join(dir, entry.name);
61
133
  if (entry.isDirectory()) {
62
- await this.readDirRecursive(fullPath, result);
134
+ await this.walkDir(fullPath, results);
63
135
  }
64
136
  else if (entry.isFile()) {
65
- const content = await readFile(fullPath, 'utf-8');
66
- const fsPath = this.toFSPath(fullPath);
67
- result[fsPath] = content;
137
+ results.push(this.toFSPath(fullPath));
68
138
  }
69
139
  }
70
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/providers/workspace/file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file.js","sourceRoot":"","sources":["../../../src/providers/workspace/file.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,25 @@
1
1
  /**
2
2
  * Memory Workspace Provider
3
3
  *
4
- * No-op provider everything lives only in VirtualFS.
5
- * Default behavior when no persistence is needed.
4
+ * In-memory filesystem implementation. Absorbs the old VirtualFS functionality.
5
+ * Default provider when no persistence is needed.
6
6
  */
7
7
  import type { WorkspaceProvider } from './types.js';
8
8
  export declare class MemoryWorkspaceProvider implements WorkspaceProvider {
9
- load(): Promise<Record<string, string>>;
10
- write(_path: string, _content: string): Promise<void>;
11
- delete(_path: string): Promise<void>;
9
+ private data;
10
+ private directories;
11
+ constructor(initial?: Record<string, unknown>);
12
+ private normalizePath;
13
+ private getParentDir;
14
+ private writeSync;
15
+ private mkdirSync;
16
+ read(path: string): Promise<string | null>;
17
+ write(path: string, content: string): Promise<void>;
18
+ delete(path: string): Promise<boolean>;
19
+ exists(path: string): Promise<boolean>;
20
+ list(path: string): Promise<string[]>;
21
+ glob(pattern: string): Promise<string[]>;
22
+ mkdir(path: string): Promise<void>;
23
+ isDirectory(path: string): Promise<boolean>;
12
24
  }
13
25
  //# sourceMappingURL=memory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/providers/workspace/memory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,qBAAa,uBAAwB,YAAW,iBAAiB;IACzD,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAIvC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG3C"}
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/providers/workspace/memory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAoBnD,qBAAa,uBAAwB,YAAW,iBAAiB;IAC/D,OAAO,CAAC,IAAI,CAAiC;IAC7C,OAAO,CAAC,WAAW,CAA8B;gBAErC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAU7C,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,SAAS;IAUX,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK1C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuBtC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA4BrC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAUxC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAIlD"}
@@ -1,18 +1,132 @@
1
1
  /**
2
2
  * Memory Workspace Provider
3
3
  *
4
- * No-op provider everything lives only in VirtualFS.
5
- * Default behavior when no persistence is needed.
4
+ * In-memory filesystem implementation. Absorbs the old VirtualFS functionality.
5
+ * Default provider when no persistence is needed.
6
6
  */
7
+ /**
8
+ * Simple glob pattern matcher
9
+ */
10
+ function matchGlob(path, pattern) {
11
+ // Handle **/ to match zero or more path segments
12
+ const regexPattern = pattern
13
+ .replace(/[.+^${}()|[\]\\]/g, '\\$&')
14
+ .replace(/\/\*\*\//g, '{{GLOBSTARSLASH}}') // /**/ → match / or /anything/
15
+ .replace(/\*\*/g, '{{GLOBSTAR}}') // remaining ** (e.g. at end)
16
+ .replace(/\*/g, '[^/]*')
17
+ .replace(/\?/g, '[^/]')
18
+ .replace(/{{GLOBSTARSLASH}}/g, '(?:/|/.*/)') // /**/ → / or /stuff/
19
+ .replace(/{{GLOBSTAR}}/g, '.*'); // ** alone → match anything
20
+ const regex = new RegExp(`^${regexPattern}$`);
21
+ return regex.test(path);
22
+ }
7
23
  export class MemoryWorkspaceProvider {
8
- async load() {
9
- return {};
24
+ data = new Map();
25
+ directories = new Set(['/']);
26
+ constructor(initial) {
27
+ if (initial) {
28
+ for (const [key, value] of Object.entries(initial)) {
29
+ const path = key.startsWith('/') ? key : `/${key}`;
30
+ const content = typeof value === 'string' ? value : JSON.stringify(value, null, 2);
31
+ this.writeSync(path, content);
32
+ }
33
+ }
34
+ }
35
+ normalizePath(path) {
36
+ return path.replace(/\/+/g, '/').replace(/\/$/, '') || '/';
37
+ }
38
+ getParentDir(path) {
39
+ const parts = path.split('/');
40
+ parts.pop();
41
+ return parts.join('/') || '/';
42
+ }
43
+ writeSync(path, content) {
44
+ const normalized = this.normalizePath(path);
45
+ const parent = this.getParentDir(normalized);
46
+ if (parent !== '/') {
47
+ this.mkdirSync(parent);
48
+ }
49
+ this.data.set(normalized, content);
50
+ }
51
+ mkdirSync(path) {
52
+ const normalized = this.normalizePath(path);
53
+ const parts = normalized.split('/').filter(Boolean);
54
+ let current = '';
55
+ for (const part of parts) {
56
+ current += '/' + part;
57
+ this.directories.add(current);
58
+ }
59
+ }
60
+ async read(path) {
61
+ const normalized = this.normalizePath(path);
62
+ return this.data.get(normalized) ?? null;
63
+ }
64
+ async write(path, content) {
65
+ this.writeSync(path, content);
66
+ }
67
+ async delete(path) {
68
+ const normalized = this.normalizePath(path);
69
+ // If directory, delete all children
70
+ if (this.directories.has(normalized)) {
71
+ const prefix = normalized + '/';
72
+ for (const key of [...this.data.keys()]) {
73
+ if (key.startsWith(prefix)) {
74
+ this.data.delete(key);
75
+ }
76
+ }
77
+ // Remove subdirectories
78
+ for (const dir of [...this.directories]) {
79
+ if (dir.startsWith(prefix) || dir === normalized) {
80
+ this.directories.delete(dir);
81
+ }
82
+ }
83
+ return true;
84
+ }
85
+ return this.data.delete(normalized);
86
+ }
87
+ async exists(path) {
88
+ const normalized = this.normalizePath(path);
89
+ return this.data.has(normalized) || this.directories.has(normalized);
90
+ }
91
+ async list(path) {
92
+ const normalized = this.normalizePath(path);
93
+ const prefix = normalized === '/' ? '/' : normalized + '/';
94
+ const results = new Set();
95
+ for (const key of this.data.keys()) {
96
+ if (key.startsWith(prefix)) {
97
+ const relative = key.slice(prefix.length);
98
+ const firstPart = relative.split('/')[0];
99
+ if (firstPart) {
100
+ results.add(firstPart);
101
+ }
102
+ }
103
+ }
104
+ for (const dir of this.directories) {
105
+ if (dir.startsWith(prefix)) {
106
+ const relative = dir.slice(prefix.length);
107
+ const firstPart = relative.split('/')[0];
108
+ if (firstPart) {
109
+ results.add(firstPart + '/');
110
+ }
111
+ }
112
+ }
113
+ return Array.from(results).sort();
114
+ }
115
+ async glob(pattern) {
116
+ const results = [];
117
+ for (const key of this.data.keys()) {
118
+ if (matchGlob(key, pattern)) {
119
+ results.push(key);
120
+ }
121
+ }
122
+ return results.sort();
10
123
  }
11
- async write(_path, _content) {
12
- // no-op
124
+ async mkdir(path) {
125
+ this.mkdirSync(path);
13
126
  }
14
- async delete(_path) {
15
- // no-op
127
+ async isDirectory(path) {
128
+ const normalized = this.normalizePath(path);
129
+ return this.directories.has(normalized);
16
130
  }
17
131
  }
18
132
  //# sourceMappingURL=memory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/providers/workspace/memory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,OAAO,uBAAuB;IAClC,KAAK,CAAC,IAAI;QACR,OAAO,EAAE,CAAA;IACX,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAAa,EAAE,QAAgB;QACzC,QAAQ;IACV,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,QAAQ;IACV,CAAC;CACF"}
1
+ {"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/providers/workspace/memory.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,20 @@
1
1
  /**
2
2
  * Workspace Provider Interface
3
3
  *
4
- * Async persistence layer that sits behind VirtualFS.
5
- * Providers handle loading, writing, deleting, and subscribing to workspace changes.
4
+ * Async filesystem layer that Shell and Workspace use directly.
5
+ * Providers handle reading, writing, deleting, and subscribing to workspace changes.
6
6
  */
7
7
  export interface WorkspaceProvider {
8
- /** Load all workspace data. Called once during init to hydrate VirtualFS. */
9
- load(): Promise<Record<string, string>>;
10
- /** Persist a single write. Called via onChange (fire-and-forget). */
8
+ read(path: string): Promise<string | null>;
11
9
  write(path: string, content: string): Promise<void>;
12
- /** Persist a single delete. Called via onChange (fire-and-forget). */
13
- delete(path: string): Promise<void>;
14
- /** Subscribe to external changes (e.g. Firestore real-time). Returns unsubscribe fn. */
10
+ delete(path: string): Promise<boolean>;
11
+ exists(path: string): Promise<boolean>;
12
+ list(path: string): Promise<string[]>;
13
+ glob(pattern: string): Promise<string[]>;
14
+ mkdir(path: string): Promise<void>;
15
+ isDirectory(path: string): Promise<boolean>;
15
16
  subscribe?(listener: WorkspaceChangeListener): () => void;
16
- /** Flush any pending writes. */
17
17
  flush?(): Promise<void>;
18
- /** Dispose resources (connections, watchers, etc). */
19
18
  dispose?(): Promise<void>;
20
19
  }
21
20
  export interface WorkspaceChange {