@serviceme/devtools-core 0.1.4 → 0.1.6

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/index.d.mts CHANGED
@@ -1,5 +1,101 @@
1
1
  import * as _serviceme_devtools_protocol from '@serviceme/devtools-protocol';
2
- import { CopilotDoctorResult, CopilotPromptOptions, CopilotPromptResult, EnvironmentCheckResult, KnownEnvironmentTool, ToolCheckResult, ServiceMeImageValidationResult, ServiceMeImageInfo, ServiceMeImageCompressOptions, ServiceMeImageCompressResult, JsonSortOptions, JsonValidationResult, ServiceMeProjectExtractTemplateInput, ServiceMeProjectExtractTemplateResult, ServiceMeProjectInstallDepsResult, ServiceMeProjectMakeScriptsExecutableResult, ServiceMeProjectGitInitResult, ServiceMeProjectScaffoldPruneResult, TaskExecutionStatus, ScheduledTaskType, TaskPayload, ScheduledTasksConfig, ScheduledTask, TaskStartedEventParams, TaskOutputEventParams, TaskCompletedEventParams, TaskFailedEventParams, TaskCancelledEventParams, TaskExecutionSnapshot, RunningTaskInfo, TaskExecutionLog } from '@serviceme/devtools-protocol';
2
+ import { AgentMarketplaceEntry, AgentMutationRequest, AgentPermissionSummary, CopilotDoctorResult, CopilotPromptOptions, CopilotPromptResult, EnvironmentCheckResult, KnownEnvironmentTool, ToolCheckResult, ServiceMeImageValidationResult, ServiceMeImageInfo, ServiceMeImageCompressOptions, ServiceMeImageCompressResult, JsonSortOptions, JsonValidationResult, AgentToolRiskLevel, AgentToolPermission, ServiceMeProjectExtractTemplateInput, ServiceMeProjectExtractTemplateResult, ServiceMeProjectInstallDepsResult, ServiceMeProjectMakeScriptsExecutableResult, ServiceMeProjectGitInitResult, ServiceMeProjectScaffoldPruneResult, TaskExecutionStatus, ScheduledTaskType, TaskPayload, ScheduledTasksConfig, ScheduledTask, TaskStartedEventParams, TaskOutputEventParams, TaskCompletedEventParams, TaskFailedEventParams, TaskCancelledEventParams, TaskExecutionSnapshot, RunningTaskInfo, TaskExecutionLog, SkillMarketplaceEntry, SkillMutationRequest } from '@serviceme/devtools-protocol';
3
+ import * as fs from 'node:fs/promises';
4
+
5
+ interface AgentCatalog {
6
+ agents: AgentMarketplaceEntry[];
7
+ fetchedAt: string;
8
+ }
9
+ interface AgentCatalogClientOptions {
10
+ fetchImpl?: typeof fetch;
11
+ baseUrl?: string;
12
+ }
13
+ declare class AgentCatalogClient {
14
+ private readonly fetchImpl;
15
+ private readonly baseUrl?;
16
+ constructor(options?: AgentCatalogClientOptions);
17
+ getCatalog(): Promise<AgentCatalog>;
18
+ }
19
+
20
+ interface AgentStoreLike {
21
+ normalizeRemoteAgentId(remoteId: string): string;
22
+ listWorkspaceAgentIds(): Promise<string[]>;
23
+ listUserAgentIds(): Promise<string[]>;
24
+ }
25
+ interface AgentCatalogLike {
26
+ agents: AgentMarketplaceEntry[];
27
+ fetchedAt: string;
28
+ }
29
+ interface AgentCatalogClientLike {
30
+ getCatalog(): Promise<AgentCatalogLike>;
31
+ }
32
+ interface AgentReconcilerDependencies {
33
+ agentStore: AgentStoreLike;
34
+ catalogClient: AgentCatalogClientLike;
35
+ }
36
+ interface AgentMutateResult {
37
+ status: "success" | "blocked" | "requires_confirmation";
38
+ changed: boolean;
39
+ message?: string;
40
+ tools?: string[];
41
+ }
42
+ declare class AgentReconciler {
43
+ private readonly deps;
44
+ constructor(deps: AgentReconcilerDependencies);
45
+ mutate(request: AgentMutationRequest): Promise<AgentMutateResult>;
46
+ getPermissionSummary(agentId: string, agentName: string, content: string): AgentPermissionSummary;
47
+ private hasHighRiskTool;
48
+ }
49
+
50
+ type AgentInstallScope = "workspace" | "user";
51
+ interface InstalledAgent {
52
+ id: string;
53
+ name: string;
54
+ scope: AgentInstallScope;
55
+ installedAt: string;
56
+ }
57
+ interface AgentsStateFile {
58
+ schemaVersion: number;
59
+ installedAgents: InstalledAgent[];
60
+ }
61
+ interface AgentDownloadFile {
62
+ path: string;
63
+ content: string;
64
+ executable?: boolean;
65
+ }
66
+ interface AgentStoreFileSystem {
67
+ readdir: typeof fs.readdir;
68
+ readFile: typeof fs.readFile;
69
+ writeFile: typeof fs.writeFile;
70
+ mkdir: typeof fs.mkdir;
71
+ chmod: typeof fs.chmod;
72
+ }
73
+ interface AgentStoreOptions {
74
+ workspacePath: string;
75
+ userAgentsRoot: string;
76
+ fileSystem?: AgentStoreFileSystem;
77
+ schemaVersion?: number;
78
+ }
79
+
80
+ declare class AgentStore {
81
+ private readonly workspacePath;
82
+ private readonly userAgentsRoot;
83
+ private readonly fileSystem;
84
+ private readonly schemaVersion;
85
+ constructor(options: AgentStoreOptions);
86
+ normalizeRemoteAgentId(remoteId: string): string;
87
+ getWorkspaceAgentsRootPath(): string;
88
+ getWorkspaceStateFilePath(): string;
89
+ getUserAgentsRootPath(): string;
90
+ listWorkspaceAgentIds(): Promise<string[]>;
91
+ listUserAgentIds(): Promise<string[]>;
92
+ readState(): Promise<AgentsStateFile | null>;
93
+ writeState(state: AgentsStateFile): Promise<void>;
94
+ addInstalledAgent(entry: InstalledAgent): Promise<void>;
95
+ removeInstalledAgent(agentId: string): Promise<void>;
96
+ writeAgentFiles(agentId: string, scope: "workspace" | "user", files: AgentDownloadFile[]): Promise<void>;
97
+ private listAgentIds;
98
+ }
3
99
 
