@roackb2/heddle 0.0.4 → 0.0.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/README.md +36 -5
- package/dist/src/__tests__/chat-compaction.test.js +39 -0
- package/dist/src/__tests__/chat-compaction.test.js.map +1 -1
- package/dist/src/__tests__/chat-format.test.js +14 -1
- package/dist/src/__tests__/chat-format.test.js.map +1 -1
- package/dist/src/__tests__/local-commands.test.js +65 -101
- package/dist/src/__tests__/local-commands.test.js.map +1 -1
- package/dist/src/__tests__/prompt-input.test.js +47 -0
- package/dist/src/__tests__/prompt-input.test.js.map +1 -1
- package/dist/src/__tests__/prompts.test.js +3 -0
- package/dist/src/__tests__/prompts.test.js.map +1 -1
- package/dist/src/__tests__/tools.test.js +78 -0
- package/dist/src/__tests__/tools.test.js.map +1 -1
- package/dist/src/cli/ask.d.ts.map +1 -1
- package/dist/src/cli/ask.js +5 -1
- package/dist/src/cli/ask.js.map +1 -1
- package/dist/src/cli/chat/App.d.ts.map +1 -1
- package/dist/src/cli/chat/App.js +5 -5
- package/dist/src/cli/chat/App.js.map +1 -1
- package/dist/src/cli/chat/components/PromptInput.d.ts +7 -0
- package/dist/src/cli/chat/components/PromptInput.d.ts.map +1 -1
- package/dist/src/cli/chat/components/PromptInput.js +48 -11
- package/dist/src/cli/chat/components/PromptInput.js.map +1 -1
- package/dist/src/cli/chat/components/SlashHintPanel.js +2 -30
- package/dist/src/cli/chat/components/SlashHintPanel.js.map +1 -1
- package/dist/src/cli/chat/hooks/useAgentRun.d.ts.map +1 -1
- package/dist/src/cli/chat/hooks/useAgentRun.js +28 -8
- package/dist/src/cli/chat/hooks/useAgentRun.js.map +1 -1
- package/dist/src/cli/chat/state/compaction.d.ts +4 -0
- package/dist/src/cli/chat/state/compaction.d.ts.map +1 -1
- package/dist/src/cli/chat/state/compaction.js +21 -5
- package/dist/src/cli/chat/state/compaction.js.map +1 -1
- package/dist/src/cli/chat/state/local-commands.d.ts +6 -0
- package/dist/src/cli/chat/state/local-commands.d.ts.map +1 -1
- package/dist/src/cli/chat/state/local-commands.js +38 -45
- package/dist/src/cli/chat/state/local-commands.js.map +1 -1
- package/dist/src/cli/chat/state/storage.js +1 -0
- package/dist/src/cli/chat/state/storage.js.map +1 -1
- package/dist/src/cli/chat/state/types.d.ts +1 -0
- package/dist/src/cli/chat/state/types.d.ts.map +1 -1
- package/dist/src/cli/chat/submit.d.ts.map +1 -1
- package/dist/src/cli/chat/submit.js +27 -1
- package/dist/src/cli/chat/submit.js.map +1 -1
- package/dist/src/cli/chat/utils/format.d.ts +5 -0
- package/dist/src/cli/chat/utils/format.d.ts.map +1 -1
- package/dist/src/cli/chat/utils/format.js +23 -0
- package/dist/src/cli/chat/utils/format.js.map +1 -1
- package/dist/src/cli/chat/utils/runtime.d.ts +1 -0
- package/dist/src/cli/chat/utils/runtime.d.ts.map +1 -1
- package/dist/src/cli/chat/utils/runtime.js +1 -0
- package/dist/src/cli/chat/utils/runtime.js.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/prompts/system-prompt.d.ts.map +1 -1
- package/dist/src/prompts/system-prompt.js +10 -0
- package/dist/src/prompts/system-prompt.js.map +1 -1
- package/dist/src/tools/edit-file.d.ts +3 -7
- package/dist/src/tools/edit-file.d.ts.map +1 -1
- package/dist/src/tools/edit-file.js +16 -222
- package/dist/src/tools/edit-file.js.map +1 -1
- package/dist/src/tools/file-edit-core.d.ts +31 -0
- package/dist/src/tools/file-edit-core.d.ts.map +1 -0
- package/dist/src/tools/file-edit-core.js +231 -0
- package/dist/src/tools/file-edit-core.js.map +1 -0
- package/dist/src/tools/memory-notes.d.ts +13 -0
- package/dist/src/tools/memory-notes.d.ts.map +1 -0
- package/dist/src/tools/memory-notes.js +382 -0
- package/dist/src/tools/memory-notes.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { ToolResult } from '../types.js';
|
|
2
|
+
export type ReplaceEditInput = {
|
|
3
|
+
path: string;
|
|
4
|
+
oldText: string;
|
|
5
|
+
newText: string;
|
|
6
|
+
replaceAll?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export type WriteEditInput = {
|
|
9
|
+
path: string;
|
|
10
|
+
content: string;
|
|
11
|
+
createIfMissing?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export type ScopedEditInput = ReplaceEditInput | WriteEditInput;
|
|
14
|
+
export type EditPreview = {
|
|
15
|
+
path: string;
|
|
16
|
+
action: 'created' | 'overwritten' | 'replaced';
|
|
17
|
+
diff: string;
|
|
18
|
+
truncated: boolean;
|
|
19
|
+
};
|
|
20
|
+
type ScopedEditOptions = {
|
|
21
|
+
toolName: string;
|
|
22
|
+
rootPath: string;
|
|
23
|
+
rootLabel: string;
|
|
24
|
+
subjectLabel: string;
|
|
25
|
+
creationHint: string;
|
|
26
|
+
};
|
|
27
|
+
export declare function isScopedEditInput(raw: unknown): raw is ScopedEditInput;
|
|
28
|
+
export declare function executeScopedEdit(raw: unknown, options: ScopedEditOptions): Promise<ToolResult>;
|
|
29
|
+
export declare function previewScopedEdit(raw: unknown, options: Omit<ScopedEditOptions, 'creationHint'>): Promise<EditPreview | undefined>;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=file-edit-core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-edit-core.d.ts","sourceRoot":"","sources":["../../../src/tools/file-edit-core.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAKF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,eAAe,CA4BtE;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAuBrG;AAED,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,cAAc,CAAC,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAsCxI"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { access, mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { dirname, isAbsolute, relative, resolve } from 'node:path';
|
|
3
|
+
const DIFF_CONTEXT_LINES = 2;
|
|
4
|
+
const MAX_DIFF_PREVIEW_LINES = 80;
|
|
5
|
+
export function isScopedEditInput(raw) {
|
|
6
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw)) {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
const input = raw;
|
|
10
|
+
const keys = Object.keys(input);
|
|
11
|
+
const allowedKeys = new Set(['path', 'oldText', 'newText', 'replaceAll', 'content', 'createIfMissing']);
|
|
12
|
+
if (keys.some((key) => !allowedKeys.has(key))) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
if (typeof input.path !== 'string' || !input.path.trim()) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
const hasReplaceShape = typeof input.oldText === 'string' && typeof input.newText === 'string';
|
|
19
|
+
const hasWriteShape = typeof input.content === 'string';
|
|
20
|
+
if (hasReplaceShape === hasWriteShape) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
if (hasReplaceShape) {
|
|
24
|
+
return input.replaceAll === undefined || typeof input.replaceAll === 'boolean';
|
|
25
|
+
}
|
|
26
|
+
return input.createIfMissing === undefined || typeof input.createIfMissing === 'boolean';
|
|
27
|
+
}
|
|
28
|
+
export async function executeScopedEdit(raw, options) {
|
|
29
|
+
if (!isScopedEditInput(raw)) {
|
|
30
|
+
return {
|
|
31
|
+
ok: false,
|
|
32
|
+
error: `Invalid input for ${options.toolName}. Use either { "path", "oldText", "newText", "replaceAll?" } or { "path", "content", "createIfMissing?" }.`,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
const targetPath = resolve(options.rootPath, raw.path);
|
|
36
|
+
if (!isInsideRoot(options.rootPath, targetPath)) {
|
|
37
|
+
return {
|
|
38
|
+
ok: false,
|
|
39
|
+
error: `${options.toolName} only writes inside the ${options.rootLabel} (${options.rootPath}). Refusing to modify ${targetPath}.`,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
if ('content' in raw) {
|
|
43
|
+
return writeScopedContent(raw, targetPath, options);
|
|
44
|
+
}
|
|
45
|
+
return replaceScopedContent(raw, targetPath, options);
|
|
46
|
+
}
|
|
47
|
+
export async function previewScopedEdit(raw, options) {
|
|
48
|
+
if (!isScopedEditInput(raw)) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
const targetPath = resolve(options.rootPath, raw.path);
|
|
52
|
+
if (!isInsideRoot(options.rootPath, targetPath)) {
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
const scopedPath = toScopedPath(options.rootPath, targetPath);
|
|
56
|
+
if ('content' in raw) {
|
|
57
|
+
const existed = await pathExists(targetPath);
|
|
58
|
+
if (!existed && !raw.createIfMissing) {
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
const previousContent = existed ? await readFile(targetPath, 'utf8') : '';
|
|
62
|
+
return buildDiffPreview(previousContent, raw.content, scopedPath, existed ? 'overwritten' : 'created');
|
|
63
|
+
}
|
|
64
|
+
let current;
|
|
65
|
+
try {
|
|
66
|
+
current = await readFile(targetPath, 'utf8');
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
const matchCount = countOccurrences(current, raw.oldText);
|
|
72
|
+
if (matchCount === 0 || (matchCount > 1 && !raw.replaceAll)) {
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
const nextContent = raw.replaceAll ? current.split(raw.oldText).join(raw.newText) : replaceFirst(current, raw.oldText, raw.newText);
|
|
76
|
+
return buildDiffPreview(current, nextContent, scopedPath, 'replaced');
|
|
77
|
+
}
|
|
78
|
+
async function writeScopedContent(input, targetPath, options) {
|
|
79
|
+
const existed = await pathExists(targetPath);
|
|
80
|
+
const previousContent = existed ? await readFile(targetPath, 'utf8') : '';
|
|
81
|
+
if (!existed && !input.createIfMissing) {
|
|
82
|
+
return {
|
|
83
|
+
ok: false,
|
|
84
|
+
error: `${options.subjectLabel} does not exist: ${targetPath}. ${options.creationHint}`,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
await mkdir(dirname(targetPath), { recursive: true });
|
|
88
|
+
await writeFile(targetPath, input.content, 'utf8');
|
|
89
|
+
return {
|
|
90
|
+
ok: true,
|
|
91
|
+
output: {
|
|
92
|
+
path: toScopedPath(options.rootPath, targetPath),
|
|
93
|
+
action: existed ? 'overwritten' : 'created',
|
|
94
|
+
bytesWritten: Buffer.byteLength(input.content, 'utf8'),
|
|
95
|
+
diff: buildDiffPreview(previousContent, input.content, toScopedPath(options.rootPath, targetPath), existed ? 'overwritten' : 'created'),
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
async function replaceScopedContent(input, targetPath, options) {
|
|
100
|
+
let current;
|
|
101
|
+
try {
|
|
102
|
+
current = await readFile(targetPath, 'utf8');
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
return {
|
|
106
|
+
ok: false,
|
|
107
|
+
error: `Failed to read ${targetPath}: ${error instanceof Error ? error.message : String(error)}`,
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
const matchCount = countOccurrences(current, input.oldText);
|
|
111
|
+
if (matchCount === 0) {
|
|
112
|
+
return {
|
|
113
|
+
ok: false,
|
|
114
|
+
error: `${options.toolName} could not find the requested oldText in ${targetPath}. Read the ${options.subjectLabel} again and provide an exact match.`,
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
if (matchCount > 1 && !input.replaceAll) {
|
|
118
|
+
return {
|
|
119
|
+
ok: false,
|
|
120
|
+
error: `${options.toolName} found ${matchCount} matches for oldText in ${targetPath}. Refine oldText or set replaceAll to true.`,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
const nextContent = input.replaceAll ? current.split(input.oldText).join(input.newText) : replaceFirst(current, input.oldText, input.newText);
|
|
124
|
+
await writeFile(targetPath, nextContent, 'utf8');
|
|
125
|
+
return {
|
|
126
|
+
ok: true,
|
|
127
|
+
output: {
|
|
128
|
+
path: toScopedPath(options.rootPath, targetPath),
|
|
129
|
+
action: 'replaced',
|
|
130
|
+
matchCount,
|
|
131
|
+
bytesWritten: Buffer.byteLength(nextContent, 'utf8'),
|
|
132
|
+
diff: buildDiffPreview(current, nextContent, toScopedPath(options.rootPath, targetPath), 'replaced'),
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function isInsideRoot(rootPath, targetPath) {
|
|
137
|
+
const rel = relative(rootPath, targetPath);
|
|
138
|
+
return rel === '' || (!rel.startsWith('..') && !isAbsolute(rel));
|
|
139
|
+
}
|
|
140
|
+
function countOccurrences(content, search) {
|
|
141
|
+
if (!search) {
|
|
142
|
+
return 0;
|
|
143
|
+
}
|
|
144
|
+
let count = 0;
|
|
145
|
+
let index = 0;
|
|
146
|
+
while (true) {
|
|
147
|
+
const nextIndex = content.indexOf(search, index);
|
|
148
|
+
if (nextIndex === -1) {
|
|
149
|
+
return count;
|
|
150
|
+
}
|
|
151
|
+
count++;
|
|
152
|
+
index = nextIndex + search.length;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
function replaceFirst(content, search, replacement) {
|
|
156
|
+
const index = content.indexOf(search);
|
|
157
|
+
if (index === -1) {
|
|
158
|
+
return content;
|
|
159
|
+
}
|
|
160
|
+
return `${content.slice(0, index)}${replacement}${content.slice(index + search.length)}`;
|
|
161
|
+
}
|
|
162
|
+
function toScopedPath(rootPath, targetPath) {
|
|
163
|
+
const rel = relative(rootPath, targetPath);
|
|
164
|
+
return rel || '.';
|
|
165
|
+
}
|
|
166
|
+
async function pathExists(path) {
|
|
167
|
+
try {
|
|
168
|
+
await access(path);
|
|
169
|
+
return true;
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
return false;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function buildDiffPreview(previousContent, nextContent, path, action) {
|
|
176
|
+
const previousLines = splitLines(previousContent);
|
|
177
|
+
const nextLines = splitLines(nextContent);
|
|
178
|
+
const prefix = countCommonPrefix(previousLines, nextLines);
|
|
179
|
+
const suffix = countCommonSuffix(previousLines, nextLines, prefix);
|
|
180
|
+
const previousChangedEnd = previousLines.length - suffix;
|
|
181
|
+
const nextChangedEnd = nextLines.length - suffix;
|
|
182
|
+
const contextStart = Math.max(0, prefix - DIFF_CONTEXT_LINES);
|
|
183
|
+
const previousContextEnd = Math.min(previousLines.length, previousChangedEnd + DIFF_CONTEXT_LINES);
|
|
184
|
+
const nextContextEnd = Math.min(nextLines.length, nextChangedEnd + DIFF_CONTEXT_LINES);
|
|
185
|
+
const lines = [
|
|
186
|
+
`--- ${action === 'created' ? '/dev/null' : `a/${path}`}`,
|
|
187
|
+
`+++ b/${path}`,
|
|
188
|
+
`@@ -${formatHunkRange(contextStart + 1, previousContextEnd - contextStart)} +${formatHunkRange(contextStart + 1, nextContextEnd - contextStart)} @@`,
|
|
189
|
+
...previousLines.slice(contextStart, prefix).map((line) => ` ${line}`),
|
|
190
|
+
...previousLines.slice(prefix, previousChangedEnd).map((line) => `-${line}`),
|
|
191
|
+
...nextLines.slice(prefix, nextChangedEnd).map((line) => `+${line}`),
|
|
192
|
+
...nextLines.slice(nextChangedEnd, nextContextEnd).map((line) => ` ${line}`),
|
|
193
|
+
];
|
|
194
|
+
if (lines.length <= MAX_DIFF_PREVIEW_LINES) {
|
|
195
|
+
return { path, action, diff: lines.join('\n'), truncated: false };
|
|
196
|
+
}
|
|
197
|
+
const truncatedLines = [
|
|
198
|
+
...lines.slice(0, MAX_DIFF_PREVIEW_LINES - 1),
|
|
199
|
+
'... diff preview truncated ...',
|
|
200
|
+
];
|
|
201
|
+
return { path, action, diff: truncatedLines.join('\n'), truncated: true };
|
|
202
|
+
}
|
|
203
|
+
function splitLines(content) {
|
|
204
|
+
if (!content) {
|
|
205
|
+
return [];
|
|
206
|
+
}
|
|
207
|
+
return content.replace(/\r\n/g, '\n').split('\n').slice(0, content.endsWith('\n') ? -1 : undefined);
|
|
208
|
+
}
|
|
209
|
+
function countCommonPrefix(previousLines, nextLines) {
|
|
210
|
+
let index = 0;
|
|
211
|
+
while (index < previousLines.length && index < nextLines.length && previousLines[index] === nextLines[index]) {
|
|
212
|
+
index++;
|
|
213
|
+
}
|
|
214
|
+
return index;
|
|
215
|
+
}
|
|
216
|
+
function countCommonSuffix(previousLines, nextLines, prefix) {
|
|
217
|
+
let count = 0;
|
|
218
|
+
while (previousLines.length - count - 1 >= prefix &&
|
|
219
|
+
nextLines.length - count - 1 >= prefix &&
|
|
220
|
+
previousLines[previousLines.length - count - 1] === nextLines[nextLines.length - count - 1]) {
|
|
221
|
+
count++;
|
|
222
|
+
}
|
|
223
|
+
return count;
|
|
224
|
+
}
|
|
225
|
+
function formatHunkRange(startLine, length) {
|
|
226
|
+
if (length === 0) {
|
|
227
|
+
return `${startLine},0`;
|
|
228
|
+
}
|
|
229
|
+
return length <= 1 ? `${startLine}` : `${startLine},${length}`;
|
|
230
|
+
}
|
|
231
|
+
//# sourceMappingURL=file-edit-core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-edit-core.js","sourceRoot":"","sources":["../../../src/tools/file-edit-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ToolDefinition } from '../types.js';
|
|
2
|
+
export type MemoryNotesToolOptions = {
|
|
3
|
+
memoryRoot?: string;
|
|
4
|
+
};
|
|
5
|
+
export declare function createListMemoryNotesTool(options?: MemoryNotesToolOptions): ToolDefinition;
|
|
6
|
+
export declare function createReadMemoryNoteTool(options?: MemoryNotesToolOptions): ToolDefinition;
|
|
7
|
+
export declare function createSearchMemoryNotesTool(options?: MemoryNotesToolOptions): ToolDefinition;
|
|
8
|
+
export declare function createEditMemoryNoteTool(options?: MemoryNotesToolOptions): ToolDefinition;
|
|
9
|
+
export declare const listMemoryNotesTool: ToolDefinition;
|
|
10
|
+
export declare const readMemoryNoteTool: ToolDefinition;
|
|
11
|
+
export declare const searchMemoryNotesTool: ToolDefinition;
|
|
12
|
+
export declare const editMemoryNoteTool: ToolDefinition;
|
|
13
|
+
//# sourceMappingURL=memory-notes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-notes.d.ts","sourceRoot":"","sources":["../../../src/tools/memory-notes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAC;AAG9D,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAqBF,wBAAgB,yBAAyB,CAAC,OAAO,GAAE,sBAA2B,GAAG,cAAc,CAqD9F;AAED,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,sBAA2B,GAAG,cAAc,CAwD7F;AAED,wBAAgB,2BAA2B,CAAC,OAAO,GAAE,sBAA2B,GAAG,cAAc,CA4ChG;AAED,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,sBAA2B,GAAG,cAAc,CA8C7F;AAED,eAAO,MAAM,mBAAmB,gBAA8B,CAAC;AAC/D,eAAO,MAAM,kBAAkB,gBAA6B,CAAC;AAC7D,eAAO,MAAM,qBAAqB,gBAAgC,CAAC;AACnE,eAAO,MAAM,kBAAkB,gBAA6B,CAAC"}
|