@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.
- package/dist/agent.d.ts +1 -1
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +19 -11
- package/dist/agent.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/providers/workspace/file.d.ts +11 -6
- package/dist/providers/workspace/file.d.ts.map +1 -1
- package/dist/providers/workspace/file.js +90 -20
- package/dist/providers/workspace/file.js.map +1 -1
- package/dist/providers/workspace/memory.d.ts +17 -5
- package/dist/providers/workspace/memory.d.ts.map +1 -1
- package/dist/providers/workspace/memory.js +122 -8
- package/dist/providers/workspace/memory.js.map +1 -1
- package/dist/providers/workspace/types.d.ts +9 -10
- package/dist/providers/workspace/types.d.ts.map +1 -1
- package/dist/providers/workspace/types.js +2 -2
- package/dist/providers/workspace/workspace-provider.test.js +161 -179
- package/dist/providers/workspace/workspace-provider.test.js.map +1 -1
- package/dist/shell/commands/cat.js +2 -2
- package/dist/shell/commands/cat.js.map +1 -1
- package/dist/shell/commands/find.js +5 -5
- package/dist/shell/commands/find.js.map +1 -1
- package/dist/shell/commands/grep.js +3 -3
- package/dist/shell/commands/grep.js.map +1 -1
- package/dist/shell/commands/head.js +1 -1
- package/dist/shell/commands/head.js.map +1 -1
- package/dist/shell/commands/jq.js +1 -1
- package/dist/shell/commands/jq.js.map +1 -1
- package/dist/shell/commands/ls.js +4 -4
- package/dist/shell/commands/ls.js.map +1 -1
- package/dist/shell/commands/mkdir.js +2 -2
- package/dist/shell/commands/mkdir.js.map +1 -1
- package/dist/shell/commands/rm.js +4 -4
- package/dist/shell/commands/rm.js.map +1 -1
- package/dist/shell/commands/tail.js +1 -1
- package/dist/shell/commands/tail.js.map +1 -1
- package/dist/shell/index.d.ts +0 -1
- package/dist/shell/index.d.ts.map +1 -1
- package/dist/shell/index.js +0 -1
- package/dist/shell/index.js.map +1 -1
- package/dist/shell/shell.d.ts +5 -7
- package/dist/shell/shell.d.ts.map +1 -1
- package/dist/shell/shell.js +7 -11
- package/dist/shell/shell.js.map +1 -1
- package/dist/shell/shell.test.js +34 -46
- package/dist/shell/shell.test.js.map +1 -1
- package/dist/shell/types.d.ts +2 -12
- package/dist/shell/types.d.ts.map +1 -1
- package/dist/tools/sub-agent.d.ts.map +1 -1
- package/dist/tools/sub-agent.js +2 -0
- package/dist/tools/sub-agent.js.map +1 -1
- package/dist/tools/tasks.d.ts +1 -1
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +2 -2
- package/dist/tools/tasks.js.map +1 -1
- package/dist/workspace.d.ts +18 -38
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +46 -108
- package/dist/workspace.js.map +1 -1
- package/package.json +1 -1
- package/dist/shell/fs.d.ts +0 -31
- package/dist/shell/fs.d.ts.map +0 -1
- package/dist/shell/fs.js +0 -161
- 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
|
|
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
|
package/dist/agent.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
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":"AAAA;;;;GAIG;AAUH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EACL,iBAAiB,EACjB,cAAc,IAAI,kBAAkB,EACpC,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,iDAAiD;AACjD,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC;AAEzC,
|
|
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,
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
|
31
|
-
export { Shell
|
|
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,
|
|
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
|
-
*
|
|
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
|
-
|
|
11
|
+
read(path: string): Promise<string | null>;
|
|
12
12
|
write(path: string, content: string): Promise<void>;
|
|
13
|
-
delete(path: string): Promise<
|
|
14
|
-
|
|
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
|
|
21
|
+
/** Convert a local file path back to a workspace path */
|
|
17
22
|
private toFSPath;
|
|
18
|
-
private
|
|
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;
|
|
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
|
-
*
|
|
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
|
|
15
|
-
const result = {};
|
|
29
|
+
async read(path) {
|
|
16
30
|
try {
|
|
17
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
throw err;
|
|
113
|
+
if (err.code === 'ENOENT') {
|
|
114
|
+
return false;
|
|
43
115
|
}
|
|
116
|
+
throw err;
|
|
44
117
|
}
|
|
45
118
|
}
|
|
46
|
-
/** Convert a
|
|
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
|
|
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
|
|
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.
|
|
134
|
+
await this.walkDir(fullPath, results);
|
|
63
135
|
}
|
|
64
136
|
else if (entry.isFile()) {
|
|
65
|
-
|
|
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":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAA;
|
|
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
|
-
*
|
|
5
|
-
* Default
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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;
|
|
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
|
-
*
|
|
5
|
-
* Default
|
|
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
|
-
|
|
9
|
-
|
|
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
|
|
12
|
-
|
|
124
|
+
async mkdir(path) {
|
|
125
|
+
this.mkdirSync(path);
|
|
13
126
|
}
|
|
14
|
-
async
|
|
15
|
-
|
|
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;
|
|
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
|
|
5
|
-
* Providers handle
|
|
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
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
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 {
|