@scitrera/memorylayer-sdk 0.0.5 → 0.2.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/LICENSE +177 -0
- package/README.md +22 -0
- package/dist/client.d.ts +316 -3
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +896 -67
- package/dist/client.js.map +1 -1
- package/dist/errors.d.ts +9 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +14 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/knowledgebase.d.ts +41 -0
- package/dist/knowledgebase.d.ts.map +1 -0
- package/dist/knowledgebase.js +86 -0
- package/dist/knowledgebase.js.map +1 -0
- package/dist/mcp_servers.d.ts +94 -0
- package/dist/mcp_servers.d.ts.map +1 -0
- package/dist/mcp_servers.js +132 -0
- package/dist/mcp_servers.js.map +1 -0
- package/dist/rpg.d.ts +178 -0
- package/dist/rpg.d.ts.map +1 -0
- package/dist/rpg.js +126 -0
- package/dist/rpg.js.map +1 -0
- package/dist/skills.d.ts +194 -0
- package/dist/skills.d.ts.map +1 -0
- package/dist/skills.js +465 -0
- package/dist/skills.js.map +1 -0
- package/dist/types.d.ts +630 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +27 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +43 -0
- package/dist/utils.js.map +1 -1
- package/package.json +11 -3
- package/vitest.config.ts +0 -12
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp_servers.js","sourceRoot":"","sources":["../src/mcp_servers.ts"],"names":[],"mappings":"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"}
|
package/dist/rpg.d.ts
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import type { MemoryLayerClient } from "./client.js";
|
|
2
|
+
import type { AuthorityContext } from "./types.js";
|
|
3
|
+
export interface RpgNodeInput {
|
|
4
|
+
nodeId: string;
|
|
5
|
+
nodeType: string;
|
|
6
|
+
path: string;
|
|
7
|
+
name: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
language?: string;
|
|
10
|
+
parentId?: string;
|
|
11
|
+
metadata?: Record<string, unknown>;
|
|
12
|
+
}
|
|
13
|
+
export interface RpgEdgeInput {
|
|
14
|
+
sourceId: string;
|
|
15
|
+
targetId: string;
|
|
16
|
+
relationship: string;
|
|
17
|
+
strength?: number;
|
|
18
|
+
metadata?: Record<string, unknown>;
|
|
19
|
+
}
|
|
20
|
+
export interface RpgNode {
|
|
21
|
+
node_id: string;
|
|
22
|
+
node_type: string;
|
|
23
|
+
path: string;
|
|
24
|
+
name: string;
|
|
25
|
+
description: string;
|
|
26
|
+
language?: string;
|
|
27
|
+
parent_id?: string;
|
|
28
|
+
depth: number;
|
|
29
|
+
metadata: Record<string, unknown>;
|
|
30
|
+
memory_id?: string;
|
|
31
|
+
context_id?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface RpgEdge {
|
|
34
|
+
source_id: string;
|
|
35
|
+
target_id: string;
|
|
36
|
+
relationship: string;
|
|
37
|
+
strength: number;
|
|
38
|
+
metadata: Record<string, unknown>;
|
|
39
|
+
association_id?: string;
|
|
40
|
+
}
|
|
41
|
+
export interface RpgSyncOptions {
|
|
42
|
+
fullSync?: boolean;
|
|
43
|
+
sourceCommit?: string;
|
|
44
|
+
contextId?: string;
|
|
45
|
+
taskId?: string;
|
|
46
|
+
}
|
|
47
|
+
export interface RpgSyncResult {
|
|
48
|
+
nodes_created: number;
|
|
49
|
+
nodes_updated: number;
|
|
50
|
+
nodes_deleted: number;
|
|
51
|
+
edges_created: number;
|
|
52
|
+
edges_updated: number;
|
|
53
|
+
edges_deleted: number;
|
|
54
|
+
sync_time_ms: number;
|
|
55
|
+
source_commit?: string;
|
|
56
|
+
}
|
|
57
|
+
export interface RpgSubgraph {
|
|
58
|
+
nodes: RpgNode[];
|
|
59
|
+
edges: RpgEdge[];
|
|
60
|
+
root_id?: string;
|
|
61
|
+
depth: number;
|
|
62
|
+
total_nodes: number;
|
|
63
|
+
total_edges: number;
|
|
64
|
+
truncated?: boolean;
|
|
65
|
+
}
|
|
66
|
+
export interface RpgSearchResult {
|
|
67
|
+
nodes: RpgNode[];
|
|
68
|
+
total_count: number;
|
|
69
|
+
query: string;
|
|
70
|
+
}
|
|
71
|
+
export interface RpgStatus {
|
|
72
|
+
workspace_id: string;
|
|
73
|
+
has_rpg: boolean;
|
|
74
|
+
node_count: number;
|
|
75
|
+
edge_count: number;
|
|
76
|
+
last_sync_commit?: string;
|
|
77
|
+
last_sync_at?: string;
|
|
78
|
+
}
|
|
79
|
+
export interface RpgOverlay {
|
|
80
|
+
context_id: string;
|
|
81
|
+
node_count: number;
|
|
82
|
+
}
|
|
83
|
+
export interface RpgOverlayList {
|
|
84
|
+
overlays: RpgOverlay[];
|
|
85
|
+
total: number;
|
|
86
|
+
}
|
|
87
|
+
export interface RpgDeleteResult {
|
|
88
|
+
deleted: number;
|
|
89
|
+
not_found: number;
|
|
90
|
+
}
|
|
91
|
+
export interface RpgOverlayDeleteResult {
|
|
92
|
+
context_id: string;
|
|
93
|
+
deleted: number;
|
|
94
|
+
}
|
|
95
|
+
export interface RpgNodeList {
|
|
96
|
+
nodes: RpgNode[];
|
|
97
|
+
total_count: number;
|
|
98
|
+
}
|
|
99
|
+
export interface RpgConflict {
|
|
100
|
+
file_path: string;
|
|
101
|
+
task_ids: string[];
|
|
102
|
+
severity: string;
|
|
103
|
+
}
|
|
104
|
+
export interface RpgConflictResult {
|
|
105
|
+
task_id: string;
|
|
106
|
+
conflicts: RpgConflict[];
|
|
107
|
+
total_conflicts: number;
|
|
108
|
+
}
|
|
109
|
+
export interface RpgSymbolConflict extends RpgConflict {
|
|
110
|
+
symbol_id: string;
|
|
111
|
+
description: string;
|
|
112
|
+
}
|
|
113
|
+
export interface RpgSymbolConflictResult {
|
|
114
|
+
task_ids: string[];
|
|
115
|
+
conflicts: RpgSymbolConflict[];
|
|
116
|
+
total_conflicts: number;
|
|
117
|
+
}
|
|
118
|
+
export type RpgMaintenanceOperation = "validate" | "cleanup" | "statistics" | "cleanup_intents" | "recompute_counts";
|
|
119
|
+
export interface RpgMaintenanceResult {
|
|
120
|
+
operation: RpgMaintenanceOperation;
|
|
121
|
+
workspace_id: string;
|
|
122
|
+
result: Record<string, unknown>;
|
|
123
|
+
}
|
|
124
|
+
export interface RpgEnrichmentResult {
|
|
125
|
+
workspace_id: string;
|
|
126
|
+
context_id: string;
|
|
127
|
+
async_mode: boolean;
|
|
128
|
+
task_id?: string;
|
|
129
|
+
stats?: Record<string, unknown>;
|
|
130
|
+
}
|
|
131
|
+
export interface RpgSubgraphOptions {
|
|
132
|
+
path?: string;
|
|
133
|
+
nodeId?: string;
|
|
134
|
+
depth?: number;
|
|
135
|
+
nodeTypes?: string[];
|
|
136
|
+
relationshipTypes?: string[];
|
|
137
|
+
contextId?: string;
|
|
138
|
+
maxNodes?: number;
|
|
139
|
+
}
|
|
140
|
+
/** RPG namespace, available as `client.rpg`. */
|
|
141
|
+
export declare class RpgNamespace {
|
|
142
|
+
private readonly client;
|
|
143
|
+
private readonly authority?;
|
|
144
|
+
constructor(client: MemoryLayerClient, authority?: AuthorityContext | undefined);
|
|
145
|
+
withAuthority(authority: AuthorityContext): RpgNamespace;
|
|
146
|
+
private req;
|
|
147
|
+
sync(nodes: RpgNodeInput[], edges: RpgEdgeInput[], options?: RpgSyncOptions): Promise<RpgSyncResult>;
|
|
148
|
+
getSubgraph(options: RpgSubgraphOptions): Promise<RpgSubgraph>;
|
|
149
|
+
search(query: string, options?: {
|
|
150
|
+
nodeTypes?: string[];
|
|
151
|
+
limit?: number;
|
|
152
|
+
contextId?: string;
|
|
153
|
+
}): Promise<RpgSearchResult>;
|
|
154
|
+
getStatus(contextId?: string): Promise<RpgStatus>;
|
|
155
|
+
listOverlays(): Promise<RpgOverlayList>;
|
|
156
|
+
deleteOverlay(contextId: string): Promise<RpgOverlayDeleteResult>;
|
|
157
|
+
deleteNodes(nodeIds: string[], contextId?: string): Promise<RpgDeleteResult>;
|
|
158
|
+
deleteEdges(associationIds: string[]): Promise<RpgDeleteResult>;
|
|
159
|
+
listNodes(options?: {
|
|
160
|
+
nodeType?: string;
|
|
161
|
+
contextId?: string;
|
|
162
|
+
limit?: number;
|
|
163
|
+
}): Promise<RpgNodeList>;
|
|
164
|
+
getMergedSubgraph(overlayContext: string, options?: {
|
|
165
|
+
baseContext?: string;
|
|
166
|
+
path?: string;
|
|
167
|
+
depth?: number;
|
|
168
|
+
}): Promise<RpgSubgraph>;
|
|
169
|
+
getConflicts(taskId: string): Promise<RpgConflictResult>;
|
|
170
|
+
getSymbolConflicts(taskIdA: string, taskIdB: string): Promise<RpgSymbolConflictResult>;
|
|
171
|
+
maintenance(operation: RpgMaintenanceOperation): Promise<RpgMaintenanceResult>;
|
|
172
|
+
enrich(options?: {
|
|
173
|
+
contextId?: string;
|
|
174
|
+
phases?: string[];
|
|
175
|
+
async?: boolean;
|
|
176
|
+
}): Promise<RpgEnrichmentResult>;
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=rpg.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpg.d.ts","sourceRoot":"","sources":["../src/rpg.ts"],"names":[],"mappings":"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"}
|
package/dist/rpg.js
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
function nodeToApi(node) {
|
|
2
|
+
return {
|
|
3
|
+
node_id: node.nodeId,
|
|
4
|
+
node_type: node.nodeType,
|
|
5
|
+
path: node.path,
|
|
6
|
+
name: node.name,
|
|
7
|
+
description: node.description ?? "",
|
|
8
|
+
language: node.language,
|
|
9
|
+
parent_id: node.parentId,
|
|
10
|
+
metadata: node.metadata ?? {},
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function edgeToApi(edge) {
|
|
14
|
+
return {
|
|
15
|
+
source_id: edge.sourceId,
|
|
16
|
+
target_id: edge.targetId,
|
|
17
|
+
relationship: edge.relationship,
|
|
18
|
+
strength: edge.strength ?? 1,
|
|
19
|
+
metadata: edge.metadata ?? {},
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function queryPath(path, params) {
|
|
23
|
+
const q = new URLSearchParams();
|
|
24
|
+
for (const [key, value] of Object.entries(params)) {
|
|
25
|
+
if (value !== undefined && value !== "")
|
|
26
|
+
q.set(key, String(value));
|
|
27
|
+
}
|
|
28
|
+
const encoded = q.toString();
|
|
29
|
+
return `${path}${encoded ? `?${encoded}` : ""}`;
|
|
30
|
+
}
|
|
31
|
+
/** RPG namespace, available as `client.rpg`. */
|
|
32
|
+
export class RpgNamespace {
|
|
33
|
+
client;
|
|
34
|
+
authority;
|
|
35
|
+
constructor(client, authority) {
|
|
36
|
+
this.client = client;
|
|
37
|
+
this.authority = authority;
|
|
38
|
+
}
|
|
39
|
+
withAuthority(authority) {
|
|
40
|
+
return new RpgNamespace(this.client, authority);
|
|
41
|
+
}
|
|
42
|
+
req(method, path, body) {
|
|
43
|
+
return this.client._rpgRequest(method, path, body, this.authority);
|
|
44
|
+
}
|
|
45
|
+
sync(nodes, edges, options = {}) {
|
|
46
|
+
return this.req("POST", "/v1/rpg/sync", {
|
|
47
|
+
nodes: nodes.map(nodeToApi),
|
|
48
|
+
edges: edges.map(edgeToApi),
|
|
49
|
+
full_sync: options.fullSync ?? false,
|
|
50
|
+
source_commit: options.sourceCommit,
|
|
51
|
+
context_id: options.contextId ?? "rpg",
|
|
52
|
+
task_id: options.taskId,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
getSubgraph(options) {
|
|
56
|
+
if (!options.path && !options.nodeId)
|
|
57
|
+
throw new Error("path or nodeId is required");
|
|
58
|
+
return this.req("GET", queryPath("/v1/rpg/subgraph", {
|
|
59
|
+
path: options.path,
|
|
60
|
+
node_id: options.nodeId,
|
|
61
|
+
depth: options.depth ?? 3,
|
|
62
|
+
node_types: options.nodeTypes?.join(","),
|
|
63
|
+
relationship_types: options.relationshipTypes?.join(","),
|
|
64
|
+
context_id: options.contextId ?? "rpg",
|
|
65
|
+
max_nodes: options.maxNodes ?? 2000,
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
68
|
+
search(query, options = {}) {
|
|
69
|
+
return this.req("GET", queryPath("/v1/rpg/search", {
|
|
70
|
+
query,
|
|
71
|
+
node_types: options.nodeTypes?.join(","),
|
|
72
|
+
limit: options.limit ?? 20,
|
|
73
|
+
context_id: options.contextId ?? "rpg",
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
getStatus(contextId) {
|
|
77
|
+
return this.req("GET", queryPath("/v1/rpg/status", { context_id: contextId }));
|
|
78
|
+
}
|
|
79
|
+
listOverlays() {
|
|
80
|
+
return this.req("GET", "/v1/rpg/overlays");
|
|
81
|
+
}
|
|
82
|
+
deleteOverlay(contextId) {
|
|
83
|
+
return this.req("DELETE", `/v1/rpg/overlays/${encodeURIComponent(contextId)}`);
|
|
84
|
+
}
|
|
85
|
+
deleteNodes(nodeIds, contextId = "rpg") {
|
|
86
|
+
return this.req("DELETE", "/v1/rpg/nodes", { node_ids: nodeIds, context_id: contextId });
|
|
87
|
+
}
|
|
88
|
+
deleteEdges(associationIds) {
|
|
89
|
+
return this.req("DELETE", "/v1/rpg/edges", { association_ids: associationIds });
|
|
90
|
+
}
|
|
91
|
+
listNodes(options = {}) {
|
|
92
|
+
return this.req("GET", queryPath("/v1/rpg/nodes", {
|
|
93
|
+
node_type: options.nodeType,
|
|
94
|
+
context_id: options.contextId ?? "rpg",
|
|
95
|
+
limit: options.limit ?? 5000,
|
|
96
|
+
}));
|
|
97
|
+
}
|
|
98
|
+
getMergedSubgraph(overlayContext, options = {}) {
|
|
99
|
+
return this.req("GET", queryPath("/v1/rpg/merged-subgraph", {
|
|
100
|
+
base_context: options.baseContext ?? "rpg",
|
|
101
|
+
overlay_context: overlayContext,
|
|
102
|
+
path: options.path,
|
|
103
|
+
depth: options.depth ?? 3,
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
getConflicts(taskId) {
|
|
107
|
+
return this.req("GET", queryPath("/v1/rpg/conflicts", { task_id: taskId }));
|
|
108
|
+
}
|
|
109
|
+
getSymbolConflicts(taskIdA, taskIdB) {
|
|
110
|
+
return this.req("GET", queryPath("/v1/rpg/conflicts/symbols", {
|
|
111
|
+
task_id_a: taskIdA,
|
|
112
|
+
task_id_b: taskIdB,
|
|
113
|
+
}));
|
|
114
|
+
}
|
|
115
|
+
maintenance(operation) {
|
|
116
|
+
return this.req("POST", `/v1/rpg/maintenance/${operation}`);
|
|
117
|
+
}
|
|
118
|
+
enrich(options = {}) {
|
|
119
|
+
return this.req("POST", "/v1/rpg/enrich", {
|
|
120
|
+
context_id: options.contextId ?? "rpg",
|
|
121
|
+
phases: options.phases,
|
|
122
|
+
async: options.async ?? true,
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=rpg.js.map
|
package/dist/rpg.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpg.js","sourceRoot":"","sources":["../src/rpg.ts"],"names":[],"mappings":"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"}
|
package/dist/skills.d.ts
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import type { MemoryLayerClient } from "./client.js";
|
|
2
|
+
import type { AuthorityContext } from "./types.js";
|
|
3
|
+
export interface Skill {
|
|
4
|
+
id: string;
|
|
5
|
+
tenant_id: string;
|
|
6
|
+
workspace_id: string;
|
|
7
|
+
user_id?: string;
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
version: string;
|
|
11
|
+
license?: string;
|
|
12
|
+
compatibility?: string;
|
|
13
|
+
allowed_tools?: string;
|
|
14
|
+
body: string;
|
|
15
|
+
metadata: Record<string, unknown>;
|
|
16
|
+
source_mode: "server" | "filesystem" | "mirrored";
|
|
17
|
+
manifest_hash: string;
|
|
18
|
+
bundle_hash: string;
|
|
19
|
+
enabled: boolean;
|
|
20
|
+
created_at: string;
|
|
21
|
+
updated_at: string;
|
|
22
|
+
}
|
|
23
|
+
export interface SkillFile {
|
|
24
|
+
id: string;
|
|
25
|
+
skill_id: string;
|
|
26
|
+
path: string;
|
|
27
|
+
kind: "script" | "reference" | "asset" | "other";
|
|
28
|
+
content: string;
|
|
29
|
+
content_hash: string;
|
|
30
|
+
size_bytes: number;
|
|
31
|
+
mime_type?: string;
|
|
32
|
+
created_at: string;
|
|
33
|
+
updated_at: string;
|
|
34
|
+
}
|
|
35
|
+
export interface SkillManifest {
|
|
36
|
+
name: string;
|
|
37
|
+
description: string;
|
|
38
|
+
version?: string;
|
|
39
|
+
license?: string;
|
|
40
|
+
compatibility?: string;
|
|
41
|
+
allowed_tools?: string;
|
|
42
|
+
body: string;
|
|
43
|
+
metadata?: Record<string, unknown>;
|
|
44
|
+
files?: Array<{
|
|
45
|
+
path: string;
|
|
46
|
+
content: string;
|
|
47
|
+
}>;
|
|
48
|
+
source_mode?: "server" | "filesystem" | "mirrored";
|
|
49
|
+
}
|
|
50
|
+
export interface SkillListOptions {
|
|
51
|
+
workspaceId?: string;
|
|
52
|
+
scope?: string;
|
|
53
|
+
name?: string;
|
|
54
|
+
tags?: string[];
|
|
55
|
+
enabled?: boolean;
|
|
56
|
+
includeShadowed?: boolean;
|
|
57
|
+
authority?: AuthorityContext;
|
|
58
|
+
}
|
|
59
|
+
export interface SkillResolveOptions {
|
|
60
|
+
name?: string;
|
|
61
|
+
query?: string;
|
|
62
|
+
scopeHint?: string;
|
|
63
|
+
authority?: AuthorityContext;
|
|
64
|
+
}
|
|
65
|
+
export interface SkillSyncResult {
|
|
66
|
+
action: "push" | "pull" | "conflict" | "in_sync";
|
|
67
|
+
manifest_hash?: string;
|
|
68
|
+
bundle_hash?: string;
|
|
69
|
+
}
|
|
70
|
+
export interface ParsedSkillFolder {
|
|
71
|
+
manifest: SkillManifest;
|
|
72
|
+
files: Array<{
|
|
73
|
+
path: string;
|
|
74
|
+
content: string;
|
|
75
|
+
}>;
|
|
76
|
+
}
|
|
77
|
+
export declare class SkillsNamespace {
|
|
78
|
+
private _client;
|
|
79
|
+
private _authority?;
|
|
80
|
+
private _workspaceId?;
|
|
81
|
+
constructor(client: MemoryLayerClient, authority?: AuthorityContext, workspaceId?: string);
|
|
82
|
+
/** Return a scoped proxy that injects OBO headers and workspace on every call. */
|
|
83
|
+
withAuthority(authority: AuthorityContext, workspaceId?: string): SkillsNamespace;
|
|
84
|
+
private _req;
|
|
85
|
+
list(options?: SkillListOptions): Promise<Skill[]>;
|
|
86
|
+
get(skillId: string): Promise<Skill>;
|
|
87
|
+
/**
|
|
88
|
+
* Render the full `SKILL.md` for a skill.
|
|
89
|
+
*
|
|
90
|
+
* The server returns raw markdown (`Content-Type: text/markdown`), not JSON,
|
|
91
|
+
* so this reads the body as text rather than parsing it.
|
|
92
|
+
*/
|
|
93
|
+
getManifest(skillId: string): Promise<string>;
|
|
94
|
+
listFiles(skillId: string): Promise<SkillFile[]>;
|
|
95
|
+
/**
|
|
96
|
+
* Fetch only the raw content of a skill file (no metadata lookup).
|
|
97
|
+
*
|
|
98
|
+
* Used internally by `materialize()` to avoid the extra `listFiles()` call
|
|
99
|
+
* that `getFile()` performs. The caller already has the full `SkillFile`
|
|
100
|
+
* metadata from the single `listFiles()` done by `materialize()`, so we only
|
|
101
|
+
* need the raw bytes here.
|
|
102
|
+
*/
|
|
103
|
+
private _fetchFileContent;
|
|
104
|
+
/**
|
|
105
|
+
* Fetch a single skill file with its content populated.
|
|
106
|
+
*
|
|
107
|
+
* `GET /v1/skills/{id}/files/{path}` streams the raw file bytes (e.g.
|
|
108
|
+
* `text/x-python`), NOT a JSON envelope — so we read the body as text and
|
|
109
|
+
* merge it onto the file's metadata from `listFiles()`. The metadata lookup
|
|
110
|
+
* is best-effort: if the path isn't in the listing we still return the
|
|
111
|
+
* fetched content with the path filled in.
|
|
112
|
+
*/
|
|
113
|
+
getFile(skillId: string, filePath: string): Promise<SkillFile>;
|
|
114
|
+
/**
|
|
115
|
+
* Delete a single file from a skill bundle.
|
|
116
|
+
*
|
|
117
|
+
* Calls `DELETE /v1/skills/{id}/files/{path}` (per-segment encodeURIComponent
|
|
118
|
+
* so embedded `/` separators are preserved, matching `getFile`). The server
|
|
119
|
+
* responds 204 with an empty body and is idempotent — deleting an
|
|
120
|
+
* already-absent path still succeeds — so the request helper's 204 handling
|
|
121
|
+
* means no JSON parsing happens here.
|
|
122
|
+
*/
|
|
123
|
+
deleteFile(skillId: string, filePath: string): Promise<void>;
|
|
124
|
+
/**
|
|
125
|
+
* Create or update a skill AND persist its bundle files.
|
|
126
|
+
*
|
|
127
|
+
* The server's create/update inputs (`POST /v1/skills`, `PUT /v1/skills/{id}`)
|
|
128
|
+
* carry NO `files` field — files are persisted out-of-band via
|
|
129
|
+
* `PUT /v1/skills/{id}/files/{path}` with base64 `content_b64`. A previous
|
|
130
|
+
* version sent `manifest.files` on the create body, where the server silently
|
|
131
|
+
* ignored it, so a skill saved with files lost them. This method now:
|
|
132
|
+
*
|
|
133
|
+
* 1. Detects create-vs-update by resolving the skill by name (the unique key
|
|
134
|
+
* within a scope). Found → UPDATE (`PUT /v1/skills/{id}`); else CREATE
|
|
135
|
+
* (`POST /v1/skills`). Neither create nor update bodies include `files`.
|
|
136
|
+
* 2. Upserts every manifest file via the dedicated file endpoint.
|
|
137
|
+
* 3. On UPDATE, performs a TRUE file reconcile: it lists the skill's current
|
|
138
|
+
* server files and DELETEs (`DELETE /v1/skills/{id}/files/{path}`) any whose
|
|
139
|
+
* path is no longer in the manifest, so the saved skill's bundle is an exact
|
|
140
|
+
* mirror of the manifest. (CREATE has no pre-existing files to prune.)
|
|
141
|
+
* 4. If the skill create/update succeeds but ANY file PUT fails, this RAISES a
|
|
142
|
+
* clear error rather than resolving — never silently dropping files. File
|
|
143
|
+
* PUTs are idempotent upserts, so the failed save is safe to retry.
|
|
144
|
+
*
|
|
145
|
+
* Returns the fully-persisted skill (re-fetched for fresh manifest/bundle
|
|
146
|
+
* hashes). The public signature and return type are unchanged.
|
|
147
|
+
*/
|
|
148
|
+
save(manifest: SkillManifest): Promise<Skill>;
|
|
149
|
+
delete(skillId: string): Promise<void>;
|
|
150
|
+
resolve(options?: SkillResolveOptions): Promise<Skill | null>;
|
|
151
|
+
pull(skillId: string): Promise<{
|
|
152
|
+
skill: Skill;
|
|
153
|
+
files: SkillFile[];
|
|
154
|
+
}>;
|
|
155
|
+
push(manifest: SkillManifest): Promise<Skill>;
|
|
156
|
+
/**
|
|
157
|
+
* Write every matching skill's `SKILL.md` + files into `targetDir`.
|
|
158
|
+
*
|
|
159
|
+
* The set of skills written is whatever the internal `list(...)` returns for
|
|
160
|
+
* the given `workspaceId`/`scope`. By default `enabled` is left unset, so
|
|
161
|
+
* both enabled and disabled server-visible skills are materialized (backwards
|
|
162
|
+
* compatible). Pass `enabled: true` to restrict the on-disk cache to the
|
|
163
|
+
* enabled subset (e.g. the OpenClaw skills-sync hook does this so disabled
|
|
164
|
+
* skills are never written into the agent's watched skills dir).
|
|
165
|
+
*
|
|
166
|
+
* By default materialize is purely additive: it writes/overwrites the desired
|
|
167
|
+
* skills but never removes anything already on disk. Pass `reconcile: true` to
|
|
168
|
+
* turn the sync into a true reconcile — after successfully listing AND writing
|
|
169
|
+
* the desired skills, any top-level entry in `targetDir` whose name is NOT in
|
|
170
|
+
* the desired skill-name set is removed. This is how a skill that was disabled,
|
|
171
|
+
* deleted, or renamed in MemoryLayer gets its stale on-disk copy pruned.
|
|
172
|
+
*
|
|
173
|
+
* CONTRACT (reconcile only): `targetDir` MUST be an exclusively
|
|
174
|
+
* MemoryLayer-managed directory (e.g. the OpenClaw plugin's dedicated
|
|
175
|
+
* `extraDir`). Reconcile will delete subdirectories it did not write. As a
|
|
176
|
+
* defensive guard it only removes a directory that *looks* like a materialized
|
|
177
|
+
* skill (i.e. contains a `SKILL.md`); unrelated files and non-skill directories
|
|
178
|
+
* are left untouched. Pruning runs ONLY after the list+materialize succeeded,
|
|
179
|
+
* so a transient server/list failure can never wipe the directory.
|
|
180
|
+
*/
|
|
181
|
+
materialize(targetDir: string, options?: {
|
|
182
|
+
workspaceId?: string;
|
|
183
|
+
scope?: string;
|
|
184
|
+
enabled?: boolean;
|
|
185
|
+
reconcile?: boolean;
|
|
186
|
+
}): Promise<void>;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Parse a skill folder from the filesystem.
|
|
190
|
+
* Reads SKILL.md (frontmatter + body) and walks scripts/, references/, assets/.
|
|
191
|
+
* Requires Node.js (uses fs/promises). Not available in browser environments.
|
|
192
|
+
*/
|
|
193
|
+
export declare function parseSkillFolder(dir: string): Promise<ParsedSkillFolder>;
|
|
194
|
+
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../src/skills.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAgCnD,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,WAAW,EAAE,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjD,WAAW,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC;CACpD;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD;AAMD,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,UAAU,CAAC,CAAmB;IACtC,OAAO,CAAC,YAAY,CAAC,CAAS;gBAG5B,MAAM,EAAE,iBAAiB,EACzB,SAAS,CAAC,EAAE,gBAAgB,EAC5B,WAAW,CAAC,EAAE,MAAM;IAOtB,kFAAkF;IAClF,aAAa,CACX,SAAS,EAAE,gBAAgB,EAC3B,WAAW,CAAC,EAAE,MAAM,GACnB,eAAe;IAQlB,OAAO,CAAC,IAAI;IAgBN,IAAI,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAsBtD,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAQ1C;;;;;OAKG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU7C,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAQtD;;;;;;;OAOG;YACW,iBAAiB;IAiB/B;;;;;;;;OAQG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAwBpE;;;;;;;;OAQG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAclE;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,IAAI,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;IA8G7C,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,OAAO,CAAC,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAcjE,IAAI,CACR,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,SAAS,EAAE,CAAA;KAAE,CAAC;IAQ1C,IAAI,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;IAInD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,WAAW,CACf,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;QACP,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;KAChB,GACL,OAAO,CAAC,IAAI,CAAC;CA2DjB;AAkBD;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,iBAAiB,CAAC,CAwD5B"}
|