@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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp_servers.js","sourceRoot":"","sources":["../src/mcp_servers.ts"],"names":[],"mappings":"AAgFA,wEAAwE;AACxE,sDAAsD;AACtD,wEAAwE;AAExE,MAAM,OAAO,mBAAmB;IACtB,OAAO,CAAoB;IAC3B,UAAU,CAAoB;IAC9B,YAAY,CAAU;IAE9B,YACE,MAAyB,EACzB,SAA4B,EAC5B,WAAoB;QAEpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAED,kFAAkF;IAClF,aAAa,CACX,SAA2B,EAC3B,WAAoB;QAEpB,OAAO,IAAI,mBAAmB,CAC5B,IAAI,CAAC,OAAO,EACZ,SAAS,EACT,WAAW,IAAI,IAAI,CAAC,YAAY,CACjC,CAAC;IACJ,CAAC;IAEO,IAAI,CACV,MAAc,EACd,IAAY,EACZ,IAAc,EACd,SAA4B;QAE5B,OAAQ,IAAI,CAAC,OAAqC,CAAC,kBAAkB,CACnE,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,SAAS,IAAI,IAAI,CAAC,UAAU,CAC7B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,UAAgC,EAAE;QAC3C,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC;QACtD,IAAI,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,OAAO,CAAC,MAAM;YAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,OAAO,CAAC,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,OAAO,CAAC,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAClF,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5E,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAC9B,KAAK,EACL,kBAAkB,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAC5C,SAAS,EACT,OAAO,CAAC,SAAS,CAClB,CAAC;QACF,OAAO,QAAQ,CAAC,WAAW,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,QAAgB,EAAE,SAA4B;QACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAC9B,KAAK,EACL,mBAAmB,QAAQ,EAAE,EAC7B,SAAS,EACT,SAAS,CACV,CAAC;QACF,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA+B;QAC1C,MAAM,IAAI,GAA4B;YACpC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;YACxB,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,EAAE;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,EAAE;YAChC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,QAAQ;YAC5C,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;SACjC,CAAC;QACF,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAClE,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACtD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAC9E,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY;YAAE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC;QAC3G,IAAI,OAAO,CAAC,MAAM;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAClD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAC9B,MAAM,EACN,iBAAiB,EACjB,IAAI,EACJ,OAAO,CAAC,SAAS,CAClB,CAAC;QACF,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,UAAkC,EAAE;QACjE,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAC9E,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAClE,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzD,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACtD,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;YAAE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACtD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAClE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACrE,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QAC9E,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAClE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAC9B,OAAO,EACP,mBAAmB,QAAQ,EAAE,EAC7B,IAAI,EACJ,OAAO,CAAC,SAAS,CAClB,CAAC;QACF,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,SAA4B;QACzD,MAAM,IAAI,CAAC,IAAI,CACb,QAAQ,EACR,mBAAmB,QAAQ,EAAE,EAC7B,SAAS,EACT,SAAS,CACV,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAgC;QAC5C,MAAM,IAAI,GAA4B,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC;QACtD,IAAI,IAAI;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAC9B,MAAM,EACN,yBAAyB,EACzB,IAAI,EACJ,OAAO,CAAC,SAAS,CAClB,CAAC;QACF,OAAO,QAAQ,CAAC,UAAU,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM,CACV,GAAoB,EACpB,UAAkC,EAAE,EACpC,SAA4B;QAE5B,MAAM,IAAI,GAA4B,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC;QACrE,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC;QACtD,IAAI,IAAI;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACnC,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;QAChE,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;YAAE,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;QAC5E,OAAO,IAAI,CAAC,IAAI,CACd,MAAM,EACN,wBAAwB,EACxB,IAAI,EACJ,SAAS,CACV,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CACV,UAAoC,EAAE,EACtC,SAA4B;QAE5B,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,CAAC;QACtD,IAAI,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,IAAI,CACd,KAAK,EACL,yBAAyB,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EACnD,SAAS,EACT,SAAS,CACV,CAAC;IACJ,CAAC;CACF"}
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpg.js","sourceRoot":"","sources":["../src/rpg.ts"],"names":[],"mappings":"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"}
@@ -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"}