MCPcopy Index your code
hub / github.com/garrytan/gstack / dispatchVector

Function dispatchVector

bin/gstack-brain-context-load.ts:205–241  ·  view source on GitHub ↗
(q: GbrainManifestQuery, args: CliArgs)

Source from the content-addressed store, hash-verified

203}
204
205function dispatchVector(q: GbrainManifestQuery, args: CliArgs): QueryResult {
206 const t0 = Date.now();
207 const { resolved: query, unresolved } = substituteTemplateVars(q.query || "", args);
208 if (unresolved.length > 0) {
209 return {
210 query: q,
211 ok: false,
212 rendered: "",
213 bytes: 0,
214 duration_ms: Date.now() - t0,
215 reason: `template vars unresolved: ${unresolved.join(",")}`,
216 };
217 }
218 if (!gbrainAvailable()) {
219 return { query: q, ok: false, rendered: "", bytes: 0, duration_ms: Date.now() - t0, reason: "gbrain CLI missing" };
220 }
221
222 const limit = q.limit ?? args.limit;
223 const result = spawnSync("gbrain", ["query", query, "--limit", String(limit), "--format", "compact"], {
224 encoding: "utf-8",
225 timeout: MCP_TIMEOUT_MS,
226 });
227
228 if (result.status !== 0 || !result.stdout) {
229 return {
230 query: q,
231 ok: false,
232 rendered: "",
233 bytes: 0,
234 duration_ms: Date.now() - t0,
235 reason: result.error?.message || `gbrain query exited ${result.status}`,
236 };
237 }
238
239 const rendered = wrapDatamarked(q.render_as, capBody(result.stdout));
240 return { query: q, ok: true, rendered, bytes: rendered.length, duration_ms: Date.now() - t0 };
241}
242
243function dispatchList(q: GbrainManifestQuery, args: CliArgs): QueryResult {
244 const t0 = Date.now();

Callers 1

loadContextFunction · 0.85

Calls 5

substituteTemplateVarsFunction · 0.85
spawnSyncFunction · 0.85
wrapDatamarkedFunction · 0.85
capBodyFunction · 0.85
gbrainAvailableFunction · 0.70

Tested by

no test coverage detected