@kernel.chat/kbot 3.50.0 → 3.52.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.
Files changed (84) hide show
  1. package/README.md +43 -9
  2. package/dist/agent-protocol.test.d.ts +2 -0
  3. package/dist/agent-protocol.test.d.ts.map +1 -0
  4. package/dist/agent-protocol.test.js +730 -0
  5. package/dist/agent-protocol.test.js.map +1 -0
  6. package/dist/agent.d.ts.map +1 -1
  7. package/dist/agent.js +34 -10
  8. package/dist/agent.js.map +1 -1
  9. package/dist/auth.js +3 -3
  10. package/dist/auth.js.map +1 -1
  11. package/dist/bench.d.ts +64 -0
  12. package/dist/bench.d.ts.map +1 -0
  13. package/dist/bench.js +973 -0
  14. package/dist/bench.js.map +1 -0
  15. package/dist/cli.js +144 -29
  16. package/dist/cli.js.map +1 -1
  17. package/dist/cloud-agent.d.ts +77 -0
  18. package/dist/cloud-agent.d.ts.map +1 -0
  19. package/dist/cloud-agent.js +743 -0
  20. package/dist/cloud-agent.js.map +1 -0
  21. package/dist/context.test.d.ts +2 -0
  22. package/dist/context.test.d.ts.map +1 -0
  23. package/dist/context.test.js +561 -0
  24. package/dist/context.test.js.map +1 -0
  25. package/dist/evolution.d.ts.map +1 -1
  26. package/dist/evolution.js +4 -1
  27. package/dist/evolution.js.map +1 -1
  28. package/dist/github-release.d.ts +61 -0
  29. package/dist/github-release.d.ts.map +1 -0
  30. package/dist/github-release.js +451 -0
  31. package/dist/github-release.js.map +1 -0
  32. package/dist/graph-memory.test.d.ts +2 -0
  33. package/dist/graph-memory.test.d.ts.map +1 -0
  34. package/dist/graph-memory.test.js +946 -0
  35. package/dist/graph-memory.test.js.map +1 -0
  36. package/dist/init-science.d.ts +43 -0
  37. package/dist/init-science.d.ts.map +1 -0
  38. package/dist/init-science.js +477 -0
  39. package/dist/init-science.js.map +1 -0
  40. package/dist/lab.d.ts +45 -0
  41. package/dist/lab.d.ts.map +1 -0
  42. package/dist/lab.js +1020 -0
  43. package/dist/lab.js.map +1 -0
  44. package/dist/lsp-deep.d.ts +101 -0
  45. package/dist/lsp-deep.d.ts.map +1 -0
  46. package/dist/lsp-deep.js +689 -0
  47. package/dist/lsp-deep.js.map +1 -0
  48. package/dist/memory.test.d.ts +2 -0
  49. package/dist/memory.test.d.ts.map +1 -0
  50. package/dist/memory.test.js +369 -0
  51. package/dist/memory.test.js.map +1 -0
  52. package/dist/multi-session.d.ts +164 -0
  53. package/dist/multi-session.d.ts.map +1 -0
  54. package/dist/multi-session.js +885 -0
  55. package/dist/multi-session.js.map +1 -0
  56. package/dist/self-eval.d.ts.map +1 -1
  57. package/dist/self-eval.js +5 -2
  58. package/dist/self-eval.js.map +1 -1
  59. package/dist/streaming.d.ts.map +1 -1
  60. package/dist/streaming.js +0 -1
  61. package/dist/streaming.js.map +1 -1
  62. package/dist/teach.d.ts +136 -0
  63. package/dist/teach.d.ts.map +1 -0
  64. package/dist/teach.js +915 -0
  65. package/dist/teach.js.map +1 -0
  66. package/dist/telemetry.d.ts +1 -1
  67. package/dist/telemetry.d.ts.map +1 -1
  68. package/dist/telemetry.js.map +1 -1
  69. package/dist/tools/ableton.d.ts.map +1 -1
  70. package/dist/tools/ableton.js +255 -1
  71. package/dist/tools/ableton.js.map +1 -1
  72. package/dist/tools/browser-agent.js +2 -2
  73. package/dist/tools/browser-agent.js.map +1 -1
  74. package/dist/tools/forge.d.ts.map +1 -1
  75. package/dist/tools/forge.js +15 -26
  76. package/dist/tools/forge.js.map +1 -1
  77. package/dist/tools/git.d.ts.map +1 -1
  78. package/dist/tools/git.js +10 -7
  79. package/dist/tools/git.js.map +1 -1
  80. package/dist/voice-realtime.d.ts +54 -0
  81. package/dist/voice-realtime.d.ts.map +1 -0
  82. package/dist/voice-realtime.js +805 -0
  83. package/dist/voice-realtime.js.map +1 -0
  84. package/package.json +10 -3
