wave-agent-sdk 0.7.0 → 0.7.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/dist/core/session.d.ts +3 -0
- package/dist/core/session.d.ts.map +1 -0
- package/dist/core/session.js +1 -0
- package/dist/index.d.ts +1 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -5
- package/dist/managers/aiManager.d.ts.map +1 -1
- package/dist/managers/aiManager.js +1 -0
- package/dist/managers/toolManager.d.ts.map +1 -1
- package/dist/managers/toolManager.js +4 -3
- package/dist/services/taskManager.js +1 -1
- package/dist/tools/bashTool.d.ts.map +1 -1
- package/dist/tools/bashTool.js +17 -2
- package/dist/tools/editTool.d.ts.map +1 -1
- package/dist/tools/editTool.js +7 -3
- package/dist/tools/taskOutputTool.d.ts.map +1 -1
- package/dist/tools/taskOutputTool.js +2 -1
- package/dist/tools/types.d.ts +1 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/writeTool.d.ts.map +1 -1
- package/dist/tools/writeTool.js +1 -0
- package/dist/types/core.d.ts +2 -0
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/messaging.d.ts +1 -0
- package/dist/types/messaging.d.ts.map +1 -1
- package/dist/types/permissions.d.ts +2 -0
- package/dist/types/permissions.d.ts.map +1 -1
- package/dist/utils/containerSetup.d.ts.map +1 -1
- package/dist/utils/containerSetup.js +22 -0
- package/dist/utils/messageOperations.d.ts +2 -1
- package/dist/utils/messageOperations.d.ts.map +1 -1
- package/dist/utils/messageOperations.js +4 -1
- package/package.json +1 -1
- package/src/core/session.ts +6 -0
- package/src/index.ts +1 -5
- package/src/managers/aiManager.ts +1 -0
- package/src/managers/toolManager.ts +5 -3
- package/src/services/taskManager.ts +1 -1
- package/src/tools/bashTool.ts +17 -2
- package/src/tools/editTool.ts +8 -3
- package/src/tools/taskOutputTool.ts +2 -1
- package/src/tools/types.ts +2 -0
- package/src/tools/writeTool.ts +1 -0
- package/src/types/core.ts +2 -0
- package/src/types/messaging.ts +1 -0
- package/src/types/permissions.ts +2 -0
- package/src/utils/containerSetup.ts +23 -0
- package/src/utils/messageOperations.ts +5 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,eAAe,EACf,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { listSessions, truncateContent, loadSessionFromJsonl, } from "../services/session.js";
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
export * from "./
|
|
2
|
-
export * from "./services/memory.js";
|
|
3
|
-
export * from "./services/session.js";
|
|
4
|
-
export * from "./services/hook.js";
|
|
5
|
-
export * from "./services/jsonlHandler.js";
|
|
1
|
+
export * from "./core/session.js";
|
|
6
2
|
export * from "./constants/tools.js";
|
|
7
3
|
export * from "./agent.js";
|
|
8
4
|
export * from "./core/plugin.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,mBAAmB,CAAC;AAGlC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,6BAA6B,CAAC;AAG5C,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
// Export all services
|
|
2
|
-
export * from "./
|
|
3
|
-
export * from "./services/memory.js";
|
|
4
|
-
export * from "./services/session.js";
|
|
5
|
-
export * from "./services/hook.js";
|
|
6
|
-
export * from "./services/jsonlHandler.js";
|
|
2
|
+
export * from "./core/session.js";
|
|
7
3
|
// Export constants
|
|
8
4
|
export * from "./constants/tools.js";
|
|
9
5
|
// Export main agent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aiManager.d.ts","sourceRoot":"","sources":["../../src/managers/aiManager.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAY3E,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,MAAM,WAAW,kBAAkB;IACjC,wBAAwB,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,gBAAgB,EAAE,MAAM,aAAa,CAAC;IACtC,cAAc,EAAE,MAAM,WAAW,CAAC;IAClC,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC,WAAW,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACtC,kBAAkB,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnD;AAED,qBAAa,SAAS;IAkBlB,OAAO,CAAC,SAAS;IAjBZ,SAAS,EAAE,OAAO,CAAS;IAClC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAU;IAGxB,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,mBAAmB,CAAe;IAC1C,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,oBAAoB,CAAC,CAA+B;gBAIlD,SAAS,EAAE,SAAS,EAC5B,OAAO,EAAE,gBAAgB;IAgB3B,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,WAAW,GAItB;IAED,OAAO,KAAK,qBAAqB,GAEhC;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,gBAAgB,GAM3B;IAED,OAAO,KAAK,iBAAiB,GAE5B;IAGM,gBAAgB,IAAI,aAAa;IAIjC,cAAc,IAAI,WAAW;IAI7B,iBAAiB,IAAI,MAAM;IAI3B,WAAW,IAAI,MAAM,GAAG,SAAS;IAIxC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,SAAS,CAAqB;IAEtC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAYvB,YAAY,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAItC,cAAc,IAAI,IAAI;IAuB7B,OAAO,CAAC,qBAAqB;YAsBf,8BAA8B;IA6ErC,gBAAgB,IAAI,OAAO;IAI3B,gBAAgB,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI;IAOrD,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,KAAK,YAAY,GAEvB;IAEY,aAAa,CACxB,OAAO,GAAE;QACP,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,oEAAoE;QACpE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,iEAAiE;QACjE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACf,GACL,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"aiManager.d.ts","sourceRoot":"","sources":["../../src/managers/aiManager.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAY3E,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,MAAM,WAAW,kBAAkB;IACjC,wBAAwB,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5D,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,gBAAgB,EAAE,MAAM,aAAa,CAAC;IACtC,cAAc,EAAE,MAAM,WAAW,CAAC;IAClC,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC,WAAW,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACtC,kBAAkB,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnD;AAED,qBAAa,SAAS;IAkBlB,OAAO,CAAC,SAAS;IAjBZ,SAAS,EAAE,OAAO,CAAS;IAClC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAU;IAGxB,OAAO,CAAC,kBAAkB,CAAsB;IAChD,OAAO,CAAC,gBAAgB,CAAoB;IAC5C,OAAO,CAAC,mBAAmB,CAAe;IAC1C,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,oBAAoB,CAAC,CAA+B;gBAIlD,SAAS,EAAE,SAAS,EAC5B,OAAO,EAAE,gBAAgB;IAgB3B,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,WAAW,GAItB;IAED,OAAO,KAAK,qBAAqB,GAEhC;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,gBAAgB,GAM3B;IAED,OAAO,KAAK,iBAAiB,GAE5B;IAGM,gBAAgB,IAAI,aAAa;IAIjC,cAAc,IAAI,WAAW;IAI7B,iBAAiB,IAAI,MAAM;IAI3B,WAAW,IAAI,MAAM,GAAG,SAAS;IAIxC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,SAAS,CAAqB;IAEtC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAYvB,YAAY,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAItC,cAAc,IAAI,IAAI;IAuB7B,OAAO,CAAC,qBAAqB;YAsBf,8BAA8B;IA6ErC,gBAAgB,IAAI,OAAO;IAI3B,gBAAgB,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI;IAOrD,OAAO,KAAK,eAAe,GAE1B;IAED,OAAO,KAAK,YAAY,GAEvB;IAEY,aAAa,CACxB,OAAO,GAAE;QACP,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,oEAAoE;QACpE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,iEAAiE;QACjE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACf,GACL,OAAO,CAAC,IAAI,CAAC;IAugBhB;;;;OAIG;YACW,gBAAgB;IAiE9B;;;OAGG;YACW,sBAAsB;IA6DpC;;OAEG;YACW,uBAAuB;CAwDtC"}
|
|
@@ -476,6 +476,7 @@ export class AIManager {
|
|
|
476
476
|
name: toolName,
|
|
477
477
|
shortResult: toolResult.shortResult,
|
|
478
478
|
isManuallyBackgrounded: toolResult.isManuallyBackgrounded,
|
|
479
|
+
startLineNumber: toolResult.startLineNumber,
|
|
479
480
|
});
|
|
480
481
|
// Execute PostToolUse hooks after successful tool completion
|
|
481
482
|
await this.executePostToolUseHooks(toolId, toolName, toolArgs, toolResult);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolManager.d.ts","sourceRoot":"","sources":["../../src/managers/toolManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAuB7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;GAKG;AACH,cAAM,WAAW;IACf,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,KAAK,CAAC,CAAW;IACzB,OAAO,CAAC,SAAS,CAAY;gBAEjB,OAAO,EAAE,kBAAkB;IAKvC,OAAO,KAAK,UAAU,GAErB;IAED;;OAEG;IACI,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAIvC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,sBAAsB,IAAI,IAAI;IA6BrC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;;;;;;;;;;;OAYG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"toolManager.d.ts","sourceRoot":"","sources":["../../src/managers/toolManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAuB7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,mBAAmB,CAAC;AAM3B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,4CAA4C;IAC5C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;GAKG;AACH,cAAM,WAAW;IACf,OAAO,CAAC,aAAa,CAAiC;IACtD,OAAO,CAAC,KAAK,CAAC,CAAW;IACzB,OAAO,CAAC,SAAS,CAAY;gBAEjB,OAAO,EAAE,kBAAkB;IAKvC,OAAO,KAAK,UAAU,GAErB;IAED;;OAEG;IACI,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAIvC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,sBAAsB,IAAI,IAAI;IA6BrC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IASxB;;;;;;;;;;;;OAYG;IACG,OAAO,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,UAAU,CAAC;IAuFtB,IAAI,IAAI,UAAU,EAAE;IAMpB,cAAc,IAAI,0BAA0B,EAAE;IAmB9C;;OAEG;IACI,QAAQ,IAAI,UAAU,EAAE;IAI/B;;OAEG;IACI,iBAAiB,IAAI,cAAc;IAa1C;;;OAGG;IACI,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAIpD;;OAEG;IACI,oBAAoB,IAAI,iBAAiB,GAAG,SAAS;IAI5D;;OAEG;IACI,cAAc,IACjB,OAAO,4BAA4B,EAAE,WAAW,GAChD,SAAS;CAKd;AAGD,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -118,12 +118,13 @@ class ToolManager {
|
|
|
118
118
|
? permissionManager.getCurrentEffectiveMode(permissionMode)
|
|
119
119
|
: permissionMode || "default";
|
|
120
120
|
// Enhance context with permission-related fields
|
|
121
|
+
const canUseToolCallback = this.container.has("CanUseToolCallback")
|
|
122
|
+
? this.container.get("CanUseToolCallback")
|
|
123
|
+
: undefined;
|
|
121
124
|
const enhancedContext = {
|
|
122
125
|
...context,
|
|
123
126
|
permissionMode: effectivePermissionMode,
|
|
124
|
-
canUseToolCallback
|
|
125
|
-
? this.container.get("CanUseToolCallback")
|
|
126
|
-
: undefined,
|
|
127
|
+
canUseToolCallback,
|
|
127
128
|
permissionManager,
|
|
128
129
|
taskManager: this.container.get("TaskManager"),
|
|
129
130
|
reversionManager: this.container.get("ReversionManager"),
|
|
@@ -32,7 +32,7 @@ export class TaskManager extends EventEmitter {
|
|
|
32
32
|
const lockPath = this.getLockPath();
|
|
33
33
|
let lockHandle;
|
|
34
34
|
const maxRetries = 100;
|
|
35
|
-
const retryDelay = process.env.NODE_ENV === "test" ?
|
|
35
|
+
const retryDelay = process.env.NODE_ENV === "test" ? 1 : 100;
|
|
36
36
|
await this.ensureSessionDir();
|
|
37
37
|
for (let i = 0; i < maxRetries; i++) {
|
|
38
38
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bashTool.d.ts","sourceRoot":"","sources":["../../src/tools/bashTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AActE;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"bashTool.d.ts","sourceRoot":"","sources":["../../src/tools/bashTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AActE;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,UAiYtB,CAAC"}
|
package/dist/tools/bashTool.js
CHANGED
|
@@ -166,8 +166,23 @@ Usage notes:
|
|
|
166
166
|
});
|
|
167
167
|
let outputBuffer = "";
|
|
168
168
|
let errorBuffer = "";
|
|
169
|
+
let shortResultBuffer = "";
|
|
169
170
|
let isAborted = false;
|
|
170
171
|
let isBackgrounded = false;
|
|
172
|
+
const updateShortResult = (chunk) => {
|
|
173
|
+
if (!chunk)
|
|
174
|
+
return;
|
|
175
|
+
shortResultBuffer += chunk;
|
|
176
|
+
if (shortResultBuffer.length > MAX_OUTPUT_LENGTH) {
|
|
177
|
+
shortResultBuffer = shortResultBuffer.slice(-MAX_OUTPUT_LENGTH);
|
|
178
|
+
}
|
|
179
|
+
const lastLines = shortResultBuffer
|
|
180
|
+
.trim()
|
|
181
|
+
.split("\n")
|
|
182
|
+
.slice(-3)
|
|
183
|
+
.join("\n");
|
|
184
|
+
context.onShortResultUpdate?.(lastLines || "");
|
|
185
|
+
};
|
|
171
186
|
const foregroundTaskId = `bash_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
172
187
|
// Register as foreground task
|
|
173
188
|
if (context.foregroundTaskManager && command) {
|
|
@@ -264,14 +279,14 @@ Usage notes:
|
|
|
264
279
|
if (!isAborted && !isBackgrounded && !runInBackground) {
|
|
265
280
|
const chunk = stripAnsiColors(data.toString());
|
|
266
281
|
outputBuffer += chunk;
|
|
267
|
-
|
|
282
|
+
updateShortResult(chunk);
|
|
268
283
|
}
|
|
269
284
|
});
|
|
270
285
|
child.stderr?.on("data", (data) => {
|
|
271
286
|
if (!isAborted && !isBackgrounded && !runInBackground) {
|
|
272
287
|
const chunk = stripAnsiColors(data.toString());
|
|
273
288
|
errorBuffer += chunk;
|
|
274
|
-
|
|
289
|
+
updateShortResult(chunk);
|
|
275
290
|
}
|
|
276
291
|
});
|
|
277
292
|
child.on("exit", (code) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editTool.d.ts","sourceRoot":"","sources":["../../src/tools/editTool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAgBtE;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"editTool.d.ts","sourceRoot":"","sources":["../../src/tools/editTool.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAgBtE;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,UAgOtB,CAAC"}
|
package/dist/tools/editTool.js
CHANGED
|
@@ -105,9 +105,11 @@ Usage:
|
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
107
|
// Check if old_string exists
|
|
108
|
-
const
|
|
109
|
-
|
|
110
|
-
|
|
108
|
+
const index = originalContent.indexOf(oldString);
|
|
109
|
+
const matchedOldString = index !== -1 ? oldString : null;
|
|
110
|
+
const startLineNumber = index !== -1
|
|
111
|
+
? originalContent.substring(0, index).split("\n").length
|
|
112
|
+
: undefined;
|
|
111
113
|
if (!matchedOldString) {
|
|
112
114
|
return {
|
|
113
115
|
success: false,
|
|
@@ -144,6 +146,7 @@ Usage:
|
|
|
144
146
|
old_string: oldString,
|
|
145
147
|
new_string: newString,
|
|
146
148
|
replace_all: replaceAll,
|
|
149
|
+
startLineNumber,
|
|
147
150
|
});
|
|
148
151
|
const permissionResult = await context.permissionManager.checkPermission(permissionContext);
|
|
149
152
|
if (permissionResult.behavior === "deny") {
|
|
@@ -191,6 +194,7 @@ Usage:
|
|
|
191
194
|
content: shortResult,
|
|
192
195
|
shortResult,
|
|
193
196
|
filePath: resolvedPath,
|
|
197
|
+
startLineNumber,
|
|
194
198
|
};
|
|
195
199
|
}
|
|
196
200
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taskOutputTool.d.ts","sourceRoot":"","sources":["../../src/tools/taskOutputTool.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,UAAU,EAAc,MAAM,YAAY,CAAC;AAKjE,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"taskOutputTool.d.ts","sourceRoot":"","sources":["../../src/tools/taskOutputTool.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,UAAU,EAAc,MAAM,YAAY,CAAC;AAKjE,eAAO,MAAM,cAAc,EAAE,UA8L5B,CAAC"}
|
|
@@ -149,7 +149,8 @@ export const taskOutputTool = {
|
|
|
149
149
|
});
|
|
150
150
|
}
|
|
151
151
|
else {
|
|
152
|
-
|
|
152
|
+
const pollingInterval = process.env.NODE_ENV === "test" ? 10 : 500;
|
|
153
|
+
timeoutHandle = setTimeout(check, pollingInterval);
|
|
153
154
|
}
|
|
154
155
|
};
|
|
155
156
|
check();
|
package/dist/tools/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,0BAA0B,CAAC;IACnC,OAAO,EAAE,CACP,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,KACjB,OAAO,CAAC,UAAU,CAAC,CAAC;IACzB,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,WAAW,KACjB,MAAM,CAAC;IACZ;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;QACf,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;QAC7C,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAK,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IAEH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,qBAAqB,CAAC,EAAE,OAAO,sCAAsC,EAAE,qBAAqB,CAAC;IAC7F,qBAAqB,CAAC,EAAE,OAAO,sCAAsC,EAAE,qBAAqB,CAAC;IAC7F,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iCAAiC;IACjC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,OAAO,kCAAkC,EAAE,iBAAiB,CAAC;IACjF,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,2BAA2B,EAAE,UAAU,CAAC;IAC5D,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,iBAAiB,EAAE,WAAW,CAAC;IACnD,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,OAAO,iCAAiC,EAAE,gBAAgB,CAAC;IAC9E,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,qBAAqB,CAAC,EAAE,OAAO,uBAAuB,EAAE,sBAAsB,CAAC;IAC/E,gDAAgD;IAChD,WAAW,EAAE,OAAO,4BAA4B,EAAE,WAAW,CAAC;IAC9D,oDAAoD;IACpD,eAAe,CAAC,EAAE,OAAO,gCAAgC,EAAE,eAAe,CAAC;IAC3E,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,6BAA6B,EAAE,YAAY,CAAC;IAClE,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,0BAA0B,CAAC;IACnC,OAAO,EAAE,CACP,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,KACjB,OAAO,CAAC,UAAU,CAAC,CAAC;IACzB,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,WAAW,KACjB,MAAM,CAAC;IACZ;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;QACf,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;QAC7C,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAK,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IAEH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,qBAAqB,CAAC,EAAE,OAAO,sCAAsC,EAAE,qBAAqB,CAAC;IAC7F,qBAAqB,CAAC,EAAE,OAAO,sCAAsC,EAAE,qBAAqB,CAAC;IAC7F,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iCAAiC;IACjC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,OAAO,kCAAkC,EAAE,iBAAiB,CAAC;IACjF,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,2BAA2B,EAAE,UAAU,CAAC;IAC5D,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,iBAAiB,EAAE,WAAW,CAAC;IACnD,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,OAAO,iCAAiC,EAAE,gBAAgB,CAAC;IAC9E,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,qBAAqB,CAAC,EAAE,OAAO,uBAAuB,EAAE,sBAAsB,CAAC;IAC/E,gDAAgD;IAChD,WAAW,EAAE,OAAO,4BAA4B,EAAE,WAAW,CAAC;IAC9D,oDAAoD;IACpD,eAAe,CAAC,EAAE,OAAO,gCAAgC,EAAE,eAAe,CAAC;IAC3E,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,6BAA6B,EAAE,YAAY,CAAC;IAClE,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeTool.d.ts","sourceRoot":"","sources":["../../src/tools/writeTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAItE;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"writeTool.d.ts","sourceRoot":"","sources":["../../src/tools/writeTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAItE;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,UAmMvB,CAAC"}
|
package/dist/tools/writeTool.js
CHANGED
package/dist/types/core.d.ts
CHANGED
|
@@ -67,6 +67,8 @@ export interface Change {
|
|
|
67
67
|
oldContent: string;
|
|
68
68
|
/** The new content (empty string for deletions) */
|
|
69
69
|
newContent: string;
|
|
70
|
+
/** Optional starting line number in the original file */
|
|
71
|
+
startLineNumber?: number;
|
|
70
72
|
}
|
|
71
73
|
export declare class ConfigurationError extends Error {
|
|
72
74
|
readonly field: string;
|
package/dist/types/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,KAAK;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAGtC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,cAAc,CAAC,EAAE;QACf,yBAAyB,EAAE,MAAM,CAAC;QAClC,yBAAyB,EAAE,MAAM,CAAC;KACnC,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,eAAe;IAElD,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IAGrB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;OAGG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAErC;;OAEG;IACH,cAAc,CAAC,EAAE;QACf,0CAA0C;QAC1C,yBAAyB,EAAE,MAAM,CAAC;QAClC,wCAAwC;QACxC,yBAAyB,EAAE,MAAM,CAAC;KACnC,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/types/core.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,KAAK;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAGtC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,cAAc,CAAC,EAAE;QACf,yBAAyB,EAAE,MAAM,CAAC;QAClC,yBAAyB,EAAE,MAAM,CAAC;KACnC,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,eAAe;IAElD,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IAGrB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;OAGG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;IAErC;;OAEG;IACH,cAAc,CAAC,EAAE;QACf,0CAA0C;QAC1C,yBAAyB,EAAE,MAAM,CAAC;QAClC,wCAAwC;QACxC,yBAAyB,EAAE,MAAM,CAAC;KACnC,CAAC;CACH;AAED;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,kBAAmB,SAAQ,KAAK;aAGzB,KAAK,EAAE,MAAM;aACb,QAAQ,CAAC,EAAE,OAAO;gBAFlC,OAAO,EAAE,MAAM,EACC,KAAK,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,OAAO,YAAA;CAKrC;AAGD,eAAO,MAAM,aAAa;;;;CAKhB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../src/types/messaging.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEvC,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,kBAAkB,GAClB,aAAa,GACb,cAAc,GACd,gBAAgB,CAAC;AAErB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,KAAK,CAAC;QAEb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,CAAC;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,OAAO,gBAAgB,EAAE,YAAY,EAAE,CAAC;CACpD"}
|
|
1
|
+
{"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../src/types/messaging.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEvC,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,kBAAkB,GAClB,aAAa,GACb,cAAc,GACd,gBAAgB,CAAC;AAErB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC;QAEb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,CAAC;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,OAAO,gBAAgB,EAAE,YAAY,EAAE,CAAC;CACpD"}
|
|
@@ -15,6 +15,8 @@ export interface PermissionDecision {
|
|
|
15
15
|
newPermissionMode?: PermissionMode;
|
|
16
16
|
/** Signal to persist a new allowed rule */
|
|
17
17
|
newPermissionRule?: string;
|
|
18
|
+
/** Signal to clear the conversation context and proceed with the plan */
|
|
19
|
+
clearContext?: boolean;
|
|
18
20
|
}
|
|
19
21
|
/** Callback function for custom permission logic */
|
|
20
22
|
export type PermissionCallback = (context: ToolPermissionContext) => Promise<PermissionDecision>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/types/permissions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AASpB,oCAAoC;AACpC,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,mBAAmB,GACnB,aAAa,GACb,MAAM,CAAC;AAEX,mCAAmC;AACnC,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/types/permissions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AASpB,oCAAoC;AACpC,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,mBAAmB,GACnB,aAAa,GACb,MAAM,CAAC;AAEX,mCAAmC;AACnC,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,yEAAyE;IACzE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,oDAAoD;AACpD,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,qBAAqB,KAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC,mDAAmD;AACnD,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,cAAc,EAAE,cAAc,CAAC;IAC/B,6CAA6C;IAC7C,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,yCAAyC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2FAA2F;IAC3F,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,mEAAmE;AACnE,eAAO,MAAM,gBAAgB,uEAMnB,CAAC;AAEX,qCAAqC;AACrC,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerSetup.d.ts","sourceRoot":"","sources":["../../src/utils/containerSetup.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"containerSetup.d.ts","sourceRoot":"","sources":["../../src/utils/containerSetup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAoB3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EACV,cAAc,EACd,KAAK,EACL,IAAI,EACJ,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIrE,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAGhB,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,aAAa,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IACjD,oBAAoB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IAC9C,sBAAsB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACvD,wBAAwB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACzD,iBAAiB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAClD,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAGjC,gBAAgB,EAAE,MAAM,aAAa,CAAC;IACtC,cAAc,EAAE,MAAM,WAAW,CAAC;IAClC,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC,WAAW,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,0BAA0B,GACvC,SAAS,CAyNX"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as fs from "fs/promises";
|
|
1
2
|
import { Container } from "./container.js";
|
|
2
3
|
import { ForegroundTaskManager } from "../managers/foregroundTaskManager.js";
|
|
3
4
|
import { BackgroundTaskManager } from "../managers/backgroundTaskManager.js";
|
|
@@ -102,12 +103,30 @@ export function setupAgentContainer(setupOptions) {
|
|
|
102
103
|
});
|
|
103
104
|
}
|
|
104
105
|
const decision = await options.canUseTool(context);
|
|
106
|
+
const planFilePath = permissionManager.getPlanFilePath();
|
|
105
107
|
if (decision.newPermissionMode) {
|
|
106
108
|
setPermissionMode(decision.newPermissionMode);
|
|
107
109
|
}
|
|
108
110
|
if (decision.newPermissionRule) {
|
|
109
111
|
await addPermissionRule(decision.newPermissionRule);
|
|
110
112
|
}
|
|
113
|
+
if (decision.clearContext) {
|
|
114
|
+
messageManager.clearMessages();
|
|
115
|
+
if (planFilePath) {
|
|
116
|
+
try {
|
|
117
|
+
const planContent = await fs.readFile(planFilePath, "utf-8");
|
|
118
|
+
messageManager.addUserMessage({
|
|
119
|
+
content: `Implement the following plan:\n\n${planContent}`,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
catch (error) {
|
|
123
|
+
logger.warn("Failed to read plan file for context clearing", {
|
|
124
|
+
planFilePath,
|
|
125
|
+
error: error instanceof Error ? error.message : String(error),
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
111
130
|
return decision;
|
|
112
131
|
}
|
|
113
132
|
: undefined;
|
|
@@ -117,6 +136,9 @@ export function setupAgentContainer(setupOptions) {
|
|
|
117
136
|
});
|
|
118
137
|
container.register("ToolManager", toolManager);
|
|
119
138
|
container.register("PermissionMode", options.permissionMode);
|
|
139
|
+
logger.info("Registering CanUseToolCallback", {
|
|
140
|
+
hasCallback: !!canUseToolWithNotification,
|
|
141
|
+
});
|
|
120
142
|
container.register("CanUseToolCallback", canUseToolWithNotification);
|
|
121
143
|
const liveConfigManager = new LiveConfigManager(container, { workdir });
|
|
122
144
|
container.register("LiveConfigManager", liveConfigManager);
|
|
@@ -30,6 +30,7 @@ export interface UpdateToolBlockParams {
|
|
|
30
30
|
stage: "start" | "streaming" | "running" | "end";
|
|
31
31
|
name?: string;
|
|
32
32
|
shortResult?: string;
|
|
33
|
+
startLineNumber?: number;
|
|
33
34
|
images?: Array<{
|
|
34
35
|
data: string;
|
|
35
36
|
mediaType?: string;
|
|
@@ -65,7 +66,7 @@ export interface CompleteCommandParams {
|
|
|
65
66
|
export declare const convertImageToBase64: (imagePath: string) => string;
|
|
66
67
|
export declare const addUserMessageToMessages: ({ messages, content, images, customCommandContent, source, }: AddUserMessageParams) => Message[];
|
|
67
68
|
export declare const addAssistantMessageToMessages: (messages: Message[], content?: string, toolCalls?: ChatCompletionMessageFunctionToolCall[], usage?: Usage, additionalFields?: Record<string, unknown>) => Message[];
|
|
68
|
-
export declare const updateToolBlockInMessage: ({ messages, id, parameters, result, success, error, stage, name, shortResult, images, compactParams, parametersChunk, isManuallyBackgrounded, }: UpdateToolBlockParams) => Message[];
|
|
69
|
+
export declare const updateToolBlockInMessage: ({ messages, id, parameters, result, success, error, stage, name, shortResult, startLineNumber, images, compactParams, parametersChunk, isManuallyBackgrounded, }: UpdateToolBlockParams) => Message[];
|
|
69
70
|
export declare const addErrorBlockToMessage: ({ messages, error, }: AddErrorBlockParams) => Message[];
|
|
70
71
|
export declare const addCommandOutputMessage: ({ messages, command, }: AddCommandOutputParams) => Message[];
|
|
71
72
|
export declare const updateCommandOutputInMessage: ({ messages, command, output, }: UpdateCommandOutputParams) => Message[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageOperations.d.ts","sourceRoot":"","sources":["../../src/utils/messageOperations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGlD,OAAO,EAAE,qCAAqC,EAAE,MAAM,qBAAqB,CAAC;AAI5E,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAGD,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,CAAC;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAGD,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAC3C,qBAAqB,EACrB,UAAU,CACX,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,WAAW,MAAM,KAAG,MAmCxD,CAAC;AAGF,eAAO,MAAM,wBAAwB,GAAI,8DAMtC,oBAAoB,KAAG,OAAO,EA2BhC,CAAC;AAGF,eAAO,MAAM,6BAA6B,GACxC,UAAU,OAAO,EAAE,EACnB,UAAU,MAAM,EAChB,YAAY,qCAAqC,EAAE,EACnD,QAAQ,KAAK,EACb,mBAAmB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACzC,OAAO,EA+BT,CAAC;AAGF,eAAO,MAAM,wBAAwB,GAAI,
|
|
1
|
+
{"version":3,"file":"messageOperations.d.ts","sourceRoot":"","sources":["../../src/utils/messageOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -97,7 +97,7 @@ export const addAssistantMessageToMessages = (messages, content, toolCalls, usag
|
|
|
97
97
|
return [...messages, initialAssistantMessage];
|
|
98
98
|
};
|
|
99
99
|
// Update Tool Block of the last assistant message
|
|
100
|
-
export const updateToolBlockInMessage = ({ messages, id, parameters, result, success, error, stage, name, shortResult, images, compactParams, parametersChunk, isManuallyBackgrounded, }) => {
|
|
100
|
+
export const updateToolBlockInMessage = ({ messages, id, parameters, result, success, error, stage, name, shortResult, startLineNumber, images, compactParams, parametersChunk, isManuallyBackgrounded, }) => {
|
|
101
101
|
const newMessages = [...messages];
|
|
102
102
|
// Find the last assistant message
|
|
103
103
|
for (let i = newMessages.length - 1; i >= 0; i--) {
|
|
@@ -111,6 +111,8 @@ export const updateToolBlockInMessage = ({ messages, id, parameters, result, suc
|
|
|
111
111
|
toolBlock.result = result;
|
|
112
112
|
if (shortResult !== undefined)
|
|
113
113
|
toolBlock.shortResult = shortResult;
|
|
114
|
+
if (startLineNumber !== undefined)
|
|
115
|
+
toolBlock.startLineNumber = startLineNumber;
|
|
114
116
|
toolBlock.images = images; // Add image data update
|
|
115
117
|
if (success !== undefined)
|
|
116
118
|
toolBlock.success = success;
|
|
@@ -134,6 +136,7 @@ export const updateToolBlockInMessage = ({ messages, id, parameters, result, suc
|
|
|
134
136
|
parameters: parameters,
|
|
135
137
|
result: result || "",
|
|
136
138
|
shortResult: shortResult,
|
|
139
|
+
startLineNumber: startLineNumber,
|
|
137
140
|
images: images, // Add image data
|
|
138
141
|
id: id,
|
|
139
142
|
name: name || "unknown",
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
1
|
// Export all services
|
|
2
|
-
export * from "./
|
|
3
|
-
export * from "./services/memory.js";
|
|
4
|
-
export * from "./services/session.js";
|
|
5
|
-
export * from "./services/hook.js";
|
|
6
|
-
export * from "./services/jsonlHandler.js";
|
|
2
|
+
export * from "./core/session.js";
|
|
7
3
|
|
|
8
4
|
// Export constants
|
|
9
5
|
export * from "./constants/tools.js";
|
|
@@ -674,6 +674,7 @@ export class AIManager {
|
|
|
674
674
|
name: toolName,
|
|
675
675
|
shortResult: toolResult.shortResult,
|
|
676
676
|
isManuallyBackgrounded: toolResult.isManuallyBackgrounded,
|
|
677
|
+
startLineNumber: toolResult.startLineNumber,
|
|
677
678
|
});
|
|
678
679
|
|
|
679
680
|
// Execute PostToolUse hooks after successful tool completion
|
|
@@ -164,12 +164,14 @@ class ToolManager {
|
|
|
164
164
|
: permissionMode || "default";
|
|
165
165
|
|
|
166
166
|
// Enhance context with permission-related fields
|
|
167
|
+
const canUseToolCallback = this.container.has("CanUseToolCallback")
|
|
168
|
+
? this.container.get<PermissionCallback>("CanUseToolCallback")
|
|
169
|
+
: undefined;
|
|
170
|
+
|
|
167
171
|
const enhancedContext: ToolContext = {
|
|
168
172
|
...context,
|
|
169
173
|
permissionMode: effectivePermissionMode,
|
|
170
|
-
canUseToolCallback
|
|
171
|
-
? this.container.get<PermissionCallback>("CanUseToolCallback")
|
|
172
|
-
: undefined,
|
|
174
|
+
canUseToolCallback,
|
|
173
175
|
permissionManager,
|
|
174
176
|
taskManager:
|
|
175
177
|
this.container.get<import("../services/taskManager.js").TaskManager>(
|
|
@@ -47,7 +47,7 @@ export class TaskManager extends EventEmitter {
|
|
|
47
47
|
const lockPath = this.getLockPath();
|
|
48
48
|
let lockHandle;
|
|
49
49
|
const maxRetries = 100;
|
|
50
|
-
const retryDelay = process.env.NODE_ENV === "test" ?
|
|
50
|
+
const retryDelay = process.env.NODE_ENV === "test" ? 1 : 100;
|
|
51
51
|
|
|
52
52
|
await this.ensureSessionDir();
|
|
53
53
|
|
package/src/tools/bashTool.ts
CHANGED
|
@@ -197,9 +197,24 @@ Usage notes:
|
|
|
197
197
|
|
|
198
198
|
let outputBuffer = "";
|
|
199
199
|
let errorBuffer = "";
|
|
200
|
+
let shortResultBuffer = "";
|
|
200
201
|
let isAborted = false;
|
|
201
202
|
let isBackgrounded = false;
|
|
202
203
|
|
|
204
|
+
const updateShortResult = (chunk: string) => {
|
|
205
|
+
if (!chunk) return;
|
|
206
|
+
shortResultBuffer += chunk;
|
|
207
|
+
if (shortResultBuffer.length > MAX_OUTPUT_LENGTH) {
|
|
208
|
+
shortResultBuffer = shortResultBuffer.slice(-MAX_OUTPUT_LENGTH);
|
|
209
|
+
}
|
|
210
|
+
const lastLines = shortResultBuffer
|
|
211
|
+
.trim()
|
|
212
|
+
.split("\n")
|
|
213
|
+
.slice(-3)
|
|
214
|
+
.join("\n");
|
|
215
|
+
context.onShortResultUpdate?.(lastLines || "");
|
|
216
|
+
};
|
|
217
|
+
|
|
203
218
|
const foregroundTaskId = `bash_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;
|
|
204
219
|
|
|
205
220
|
// Register as foreground task
|
|
@@ -309,7 +324,7 @@ Usage notes:
|
|
|
309
324
|
if (!isAborted && !isBackgrounded && !runInBackground) {
|
|
310
325
|
const chunk = stripAnsiColors(data.toString());
|
|
311
326
|
outputBuffer += chunk;
|
|
312
|
-
|
|
327
|
+
updateShortResult(chunk);
|
|
313
328
|
}
|
|
314
329
|
});
|
|
315
330
|
|
|
@@ -317,7 +332,7 @@ Usage notes:
|
|
|
317
332
|
if (!isAborted && !isBackgrounded && !runInBackground) {
|
|
318
333
|
const chunk = stripAnsiColors(data.toString());
|
|
319
334
|
errorBuffer += chunk;
|
|
320
|
-
|
|
335
|
+
updateShortResult(chunk);
|
|
321
336
|
}
|
|
322
337
|
});
|
|
323
338
|
|
package/src/tools/editTool.ts
CHANGED
|
@@ -122,9 +122,12 @@ Usage:
|
|
|
122
122
|
}
|
|
123
123
|
|
|
124
124
|
// Check if old_string exists
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
|
|
125
|
+
const index = originalContent.indexOf(oldString);
|
|
126
|
+
const matchedOldString = index !== -1 ? oldString : null;
|
|
127
|
+
const startLineNumber =
|
|
128
|
+
index !== -1
|
|
129
|
+
? originalContent.substring(0, index).split("\n").length
|
|
130
|
+
: undefined;
|
|
128
131
|
|
|
129
132
|
if (!matchedOldString) {
|
|
130
133
|
return {
|
|
@@ -169,6 +172,7 @@ Usage:
|
|
|
169
172
|
old_string: oldString,
|
|
170
173
|
new_string: newString,
|
|
171
174
|
replace_all: replaceAll,
|
|
175
|
+
startLineNumber,
|
|
172
176
|
},
|
|
173
177
|
);
|
|
174
178
|
const permissionResult =
|
|
@@ -226,6 +230,7 @@ Usage:
|
|
|
226
230
|
content: shortResult,
|
|
227
231
|
shortResult,
|
|
228
232
|
filePath: resolvedPath,
|
|
233
|
+
startLineNumber,
|
|
229
234
|
};
|
|
230
235
|
} catch (error) {
|
|
231
236
|
const errorMessage =
|
|
@@ -170,7 +170,8 @@ export const taskOutputTool: ToolPlugin = {
|
|
|
170
170
|
},
|
|
171
171
|
);
|
|
172
172
|
} else {
|
|
173
|
-
|
|
173
|
+
const pollingInterval = process.env.NODE_ENV === "test" ? 10 : 500;
|
|
174
|
+
timeoutHandle = setTimeout(check, pollingInterval);
|
|
174
175
|
}
|
|
175
176
|
};
|
|
176
177
|
check();
|
package/src/tools/types.ts
CHANGED
|
@@ -40,6 +40,8 @@ export interface ToolResult {
|
|
|
40
40
|
shortResult?: string;
|
|
41
41
|
// File path for operations that affect files
|
|
42
42
|
filePath?: string;
|
|
43
|
+
// Optional starting line number for file operations
|
|
44
|
+
startLineNumber?: number;
|
|
43
45
|
// Image data, for supporting multimedia content
|
|
44
46
|
images?: Array<{
|
|
45
47
|
data: string; // base64 encoded image data
|
package/src/tools/writeTool.ts
CHANGED
package/src/types/core.ts
CHANGED
|
@@ -79,6 +79,8 @@ export interface Change {
|
|
|
79
79
|
oldContent: string;
|
|
80
80
|
/** The new content (empty string for deletions) */
|
|
81
81
|
newContent: string;
|
|
82
|
+
/** Optional starting line number in the original file */
|
|
83
|
+
startLineNumber?: number;
|
|
82
84
|
}
|
|
83
85
|
|
|
84
86
|
export class ConfigurationError extends Error {
|
package/src/types/messaging.ts
CHANGED
|
@@ -45,6 +45,7 @@ export interface ToolBlock {
|
|
|
45
45
|
parameters?: string;
|
|
46
46
|
result?: string;
|
|
47
47
|
shortResult?: string; // Add shortResult field
|
|
48
|
+
startLineNumber?: number; // Optional starting line number
|
|
48
49
|
images?: Array<{
|
|
49
50
|
// Add image data support
|
|
50
51
|
data: string; // Base64 encoded image data
|
package/src/types/permissions.ts
CHANGED
|
@@ -33,6 +33,8 @@ export interface PermissionDecision {
|
|
|
33
33
|
newPermissionMode?: PermissionMode;
|
|
34
34
|
/** Signal to persist a new allowed rule */
|
|
35
35
|
newPermissionRule?: string;
|
|
36
|
+
/** Signal to clear the conversation context and proceed with the plan */
|
|
37
|
+
clearContext?: boolean;
|
|
36
38
|
}
|
|
37
39
|
|
|
38
40
|
/** Callback function for custom permission logic */
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import * as fs from "fs/promises";
|
|
1
2
|
import { Container } from "./container.js";
|
|
2
3
|
import { ForegroundTaskManager } from "../managers/foregroundTaskManager.js";
|
|
3
4
|
import { BackgroundTaskManager } from "../managers/backgroundTaskManager.js";
|
|
@@ -178,6 +179,8 @@ export function setupAgentContainer(
|
|
|
178
179
|
|
|
179
180
|
const decision = await options.canUseTool!(context);
|
|
180
181
|
|
|
182
|
+
const planFilePath = permissionManager.getPlanFilePath();
|
|
183
|
+
|
|
181
184
|
if (decision.newPermissionMode) {
|
|
182
185
|
setPermissionMode(decision.newPermissionMode);
|
|
183
186
|
}
|
|
@@ -186,6 +189,23 @@ export function setupAgentContainer(
|
|
|
186
189
|
await addPermissionRule(decision.newPermissionRule);
|
|
187
190
|
}
|
|
188
191
|
|
|
192
|
+
if (decision.clearContext) {
|
|
193
|
+
messageManager.clearMessages();
|
|
194
|
+
if (planFilePath) {
|
|
195
|
+
try {
|
|
196
|
+
const planContent = await fs.readFile(planFilePath, "utf-8");
|
|
197
|
+
messageManager.addUserMessage({
|
|
198
|
+
content: `Implement the following plan:\n\n${planContent}`,
|
|
199
|
+
});
|
|
200
|
+
} catch (error) {
|
|
201
|
+
logger.warn("Failed to read plan file for context clearing", {
|
|
202
|
+
planFilePath,
|
|
203
|
+
error: error instanceof Error ? error.message : String(error),
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
189
209
|
return decision;
|
|
190
210
|
}
|
|
191
211
|
: undefined;
|
|
@@ -197,6 +217,9 @@ export function setupAgentContainer(
|
|
|
197
217
|
container.register("ToolManager", toolManager);
|
|
198
218
|
|
|
199
219
|
container.register("PermissionMode", options.permissionMode);
|
|
220
|
+
logger.info("Registering CanUseToolCallback", {
|
|
221
|
+
hasCallback: !!canUseToolWithNotification,
|
|
222
|
+
});
|
|
200
223
|
container.register("CanUseToolCallback", canUseToolWithNotification);
|
|
201
224
|
|
|
202
225
|
const liveConfigManager = new LiveConfigManager(container, { workdir });
|
|
@@ -35,6 +35,7 @@ export interface UpdateToolBlockParams {
|
|
|
35
35
|
stage: "start" | "streaming" | "running" | "end";
|
|
36
36
|
name?: string;
|
|
37
37
|
shortResult?: string;
|
|
38
|
+
startLineNumber?: number;
|
|
38
39
|
images?: Array<{ data: string; mediaType?: string }>;
|
|
39
40
|
compactParams?: string;
|
|
40
41
|
parametersChunk?: string; // Incremental parameter updates for streaming
|
|
@@ -198,6 +199,7 @@ export const updateToolBlockInMessage = ({
|
|
|
198
199
|
stage,
|
|
199
200
|
name,
|
|
200
201
|
shortResult,
|
|
202
|
+
startLineNumber,
|
|
201
203
|
images,
|
|
202
204
|
compactParams,
|
|
203
205
|
parametersChunk,
|
|
@@ -217,6 +219,8 @@ export const updateToolBlockInMessage = ({
|
|
|
217
219
|
toolBlock.parameters = parameters;
|
|
218
220
|
if (result !== undefined) toolBlock.result = result;
|
|
219
221
|
if (shortResult !== undefined) toolBlock.shortResult = shortResult;
|
|
222
|
+
if (startLineNumber !== undefined)
|
|
223
|
+
toolBlock.startLineNumber = startLineNumber;
|
|
220
224
|
toolBlock.images = images; // Add image data update
|
|
221
225
|
if (success !== undefined) toolBlock.success = success;
|
|
222
226
|
if (error !== undefined) toolBlock.error = error;
|
|
@@ -236,6 +240,7 @@ export const updateToolBlockInMessage = ({
|
|
|
236
240
|
parameters: parameters,
|
|
237
241
|
result: result || "",
|
|
238
242
|
shortResult: shortResult,
|
|
243
|
+
startLineNumber: startLineNumber,
|
|
239
244
|
images: images, // Add image data
|
|
240
245
|
id: id,
|
|
241
246
|
name: name || "unknown",
|