@qduc/term2 0.1.0 → 0.1.1
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 +568 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +30 -15
- package/dist/agent.js.map +1 -1
- package/dist/lib/editor-impl.d.ts.map +1 -1
- package/dist/lib/editor-impl.js +6 -2
- package/dist/lib/editor-impl.js.map +1 -1
- package/dist/prompts/lite.md +4 -0
- package/dist/prompts/mentor-addon.md +67 -0
- package/dist/prompts/simple.md +8 -0
- package/dist/providers/openai-compatible/model.js +2 -2
- package/dist/providers/openai-compatible/model.js.map +1 -1
- package/dist/providers/openai-compatible/reasoning-content.test.d.ts +2 -0
- package/dist/providers/openai-compatible/reasoning-content.test.d.ts.map +1 -0
- package/dist/providers/openai-compatible/reasoning-content.test.js +87 -0
- package/dist/providers/openai-compatible/reasoning-content.test.js.map +1 -0
- package/dist/providers/openrouter/converters.d.ts.map +1 -1
- package/dist/providers/openrouter/converters.js +8 -0
- package/dist/providers/openrouter/converters.js.map +1 -1
- package/dist/providers/openrouter/model.js +2 -2
- package/dist/providers/openrouter/model.js.map +1 -1
- package/dist/providers/openrouter/reasoning-content.test.d.ts +2 -0
- package/dist/providers/openrouter/reasoning-content.test.d.ts.map +1 -0
- package/dist/providers/openrouter/reasoning-content.test.js +76 -0
- package/dist/providers/openrouter/reasoning-content.test.js.map +1 -0
- package/dist/services/conversation-session-reasoning.test.d.ts +2 -0
- package/dist/services/conversation-session-reasoning.test.d.ts.map +1 -0
- package/dist/services/conversation-session-reasoning.test.js +62 -0
- package/dist/services/conversation-session-reasoning.test.js.map +1 -0
- package/dist/services/conversation-session.js +2 -2
- package/dist/services/conversation-session.js.map +1 -1
- package/dist/services/conversation-store.js +2 -2
- package/dist/services/conversation-store.js.map +1 -1
- package/dist/tools/create-file.d.ts +17 -0
- package/dist/tools/create-file.d.ts.map +1 -0
- package/dist/tools/create-file.js +100 -0
- package/dist/tools/create-file.js.map +1 -0
- package/dist/tools/create-file.test.d.ts +2 -0
- package/dist/tools/create-file.test.d.ts.map +1 -0
- package/dist/tools/create-file.test.js +129 -0
- package/dist/tools/create-file.test.js.map +1 -0
- package/dist/tools/find-files.d.ts +1 -0
- package/dist/tools/find-files.d.ts.map +1 -1
- package/dist/tools/find-files.js +8 -4
- package/dist/tools/find-files.js.map +1 -1
- package/dist/tools/find-files.test.js +25 -5
- package/dist/tools/find-files.test.js.map +1 -1
- package/dist/tools/read-file.d.ts +1 -0
- package/dist/tools/read-file.d.ts.map +1 -1
- package/dist/tools/read-file.js +8 -4
- package/dist/tools/read-file.js.map +1 -1
- package/dist/tools/read-file.test.js +22 -5
- package/dist/tools/read-file.test.js.map +1 -1
- package/dist/tools/utils.d.ts +7 -1
- package/dist/tools/utils.d.ts.map +1 -1
- package/dist/tools/utils.js +18 -4
- package/dist/tools/utils.js.map +1 -1
- package/package.json +2 -1
- package/readme.md +0 -428
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-file.test.js","sourceRoot":"","sources":["../../source/tools/create-file.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ import { ExecutionContext } from '../services/execution-context.js';
|
|
|
10
10
|
export declare const formatFindFilesCommandMessage: (item: any, index: number, toolCallArgumentsById: Map<string, unknown>) => CommandMessage[];
|
|
11
11
|
export declare const createFindFilesToolDefinition: (deps?: {
|
|
12
12
|
executionContext?: ExecutionContext;
|
|
13
|
+
allowOutsideWorkspace?: boolean;
|
|
13
14
|
}) => ToolDefinition<FindFilesToolParams>;
|
|
14
15
|
export {};
|
|
15
16
|
//# sourceMappingURL=find-files.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-files.d.ts","sourceRoot":"","sources":["../../source/tools/find-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAItB,OAAO,KAAK,EAAC,cAAc,EAAE,cAAc,EAAC,MAAM,YAAY,CAAC;AAU/D,QAAA,MAAM,yBAAyB;;;;iBAmB7B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAgCpE,eAAO,MAAM,6BAA6B,GACzC,MAAM,GAAG,EACT,OAAO,MAAM,EACb,uBAAuB,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,KACzC,cAAc,EAsChB,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,OAAM;
|
|
1
|
+
{"version":3,"file":"find-files.d.ts","sourceRoot":"","sources":["../../source/tools/find-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAItB,OAAO,KAAK,EAAC,cAAc,EAAE,cAAc,EAAC,MAAM,YAAY,CAAC;AAU/D,QAAA,MAAM,yBAAyB;;;;iBAmB7B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAgCpE,eAAO,MAAM,6BAA6B,GACzC,MAAM,GAAG,EACT,OAAO,MAAM,EACb,uBAAuB,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,KACzC,cAAc,EAsChB,CAAC;AAEF,eAAO,MAAM,6BAA6B,GAAI,OAAM;IACnD,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC3B,KAAG,cAAc,CAAC,mBAAmB,CAoH1C,CAAC"}
|
package/dist/tools/find-files.js
CHANGED
|
@@ -86,10 +86,12 @@ export const formatFindFilesCommandMessage = (item, index, toolCallArgumentsById
|
|
|
86
86
|
];
|
|
87
87
|
};
|
|
88
88
|
export const createFindFilesToolDefinition = (deps = {}) => {
|
|
89
|
-
const { executionContext } = deps;
|
|
89
|
+
const { executionContext, allowOutsideWorkspace = false } = deps;
|
|
90
90
|
return {
|
|
91
91
|
name: 'find_files',
|
|
92
|
-
description:
|
|
92
|
+
description: allowOutsideWorkspace
|
|
93
|
+
? 'Search for files by name on the filesystem. Useful for finding files by pattern, exploring directory structure, or locating specific files.'
|
|
94
|
+
: 'Search for files by name in the workspace. Useful for finding files by pattern, exploring project structure, or locating specific files.',
|
|
93
95
|
parameters: findFilesParametersSchema,
|
|
94
96
|
needsApproval: () => false, // Search is read-only and safe
|
|
95
97
|
execute: async (params) => {
|
|
@@ -102,8 +104,10 @@ export const createFindFilesToolDefinition = (deps = {}) => {
|
|
|
102
104
|
const targetPath = searchPath?.trim() || '.';
|
|
103
105
|
const cwd = executionContext?.getCwd() || process.cwd();
|
|
104
106
|
try {
|
|
105
|
-
//
|
|
106
|
-
const absolutePath = resolveWorkspacePath(targetPath, cwd
|
|
107
|
+
// In Lite Mode we may allow searching outside the current workspace.
|
|
108
|
+
const absolutePath = resolveWorkspacePath(targetPath, cwd, {
|
|
109
|
+
allowOutsideWorkspace,
|
|
110
|
+
});
|
|
107
111
|
const useFd = await checkFdAvailability(executionContext);
|
|
108
112
|
let command = '';
|
|
109
113
|
if (useFd) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-files.js","sourceRoot":"","sources":["../../source/tools/find-files.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"find-files.js","sourceRoot":"","sources":["../../source/tools/find-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAC;AACnC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEjE,OAAO,EACH,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAEzC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CACR,oFAAoF,CACpF;IACF,IAAI,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CACR,uFAAuF,CACvF;IACF,WAAW,EAAE,aAAa;SACxB,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,sDAAsD,CAAC;CAClE,CAAC,CAAC;AAKH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,IAAI,KAAK,GAAmB,IAAI,CAAC;AACjC,IAAI,WAAW,GAAmB,IAAI,CAAC;AAEvC,KAAK,UAAU,mBAAmB,CAAC,gBAAmC;IACrE,MAAM,QAAQ,GAAG,gBAAgB,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC;IAEvD,IAAI,QAAQ,EAAE,CAAC;QACd,IAAI,WAAW,KAAK,IAAI;YAAE,OAAO,WAAW,CAAC;QAC7C,IAAI,CAAC;YACJ,MAAM,UAAU,GAAG,gBAAgB,EAAE,aAAa,EAAE,CAAC;YACrD,IAAI,CAAC,UAAU;gBAAE,OAAO,KAAK,CAAC;YAC9B,MAAM,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YAChD,WAAW,GAAG,IAAI,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACR,WAAW,GAAG,KAAK,CAAC;QACrB,CAAC;QACD,OAAO,WAAW,CAAC;IACpB,CAAC;SAAM,CAAC;QACP,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACjC,IAAI,CAAC;YACJ,MAAM,WAAW,CAAC,cAAc,CAAC,CAAC;YAClC,KAAK,GAAG,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACR,KAAK,GAAG,KAAK,CAAC;QACf,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAC5C,IAAS,EACT,KAAa,EACb,qBAA2C,EACxB,EAAE;IACrB,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,YAAY,GACjB,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC;QAC1C,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC;QACnC,CAAC,CAAC,IAAI,CAAC;IACT,MAAM,cAAc,GAAG,IAAI,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,SAAS,CAAC;IACnE,MAAM,IAAI,GACT,sBAAsB,CAAC,cAAc,CAAC;QACtC,sBAAsB,CAAC,YAAY,CAAC;QACpC,EAAE,CAAC;IAEJ,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;IACpC,MAAM,UAAU,GAAG,IAAI,EAAE,IAAI,IAAI,GAAG,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,EAAE,WAAW,CAAC;IAErC,MAAM,KAAK,GAAG,CAAC,eAAe,OAAO,GAAG,CAAC,CAAC;IAC1C,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,SAAS,UAAU,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC;IAClD,MAAM,OAAO,GACZ,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IAEtE,OAAO;QACN,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE;YACxC,OAAO;YACP,MAAM;YACN,OAAO;YACP,QAAQ,EAAE,YAAY;YACtB,QAAQ,EAAE,IAAI;SACd,CAAC;KACF,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,OAG1C,EAAE,EAAuC,EAAE;IAC9C,MAAM,EAAE,gBAAgB,EAAE,qBAAqB,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;IACjE,OAAO;QACN,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,qBAAqB;YACjC,CAAC,CAAC,6IAA6I;YAC/I,CAAC,CAAC,0IAA0I;QAC7I,UAAU,EAAE,yBAAyB;QACrC,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,+BAA+B;QAC3D,OAAO,EAAE,KAAK,EAAC,MAAM,EAAC,EAAE;YACvB,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;YAE1D,gCAAgC;YAChC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACvC,OAAO,0FAA0F,CAAC;YACnG,CAAC;YAED,MAAM,KAAK,GAAG,WAAW,IAAI,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,UAAU,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC;YAC7C,MAAM,GAAG,GAAG,gBAAgB,EAAE,MAAM,EAAE,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YAExD,IAAI,CAAC;gBACJ,qEAAqE;gBACrE,MAAM,YAAY,GAAG,oBAAoB,CAAC,UAAU,EAAE,GAAG,EAAE;oBAC1D,qBAAqB;iBACrB,CAAC,CAAC;gBAEH,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;gBAC1D,IAAI,OAAO,GAAG,EAAE,CAAC;gBAEjB,IAAI,KAAK,EAAE,CAAC;oBACX,yCAAyC;oBACzC,MAAM,IAAI,GAAG;wBACZ,IAAI;wBACJ,eAAe;wBACf,QAAQ;wBACR,GAAG,EAAE,aAAa;wBAClB,QAAQ,EAAE,4BAA4B;qBACtC,CAAC;oBAEF,2BAA2B;oBAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;oBACjD,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;oBAEtD,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACP,mBAAmB;oBACnB,MAAM,IAAI,GAAG;wBACZ,MAAM;wBACN,IAAI,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG;wBAC1C,OAAO;wBACP,GAAG;wBACH,OAAO;qBACP,CAAC;oBAEF,2BAA2B;oBAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;oBAEjD,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1B,CAAC;gBAED,MAAM,UAAU,GAAG,gBAAgB,EAAE,aAAa,EAAE,CAAC;gBAErD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE;oBACjD,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,cAAc;oBAC3C,GAAG;oBACH,UAAU;iBACV,CAAC,CAAC;gBAEH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;oBAC3B,OAAO,oCAAoC,OAAO,EAAE,CAAC;gBACtD,CAAC;gBAED,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;oBACvD,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC;gBACnD,CAAC;gBAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAErC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACd,OAAO,oCAAoC,OAAO,EAAE,CAAC;gBACtD,CAAC;gBAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAElC,mDAAmD;gBACnD,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACrC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAChD,CAAC;gBAEF,cAAc;gBACd,IAAI,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEzD,qCAAqC;gBACrC,IAAI,YAAY,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;oBACjC,UAAU,IAAI,gCAAgC,KAAK,iBAAiB,YAAY,CAAC,MAAM,wDAAwD,CAAC;gBACjJ,CAAC;gBAED,OAAO,UAAU,CAAC;YACnB,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACrB,gCAAgC;gBAChC,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;oBAClD,OAAO,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClC,CAAC;gBAED,kDAAkD;gBAClD,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACtB,OAAO,oCAAoC,OAAO,EAAE,CAAC;gBACtD,CAAC;gBAED,sBAAsB;gBACtB,OAAO,UAAU,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,CAAC;QACF,CAAC;QACD,oBAAoB,EAAE,6BAA6B;KACnD,CAAC;AACH,CAAC,CAAC"}
|
|
@@ -4,18 +4,23 @@ import * as path from 'path';
|
|
|
4
4
|
import * as os from 'os';
|
|
5
5
|
import { createFindFilesToolDefinition } from './find-files.js';
|
|
6
6
|
const findFilesToolDefinition = createFindFilesToolDefinition();
|
|
7
|
+
const findFilesToolDefinitionAllowOutside = createFindFilesToolDefinition({
|
|
8
|
+
allowOutsideWorkspace: true,
|
|
9
|
+
});
|
|
7
10
|
// Helper to create a temp dir and change cwd to it
|
|
8
11
|
async function withTempDir(run) {
|
|
9
12
|
const originalCwd = process.cwd;
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
const rootDir = await fs.mkdtemp(path.join(os.tmpdir(), 'term2-test-'));
|
|
14
|
+
const workspaceDir = path.join(rootDir, 'workspace');
|
|
15
|
+
await fs.mkdir(workspaceDir, { recursive: true });
|
|
16
|
+
// Mock process.cwd (treat workspaceDir as the "workspace")
|
|
17
|
+
process.cwd = () => workspaceDir;
|
|
13
18
|
try {
|
|
14
|
-
await run(
|
|
19
|
+
await run(workspaceDir);
|
|
15
20
|
}
|
|
16
21
|
finally {
|
|
17
22
|
process.cwd = originalCwd;
|
|
18
|
-
await fs.rm(
|
|
23
|
+
await fs.rm(rootDir, { recursive: true, force: true });
|
|
19
24
|
}
|
|
20
25
|
}
|
|
21
26
|
test.serial('needsApproval: returns false for read-only operation', async (t) => {
|
|
@@ -119,6 +124,21 @@ test.serial('execute: rejects path outside workspace', async (t) => {
|
|
|
119
124
|
t.true(result.includes('outside workspace'));
|
|
120
125
|
});
|
|
121
126
|
});
|
|
127
|
+
test.serial('execute: in allowOutsideWorkspace mode, can search outside workspace', async (t) => {
|
|
128
|
+
await withTempDir(async (dir) => {
|
|
129
|
+
const outsideDir = path.join(dir, '..', 'outside');
|
|
130
|
+
await fs.mkdir(outsideDir, { recursive: true });
|
|
131
|
+
await fs.writeFile(path.join(outsideDir, 'outside.ts'), '');
|
|
132
|
+
await fs.writeFile(path.join(outsideDir, 'outside.js'), '');
|
|
133
|
+
const result = await findFilesToolDefinitionAllowOutside.execute({
|
|
134
|
+
pattern: '*.ts',
|
|
135
|
+
path: '../outside',
|
|
136
|
+
});
|
|
137
|
+
t.true(result.includes('outside.ts'));
|
|
138
|
+
t.false(result.includes('outside.js'));
|
|
139
|
+
t.false(result.includes('outside workspace'));
|
|
140
|
+
});
|
|
141
|
+
});
|
|
122
142
|
test.serial('execute: handles non-existent directory', async (t) => {
|
|
123
143
|
await withTempDir(async () => {
|
|
124
144
|
const result = await findFilesToolDefinition.execute({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-files.test.js","sourceRoot":"","sources":["../../source/tools/find-files.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAEhE,MAAM,uBAAuB,GAAG,6BAA6B,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"find-files.test.js","sourceRoot":"","sources":["../../source/tools/find-files.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export declare const formatReadFileCommandMessage: (item: any, index: number, to
|
|
|
10
10
|
import { ExecutionContext } from '../services/execution-context.js';
|
|
11
11
|
export declare const createReadFileToolDefinition: (deps?: {
|
|
12
12
|
executionContext?: ExecutionContext;
|
|
13
|
+
allowOutsideWorkspace?: boolean;
|
|
13
14
|
}) => ToolDefinition<ReadFileToolParams>;
|
|
14
15
|
export {};
|
|
15
16
|
//# sourceMappingURL=read-file.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../source/tools/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAItB,OAAO,KAAK,EAAC,cAAc,EAAE,cAAc,EAAC,MAAM,YAAY,CAAC;AAQ/D,QAAA,MAAM,wBAAwB;;;;iBAY5B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,4BAA4B,GACrC,MAAM,GAAG,EACT,OAAO,MAAM,EACb,uBAAuB,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5C,cAAc,EAmChB,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,eAAO,MAAM,4BAA4B,GAAI,OAAM;
|
|
1
|
+
{"version":3,"file":"read-file.d.ts","sourceRoot":"","sources":["../../source/tools/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAItB,OAAO,KAAK,EAAC,cAAc,EAAE,cAAc,EAAC,MAAM,YAAY,CAAC;AAQ/D,QAAA,MAAM,wBAAwB;;;;iBAY5B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,4BAA4B,GACrC,MAAM,GAAG,EACT,OAAO,MAAM,EACb,uBAAuB,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5C,cAAc,EAmChB,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAEpE,eAAO,MAAM,4BAA4B,GAAI,OAAM;IAC/C,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC9B,KAAG,cAAc,CAAC,kBAAkB,CAyEzC,CAAC"}
|
package/dist/tools/read-file.js
CHANGED
|
@@ -47,18 +47,22 @@ export const formatReadFileCommandMessage = (item, index, toolCallArgumentsById)
|
|
|
47
47
|
];
|
|
48
48
|
};
|
|
49
49
|
export const createReadFileToolDefinition = (deps = {}) => {
|
|
50
|
-
const { executionContext } = deps;
|
|
50
|
+
const { executionContext, allowOutsideWorkspace = false } = deps;
|
|
51
51
|
return {
|
|
52
52
|
name: 'read_file',
|
|
53
|
-
description:
|
|
53
|
+
description: allowOutsideWorkspace
|
|
54
|
+
? 'Read file content from the filesystem. Returns content with line numbers prefixed (like cat -n). Supports reading specific line ranges.'
|
|
55
|
+
: 'Read file content from the workspace. Returns content with line numbers prefixed (like cat -n). Supports reading specific line ranges.',
|
|
54
56
|
parameters: readFileParametersSchema,
|
|
55
57
|
needsApproval: () => false, // Read-only operation, safe
|
|
56
58
|
execute: async (params) => {
|
|
57
59
|
const { path: filePath, start_line, end_line } = params;
|
|
58
60
|
const cwd = executionContext?.getCwd() || process.cwd();
|
|
59
61
|
try {
|
|
60
|
-
//
|
|
61
|
-
const absolutePath = resolveWorkspacePath(filePath, cwd
|
|
62
|
+
// In Lite Mode we may allow reading outside the current workspace.
|
|
63
|
+
const absolutePath = resolveWorkspacePath(filePath, cwd, {
|
|
64
|
+
allowOutsideWorkspace,
|
|
65
|
+
});
|
|
62
66
|
// Read file content
|
|
63
67
|
let content;
|
|
64
68
|
const sshService = executionContext?.getSSHService();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-file.js","sourceRoot":"","sources":["../../source/tools/read-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAC,UAAU,EAAC,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EACH,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACjE,UAAU,EAAE,aAAa;SACpB,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,8EAA8E,CAAC;IAC7F,QAAQ,EAAE,aAAa;SAClB,GAAG,EAAE;SACL,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,+EAA+E,CAAC;CACjG,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CACxC,IAAS,EACT,KAAa,EACb,qBAA2C,EAC3B,EAAE;IAClB,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,YAAY,GACd,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC;QACvC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,MAAM,CAAC;QACnC,CAAC,CAAC,IAAI,CAAC;IACf,MAAM,cAAc,GAAG,IAAI,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,SAAS,CAAC;IACnE,MAAM,IAAI,GACN,sBAAsB,CAAC,cAAc,CAAC;QACtC,sBAAsB,CAAC,YAAY,CAAC;QACpC,EAAE,CAAC;IAEP,MAAM,QAAQ,GAAG,IAAI,EAAE,IAAI,IAAI,SAAS,CAAC;IACzC,MAAM,SAAS,GAAG,IAAI,EAAE,UAAU,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,EAAE,QAAQ,CAAC;IAE/B,IAAI,OAAO,GAAG,cAAc,QAAQ,GAAG,CAAC;IACxC,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,SAAS,IAAI,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,CAAC;QAC7B,OAAO,IAAI,YAAY,KAAK,IAAI,GAAG,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC;IAClD,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IAE7C,OAAO;QACH,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE;YACrC,OAAO;YACP,MAAM;YACN,OAAO;YACP,QAAQ,EAAE,WAAW;YACrB,QAAQ,EAAE,IAAI;SACjB,CAAC;KACL,CAAC;AACN,CAAC,CAAC;AAIF,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"read-file.js","sourceRoot":"","sources":["../../source/tools/read-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,18 +4,23 @@ import * as path from 'path';
|
|
|
4
4
|
import * as os from 'os';
|
|
5
5
|
import { createReadFileToolDefinition } from './read-file.js';
|
|
6
6
|
const readFileToolDefinition = createReadFileToolDefinition();
|
|
7
|
+
const readFileToolDefinitionAllowOutside = createReadFileToolDefinition({
|
|
8
|
+
allowOutsideWorkspace: true,
|
|
9
|
+
});
|
|
7
10
|
// Helper to create a temp dir and change cwd to it
|
|
8
11
|
async function withTempDir(run) {
|
|
9
12
|
const originalCwd = process.cwd;
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
const rootDir = await fs.mkdtemp(path.join(os.tmpdir(), 'term2-test-'));
|
|
14
|
+
const workspaceDir = path.join(rootDir, 'workspace');
|
|
15
|
+
await fs.mkdir(workspaceDir, { recursive: true });
|
|
16
|
+
// Mock process.cwd (treat workspaceDir as the "workspace")
|
|
17
|
+
process.cwd = () => workspaceDir;
|
|
13
18
|
try {
|
|
14
|
-
await run(
|
|
19
|
+
await run(workspaceDir);
|
|
15
20
|
}
|
|
16
21
|
finally {
|
|
17
22
|
process.cwd = originalCwd;
|
|
18
|
-
await fs.rm(
|
|
23
|
+
await fs.rm(rootDir, { recursive: true, force: true });
|
|
19
24
|
}
|
|
20
25
|
}
|
|
21
26
|
test.serial('needsApproval: returns false for read-only operation', async (t) => {
|
|
@@ -85,6 +90,18 @@ test.serial('execute: rejects path outside workspace', async (t) => {
|
|
|
85
90
|
t.true(result.includes('outside workspace'));
|
|
86
91
|
});
|
|
87
92
|
});
|
|
93
|
+
test.serial('execute: in allowOutsideWorkspace mode, can read outside workspace', async (t) => {
|
|
94
|
+
await withTempDir(async (dir) => {
|
|
95
|
+
const outsidePath = path.join(dir, '..', 'outside.txt');
|
|
96
|
+
await fs.writeFile(outsidePath, 'outside\ncontent');
|
|
97
|
+
const result = await readFileToolDefinitionAllowOutside.execute({
|
|
98
|
+
path: '../outside.txt',
|
|
99
|
+
});
|
|
100
|
+
t.true(result.includes('1\toutside'));
|
|
101
|
+
t.true(result.includes('2\tcontent'));
|
|
102
|
+
t.false(result.includes('outside workspace'));
|
|
103
|
+
});
|
|
104
|
+
});
|
|
88
105
|
test.serial('execute: handles file not found', async (t) => {
|
|
89
106
|
await withTempDir(async () => {
|
|
90
107
|
const result = await readFileToolDefinition.execute({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-file.test.js","sourceRoot":"","sources":["../../source/tools/read-file.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,sBAAsB,GAAG,4BAA4B,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"read-file.test.js","sourceRoot":"","sources":["../../source/tools/read-file.test.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/utils.d.ts
CHANGED
|
@@ -2,7 +2,13 @@ import { z } from 'zod';
|
|
|
2
2
|
/**
|
|
3
3
|
* Resolves a relative path and ensures it's within the workspace
|
|
4
4
|
*/
|
|
5
|
-
export declare function resolveWorkspacePath(relativePath: string, baseDir?: string
|
|
5
|
+
export declare function resolveWorkspacePath(relativePath: string, baseDir?: string, options?: {
|
|
6
|
+
/**
|
|
7
|
+
* If true, resolve the path but do not enforce that it stays within baseDir.
|
|
8
|
+
* Intended for Lite Mode read-only tools.
|
|
9
|
+
*/
|
|
10
|
+
allowOutsideWorkspace?: boolean;
|
|
11
|
+
}): string;
|
|
6
12
|
/**
|
|
7
13
|
* A Zod schema that allows either a number or a string that can be parsed as a number.
|
|
8
14
|
* Useful for tool parameters that might be passed as strings from the LLM.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../source/tools/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB;;GAEG;AACH,wBAAgB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../source/tools/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB;;GAEG;AACH,wBAAgB,oBAAoB,CAChC,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,MAAsB,EAC/B,OAAO,CAAC,EAAE;IACN;;;OAGG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACnC,GACF,MAAM,CA0BR;AAED;;;;GAIG;AACH,eAAO,MAAM,aAAa,6BAAoB,CAAC"}
|
package/dist/tools/utils.js
CHANGED
|
@@ -3,12 +3,26 @@ import { z } from 'zod';
|
|
|
3
3
|
/**
|
|
4
4
|
* Resolves a relative path and ensures it's within the workspace
|
|
5
5
|
*/
|
|
6
|
-
export function resolveWorkspacePath(relativePath, baseDir = process.cwd()) {
|
|
7
|
-
const
|
|
8
|
-
|
|
6
|
+
export function resolveWorkspacePath(relativePath, baseDir = process.cwd(), options) {
|
|
7
|
+
const allowOutsideWorkspace = options?.allowOutsideWorkspace ?? false;
|
|
8
|
+
const resolved = path.isAbsolute(relativePath)
|
|
9
|
+
? path.normalize(relativePath)
|
|
10
|
+
: path.resolve(baseDir, relativePath);
|
|
11
|
+
if (allowOutsideWorkspace) {
|
|
12
|
+
return resolved;
|
|
13
|
+
}
|
|
14
|
+
const normalizedBaseDir = path.resolve(baseDir);
|
|
15
|
+
const normalizedResolved = path.resolve(resolved);
|
|
16
|
+
// Ensure either exact match or within base directory (prefix with separator to avoid /foo/bar2 matching /foo/bar)
|
|
17
|
+
const basePrefix = normalizedBaseDir.endsWith(path.sep)
|
|
18
|
+
? normalizedBaseDir
|
|
19
|
+
: normalizedBaseDir + path.sep;
|
|
20
|
+
const isInside = normalizedResolved === normalizedBaseDir ||
|
|
21
|
+
normalizedResolved.startsWith(basePrefix);
|
|
22
|
+
if (!isInside) {
|
|
9
23
|
throw new Error(`Operation outside workspace: ${relativePath}`);
|
|
10
24
|
}
|
|
11
|
-
return
|
|
25
|
+
return normalizedResolved;
|
|
12
26
|
}
|
|
13
27
|
/**
|
|
14
28
|
* A Zod schema that allows either a number or a string that can be parsed as a number.
|
package/dist/tools/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../source/tools/utils.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB;;GAEG;AACH,MAAM,UAAU,oBAAoB,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../source/tools/utils.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAChC,YAAoB,EACpB,UAAkB,OAAO,CAAC,GAAG,EAAE,EAC/B,OAMC;IAED,MAAM,qBAAqB,GAAG,OAAO,EAAE,qBAAqB,IAAI,KAAK,CAAC;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAC1C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAE1C,IAAI,qBAAqB,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAElD,kHAAkH;IAClH,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QACnD,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC;IACnC,MAAM,QAAQ,GACV,kBAAkB,KAAK,iBAAiB;QACxC,kBAAkB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAE9C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,gCAAgC,YAAY,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,kBAAkB,CAAC;AAC9B,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qduc/term2",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "A terminal-based AI assistant that can help you get things done on your computer",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "qduc",
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"lint-fix": "prettier --write .",
|
|
40
40
|
"post-build": "cp -r source/prompts dist/",
|
|
41
41
|
"prepublishOnly": "npm run build && npm test",
|
|
42
|
+
"release": "./scripts/release.sh",
|
|
42
43
|
"logs": "node tools/log_viewer/src/server.js"
|
|
43
44
|
},
|
|
44
45
|
"files": [
|