@ryanstark24/sfgraph-server 1.1.4 → 1.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/context.d.ts +7 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +27 -3
- package/dist/context.js.map +1 -1
- package/dist/tools/find_similar.d.ts +2 -0
- package/dist/tools/find_similar.d.ts.map +1 -0
- package/dist/tools/find_similar.js +144 -0
- package/dist/tools/find_similar.js.map +1 -0
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/package.json +2 -2
package/dist/context.d.ts
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
import { type GraphStore, type SnapshotStore } from "@ryanstark24/sfgraph-core";
|
|
1
|
+
import { type GraphStore, type SnapshotStore, type VectorStore } from "@ryanstark24/sfgraph-core";
|
|
2
2
|
import { type OrgId } from "@ryanstark24/sfgraph-shared";
|
|
3
3
|
export interface ToolContext {
|
|
4
4
|
graphStore: GraphStore;
|
|
5
5
|
snapshotStore: SnapshotStore;
|
|
6
|
+
/** Shares the same SQLite handle as graphStore, so it doesn't double up
|
|
7
|
+
* file descriptors. Optional because test factories build minimal
|
|
8
|
+
* contexts without it; tools that need it (e.g. find_similar) check
|
|
9
|
+
* for presence. Null at runtime when vec0 / sqlite-vec failed to load
|
|
10
|
+
* on this Node ABI. */
|
|
11
|
+
vectorStore?: VectorStore | null;
|
|
6
12
|
orgId: OrgId;
|
|
7
13
|
/** Raw SQLite handle for cached analysis-table reads (optional). */
|
|
8
14
|
db?: unknown;
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,WAAW,EAEjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,KAAK,KAAK,EAMX,MAAM,6BAA6B,CAAC;AAErC,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B;;;;4BAIwB;IACxB,WAAW,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC,KAAK,EAAE,KAAK,CAAC;IACb,oEAAoE;IACpE,EAAE,CAAC,EAAE,OAAO,CAAC;CACd;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;AA+CpF,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI,CAIzE;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAgBxF;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAMtD;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
|
package/dist/context.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { existsSync, readdirSync } from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import { loadBetterSqlite3 } from "@ryanstark24/sfgraph-core";
|
|
3
|
+
import { loadBetterSqlite3, } from "@ryanstark24/sfgraph-core";
|
|
4
4
|
import { ErrorCode, SfgraphError, asOrgId, getSfgraphPaths, safeOrgDbPath, validateOrgIdentifier, } from "@ryanstark24/sfgraph-shared";
|
|
5
5
|
let factory = null;
|
|
6
6
|
/**
|
|
@@ -186,7 +186,7 @@ async function defaultFactory(opts) {
|
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
const dbPath = safeOrgDbPath(paths.data, resolvedOrgId);
|
|
189
|
-
const { SqliteGraphStore, SqliteSnapshotStore } = await import("@ryanstark24/sfgraph-core");
|
|
189
|
+
const { SqliteGraphStore, SqliteSnapshotStore, SqliteVectorStore } = await import("@ryanstark24/sfgraph-core");
|
|
190
190
|
const graphStore = new SqliteGraphStore({ dbPath });
|
|
191
191
|
await graphStore.init();
|
|
192
192
|
const snapshotStore = new SqliteSnapshotStore({
|
|
@@ -196,7 +196,31 @@ async function defaultFactory(opts) {
|
|
|
196
196
|
});
|
|
197
197
|
await snapshotStore.init();
|
|
198
198
|
const db = graphStore.db;
|
|
199
|
-
|
|
199
|
+
// VectorStore reuses the GraphStore's SQLite handle (skipMigrations:true —
|
|
200
|
+
// GraphStore's migration runner already created the vec0 tables) and
|
|
201
|
+
// loads the sqlite-vec extension on this connection so MATCH queries work.
|
|
202
|
+
// If sqlite-vec isn't available (e.g. native-binding install skipped),
|
|
203
|
+
// null out and let tools surface "no vector index" instead of crashing.
|
|
204
|
+
let vectorStore = null;
|
|
205
|
+
try {
|
|
206
|
+
const vs = new SqliteVectorStore({
|
|
207
|
+
dbPath,
|
|
208
|
+
db: graphStore.db,
|
|
209
|
+
skipMigrations: true,
|
|
210
|
+
});
|
|
211
|
+
await vs.init();
|
|
212
|
+
vectorStore = vs;
|
|
213
|
+
}
|
|
214
|
+
catch {
|
|
215
|
+
vectorStore = null;
|
|
216
|
+
}
|
|
217
|
+
const ctx = {
|
|
218
|
+
graphStore,
|
|
219
|
+
snapshotStore,
|
|
220
|
+
vectorStore,
|
|
221
|
+
orgId: asOrgId(resolvedOrgId),
|
|
222
|
+
db,
|
|
223
|
+
};
|
|
200
224
|
return ctx;
|
|
201
225
|
}
|
|
202
226
|
//# sourceMappingURL=context.js.map
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find_similar.d.ts","sourceRoot":"","sources":["../../src/tools/find_similar.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { asQualifiedName } from "@ryanstark24/sfgraph-shared";
|
|
2
|
+
import { getToolContext } from "../context.js";
|
|
3
|
+
import { defineTool, z } from "./_define.js";
|
|
4
|
+
const inputSchema = z
|
|
5
|
+
.object({
|
|
6
|
+
org: z.string().min(1),
|
|
7
|
+
/** The qualified_name of an existing graph node to use as the focal
|
|
8
|
+
* point. Mutually exclusive with `text`. */
|
|
9
|
+
qname: z.string().min(1).optional(),
|
|
10
|
+
/** A free-text query (e.g. "code that handles order cancellation").
|
|
11
|
+
* Embedded on the fly through the same MiniLM pipeline used at
|
|
12
|
+
* ingest time. Mutually exclusive with `qname`. Use this when no
|
|
13
|
+
* existing node names the concept you're after — semantic match
|
|
14
|
+
* surfaces conceptually-related code without an exact qname. */
|
|
15
|
+
text: z.string().min(1).max(4096).optional(),
|
|
16
|
+
/** Top-k results to return (1–50). Default 10 — small enough to surface
|
|
17
|
+
* in an agent reply without flooding the context window. */
|
|
18
|
+
k: z.number().int().min(1).max(50).default(10),
|
|
19
|
+
/** Restrict matches to a single node label (e.g. 'ApexClass', 'LWC',
|
|
20
|
+
* 'Flow'). When omitted, all labels are searched. */
|
|
21
|
+
label: z.string().min(1).optional(),
|
|
22
|
+
})
|
|
23
|
+
.refine((v) => Boolean(v.qname) !== Boolean(v.text), {
|
|
24
|
+
message: "Provide exactly one of `qname` or `text`",
|
|
25
|
+
});
|
|
26
|
+
defineTool({
|
|
27
|
+
name: "find_similar",
|
|
28
|
+
description: "USE THIS to find Salesforce metadata semantically similar to a given node OR a free-text concept. Powered by the in-process MiniLM-L6 embeddings produced during ingest. Two modes: (1) pass `qname` for 'show me other Apex methods like BillingSvc.run' / 'what LWCs are similar to accountTile' — uses an existing node's stored vector; (2) pass `text` for 'find code that handles order cancellation' / 'where do we compute compliance fees' — embeds your text on the fly and runs KNN. Filter by label to restrict to one node type. Use this when exact-name search misses or no qname names the concept you're after.",
|
|
29
|
+
inputSchema,
|
|
30
|
+
async execute(input) {
|
|
31
|
+
const ctx = await getToolContext({ orgId: input.org });
|
|
32
|
+
// No vec0 / no embeddings table — degrade gracefully with a clear
|
|
33
|
+
// message so the agent can fall back to structural traversal.
|
|
34
|
+
if (!ctx.vectorStore) {
|
|
35
|
+
return {
|
|
36
|
+
summary: "vector index unavailable for this org",
|
|
37
|
+
markdown: [
|
|
38
|
+
`> Vector search isn't available on this org's graph.`,
|
|
39
|
+
``,
|
|
40
|
+
`Causes (most common first):`,
|
|
41
|
+
`- The org was ingested before \`@ryanstark24/sfgraph-models\` was wired up; embeddings weren't generated. Re-run \`sfgraph ingest --org ${input.org} --rebuild\` to populate the vector index.`,
|
|
42
|
+
`- The optional \`@ryanstark24/sfgraph-models\` install was skipped (e.g. on slow connections). The model is ~30 MB; install it with \`npm install -g @ryanstark24/sfgraph-models\` and re-ingest.`,
|
|
43
|
+
`- The \`sqlite-vec\` extension failed to load on this Node ABI.`,
|
|
44
|
+
``,
|
|
45
|
+
`_follow_up_tools: \`trace_downstream\`, \`trace_upstream\`, \`analyze_field\`_`,
|
|
46
|
+
].join("\n"),
|
|
47
|
+
data: { hits: [], reason: "vector_index_unavailable" },
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
// Resolve the focal vector — either looking it up by qname or
|
|
51
|
+
// embedding the free-text query through the same MiniLM pipeline.
|
|
52
|
+
let focal = null;
|
|
53
|
+
let focalLabel;
|
|
54
|
+
if (input.qname) {
|
|
55
|
+
focalLabel = input.qname;
|
|
56
|
+
focal = ctx.vectorStore.getNodeVector(ctx.orgId, asQualifiedName(input.qname));
|
|
57
|
+
if (!focal) {
|
|
58
|
+
return {
|
|
59
|
+
summary: `no embedding stored for ${input.qname}`,
|
|
60
|
+
markdown: [
|
|
61
|
+
`> No vector exists for \`${input.qname}\`.`,
|
|
62
|
+
``,
|
|
63
|
+
`Likely causes:`,
|
|
64
|
+
`- The qname is wrong (typo / wrong casing / wrong member type prefix). The graph keys are \`<Label>:<Name>\` (e.g. \`ApexClass:BillingSvc\`).`,
|
|
65
|
+
`- The node exists but its label doesn't get embedded (only code-bearing nodes — Apex, LWC, Flow, OmniStudio — are vectorised by default).`,
|
|
66
|
+
`- The org was last ingested before this label started producing embeddings; re-ingest with \`--rebuild\` to backfill.`,
|
|
67
|
+
``,
|
|
68
|
+
`_Tip:_ if no node names the concept you're after, retry with \`text\` instead of \`qname\`.`,
|
|
69
|
+
``,
|
|
70
|
+
`_follow_up_tools: \`analyze_field\`, \`trace_upstream\`_`,
|
|
71
|
+
].join("\n"),
|
|
72
|
+
data: { hits: [], reason: "no_focal_vector" },
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
// Free-text mode. Lazy-import via the public re-export so we don't
|
|
78
|
+
// require core consumers to ship the embedder runtime when they
|
|
79
|
+
// don't use this path.
|
|
80
|
+
focalLabel = `"${input.text}"`;
|
|
81
|
+
const { embedSingle } = await import("@ryanstark24/sfgraph-core");
|
|
82
|
+
focal = await embedSingle(input.text ?? "");
|
|
83
|
+
if (!focal) {
|
|
84
|
+
return {
|
|
85
|
+
summary: "embedder unavailable",
|
|
86
|
+
markdown: [
|
|
87
|
+
`> Couldn't embed the query text \`"${input.text}"\`.`,
|
|
88
|
+
``,
|
|
89
|
+
`Either the \`@xenova/transformers\` runtime isn't installed on this machine, or the MiniLM model files (\`@ryanstark24/sfgraph-models\`) aren't reachable. Both are optionalDependencies of \`@ryanstark24/sfgraph-core\`; reinstall with \`npm install -g @ryanstark24/sfgraph\` to pull them.`,
|
|
90
|
+
``,
|
|
91
|
+
`_Fallback:_ retry with \`qname\` pointing at the closest existing node.`,
|
|
92
|
+
].join("\n"),
|
|
93
|
+
data: { hits: [], reason: "embedder_unavailable" },
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
// For qname mode, fetch k+1 because the focal node will be in its
|
|
98
|
+
// own neighbourhood (distance 0); strip it below. For text mode the
|
|
99
|
+
// focal isn't a graph node, so k results is exact.
|
|
100
|
+
const fetchK = input.qname ? input.k + 1 : input.k;
|
|
101
|
+
const raw = ctx.vectorStore.searchNodes(ctx.orgId, focal, fetchK, input.label ? { label: input.label } : undefined);
|
|
102
|
+
const hits = input.qname
|
|
103
|
+
? raw.filter((h) => h.qname !== asQualifiedName(input.qname ?? "")).slice(0, input.k)
|
|
104
|
+
: raw.slice(0, input.k);
|
|
105
|
+
if (hits.length === 0) {
|
|
106
|
+
return {
|
|
107
|
+
summary: `no neighbours found for ${focalLabel}`,
|
|
108
|
+
markdown: `> Vector index has no nearby neighbours for ${focalLabel}${input.label ? ` within label \`${input.label}\`` : ""}. The org may be sparsely populated for this label, or the focal may genuinely be isolated.`,
|
|
109
|
+
data: { hits: [], reason: "no_neighbours" },
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
// Cosine distance from sqlite-vec is in [0, 2]; lower = more similar.
|
|
113
|
+
// Convert to a 0–1 similarity score for the agent's UX (higher = more
|
|
114
|
+
// similar) — but keep the raw distance in `data` for programmatic use.
|
|
115
|
+
const md = [
|
|
116
|
+
`**Top ${hits.length} nearest neighbour${hits.length === 1 ? "" : "s"} to ${focalLabel}${input.label ? ` (label: \`${input.label}\`)` : ""}:**`,
|
|
117
|
+
``,
|
|
118
|
+
`| # | qname | label | similarity | distance |`,
|
|
119
|
+
`| - | ----- | ----- | ---------- | -------- |`,
|
|
120
|
+
];
|
|
121
|
+
hits.forEach((h, i) => {
|
|
122
|
+
const sim = (1 - h.distance / 2).toFixed(3);
|
|
123
|
+
md.push(`| ${i + 1} | \`${h.qname}\` | \`${h.label}\` | ${sim} | ${h.distance.toFixed(4)} |`);
|
|
124
|
+
});
|
|
125
|
+
md.push(``, `_follow_up_tools: \`explain_code\`, \`trace_downstream\`, \`analyze_field\`_`);
|
|
126
|
+
return {
|
|
127
|
+
summary: `${hits.length} neighbour${hits.length === 1 ? "" : "s"} of ${focalLabel}`,
|
|
128
|
+
markdown: md.join("\n"),
|
|
129
|
+
data: {
|
|
130
|
+
focalQname: input.qname ?? null,
|
|
131
|
+
focalText: input.text ?? null,
|
|
132
|
+
label: input.label ?? null,
|
|
133
|
+
k: input.k,
|
|
134
|
+
hits: hits.map((h) => ({
|
|
135
|
+
qname: h.qname,
|
|
136
|
+
label: h.label,
|
|
137
|
+
distance: h.distance,
|
|
138
|
+
similarity: 1 - h.distance / 2,
|
|
139
|
+
})),
|
|
140
|
+
},
|
|
141
|
+
};
|
|
142
|
+
},
|
|
143
|
+
});
|
|
144
|
+
//# sourceMappingURL=find_similar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find_similar.js","sourceRoot":"","sources":["../../src/tools/find_similar.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,CAAC;AACnB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,yBAAyB,CAAC;AACjC,OAAO,iBAAiB,CAAC;AACzB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,2BAA2B,CAAC;AACnC,OAAO,0CAA0C,CAAC;AAClD,OAAO,2BAA2B,CAAC;AACnC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,0BAA0B,CAAC;AAClC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,8BAA8B,CAAC;AACtC,OAAO,iBAAiB,CAAC;AACzB,OAAO,eAAe,CAAC;AACvB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,gBAAgB,CAAC;AACxB,OAAO,sBAAsB,CAAC;AAC9B,OAAO,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,CAAC;AACnB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,yBAAyB,CAAC;AACjC,OAAO,iBAAiB,CAAC;AACzB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,2BAA2B,CAAC;AACnC,OAAO,0CAA0C,CAAC;AAClD,OAAO,2BAA2B,CAAC;AACnC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,0BAA0B,CAAC;AAClC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,8BAA8B,CAAC;AACtC,OAAO,iBAAiB,CAAC;AACzB,OAAO,eAAe,CAAC;AACvB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,gBAAgB,CAAC;AACxB,OAAO,sBAAsB,CAAC;AAC9B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/tools/index.js
CHANGED
package/dist/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,OAAO,WAAW,CAAC;AACnB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,yBAAyB,CAAC;AACjC,OAAO,iBAAiB,CAAC;AACzB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,2BAA2B,CAAC;AACnC,OAAO,0CAA0C,CAAC;AAClD,OAAO,2BAA2B,CAAC;AACnC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,0BAA0B,CAAC;AAClC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,8BAA8B,CAAC;AACtC,OAAO,iBAAiB,CAAC;AACzB,OAAO,eAAe,CAAC;AACvB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,gBAAgB,CAAC;AACxB,OAAO,sBAAsB,CAAC;AAC9B,OAAO,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,OAAO,WAAW,CAAC;AACnB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,sBAAsB,CAAC;AAC9B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,yBAAyB,CAAC;AACjC,OAAO,iBAAiB,CAAC;AACzB,OAAO,uBAAuB,CAAC;AAC/B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,2BAA2B,CAAC;AACnC,OAAO,0CAA0C,CAAC;AAClD,OAAO,2BAA2B,CAAC;AACnC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,uBAAuB,CAAC;AAC/B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,0BAA0B,CAAC;AAClC,OAAO,sBAAsB,CAAC;AAC9B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,8BAA8B,CAAC;AACtC,OAAO,iBAAiB,CAAC;AACzB,OAAO,eAAe,CAAC;AACvB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,gBAAgB,CAAC;AACxB,OAAO,sBAAsB,CAAC;AAC9B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,mBAAmB,CAAC;AAE3B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ryanstark24/sfgraph-server",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"zod-to-json-schema": "^3.25.2",
|
|
17
17
|
"@salesforce/core": "^8.30.0",
|
|
18
18
|
"better-sqlite3": "^12.10.0",
|
|
19
|
-
"@ryanstark24/sfgraph-core": "1.1.
|
|
19
|
+
"@ryanstark24/sfgraph-core": "1.1.6",
|
|
20
20
|
"@ryanstark24/sfgraph-shared": "1.1.3"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|