4
100
  /**
5
101
  * Quick auth pre-flight check using `gh auth status`.
@@ -16,10 +112,18 @@ declare class EnvironmentInspector {
16
112
  checkEnvironment(): Promise<EnvironmentCheckResult>;
17
113
  checkTool(toolName: KnownEnvironmentTool): Promise<ToolCheckResult>;
18
114
  private getToolPath;
115
+ /**
116
+ * On Windows, prefer the `.cmd` shim for npm/pnpm/nrm. nvm4w registers
117
+ * BOTH an extensionless entry (pointing to node.exe) and a `<tool>.cmd`
118
+ * wrapper; `where` returns them in that order, and the extensionless one
119
+ * would just print node's own version.
120
+ */
121
+ private getToolShimPath;
19
122
  private getToolVersion;
20
123
  private checkNvm;
21
124
  private checkNuget;
22
- private getVersionCommand;
125
+ private getVersionInvocation;
126
+ private getToolTimeout;
23
127
  private parseVersion;
24
128
  private handleToolCheckError;
25
129
  }
@@ -53,6 +157,9 @@ interface ServiceMeLogger {
53
157
  declare const noopLogger: ServiceMeLogger;
54
158
  declare function createConsoleLogger(prefix?: string): ServiceMeLogger;
55
159
 
160
+ declare const TOOL_RISK_MAP: Record<string, AgentToolRiskLevel>;
161
+ declare function parseAgentToolPermissions(content: string): AgentToolPermission[];
162
+
56
163
  declare class ProjectTools {
57
164
  extractTemplate(zipPath: string, workspacePath: string, tempExtractDir: string, input: ServiceMeProjectExtractTemplateInput): Promise<ServiceMeProjectExtractTemplateResult>;
58
165
  installDependencies(workspacePath: string, command?: string): Promise<ServiceMeProjectInstallDepsResult>;
@@ -233,7 +340,83 @@ declare class TaskLogManager {
233
340
  clearLogs(taskId?: string): number;
234
341
  }
235
342
 
343
+ interface SkillCatalog {
344
+ skills: SkillMarketplaceEntry[];
345
+ fetchedAt: string;
346
+ }
347
+ interface SkillCatalogClientOptions {
348
+ fetchImpl?: typeof fetch;
349
+ baseUrl?: string;
350
+ }
351
+ declare class SkillCatalogClient {
352
+ private readonly fetchImpl;
353
+ private readonly baseUrl?;
354
+ constructor(options?: SkillCatalogClientOptions);
355
+ getCatalog(): Promise<SkillCatalog>;
356
+ }
357
+
358
+ interface CatalogSkillLike {
359
+ id: string;
360
+ hasScripts?: boolean;
361
+ hasHooks?: boolean;
362
+ }
363
+ interface CatalogLike {
364
+ skills: CatalogSkillLike[];
365
+ fetchedAt: string;
366
+ }
367
+ interface SkillStoreLike {
368
+ normalizeRemoteSkillId(remoteId: string): string;
369
+ listWorkspaceSkillIds(): Promise<string[]>;
370
+ listUserSkillIds(): Promise<string[]>;
371
+ }
372
+ interface SkillCatalogClientLike {
373
+ getCatalog(): Promise<CatalogLike>;
374
+ }
375
+ interface SkillReconcilerDependencies {
376
+ skillStore: SkillStoreLike;
377
+ catalogClient: SkillCatalogClientLike;
378
+ }
379
+ interface SkillMutateResult {
380
+ status: "success" | "blocked" | "requires_confirmation";
381
+ changed: boolean;
382
+ message?: string;
383
+ hasScripts?: boolean;
384
+ hasHooks?: boolean;
385
+ }
386
+ declare class SkillReconciler {
387
+ private readonly deps;
388
+ constructor(deps: SkillReconcilerDependencies);
389
+ mutate(request: SkillMutationRequest): Promise<SkillMutateResult>;
390
+ }
391
+
392
+ interface SkillStoreFileSystem {
393
+ readdir: typeof fs.readdir;
394
+ readFile: typeof fs.readFile;
395
+ writeFile: typeof fs.writeFile;
396
+ mkdir: typeof fs.mkdir;
397
+ }
398
+ interface SkillStoreOptions {
399
+ workspacePath: string;
400
+ userSkillsRoot: string;
401
+ fileSystem?: SkillStoreFileSystem;
402
+ }
403
+
404
+ declare class SkillStore {
405
+ private readonly workspacePath;
406
+ private readonly userSkillsRoot;
407
+ private readonly fileSystem;
408
+ constructor(options: SkillStoreOptions);
409
+ normalizeRemoteSkillId(remoteId: string): string;
410
+ getWorkspaceSkillPath(skillId: string): string;
411
+ getWorkspaceMarkerPath(): string;
412
+ getUserSkillPath(skillId: string): string;
413
+ listWorkspaceSkillIds(): Promise<string[]>;
414
+ listUserSkillIds(): Promise<string[]>;
415
+ writeManagedUserSkillMarker(skillId: string): Promise<void>;
416
+ isManagedUserSkill(skillId: string): Promise<boolean>;
417
+ }
418
+
236
419
  declare const unzipFile: (zipPath: string, dest: string) => Promise<void>;
237
420
  declare const moveFiles: (sourceDir: string, destDir: string, overwrite?: boolean) => Promise<void>;
238
421
 
239
- export { type AppendLogInput, type CreateTaskInput, DaemonLogger, type EditTaskInput, EnvironmentInspector, type ExecutorResult, GithubCopilotCliExecutor, HttpRequestExecutor, ImageTools, type JsonTools, type OutputEventCallback, PidManager, ProjectTools, SchedulerDaemon, type ServiceMeLogger, ShellExecutor, type StreamingExecutorHandle, type StreamingTaskExecutor, TaskConfigManager, type TaskEventListener, TaskExecutionEngine, type TaskExecutor, TaskLogManager, copilotDoctor, copilotPrompt, createConsoleLogger, createCopilotAuthRequiredError, createCopilotNotInstalledError, createImageTools, createJsonTools, createProjectTools, getExecutor, isCopilotAuthenticated, isStreamingTaskExecutor, matchesCron, moveFiles, noopLogger, parseIntervalMs, resolveTaskExecutionPayload, unzipFile, validateTaskPayload };
422
+ export { type AgentCatalog, AgentCatalogClient, type AgentCatalogClientOptions, type AgentDownloadFile, type AgentInstallScope, type AgentMutateResult, AgentReconciler, type AgentReconcilerDependencies, AgentStore, type AgentStoreFileSystem, type AgentStoreOptions, type AgentsStateFile, type AppendLogInput, type CreateTaskInput, DaemonLogger, type EditTaskInput, EnvironmentInspector, type ExecutorResult, GithubCopilotCliExecutor, HttpRequestExecutor, ImageTools, type InstalledAgent, type JsonTools, type OutputEventCallback, PidManager, ProjectTools, SchedulerDaemon, type ServiceMeLogger, ShellExecutor, type SkillCatalog, SkillCatalogClient, type SkillCatalogClientOptions, type SkillMutateResult, SkillReconciler, type SkillReconcilerDependencies, SkillStore, type SkillStoreFileSystem, type SkillStoreOptions, type StreamingExecutorHandle, type StreamingTaskExecutor, TOOL_RISK_MAP, TaskConfigManager, type TaskEventListener, TaskExecutionEngine, type TaskExecutor, TaskLogManager, copilotDoctor, copilotPrompt, createConsoleLogger, createCopilotAuthRequiredError, createCopilotNotInstalledError, createImageTools, createJsonTools, createProjectTools, getExecutor, isCopilotAuthenticated, isStreamingTaskExecutor, matchesCron, moveFiles, noopLogger, parseAgentToolPermissions, parseIntervalMs, resolveTaskExecutionPayload, unzipFile, validateTaskPayload };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,101 @@
1
1
  import * as _serviceme_devtools_protocol from '@serviceme/devtools-protocol';
2
- import { CopilotDoctorResult, CopilotPromptOptions, CopilotPromptResult, EnvironmentCheckResult, KnownEnvironmentTool, ToolCheckResult, ServiceMeImageValidationResult, ServiceMeImageInfo, ServiceMeImageCompressOptions, ServiceMeImageCompressResult, JsonSortOptions, JsonValidationResult, ServiceMeProjectExtractTemplateInput, ServiceMeProjectExtractTemplateResult, ServiceMeProjectInstallDepsResult, ServiceMeProjectMakeScriptsExecutableResult, ServiceMeProjectGitInitResult, ServiceMeProjectScaffoldPruneResult, TaskExecutionStatus, ScheduledTaskType, TaskPayload, ScheduledTasksConfig, ScheduledTask, TaskStartedEventParams, TaskOutputEventParams, TaskCompletedEventParams, TaskFailedEventParams, TaskCancelledEventParams, TaskExecutionSnapshot, RunningTaskInfo, TaskExecutionLog } from '@serviceme/devtools-protocol';
2
+ import { AgentMarketplaceEntry, AgentMutationRequest, AgentPermissionSummary, CopilotDoctorResult, CopilotPromptOptions, CopilotPromptResult, EnvironmentCheckResult, KnownEnvironmentTool, ToolCheckResult, ServiceMeImageValidationResult, ServiceMeImageInfo, ServiceMeImageCompressOptions, ServiceMeImageCompressResult, JsonSortOptions, JsonValidationResult, AgentToolRiskLevel, AgentToolPermission, ServiceMeProjectExtractTemplateInput, ServiceMeProjectExtractTemplateResult, ServiceMeProjectInstallDepsResult, ServiceMeProjectMakeScriptsExecutableResult, ServiceMeProjectGitInitResult, ServiceMeProjectScaffoldPruneResult, TaskExecutionStatus, ScheduledTaskType, TaskPayload, ScheduledTasksConfig, ScheduledTask, TaskStartedEventParams, TaskOutputEventParams, TaskCompletedEventParams, TaskFailedEventParams, TaskCancelledEventParams, TaskExecutionSnapshot, RunningTaskInfo, TaskExecutionLog, SkillMarketplaceEntry, SkillMutationRequest } from '@serviceme/devtools-protocol';
3
+ import * as fs from 'node:fs/promises';
4
+
5
+ interface AgentCatalog {
6
+ agents: AgentMarketplaceEntry[];
7
+ fetchedAt: string;
8
+ }
9
+ interface AgentCatalogClientOptions {
10
+ fetchImpl?: typeof fetch;
11
+ baseUrl?: string;
12
+ }
13
+ declare class AgentCatalogClient {
14
+ private readonly fetchImpl;
15
+ private readonly baseUrl?;
16
+ constructor(options?: AgentCatalogClientOptions);
17
+ getCatalog(): Promise<AgentCatalog>;
18
+ }
19
+
20
+ interface AgentStoreLike {
21
+ normalizeRemoteAgentId(remoteId: string): string;
22
+ listWorkspaceAgentIds(): Promise<string[]>;
23
+ listUserAgentIds(): Promise<string[]>;
24
+ }
25
+ interface AgentCatalogLike {
26
+ agents: AgentMarketplaceEntry[];
27
+ fetchedAt: string;
28
+ }
29
+ interface AgentCatalogClientLike {
30
+ getCatalog(): Promise<AgentCatalogLike>;
31
+ }
32
+ interface AgentReconcilerDependencies {
33
+ agentStore: AgentStoreLike;
34
+ catalogClient: AgentCatalogClientLike;
35
+ }
36
+ interface AgentMutateResult {
37
+ status: "success" | "blocked" | "requires_confirmation";
38
+ changed: boolean;
39
+ message?: string;
40
+ tools?: string[];
41
+ }
42
+ declare class AgentReconciler {
43
+ private readonly deps;
44
+ constructor(deps: AgentReconcilerDependencies);
45
+ mutate(request: AgentMutationRequest): Promise<AgentMutateResult>;
46
+ getPermissionSummary(agentId: string, agentName: string, content: string): AgentPermissionSummary;
47
+ private hasHighRiskTool;
48
+ }
49
+
50
+ type AgentInstallScope = "workspace" | "user";
51
+ interface InstalledAgent {
52
+ id: string;
53
+ name: string;
54
+ scope: AgentInstallScope;
55
+ installedAt: string;
56
+ }
57
+ interface AgentsStateFile {
58
+ schemaVersion: number;
59
+ installedAgents: InstalledAgent[];
60
+ }
61
+ interface AgentDownloadFile {
62
+ path: string;
63
+ content: string;
64
+ executable?: boolean;
65
+ }
66
+ interface AgentStoreFileSystem {
67
+ readdir: typeof fs.readdir;
68
+ readFile: typeof fs.readFile;
69
+ writeFile: typeof fs.writeFile;
70
+ mkdir: typeof fs.mkdir;
71
+ chmod: typeof fs.chmod;
72
+ }
73
+ interface AgentStoreOptions {
74
+ workspacePath: string;
75
+ userAgentsRoot: string;
76
+ fileSystem?: AgentStoreFileSystem;
77
+ schemaVersion?: number;
78
+ }
79
+
80
+ declare class AgentStore {
81
+ private readonly workspacePath;
82
+ private readonly userAgentsRoot;
83
+ private readonly fileSystem;
84
+ private readonly schemaVersion;
85
+ constructor(options: AgentStoreOptions);
86
+ normalizeRemoteAgentId(remoteId: string): string;
87
+ getWorkspaceAgentsRootPath(): string;
88
+ getWorkspaceStateFilePath(): string;
89
+ getUserAgentsRootPath(): string;
90
+ listWorkspaceAgentIds(): Promise<string[]>;
91
+ listUserAgentIds(): Promise<string[]>;
92
+ readState(): Promise<AgentsStateFile | null>;
93
+ writeState(state: AgentsStateFile): Promise<void>;
94
+ addInstalledAgent(entry: InstalledAgent): Promise<void>;
95
+ removeInstalledAgent(agentId: string): Promise<void>;
96
+ writeAgentFiles(agentId: string, scope: "workspace" | "user", files: AgentDownloadFile[]): Promise<void>;
97
+ private listAgentIds;
98
+ }
3
99
 
4
100
  /**
5
101
  * Quick auth pre-flight check using `gh auth status`.
@@ -16,10 +112,18 @@ declare class EnvironmentInspector {
16
112
  checkEnvironment(): Promise<EnvironmentCheckResult>;
17
113
  checkTool(toolName: KnownEnvironmentTool): Promise<ToolCheckResult>;
18
114
  private getToolPath;
115
+ /**
116
+ * On Windows, prefer the `.cmd` shim for npm/pnpm/nrm. nvm4w registers
117
+ * BOTH an extensionless entry (pointing to node.exe) and a `<tool>.cmd`
118
+ * wrapper; `where` returns them in that order, and the extensionless one
119
+ * would just print node's own version.
120
+ */
121
+ private getToolShimPath;
19
122
  private getToolVersion;
20
123
  private checkNvm;
21
124
  private checkNuget;
22
- private getVersionCommand;
125
+ private getVersionInvocation;
126
+ private getToolTimeout;
23
127
  private parseVersion;
24
128
  private handleToolCheckError;
25
129
  }
@@ -53,6 +157,9 @@ interface ServiceMeLogger {
53
157
  declare const noopLogger: ServiceMeLogger;
54
158
  declare function createConsoleLogger(prefix?: string): ServiceMeLogger;
55
159
 
160
+ declare const TOOL_RISK_MAP: Record<string, AgentToolRiskLevel>;
161
+ declare function parseAgentToolPermissions(content: string): AgentToolPermission[];
162
+
56
163
  declare class ProjectTools {
57
164
  extractTemplate(zipPath: string, workspacePath: string, tempExtractDir: string, input: ServiceMeProjectExtractTemplateInput): Promise<ServiceMeProjectExtractTemplateResult>;
58
165
  installDependencies(workspacePath: string, command?: string): Promise<ServiceMeProjectInstallDepsResult>;
@@ -233,7 +340,83 @@ declare class TaskLogManager {
233
340
  clearLogs(taskId?: string): number;
234
341
  }
235
342
 
343
+ interface SkillCatalog {
344
+ skills: SkillMarketplaceEntry[];
345
+ fetchedAt: string;
346
+ }
347
+ interface SkillCatalogClientOptions {
348
+ fetchImpl?: typeof fetch;
349
+ baseUrl?: string;
350
+ }
351
+ declare class SkillCatalogClient {
352
+ private readonly fetchImpl;
353
+ private readonly baseUrl?;
354
+ constructor(options?: SkillCatalogClientOptions);
355
+ getCatalog(): Promise<SkillCatalog>;
356
+ }
357
+
358
+ interface CatalogSkillLike {
359
+ id: string;
360
+ hasScripts?: boolean;
361
+ hasHooks?: boolean;
362
+ }
363
+ interface CatalogLike {
364
+ skills: CatalogSkillLike[];
365
+ fetchedAt: string;
366
+ }
367
+ interface SkillStoreLike {
368
+ normalizeRemoteSkillId(remoteId: string): string;
369
+ listWorkspaceSkillIds(): Promise<string[]>;
370
+ listUserSkillIds(): Promise<string[]>;
371
+ }
372
+ interface SkillCatalogClientLike {
373
+ getCatalog(): Promise<CatalogLike>;
374
+ }
375
+ interface SkillReconcilerDependencies {
376
+ skillStore: SkillStoreLike;
377
+ catalogClient: SkillCatalogClientLike;
378
+ }
379
+ interface SkillMutateResult {
380
+ status: "success" | "blocked" | "requires_confirmation";
381
+ changed: boolean;
382
+ message?: string;
383
+ hasScripts?: boolean;
384
+ hasHooks?: boolean;
385
+ }
386
+ declare class SkillReconciler {
387
+ private readonly deps;
388
+ constructor(deps: SkillReconcilerDependencies);
389
+ mutate(request: SkillMutationRequest): Promise<SkillMutateResult>;
390
+ }
391
+
392
+ interface SkillStoreFileSystem {
393
+ readdir: typeof fs.readdir;
394
+ readFile: typeof fs.readFile;
395
+ writeFile: typeof fs.writeFile;
396
+ mkdir: typeof fs.mkdir;
397
+ }
398
+ interface SkillStoreOptions {
399
+ workspacePath: string;
400
+ userSkillsRoot: string;
401
+ fileSystem?: SkillStoreFileSystem;
402
+ }
403
+
404
+ declare class SkillStore {
405
+ private readonly workspacePath;
406
+ private readonly userSkillsRoot;
407
+ private readonly fileSystem;
408
+ constructor(options: SkillStoreOptions);
409
+ normalizeRemoteSkillId(remoteId: string): string;
410
+ getWorkspaceSkillPath(skillId: string): string;
411
+ getWorkspaceMarkerPath(): string;
412
+ getUserSkillPath(skillId: string): string;
413
+ listWorkspaceSkillIds(): Promise<string[]>;
414
+ listUserSkillIds(): Promise<string[]>;
415
+ writeManagedUserSkillMarker(skillId: string): Promise<void>;
416
+ isManagedUserSkill(skillId: string): Promise<boolean>;
417
+ }
418
+
236
419
  declare const unzipFile: (zipPath: string, dest: string) => Promise<void>;
237
420
  declare const moveFiles: (sourceDir: string, destDir: string, overwrite?: boolean) => Promise<void>;
238
421
 
239
- export { type AppendLogInput, type CreateTaskInput, DaemonLogger, type EditTaskInput, EnvironmentInspector, type ExecutorResult, GithubCopilotCliExecutor, HttpRequestExecutor, ImageTools, type JsonTools, type OutputEventCallback, PidManager, ProjectTools, SchedulerDaemon, type ServiceMeLogger, ShellExecutor, type StreamingExecutorHandle, type StreamingTaskExecutor, TaskConfigManager, type TaskEventListener, TaskExecutionEngine, type TaskExecutor, TaskLogManager, copilotDoctor, copilotPrompt, createConsoleLogger, createCopilotAuthRequiredError, createCopilotNotInstalledError, createImageTools, createJsonTools, createProjectTools, getExecutor, isCopilotAuthenticated, isStreamingTaskExecutor, matchesCron, moveFiles, noopLogger, parseIntervalMs, resolveTaskExecutionPayload, unzipFile, validateTaskPayload };
422
+ export { type AgentCatalog, AgentCatalogClient, type AgentCatalogClientOptions, type AgentDownloadFile, type AgentInstallScope, type AgentMutateResult, AgentReconciler, type AgentReconcilerDependencies, AgentStore, type AgentStoreFileSystem, type AgentStoreOptions, type AgentsStateFile, type AppendLogInput, type CreateTaskInput, DaemonLogger, type EditTaskInput, EnvironmentInspector, type ExecutorResult, GithubCopilotCliExecutor, HttpRequestExecutor, ImageTools, type InstalledAgent, type JsonTools, type OutputEventCallback, PidManager, ProjectTools, SchedulerDaemon, type ServiceMeLogger, ShellExecutor, type SkillCatalog, SkillCatalogClient, type SkillCatalogClientOptions, type SkillMutateResult, SkillReconciler, type SkillReconcilerDependencies, SkillStore, type SkillStoreFileSystem, type SkillStoreOptions, type StreamingExecutorHandle, type StreamingTaskExecutor, TOOL_RISK_MAP, TaskConfigManager, type TaskEventListener, TaskExecutionEngine, type TaskExecutor, TaskLogManager, copilotDoctor, copilotPrompt, createConsoleLogger, createCopilotAuthRequiredError, createCopilotNotInstalledError, createImageTools, createJsonTools, createProjectTools, getExecutor, isCopilotAuthenticated, isStreamingTaskExecutor, matchesCron, moveFiles, noopLogger, parseAgentToolPermissions, parseIntervalMs, resolveTaskExecutionPayload, unzipFile, validateTaskPayload };