@cdoing/core 0.1.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.
- package/dist/agents/coordinator.d.ts +114 -0
- package/dist/agents/coordinator.d.ts.map +1 -0
- package/dist/agents/coordinator.js +158 -0
- package/dist/agents/coordinator.js.map +1 -0
- package/dist/context-providers/clipboard.d.ts +13 -0
- package/dist/context-providers/clipboard.d.ts.map +1 -0
- package/dist/context-providers/clipboard.js +53 -0
- package/dist/context-providers/clipboard.js.map +1 -0
- package/dist/context-providers/codebase.d.ts +46 -0
- package/dist/context-providers/codebase.d.ts.map +1 -0
- package/dist/context-providers/codebase.js +273 -0
- package/dist/context-providers/codebase.js.map +1 -0
- package/dist/context-providers/diff.d.ts +18 -0
- package/dist/context-providers/diff.d.ts.map +1 -0
- package/dist/context-providers/diff.js +63 -0
- package/dist/context-providers/diff.js.map +1 -0
- package/dist/context-providers/docs.d.ts +21 -0
- package/dist/context-providers/docs.d.ts.map +1 -0
- package/dist/context-providers/docs.js +180 -0
- package/dist/context-providers/docs.js.map +1 -0
- package/dist/context-providers/file-include.d.ts +13 -0
- package/dist/context-providers/file-include.d.ts.map +1 -0
- package/dist/context-providers/file-include.js +82 -0
- package/dist/context-providers/file-include.js.map +1 -0
- package/dist/context-providers/folder.d.ts +19 -0
- package/dist/context-providers/folder.d.ts.map +1 -0
- package/dist/context-providers/folder.js +130 -0
- package/dist/context-providers/folder.js.map +1 -0
- package/dist/context-providers/git.d.ts +19 -0
- package/dist/context-providers/git.d.ts.map +1 -0
- package/dist/context-providers/git.js +74 -0
- package/dist/context-providers/git.js.map +1 -0
- package/dist/context-providers/index.d.ts +26 -0
- package/dist/context-providers/index.d.ts.map +1 -0
- package/dist/context-providers/index.js +37 -0
- package/dist/context-providers/index.js.map +1 -0
- package/dist/context-providers/open-files.d.ts +25 -0
- package/dist/context-providers/open-files.d.ts.map +1 -0
- package/dist/context-providers/open-files.js +134 -0
- package/dist/context-providers/open-files.js.map +1 -0
- package/dist/context-providers/problems.d.ts +24 -0
- package/dist/context-providers/problems.d.ts.map +1 -0
- package/dist/context-providers/problems.js +97 -0
- package/dist/context-providers/problems.js.map +1 -0
- package/dist/context-providers/registry.d.ts +61 -0
- package/dist/context-providers/registry.d.ts.map +1 -0
- package/dist/context-providers/registry.js +92 -0
- package/dist/context-providers/registry.js.map +1 -0
- package/dist/context-providers/terminal.d.ts +25 -0
- package/dist/context-providers/terminal.d.ts.map +1 -0
- package/dist/context-providers/terminal.js +55 -0
- package/dist/context-providers/terminal.js.map +1 -0
- package/dist/context-providers/tree.d.ts +29 -0
- package/dist/context-providers/tree.d.ts.map +1 -0
- package/dist/context-providers/tree.js +172 -0
- package/dist/context-providers/tree.js.map +1 -0
- package/dist/context-providers/types.d.ts +72 -0
- package/dist/context-providers/types.d.ts.map +1 -0
- package/dist/context-providers/types.js +10 -0
- package/dist/context-providers/types.js.map +1 -0
- package/dist/context-providers/url.d.ts +27 -0
- package/dist/context-providers/url.d.ts.map +1 -0
- package/dist/context-providers/url.js +131 -0
- package/dist/context-providers/url.js.map +1 -0
- package/dist/effort/index.d.ts +78 -0
- package/dist/effort/index.d.ts.map +1 -0
- package/dist/effort/index.js +146 -0
- package/dist/effort/index.js.map +1 -0
- package/dist/hooks/index.d.ts +47 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +151 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/index.d.ts +75 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +152 -0
- package/dist/index.js.map +1 -0
- package/dist/indexing/chunker.d.ts +25 -0
- package/dist/indexing/chunker.d.ts.map +1 -0
- package/dist/indexing/chunker.js +217 -0
- package/dist/indexing/chunker.js.map +1 -0
- package/dist/indexing/database.d.ts +49 -0
- package/dist/indexing/database.d.ts.map +1 -0
- package/dist/indexing/database.js +287 -0
- package/dist/indexing/database.js.map +1 -0
- package/dist/indexing/index.d.ts +9 -0
- package/dist/indexing/index.d.ts.map +1 -0
- package/dist/indexing/index.js +13 -0
- package/dist/indexing/index.js.map +1 -0
- package/dist/indexing/indexer.d.ts +63 -0
- package/dist/indexing/indexer.d.ts.map +1 -0
- package/dist/indexing/indexer.js +352 -0
- package/dist/indexing/indexer.js.map +1 -0
- package/dist/indexing/recent-edits-cache.d.ts +77 -0
- package/dist/indexing/recent-edits-cache.d.ts.map +1 -0
- package/dist/indexing/recent-edits-cache.js +123 -0
- package/dist/indexing/recent-edits-cache.js.map +1 -0
- package/dist/indexing/types.d.ts +39 -0
- package/dist/indexing/types.d.ts.map +1 -0
- package/dist/indexing/types.js +6 -0
- package/dist/indexing/types.js.map +1 -0
- package/dist/mcp/index.d.ts +33 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +37 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/manager.d.ts +123 -0
- package/dist/mcp/manager.d.ts.map +1 -0
- package/dist/mcp/manager.js +331 -0
- package/dist/mcp/manager.js.map +1 -0
- package/dist/oauth.d.ts +33 -0
- package/dist/oauth.d.ts.map +1 -0
- package/dist/oauth.js +312 -0
- package/dist/oauth.js.map +1 -0
- package/dist/permissions/index.d.ts +216 -0
- package/dist/permissions/index.d.ts.map +1 -0
- package/dist/permissions/index.js +938 -0
- package/dist/permissions/index.js.map +1 -0
- package/dist/plan/index.d.ts +20 -0
- package/dist/plan/index.d.ts.map +1 -0
- package/dist/plan/index.js +24 -0
- package/dist/plan/index.js.map +1 -0
- package/dist/plan/manager.d.ts +101 -0
- package/dist/plan/manager.d.ts.map +1 -0
- package/dist/plan/manager.js +170 -0
- package/dist/plan/manager.js.map +1 -0
- package/dist/rules/index.d.ts +28 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +31 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/manager.d.ts +77 -0
- package/dist/rules/manager.d.ts.map +1 -0
- package/dist/rules/manager.js +279 -0
- package/dist/rules/manager.js.map +1 -0
- package/dist/rules/types.d.ts +34 -0
- package/dist/rules/types.d.ts.map +1 -0
- package/dist/rules/types.js +9 -0
- package/dist/rules/types.js.map +1 -0
- package/dist/sandbox/filesystem.d.ts +20 -0
- package/dist/sandbox/filesystem.d.ts.map +1 -0
- package/dist/sandbox/filesystem.js +141 -0
- package/dist/sandbox/filesystem.js.map +1 -0
- package/dist/sandbox/index.d.ts +4 -0
- package/dist/sandbox/index.d.ts.map +1 -0
- package/dist/sandbox/index.js +8 -0
- package/dist/sandbox/index.js.map +1 -0
- package/dist/sandbox/manager.d.ts +47 -0
- package/dist/sandbox/manager.d.ts.map +1 -0
- package/dist/sandbox/manager.js +220 -0
- package/dist/sandbox/manager.js.map +1 -0
- package/dist/sandbox/network.d.ts +14 -0
- package/dist/sandbox/network.d.ts.map +1 -0
- package/dist/sandbox/network.js +87 -0
- package/dist/sandbox/network.js.map +1 -0
- package/dist/sandbox/types.d.ts +42 -0
- package/dist/sandbox/types.d.ts.map +1 -0
- package/dist/sandbox/types.js +25 -0
- package/dist/sandbox/types.js.map +1 -0
- package/dist/tools/ast-edit.d.ts +57 -0
- package/dist/tools/ast-edit.d.ts.map +1 -0
- package/dist/tools/ast-edit.js +443 -0
- package/dist/tools/ast-edit.js.map +1 -0
- package/dist/tools/code-verify.d.ts +8 -0
- package/dist/tools/code-verify.d.ts.map +1 -0
- package/dist/tools/code-verify.js +159 -0
- package/dist/tools/code-verify.js.map +1 -0
- package/dist/tools/codebase-search.d.ts +17 -0
- package/dist/tools/codebase-search.d.ts.map +1 -0
- package/dist/tools/codebase-search.js +104 -0
- package/dist/tools/codebase-search.js.map +1 -0
- package/dist/tools/file-delete.d.ts +26 -0
- package/dist/tools/file-delete.d.ts.map +1 -0
- package/dist/tools/file-delete.js +179 -0
- package/dist/tools/file-delete.js.map +1 -0
- package/dist/tools/file-edit.d.ts +10 -0
- package/dist/tools/file-edit.d.ts.map +1 -0
- package/dist/tools/file-edit.js +138 -0
- package/dist/tools/file-edit.js.map +1 -0
- package/dist/tools/file-read.d.ts +12 -0
- package/dist/tools/file-read.d.ts.map +1 -0
- package/dist/tools/file-read.js +211 -0
- package/dist/tools/file-read.js.map +1 -0
- package/dist/tools/file-run.d.ts +10 -0
- package/dist/tools/file-run.d.ts.map +1 -0
- package/dist/tools/file-run.js +179 -0
- package/dist/tools/file-run.js.map +1 -0
- package/dist/tools/file-write.d.ts +10 -0
- package/dist/tools/file-write.d.ts.map +1 -0
- package/dist/tools/file-write.js +134 -0
- package/dist/tools/file-write.js.map +1 -0
- package/dist/tools/glob-search.d.ts +8 -0
- package/dist/tools/glob-search.d.ts.map +1 -0
- package/dist/tools/glob-search.js +108 -0
- package/dist/tools/glob-search.js.map +1 -0
- package/dist/tools/grep-search.d.ts +8 -0
- package/dist/tools/grep-search.d.ts.map +1 -0
- package/dist/tools/grep-search.js +139 -0
- package/dist/tools/grep-search.js.map +1 -0
- package/dist/tools/list-dir.d.ts +16 -0
- package/dist/tools/list-dir.d.ts.map +1 -0
- package/dist/tools/list-dir.js +183 -0
- package/dist/tools/list-dir.js.map +1 -0
- package/dist/tools/multi-edit.d.ts +16 -0
- package/dist/tools/multi-edit.d.ts.map +1 -0
- package/dist/tools/multi-edit.js +163 -0
- package/dist/tools/multi-edit.js.map +1 -0
- package/dist/tools/notebook-edit.d.ts +31 -0
- package/dist/tools/notebook-edit.d.ts.map +1 -0
- package/dist/tools/notebook-edit.js +321 -0
- package/dist/tools/notebook-edit.js.map +1 -0
- package/dist/tools/registry.d.ts +16 -0
- package/dist/tools/registry.d.ts.map +1 -0
- package/dist/tools/registry.js +41 -0
- package/dist/tools/registry.js.map +1 -0
- package/dist/tools/shell-exec.d.ts +12 -0
- package/dist/tools/shell-exec.d.ts.map +1 -0
- package/dist/tools/shell-exec.js +261 -0
- package/dist/tools/shell-exec.js.map +1 -0
- package/dist/tools/sub-agent-manager.d.ts +57 -0
- package/dist/tools/sub-agent-manager.d.ts.map +1 -0
- package/dist/tools/sub-agent-manager.js +153 -0
- package/dist/tools/sub-agent-manager.js.map +1 -0
- package/dist/tools/sub-agent-status.d.ts +12 -0
- package/dist/tools/sub-agent-status.d.ts.map +1 -0
- package/dist/tools/sub-agent-status.js +59 -0
- package/dist/tools/sub-agent-status.js.map +1 -0
- package/dist/tools/sub-agent-terminate.d.ts +12 -0
- package/dist/tools/sub-agent-terminate.d.ts.map +1 -0
- package/dist/tools/sub-agent-terminate.js +55 -0
- package/dist/tools/sub-agent-terminate.js.map +1 -0
- package/dist/tools/sub-agent.d.ts +34 -0
- package/dist/tools/sub-agent.d.ts.map +1 -0
- package/dist/tools/sub-agent.js +140 -0
- package/dist/tools/sub-agent.js.map +1 -0
- package/dist/tools/system-info.d.ts +24 -0
- package/dist/tools/system-info.d.ts.map +1 -0
- package/dist/tools/system-info.js +220 -0
- package/dist/tools/system-info.js.map +1 -0
- package/dist/tools/todo.d.ts +16 -0
- package/dist/tools/todo.d.ts.map +1 -0
- package/dist/tools/todo.js +144 -0
- package/dist/tools/todo.js.map +1 -0
- package/dist/tools/types.d.ts +20 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +3 -0
- package/dist/tools/types.js.map +1 -0
- package/dist/tools/view-diff.d.ts +11 -0
- package/dist/tools/view-diff.d.ts.map +1 -0
- package/dist/tools/view-diff.js +88 -0
- package/dist/tools/view-diff.js.map +1 -0
- package/dist/tools/view-repo-map.d.ts +18 -0
- package/dist/tools/view-repo-map.d.ts.map +1 -0
- package/dist/tools/view-repo-map.js +245 -0
- package/dist/tools/view-repo-map.js.map +1 -0
- package/dist/tools/web-fetch.d.ts +13 -0
- package/dist/tools/web-fetch.d.ts.map +1 -0
- package/dist/tools/web-fetch.js +106 -0
- package/dist/tools/web-fetch.js.map +1 -0
- package/dist/tools/web-search.d.ts +10 -0
- package/dist/tools/web-search.d.ts.map +1 -0
- package/dist/tools/web-search.js +106 -0
- package/dist/tools/web-search.js.map +1 -0
- package/dist/utils/gitignore.d.ts +10 -0
- package/dist/utils/gitignore.d.ts.map +1 -0
- package/dist/utils/gitignore.js +104 -0
- package/dist/utils/gitignore.js.map +1 -0
- package/dist/utils/lazy-apply.d.ts +45 -0
- package/dist/utils/lazy-apply.d.ts.map +1 -0
- package/dist/utils/lazy-apply.js +164 -0
- package/dist/utils/lazy-apply.js.map +1 -0
- package/dist/utils/memory.d.ts +36 -0
- package/dist/utils/memory.d.ts.map +1 -0
- package/dist/utils/memory.js +136 -0
- package/dist/utils/memory.js.map +1 -0
- package/dist/utils/path-matching.d.ts +24 -0
- package/dist/utils/path-matching.d.ts.map +1 -0
- package/dist/utils/path-matching.js +116 -0
- package/dist/utils/path-matching.js.map +1 -0
- package/dist/utils/path-safety.d.ts +13 -0
- package/dist/utils/path-safety.d.ts.map +1 -0
- package/dist/utils/path-safety.js +54 -0
- package/dist/utils/path-safety.js.map +1 -0
- package/dist/utils/project-config.d.ts +18 -0
- package/dist/utils/project-config.d.ts.map +1 -0
- package/dist/utils/project-config.js +76 -0
- package/dist/utils/project-config.js.map +1 -0
- package/dist/utils/search-match.d.ts +63 -0
- package/dist/utils/search-match.d.ts.map +1 -0
- package/dist/utils/search-match.js +426 -0
- package/dist/utils/search-match.js.map +1 -0
- package/dist/utils/shell-paths.d.ts +17 -0
- package/dist/utils/shell-paths.d.ts.map +1 -0
- package/dist/utils/shell-paths.js +107 -0
- package/dist/utils/shell-paths.js.map +1 -0
- package/dist/utils/streaming-diff.d.ts +45 -0
- package/dist/utils/streaming-diff.d.ts.map +1 -0
- package/dist/utils/streaming-diff.js +230 -0
- package/dist/utils/streaming-diff.js.map +1 -0
- package/dist/utils/todo.d.ts +47 -0
- package/dist/utils/todo.d.ts.map +1 -0
- package/dist/utils/todo.js +102 -0
- package/dist/utils/todo.js.map +1 -0
- package/package.json +23 -0
- package/src/agents/coordinator.ts +240 -0
- package/src/context-providers/clipboard.ts +48 -0
- package/src/context-providers/codebase.ts +274 -0
- package/src/context-providers/diff.ts +66 -0
- package/src/context-providers/docs.ts +160 -0
- package/src/context-providers/file-include.ts +54 -0
- package/src/context-providers/folder.ts +106 -0
- package/src/context-providers/git.ts +72 -0
- package/src/context-providers/index.ts +26 -0
- package/src/context-providers/open-files.ts +113 -0
- package/src/context-providers/problems.ts +100 -0
- package/src/context-providers/registry.ts +99 -0
- package/src/context-providers/terminal.ts +58 -0
- package/src/context-providers/tree.ts +161 -0
- package/src/context-providers/types.ts +84 -0
- package/src/context-providers/url.ts +138 -0
- package/src/effort/index.ts +177 -0
- package/src/hooks/index.ts +148 -0
- package/src/index.ts +114 -0
- package/src/indexing/README.md +267 -0
- package/src/indexing/chunker.ts +206 -0
- package/src/indexing/database.ts +299 -0
- package/src/indexing/index.ts +15 -0
- package/src/indexing/indexer.ts +383 -0
- package/src/indexing/recent-edits-cache.ts +150 -0
- package/src/indexing/types.ts +44 -0
- package/src/mcp/index.ts +33 -0
- package/src/mcp/manager.ts +385 -0
- package/src/oauth.ts +330 -0
- package/src/permissions/index.ts +1011 -0
- package/src/plan/index.ts +20 -0
- package/src/plan/manager.ts +233 -0
- package/src/rules/index.ts +28 -0
- package/src/rules/manager.ts +276 -0
- package/src/rules/types.ts +40 -0
- package/src/sandbox/filesystem.ts +135 -0
- package/src/sandbox/index.ts +9 -0
- package/src/sandbox/manager.ts +213 -0
- package/src/sandbox/network.ts +101 -0
- package/src/sandbox/types.ts +63 -0
- package/src/tools/ast-edit.ts +493 -0
- package/src/tools/code-verify.ts +143 -0
- package/src/tools/codebase-search.ts +117 -0
- package/src/tools/file-delete.ts +155 -0
- package/src/tools/file-edit.ts +115 -0
- package/src/tools/file-read.ts +195 -0
- package/src/tools/file-run.ts +158 -0
- package/src/tools/file-write.ts +104 -0
- package/src/tools/glob-search.ts +80 -0
- package/src/tools/grep-search.ts +120 -0
- package/src/tools/list-dir.ts +172 -0
- package/src/tools/multi-edit.ts +138 -0
- package/src/tools/notebook-edit.ts +342 -0
- package/src/tools/registry.ts +43 -0
- package/src/tools/shell-exec.ts +251 -0
- package/src/tools/sub-agent-manager.ts +183 -0
- package/src/tools/sub-agent-status.ts +67 -0
- package/src/tools/sub-agent-terminate.ts +62 -0
- package/src/tools/sub-agent.ts +162 -0
- package/src/tools/system-info.ts +248 -0
- package/src/tools/todo.ts +149 -0
- package/src/tools/types.ts +21 -0
- package/src/tools/view-diff.ts +99 -0
- package/src/tools/view-repo-map.ts +249 -0
- package/src/tools/web-fetch.ts +118 -0
- package/src/tools/web-search.ts +129 -0
- package/src/utils/gitignore.ts +73 -0
- package/src/utils/lazy-apply.ts +189 -0
- package/src/utils/memory.ts +124 -0
- package/src/utils/path-matching.ts +84 -0
- package/src/utils/path-safety.ts +19 -0
- package/src/utils/project-config.ts +41 -0
- package/src/utils/search-match.ts +495 -0
- package/src/utils/shell-paths.ts +79 -0
- package/src/utils/streaming-diff.ts +260 -0
- package/src/utils/todo.ts +115 -0
- package/tsconfig.json +18 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../src/tools/web-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gitignore-aware file filtering.
|
|
3
|
+
* Reads .gitignore and applies patterns to glob/grep searches.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Load ignore patterns from .gitignore + defaults.
|
|
7
|
+
* Converts .gitignore patterns to glob-compatible patterns.
|
|
8
|
+
*/
|
|
9
|
+
export declare function loadIgnorePatterns(workingDir: string): string[];
|
|
10
|
+
//# sourceMappingURL=gitignore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitignore.d.ts","sourceRoot":"","sources":["../../src/utils/gitignore.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsBH;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CA2C/D"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Gitignore-aware file filtering.
|
|
4
|
+
* Reads .gitignore and applies patterns to glob/grep searches.
|
|
5
|
+
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.loadIgnorePatterns = loadIgnorePatterns;
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
/** Default patterns to always ignore */
|
|
44
|
+
const DEFAULT_IGNORE = [
|
|
45
|
+
"**/node_modules/**",
|
|
46
|
+
"**/dist/**",
|
|
47
|
+
"**/.git/**",
|
|
48
|
+
"**/*.lock",
|
|
49
|
+
"**/build/**",
|
|
50
|
+
"**/.next/**",
|
|
51
|
+
"**/.nuxt/**",
|
|
52
|
+
"**/coverage/**",
|
|
53
|
+
"**/__pycache__/**",
|
|
54
|
+
"**/.venv/**",
|
|
55
|
+
"**/venv/**",
|
|
56
|
+
"**/.env",
|
|
57
|
+
"**/.DS_Store",
|
|
58
|
+
];
|
|
59
|
+
/**
|
|
60
|
+
* Load ignore patterns from .gitignore + defaults.
|
|
61
|
+
* Converts .gitignore patterns to glob-compatible patterns.
|
|
62
|
+
*/
|
|
63
|
+
function loadIgnorePatterns(workingDir) {
|
|
64
|
+
const patterns = [...DEFAULT_IGNORE];
|
|
65
|
+
const gitignorePath = path.join(workingDir, ".gitignore");
|
|
66
|
+
try {
|
|
67
|
+
if (fs.existsSync(gitignorePath)) {
|
|
68
|
+
const content = fs.readFileSync(gitignorePath, "utf-8");
|
|
69
|
+
const lines = content.split("\n");
|
|
70
|
+
for (let line of lines) {
|
|
71
|
+
line = line.trim();
|
|
72
|
+
// Skip empty lines and comments
|
|
73
|
+
if (!line || line.startsWith("#"))
|
|
74
|
+
continue;
|
|
75
|
+
// Skip negation patterns (complex to handle)
|
|
76
|
+
if (line.startsWith("!"))
|
|
77
|
+
continue;
|
|
78
|
+
// Convert to glob pattern
|
|
79
|
+
let pattern = line;
|
|
80
|
+
// If it ends with /, it's a directory — add **
|
|
81
|
+
if (pattern.endsWith("/")) {
|
|
82
|
+
pattern = `**/${pattern}**`;
|
|
83
|
+
}
|
|
84
|
+
// If it doesn't contain a slash, it can match anywhere
|
|
85
|
+
else if (!pattern.includes("/")) {
|
|
86
|
+
pattern = `**/${pattern}`;
|
|
87
|
+
}
|
|
88
|
+
// If it starts with /, it's relative to root
|
|
89
|
+
else if (pattern.startsWith("/")) {
|
|
90
|
+
pattern = pattern.substring(1);
|
|
91
|
+
}
|
|
92
|
+
// Avoid duplicates
|
|
93
|
+
if (!patterns.includes(pattern)) {
|
|
94
|
+
patterns.push(pattern);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
// Silently ignore read errors
|
|
101
|
+
}
|
|
102
|
+
return patterns;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=gitignore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitignore.js","sourceRoot":"","sources":["../../src/utils/gitignore.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BH,gDA2CC;AAnED,uCAAyB;AACzB,2CAA6B;AAE7B,wCAAwC;AACxC,MAAM,cAAc,GAAG;IACrB,oBAAoB;IACpB,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,aAAa;IACb,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,mBAAmB;IACnB,aAAa;IACb,YAAY;IACZ,SAAS;IACT,cAAc;CACf,CAAC;AAEF;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,MAAM,QAAQ,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC;IACrC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAE1D,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAElC,KAAK,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACnB,gCAAgC;gBAChC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC5C,6CAA6C;gBAC7C,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAEnC,0BAA0B;gBAC1B,IAAI,OAAO,GAAG,IAAI,CAAC;gBAEnB,+CAA+C;gBAC/C,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC1B,OAAO,GAAG,MAAM,OAAO,IAAI,CAAC;gBAC9B,CAAC;gBACD,uDAAuD;qBAClD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAChC,OAAO,GAAG,MAAM,OAAO,EAAE,CAAC;gBAC5B,CAAC;gBACD,6CAA6C;qBACxC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjC,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjC,CAAC;gBAED,mBAAmB;gBACnB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAChC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,8BAA8B;IAChC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lazy Apply — LLM-assisted placeholder expansion for file edits.
|
|
3
|
+
*
|
|
4
|
+
* When an LLM generates code with placeholder markers like:
|
|
5
|
+
* // ... existing code ...
|
|
6
|
+
* // ... rest of the function ...
|
|
7
|
+
* # ... remaining imports ...
|
|
8
|
+
*
|
|
9
|
+
* This module detects those placeholders and expands them by preserving
|
|
10
|
+
* the corresponding original code sections. This allows LLMs to make
|
|
11
|
+
* targeted edits without reproducing entire files.
|
|
12
|
+
*
|
|
13
|
+
* Three strategies:
|
|
14
|
+
* 1. Deterministic — match anchors (lines before/after placeholder) against
|
|
15
|
+
* original content and splice in the preserved region
|
|
16
|
+
* 2. Unified diff — if the new content is a diff, apply it directly
|
|
17
|
+
* 3. Streaming — process token-by-token as LLM generates, expanding in real-time
|
|
18
|
+
*/
|
|
19
|
+
export interface LazyApplyResult {
|
|
20
|
+
content: string;
|
|
21
|
+
placeholdersExpanded: number;
|
|
22
|
+
strategy: "deterministic" | "none";
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Check if a line is a placeholder marker.
|
|
26
|
+
*/
|
|
27
|
+
export declare function isPlaceholderLine(line: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Detect if content contains any placeholder markers.
|
|
30
|
+
*/
|
|
31
|
+
export declare function hasPlaceholders(content: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Expand placeholders in newContent by referencing originalContent.
|
|
34
|
+
*
|
|
35
|
+
* Algorithm:
|
|
36
|
+
* 1. Split both contents into lines
|
|
37
|
+
* 2. Walk through newContent lines
|
|
38
|
+
* 3. When a placeholder line is found:
|
|
39
|
+
* a. Use anchor lines (the non-placeholder lines before and after) to locate
|
|
40
|
+
* the corresponding region in the original file
|
|
41
|
+
* b. Splice in the original lines between the anchors
|
|
42
|
+
* 4. Return the expanded content
|
|
43
|
+
*/
|
|
44
|
+
export declare function expandPlaceholders(originalContent: string, newContent: string): LazyApplyResult;
|
|
45
|
+
//# sourceMappingURL=lazy-apply.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-apply.d.ts","sourceRoot":"","sources":["../../src/utils/lazy-apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAuBH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,eAAe,GAAG,MAAM,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,GACjB,eAAe,CA6CjB"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Lazy Apply — LLM-assisted placeholder expansion for file edits.
|
|
4
|
+
*
|
|
5
|
+
* When an LLM generates code with placeholder markers like:
|
|
6
|
+
* // ... existing code ...
|
|
7
|
+
* // ... rest of the function ...
|
|
8
|
+
* # ... remaining imports ...
|
|
9
|
+
*
|
|
10
|
+
* This module detects those placeholders and expands them by preserving
|
|
11
|
+
* the corresponding original code sections. This allows LLMs to make
|
|
12
|
+
* targeted edits without reproducing entire files.
|
|
13
|
+
*
|
|
14
|
+
* Three strategies:
|
|
15
|
+
* 1. Deterministic — match anchors (lines before/after placeholder) against
|
|
16
|
+
* original content and splice in the preserved region
|
|
17
|
+
* 2. Unified diff — if the new content is a diff, apply it directly
|
|
18
|
+
* 3. Streaming — process token-by-token as LLM generates, expanding in real-time
|
|
19
|
+
*/
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.isPlaceholderLine = isPlaceholderLine;
|
|
22
|
+
exports.hasPlaceholders = hasPlaceholders;
|
|
23
|
+
exports.expandPlaceholders = expandPlaceholders;
|
|
24
|
+
/**
|
|
25
|
+
* Common placeholder patterns used by LLMs to indicate "keep existing code here".
|
|
26
|
+
* Matches patterns like:
|
|
27
|
+
* // ... existing code ...
|
|
28
|
+
* // ... rest of the function ...
|
|
29
|
+
* # ... remaining imports ...
|
|
30
|
+
* /* ... keep existing ... * /
|
|
31
|
+
* // [existing code]
|
|
32
|
+
* // (rest remains the same)
|
|
33
|
+
*/
|
|
34
|
+
const PLACEHOLDER_PATTERNS = [
|
|
35
|
+
// Comment-style with ellipsis: // ... existing code ...
|
|
36
|
+
/^(\s*)(?:\/\/|#|--|\/\*|\*|<!--)\s*\.{2,}\s*(existing|remaining|rest|keep|same|unchanged|other|previous).*$/i,
|
|
37
|
+
// Comment-style with brackets: // [existing code]
|
|
38
|
+
/^(\s*)(?:\/\/|#|--|\/\*|\*|<!--)\s*\[(?:existing|remaining|rest|keep|same|unchanged|other|previous).*\].*$/i,
|
|
39
|
+
// Comment-style with parens: // (rest remains the same)
|
|
40
|
+
/^(\s*)(?:\/\/|#|--|\/\*|\*|<!--)\s*\((?:existing|remaining|rest|keep|same|unchanged|other|previous).*\).*$/i,
|
|
41
|
+
// Bare ellipsis comment: // ...
|
|
42
|
+
/^(\s*)(?:\/\/|#|--|\/\*|\*|<!--)\s*\.{3,}\s*(?:\*\/|-->)?\s*$/,
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* Check if a line is a placeholder marker.
|
|
46
|
+
*/
|
|
47
|
+
function isPlaceholderLine(line) {
|
|
48
|
+
return PLACEHOLDER_PATTERNS.some((p) => p.test(line));
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Detect if content contains any placeholder markers.
|
|
52
|
+
*/
|
|
53
|
+
function hasPlaceholders(content) {
|
|
54
|
+
return content.split("\n").some(isPlaceholderLine);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Expand placeholders in newContent by referencing originalContent.
|
|
58
|
+
*
|
|
59
|
+
* Algorithm:
|
|
60
|
+
* 1. Split both contents into lines
|
|
61
|
+
* 2. Walk through newContent lines
|
|
62
|
+
* 3. When a placeholder line is found:
|
|
63
|
+
* a. Use anchor lines (the non-placeholder lines before and after) to locate
|
|
64
|
+
* the corresponding region in the original file
|
|
65
|
+
* b. Splice in the original lines between the anchors
|
|
66
|
+
* 4. Return the expanded content
|
|
67
|
+
*/
|
|
68
|
+
function expandPlaceholders(originalContent, newContent) {
|
|
69
|
+
const newLines = newContent.split("\n");
|
|
70
|
+
if (!newLines.some(isPlaceholderLine)) {
|
|
71
|
+
return { content: newContent, placeholdersExpanded: 0, strategy: "none" };
|
|
72
|
+
}
|
|
73
|
+
const originalLines = originalContent.split("\n");
|
|
74
|
+
const result = [];
|
|
75
|
+
let placeholdersExpanded = 0;
|
|
76
|
+
let i = 0;
|
|
77
|
+
while (i < newLines.length) {
|
|
78
|
+
if (!isPlaceholderLine(newLines[i])) {
|
|
79
|
+
result.push(newLines[i]);
|
|
80
|
+
i++;
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
// Found a placeholder — find anchor lines before and after
|
|
84
|
+
const anchorBefore = findAnchorBefore(result);
|
|
85
|
+
const anchorAfter = findAnchorAfter(newLines, i);
|
|
86
|
+
// Locate the region in original content between these anchors
|
|
87
|
+
const region = findOriginalRegion(originalLines, anchorBefore, anchorAfter);
|
|
88
|
+
if (region) {
|
|
89
|
+
// Splice in the original lines
|
|
90
|
+
for (let r = region.start; r < region.end; r++) {
|
|
91
|
+
result.push(originalLines[r]);
|
|
92
|
+
}
|
|
93
|
+
placeholdersExpanded++;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
// Couldn't find region — keep placeholder as a comment so it's visible
|
|
97
|
+
result.push(newLines[i]);
|
|
98
|
+
}
|
|
99
|
+
i++;
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
content: result.join("\n"),
|
|
103
|
+
placeholdersExpanded,
|
|
104
|
+
strategy: placeholdersExpanded > 0 ? "deterministic" : "none",
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Find the last non-empty, non-placeholder line from the result so far.
|
|
109
|
+
*/
|
|
110
|
+
function findAnchorBefore(resultSoFar) {
|
|
111
|
+
for (let i = resultSoFar.length - 1; i >= 0; i--) {
|
|
112
|
+
const line = resultSoFar[i].trim();
|
|
113
|
+
if (line && !isPlaceholderLine(resultSoFar[i])) {
|
|
114
|
+
return resultSoFar[i];
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Find the next non-empty, non-placeholder line after position i.
|
|
121
|
+
*/
|
|
122
|
+
function findAnchorAfter(lines, fromIndex) {
|
|
123
|
+
for (let i = fromIndex + 1; i < lines.length; i++) {
|
|
124
|
+
const line = lines[i].trim();
|
|
125
|
+
if (line && !isPlaceholderLine(lines[i])) {
|
|
126
|
+
return lines[i];
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Find the region in originalLines between anchorBefore and anchorAfter.
|
|
133
|
+
* Returns the line range (exclusive end) of original lines to preserve.
|
|
134
|
+
*/
|
|
135
|
+
function findOriginalRegion(originalLines, anchorBefore, anchorAfter) {
|
|
136
|
+
let startIdx = 0;
|
|
137
|
+
let endIdx = originalLines.length;
|
|
138
|
+
// Find where anchorBefore occurs in original
|
|
139
|
+
if (anchorBefore !== null) {
|
|
140
|
+
const beforeTrimmed = anchorBefore.trim();
|
|
141
|
+
for (let i = 0; i < originalLines.length; i++) {
|
|
142
|
+
if (originalLines[i].trim() === beforeTrimmed) {
|
|
143
|
+
startIdx = i + 1; // Start after the anchor
|
|
144
|
+
break;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
// Find where anchorAfter occurs in original (searching from startIdx)
|
|
149
|
+
if (anchorAfter !== null) {
|
|
150
|
+
const afterTrimmed = anchorAfter.trim();
|
|
151
|
+
for (let i = startIdx; i < originalLines.length; i++) {
|
|
152
|
+
if (originalLines[i].trim() === afterTrimmed) {
|
|
153
|
+
endIdx = i; // End before the anchor
|
|
154
|
+
break;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// Validate we found a sensible region
|
|
159
|
+
if (startIdx >= endIdx) {
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
return { start: startIdx, end: endIdx };
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=lazy-apply.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-apply.js","sourceRoot":"","sources":["../../src/utils/lazy-apply.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Memory System — persistent memory across sessions.
|
|
3
|
+
*
|
|
4
|
+
* Stores key-value memories in ~/.cdoing/memory.json
|
|
5
|
+
* The agent can save, recall, and forget memories.
|
|
6
|
+
*/
|
|
7
|
+
export interface MemoryEntry {
|
|
8
|
+
key: string;
|
|
9
|
+
value: string;
|
|
10
|
+
category: "user" | "project" | "preference" | "context";
|
|
11
|
+
createdAt: string;
|
|
12
|
+
updatedAt: string;
|
|
13
|
+
}
|
|
14
|
+
export declare class MemoryStore {
|
|
15
|
+
private memories;
|
|
16
|
+
constructor();
|
|
17
|
+
private load;
|
|
18
|
+
private save;
|
|
19
|
+
/** Save or update a memory */
|
|
20
|
+
set(key: string, value: string, category?: MemoryEntry["category"]): void;
|
|
21
|
+
/** Get a specific memory */
|
|
22
|
+
get(key: string): string | null;
|
|
23
|
+
/** Search memories by keyword */
|
|
24
|
+
search(query: string): MemoryEntry[];
|
|
25
|
+
/** Get all memories */
|
|
26
|
+
getAll(): ReadonlyArray<MemoryEntry>;
|
|
27
|
+
/** Get memories by category */
|
|
28
|
+
getByCategory(category: MemoryEntry["category"]): MemoryEntry[];
|
|
29
|
+
/** Delete a memory */
|
|
30
|
+
forget(key: string): boolean;
|
|
31
|
+
/** Clear all memories */
|
|
32
|
+
clear(): void;
|
|
33
|
+
/** Format memories for inclusion in system prompt */
|
|
34
|
+
formatForPrompt(): string;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/utils/memory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAqB;;IAMrC,OAAO,CAAC,IAAI;IAWZ,OAAO,CAAC,IAAI;IASZ,8BAA8B;IAC9B,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,WAAW,CAAC,UAAU,CAAa,GAAG,IAAI;IAapF,4BAA4B;IAC5B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAK/B,iCAAiC;IACjC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE;IAOpC,uBAAuB;IACvB,MAAM,IAAI,aAAa,CAAC,WAAW,CAAC;IAIpC,+BAA+B;IAC/B,aAAa,CAAC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,GAAG,WAAW,EAAE;IAI/D,sBAAsB;IACtB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQ5B,yBAAyB;IACzB,KAAK,IAAI,IAAI;IAKb,qDAAqD;IACrD,eAAe,IAAI,MAAM;CAoB1B"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Memory System — persistent memory across sessions.
|
|
4
|
+
*
|
|
5
|
+
* Stores key-value memories in ~/.cdoing/memory.json
|
|
6
|
+
* The agent can save, recall, and forget memories.
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
|
+
exports.MemoryStore = void 0;
|
|
43
|
+
const fs = __importStar(require("fs"));
|
|
44
|
+
const path = __importStar(require("path"));
|
|
45
|
+
const os = __importStar(require("os"));
|
|
46
|
+
const MEMORY_DIR = path.join(os.homedir(), ".cdoing");
|
|
47
|
+
const MEMORY_FILE = path.join(MEMORY_DIR, "memory.json");
|
|
48
|
+
class MemoryStore {
|
|
49
|
+
memories = [];
|
|
50
|
+
constructor() {
|
|
51
|
+
this.load();
|
|
52
|
+
}
|
|
53
|
+
load() {
|
|
54
|
+
try {
|
|
55
|
+
if (fs.existsSync(MEMORY_FILE)) {
|
|
56
|
+
const data = JSON.parse(fs.readFileSync(MEMORY_FILE, "utf-8"));
|
|
57
|
+
this.memories = Array.isArray(data.memories) ? data.memories : [];
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
this.memories = [];
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
save() {
|
|
65
|
+
if (!fs.existsSync(MEMORY_DIR))
|
|
66
|
+
fs.mkdirSync(MEMORY_DIR, { recursive: true });
|
|
67
|
+
fs.writeFileSync(MEMORY_FILE, JSON.stringify({ memories: this.memories }, null, 2), "utf-8");
|
|
68
|
+
}
|
|
69
|
+
/** Save or update a memory */
|
|
70
|
+
set(key, value, category = "context") {
|
|
71
|
+
const now = new Date().toISOString();
|
|
72
|
+
const existing = this.memories.find((m) => m.key === key);
|
|
73
|
+
if (existing) {
|
|
74
|
+
existing.value = value;
|
|
75
|
+
existing.updatedAt = now;
|
|
76
|
+
existing.category = category;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this.memories.push({ key, value, category, createdAt: now, updatedAt: now });
|
|
80
|
+
}
|
|
81
|
+
this.save();
|
|
82
|
+
}
|
|
83
|
+
/** Get a specific memory */
|
|
84
|
+
get(key) {
|
|
85
|
+
const entry = this.memories.find((m) => m.key === key);
|
|
86
|
+
return entry?.value || null;
|
|
87
|
+
}
|
|
88
|
+
/** Search memories by keyword */
|
|
89
|
+
search(query) {
|
|
90
|
+
const q = query.toLowerCase();
|
|
91
|
+
return this.memories.filter((m) => m.key.toLowerCase().includes(q) || m.value.toLowerCase().includes(q));
|
|
92
|
+
}
|
|
93
|
+
/** Get all memories */
|
|
94
|
+
getAll() {
|
|
95
|
+
return this.memories;
|
|
96
|
+
}
|
|
97
|
+
/** Get memories by category */
|
|
98
|
+
getByCategory(category) {
|
|
99
|
+
return this.memories.filter((m) => m.category === category);
|
|
100
|
+
}
|
|
101
|
+
/** Delete a memory */
|
|
102
|
+
forget(key) {
|
|
103
|
+
const index = this.memories.findIndex((m) => m.key === key);
|
|
104
|
+
if (index === -1)
|
|
105
|
+
return false;
|
|
106
|
+
this.memories.splice(index, 1);
|
|
107
|
+
this.save();
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
/** Clear all memories */
|
|
111
|
+
clear() {
|
|
112
|
+
this.memories = [];
|
|
113
|
+
this.save();
|
|
114
|
+
}
|
|
115
|
+
/** Format memories for inclusion in system prompt */
|
|
116
|
+
formatForPrompt() {
|
|
117
|
+
if (this.memories.length === 0)
|
|
118
|
+
return "";
|
|
119
|
+
const byCategory = new Map();
|
|
120
|
+
for (const m of this.memories) {
|
|
121
|
+
const list = byCategory.get(m.category) || [];
|
|
122
|
+
list.push(m);
|
|
123
|
+
byCategory.set(m.category, list);
|
|
124
|
+
}
|
|
125
|
+
const parts = [];
|
|
126
|
+
for (const [category, entries] of byCategory) {
|
|
127
|
+
parts.push(`## ${category}`);
|
|
128
|
+
for (const e of entries) {
|
|
129
|
+
parts.push(`- **${e.key}**: ${e.value}`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return parts.join("\n");
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.MemoryStore = MemoryStore;
|
|
136
|
+
//# sourceMappingURL=memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/utils/memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Path Matching Utilities — shared by permissions and sandbox systems.
|
|
3
|
+
*
|
|
4
|
+
* Supports path specifier prefixes:
|
|
5
|
+
* //abs/path → absolute from filesystem root
|
|
6
|
+
* ~/rel/path → relative to home directory
|
|
7
|
+
* /proj/path → relative to project root
|
|
8
|
+
* ./rel/path → relative to current working directory
|
|
9
|
+
* rel/path → relative to current working directory
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Resolve a specifier to an absolute base path for matching.
|
|
13
|
+
*/
|
|
14
|
+
export declare function resolveSpecifierBase(specifier: string, projectDir: string, cwd: string): string;
|
|
15
|
+
/** Glob match: * matches single directory segment, ** matches recursively. */
|
|
16
|
+
export declare function pathGlob(filePath: string, pattern: string): boolean;
|
|
17
|
+
export declare function matchPathParts(fp: string[], pp: string[], fi: number, pi: number): boolean;
|
|
18
|
+
export declare function matchSegment(name: string, pat: string): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Match a file path against a specifier, resolving the specifier relative
|
|
21
|
+
* to the project directory and current working directory.
|
|
22
|
+
*/
|
|
23
|
+
export declare function matchPath(filePath: string, specifier: string, projectDir: string, cwd: string): boolean;
|
|
24
|
+
//# sourceMappingURL=path-matching.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"path-matching.d.ts","sourceRoot":"","sources":["../../src/utils/path-matching.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAc/F;AAED,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAOnE;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAc1F;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAI/D;AAMD;;;GAGG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAGT"}
|