@reticlehq/server 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bridge-security.d.ts.map +1 -1
- package/dist/bridge-security.js +6 -1
- package/dist/bridge-security.js.map +1 -1
- package/dist/bridge.d.ts.map +1 -1
- package/dist/bridge.js +40 -3
- package/dist/bridge.js.map +1 -1
- package/dist/cli-launch.d.ts.map +1 -1
- package/dist/cli-launch.js +1 -2
- package/dist/cli-launch.js.map +1 -1
- package/dist/cli-verify.js +2 -2
- package/dist/cli-verify.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +15 -15
- package/dist/cli.js.map +1 -1
- package/dist/crawl/crawl.d.ts.map +1 -1
- package/dist/crawl/crawl.js +6 -3
- package/dist/crawl/crawl.js.map +1 -1
- package/dist/daemon.d.ts +26 -2
- package/dist/daemon.d.ts.map +1 -1
- package/dist/daemon.js +107 -7
- package/dist/daemon.js.map +1 -1
- package/dist/events/event-filters.d.ts +6 -0
- package/dist/events/event-filters.d.ts.map +1 -1
- package/dist/events/event-filters.js +19 -6
- package/dist/events/event-filters.js.map +1 -1
- package/dist/events/predicate-eval.d.ts.map +1 -1
- package/dist/events/predicate-eval.js +43 -1
- package/dist/events/predicate-eval.js.map +1 -1
- package/dist/events/predicate.d.ts.map +1 -1
- package/dist/events/predicate.js +20 -0
- package/dist/events/predicate.js.map +1 -1
- package/dist/events/ring-buffer.d.ts +9 -7
- package/dist/events/ring-buffer.d.ts.map +1 -1
- package/dist/events/ring-buffer.js +36 -23
- package/dist/events/ring-buffer.js.map +1 -1
- package/dist/flows/decision.d.ts.map +1 -1
- package/dist/flows/decision.js +2 -1
- package/dist/flows/decision.js.map +1 -1
- package/dist/flows/flow-classify.d.ts.map +1 -1
- package/dist/flows/flow-classify.js +4 -12
- package/dist/flows/flow-classify.js.map +1 -1
- package/dist/flows/flow-replay-run.d.ts +19 -1
- package/dist/flows/flow-replay-run.d.ts.map +1 -1
- package/dist/flows/flow-replay-run.js +46 -0
- package/dist/flows/flow-replay-run.js.map +1 -1
- package/dist/flows/flow-replay.d.ts.map +1 -1
- package/dist/flows/flow-replay.js +4 -5
- package/dist/flows/flow-replay.js.map +1 -1
- package/dist/flows/flow-report.d.ts.map +1 -1
- package/dist/flows/flow-report.js +2 -1
- package/dist/flows/flow-report.js.map +1 -1
- package/dist/flows/flow-scope.d.ts.map +1 -1
- package/dist/flows/flow-scope.js +3 -1
- package/dist/flows/flow-scope.js.map +1 -1
- package/dist/flows/flow-tools.d.ts.map +1 -1
- package/dist/flows/flow-tools.js +34 -148
- package/dist/flows/flow-tools.js.map +1 -1
- package/dist/flows/flows.d.ts +7 -0
- package/dist/flows/flows.d.ts.map +1 -1
- package/dist/flows/flows.js +43 -7
- package/dist/flows/flows.js.map +1 -1
- package/dist/flows/heal-run.d.ts +19 -0
- package/dist/flows/heal-run.d.ts.map +1 -0
- package/dist/flows/heal-run.js +137 -0
- package/dist/flows/heal-run.js.map +1 -0
- package/dist/flows/replay.d.ts +13 -0
- package/dist/flows/replay.d.ts.map +1 -1
- package/dist/flows/replay.js +23 -12
- package/dist/flows/replay.js.map +1 -1
- package/dist/http-server.d.ts +0 -4
- package/dist/http-server.d.ts.map +1 -1
- package/dist/http-server.js +1 -5
- package/dist/http-server.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -65
- package/dist/index.js.map +1 -1
- package/dist/init/mcp.d.ts.map +1 -1
- package/dist/init/mcp.js +4 -3
- package/dist/init/mcp.js.map +1 -1
- package/dist/init/snippets.js +2 -2
- package/dist/init/snippets.js.map +1 -1
- package/dist/input/network-mock-tools.d.ts.map +1 -1
- package/dist/input/network-mock-tools.js +1 -6
- package/dist/input/network-mock-tools.js.map +1 -1
- package/dist/input/viewport-tools.d.ts.map +1 -1
- package/dist/input/viewport-tools.js +1 -6
- package/dist/input/viewport-tools.js.map +1 -1
- package/dist/mcp-proxy.d.ts.map +1 -1
- package/dist/mcp-proxy.js +7 -2
- package/dist/mcp-proxy.js.map +1 -1
- package/dist/mcp.d.ts +8 -0
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +15 -2
- package/dist/mcp.js.map +1 -1
- package/dist/pool/playwright-launcher.d.ts +2 -2
- package/dist/pool/playwright-launcher.d.ts.map +1 -1
- package/dist/pool/playwright-launcher.js +11 -4
- package/dist/pool/playwright-launcher.js.map +1 -1
- package/dist/project/project-tools.d.ts.map +1 -1
- package/dist/project/project-tools.js +1 -6
- package/dist/project/project-tools.js.map +1 -1
- package/dist/server-version.d.ts +5 -0
- package/dist/server-version.d.ts.map +1 -1
- package/dist/server-version.js +5 -0
- package/dist/server-version.js.map +1 -1
- package/dist/session/live-control-tools.d.ts.map +1 -1
- package/dist/session/live-control-tools.js +1 -6
- package/dist/session/live-control-tools.js.map +1 -1
- package/dist/session/output-budget.d.ts.map +1 -1
- package/dist/session/output-budget.js +3 -1
- package/dist/session/output-budget.js.map +1 -1
- package/dist/session/session-health.d.ts +15 -0
- package/dist/session/session-health.d.ts.map +1 -1
- package/dist/session/session-health.js +13 -1
- package/dist/session/session-health.js.map +1 -1
- package/dist/session/session-manager.d.ts.map +1 -1
- package/dist/session/session-manager.js +2 -1
- package/dist/session/session-manager.js.map +1 -1
- package/dist/session/session.d.ts +6 -1
- package/dist/session/session.d.ts.map +1 -1
- package/dist/session/session.js +6 -2
- package/dist/session/session.js.map +1 -1
- package/dist/tools/act-tools.d.ts.map +1 -1
- package/dist/tools/act-tools.js +5 -0
- package/dist/tools/act-tools.js.map +1 -1
- package/dist/tools/assert-grade.d.ts.map +1 -1
- package/dist/tools/assert-grade.js +15 -26
- package/dist/tools/assert-grade.js.map +1 -1
- package/dist/tools/invoke-tool.d.ts.map +1 -1
- package/dist/tools/invoke-tool.js +13 -4
- package/dist/tools/invoke-tool.js.map +1 -1
- package/dist/tools/observe-tools.d.ts.map +1 -1
- package/dist/tools/observe-tools.js +25 -5
- package/dist/tools/observe-tools.js.map +1 -1
- package/dist/tools/profiles.d.ts.map +1 -1
- package/dist/tools/profiles.js +1 -0
- package/dist/tools/profiles.js.map +1 -1
- package/dist/tools/read-tools.d.ts.map +1 -1
- package/dist/tools/read-tools.js +65 -1
- package/dist/tools/read-tools.js.map +1 -1
- package/dist/tools/snapshot-delta.d.ts.map +1 -1
- package/dist/tools/snapshot-delta.js +0 -0
- package/dist/tools/snapshot-delta.js.map +1 -1
- package/dist/tools/tool-kit.d.ts +8 -0
- package/dist/tools/tool-kit.d.ts.map +1 -1
- package/dist/tools/tool-kit.js +13 -0
- package/dist/tools/tool-kit.js.map +1 -1
- package/dist/tools/tool-names.d.ts +2 -0
- package/dist/tools/tool-names.d.ts.map +1 -1
- package/dist/tools/tool-names.js +2 -0
- package/dist/tools/tool-names.js.map +1 -1
- package/dist/update/update-checker.d.ts +14 -1
- package/dist/update/update-checker.d.ts.map +1 -1
- package/dist/update/update-checker.js +9 -5
- package/dist/update/update-checker.js.map +1 -1
- package/dist/update/updater.d.ts +19 -1
- package/dist/update/updater.d.ts.map +1 -1
- package/dist/update/updater.js +47 -13
- package/dist/update/updater.js.map +1 -1
- package/dist/visual/visual-store.d.ts +3 -2
- package/dist/visual/visual-store.d.ts.map +1 -1
- package/dist/visual/visual-store.js +7 -2
- package/dist/visual/visual-store.js.map +1 -1
- package/dist/visual/visual-tools.d.ts.map +1 -1
- package/dist/visual/visual-tools.js +1 -6
- package/dist/visual/visual-tools.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-kit.d.ts","sourceRoot":"","sources":["../../src/tools/tool-kit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,cAAc,CAAC;IACzB,yGAAyG;IACzG,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,cAAc,CAAC;IAC3B,qDAAqD;IACrD,KAAK,EAAE,SAAS,CAAC;IACjB,kEAAkE;IAClE,WAAW,EAAE,eAAe,CAAC;IAC7B,wDAAwD;IACxD,OAAO,EAAE,YAAY,CAAC;IACtB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,qEAAqE;IACrE,EAAE,EAAE,cAAc,CAAC;IACnB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,GAAG,EAAE,MAAM,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC;IAC3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9E;AAED,eAAO,MAAM,cAAc;;CAO1B,CAAC;AAEF,4FAA4F;AAC5F,wBAAsB,cAAc,CAClC,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CAKlB;AAOD,+FAA+F;AAC/F,wBAAsB,YAAY,CAChC,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAM7C"}
|
|
1
|
+
{"version":3,"file":"tool-kit.d.ts","sourceRoot":"","sources":["../../src/tools/tool-kit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,cAAc,CAAC;IACzB,yGAAyG;IACzG,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,cAAc,CAAC;IAC3B,qDAAqD;IACrD,KAAK,EAAE,SAAS,CAAC;IACjB,kEAAkE;IAClE,WAAW,EAAE,eAAe,CAAC;IAC7B,wDAAwD;IACxD,OAAO,EAAE,YAAY,CAAC;IACtB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,iBAAiB,CAAC;IAC9B,qEAAqE;IACrE,EAAE,EAAE,cAAc,CAAC;IACnB,iEAAiE;IACjE,WAAW,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,GAAG,EAAE,MAAM,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC;IAC3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,WAAW,CAAC;IAC7B,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9E;AAED,eAAO,MAAM,cAAc;;CAO1B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,CAAC,CAAC,WAKpC,CAAC;AAEF,4FAA4F;AAC5F,wBAAsB,cAAc,CAClC,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,OAAO,CAAC,CAKlB;AAOD,+FAA+F;AAC/F,wBAAsB,YAAY,CAChC,IAAI,EAAE,QAAQ,EACd,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,CAM7C"}
|
package/dist/tools/tool-kit.js
CHANGED
|
@@ -13,6 +13,19 @@ export const sessionIdShape = {
|
|
|
13
13
|
.optional()
|
|
14
14
|
.describe('Active session ID from reticle_sessions. Omit when only one browser session is open — Reticle resolves it automatically.'),
|
|
15
15
|
};
|
|
16
|
+
/**
|
|
17
|
+
* Fields that `runTool` / `withControl` splice onto EVERY session-bound tool result at runtime
|
|
18
|
+
* (health, pool lease reminder, age cleanup nudge, and the delivered-once human-control envelope).
|
|
19
|
+
* They are declared here and merged into each session-bound tool's outputSchema so a schema-strict
|
|
20
|
+
* client (structuredContent validation) keeps them instead of silently dropping them — the `control`
|
|
21
|
+
* envelope is the human-in-the-loop guidance channel, so losing it is a safety failure, not cosmetic.
|
|
22
|
+
*/
|
|
23
|
+
export const sessionEnvelopeShape = {
|
|
24
|
+
session: z.unknown().optional(),
|
|
25
|
+
session_lease: z.unknown().optional(),
|
|
26
|
+
session_age_warning: z.unknown().optional(),
|
|
27
|
+
control: z.unknown().optional(),
|
|
28
|
+
};
|
|
16
29
|
/** Unwrap a browser command result or throw its error so the agent sees a clean failure. */
|
|
17
30
|
export async function commandOrThrow(deps, sessionId, name, args) {
|
|
18
31
|
const session = deps.sessions.resolve(sessionId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-kit.js","sourceRoot":"","sources":["../../src/tools/tool-kit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AA2CzD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,0HAA0H,CAC3H;CACJ,CAAC;AAEF,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAc,EACd,SAA6B,EAC7B,IAAY,EACZ,IAA6B;IAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,YAAY,IAAI,UAAU,CAAC,CAAC;IAC5E,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAOD,+FAA+F;AAC/F,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAc,EACd,SAA6B;IAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3F,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,iBAAiB,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAmB,CAAC;IACrD,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;AACrF,CAAC"}
|
|
1
|
+
{"version":3,"file":"tool-kit.js","sourceRoot":"","sources":["../../src/tools/tool-kit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AA2CzD,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,0HAA0H,CAC3H;CACJ,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IACjD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACrC,mBAAmB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC3C,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAChC,CAAC;AAEF,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAc,EACd,SAA6B,EAC7B,IAAY,EACZ,IAA6B;IAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,YAAY,IAAI,UAAU,CAAC,CAAC;IAC5E,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAOD,+FAA+F;AAC/F,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAc,EACd,SAA6B;IAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3F,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,iBAAiB,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAmB,CAAC;IACrD,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;AACrF,CAAC"}
|
|
@@ -23,12 +23,14 @@ export declare const ReticleTool: {
|
|
|
23
23
|
readonly NARRATE: "reticle_narrate";
|
|
24
24
|
readonly CLOCK: "reticle_clock";
|
|
25
25
|
readonly STATE: "reticle_state";
|
|
26
|
+
readonly STORAGE: "reticle_storage";
|
|
26
27
|
readonly CAPABILITIES: "reticle_capabilities";
|
|
27
28
|
readonly CONTRACT_SAVE: "reticle_contract_save";
|
|
28
29
|
readonly DOMAIN: "reticle_domain";
|
|
29
30
|
readonly FLOW_SAVE: "reticle_flow_save";
|
|
30
31
|
readonly FLOW_LIST: "reticle_flow_list";
|
|
31
32
|
readonly FLOW_LOAD: "reticle_flow_load";
|
|
33
|
+
readonly FLOW_DELETE: "reticle_flow_delete";
|
|
32
34
|
readonly FLOW_REPLAY: "reticle_flow_replay";
|
|
33
35
|
/** replay EVERY saved flow → one consolidated suite verdict + prioritized fixes (the loop closer). */
|
|
34
36
|
readonly FLOW_VERIFY: "reticle_flow_verify";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-names.d.ts","sourceRoot":"","sources":["../../src/tools/tool-names.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"tool-names.d.ts","sourceRoot":"","sources":["../../src/tools/tool-names.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiCtB,sGAAsG;;IAEtG,yDAAyD;;IAEzD,0EAA0E;;IAE1E,oFAAoF;;IAEpF,gFAAgF;;IAEhF,gFAAgF;;IAEhF,oFAAoF;;IAEpF,oGAAoG;;IAEpG,wFAAwF;;IAExF,qEAAqE;;IAErE,iFAAiF;;IAEjF,4EAA4E;;IAE5E,gGAAgG;;IAEhG,kGAAkG;;IAElG,iGAAiG;;IAEjG,8CAA8C;;IAE9C,iEAAiE;;IAEjE,iGAAiG;;IAEjG,uGAAuG;;IAEvG,mDAAmD;;IAEnD,uDAAuD;;IAEvD,iFAAiF;;IAEjF,4FAA4F;;IAE5F,uDAAuD;;IAEvD,oGAAoG;;IAEpG,2FAA2F;;IAE3F,kEAAkE;;CAE1D,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC"}
|
package/dist/tools/tool-names.js
CHANGED
|
@@ -23,12 +23,14 @@ export const ReticleTool = {
|
|
|
23
23
|
NARRATE: 'reticle_narrate',
|
|
24
24
|
CLOCK: 'reticle_clock',
|
|
25
25
|
STATE: 'reticle_state',
|
|
26
|
+
STORAGE: 'reticle_storage',
|
|
26
27
|
CAPABILITIES: 'reticle_capabilities',
|
|
27
28
|
CONTRACT_SAVE: 'reticle_contract_save',
|
|
28
29
|
DOMAIN: 'reticle_domain',
|
|
29
30
|
FLOW_SAVE: 'reticle_flow_save',
|
|
30
31
|
FLOW_LIST: 'reticle_flow_list',
|
|
31
32
|
FLOW_LOAD: 'reticle_flow_load',
|
|
33
|
+
FLOW_DELETE: 'reticle_flow_delete',
|
|
32
34
|
FLOW_REPLAY: 'reticle_flow_replay',
|
|
33
35
|
/** replay EVERY saved flow → one consolidated suite verdict + prioritized fixes (the loop closer). */
|
|
34
36
|
FLOW_VERIFY: 'reticle_flow_verify',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-names.js","sourceRoot":"","sources":["../../src/tools/tool-names.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,kBAAkB;IAC5B,QAAQ,EAAE,kBAAkB;IAC5B,KAAK,EAAE,eAAe;IACtB,OAAO,EAAE,iBAAiB;IAC1B,GAAG,EAAE,aAAa;IAClB,YAAY,EAAE,sBAAsB;IACpC,YAAY,EAAE,sBAAsB;IACpC,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,kBAAkB;IAC5B,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EAAE,iBAAiB;IAC1B,UAAU,EAAE,oBAAoB;IAChC,MAAM,EAAE,gBAAgB;IACxB,aAAa,EAAE,uBAAuB;IACtC,aAAa,EAAE,uBAAuB;IACtC,IAAI,EAAE,cAAc;IACpB,YAAY,EAAE,sBAAsB;IACpC,WAAW,EAAE,qBAAqB;IAClC,MAAM,EAAE,gBAAgB;IACxB,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EAAE,iBAAiB;IAC1B,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,eAAe;IACtB,YAAY,EAAE,sBAAsB;IACpC,aAAa,EAAE,uBAAuB;IACtC,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,mBAAmB;IAC9B,SAAS,EAAE,mBAAmB;IAC9B,SAAS,EAAE,mBAAmB;IAC9B,WAAW,EAAE,qBAAqB;IAClC,sGAAsG;IACtG,WAAW,EAAE,qBAAqB;IAClC,yDAAyD;IACzD,kBAAkB,EAAE,4BAA4B;IAChD,0EAA0E;IAC1E,SAAS,EAAE,mBAAmB;IAC9B,oFAAoF;IACpF,QAAQ,EAAE,kBAAkB;IAC5B,gFAAgF;IAChF,OAAO,EAAE,iBAAiB;IAC1B,gFAAgF;IAChF,UAAU,EAAE,oBAAoB;IAChC,oFAAoF;IACpF,UAAU,EAAE,oBAAoB;IAChC,oGAAoG;IACpG,YAAY,EAAE,sBAAsB;IACpC,wFAAwF;IACxF,QAAQ,EAAE,kBAAkB;IAC5B,qEAAqE;IACrE,WAAW,EAAE,qBAAqB;IAClC,iFAAiF;IACjF,KAAK,EAAE,eAAe;IACtB,4EAA4E;IAC5E,SAAS,EAAE,mBAAmB;IAC9B,gGAAgG;IAChG,OAAO,EAAE,iBAAiB;IAC1B,kGAAkG;IAClG,WAAW,EAAE,qBAAqB;IAClC,iGAAiG;IACjG,KAAK,EAAE,eAAe;IACtB,8CAA8C;IAC9C,MAAM,EAAE,gBAAgB;IACxB,iEAAiE;IACjE,QAAQ,EAAE,kBAAkB;IAC5B,iGAAiG;IACjG,MAAM,EAAE,gBAAgB;IACxB,uGAAuG;IACvG,UAAU,EAAE,oBAAoB;IAChC,mDAAmD;IACnD,QAAQ,EAAE,kBAAkB;IAC5B,uDAAuD;IACvD,OAAO,EAAE,iBAAiB;IAC1B,iFAAiF;IACjF,YAAY,EAAE,sBAAsB;IACpC,4FAA4F;IAC5F,YAAY,EAAE,sBAAsB;IACpC,uDAAuD;IACvD,QAAQ,EAAE,kBAAkB;IAC5B,oGAAoG;IACpG,UAAU,EAAE,oBAAoB;IAChC,2FAA2F;IAC3F,aAAa,EAAE,uBAAuB;IACtC,kEAAkE;IAClE,aAAa,EAAE,uBAAuB;CAC9B,CAAC"}
|
|
1
|
+
{"version":3,"file":"tool-names.js","sourceRoot":"","sources":["../../src/tools/tool-names.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE,kBAAkB;IAC5B,QAAQ,EAAE,kBAAkB;IAC5B,KAAK,EAAE,eAAe;IACtB,OAAO,EAAE,iBAAiB;IAC1B,GAAG,EAAE,aAAa;IAClB,YAAY,EAAE,sBAAsB;IACpC,YAAY,EAAE,sBAAsB;IACpC,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,kBAAkB;IAC5B,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EAAE,iBAAiB;IAC1B,UAAU,EAAE,oBAAoB;IAChC,MAAM,EAAE,gBAAgB;IACxB,aAAa,EAAE,uBAAuB;IACtC,aAAa,EAAE,uBAAuB;IACtC,IAAI,EAAE,cAAc;IACpB,YAAY,EAAE,sBAAsB;IACpC,WAAW,EAAE,qBAAqB;IAClC,MAAM,EAAE,gBAAgB;IACxB,OAAO,EAAE,iBAAiB;IAC1B,OAAO,EAAE,iBAAiB;IAC1B,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,eAAe;IACtB,OAAO,EAAE,iBAAiB;IAC1B,YAAY,EAAE,sBAAsB;IACpC,aAAa,EAAE,uBAAuB;IACtC,MAAM,EAAE,gBAAgB;IACxB,SAAS,EAAE,mBAAmB;IAC9B,SAAS,EAAE,mBAAmB;IAC9B,SAAS,EAAE,mBAAmB;IAC9B,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,qBAAqB;IAClC,sGAAsG;IACtG,WAAW,EAAE,qBAAqB;IAClC,yDAAyD;IACzD,kBAAkB,EAAE,4BAA4B;IAChD,0EAA0E;IAC1E,SAAS,EAAE,mBAAmB;IAC9B,oFAAoF;IACpF,QAAQ,EAAE,kBAAkB;IAC5B,gFAAgF;IAChF,OAAO,EAAE,iBAAiB;IAC1B,gFAAgF;IAChF,UAAU,EAAE,oBAAoB;IAChC,oFAAoF;IACpF,UAAU,EAAE,oBAAoB;IAChC,oGAAoG;IACpG,YAAY,EAAE,sBAAsB;IACpC,wFAAwF;IACxF,QAAQ,EAAE,kBAAkB;IAC5B,qEAAqE;IACrE,WAAW,EAAE,qBAAqB;IAClC,iFAAiF;IACjF,KAAK,EAAE,eAAe;IACtB,4EAA4E;IAC5E,SAAS,EAAE,mBAAmB;IAC9B,gGAAgG;IAChG,OAAO,EAAE,iBAAiB;IAC1B,kGAAkG;IAClG,WAAW,EAAE,qBAAqB;IAClC,iGAAiG;IACjG,KAAK,EAAE,eAAe;IACtB,8CAA8C;IAC9C,MAAM,EAAE,gBAAgB;IACxB,iEAAiE;IACjE,QAAQ,EAAE,kBAAkB;IAC5B,iGAAiG;IACjG,MAAM,EAAE,gBAAgB;IACxB,uGAAuG;IACvG,UAAU,EAAE,oBAAoB;IAChC,mDAAmD;IACnD,QAAQ,EAAE,kBAAkB;IAC5B,uDAAuD;IACvD,OAAO,EAAE,iBAAiB;IAC1B,iFAAiF;IACjF,YAAY,EAAE,sBAAsB;IACpC,4FAA4F;IAC5F,YAAY,EAAE,sBAAsB;IACpC,uDAAuD;IACvD,QAAQ,EAAE,kBAAkB;IAC5B,oGAAoG;IACpG,UAAU,EAAE,oBAAoB;IAChC,2FAA2F;IAC3F,aAAa,EAAE,uBAAuB;IACtC,kEAAkE;IAClE,aAAa,EAAE,uBAAuB;CAC9B,CAAC"}
|
|
@@ -8,13 +8,26 @@ interface UpdateManifest {
|
|
|
8
8
|
/** The version that was running before the last update — used for rollback. */
|
|
9
9
|
previousVersion?: string;
|
|
10
10
|
}
|
|
11
|
+
interface NpmPackageInfo {
|
|
12
|
+
version: string;
|
|
13
|
+
reticle?: {
|
|
14
|
+
changelog?: string;
|
|
15
|
+
breakingChanges?: string[];
|
|
16
|
+
};
|
|
17
|
+
}
|
|
11
18
|
export declare function loadManifest(): UpdateManifest | null;
|
|
12
19
|
export declare function saveManifest(manifest: UpdateManifest): void;
|
|
20
|
+
/** Injectable IO for checkForUpdate so the network + manifest cache are testable (default = real). */
|
|
21
|
+
export interface UpdateCheckPorts {
|
|
22
|
+
fetchInfo: () => Promise<NpmPackageInfo>;
|
|
23
|
+
loadManifest: () => UpdateManifest | null;
|
|
24
|
+
saveManifest: (manifest: UpdateManifest) => void;
|
|
25
|
+
}
|
|
13
26
|
/**
|
|
14
27
|
* Returns the current update manifest, refreshing from the npm registry when the cache
|
|
15
28
|
* is older than UpdateCheckIntervalMs. Never throws — falls back to the cached manifest
|
|
16
29
|
* (or a safe "no update" default) when the registry is unreachable.
|
|
17
30
|
*/
|
|
18
|
-
export declare function checkForUpdate(currentVersion: string, now: () => number): Promise<UpdateManifest>;
|
|
31
|
+
export declare function checkForUpdate(currentVersion: string, now: () => number, ports?: UpdateCheckPorts): Promise<UpdateManifest>;
|
|
19
32
|
export {};
|
|
20
33
|
//# sourceMappingURL=update-checker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-checker.d.ts","sourceRoot":"","sources":["../../src/update/update-checker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"update-checker.d.ts","sourceRoot":"","sources":["../../src/update/update-checker.ts"],"names":[],"mappings":"AAcA,UAAU,cAAc;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,+EAA+E;IAC/E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;KAC5B,CAAC;CACH;AAED,wBAAgB,YAAY,IAAI,cAAc,GAAG,IAAI,CAQpD;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAG3D;AAgCD,sGAAsG;AACtG,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,YAAY,EAAE,MAAM,cAAc,GAAG,IAAI,CAAC;IAC1C,YAAY,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,CAAC;CAClD;AAID;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,MAAM,MAAM,EACjB,KAAK,GAAE,gBAA+B,GACrC,OAAO,CAAC,cAAc,CAAC,CAiCzB"}
|
|
@@ -3,10 +3,13 @@ import * as https from 'node:https';
|
|
|
3
3
|
import { join } from 'node:path';
|
|
4
4
|
import { homedir } from 'node:os';
|
|
5
5
|
import { UpdateCheckIntervalMs } from '@reticlehq/core';
|
|
6
|
+
import { RETICLE_NPM_PACKAGE } from '../server-version.js';
|
|
6
7
|
import { log } from '../log.js';
|
|
7
8
|
const RETICLE_HOME = join(homedir(), '.reticle');
|
|
8
9
|
const MANIFEST_PATH = join(RETICLE_HOME, 'update-manifest.json');
|
|
9
|
-
|
|
10
|
+
// Poll the package that carries the bin (@reticlehq/server), so the version we compare against and
|
|
11
|
+
// the version we install are the same package — not @reticlehq/core, which only tracks it by luck.
|
|
12
|
+
const NPM_REGISTRY = `https://registry.npmjs.org/${RETICLE_NPM_PACKAGE}/latest`;
|
|
10
13
|
export function loadManifest() {
|
|
11
14
|
if (!fs.existsSync(MANIFEST_PATH))
|
|
12
15
|
return null;
|
|
@@ -51,18 +54,19 @@ function fetchNpmInfo() {
|
|
|
51
54
|
req.on('error', reject);
|
|
52
55
|
});
|
|
53
56
|
}
|
|
57
|
+
const defaultPorts = { fetchInfo: fetchNpmInfo, loadManifest, saveManifest };
|
|
54
58
|
/**
|
|
55
59
|
* Returns the current update manifest, refreshing from the npm registry when the cache
|
|
56
60
|
* is older than UpdateCheckIntervalMs. Never throws — falls back to the cached manifest
|
|
57
61
|
* (or a safe "no update" default) when the registry is unreachable.
|
|
58
62
|
*/
|
|
59
|
-
export async function checkForUpdate(currentVersion, now) {
|
|
60
|
-
const cached = loadManifest();
|
|
63
|
+
export async function checkForUpdate(currentVersion, now, ports = defaultPorts) {
|
|
64
|
+
const cached = ports.loadManifest();
|
|
61
65
|
if (cached !== null && cached.currentVersion === currentVersion && isCacheFresh(cached, now)) {
|
|
62
66
|
return cached;
|
|
63
67
|
}
|
|
64
68
|
try {
|
|
65
|
-
const info = await
|
|
69
|
+
const info = await ports.fetchInfo();
|
|
66
70
|
const updateAvailable = info.version !== currentVersion;
|
|
67
71
|
const manifest = {
|
|
68
72
|
currentVersion,
|
|
@@ -75,7 +79,7 @@ export async function checkForUpdate(currentVersion, now) {
|
|
|
75
79
|
: {}),
|
|
76
80
|
...(cached?.previousVersion !== undefined ? { previousVersion: cached.previousVersion } : {}),
|
|
77
81
|
};
|
|
78
|
-
saveManifest(manifest);
|
|
82
|
+
ports.saveManifest(manifest);
|
|
79
83
|
return manifest;
|
|
80
84
|
}
|
|
81
85
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-checker.js","sourceRoot":"","sources":["../../src/update/update-checker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AACjD,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;AACjE,MAAM,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"update-checker.js","sourceRoot":"","sources":["../../src/update/update-checker.ts"],"names":[],"mappings":"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"}
|
package/dist/update/updater.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** How this reticle process was launched — determines which npm strategy to use for updates. */
|
|
2
2
|
declare const ExecutionKind: {
|
|
3
|
-
/** Launched via `npx @reticlehq/
|
|
3
|
+
/** Launched via `npx @reticlehq/server` — npm re-resolves the package on restart. */
|
|
4
4
|
readonly NPX: "npx";
|
|
5
5
|
/** Installed globally via `npm install -g`. */
|
|
6
6
|
readonly GLOBAL: "global";
|
|
@@ -16,6 +16,24 @@ type ExecutionKind = (typeof ExecutionKind)[keyof typeof ExecutionKind];
|
|
|
16
16
|
* `node_modules` directory. Everything else is treated as a global install.
|
|
17
17
|
*/
|
|
18
18
|
export declare function detectExecutionKind(): ExecutionKind;
|
|
19
|
+
/**
|
|
20
|
+
* Classify a launch from the entry script path. Pure so it's testable. Global installs ALSO live under
|
|
21
|
+
* a `node_modules`, but under the npm global prefix — a `lib/node_modules` (unix: /usr/local, Homebrew,
|
|
22
|
+
* nvm) or AppData\npm (Windows). Match those FIRST, otherwise a global install is misread as local and
|
|
23
|
+
* `apply_update` npm-installs into the user's own project (polluting their package.json).
|
|
24
|
+
*/
|
|
25
|
+
export declare function classifyExecutionKind(script: string): ExecutionKind;
|
|
26
|
+
interface NpmInstall {
|
|
27
|
+
args: string[];
|
|
28
|
+
cwd?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* The npm argv (and optional cwd) that installs `version` for the given launch kind, or null for
|
|
32
|
+
* npx (which re-resolves the package on the next restart — no install needed). Installs
|
|
33
|
+
* `@reticlehq/server` — the package that actually carries the `reticle` bin — never
|
|
34
|
+
* `@reticlehq/core`, which is schema-only and has no executable.
|
|
35
|
+
*/
|
|
36
|
+
export declare function installArgs(version: string, kind: ExecutionKind, localRoot: string | null): NpmInstall | null;
|
|
19
37
|
/**
|
|
20
38
|
* Install targetVersion using the appropriate strategy for the detected execution kind,
|
|
21
39
|
* then exit so Claude Code restarts with the new binary. Saves the current version
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updater.d.ts","sourceRoot":"","sources":["../../src/update/updater.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"updater.d.ts","sourceRoot":"","sources":["../../src/update/updater.ts"],"names":[],"mappings":"AAWA,gGAAgG;AAChG,QAAA,MAAM,aAAa;IACjB,qFAAqF;;IAErF,+CAA+C;;IAE/C,+CAA+C;;CAEvC,CAAC;AACX,KAAK,aAAa,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,OAAO,aAAa,CAAC,CAAC;AAExE;;;;;;GAMG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,CAEnD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAenE;AAoCD,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,UAAU,GAAG,IAAI,CAOnB;AA8BD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWtE;AAED;;;GAGG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAc9C"}
|
package/dist/update/updater.js
CHANGED
|
@@ -3,12 +3,13 @@ import { existsSync } from 'node:fs';
|
|
|
3
3
|
import { platform } from 'node:os';
|
|
4
4
|
import { dirname, join } from 'node:path';
|
|
5
5
|
import { loadManifest, saveManifest } from './update-checker.js';
|
|
6
|
+
import { RETICLE_NPM_PACKAGE } from '../server-version.js';
|
|
6
7
|
import { log } from '../log.js';
|
|
7
8
|
const NPM_BIN = platform() === 'win32' ? 'npm.cmd' : 'npm';
|
|
8
9
|
const NPM_TIMEOUT_MS = 120_000;
|
|
9
10
|
/** How this reticle process was launched — determines which npm strategy to use for updates. */
|
|
10
11
|
const ExecutionKind = {
|
|
11
|
-
/** Launched via `npx @reticlehq/
|
|
12
|
+
/** Launched via `npx @reticlehq/server` — npm re-resolves the package on restart. */
|
|
12
13
|
NPX: 'npx',
|
|
13
14
|
/** Installed globally via `npm install -g`. */
|
|
14
15
|
GLOBAL: 'global',
|
|
@@ -23,9 +24,27 @@ const ExecutionKind = {
|
|
|
23
24
|
* `node_modules` directory. Everything else is treated as a global install.
|
|
24
25
|
*/
|
|
25
26
|
export function detectExecutionKind() {
|
|
26
|
-
|
|
27
|
+
return classifyExecutionKind(process.argv[1] ?? '');
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Classify a launch from the entry script path. Pure so it's testable. Global installs ALSO live under
|
|
31
|
+
* a `node_modules`, but under the npm global prefix — a `lib/node_modules` (unix: /usr/local, Homebrew,
|
|
32
|
+
* nvm) or AppData\npm (Windows). Match those FIRST, otherwise a global install is misread as local and
|
|
33
|
+
* `apply_update` npm-installs into the user's own project (polluting their package.json).
|
|
34
|
+
*/
|
|
35
|
+
export function classifyExecutionKind(script) {
|
|
27
36
|
if (script.includes('/_npx/') || script.includes('\\_npx\\'))
|
|
28
37
|
return ExecutionKind.NPX;
|
|
38
|
+
const globalSignals = [
|
|
39
|
+
'/lib/node_modules/',
|
|
40
|
+
'\\npm\\node_modules\\',
|
|
41
|
+
'/.nvm/',
|
|
42
|
+
'/homebrew/',
|
|
43
|
+
'/usr/local/',
|
|
44
|
+
'/usr/lib/',
|
|
45
|
+
];
|
|
46
|
+
if (globalSignals.some((s) => script.includes(s)))
|
|
47
|
+
return ExecutionKind.GLOBAL;
|
|
29
48
|
if (script.includes('/node_modules/') || script.includes('\\node_modules\\')) {
|
|
30
49
|
return ExecutionKind.LOCAL;
|
|
31
50
|
}
|
|
@@ -55,9 +74,25 @@ function runNpm(args, opts = {}) {
|
|
|
55
74
|
});
|
|
56
75
|
});
|
|
57
76
|
}
|
|
77
|
+
/**
|
|
78
|
+
* The npm argv (and optional cwd) that installs `version` for the given launch kind, or null for
|
|
79
|
+
* npx (which re-resolves the package on the next restart — no install needed). Installs
|
|
80
|
+
* `@reticlehq/server` — the package that actually carries the `reticle` bin — never
|
|
81
|
+
* `@reticlehq/core`, which is schema-only and has no executable.
|
|
82
|
+
*/
|
|
83
|
+
export function installArgs(version, kind, localRoot) {
|
|
84
|
+
if (kind === ExecutionKind.NPX)
|
|
85
|
+
return null;
|
|
86
|
+
const pkg = `${RETICLE_NPM_PACKAGE}@${version}`;
|
|
87
|
+
if (kind === ExecutionKind.LOCAL && localRoot !== null) {
|
|
88
|
+
return { args: ['install', pkg], cwd: localRoot };
|
|
89
|
+
}
|
|
90
|
+
return { args: ['install', '-g', pkg] };
|
|
91
|
+
}
|
|
58
92
|
async function installVersion(version, kind) {
|
|
59
|
-
const
|
|
60
|
-
|
|
93
|
+
const localRoot = kind === ExecutionKind.LOCAL ? findLocalProjectRoot() : null;
|
|
94
|
+
const plan = installArgs(version, kind, localRoot);
|
|
95
|
+
if (plan === null) {
|
|
61
96
|
// npx re-resolves the package from npm on the next Claude Code restart — no npm
|
|
62
97
|
// install needed. The restart itself is what triggers the update.
|
|
63
98
|
log('reticle_update_npx_strategy', {
|
|
@@ -65,16 +100,11 @@ async function installVersion(version, kind) {
|
|
|
65
100
|
});
|
|
66
101
|
return;
|
|
67
102
|
}
|
|
68
|
-
if (kind === ExecutionKind.LOCAL) {
|
|
69
|
-
|
|
70
|
-
if (root !== null) {
|
|
71
|
-
await runNpm(['install', pkg], { cwd: root });
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
// Could not find a project root — fall through to global install as a safe default
|
|
103
|
+
if (kind === ExecutionKind.LOCAL && localRoot === null) {
|
|
104
|
+
// Could not find a project root — fell back to a global install as a safe default.
|
|
75
105
|
log('reticle_update_local_no_root', { fallback: 'global' });
|
|
76
106
|
}
|
|
77
|
-
await runNpm(
|
|
107
|
+
await runNpm(plan.args, plan.cwd !== undefined ? { cwd: plan.cwd } : {});
|
|
78
108
|
}
|
|
79
109
|
async function installVersionRollback(version, kind) {
|
|
80
110
|
if (kind === ExecutionKind.NPX) {
|
|
@@ -115,6 +145,10 @@ export async function rollback() {
|
|
|
115
145
|
log('reticle_rollback_applying', { version: prev, executionKind: kind });
|
|
116
146
|
await installVersionRollback(prev, kind);
|
|
117
147
|
log('reticle_rollback_applied', { version: prev, executionKind: kind });
|
|
118
|
-
|
|
148
|
+
// For npx, exiting would let the next restart re-resolve @latest — rolling FORWARD, the opposite
|
|
149
|
+
// of rollback. installVersionRollback already told the user to pin the version in .mcp.json, so
|
|
150
|
+
// stay running rather than trigger that. Other kinds installed the old version and must restart.
|
|
151
|
+
if (kind !== ExecutionKind.NPX)
|
|
152
|
+
process.exit(0);
|
|
119
153
|
}
|
|
120
154
|
//# sourceMappingURL=updater.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../../src/update/updater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,MAAM,OAAO,GAAG,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAC3D,MAAM,cAAc,GAAG,OAAO,CAAC;AAE/B,gGAAgG;AAChG,MAAM,aAAa,GAAG;IACpB,
|
|
1
|
+
{"version":3,"file":"updater.js","sourceRoot":"","sources":["../../src/update/updater.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,10 @@ import type { FileSystemPort } from '../project/fs-port.js';
|
|
|
6
6
|
export declare class VisualStore {
|
|
7
7
|
#private;
|
|
8
8
|
constructor(fs: FileSystemPort, root: string);
|
|
9
|
-
/** The absolute baseline path for `name` (for echoing back to the agent).
|
|
9
|
+
/** The absolute baseline path for `name` (for echoing back to the agent). Guards the name so a
|
|
10
|
+
* crafted value can never echo a path outside .reticle/visual/ to a future caller that does IO. */
|
|
10
11
|
baselinePath(name: string): string;
|
|
11
|
-
/** The absolute overlay-diff path for `name`. */
|
|
12
|
+
/** The absolute overlay-diff path for `name`. Same name guard as baselinePath. */
|
|
12
13
|
diffPath(name: string): string;
|
|
13
14
|
/** True iff a valid name and a baseline PNG exists on disk. */
|
|
14
15
|
hasBaseline(name: string): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visual-store.d.ts","sourceRoot":"","sources":["../../src/visual/visual-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQ5D;;;GAGG;AACH,qBAAa,WAAW;;gBAIV,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM;IAK5C
|
|
1
|
+
{"version":3,"file":"visual-store.d.ts","sourceRoot":"","sources":["../../src/visual/visual-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQ5D;;;GAGG;AACH,qBAAa,WAAW;;gBAIV,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM;IAK5C;wGACoG;IACpG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAKlC,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAK9B,+DAA+D;IACzD,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKjD,qGAAqG;IAC/F,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAQlE,4FAA4F;IACtF,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAYjE,gGAAgG;IAC1F,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;CAO/D"}
|
|
@@ -10,12 +10,17 @@ export class VisualStore {
|
|
|
10
10
|
this.#fs = fs;
|
|
11
11
|
this.#root = root;
|
|
12
12
|
}
|
|
13
|
-
/** The absolute baseline path for `name` (for echoing back to the agent).
|
|
13
|
+
/** The absolute baseline path for `name` (for echoing back to the agent). Guards the name so a
|
|
14
|
+
* crafted value can never echo a path outside .reticle/visual/ to a future caller that does IO. */
|
|
14
15
|
baselinePath(name) {
|
|
16
|
+
if (!isValidFlowName(name))
|
|
17
|
+
throw new Error(`invalid visual baseline name: ${name}`);
|
|
15
18
|
return visualPath(this.#root, name);
|
|
16
19
|
}
|
|
17
|
-
/** The absolute overlay-diff path for `name`. */
|
|
20
|
+
/** The absolute overlay-diff path for `name`. Same name guard as baselinePath. */
|
|
18
21
|
diffPath(name) {
|
|
22
|
+
if (!isValidFlowName(name))
|
|
23
|
+
throw new Error(`invalid visual diff name: ${name}`);
|
|
19
24
|
return visualDiffPath(this.#root, name);
|
|
20
25
|
}
|
|
21
26
|
/** True iff a valid name and a baseline PNG exists on disk. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visual-store.js","sourceRoot":"","sources":["../../src/visual/visual-store.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,eAAe,EACf,cAAc,EACd,UAAU,GACX,MAAM,2BAA2B,CAAC;AAEnC;;;GAGG;AACH,MAAM,OAAO,WAAW;IACb,GAAG,CAAiB;IACpB,KAAK,CAAS;IAEvB,YAAY,EAAkB,EAAE,IAAY;QAC1C,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"visual-store.js","sourceRoot":"","sources":["../../src/visual/visual-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visual-tools.d.ts","sourceRoot":"","sources":["../../src/visual/visual-tools.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"visual-tools.d.ts","sourceRoot":"","sources":["../../src/visual/visual-tools.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAY,MAAM,mBAAmB,CAAC;AAuE3D;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,OAAO,EA+GjC,CAAC"}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { ReticleCommand, VISUAL_NO_PROVIDER_RECOMMENDATION, VisualReason } from '@reticlehq/core';
|
|
3
3
|
import { ReticleTool } from '../tools/tool-names.js';
|
|
4
|
+
import { sessionIdShape } from '../tools/tool-kit.js';
|
|
4
5
|
import { asNumber, asRecord, asString } from '../tools/tools-helpers.js';
|
|
5
6
|
import { diffPng } from './visual-diff.js';
|
|
6
7
|
import { VisualStore } from './visual-store.js';
|
|
7
|
-
const sessionIdShape = {
|
|
8
|
-
sessionId: z
|
|
9
|
-
.string()
|
|
10
|
-
.optional()
|
|
11
|
-
.describe('Active session ID from reticle_sessions. Omit when only one browser session is open.'),
|
|
12
|
-
};
|
|
13
8
|
const rectShape = z.object({
|
|
14
9
|
x: z.number(),
|
|
15
10
|
y: z.number(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"visual-tools.js","sourceRoot":"","sources":["../../src/visual/visual-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,iCAAiC,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EAAE,OAAO,EAAmB,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIhD,MAAM,
|
|
1
|
+
{"version":3,"file":"visual-tools.js","sourceRoot":"","sources":["../../src/visual/visual-tools.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reticlehq/server",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Reticle bridge + MCP server. Hosts the browser WS endpoint and exposes MCP tools to the coding agent.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"@modelcontextprotocol/sdk": "^1.13.0",
|
|
22
22
|
"ws": "^8.18.0",
|
|
23
23
|
"zod": "^3.24.1",
|
|
24
|
-
"@reticlehq/core": "2.
|
|
24
|
+
"@reticlehq/core": "2.1.0"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/pngjs": "^6.0.5",
|