@@ -0,0 +1,451 @@
1
+ // kbot GitHub Release — Auto-create GitHub releases from git history
2
+ //
3
+ // Usage:
4
+ // import { createGitHubRelease, generateChangelog } from './github-release.js'
5
+ // const result = await createGitHubRelease({ owner: 'isaacsight', repo: 'kernel' })
6
+ //
7
+ // CLI:
8
+ // $ kbot release # Create release from current version
9
+ // $ kbot release --draft # Create as draft
10
+ // $ kbot release --tag v3.52.0 # Override tag
11
+ // $ kbot release --dry-run # Preview without creating
12
+ import { execSync } from 'node:child_process';
13
+ import { readFileSync } from 'node:fs';
14
+ import { join } from 'node:path';
15
+ // ── Conventional commit categories ──
16
+ const COMMIT_CATEGORIES = {
17
+ 'feat': { label: 'Features', emoji: '\u2728', order: 0 },
18
+ 'fix': { label: 'Bug Fixes', emoji: '\uD83D\uDC1B', order: 1 },
19
+ 'perf': { label: 'Performance', emoji: '\u26A1', order: 2 },
20
+ 'security': { label: 'Security', emoji: '\uD83D\uDD12', order: 3 },
21
+ 'refactor': { label: 'Refactoring', emoji: '\u267B\uFE0F', order: 4 },
22
+ 'test': { label: 'Tests', emoji: '\uD83E\uDDEA', order: 5 },
23
+ 'docs': { label: 'Documentation', emoji: '\uD83D\uDCDA', order: 6 },
24
+ 'build': { label: 'Build & Deploy', emoji: '\uD83D\uDCE6', order: 7 },
25
+ 'ci': { label: 'CI/CD', emoji: '\u2699\uFE0F', order: 8 },
26
+ 'chore': { label: 'Maintenance', emoji: '\uD83E\uDDF9', order: 9 },
27
+ 'style': { label: 'Code Style', emoji: '\uD83C\uDFA8', order: 10 },
28
+ 'revert': { label: 'Reverts', emoji: '\u23EA', order: 11 },
29
+ };
30
+ const DEFAULT_CATEGORY = { label: 'Other Changes', emoji: '\uD83D\uDD27', order: 99 };
31
+ // ── Git helpers ──
32
+ function git(cmd) {
33
+ try {
34
+ return execSync(`git ${cmd}`, {
35
+ cwd: process.cwd(),
36
+ encoding: 'utf-8',
37
+ stdio: ['pipe', 'pipe', 'pipe'],
38
+ timeout: 15000,
39
+ }).trim();
40
+ }
41
+ catch {
42
+ return '';
43
+ }
44
+ }
45
+ function getLastTag() {
46
+ const tag = git('describe --tags --abbrev=0');
47
+ return tag || null;
48
+ }
49
+ function getPreviousTag(currentTag) {
50
+ const tag = git(`describe --tags --abbrev=0 ${currentTag}^`);
51
+ return tag || null;
52
+ }
53
+ function getAllTags() {
54
+ const output = git('tag --sort=-v:refname');
55
+ return output ? output.split('\n').filter(Boolean) : [];
56
+ }
57
+ function getCommitsBetween(fromRef, toRef) {
58
+ const separator = '---KBOT-COMMIT-SEP---';
59
+ const fieldSep = '---KBOT-FIELD-SEP---';
60
+ const format = `${fieldSep}%h${fieldSep}%s${fieldSep}%b${fieldSep}%an${fieldSep}%ai${separator}`;
61
+ const range = fromRef && toRef
62
+ ? `${fromRef}..${toRef}`
63
+ : fromRef
64
+ ? `${fromRef}..HEAD`
65
+ : toRef
66
+ ? toRef
67
+ : '-30';
68
+ const output = git(`log ${range} --format="${format}"`);
69
+ if (!output)
70
+ return [];
71
+ return output
72
+ .split(separator)
73
+ .filter(chunk => chunk.trim())
74
+ .map(chunk => {
75
+ const fields = chunk.split(fieldSep).filter(Boolean);
76
+ if (fields.length < 2)
77
+ return null;
78
+ return {
79
+ hash: fields[0]?.trim() || '',
80
+ subject: fields[1]?.trim() || '',
81
+ body: fields[2]?.trim() || '',
82
+ author: fields[3]?.trim() || '',
83
+ date: fields[4]?.trim() || '',
84
+ };
85
+ })
86
+ .filter((c) => c !== null && c.hash.length > 0);
87
+ }
88
+ function getVersionFromPackageJson() {
89
+ try {
90
+ // Check packages/kbot/package.json first, then root
91
+ for (const rel of ['packages/kbot/package.json', 'package.json']) {
92
+ try {
93
+ const pkgPath = join(process.cwd(), rel);
94
+ const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
95
+ if (pkg.version)
96
+ return pkg.version;
97
+ }
98
+ catch { /* try next */ }
99
+ }
100
+ return 'unreleased';
101
+ }
102
+ catch {
103
+ return 'unreleased';
104
+ }
105
+ }
106
+ function getRepoInfo() {
107
+ const remote = git('remote get-url origin');
108
+ if (!remote)
109
+ return null;
110
+ // Parse SSH or HTTPS URLs
111
+ // git@github.com:owner/repo.git
112
+ // https://github.com/owner/repo.git
113
+ const sshMatch = remote.match(/git@github\.com:([^/]+)\/([^/.]+)/);
114
+ const httpsMatch = remote.match(/github\.com\/([^/]+)\/([^/.]+)/);
115
+ const match = sshMatch || httpsMatch;
116
+ if (match)
117
+ return { owner: match[1], repo: match[2] };
118
+ return null;
119
+ }
120
+ /**
121
+ * Resolve a GitHub token from multiple sources.
122
+ * Priority: explicit token > GITHUB_TOKEN env > GH_TOKEN env > gh CLI auth
123
+ */
124
+ function resolveToken(explicit) {
125
+ if (explicit)
126
+ return explicit;
127
+ // Environment variables
128
+ if (process.env.GITHUB_TOKEN)
129
+ return process.env.GITHUB_TOKEN;
130
+ if (process.env.GH_TOKEN)
131
+ return process.env.GH_TOKEN;
132
+ // Try gh CLI auth token
133
+ try {
134
+ const token = execSync('gh auth token', {
135
+ encoding: 'utf-8',
136
+ stdio: ['pipe', 'pipe', 'pipe'],
137
+ timeout: 5000,
138
+ }).trim();
139
+ if (token)
140
+ return token;
141
+ }
142
+ catch { /* gh not available or not authenticated */ }
143
+ return null;
144
+ }
145
+ // ── Commit categorization ──
146
+ /**
147
+ * Parse a commit subject into its conventional commit prefix.
148
+ * Returns the prefix key (e.g., 'feat', 'fix') or null.
149
+ */
150
+ function parsePrefix(subject) {
151
+ const match = subject.match(/^(\w+)(?:\(.+?\))?(!)?:\s/);
152
+ if (!match)
153
+ return null;
154
+ return match[1].toLowerCase();
155
+ }
156
+ /**
157
+ * Strip the conventional commit prefix from a subject line.
158
+ * "feat(auth): add OAuth" -> "add OAuth"
159
+ */
160
+ function stripPrefix(subject) {
161
+ return subject.replace(/^\w+(?:\(.+?\))?(!)?:\s*/, '');
162
+ }
163
+ /**
164
+ * Check if a commit is a breaking change (! suffix or BREAKING CHANGE in body).
165
+ */
166
+ function isBreaking(commit) {
167
+ if (commit.subject.match(/^\w+(?:\(.+?\))?!:/))
168
+ return true;
169
+ if (commit.body.includes('BREAKING CHANGE'))
170
+ return true;
171
+ return false;
172
+ }
173
+ /**
174
+ * Extract the scope from a conventional commit subject.
175
+ * "feat(auth): add OAuth" -> "auth"
176
+ */
177
+ function extractScope(subject) {
178
+ const match = subject.match(/^\w+\(([^)]+)\)/);
179
+ return match ? match[1] : null;
180
+ }
181
+ /**
182
+ * Categorize an array of commit subjects into labeled sections.
183
+ */
184
+ export function categorizeCommits(commits) {
185
+ const groups = {};
186
+ for (const subject of commits) {
187
+ const prefix = parsePrefix(subject);
188
+ const category = prefix && COMMIT_CATEGORIES[prefix]
189
+ ? COMMIT_CATEGORIES[prefix].label
190
+ : DEFAULT_CATEGORY.label;
191
+ if (!groups[category])
192
+ groups[category] = [];
193
+ groups[category].push(stripPrefix(subject));
194
+ }
195
+ return groups;
196
+ }
197
+ /**
198
+ * Format categorized commits into markdown release notes.
199
+ */
200
+ export function formatReleaseNotes(categorized) {
201
+ const lines = [];
202
+ // Sort categories by defined order
203
+ const sortedCategories = Object.entries(categorized).sort(([a], [b]) => {
204
+ const orderA = Object.values(COMMIT_CATEGORIES).find(c => c.label === a)?.order ?? 99;
205
+ const orderB = Object.values(COMMIT_CATEGORIES).find(c => c.label === b)?.order ?? 99;
206
+ return orderA - orderB;
207
+ });
208
+ for (const [category, items] of sortedCategories) {
209
+ if (items.length === 0)
210
+ continue;
211
+ const meta = Object.values(COMMIT_CATEGORIES).find(c => c.label === category);
212
+ const emoji = meta?.emoji || DEFAULT_CATEGORY.emoji;
213
+ lines.push(`### ${emoji} ${category}`);
214
+ lines.push('');
215
+ for (const item of items) {
216
+ lines.push(`- ${item}`);
217
+ }
218
+ lines.push('');
219
+ }
220
+ return lines.join('\n');
221
+ }
222
+ /**
223
+ * Generate a full changelog between two tags/refs.
224
+ * If no refs provided, auto-detects from the latest and previous tags.
225
+ */
226
+ export function generateChangelog(fromTag, toTag) {
227
+ // Auto-detect refs if not provided
228
+ const to = toTag || 'HEAD';
229
+ const from = fromTag || getLastTag() || undefined;
230
+ const commits = getCommitsBetween(from, to === 'HEAD' ? undefined : to);
231
+ if (commits.length === 0) {
232
+ return '> No commits found for this range.\n';
233
+ }
234
+ // Separate breaking changes
235
+ const breaking = [];
236
+ const regular = [];
237
+ for (const commit of commits) {
238
+ if (isBreaking(commit)) {
239
+ breaking.push(commit);
240
+ }
241
+ regular.push(commit);
242
+ }
243
+ // Group regular commits by category
244
+ const groups = {};
245
+ for (const commit of regular) {
246
+ const prefix = parsePrefix(commit.subject);
247
+ const category = prefix && COMMIT_CATEGORIES[prefix]
248
+ ? COMMIT_CATEGORIES[prefix].label
249
+ : DEFAULT_CATEGORY.label;
250
+ if (!groups[category])
251
+ groups[category] = { items: [], hashes: [] };
252
+ const scope = extractScope(commit.subject);
253
+ const clean = stripPrefix(commit.subject);
254
+ const display = scope ? `**${scope}**: ${clean}` : clean;
255
+ groups[category].items.push(display);
256
+ groups[category].hashes.push(commit.hash);
257
+ }
258
+ // Build markdown
259
+ const lines = [];
260
+ // Breaking changes section
261
+ if (breaking.length > 0) {
262
+ lines.push('### \u26A0\uFE0F Breaking Changes');
263
+ lines.push('');
264
+ for (const commit of breaking) {
265
+ const clean = stripPrefix(commit.subject);
266
+ lines.push(`- **${clean}** (\`${commit.hash}\`)`);
267
+ if (commit.body) {
268
+ const breakingNote = commit.body
269
+ .split('\n')
270
+ .find(l => l.startsWith('BREAKING CHANGE:'));
271
+ if (breakingNote) {
272
+ lines.push(` ${breakingNote.replace('BREAKING CHANGE:', '').trim()}`);
273
+ }
274
+ }
275
+ }
276
+ lines.push('');
277
+ }
278
+ // Categorized commits
279
+ const sortedCategories = Object.entries(groups).sort(([a], [b]) => {
280
+ const orderA = Object.values(COMMIT_CATEGORIES).find(c => c.label === a)?.order ?? 99;
281
+ const orderB = Object.values(COMMIT_CATEGORIES).find(c => c.label === b)?.order ?? 99;
282
+ return orderA - orderB;
283
+ });
284
+ for (const [category, { items, hashes }] of sortedCategories) {
285
+ if (items.length === 0)
286
+ continue;
287
+ const meta = Object.values(COMMIT_CATEGORIES).find(c => c.label === category);
288
+ const emoji = meta?.emoji || DEFAULT_CATEGORY.emoji;
289
+ lines.push(`### ${emoji} ${category}`);
290
+ lines.push('');
291
+ for (let i = 0; i < items.length; i++) {
292
+ lines.push(`- ${items[i]} (\`${hashes[i]}\`)`);
293
+ }
294
+ lines.push('');
295
+ }
296
+ // Stats footer
297
+ const from_label = from || 'beginning';
298
+ const to_label = to === 'HEAD' ? 'HEAD' : to;
299
+ lines.push('---');
300
+ lines.push(`**${commits.length}** commits from \`${from_label}\` to \`${to_label}\``);
301
+ lines.push('');
302
+ return lines.join('\n');
303
+ }
304
+ /**
305
+ * Detect the current version tag and release name.
306
+ * Looks at package.json and recent git tags.
307
+ */
308
+ function detectReleaseInfo() {
309
+ const version = getVersionFromPackageJson();
310
+ const tag = `v${version}`;
311
+ // Try to extract a feature name from recent commits
312
+ const commits = getCommitsBetween(getLastTag() || undefined);
313
+ const feats = commits.filter(c => parsePrefix(c.subject) === 'feat');
314
+ const featureHint = feats.length > 0
315
+ ? stripPrefix(feats[0].subject).split(' ').slice(0, 4).join(' ')
316
+ : null;
317
+ const name = featureHint
318
+ ? `${tag} \u2014 ${featureHint.charAt(0).toUpperCase() + featureHint.slice(1)}`
319
+ : tag;
320
+ const isPrerelease = version.includes('-alpha') ||
321
+ version.includes('-beta') ||
322
+ version.includes('-rc') ||
323
+ version.includes('-canary');
324
+ return {
325
+ tag,
326
+ name,
327
+ prerelease: isPrerelease,
328
+ draft: false,
329
+ };
330
+ }
331
+ /**
332
+ * Create a GitHub release via the REST API.
333
+ *
334
+ * Generates a changelog, creates a git tag (if it doesn't exist),
335
+ * and publishes a release on GitHub.
336
+ */
337
+ export async function createGitHubRelease(config, info) {
338
+ // Resolve token
339
+ const token = resolveToken(config.token);
340
+ if (!token) {
341
+ throw new Error('GitHub token not found. Set GITHUB_TOKEN env var, authenticate with `gh auth login`, or pass token in config.');
342
+ }
343
+ // Build release info from defaults + overrides
344
+ const detected = detectReleaseInfo();
345
+ const tag = info?.tag || detected.tag || `v${getVersionFromPackageJson()}`;
346
+ const previousTag = getPreviousTag(tag) || getLastTag() || undefined;
347
+ const body = info?.body || generateChangelog(previousTag, tag === `v${getVersionFromPackageJson()}` ? undefined : tag);
348
+ const name = info?.name || detected.name || tag;
349
+ const draft = info?.draft ?? detected.draft ?? false;
350
+ const prerelease = info?.prerelease ?? detected.prerelease ?? false;
351
+ // Create the tag locally if it doesn't exist
352
+ const existingTags = getAllTags();
353
+ if (!existingTags.includes(tag)) {
354
+ const tagResult = git(`tag -a ${tag} -m "Release ${tag}"`);
355
+ if (tagResult === '' && !getAllTags().includes(tag)) {
356
+ // tag command returns empty on success too, verify
357
+ const verify = git(`tag -l ${tag}`);
358
+ if (!verify) {
359
+ throw new Error(`Failed to create git tag: ${tag}`);
360
+ }
361
+ }
362
+ // Push the tag
363
+ git(`push origin ${tag}`);
364
+ }
365
+ // Create release via GitHub API
366
+ const apiUrl = `https://api.github.com/repos/${config.owner}/${config.repo}/releases`;
367
+ const response = await fetch(apiUrl, {
368
+ method: 'POST',
369
+ headers: {
370
+ 'Accept': 'application/vnd.github+json',
371
+ 'Authorization': `Bearer ${token}`,
372
+ 'X-GitHub-Api-Version': '2022-11-28',
373
+ 'Content-Type': 'application/json',
374
+ },
375
+ body: JSON.stringify({
376
+ tag_name: tag,
377
+ target_commitish: 'main',
378
+ name,
379
+ body,
380
+ draft,
381
+ prerelease,
382
+ generate_release_notes: false,
383
+ }),
384
+ });
385
+ if (!response.ok) {
386
+ const errorBody = await response.text();
387
+ throw new Error(`GitHub API error ${response.status}: ${response.statusText}\n${errorBody}`);
388
+ }
389
+ const release = await response.json();
390
+ return {
391
+ url: release.html_url,
392
+ id: release.id,
393
+ tag: release.tag_name,
394
+ draft: release.draft,
395
+ };
396
+ }
397
+ /**
398
+ * CLI handler for `kbot release`.
399
+ * Called from cli.ts command registration.
400
+ */
401
+ export async function runRelease(opts) {
402
+ const { printSuccess, printError, printInfo, printWarn } = await import('./ui.js');
403
+ // Detect repo info from git remote
404
+ const repoInfo = getRepoInfo();
405
+ if (!repoInfo) {
406
+ printError('Could not detect GitHub repo from git remote. Are you in a git repository?');
407
+ process.exit(1);
408
+ }
409
+ const version = getVersionFromPackageJson();
410
+ const tag = opts.tag || `v${version}`;
411
+ printInfo(`Preparing release: ${tag}`);
412
+ printInfo(`Repository: ${repoInfo.owner}/${repoInfo.repo}`);
413
+ // Generate changelog for preview
414
+ const previousTag = getLastTag();
415
+ const changelog = generateChangelog(previousTag || undefined);
416
+ if (opts.dryRun) {
417
+ printInfo('\n--- DRY RUN (no release created) ---\n');
418
+ printInfo(`Tag: ${tag}`);
419
+ printInfo(`Draft: ${opts.draft ? 'yes' : 'no'}`);
420
+ printInfo(`Previous tag: ${previousTag || '(none)'}`);
421
+ printInfo('\nRelease notes:\n');
422
+ process.stdout.write(changelog);
423
+ return;
424
+ }
425
+ // Check for token before attempting
426
+ const token = resolveToken();
427
+ if (!token) {
428
+ printError('No GitHub token found.');
429
+ printWarn('Set GITHUB_TOKEN environment variable or run `gh auth login`');
430
+ process.exit(1);
431
+ }
432
+ try {
433
+ const result = await createGitHubRelease({ owner: repoInfo.owner, repo: repoInfo.repo, token }, {
434
+ tag,
435
+ draft: opts.draft,
436
+ body: changelog,
437
+ });
438
+ if (opts.json) {
439
+ process.stdout.write(JSON.stringify(result, null, 2) + '\n');
440
+ return;
441
+ }
442
+ printSuccess(`Release created: ${result.tag}${result.draft ? ' (draft)' : ''}`);
443
+ printInfo(`URL: ${result.url}`);
444
+ printInfo(`ID: ${result.id}`);
445
+ }
446
+ catch (err) {
447
+ printError(err instanceof Error ? err.message : String(err));
448
+ process.exit(1);
449
+ }
450
+ }
451
+ //# sourceMappingURL=github-release.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-release.js","sourceRoot":"","sources":["../src/github-release.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=graph-memory.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-memory.test.d.ts","sourceRoot":"","sources":["../src/graph-memory.test.ts"],"names":[],"mappings":""}