openchrome-mcp 1.2.4 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cdp/client.d.ts.map +1 -1
- package/dist/cdp/client.js +44 -9
- package/dist/cdp/client.js.map +1 -1
- package/dist/chrome/launcher.d.ts +32 -15
- package/dist/chrome/launcher.d.ts.map +1 -1
- package/dist/chrome/launcher.js +136 -116
- package/dist/chrome/launcher.js.map +1 -1
- package/dist/chrome/profile-manager.d.ts +108 -0
- package/dist/chrome/profile-manager.d.ts.map +1 -0
- package/dist/chrome/profile-manager.js +372 -0
- package/dist/chrome/profile-manager.js.map +1 -0
- package/dist/chrome/sqlite-cookie-copy.d.ts +46 -0
- package/dist/chrome/sqlite-cookie-copy.d.ts.map +1 -0
- package/dist/chrome/sqlite-cookie-copy.js +145 -0
- package/dist/chrome/sqlite-cookie-copy.js.map +1 -0
- package/dist/cli/claude-session.js +0 -0
- package/dist/cli/index.js +0 -0
- package/dist/config/defaults.d.ts +16 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +17 -1
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/global.d.ts +2 -0
- package/dist/config/global.d.ts.map +1 -1
- package/dist/config/global.js.map +1 -1
- package/dist/hints/hint-engine.d.ts +36 -2
- package/dist/hints/hint-engine.d.ts.map +1 -1
- package/dist/hints/hint-engine.js +96 -27
- package/dist/hints/hint-engine.js.map +1 -1
- package/dist/hints/index.d.ts +1 -1
- package/dist/hints/index.d.ts.map +1 -1
- package/dist/hints/rules/repetition-detection.d.ts.map +1 -1
- package/dist/hints/rules/repetition-detection.js +21 -0
- package/dist/hints/rules/repetition-detection.js.map +1 -1
- package/dist/index.js +17 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-server.d.ts +12 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +162 -20
- package/dist/mcp-server.js.map +1 -1
- package/dist/orchestration/workflow-engine.d.ts.map +1 -1
- package/dist/orchestration/workflow-engine.js +2 -1
- package/dist/orchestration/workflow-engine.js.map +1 -1
- package/dist/resources/usage-guide.d.ts +1 -1
- package/dist/resources/usage-guide.d.ts.map +1 -1
- package/dist/resources/usage-guide.js +22 -0
- package/dist/resources/usage-guide.js.map +1 -1
- package/dist/router/browser-router.d.ts.map +1 -1
- package/dist/router/browser-router.js +2 -1
- package/dist/router/browser-router.js.map +1 -1
- package/dist/session-manager.d.ts +4 -0
- package/dist/session-manager.d.ts.map +1 -1
- package/dist/session-manager.js +56 -0
- package/dist/session-manager.js.map +1 -1
- package/dist/tools/click-element.d.ts.map +1 -1
- package/dist/tools/click-element.js +6 -2
- package/dist/tools/click-element.js.map +1 -1
- package/dist/tools/computer.d.ts.map +1 -1
- package/dist/tools/computer.js +32 -3
- package/dist/tools/computer.js.map +1 -1
- package/dist/tools/find.d.ts.map +1 -1
- package/dist/tools/find.js +16 -6
- package/dist/tools/find.js.map +1 -1
- package/dist/tools/form-input.d.ts.map +1 -1
- package/dist/tools/form-input.js +20 -0
- package/dist/tools/form-input.js.map +1 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/javascript.d.ts.map +1 -1
- package/dist/tools/javascript.js +38 -2
- package/dist/tools/javascript.js.map +1 -1
- package/dist/tools/navigate.d.ts.map +1 -1
- package/dist/tools/navigate.js +32 -4
- package/dist/tools/navigate.js.map +1 -1
- package/dist/tools/page-reload.d.ts.map +1 -1
- package/dist/tools/page-reload.js +2 -1
- package/dist/tools/page-reload.js.map +1 -1
- package/dist/tools/profile-status.d.ts +10 -0
- package/dist/tools/profile-status.d.ts.map +1 -0
- package/dist/tools/profile-status.js +101 -0
- package/dist/tools/profile-status.js.map +1 -0
- package/dist/tools/tabs-create.d.ts.map +1 -1
- package/dist/tools/tabs-create.js +2 -1
- package/dist/tools/tabs-create.js.map +1 -1
- package/dist/tools/wait-and-click.d.ts.map +1 -1
- package/dist/tools/wait-and-click.js +3 -1
- package/dist/tools/wait-and-click.js.map +1 -1
- package/dist/tools/wait-for.d.ts.map +1 -1
- package/dist/tools/wait-for.js +2 -1
- package/dist/tools/wait-for.js.map +1 -1
- package/dist/utils/format-age.d.ts +5 -0
- package/dist/utils/format-age.d.ts.map +1 -0
- package/dist/utils/format-age.js +15 -0
- package/dist/utils/format-age.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/pid-manager.d.ts +6 -0
- package/dist/utils/pid-manager.d.ts.map +1 -0
- package/dist/utils/pid-manager.js +132 -0
- package/dist/utils/pid-manager.js.map +1 -0
- package/dist/utils/ref-id-manager.d.ts +19 -1
- package/dist/utils/ref-id-manager.d.ts.map +1 -1
- package/dist/utils/ref-id-manager.js +49 -2
- package/dist/utils/ref-id-manager.js.map +1 -1
- package/dist/utils/request-queue.d.ts.map +1 -1
- package/dist/utils/request-queue.js +5 -1
- package/dist/utils/request-queue.js.map +1 -1
- package/dist/utils/safe-title.d.ts +10 -0
- package/dist/utils/safe-title.d.ts.map +1 -0
- package/dist/utils/safe-title.js +24 -0
- package/dist/utils/safe-title.js.map +1 -0
- package/package.json +4 -1
- package/dist/chrome/profile-detector.d.ts +0 -52
- package/dist/chrome/profile-detector.d.ts.map +0 -1
- package/dist/chrome/profile-detector.js +0 -246
- package/dist/chrome/profile-detector.js.map +0 -1
- package/dist/hints/rules/dom-mode-suggestion.d.ts +0 -6
- package/dist/hints/rules/dom-mode-suggestion.d.ts.map +0 -1
- package/dist/hints/rules/dom-mode-suggestion.js +0 -24
- package/dist/hints/rules/dom-mode-suggestion.js.map +0 -1
- package/dist/types/profile.d.ts +0 -76
- package/dist/types/profile.d.ts.map +0 -1
- package/dist/types/profile.js +0 -35
- package/dist/types/profile.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait-and-click.d.ts","sourceRoot":"","sources":["../../src/tools/wait-and-click.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"wait-and-click.d.ts","sourceRoot":"","sources":["../../src/tools/wait-and-click.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAwU1C,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAEhE"}
|
|
@@ -171,6 +171,8 @@ const handler = async (sessionId, args) => {
|
|
|
171
171
|
name: best.el.getAttribute('aria-label') ||
|
|
172
172
|
best.el.getAttribute('title') ||
|
|
173
173
|
best.el.textContent?.trim().slice(0, 100) || '',
|
|
174
|
+
tagName: best.el.tagName.toLowerCase(),
|
|
175
|
+
textContent: best.el.textContent?.trim().slice(0, 50),
|
|
174
176
|
rect: {
|
|
175
177
|
x: best.rect.x + best.rect.width / 2,
|
|
176
178
|
y: best.rect.y + best.rect.height / 2,
|
|
@@ -256,7 +258,7 @@ const handler = async (sessionId, args) => {
|
|
|
256
258
|
// Generate ref
|
|
257
259
|
let refId = '';
|
|
258
260
|
if (bestMatch.backendDOMNodeId) {
|
|
259
|
-
refId = refIdManager.generateRef(sessionId, tabId, bestMatch.backendDOMNodeId, bestMatch.role, bestMatch.name);
|
|
261
|
+
refId = refIdManager.generateRef(sessionId, tabId, bestMatch.backendDOMNodeId, bestMatch.role, bestMatch.name, bestMatch.tagName, bestMatch.textContent);
|
|
260
262
|
}
|
|
261
263
|
return {
|
|
262
264
|
content: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait-and-click.js","sourceRoot":"","sources":["../../src/tools/wait-and-click.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;
|
|
1
|
+
{"version":3,"file":"wait-and-click.js","sourceRoot":"","sources":["../../src/tools/wait-and-click.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AA0UH,4DAEC;AAxUD,wDAAuD;AACvD,4DAA0D;AAC1D,kDAAkD;AAElD,MAAM,UAAU,GAAsB;IACpC,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,wJAAwJ;IACrK,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,sBAAsB;aACpC;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mEAAmE;aACjF;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kEAAkE;aAChF;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,mEAAmE;aACjF;SACF;QACD,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;KAC7B;CACF,CAAC;AAYF,MAAM,OAAO,GAAgB,KAAK,EAChC,SAAiB,EACjB,IAA6B,EACT,EAAE;IACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAe,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAe,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,OAAkB,IAAI,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IACjF,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAE,IAAI,CAAC,aAAwB,IAAI,GAAG,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IAEzF,MAAM,cAAc,GAAG,IAAA,mCAAiB,GAAE,CAAC;IAC3C,MAAM,YAAY,GAAG,IAAA,gCAAe,GAAE,CAAC;IAEvC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;YAC7D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC;YAC7D,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC;QACzF,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,YAAY,EAAE,CAAC;gBAClE,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,UAAU;aAC3B,KAAK,CAAC,KAAK,CAAC;aACZ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;aACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAElG,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,SAAS,GAAwB,IAAI,CAAC;QAE1C,uBAAuB;QACvB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,OAAO,EAAE,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAmB,EAAE,MAAgB,EAAuB,EAAE;gBAChG,SAAS,YAAY,CAAC,EAAW,EAAE,IAAa;oBAC9C,IAAI,KAAK,GAAG,CAAC,CAAC;oBACd,MAAM,OAAO,GAAG,EAAsB,CAAC;oBACvC,MAAM,IAAI,GAAG,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;oBACjD,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;oBACrE,MAAM,IAAI,GAAG,SAAS,IAAI,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oBACxF,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;wBAClC,CAAC,EAAE,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;oBAEhG,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;oBAE9C,cAAc;oBACd,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,WAAW;wBAAE,KAAK,IAAI,GAAG,CAAC;oBAEtE,sBAAsB;oBACtB,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;wBAAE,KAAK,IAAI,EAAE,CAAC;oBAC1E,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC;wBAAE,KAAK,IAAI,EAAE,CAAC;oBAEjD,iBAAiB;oBACjB,MAAM,YAAY,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;oBACpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;wBAC3B,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;4BAAE,KAAK,IAAI,EAAE,CAAC;oBAChD,CAAC;oBAED,gBAAgB;oBAChB,IAAI,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,OAAO,KAAK,QAAQ,CAAC;wBAAE,KAAK,IAAI,EAAE,CAAC;oBAClG,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,OAAO,KAAK,GAAG,CAAC;wBAAE,KAAK,IAAI,EAAE,CAAC;oBAEzF,oBAAoB;oBACpB,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;wBAAE,KAAK,IAAI,EAAE,CAAC;oBAEtE,aAAa;oBACb,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE;wBAAE,KAAK,IAAI,EAAE,CAAC;oBAErD,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,MAAM,SAAS,GAAG;oBAChB,QAAQ;oBACR,iBAAiB;oBACjB,GAAG;oBACH,eAAe;oBACf,sBAAsB;oBACtB,sBAAsB;oBACtB,mBAAmB;oBACnB,cAAc;oBACd,WAAW;iBACZ,CAAC;gBAEF,IAAI,IAAI,GAAyD,IAAI,CAAC;gBAEtE,mCAAmC;gBACnC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBACjC,IAAI,CAAC;wBACH,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACrD,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;4BACxC,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gCAAE,SAAS;4BAEpD,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;4BAC1C,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,GAAG;gCAAE,SAAS;4BAEjG,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BACrC,IAAI,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gCAChD,IAAI,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;4BAC7B,CAAC;wBACH,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,wBAAwB;oBAC1B,CAAC;gBACH,CAAC;gBAED,8CAA8C;gBAC9C,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,CAAC;oBAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;oBACjF,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC7B,OAAO,IAAI,EAAE,CAAC;wBACZ,MAAM,EAAE,GAAG,IAAe,CAAC;wBAC3B,MAAM,IAAI,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;wBACxC,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACtC,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;4BAC1C,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gCAC9D,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;gCACrC,IAAI,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;oCAChD,IAAI,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;gCAC7B,CAAC;4BACH,CAAC;wBACH,CAAC;wBACD,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC3B,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,GAAG,EAAE;oBAAE,OAAO,IAAI,CAAC;gBAE1C,oCAAoC;gBACnC,IAAI,CAAC,EAAgD,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAEhF,MAAM,OAAO,GAAG,IAAI,CAAC,EAAsB,CAAC;gBAC5C,OAAO;oBACL,gBAAgB,EAAE,CAAC;oBACnB,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC;wBAChC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;oBAC9G,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC;wBACtC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC;wBAC7B,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE;oBACjD,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE;oBACtC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;oBACrD,IAAI,EAAE;wBACJ,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC;wBACpC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;wBACrC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;wBACtB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;qBACzB;oBACD,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB,CAAC;YACJ,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;YAE5B,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;gBACjC,0BAA0B;gBAC1B,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,EAAE,CAAC;gBAChD,IAAI,CAAC;oBACH,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAE/C,IAAI,EAAE,kBAAkB,EAAE;wBAC3B,UAAU,EAAE,0EAA0E;wBACtF,aAAa,EAAE,KAAK;qBACrB,CAAC,CAAC;oBAEH,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;wBACvB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAElC,IAAI,EAAE,kBAAkB,EAAE;4BAC3B,QAAQ,EAAE,SAAS,CAAC,QAAQ;yBAC7B,CAAC,CAAC;wBACH,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;oBAC/C,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,mCAAmC;gBACrC,CAAC;gBAED,SAAS,GAAG,MAAM,CAAC;gBACnB,MAAM;YACR,CAAC;YAED,wBAAwB;YACxB,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;QAClE,CAAC;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,iCAAiC,KAAK,qBAAqB,OAAO,IAAI;qBAC7E;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAExC,6BAA6B;QAC7B,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,EAAE,CAAC;QAChD,IAAI,SAAS,CAAC,gBAAgB,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,4BAA4B,EAAE;oBACvD,aAAa,EAAE,SAAS,CAAC,gBAAgB;iBAC1C,CAAC,CAAC;gBACH,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;gBAEtD,+BAA+B;gBAC/B,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAE/C,IAAI,EAAE,kBAAkB,EAAE;oBAC3B,UAAU,EAAE;;;;;eAKP;oBACL,aAAa,EAAE,IAAI;iBACpB,CAAC,CAAC;gBAEH,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;oBACpB,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;oBACrC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,qCAAqC;YACvC,CAAC;QACH,CAAC;QAED,2CAA2C;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,wBAAY,EAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QAEnF,kBAAkB;QAClB,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;YACvB,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAU,EAAE,EAAE,CAAE,CAA+C,CAAC,iBAAiB,CAAC,CAAC;YAC/I,IAAI,EAAE;gBAAE,OAAQ,EAAiD,CAAC,iBAAiB,CAAC;QACtF,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,SAAS,CAAC,gBAAgB,EAAE,CAAC;YAC/B,KAAK,GAAG,YAAY,CAAC,WAAW,CAC9B,SAAS,EACT,KAAK,EACL,SAAS,CAAC,gBAAgB,EAC1B,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,WAAW,CACtB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,UAAU,QAAQ,oBAAoB,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE;iBAC7J;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBACxF;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAEF,SAAgB,wBAAwB,CAAC,MAAiB;IACxD,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait-for.d.ts","sourceRoot":"","sources":["../../src/tools/wait-for.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"wait-for.d.ts","sourceRoot":"","sources":["../../src/tools/wait-for.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AA4Q1C,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAE3D"}
|
package/dist/tools/wait-for.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.registerWaitForTool = registerWaitForTool;
|
|
7
7
|
const session_manager_1 = require("../session-manager");
|
|
8
|
+
const safe_title_1 = require("../utils/safe-title");
|
|
8
9
|
const definition = {
|
|
9
10
|
name: 'wait_for',
|
|
10
11
|
description: 'Wait for a condition to be met before proceeding. Supports waiting for selectors, text, functions, URL changes, and network idle.',
|
|
@@ -157,7 +158,7 @@ const handler = async (sessionId, args) => {
|
|
|
157
158
|
action: 'wait_for',
|
|
158
159
|
type: 'navigation',
|
|
159
160
|
url: page.url(),
|
|
160
|
-
title: await
|
|
161
|
+
title: await (0, safe_title_1.safeTitle)(page),
|
|
161
162
|
elapsed,
|
|
162
163
|
message: `Navigation completed after ${elapsed}ms`,
|
|
163
164
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait-for.js","sourceRoot":"","sources":["../../src/tools/wait-for.ts"],"names":[],"mappings":";AAAA;;GAEG;;
|
|
1
|
+
{"version":3,"file":"wait-for.js","sourceRoot":"","sources":["../../src/tools/wait-for.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-age.d.ts","sourceRoot":"","sources":["../../src/utils/format-age.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKnD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatAge = formatAge;
|
|
4
|
+
/**
|
|
5
|
+
* Format a timestamp age as a human-readable string (e.g., "30s ago", "2m ago", "1h ago").
|
|
6
|
+
*/
|
|
7
|
+
function formatAge(timestamp) {
|
|
8
|
+
const ageMs = Date.now() - timestamp;
|
|
9
|
+
if (ageMs < 60000)
|
|
10
|
+
return `${Math.round(ageMs / 1000)}s ago`;
|
|
11
|
+
if (ageMs < 3600000)
|
|
12
|
+
return `${Math.round(ageMs / 60000)}m ago`;
|
|
13
|
+
return `${Math.round(ageMs / 3600000)}h ago`;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=format-age.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format-age.js","sourceRoot":"","sources":["../../src/utils/format-age.ts"],"names":[],"mappings":";;AAGA,8BAKC;AARD;;GAEG;AACH,SAAgB,SAAS,CAAC,SAAiB;IACzC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACrC,IAAI,KAAK,GAAG,KAAK;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7D,IAAI,KAAK,GAAG,OAAO;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;IAChE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC;AAC/C,CAAC"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC"}
|
package/dist/utils/index.js
CHANGED
|
@@ -19,4 +19,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
20
|
__exportStar(require("./atomic-file"), exports);
|
|
21
21
|
__exportStar(require("./json-validator"), exports);
|
|
22
|
+
__exportStar(require("./pid-manager"), exports);
|
|
22
23
|
//# sourceMappingURL=index.js.map
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,gDAA8B;AAC9B,mDAAiC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;AAEH,gDAA8B;AAC9B,mDAAiC;AACjC,gDAA8B"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function getPidFilePath(port: number): string;
|
|
2
|
+
export declare function cleanStalePids(port: number): number;
|
|
3
|
+
export declare function writePidFile(port: number): void;
|
|
4
|
+
export declare function removePidFile(port: number): void;
|
|
5
|
+
export declare function listActivePids(port: number): number[];
|
|
6
|
+
//# sourceMappingURL=pid-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pid-manager.d.ts","sourceRoot":"","sources":["../../src/utils/pid-manager.ts"],"names":[],"mappings":"AAMA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAmCD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAWnD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAU/C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAiBhD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAGrD"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.getPidFilePath = getPidFilePath;
|
|
37
|
+
exports.cleanStalePids = cleanStalePids;
|
|
38
|
+
exports.writePidFile = writePidFile;
|
|
39
|
+
exports.removePidFile = removePidFile;
|
|
40
|
+
exports.listActivePids = listActivePids;
|
|
41
|
+
const fs = __importStar(require("fs"));
|
|
42
|
+
const os = __importStar(require("os"));
|
|
43
|
+
const path = __importStar(require("path"));
|
|
44
|
+
const LOG_PREFIX = "[openchrome:pid]";
|
|
45
|
+
function getPidFilePath(port) {
|
|
46
|
+
return path.join(os.tmpdir(), `openchrome-${port}.pid`);
|
|
47
|
+
}
|
|
48
|
+
function isPidAlive(pid) {
|
|
49
|
+
try {
|
|
50
|
+
process.kill(pid, 0);
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function readPids(filePath) {
|
|
58
|
+
try {
|
|
59
|
+
const content = fs.readFileSync(filePath, "utf8");
|
|
60
|
+
return content.split("\n").map(l => l.trim()).filter(l => l.length > 0).map(l => parseInt(l, 10)).filter(p => !isNaN(p) && p > 0);
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
if (err.code !== "ENOENT") {
|
|
64
|
+
console.error(`${LOG_PREFIX} Failed to read PID file at ${filePath}:`, err);
|
|
65
|
+
}
|
|
66
|
+
return [];
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function writePids(filePath, pids) {
|
|
70
|
+
const tmpPath = `${filePath}.${process.pid}.tmp`;
|
|
71
|
+
const content = pids.join("\n") + (pids.length > 0 ? "\n" : "");
|
|
72
|
+
try {
|
|
73
|
+
fs.writeFileSync(tmpPath, content, { encoding: "utf8", flag: "w" });
|
|
74
|
+
fs.renameSync(tmpPath, filePath);
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
console.error(`${LOG_PREFIX} Failed to write PID file at ${filePath}:`, err);
|
|
78
|
+
try {
|
|
79
|
+
fs.unlinkSync(tmpPath);
|
|
80
|
+
}
|
|
81
|
+
catch { /* ignore */ }
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
function cleanStalePids(port) {
|
|
85
|
+
const filePath = getPidFilePath(port);
|
|
86
|
+
const pids = readPids(filePath);
|
|
87
|
+
if (pids.length === 0)
|
|
88
|
+
return 0;
|
|
89
|
+
const alivePids = pids.filter(pid => isPidAlive(pid));
|
|
90
|
+
const removedCount = pids.length - alivePids.length;
|
|
91
|
+
if (removedCount > 0) {
|
|
92
|
+
console.error(`${LOG_PREFIX} Cleaning ${removedCount} stale PID(s) from ${filePath}`);
|
|
93
|
+
writePids(filePath, alivePids);
|
|
94
|
+
}
|
|
95
|
+
return removedCount;
|
|
96
|
+
}
|
|
97
|
+
function writePidFile(port) {
|
|
98
|
+
const filePath = getPidFilePath(port);
|
|
99
|
+
cleanStalePids(port);
|
|
100
|
+
const pids = readPids(filePath);
|
|
101
|
+
if (!pids.includes(process.pid)) {
|
|
102
|
+
pids.push(process.pid);
|
|
103
|
+
writePids(filePath, pids);
|
|
104
|
+
console.error(`${LOG_PREFIX} Registered PID ${process.pid} in ${filePath}`);
|
|
105
|
+
}
|
|
106
|
+
process.once("exit", () => { removePidFile(port); });
|
|
107
|
+
}
|
|
108
|
+
function removePidFile(port) {
|
|
109
|
+
const filePath = getPidFilePath(port);
|
|
110
|
+
const pids = readPids(filePath);
|
|
111
|
+
const remaining = pids.filter(pid => pid !== process.pid);
|
|
112
|
+
if (remaining.length === 0) {
|
|
113
|
+
try {
|
|
114
|
+
fs.unlinkSync(filePath);
|
|
115
|
+
console.error(`${LOG_PREFIX} Removed PID file ${filePath} (no active PIDs remain)`);
|
|
116
|
+
}
|
|
117
|
+
catch (err) {
|
|
118
|
+
if (err.code !== "ENOENT") {
|
|
119
|
+
console.error(`${LOG_PREFIX} Failed to delete PID file at ${filePath}:`, err);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
writePids(filePath, remaining);
|
|
125
|
+
console.error(`${LOG_PREFIX} Deregistered PID ${process.pid} from ${filePath}`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function listActivePids(port) {
|
|
129
|
+
const filePath = getPidFilePath(port);
|
|
130
|
+
return readPids(filePath).filter(pid => isPidAlive(pid));
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=pid-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pid-manager.js","sourceRoot":"","sources":["../../src/utils/pid-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,15 @@
|
|
|
2
2
|
* Ref ID Manager - Manages persistent element references
|
|
3
3
|
* Ported from extension
|
|
4
4
|
*/
|
|
5
|
+
/** TTL for ref staleness warning (30 seconds) */
|
|
6
|
+
export declare const REF_TTL_MS = 30000;
|
|
5
7
|
export interface RefEntry {
|
|
6
8
|
refId: string;
|
|
7
9
|
backendDOMNodeId: number;
|
|
8
10
|
role: string;
|
|
9
11
|
name?: string;
|
|
12
|
+
tagName?: string;
|
|
13
|
+
textContent?: string;
|
|
10
14
|
createdAt: number;
|
|
11
15
|
}
|
|
12
16
|
export declare class RefIdManager {
|
|
@@ -15,12 +19,26 @@ export declare class RefIdManager {
|
|
|
15
19
|
/**
|
|
16
20
|
* Generate a new ref ID for an element
|
|
17
21
|
*/
|
|
18
|
-
generateRef(sessionId: string, targetId: string, backendDOMNodeId: number, role: string, name?: string): string;
|
|
22
|
+
generateRef(sessionId: string, targetId: string, backendDOMNodeId: number, role: string, name?: string, tagName?: string, textContent?: string): string;
|
|
19
23
|
getRef(sessionId: string, targetId: string, refId: string): RefEntry | undefined;
|
|
20
24
|
getBackendDOMNodeId(sessionId: string, targetId: string, refId: string): number | undefined;
|
|
21
25
|
clearTargetRefs(sessionId: string, targetId: string): void;
|
|
22
26
|
clearSessionRefs(sessionId: string): void;
|
|
23
27
|
getTargetRefs(sessionId: string, targetId: string): RefEntry[];
|
|
28
|
+
/**
|
|
29
|
+
* Check if a ref entry is stale (older than REF_TTL_MS)
|
|
30
|
+
*/
|
|
31
|
+
isRefStale(sessionId: string, targetId: string, refId: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Validate a ref against current DOM node properties.
|
|
34
|
+
* Returns { valid: true } if the element identity matches,
|
|
35
|
+
* or { valid: false, reason } if the ref appears stale.
|
|
36
|
+
*/
|
|
37
|
+
validateRef(sessionId: string, targetId: string, refId: string, currentNodeName: string, currentTextContent?: string): {
|
|
38
|
+
valid: boolean;
|
|
39
|
+
reason?: string;
|
|
40
|
+
stale?: boolean;
|
|
41
|
+
};
|
|
24
42
|
/**
|
|
25
43
|
* Unified resolver: accepts "ref_N", raw integer string "142", or "node_142"
|
|
26
44
|
* Returns the backendDOMNodeId for use with CDP DOM.resolveNode
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ref-id-manager.d.ts","sourceRoot":"","sources":["../../src/utils/ref-id-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAA8D;IAC1E,OAAO,CAAC,QAAQ,CAA+C;IAE/D;;OAEG;IACH,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ref-id-manager.d.ts","sourceRoot":"","sources":["../../src/utils/ref-id-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,iDAAiD;AACjD,eAAO,MAAM,UAAU,QAAS,CAAC;AAEjC,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAA8D;IAC1E,OAAO,CAAC,QAAQ,CAA+C;IAE/D;;OAEG;IACH,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM;IAsCT,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIhF,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3F,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAY1D,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAKzC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE;IAQ9D;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAMvE;;;;OAIG;IACH,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,MAAM,EACvB,kBAAkB,CAAC,EAAE,MAAM,GAC1B;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE;IAiCvD;;;OAGG;IACH,sBAAsB,CACpB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS;CAkBtB;AAID,wBAAgB,eAAe,IAAI,YAAY,CAK9C"}
|
|
@@ -4,15 +4,17 @@
|
|
|
4
4
|
* Ported from extension
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.RefIdManager = void 0;
|
|
7
|
+
exports.RefIdManager = exports.REF_TTL_MS = void 0;
|
|
8
8
|
exports.getRefIdManager = getRefIdManager;
|
|
9
|
+
/** TTL for ref staleness warning (30 seconds) */
|
|
10
|
+
exports.REF_TTL_MS = 30_000;
|
|
9
11
|
class RefIdManager {
|
|
10
12
|
refs = new Map();
|
|
11
13
|
counters = new Map();
|
|
12
14
|
/**
|
|
13
15
|
* Generate a new ref ID for an element
|
|
14
16
|
*/
|
|
15
|
-
generateRef(sessionId, targetId, backendDOMNodeId, role, name) {
|
|
17
|
+
generateRef(sessionId, targetId, backendDOMNodeId, role, name, tagName, textContent) {
|
|
16
18
|
let sessionRefs = this.refs.get(sessionId);
|
|
17
19
|
if (!sessionRefs) {
|
|
18
20
|
sessionRefs = new Map();
|
|
@@ -37,6 +39,8 @@ class RefIdManager {
|
|
|
37
39
|
backendDOMNodeId,
|
|
38
40
|
role,
|
|
39
41
|
name,
|
|
42
|
+
tagName,
|
|
43
|
+
textContent,
|
|
40
44
|
createdAt: Date.now(),
|
|
41
45
|
};
|
|
42
46
|
targetRefs.set(refId, entry);
|
|
@@ -69,6 +73,49 @@ class RefIdManager {
|
|
|
69
73
|
}
|
|
70
74
|
return Array.from(targetRefs.values());
|
|
71
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Check if a ref entry is stale (older than REF_TTL_MS)
|
|
78
|
+
*/
|
|
79
|
+
isRefStale(sessionId, targetId, refId) {
|
|
80
|
+
const entry = this.getRef(sessionId, targetId, refId);
|
|
81
|
+
if (!entry)
|
|
82
|
+
return true;
|
|
83
|
+
return Date.now() - entry.createdAt > exports.REF_TTL_MS;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Validate a ref against current DOM node properties.
|
|
87
|
+
* Returns { valid: true } if the element identity matches,
|
|
88
|
+
* or { valid: false, reason } if the ref appears stale.
|
|
89
|
+
*/
|
|
90
|
+
validateRef(sessionId, targetId, refId, currentNodeName, currentTextContent) {
|
|
91
|
+
const entry = this.getRef(sessionId, targetId, refId);
|
|
92
|
+
if (!entry)
|
|
93
|
+
return { valid: false, reason: 'Ref not found' };
|
|
94
|
+
const isStale = Date.now() - entry.createdAt > exports.REF_TTL_MS;
|
|
95
|
+
// Validate tagName if stored (case-insensitive)
|
|
96
|
+
if (entry.tagName && currentNodeName) {
|
|
97
|
+
if (entry.tagName.toLowerCase() !== currentNodeName.toLowerCase()) {
|
|
98
|
+
return {
|
|
99
|
+
valid: false,
|
|
100
|
+
stale: true,
|
|
101
|
+
reason: `Element tag changed: expected <${entry.tagName}>, found <${currentNodeName}>`,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// Validate textContent prefix if stored (first 30 chars)
|
|
106
|
+
if (entry.textContent && currentTextContent) {
|
|
107
|
+
const storedPrefix = entry.textContent.slice(0, 30).trim();
|
|
108
|
+
const currentPrefix = currentTextContent.slice(0, 30).trim();
|
|
109
|
+
if (storedPrefix && currentPrefix && storedPrefix !== currentPrefix) {
|
|
110
|
+
return {
|
|
111
|
+
valid: false,
|
|
112
|
+
stale: true,
|
|
113
|
+
reason: `Element text changed: expected "${storedPrefix}...", found "${currentPrefix}..."`,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return { valid: true, stale: isStale };
|
|
118
|
+
}
|
|
72
119
|
/**
|
|
73
120
|
* Unified resolver: accepts "ref_N", raw integer string "142", or "node_142"
|
|
74
121
|
* Returns the backendDOMNodeId for use with CDP DOM.resolveNode
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ref-id-manager.js","sourceRoot":"","sources":["../../src/utils/ref-id-manager.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"ref-id-manager.js","sourceRoot":"","sources":["../../src/utils/ref-id-manager.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAwLH,0CAKC;AA3LD,iDAAiD;AACpC,QAAA,UAAU,GAAG,MAAM,CAAC;AAYjC,MAAa,YAAY;IACf,IAAI,GAAoD,IAAI,GAAG,EAAE,CAAC;IAClE,QAAQ,GAAqC,IAAI,GAAG,EAAE,CAAC;IAE/D;;OAEG;IACH,WAAW,CACT,SAAiB,EACjB,QAAgB,EAChB,gBAAwB,EACxB,IAAY,EACZ,IAAa,EACb,OAAgB,EAChB,WAAoB;QAEpB,IAAI,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;YACvB,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACnD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,eAAe,GAAG,IAAI,GAAG,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO,EAAE,CAAC;QACV,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEvC,MAAM,KAAK,GAAG,OAAO,OAAO,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAa;YACtB,KAAK;YACL,gBAAgB;YAChB,IAAI;YACJ,IAAI;YACJ,OAAO;YACP,WAAW;YACX,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,SAAiB,EAAE,QAAgB,EAAE,KAAa;QACvD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,mBAAmB,CAAC,SAAiB,EAAE,QAAgB,EAAE,KAAa;QACpE,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACnE,CAAC;IAED,eAAe,CAAC,SAAiB,EAAE,QAAgB;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,eAAe,EAAE,CAAC;YACpB,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,SAAiB;QAChC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,aAAa,CAAC,SAAiB,EAAE,QAAgB;QAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,SAAiB,EAAE,QAAgB,EAAE,KAAa;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,kBAAU,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACH,WAAW,CACT,SAAiB,EACjB,QAAgB,EAChB,KAAa,EACb,eAAuB,EACvB,kBAA2B;QAE3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;QAE7D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,kBAAU,CAAC;QAE1D,gDAAgD;QAChD,IAAI,KAAK,CAAC,OAAO,IAAI,eAAe,EAAE,CAAC;YACrC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,eAAe,CAAC,WAAW,EAAE,EAAE,CAAC;gBAClE,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,kCAAkC,KAAK,CAAC,OAAO,aAAa,eAAe,GAAG;iBACvF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,yDAAyD;QACzD,IAAI,KAAK,CAAC,WAAW,IAAI,kBAAkB,EAAE,CAAC;YAC5C,MAAM,YAAY,GAAG,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC3D,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7D,IAAI,YAAY,IAAI,aAAa,IAAI,YAAY,KAAK,aAAa,EAAE,CAAC;gBACpE,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,mCAAmC,YAAY,gBAAgB,aAAa,MAAM;iBAC3F,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,sBAAsB,CACpB,SAAiB,EACjB,QAAgB,EAChB,WAAmB;QAEnB,gEAAgE;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC5D,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC,gBAAgB,CAAC;QAEzC,wDAAwD;QACxD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,WAAW,IAAI,KAAK,IAAI,UAAU;YAAE,OAAO,KAAK,CAAC;QAErG,0DAA0D;QAC1D,IAAI,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACpC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,IAAI,UAAU;gBAAE,OAAO,CAAC,CAAC;QAC9E,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AArKD,oCAqKC;AAED,IAAI,oBAAoB,GAAwB,IAAI,CAAC;AAErD,SAAgB,eAAe;IAC7B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,oBAAoB,GAAG,IAAI,YAAY,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,oBAAoB,CAAC;AAC9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-queue.d.ts","sourceRoot":"","sources":["../../src/utils/request-queue.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"request-queue.d.ts","sourceRoot":"","sources":["../../src/utils/request-queue.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,SAAS,CAAS;gBAEd,SAAS,EAAE,MAAM;IAI7B;;OAEG;IACH,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAW5C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;YACW,YAAY;IA6B1B,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED,KAAK,IAAI,IAAI;IAQb,YAAY,IAAI,MAAM;CAGvB;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAwC;IAEtD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY;IASzC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAI/D,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQpC,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC;CAUlE"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.RequestQueueManager = exports.RequestQueue = void 0;
|
|
8
|
+
const defaults_1 = require("../config/defaults");
|
|
8
9
|
class RequestQueue {
|
|
9
10
|
queue = [];
|
|
10
11
|
processingPromise = null;
|
|
@@ -42,7 +43,10 @@ class RequestQueue {
|
|
|
42
43
|
while (this.queue.length > 0) {
|
|
43
44
|
const item = this.queue.shift();
|
|
44
45
|
try {
|
|
45
|
-
const result = await
|
|
46
|
+
const result = await Promise.race([
|
|
47
|
+
item.fn(),
|
|
48
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error(`Queue item timed out after ${defaults_1.DEFAULT_QUEUE_ITEM_TIMEOUT_MS}ms`)), defaults_1.DEFAULT_QUEUE_ITEM_TIMEOUT_MS)),
|
|
49
|
+
]);
|
|
46
50
|
item.resolve(result);
|
|
47
51
|
}
|
|
48
52
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-queue.js","sourceRoot":"","sources":["../../src/utils/request-queue.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"request-queue.js","sourceRoot":"","sources":["../../src/utils/request-queue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Safe page.title() wrapper with timeout.
|
|
3
|
+
*
|
|
4
|
+
* page.title() internally calls page.evaluate(() => document.title),
|
|
5
|
+
* which can hang for up to 30s if the renderer is frozen or mid-navigation.
|
|
6
|
+
* This wrapper adds a short timeout and returns '' on failure.
|
|
7
|
+
*/
|
|
8
|
+
import type { Page } from 'puppeteer-core';
|
|
9
|
+
export declare function safeTitle(page: Page, timeoutMs?: number): Promise<string>;
|
|
10
|
+
//# sourceMappingURL=safe-title.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-title.d.ts","sourceRoot":"","sources":["../../src/utils/safe-title.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAG3C,wBAAsB,SAAS,CAC7B,IAAI,EAAE,IAAI,EACV,SAAS,GAAE,MAAsC,GAChD,OAAO,CAAC,MAAM,CAAC,CAYjB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Safe page.title() wrapper with timeout.
|
|
4
|
+
*
|
|
5
|
+
* page.title() internally calls page.evaluate(() => document.title),
|
|
6
|
+
* which can hang for up to 30s if the renderer is frozen or mid-navigation.
|
|
7
|
+
* This wrapper adds a short timeout and returns '' on failure.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.safeTitle = safeTitle;
|
|
11
|
+
const defaults_1 = require("../config/defaults");
|
|
12
|
+
async function safeTitle(page, timeoutMs = defaults_1.DEFAULT_SAFE_TITLE_TIMEOUT_MS) {
|
|
13
|
+
try {
|
|
14
|
+
const result = await Promise.race([
|
|
15
|
+
page.title(),
|
|
16
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error('title timeout')), timeoutMs)),
|
|
17
|
+
]);
|
|
18
|
+
return result;
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
return '';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=safe-title.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-title.js","sourceRoot":"","sources":["../../src/utils/safe-title.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAKH,8BAeC;AAjBD,iDAAmE;AAE5D,KAAK,UAAU,SAAS,CAC7B,IAAU,EACV,YAAoB,wCAA6B;IAEjD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAChC,IAAI,CAAC,KAAK,EAAE;YACZ,IAAI,OAAO,CAAS,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAChC,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,CAChE;SACF,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openchrome-mcp",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.6",
|
|
4
4
|
"description": "Open-source browser automation MCP server. Control your real Chrome from any AI agent.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -67,6 +67,9 @@
|
|
|
67
67
|
"uuid": "^9.0.0",
|
|
68
68
|
"write-file-atomic": "^5.0.1"
|
|
69
69
|
},
|
|
70
|
+
"optionalDependencies": {
|
|
71
|
+
"better-sqlite3": "^11.0.0"
|
|
72
|
+
},
|
|
70
73
|
"engines": {
|
|
71
74
|
"node": ">=18.0.0"
|
|
72
75
|
},
|