@farazirfan/costar-server-executor 1.7.64 → 1.7.66
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/agent/pi-embedded-runner/system-prompt.d.ts.map +1 -1
- package/dist/agent/pi-embedded-runner/system-prompt.js +8 -1
- package/dist/agent/pi-embedded-runner/system-prompt.js.map +1 -1
- package/dist/agent/pi-embedded-runner/tools.d.ts.map +1 -1
- package/dist/agent/pi-embedded-runner/tools.js +54 -0
- package/dist/agent/pi-embedded-runner/tools.js.map +1 -1
- package/dist/services/s3-file-watcher.d.ts +8 -5
- package/dist/services/s3-file-watcher.d.ts.map +1 -1
- package/dist/services/s3-file-watcher.js +58 -17
- package/dist/services/s3-file-watcher.js.map +1 -1
- package/dist/utils/file-tracker.d.ts +31 -0
- package/dist/utils/file-tracker.d.ts.map +1 -0
- package/dist/utils/file-tracker.js +117 -0
- package/dist/utils/file-tracker.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/system-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAYzD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAcrD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA8BF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wEAAwE;IACxE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IACtC,WAAW,CAAC,EAAE;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GACrC,WAAW,EAAE,CA6Bf;
|
|
1
|
+
{"version":3,"file":"system-prompt.d.ts","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/system-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAYzD,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAcrD,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AA8BF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wEAAwE;IACxE,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IACtC,WAAW,CAAC,EAAE;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC5B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GACrC,WAAW,EAAE,CA6Bf;AAyaD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAmHzE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,MAAM,GACnB,CAAC,aAAa,EAAE,MAAM,KAAK,MAAM,CAGnC"}
|
|
@@ -380,7 +380,14 @@ function buildWorkspaceSection(workspaceDir) {
|
|
|
380
380
|
"",
|
|
381
381
|
];
|
|
382
382
|
if (userTaskDir) {
|
|
383
|
-
|
|
383
|
+
const s3Bucket = process.env.AWS_BUCKET_NAME || "";
|
|
384
|
+
const s3Region = process.env.AWS_REGION || "us-east-2";
|
|
385
|
+
const sandboxId = process.env.SANDBOX_ID || process.env.COSTAR_SANDBOX_ID || "";
|
|
386
|
+
lines.push("### User-Facing Files", `To save files that the user can access or download, write them to: ${userTaskDir}`, "This folder is automatically synced to cloud storage (S3). Any file you place here becomes available to the user.", "Examples: generated reports, downloaded files, created documents, images, videos, etc.", "");
|
|
387
|
+
if (s3Bucket && sandboxId) {
|
|
388
|
+
lines.push("### File URLs (S3)", `Files in ${userTaskDir} are available at:`, ` https://${s3Bucket}.s3.${s3Region}.amazonaws.com/${sandboxId}/<relative_path>`, `Example: ${userTaskDir}/report.pdf → https://${s3Bucket}.s3.${s3Region}.amazonaws.com/${sandboxId}/report.pdf`, "IMPORTANT: When sharing files with the user (in complete_task content blocks or messages),", "always use the S3 HTTPS URL — never use local file paths or sandbox:/ prefixes.", "");
|
|
389
|
+
}
|
|
390
|
+
lines.push("### Coding Projects", "For coding projects, use /home/user/projects/ and manage them with git.", "Project outputs (deployed app URLs) should be saved to the asset database via memory tools.", "");
|
|
384
391
|
}
|
|
385
392
|
return lines;
|
|
386
393
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/system-prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAGzB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,0BAA0B,CAAC;AAIlC,uDAAuD;AACvD,sEAAsE;AACtE,MAAM,aAAa,GAAG;IACpB,uBAAuB;IACvB,qBAAqB;IACrB,sBAAsB;IACtB,yBAAyB;IACzB,qBAAqB;IACrB,uBAAuB;IACvB,0BAA0B;CAC3B,CAAC;AAQF,iFAAiF;AAEjF;;;GAGG;AACH,MAAM,2BAA2B,GAAG,MAAM,CAAC;AAE3C;;;;GAIG;AACH,SAAS,WAAW,CAAC,OAAe,EAAE,WAAmB,2BAA2B;IAClF,IAAI,OAAO,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,OAAO,CAAC;IAE/C,MAAM,SAAS,GAAG,GAAG,CAAC;IACtB,MAAM,SAAS,GAAG,GAAG,CAAC;IACtB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;IAEnD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IAEvD,OAAO,GAAG,IAAI,UAAU,OAAO,6BAA6B,IAAI,EAAE,CAAC;AACrE,CAAC;AAiCD;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CACvC,YAAoB,EACpB,OAAsC;IAEtC,MAAM,QAAQ,GAAG,OAAO,EAAE,eAAe,IAAI,2BAA2B,CAAC;IACzE,MAAM,KAAK,GAAkB,EAAE,CAAC;IAEhC,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gBACtD,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;oBAC3C,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;wBAChC,OAAO,CAAC,GAAG,CACT,mBAAmB,QAAQ,iBAAiB,GAAG,CAAC,MAAM,OAAO,OAAO,CAAC,MAAM,eAAe,QAAQ,GAAG,CACtG,CAAC;oBACJ,CAAC;oBACD,KAAK,CAAC,IAAI,CAAC;wBACT,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,QAAQ;wBACd,OAAO;qBACR,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,IAAI,EAAE,CAAC;YACd,gCAAgC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,QAAuB;IAClD,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAClC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC;QAC1C,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,aAAqC;IAChE,MAAM,KAAK,GAAa;QACtB,oBAAoB;QACpB,4CAA4C;QAC5C,EAAE;KACH,CAAC;IAEF,kBAAkB;IAClB,MAAM,SAAS,GAA2B;QACxC,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,2BAA2B;QAClC,IAAI,EAAE,6BAA6B;QACnC,IAAI,EAAE,mCAAmC;QACzC,IAAI,EAAE,4BAA4B;QAClC,EAAE,EAAE,yBAAyB;QAC7B,IAAI,EAAE,oBAAoB;KAC3B,CAAC;IAEF,uBAAuB;IACvB,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAE/B,4BAA4B;IAC5B,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB;IAChC,OAAO;QACL,oBAAoB;QACpB,qEAAqE;QACrE,wFAAwF;QACxF,wEAAwE;QACxE,yEAAyE;QACzE,iLAAiL;QACjL,EAAE;KACH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,aAAqC;IAC/D,MAAM,cAAc,GAAG,aAAa,CAAC,eAAe,CAAC,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;IACrF,IAAI,CAAC,cAAc;QAAE,OAAO,EAAE,CAAC;IAE/B,OAAO;QACL,kBAAkB;QAClB,8FAA8F;QAC9F,+CAA+C;QAC/C,sDAAsD;QACtD,2DAA2D;QAC3D,EAAE;KACH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,aAAqC;IAClE,MAAM,cAAc,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;IAC/E,IAAI,CAAC,cAAc;QAAE,OAAO,EAAE,CAAC;IAE/B,MAAM,KAAK,GAAG;QACZ,8BAA8B;QAC9B,+DAA+D;QAC/D,gEAAgE;QAChE,qDAAqD;KACtD,CAAC;IAEF,IAAI,aAAa,CAAC,YAAY,CAAC,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,aAAa,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACjG,KAAK,CAAC,IAAI,CACR,EAAE,EACF,gCAAgC,EAChC,8HAA8H,EAC9H,+HAA+H,EAC/H,kEAAkE,EAClE,uGAAuG,CACxG,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,aAAqC;IAChE,MAAM,cAAc,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAChD,IAAI,CAAC,cAAc;QAAE,OAAO,EAAE,CAAC;IAE/B,OAAO;QACL,oBAAoB;QACpB,0BAA0B;QAC1B,oBAAoB;QACpB,8BAA8B;QAC9B,oBAAoB;QACpB,wBAAwB;QACxB,gDAAgD;QAChD,EAAE;KACH,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,sBAAsB;IAC7B,OAAO;QACL,eAAe;QACf,EAAE;QACF,mFAAmF;QACnF,iFAAiF;QACjF,8GAA8G;QAC9G,8DAA8D;QAC9D,2DAA2D;QAC3D,2GAA2G;QAC3G,qHAAqH;QACrH,EAAE;QACF,gKAAgK;QAChK,EAAE;QACF,kCAAkC;QAClC,iFAAiF;QACjF,qFAAqF;QACrF,6FAA6F;QAC7F,oFAAoF;QACpF,8FAA8F;QAC9F,gFAAgF;QAChF,EAAE;QACF,wBAAwB;QACxB,EAAE;QACF,uEAAuE;QACvE,EAAE;QACF,oCAAoC;QACpC,iGAAiG;QACjG,kGAAkG;QAClG,6FAA6F;QAC7F,0DAA0D;QAC1D,uGAAuG;QACvG,sGAAsG;QACtG,EAAE;QACF,wBAAwB;QACxB,kEAAkE;QAClE,8GAA8G;QAC9G,8FAA8F;QAC9F,EAAE;QACF,iCAAiC;QACjC,uFAAuF;QACvF,iHAAiH;QACjH,kFAAkF;QAClF,mGAAmG;QACnG,EAAE;QACF,2BAA2B;QAC3B,EAAE;QACF,mEAAmE;QACnE,kEAAkE;QAClE,2EAA2E;QAC3E,EAAE;QACF,kBAAkB;QAClB,iFAAiF;QACjF,6EAA6E;QAC7E,oFAAoF;QACpF,gDAAgD;QAChD,oEAAoE;QACpE,uEAAuE;QACvE,oFAAoF;QACpF,uGAAuG;QACvG,EAAE;QACF,+BAA+B;QAC/B,EAAE;QACF,2FAA2F;QAC3F,wGAAwG;QACxG,kHAAkH;QAClH,EAAE;QACF,+CAA+C;QAC/C,yFAAyF;QACzF,oGAAoG;QACpG,2GAA2G;QAC3G,yFAAyF;QACzF,uFAAuF;QACvF,qFAAqF;QACrF,EAAE;QACF,wDAAwD;QACxD,EAAE;QACF,0FAA0F;QAC1F,KAAK;QACL,sBAAsB;QACtB,EAAE;QACF,sBAAsB;QACtB,oEAAoE;QACpE,EAAE;QACF,sBAAsB;QACtB,mCAAmC;QACnC,iDAAiD;QACjD,EAAE;QACF,qBAAqB;QACrB,sDAAsD;QACtD,EAAE;QACF,+BAA+B;QAC/B,2CAA2C;QAC3C,wCAAwC;QACxC,KAAK;QACL,EAAE;QACF,yEAAyE;QACzE,+FAA+F;QAC/F,sEAAsE;QACtE,EAAE;QACF,0BAA0B;QAC1B,EAAE;QACF,sEAAsE;QACtE,yDAAyD;QACzD,qGAAqG;QACrG,EAAE;QACF,kGAAkG;QAClG,2GAA2G;QAC3G,EAAE;QACF,2FAA2F;QAC3F,EAAE;QACF,mCAAmC;QACnC,+KAA+K;QAC/K,qHAAqH;QACrH,qFAAqF;QACrF,EAAE;QACF,6BAA6B;QAC7B,EAAE;QACF,mGAAmG;QACnG,EAAE;QACF,sKAAsK;QACtK,EAAE;QACF,qDAAqD;QACrD,+FAA+F;QAC/F,0FAA0F;QAC1F,wFAAwF;QACxF,wIAAwI;QACxI,8HAA8H;QAC9H,6FAA6F;QAC7F,qFAAqF;QACrF,iFAAiF;QACjF,+EAA+E;QAC/E,EAAE;QACF,8KAA8K;QAC9K,EAAE;QACF,sBAAsB;QACtB,sGAAsG;QACtG,oFAAoF;QACpF,oGAAoG;QACpG,uEAAuE;QACvE,kGAAkG;QAClG,gGAAgG;QAChG,EAAE;KACH,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,MAA2B;IACrD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE9C,MAAM,KAAK,GAAa;QACtB,uBAAuB;QACvB,EAAE;QACF,0DAA0D;QAC1D,kIAAkI;QAClI,yDAAyD;QACzD,yDAAyD;QACzD,8CAA8C;QAC9C,EAAE;QACF,oBAAoB;KACrB,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,SAAS,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,WAAW,gBAAgB,CAAC,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,QAAQ,aAAa,CAAC,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,YAAoB;IACjD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IAE9C,MAAM,KAAK,GAAa;QACtB,+BAA+B;QAC/B,EAAE;QACF,uCAAuC,YAAY,EAAE;QACrD,yFAAyF;QACzF,0DAA0D;QAC1D,EAAE;KACH,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CACR,uBAAuB,EACvB,sEAAsE,WAAW,EAAE,EACnF,mHAAmH,EACnH,wFAAwF,EACxF,EAAE,EACF,qBAAqB,EACrB,yEAAyE,EACzE,6FAA6F,EAC7F,EAAE,CACH,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,MAAoD;IAC5E,MAAM,KAAK,GAAa,CAAC,wBAAwB,CAAC,CAAC;IAEnD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,sDAAsD;IACtD,qEAAqE;IACrE,KAAK,CAAC,IAAI,CAAC,qBAAqB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAE9C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,MAA0B;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,IAAI;QACjC,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE;QACnB,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE;QAClC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE;QACf,IAAI,EAAE,OAAO,CAAC,OAAO;QACrB,KAAK,EAAE,SAAS;KACjB,CAAC;IAEF,MAAM,KAAK,GAAG;QACZ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;QACpC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;QAC9B,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;QACpC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;QACpC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE;QACvC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE;QAChD,YAAY,MAAM,CAAC,UAAU,IAAI,KAAK,EAAE;KACzC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,OAAO;QACL,YAAY;QACZ,YAAY,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC/B,EAAE;KACH,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAA0B;IAC/D,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC;IAC/C,MAAM,SAAS,GAAG,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,MAAM,CAAC;IAEpE,uDAAuD;IACvD,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,mDAAmD,CAAC;IAC7D,CAAC;IAED,MAAM,aAAa,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE3D,MAAM,KAAK,GAAa;QACtB,mDAAmD;QACnD,kEAAkE;QAClE,EAAE;KACH,CAAC;IAEF,sBAAsB;IACtB,KAAK,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC;IAElD,8BAA8B;IAC9B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,yBAAyB,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,qBAAqB;IACrB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,wBAAwB;IACxB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,sBAAsB;IACtB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,4CAA4C;IAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,sBAAsB,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,kEAAkE;IAClE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,wBAAwB;IACxB,KAAK,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;IAE1D,mBAAmB;IACnB,KAAK,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC;QAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC,CAAC,CAAC;IAEJ,sCAAsC;IACtC,IAAI,MAAM,CAAC,iBAAiB,EAAE,IAAI,EAAE,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,uCAAuC;IACvC,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,gEAAgE;IAChE,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,yBAAyB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC3F,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QAEpE,qCAAqC;QACrC,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CACnC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAChD,CAAC;QACF,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,CACR,wJAAwJ,CACzJ,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,KAAK,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3C,iBAAiB;IACjB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CACR,eAAe,EACf,qCAAqC,EACrC,+CAA+C,EAC/C,mDAAmD,EACnD,qCAAqC,EACrC,EAAE,CACH,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACxC,YAAoB;IAEpB,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;IACpC,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;AACvB,CAAC"}
|
|
1
|
+
{"version":3,"file":"system-prompt.js","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/system-prompt.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAe,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAe,KAAK,YAAY,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAS7F;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,GAAG,EAAE,CAoD9D;AAgDD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,CAAC,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,gBAAgB,CAAA;CAAE,GAC1E,GAAG,EAAE,CAMP"}
|
|
@@ -6,12 +6,18 @@
|
|
|
6
6
|
* Both executors (client + server) read/write the same files — no sync layer needed.
|
|
7
7
|
*/
|
|
8
8
|
import { getAllTools } from "../../tools/index.js";
|
|
9
|
+
import { detectNewFiles, buildFileSection, constructS3Url } from "../../utils/file-tracker.js";
|
|
10
|
+
import { getS3FileWatcher } from "../../services/s3-file-watcher.js";
|
|
11
|
+
/** Tools that can create/modify files in /home/user/task/ */
|
|
12
|
+
const FILE_TOOLS = new Set(["exec", "write"]);
|
|
9
13
|
// ---------- Tool definitions ----------
|
|
10
14
|
/**
|
|
11
15
|
* Convert CoStar tools to ToolDefinition format (same as OpenClaw's toToolDefinitions)
|
|
12
16
|
* Note: Using 'any' for type compatibility between different pi-* module versions
|
|
13
17
|
*/
|
|
14
18
|
export function toToolDefinitions(tools) {
|
|
19
|
+
// Quick check: is S3 file tracking possible?
|
|
20
|
+
const s3Ready = !!(process.env.AWS_BUCKET_NAME && (process.env.SANDBOX_ID || process.env.COSTAR_SANDBOX_ID));
|
|
15
21
|
return tools.map((tool) => {
|
|
16
22
|
const name = tool.name || "tool";
|
|
17
23
|
return {
|
|
@@ -21,9 +27,17 @@ export function toToolDefinitions(tools) {
|
|
|
21
27
|
// biome-ignore lint/suspicious/noExplicitAny: TypeBox schema type differences
|
|
22
28
|
parameters: tool.parameters,
|
|
23
29
|
execute: async (toolCallId, params, _onUpdate, _ctx, signal) => {
|
|
30
|
+
const startTime = s3Ready && FILE_TOOLS.has(name) ? Date.now() : 0;
|
|
24
31
|
// Execute the CoStar tool (simplified adapter)
|
|
25
32
|
try {
|
|
26
33
|
const result = await tool.execute(toolCallId, params);
|
|
34
|
+
// Enrich file-creating tools with S3 URLs (fast, non-blocking)
|
|
35
|
+
if (startTime > 0) {
|
|
36
|
+
try {
|
|
37
|
+
appendFileUrls(name, params, result, startTime);
|
|
38
|
+
}
|
|
39
|
+
catch { /* never break tool execution */ }
|
|
40
|
+
}
|
|
27
41
|
return result;
|
|
28
42
|
}
|
|
29
43
|
catch (err) {
|
|
@@ -45,6 +59,46 @@ export function toToolDefinitions(tools) {
|
|
|
45
59
|
};
|
|
46
60
|
});
|
|
47
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Append S3 URLs to tool result for newly created files.
|
|
64
|
+
* - write: constructs URL from known path (instant)
|
|
65
|
+
* - exec: mtime scan of /home/user/task/ depth 2 (<10ms typical)
|
|
66
|
+
* Fire-and-forget S3 upload — doesn't block the tool result.
|
|
67
|
+
*/
|
|
68
|
+
function appendFileUrls(toolName, params, result, startTime) {
|
|
69
|
+
const textBlock = result?.content?.[0];
|
|
70
|
+
if (!textBlock || textBlock.type !== "text")
|
|
71
|
+
return;
|
|
72
|
+
if (toolName === "write") {
|
|
73
|
+
const filePath = params.path;
|
|
74
|
+
if (!filePath)
|
|
75
|
+
return;
|
|
76
|
+
const s3Url = constructS3Url(filePath);
|
|
77
|
+
if (!s3Url)
|
|
78
|
+
return; // not under /home/user/task/
|
|
79
|
+
// Fire-and-forget upload
|
|
80
|
+
const watcher = getS3FileWatcher();
|
|
81
|
+
if (watcher)
|
|
82
|
+
void watcher.uploadImmediate([filePath]);
|
|
83
|
+
const name = filePath.split("/").pop();
|
|
84
|
+
textBlock.text += `\n\n[File URL]\n- ${name} → ${s3Url}`;
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
if (toolName === "exec") {
|
|
88
|
+
// Skip background/running/failed commands
|
|
89
|
+
if (result?.details?.status !== "completed")
|
|
90
|
+
return;
|
|
91
|
+
// Fast mtime scan (depth 2, skips node_modules etc.)
|
|
92
|
+
const newFiles = detectNewFiles(startTime, 2);
|
|
93
|
+
if (newFiles.length === 0)
|
|
94
|
+
return;
|
|
95
|
+
// Fire-and-forget upload
|
|
96
|
+
const watcher = getS3FileWatcher();
|
|
97
|
+
if (watcher)
|
|
98
|
+
void watcher.uploadImmediate(newFiles.map((f) => f.localPath));
|
|
99
|
+
textBlock.text += buildFileSection(newFiles);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
48
102
|
/**
|
|
49
103
|
* Get all CoStar tools converted to ToolDefinition format.
|
|
50
104
|
* Following OpenClaw's pattern: tools are created inside the runner with full context.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/tools.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,WAAW,EAA4C,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/agent/pi-embedded-runner/tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,11 +24,8 @@ export type UploadRecord = {
|
|
|
24
24
|
s3Url: string;
|
|
25
25
|
uploadedAt: number;
|
|
26
26
|
};
|
|
27
|
-
/**
|
|
28
|
-
|
|
29
|
-
*
|
|
30
|
-
* Uses dynamic import for chokidar (ESM-only since v4).
|
|
31
|
-
*/
|
|
27
|
+
/** Get the global S3FileWatcher instance (null if not initialized) */
|
|
28
|
+
export declare function getS3FileWatcher(): S3FileWatcher | null;
|
|
32
29
|
export declare class S3FileWatcher {
|
|
33
30
|
private config;
|
|
34
31
|
private watcher;
|
|
@@ -59,6 +56,12 @@ export declare class S3FileWatcher {
|
|
|
59
56
|
* Upload a single file to S3 via aws cli.
|
|
60
57
|
*/
|
|
61
58
|
private uploadFile;
|
|
59
|
+
/**
|
|
60
|
+
* Trigger immediate upload for specific files (bypasses debounce).
|
|
61
|
+
* Used by tool result enrichment to ensure files are on S3 ASAP
|
|
62
|
+
* after a command creates them.
|
|
63
|
+
*/
|
|
64
|
+
uploadImmediate(filePaths: string[]): Promise<void>;
|
|
62
65
|
/**
|
|
63
66
|
* Get recent uploads since a timestamp.
|
|
64
67
|
* Used by sandbox-ops to report changed_files in execute response.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3-file-watcher.d.ts","sourceRoot":"","sources":["../../src/services/s3-file-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,MAAM,mBAAmB,GAAG;IAChC,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;
|
|
1
|
+
{"version":3,"file":"s3-file-watcher.d.ts","sourceRoot":"","sources":["../../src/services/s3-file-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,MAAM,MAAM,mBAAmB,GAAG;IAChC,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AA8CF,sEAAsE;AACtE,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,IAAI,CAEvD;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgC;IAE9C,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,gBAAgB,CAAO;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,KAAK,CAIX;gBAEU,MAAM,EAAE,mBAAmB;IASvC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqC5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B;;OAEG;IACH,OAAO,CAAC,WAAW;IAanB;;OAEG;YACW,YAAY;IAoB1B;;OAEG;IACH,OAAO,CAAC,UAAU;IAwClB;;;;OAIG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASzD;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE;IAI/C;;OAEG;IACH,SAAS,IAAI;QACX,QAAQ,EAAE,OAAO,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB;CAUF"}
|
|
@@ -10,27 +10,53 @@
|
|
|
10
10
|
import { exec } from "node:child_process";
|
|
11
11
|
import path from "node:path";
|
|
12
12
|
import fs from "node:fs";
|
|
13
|
-
/**
|
|
14
|
-
const
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
"
|
|
28
|
-
|
|
13
|
+
/** Directory names to ignore (matched against every path segment) */
|
|
14
|
+
const IGNORE_DIRS = new Set([
|
|
15
|
+
"node_modules",
|
|
16
|
+
".bin",
|
|
17
|
+
".git",
|
|
18
|
+
"__pycache__",
|
|
19
|
+
"dist",
|
|
20
|
+
".next",
|
|
21
|
+
".cache",
|
|
22
|
+
".venv",
|
|
23
|
+
"venv",
|
|
24
|
+
]);
|
|
25
|
+
/** File names to ignore */
|
|
26
|
+
const IGNORE_FILES = new Set([
|
|
27
|
+
"package-lock.json",
|
|
28
|
+
"yarn.lock",
|
|
29
|
+
"pnpm-lock.yaml",
|
|
30
|
+
".DS_Store",
|
|
31
|
+
]);
|
|
32
|
+
/**
|
|
33
|
+
* Function-based ignore for chokidar — more reliable than glob patterns
|
|
34
|
+
* which can miss nested paths in chokidar v4.
|
|
35
|
+
*/
|
|
36
|
+
function shouldIgnore(filePath) {
|
|
37
|
+
const segments = filePath.split("/");
|
|
38
|
+
for (const seg of segments) {
|
|
39
|
+
if (IGNORE_DIRS.has(seg))
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
const name = segments[segments.length - 1];
|
|
43
|
+
if (IGNORE_FILES.has(name))
|
|
44
|
+
return true;
|
|
45
|
+
if (name.endsWith(".pyc"))
|
|
46
|
+
return true;
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
29
49
|
/**
|
|
30
50
|
* S3 File Watcher — watches a directory and uploads changed files to S3.
|
|
31
51
|
*
|
|
32
52
|
* Uses dynamic import for chokidar (ESM-only since v4).
|
|
33
53
|
*/
|
|
54
|
+
// Module-level singleton for access from tools
|
|
55
|
+
let _instance = null;
|
|
56
|
+
/** Get the global S3FileWatcher instance (null if not initialized) */
|
|
57
|
+
export function getS3FileWatcher() {
|
|
58
|
+
return _instance;
|
|
59
|
+
}
|
|
34
60
|
export class S3FileWatcher {
|
|
35
61
|
config;
|
|
36
62
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -50,6 +76,8 @@ export class S3FileWatcher {
|
|
|
50
76
|
...config,
|
|
51
77
|
debounceMs: config.debounceMs ?? 5000,
|
|
52
78
|
};
|
|
79
|
+
// Register as singleton
|
|
80
|
+
_instance = this;
|
|
53
81
|
}
|
|
54
82
|
/**
|
|
55
83
|
* Start watching for file changes.
|
|
@@ -64,7 +92,7 @@ export class S3FileWatcher {
|
|
|
64
92
|
// Dynamic import for chokidar (ESM)
|
|
65
93
|
const { watch } = await import("chokidar");
|
|
66
94
|
this.watcher = watch(watchDir, {
|
|
67
|
-
ignored:
|
|
95
|
+
ignored: shouldIgnore,
|
|
68
96
|
persistent: true,
|
|
69
97
|
ignoreInitial: true, // Don't upload everything on startup
|
|
70
98
|
followSymlinks: false,
|
|
@@ -167,6 +195,19 @@ export class S3FileWatcher {
|
|
|
167
195
|
});
|
|
168
196
|
});
|
|
169
197
|
}
|
|
198
|
+
/**
|
|
199
|
+
* Trigger immediate upload for specific files (bypasses debounce).
|
|
200
|
+
* Used by tool result enrichment to ensure files are on S3 ASAP
|
|
201
|
+
* after a command creates them.
|
|
202
|
+
*/
|
|
203
|
+
async uploadImmediate(filePaths) {
|
|
204
|
+
const uploadPromises = filePaths.map((fp) => {
|
|
205
|
+
// Remove from pending queue (avoid double upload)
|
|
206
|
+
this.pendingUploads.delete(fp);
|
|
207
|
+
return this.uploadFile(fp);
|
|
208
|
+
});
|
|
209
|
+
await Promise.allSettled(uploadPromises);
|
|
210
|
+
}
|
|
170
211
|
/**
|
|
171
212
|
* Get recent uploads since a timestamp.
|
|
172
213
|
* Used by sandbox-ops to report changed_files in execute response.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3-file-watcher.js","sourceRoot":"","sources":["../../src/services/s3-file-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAqBzB,
|
|
1
|
+
{"version":3,"file":"s3-file-watcher.js","sourceRoot":"","sources":["../../src/services/s3-file-watcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Tracker — Detect new/modified files and construct S3 URLs
|
|
3
|
+
*
|
|
4
|
+
* Used by tool result enrichment to automatically include S3 URLs
|
|
5
|
+
* when tools create files in /home/user/task/.
|
|
6
|
+
* This ensures the LLM always has correct S3 URLs available,
|
|
7
|
+
* rather than guessing local paths or sandbox:/ prefixes.
|
|
8
|
+
*/
|
|
9
|
+
export type TrackedFile = {
|
|
10
|
+
localPath: string;
|
|
11
|
+
relativePath: string;
|
|
12
|
+
s3Url: string;
|
|
13
|
+
size: number;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Construct an S3 URL from a local file path.
|
|
17
|
+
* Returns null if the file is not under TASK_DIR or env vars are missing.
|
|
18
|
+
*/
|
|
19
|
+
export declare function constructS3Url(localPath: string): string | null;
|
|
20
|
+
/**
|
|
21
|
+
* Detect files in /home/user/task/ that were created or modified after `sinceMs`.
|
|
22
|
+
* Scans up to `maxDepth` levels deep (default 3) to limit cost.
|
|
23
|
+
* Returns files with S3 URLs.
|
|
24
|
+
*/
|
|
25
|
+
export declare function detectNewFiles(sinceMs: number, maxDepth?: number): TrackedFile[];
|
|
26
|
+
/**
|
|
27
|
+
* Build the [Created Files] section to append to tool results.
|
|
28
|
+
* Returns empty string if no new files were found.
|
|
29
|
+
*/
|
|
30
|
+
export declare function buildFileSection(files: TrackedFile[]): string;
|
|
31
|
+
//# sourceMappingURL=file-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-tracker.d.ts","sourceRoot":"","sources":["../../src/utils/file-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA2BH,MAAM,MAAM,WAAW,GAAG;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU/D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,WAAW,EAAE,CAkD3E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAc7D"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Tracker — Detect new/modified files and construct S3 URLs
|
|
3
|
+
*
|
|
4
|
+
* Used by tool result enrichment to automatically include S3 URLs
|
|
5
|
+
* when tools create files in /home/user/task/.
|
|
6
|
+
* This ensures the LLM always has correct S3 URLs available,
|
|
7
|
+
* rather than guessing local paths or sandbox:/ prefixes.
|
|
8
|
+
*/
|
|
9
|
+
import fs from "node:fs";
|
|
10
|
+
import path from "node:path";
|
|
11
|
+
const TASK_DIR = "/home/user/task";
|
|
12
|
+
/** Ignore patterns for file scanning */
|
|
13
|
+
const IGNORE_DIRS = new Set([
|
|
14
|
+
"node_modules",
|
|
15
|
+
".git",
|
|
16
|
+
"__pycache__",
|
|
17
|
+
"dist",
|
|
18
|
+
".next",
|
|
19
|
+
".cache",
|
|
20
|
+
".venv",
|
|
21
|
+
"venv",
|
|
22
|
+
".bin",
|
|
23
|
+
]);
|
|
24
|
+
const IGNORE_FILES = new Set([
|
|
25
|
+
"package-lock.json",
|
|
26
|
+
"yarn.lock",
|
|
27
|
+
"pnpm-lock.yaml",
|
|
28
|
+
".DS_Store",
|
|
29
|
+
]);
|
|
30
|
+
/**
|
|
31
|
+
* Construct an S3 URL from a local file path.
|
|
32
|
+
* Returns null if the file is not under TASK_DIR or env vars are missing.
|
|
33
|
+
*/
|
|
34
|
+
export function constructS3Url(localPath) {
|
|
35
|
+
const bucket = process.env.AWS_BUCKET_NAME;
|
|
36
|
+
const region = process.env.AWS_REGION || "us-east-2";
|
|
37
|
+
const sandboxId = process.env.SANDBOX_ID || process.env.COSTAR_SANDBOX_ID;
|
|
38
|
+
if (!bucket || !sandboxId)
|
|
39
|
+
return null;
|
|
40
|
+
if (!localPath.startsWith(TASK_DIR))
|
|
41
|
+
return null;
|
|
42
|
+
const relativePath = path.relative(TASK_DIR, localPath);
|
|
43
|
+
return `https://${bucket}.s3.${region}.amazonaws.com/${sandboxId}/${relativePath}`;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Detect files in /home/user/task/ that were created or modified after `sinceMs`.
|
|
47
|
+
* Scans up to `maxDepth` levels deep (default 3) to limit cost.
|
|
48
|
+
* Returns files with S3 URLs.
|
|
49
|
+
*/
|
|
50
|
+
export function detectNewFiles(sinceMs, maxDepth = 3) {
|
|
51
|
+
const bucket = process.env.AWS_BUCKET_NAME;
|
|
52
|
+
const region = process.env.AWS_REGION || "us-east-2";
|
|
53
|
+
const sandboxId = process.env.SANDBOX_ID || process.env.COSTAR_SANDBOX_ID;
|
|
54
|
+
if (!bucket || !sandboxId)
|
|
55
|
+
return [];
|
|
56
|
+
if (!fs.existsSync(TASK_DIR))
|
|
57
|
+
return [];
|
|
58
|
+
const results = [];
|
|
59
|
+
function scan(dir, depth) {
|
|
60
|
+
if (depth > maxDepth)
|
|
61
|
+
return;
|
|
62
|
+
let entries;
|
|
63
|
+
try {
|
|
64
|
+
entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
for (const entry of entries) {
|
|
70
|
+
if (entry.isDirectory()) {
|
|
71
|
+
if (IGNORE_DIRS.has(entry.name))
|
|
72
|
+
continue;
|
|
73
|
+
scan(path.join(dir, entry.name), depth + 1);
|
|
74
|
+
}
|
|
75
|
+
else if (entry.isFile()) {
|
|
76
|
+
if (IGNORE_FILES.has(entry.name))
|
|
77
|
+
continue;
|
|
78
|
+
const fullPath = path.join(dir, entry.name);
|
|
79
|
+
try {
|
|
80
|
+
const stat = fs.statSync(fullPath);
|
|
81
|
+
// Check if modified after sinceMs (use max of mtime and birthtime)
|
|
82
|
+
const fileTime = Math.max(stat.mtimeMs, stat.birthtimeMs);
|
|
83
|
+
if (fileTime >= sinceMs) {
|
|
84
|
+
const relativePath = path.relative(TASK_DIR, fullPath);
|
|
85
|
+
results.push({
|
|
86
|
+
localPath: fullPath,
|
|
87
|
+
relativePath,
|
|
88
|
+
s3Url: `https://${bucket}.s3.${region}.amazonaws.com/${sandboxId}/${relativePath}`,
|
|
89
|
+
size: stat.size,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
// Skip files we can't stat
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
scan(TASK_DIR, 0);
|
|
100
|
+
return results;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Build the [Created Files] section to append to tool results.
|
|
104
|
+
* Returns empty string if no new files were found.
|
|
105
|
+
*/
|
|
106
|
+
export function buildFileSection(files) {
|
|
107
|
+
if (files.length === 0)
|
|
108
|
+
return "";
|
|
109
|
+
const lines = ["\n\n[Created/Modified Files]"];
|
|
110
|
+
for (const f of files) {
|
|
111
|
+
const sizeKb = Math.round(f.size / 1024);
|
|
112
|
+
lines.push(`- ${f.relativePath} (${sizeKb}KB) → ${f.s3Url}`);
|
|
113
|
+
}
|
|
114
|
+
lines.push("", "Use these S3 URLs when sharing files with the user (in messages or complete_task content blocks).", 'Example content block: {"type": "file", "data": {"url": "<S3_URL>", "name": "<filename>"}}');
|
|
115
|
+
return lines.join("\n");
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=file-tracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-tracker.js","sourceRoot":"","sources":["../../src/utils/file-tracker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED