@venos-inc/venos 0.1.1 → 0.1.3

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.
Files changed (119) hide show
  1. package/README.md +5 -2
  2. package/dist/index.js +37 -34
  3. package/etc/mcp-server/bin.js +0 -0
  4. package/etc/mcp-server/node_modules/@eslint/eslintrc/node_modules/.bin/js-yaml +7 -2
  5. package/etc/mcp-server/node_modules/@eslint-community/eslint-utils/node_modules/.bin/eslint +7 -2
  6. package/etc/mcp-server/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/eslint +2 -2
  7. package/etc/mcp-server/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/tsc +2 -2
  8. package/etc/mcp-server/node_modules/@typescript-eslint/eslint-plugin/node_modules/.bin/tsserver +2 -2
  9. package/etc/mcp-server/node_modules/@typescript-eslint/parser/node_modules/.bin/eslint +2 -2
  10. package/etc/mcp-server/node_modules/@typescript-eslint/parser/node_modules/.bin/tsc +2 -2
  11. package/etc/mcp-server/node_modules/@typescript-eslint/parser/node_modules/.bin/tsserver +2 -2
  12. package/etc/mcp-server/node_modules/@typescript-eslint/project-service/node_modules/.bin/tsc +2 -2
  13. package/etc/mcp-server/node_modules/@typescript-eslint/project-service/node_modules/.bin/tsserver +2 -2
  14. package/etc/mcp-server/node_modules/@typescript-eslint/tsconfig-utils/node_modules/.bin/tsc +2 -2
  15. package/etc/mcp-server/node_modules/@typescript-eslint/tsconfig-utils/node_modules/.bin/tsserver +2 -2
  16. package/etc/mcp-server/node_modules/@typescript-eslint/type-utils/node_modules/.bin/eslint +2 -2
  17. package/etc/mcp-server/node_modules/@typescript-eslint/type-utils/node_modules/.bin/tsc +2 -2
  18. package/etc/mcp-server/node_modules/@typescript-eslint/type-utils/node_modules/.bin/tsserver +2 -2
  19. package/etc/mcp-server/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/semver +4 -4
  20. package/etc/mcp-server/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/tsc +4 -4
  21. package/etc/mcp-server/node_modules/@typescript-eslint/typescript-estree/node_modules/.bin/tsserver +4 -4
  22. package/etc/mcp-server/node_modules/@typescript-eslint/utils/node_modules/.bin/eslint +2 -2
  23. package/etc/mcp-server/node_modules/@typescript-eslint/utils/node_modules/.bin/tsc +2 -2
  24. package/etc/mcp-server/node_modules/@typescript-eslint/utils/node_modules/.bin/tsserver +2 -2
  25. package/etc/mcp-server/node_modules/@vitest/mocker/node_modules/.bin/vite +4 -4
  26. package/etc/mcp-server/node_modules/acorn/bin/acorn +0 -0
  27. package/etc/mcp-server/node_modules/acorn-jsx/node_modules/.bin/acorn +7 -2
  28. package/etc/mcp-server/node_modules/ajv/scripts/info +0 -0
  29. package/etc/mcp-server/node_modules/ajv/scripts/prepare-tests +0 -0
  30. package/etc/mcp-server/node_modules/ajv/scripts/publish-built-version +0 -0
  31. package/etc/mcp-server/node_modules/ajv/scripts/travis-gh-pages +0 -0
  32. package/etc/mcp-server/node_modules/cross-spawn/node_modules/.bin/node-which +7 -2
  33. package/etc/mcp-server/node_modules/esbuild/bin/esbuild +0 -0
  34. package/etc/mcp-server/node_modules/esbuild/node_modules/.bin/esbuild +0 -5
  35. package/etc/mcp-server/node_modules/eslint/bin/eslint.js +0 -0
  36. package/etc/mcp-server/node_modules/espree/node_modules/.bin/acorn +7 -2
  37. package/etc/mcp-server/node_modules/esrecurse/package.json +0 -0
  38. package/etc/mcp-server/node_modules/fast-xml-parser/src/cli/cli.js +0 -0
  39. package/etc/mcp-server/node_modules/fast-xml-parser/src/v6/OptionsBuilder.js +0 -0
  40. package/etc/mcp-server/node_modules/fast-xml-parser/src/v6/XMLParser.js +0 -0
  41. package/etc/mcp-server/node_modules/jiti/lib/jiti-cli.mjs +0 -0
  42. package/etc/mcp-server/node_modules/js-yaml/bin/js-yaml.js +0 -0
  43. package/etc/mcp-server/node_modules/nanoid/bin/nanoid.cjs +0 -0
  44. package/etc/mcp-server/node_modules/node-addon-api/tools/conversion.js +0 -0
  45. package/etc/mcp-server/node_modules/postcss/node_modules/.bin/nanoid +4 -4
  46. package/etc/mcp-server/node_modules/rollup/dist/bin/rollup +0 -0
  47. package/etc/mcp-server/node_modules/semver/bin/semver.js +0 -0
  48. package/etc/mcp-server/node_modules/sharp/node_modules/.bin/semver +4 -4
  49. package/etc/mcp-server/node_modules/ts-api-utils/node_modules/.bin/tsc +2 -2
  50. package/etc/mcp-server/node_modules/ts-api-utils/node_modules/.bin/tsserver +2 -2
  51. package/etc/mcp-server/node_modules/typescript/bin/tsc +0 -0
  52. package/etc/mcp-server/node_modules/typescript/bin/tsserver +0 -0
  53. package/etc/mcp-server/node_modules/typescript-eslint/node_modules/.bin/eslint +2 -2
  54. package/etc/mcp-server/node_modules/typescript-eslint/node_modules/.bin/tsc +2 -2
  55. package/etc/mcp-server/node_modules/typescript-eslint/node_modules/.bin/tsserver +2 -2
  56. package/etc/mcp-server/node_modules/uri-js/LICENSE +0 -0
  57. package/etc/mcp-server/node_modules/uri-js/README.md +0 -0
  58. package/etc/mcp-server/node_modules/uri-js/dist/es5/uri.all.d.ts +0 -0
  59. package/etc/mcp-server/node_modules/uri-js/dist/es5/uri.all.js +0 -0
  60. package/etc/mcp-server/node_modules/uri-js/dist/es5/uri.all.js.map +0 -0
  61. package/etc/mcp-server/node_modules/uri-js/dist/es5/uri.all.min.d.ts +0 -0
  62. package/etc/mcp-server/node_modules/uri-js/dist/es5/uri.all.min.js +0 -0
  63. package/etc/mcp-server/node_modules/uri-js/dist/es5/uri.all.min.js.map +0 -0
  64. package/etc/mcp-server/node_modules/uri-js/dist/esnext/index.d.ts +0 -0
  65. package/etc/mcp-server/node_modules/uri-js/dist/esnext/index.js +0 -0
  66. package/etc/mcp-server/node_modules/uri-js/dist/esnext/index.js.map +0 -0
  67. package/etc/mcp-server/node_modules/uri-js/dist/esnext/regexps-iri.d.ts +0 -0
  68. package/etc/mcp-server/node_modules/uri-js/dist/esnext/regexps-iri.js +0 -0
  69. package/etc/mcp-server/node_modules/uri-js/dist/esnext/regexps-iri.js.map +0 -0
  70. package/etc/mcp-server/node_modules/uri-js/dist/esnext/regexps-uri.d.ts +0 -0
  71. package/etc/mcp-server/node_modules/uri-js/dist/esnext/regexps-uri.js +0 -0
  72. package/etc/mcp-server/node_modules/uri-js/dist/esnext/regexps-uri.js.map +0 -0
  73. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/http.d.ts +0 -0
  74. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/http.js +0 -0
  75. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/http.js.map +0 -0
  76. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/https.d.ts +0 -0
  77. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/https.js +0 -0
  78. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/https.js.map +0 -0
  79. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/mailto.d.ts +0 -0
  80. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/mailto.js +0 -0
  81. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/mailto.js.map +0 -0
  82. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/urn-uuid.d.ts +0 -0
  83. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js +0 -0
  84. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/urn-uuid.js.map +0 -0
  85. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/urn.d.ts +0 -0
  86. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/urn.js +0 -0
  87. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/urn.js.map +0 -0
  88. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/ws.d.ts +0 -0
  89. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/ws.js +0 -0
  90. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/ws.js.map +0 -0
  91. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/wss.d.ts +0 -0
  92. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/wss.js +0 -0
  93. package/etc/mcp-server/node_modules/uri-js/dist/esnext/schemes/wss.js.map +0 -0
  94. package/etc/mcp-server/node_modules/uri-js/dist/esnext/uri.d.ts +0 -0
  95. package/etc/mcp-server/node_modules/uri-js/dist/esnext/uri.js +0 -0
  96. package/etc/mcp-server/node_modules/uri-js/dist/esnext/uri.js.map +0 -0
  97. package/etc/mcp-server/node_modules/uri-js/dist/esnext/util.d.ts +0 -0
  98. package/etc/mcp-server/node_modules/uri-js/dist/esnext/util.js +0 -0
  99. package/etc/mcp-server/node_modules/uri-js/dist/esnext/util.js.map +0 -0
  100. package/etc/mcp-server/node_modules/uri-js/package.json +0 -0
  101. package/etc/mcp-server/node_modules/uri-js/yarn.lock +0 -0
  102. package/etc/mcp-server/node_modules/vite/bin/vite.js +0 -0
  103. package/etc/mcp-server/node_modules/vite/node_modules/.bin/esbuild +3 -3
  104. package/etc/mcp-server/node_modules/vite/node_modules/.bin/rollup +4 -4
  105. package/etc/mcp-server/node_modules/vite-node/node_modules/.bin/vite +4 -4
  106. package/etc/mcp-server/node_modules/vite-node/vite-node.mjs +0 -0
  107. package/etc/mcp-server/node_modules/vitest/node_modules/.bin/vite +4 -4
  108. package/etc/mcp-server/node_modules/vitest/node_modules/.bin/vite-node +4 -4
  109. package/etc/mcp-server/node_modules/vitest/node_modules/.bin/why-is-node-running +4 -4
  110. package/etc/mcp-server/node_modules/vitest/vitest.mjs +0 -0
  111. package/etc/mcp-server/node_modules/which/bin/node-which +0 -0
  112. package/etc/mcp-server/node_modules/why-is-node-running/cli.js +0 -0
  113. package/package.json +11 -12
  114. package/etc/mcp-server/node_modules/acorn/node_modules/.bin/acorn +0 -17
  115. package/etc/mcp-server/node_modules/eslint/node_modules/.bin/eslint +0 -17
  116. package/etc/mcp-server/node_modules/fast-xml-parser/node_modules/.bin/fxparser +0 -17
  117. package/etc/mcp-server/node_modules/jiti/node_modules/.bin/jiti +0 -17
  118. package/etc/mcp-server/node_modules/js-yaml/node_modules/.bin/js-yaml +0 -17
  119. package/etc/mcp-server/node_modules/which/node_modules/.bin/node-which +0 -17
package/README.md CHANGED
@@ -24,13 +24,15 @@ components ship inside the package — there is nothing else to download.
24
24
  ## 2. Connect your AI clients
25
25
 
26
26
  ```bash
27
- venos init --orchestrator https://gateway.your-org.venos.ai --api-key venos_xxx
27
+ venos init --orchestrator https://gateway.your-org.venos.ai --api-key venos_xxx --org org-xxxxxxxx
28
28
  ```
29
29
 
30
30
  `venos init` detects the AI clients installed on your machine and wires each one
31
31
  to the gateway. It is safe to re-run; it only adds what is missing. The API key
32
32
  (issued to you by venos) is stored in `~/.venos/config.json` and sent on every
33
- request — re-running without `--api-key` keeps the stored key.
33
+ request — re-running without `--api-key` keeps the stored key. On a hosted
34
+ gateway always pass `--org` with the org id your key is bound to: the gateway
35
+ rejects events whose org does not match the key.
34
36
 
35
37
  Options:
36
38
 
@@ -38,6 +40,7 @@ Options:
38
40
  |---|---|
39
41
  | `--orchestrator <url>` | Gateway base URL (default `http://127.0.0.1:8788`) |
40
42
  | `--api-key <key>` | Per-customer API key (`venos_*`) for the hosted gateway |
43
+ | `--org <orgId>` | Tenant org id to pin (use the org your API key is bound to) |
41
44
  | `--json` | Emit machine-readable JSON instead of the human summary |
42
45
  | `--no-telemetry` | Skip the activation ping |
43
46
  | `--remove` | Undo `init` — remove the venos entry from every wired client and delete `~/.venos/config.json`. Pre-venos backups are preserved. |
package/dist/index.js CHANGED
@@ -1,52 +1,53 @@
1
1
  #!/usr/bin/env node
2
- import{existsSync as rr,mkdirSync as yt,readFileSync as vt,rmSync as wt,writeFileSync as St}from"node:fs";import{dirname as xt,join as Ct}from"node:path";import{randomBytes as kt}from"node:crypto";import{existsSync as wr,readFileSync as Sr}from"node:fs";import{join as xr}from"node:path";import{copyFileSync as pr,existsSync as Q,mkdirSync as gr,renameSync as hr,writeFileSync as yr}from"node:fs";import{dirname as vr}from"node:path";var ee=".venos-backup";function d(e,r){gr(vr(e),{recursive:!0}),Q(e)&&!Q(e+ee)&&pr(e,e+ee);let t=e+".tmp";yr(t,r,{mode:420}),hr(t,e)}function m(e){return JSON.stringify(e,null,2)+`
3
- `}var w="http://127.0.0.1:4000/v1";var ne="venos";function R(e){return(e??[]).some(r=>r.hooks.some(t=>typeof t.command=="string"&&t.command.includes(ne)))}function re(e,r){let t=e??[];return R(t)?t:[...t,{matcher:"*",hooks:[{type:"command",command:r}]}]}function te(e){return(e??[]).map(r=>({...r,hooks:r.hooks.filter(t=>typeof t.command!="string"||!t.command.includes(ne))})).filter(r=>r.hooks.length>0)}var U={name:"claude-code",transport:"claude-hook",configPath(e){return xr(e,".claude","settings.json")},isInstalled(e){return!0},load(e){if(!wr(e))return{};try{return JSON.parse(Sr(e,"utf8"))}catch{return{}}},isWired(e){return R(e.hooks?.PreToolUse)&&R(e.hooks?.PostToolUse)},inject(e,r){let t=e.hooks??{};return{...e,hooks:{...t,PreToolUse:re(t.PreToolUse,r.hookCommand),PostToolUse:re(t.PostToolUse,r.hookCommand)}}},remove(e){return e.hooks?{...e,hooks:{...e.hooks,PreToolUse:te(e.hooks.PreToolUse),PostToolUse:te(e.hooks.PostToolUse)}}:e},write(e,r){d(e,m(r))}};import{existsSync as S,readFileSync as Cr}from"node:fs";import{join as E}from"node:path";function oe(e){let r=e.mcpServers?.venos;if(!r||r.command!=="node")return!1;let t=r.args?.[0];return!t||t.includes("/A2A/")?!1:S(t)}var I={name:"cursor",transport:"mcp-json",configPath(e){return E(e,".cursor","mcp.json")},isInstalled(e){let r=E(e,".cursor");return S(r)?S(E(r,"mcp.json"))||S(E(r,"extensions")):!1},load(e){if(!S(e))return{};try{return JSON.parse(Cr(e,"utf8"))}catch{return{}}},isWired(e){return oe(e)},inject(e,r){return oe(e)?e:{...e,mcpServers:{...e.mcpServers??{},venos:{command:"node",args:[r.mcpServerPath],env:{VENOS_URL:r.orchestratorUrl,VENOS_ORG_ID:r.orgId,...r.apiKey?{VENOS_API_KEY:r.apiKey}:{}}}}}},remove(e){if(!e.mcpServers?.venos)return e;let{venos:r,...t}=e.mcpServers;return{...e,mcpServers:t}},write(e,r){d(e,m(r))}};import{existsSync as M,readFileSync as $r}from"node:fs";import{join as de}from"node:path";function kr(e,r){let t=e.slice(0,r).split(/\r\n|\n|\r/g);return[t.length,t.pop().length+1]}function Or(e,r,t){let n=e.split(/\r\n|\n|\r/g),o="",i=(Math.log10(r+1)|0)+1;for(let s=r-1;s<=r+1;s++){let a=n[s-1];a&&(o+=s.toString().padEnd(i," "),o+=": ",o+=a,o+=`
2
+ import{existsSync as tr,mkdirSync as vt,readFileSync as wt,rmSync as St,writeFileSync as xt}from"node:fs";import{dirname as Ct,join as kt}from"node:path";import{randomBytes as Ot}from"node:crypto";import{existsSync as Sr,readFileSync as xr}from"node:fs";import{join as Cr}from"node:path";import{copyFileSync as gr,existsSync as ee,mkdirSync as hr,renameSync as yr,writeFileSync as vr}from"node:fs";import{dirname as wr}from"node:path";var re=".venos-backup";function d(e,r){hr(wr(e),{recursive:!0}),ee(e)&&!ee(e+re)&&gr(e,e+re);let t=e+".tmp";vr(t,r,{mode:420}),yr(t,e)}function m(e){return JSON.stringify(e,null,2)+`
3
+ `}var w="http://127.0.0.1:4000/v1";var oe="venos";function U(e){return(e??[]).some(r=>r.hooks.some(t=>typeof t.command=="string"&&t.command.includes(oe)))}function te(e,r){let t=e??[];return U(t)?t:[...t,{matcher:"*",hooks:[{type:"command",command:r}]}]}function ne(e){return(e??[]).map(r=>({...r,hooks:r.hooks.filter(t=>typeof t.command!="string"||!t.command.includes(oe))})).filter(r=>r.hooks.length>0)}var j={name:"claude-code",transport:"claude-hook",configPath(e){return Cr(e,".claude","settings.json")},isInstalled(e){return!0},load(e){if(!Sr(e))return{};try{return JSON.parse(xr(e,"utf8"))}catch{return{}}},isWired(e){return U(e.hooks?.PreToolUse)&&U(e.hooks?.PostToolUse)},inject(e,r){let t=e.hooks??{};return{...e,hooks:{...t,PreToolUse:te(t.PreToolUse,r.hookCommand),PostToolUse:te(t.PostToolUse,r.hookCommand)}}},remove(e){return e.hooks?{...e,hooks:{...e.hooks,PreToolUse:ne(e.hooks.PreToolUse),PostToolUse:ne(e.hooks.PostToolUse)}}:e},write(e,r){d(e,m(r))}};import{existsSync as S,readFileSync as kr}from"node:fs";import{join as E}from"node:path";function ie(e){let r=e.mcpServers?.venos;if(!r||r.command!=="node")return!1;let t=r.args?.[0];return!t||t.includes("/A2A/")?!1:S(t)}var W={name:"cursor",transport:"mcp-json",configPath(e){return E(e,".cursor","mcp.json")},isInstalled(e){let r=E(e,".cursor");return S(r)?S(E(r,"mcp.json"))||S(E(r,"extensions")):!1},load(e){if(!S(e))return{};try{return JSON.parse(kr(e,"utf8"))}catch{return{}}},isWired(e){return ie(e)},inject(e,r){return ie(e)?e:{...e,mcpServers:{...e.mcpServers??{},venos:{command:"node",args:[r.mcpServerPath],env:{VENOS_URL:r.orchestratorUrl,VENOS_ORG_ID:r.orgId,...r.apiKey?{VENOS_API_KEY:r.apiKey}:{}}}}}},remove(e){if(!e.mcpServers?.venos)return e;let{venos:r,...t}=e.mcpServers;return{...e,mcpServers:t}},write(e,r){d(e,m(r))}};import{existsSync as L,readFileSync as Vr}from"node:fs";import{join as me}from"node:path";function Or(e,r){let t=e.slice(0,r).split(/\r\n|\n|\r/g);return[t.length,t.pop().length+1]}function Er(e,r,t){let n=e.split(/\r\n|\n|\r/g),o="",i=(Math.log10(r+1)|0)+1;for(let s=r-1;s<=r+1;s++){let a=n[s-1];a&&(o+=s.toString().padEnd(i," "),o+=": ",o+=a,o+=`
4
4
  `,s===r&&(o+=" ".repeat(i+t+2),o+=`^
5
- `))}return o}var u=class extends Error{line;column;codeblock;constructor(r,t){let[n,o]=kr(t.toml,t.ptr),i=Or(t.toml,n,o);super(`Invalid TOML document: ${r}
5
+ `))}return o}var u=class extends Error{line;column;codeblock;constructor(r,t){let[n,o]=Or(t.toml,t.ptr),i=Er(t.toml,n,o);super(`Invalid TOML document: ${r}
6
6
 
7
- ${i}`,t),this.line=n,this.column=o,this.codeblock=i}};function Er(e,r){let t=0;for(;e[r-++t]==="\\";);return--t&&t%2}function P(e,r=0,t=e.length){let n=e.indexOf(`
7
+ ${i}`,t),this.line=n,this.column=o,this.codeblock=i}};function Pr(e,r){let t=0;for(;e[r-++t]==="\\";);return--t&&t%2}function P(e,r=0,t=e.length){let n=e.indexOf(`
8
8
  `,r);return e[n-1]==="\r"&&n--,n<=t?n:-1}function y(e,r){for(let t=r;t<e.length;t++){let n=e[t];if(n===`
9
9
  `)return t;if(n==="\r"&&e[t+1]===`
10
10
  `)return t+1;if(n<" "&&n!==" "||n==="\x7F")throw new u("control characters are not allowed in comments",{toml:e,ptr:r})}return e.length}function g(e,r,t,n){let o;for(;;){for(;(o=e[r])===" "||o===" "||!t&&(o===`
11
11
  `||o==="\r"&&e[r+1]===`
12
- `);)r++;if(n||o!=="#")break;r=y(e,r)}return r}function ie(e,r,t,n,o=!1){if(!n)return r=P(e,r),r<0?e.length:r;for(let i=r;i<e.length;i++){let s=e[i];if(s==="#")i=P(e,i);else{if(s===t)return i+1;if(s===n||o&&(s===`
12
+ `);)r++;if(n||o!=="#")break;r=y(e,r)}return r}function se(e,r,t,n,o=!1){if(!n)return r=P(e,r),r<0?e.length:r;for(let i=r;i<e.length;i++){let s=e[i];if(s==="#")i=P(e,i);else{if(s===t)return i+1;if(s===n||o&&(s===`
13
13
  `||s==="\r"&&e[i+1]===`
14
- `))return i}}throw new u("cannot find end of structure",{toml:e,ptr:r})}function b(e,r){let t=e[r],n=t===e[r+1]&&e[r+1]===e[r+2]?e.slice(r,r+3):t;r+=n.length-1;do r=e.indexOf(n,++r);while(r>-1&&t!=="'"&&Er(e,r));return r>-1&&(r+=n.length,n.length>1&&(e[r]===t&&r++,e[r]===t&&r++)),r}var Pr=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i,x=class e extends Date{#r=!1;#t=!1;#e=null;constructor(r){let t=!0,n=!0,o="Z";if(typeof r=="string"){let i=r.match(Pr);i?(i[1]||(t=!1,r=`0000-01-01T${r}`),n=!!i[2],n&&r[10]===" "&&(r=r.replace(" ","T")),i[2]&&+i[2]>23?r="":(o=i[3]||null,r=r.toUpperCase(),!o&&n&&(r+="Z"))):r=""}super(r),isNaN(this.getTime())||(this.#r=t,this.#t=n,this.#e=o)}isDateTime(){return this.#r&&this.#t}isLocal(){return!this.#r||!this.#t||!this.#e}isDate(){return this.#r&&!this.#t}isTime(){return this.#t&&!this.#r}isValid(){return this.#r||this.#t}toISOString(){let r=super.toISOString();if(this.isDate())return r.slice(0,10);if(this.isTime())return r.slice(11,23);if(this.#e===null)return r.slice(0,-1);if(this.#e==="Z")return r;let t=+this.#e.slice(1,3)*60+ +this.#e.slice(4,6);return t=this.#e[0]==="-"?t:-t,new Date(this.getTime()-t*6e4).toISOString().slice(0,-1)+this.#e}static wrapAsOffsetDateTime(r,t="Z"){let n=new e(r);return n.#e=t,n}static wrapAsLocalDateTime(r){let t=new e(r);return t.#e=null,t}static wrapAsLocalDate(r){let t=new e(r);return t.#t=!1,t.#e=null,t}static wrapAsLocalTime(r){let t=new e(r);return t.#r=!1,t.#e=null,t}};var br=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,Tr=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,_r=/^[+-]?0[0-9_]/,Ar=/^[0-9a-f]{2,8}$/i,se={b:"\b",t:" ",n:`
14
+ `))return i}}throw new u("cannot find end of structure",{toml:e,ptr:r})}function b(e,r){let t=e[r],n=t===e[r+1]&&e[r+1]===e[r+2]?e.slice(r,r+3):t;r+=n.length-1;do r=e.indexOf(n,++r);while(r>-1&&t!=="'"&&Pr(e,r));return r>-1&&(r+=n.length,n.length>1&&(e[r]===t&&r++,e[r]===t&&r++)),r}var br=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i,x=class e extends Date{#r=!1;#t=!1;#e=null;constructor(r){let t=!0,n=!0,o="Z";if(typeof r=="string"){let i=r.match(br);i?(i[1]||(t=!1,r=`0000-01-01T${r}`),n=!!i[2],n&&r[10]===" "&&(r=r.replace(" ","T")),i[2]&&+i[2]>23?r="":(o=i[3]||null,r=r.toUpperCase(),!o&&n&&(r+="Z"))):r=""}super(r),isNaN(this.getTime())||(this.#r=t,this.#t=n,this.#e=o)}isDateTime(){return this.#r&&this.#t}isLocal(){return!this.#r||!this.#t||!this.#e}isDate(){return this.#r&&!this.#t}isTime(){return this.#t&&!this.#r}isValid(){return this.#r||this.#t}toISOString(){let r=super.toISOString();if(this.isDate())return r.slice(0,10);if(this.isTime())return r.slice(11,23);if(this.#e===null)return r.slice(0,-1);if(this.#e==="Z")return r;let t=+this.#e.slice(1,3)*60+ +this.#e.slice(4,6);return t=this.#e[0]==="-"?t:-t,new Date(this.getTime()-t*6e4).toISOString().slice(0,-1)+this.#e}static wrapAsOffsetDateTime(r,t="Z"){let n=new e(r);return n.#e=t,n}static wrapAsLocalDateTime(r){let t=new e(r);return t.#e=null,t}static wrapAsLocalDate(r){let t=new e(r);return t.#t=!1,t.#e=null,t}static wrapAsLocalTime(r){let t=new e(r);return t.#r=!1,t.#e=null,t}};var Tr=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,_r=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,Ar=/^[+-]?0[0-9_]/,Rr=/^[0-9a-f]{2,8}$/i,ae={b:"\b",t:" ",n:`
15
15
  `,f:"\f",r:"\r",e:"\x1B",'"':'"',"\\":"\\"};function T(e,r=0,t=e.length){let n=e[r]==="'",o=e[r++]===e[r]&&e[r]===e[r+1];o&&(t-=2,e[r+=2]==="\r"&&r++,e[r]===`
16
16
  `&&r++);let i=0,s,a="",l=r;for(;r<t-1;){let c=e[r++];if(c===`
17
17
  `||c==="\r"&&e[r]===`
18
- `){if(!o)throw new u("newlines are not allowed in strings",{toml:e,ptr:r-1})}else if(c<" "&&c!==" "||c==="\x7F")throw new u("control characters are not allowed in strings",{toml:e,ptr:r-1});if(s){if(s=!1,c==="x"||c==="u"||c==="U"){let f=e.slice(r,r+=c==="x"?2:c==="u"?4:8);if(!Ar.test(f))throw new u("invalid unicode escape",{toml:e,ptr:i});try{a+=String.fromCodePoint(parseInt(f,16))}catch{throw new u("invalid unicode escape",{toml:e,ptr:i})}}else if(o&&(c===`
18
+ `){if(!o)throw new u("newlines are not allowed in strings",{toml:e,ptr:r-1})}else if(c<" "&&c!==" "||c==="\x7F")throw new u("control characters are not allowed in strings",{toml:e,ptr:r-1});if(s){if(s=!1,c==="x"||c==="u"||c==="U"){let f=e.slice(r,r+=c==="x"?2:c==="u"?4:8);if(!Rr.test(f))throw new u("invalid unicode escape",{toml:e,ptr:i});try{a+=String.fromCodePoint(parseInt(f,16))}catch{throw new u("invalid unicode escape",{toml:e,ptr:i})}}else if(o&&(c===`
19
19
  `||c===" "||c===" "||c==="\r")){if(r=g(e,r-1,!0),e[r]!==`
20
- `&&e[r]!=="\r")throw new u("invalid escape: only line-ending whitespace may be escaped",{toml:e,ptr:i});r=g(e,r)}else if(c in se)a+=se[c];else throw new u("unrecognized escape sequence",{toml:e,ptr:i});l=r}else!n&&c==="\\"&&(i=r-1,s=!0,a+=e.slice(l,i))}return a+e.slice(l,t-1)}function ae(e,r,t,n){if(e==="true")return!0;if(e==="false")return!1;if(e==="-inf")return-1/0;if(e==="inf"||e==="+inf")return 1/0;if(e==="nan"||e==="+nan"||e==="-nan")return NaN;if(e==="-0")return n?0n:0;let o=br.test(e);if(o||Tr.test(e)){if(_r.test(e))throw new u("leading zeroes are not allowed",{toml:r,ptr:t});e=e.replace(/_/g,"");let s=+e;if(isNaN(s))throw new u("invalid number",{toml:r,ptr:t});if(o){if((o=!Number.isSafeInteger(s))&&!n)throw new u("integer value cannot be represented losslessly",{toml:r,ptr:t});(o||n===!0)&&(s=BigInt(e))}return s}let i=new x(e);if(!i.isValid())throw new u("invalid value",{toml:r,ptr:t});return i}function Rr(e,r,t){let n=e.slice(r,t),o=n.indexOf("#");return o>-1&&(y(e,o),n=n.slice(0,o)),[n.trimEnd(),o]}function C(e,r,t,n,o){if(n===0)throw new u("document contains excessively nested structures. aborting.",{toml:e,ptr:r});let i=e[r];if(i==="["||i==="{"){let[l,c]=i==="["?le(e,r,n,o):ce(e,r,n,o);if(t){if(c=g(e,c),e[c]===",")c++;else if(e[c]!==t)throw new u("expected comma or end of structure",{toml:e,ptr:c})}return[l,c]}let s;if(i==='"'||i==="'"){s=b(e,r);let l=T(e,r,s);if(t){if(s=g(e,s),e[s]&&e[s]!==","&&e[s]!==t&&e[s]!==`
21
- `&&e[s]!=="\r")throw new u("unexpected character encountered",{toml:e,ptr:s});s+=+(e[s]===",")}return[l,s]}s=ie(e,r,",",t);let a=Rr(e,r,s-+(e[s-1]===","));if(!a[0])throw new u("incomplete key-value declaration: no value specified",{toml:e,ptr:r});return t&&a[1]>-1&&(s=g(e,r+a[1]),s+=+(e[s]===",")),[ae(a[0],e,r,o),s]}var Ur=/^[a-zA-Z0-9-_]+[ \t]*$/;function _(e,r,t="="){let n=r-1,o=[],i=e.indexOf(t,r);if(i<0)throw new u("incomplete key-value: cannot find end of key",{toml:e,ptr:r});do{let s=e[r=++n];if(s!==" "&&s!==" ")if(s==='"'||s==="'"){if(s===e[r+1]&&s===e[r+2])throw new u("multiline strings are not allowed in keys",{toml:e,ptr:r});let a=b(e,r);if(a<0)throw new u("unfinished string encountered",{toml:e,ptr:r});n=e.indexOf(".",a);let l=e.slice(a,n<0||n>i?i:n),c=P(l);if(c>-1)throw new u("newlines are not allowed in keys",{toml:e,ptr:r+n+c});if(l.trimStart())throw new u("found extra tokens after the string part",{toml:e,ptr:a});if(i<a&&(i=e.indexOf(t,a),i<0))throw new u("incomplete key-value: cannot find end of key",{toml:e,ptr:r});o.push(T(e,r,a))}else{n=e.indexOf(".",r);let a=e.slice(r,n<0||n>i?i:n);if(!Ur.test(a))throw new u("only letter, numbers, dashes and underscores are allowed in keys",{toml:e,ptr:r});o.push(a.trimEnd())}}while(n+1&&n<i);return[o,g(e,i+1,!0,!0)]}function ce(e,r,t,n){let o={},i=new Set,s;for(r++;(s=e[r++])!=="}"&&s;){if(s===",")throw new u("expected value, found comma",{toml:e,ptr:r-1});if(s==="#")r=y(e,r);else if(s!==" "&&s!==" "&&s!==`
22
- `&&s!=="\r"){let a,l=o,c=!1,[f,p]=_(e,r-1);for(let O=0;O<f.length;O++){if(O&&(l=c?l[a]:l[a]={}),a=f[O],(c=Object.hasOwn(l,a))&&(typeof l[a]!="object"||i.has(l[a])))throw new u("trying to redefine an already defined value",{toml:e,ptr:r});!c&&a==="__proto__"&&Object.defineProperty(l,a,{enumerable:!0,configurable:!0,writable:!0})}if(c)throw new u("trying to redefine an already defined value",{toml:e,ptr:r});let[h,mr]=C(e,p,"}",t-1,n);i.add(h),l[a]=h,r=mr}}if(!s)throw new u("unfinished table encountered",{toml:e,ptr:r});return[o,r]}function le(e,r,t,n){let o=[],i;for(r++;(i=e[r++])!=="]"&&i;){if(i===",")throw new u("expected value, found comma",{toml:e,ptr:r-1});if(i==="#")r=y(e,r);else if(i!==" "&&i!==" "&&i!==`
23
- `&&i!=="\r"){let s=C(e,r-1,"]",t-1,n);o.push(s[0]),r=s[1]}}if(!i)throw new u("unfinished array encountered",{toml:e,ptr:r});return[o,r]}function ue(e,r,t,n){let o=r,i=t,s,a=!1,l;for(let c=0;c<e.length;c++){if(c){if(o=a?o[s]:o[s]={},i=(l=i[s]).c,n===0&&(l.t===1||l.t===2))return null;if(l.t===2){let f=o.length-1;o=o[f],i=i[f].c}}if(s=e[c],(a=Object.hasOwn(o,s))&&i[s]?.t===0&&i[s]?.d)return null;a||(s==="__proto__"&&(Object.defineProperty(o,s,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(i,s,{enumerable:!0,configurable:!0,writable:!0})),i[s]={t:c<e.length-1&&n===2?3:n,d:!1,i:0,c:{}})}if(l=i[s],l.t!==n&&!(n===1&&l.t===3)||(n===2&&(l.d||(l.d=!0,o[s]=[]),o[s].push(o={}),l.c[l.i++]=l={t:1,d:!1,i:0,c:{}}),l.d))return null;if(l.d=!0,n===1)o=a?o[s]:o[s]={};else if(n===0&&a)return null;return[s,o,l.c]}function j(e,{maxDepth:r=1e3,integersAsBigInt:t}={}){let n={},o={},i=n,s=o;for(let a=g(e,0);a<e.length;){if(e[a]==="["){let l=e[++a]==="[",c=_(e,a+=+l,"]");if(l){if(e[c[1]-1]!=="]")throw new u("expected end of table declaration",{toml:e,ptr:c[1]-1});c[1]++}let f=ue(c[0],n,o,l?2:1);if(!f)throw new u("trying to redefine an already defined table or value",{toml:e,ptr:a});s=f[2],i=f[1],a=c[1]}else{let l=_(e,a),c=ue(l[0],i,s,0);if(!c)throw new u("trying to redefine an already defined table or value",{toml:e,ptr:a});let f=C(e,l[1],void 0,r,t);c[1][c[0]]=f[0],a=f[1]}if(a=g(e,a,!0),e[a]&&e[a]!==`
24
- `&&e[a]!=="\r")throw new u("each key-value declaration must be followed by an end-of-line",{toml:e,ptr:a});a=g(e,a)}return n}var fe=/^[a-z0-9-_]+$/i;function k(e){let r=typeof e;if(r==="object"){if(Array.isArray(e))return"array";if(e instanceof Date)return"date"}return r}function Ir(e){for(let r=0;r<e.length;r++)if(k(e[r])!=="object")return!1;return e.length!=0}function W(e){return JSON.stringify(e).replace(/\x7f/g,"\\u007f")}function N(e,r,t,n){if(t===0)throw new Error("Could not stringify the object: maximum object depth exceeded");if(r==="number")return isNaN(e)?"nan":e===1/0?"inf":e===-1/0?"-inf":n&&Number.isInteger(e)?e.toFixed(1):e.toString();if(r==="bigint"||r==="boolean")return e.toString();if(r==="string")return W(e);if(r==="date"){if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString()}if(r==="object")return jr(e,t,n);if(r==="array")return Wr(e,t,n)}function jr(e,r,t){let n=Object.keys(e);if(n.length===0)return"{}";let o="{ ";for(let i=0;i<n.length;i++){let s=n[i];i&&(o+=", "),o+=fe.test(s)?s:W(s),o+=" = ",o+=N(e[s],k(e[s]),r-1,t)}return o+" }"}function Wr(e,r,t){if(e.length===0)return"[]";let n="[ ";for(let o=0;o<e.length;o++){if(o&&(n+=", "),e[o]===null||e[o]===void 0)throw new TypeError("arrays cannot contain null or undefined values");n+=N(e[o],k(e[o]),r-1,t)}return n+" ]"}function Nr(e,r,t,n){if(t===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let o="";for(let i=0;i<e.length;i++)o+=`${o&&`
20
+ `&&e[r]!=="\r")throw new u("invalid escape: only line-ending whitespace may be escaped",{toml:e,ptr:i});r=g(e,r)}else if(c in ae)a+=ae[c];else throw new u("unrecognized escape sequence",{toml:e,ptr:i});l=r}else!n&&c==="\\"&&(i=r-1,s=!0,a+=e.slice(l,i))}return a+e.slice(l,t-1)}function ce(e,r,t,n){if(e==="true")return!0;if(e==="false")return!1;if(e==="-inf")return-1/0;if(e==="inf"||e==="+inf")return 1/0;if(e==="nan"||e==="+nan"||e==="-nan")return NaN;if(e==="-0")return n?0n:0;let o=Tr.test(e);if(o||_r.test(e)){if(Ar.test(e))throw new u("leading zeroes are not allowed",{toml:r,ptr:t});e=e.replace(/_/g,"");let s=+e;if(isNaN(s))throw new u("invalid number",{toml:r,ptr:t});if(o){if((o=!Number.isSafeInteger(s))&&!n)throw new u("integer value cannot be represented losslessly",{toml:r,ptr:t});(o||n===!0)&&(s=BigInt(e))}return s}let i=new x(e);if(!i.isValid())throw new u("invalid value",{toml:r,ptr:t});return i}function Ir(e,r,t){let n=e.slice(r,t),o=n.indexOf("#");return o>-1&&(y(e,o),n=n.slice(0,o)),[n.trimEnd(),o]}function C(e,r,t,n,o){if(n===0)throw new u("document contains excessively nested structures. aborting.",{toml:e,ptr:r});let i=e[r];if(i==="["||i==="{"){let[l,c]=i==="["?ue(e,r,n,o):le(e,r,n,o);if(t){if(c=g(e,c),e[c]===",")c++;else if(e[c]!==t)throw new u("expected comma or end of structure",{toml:e,ptr:c})}return[l,c]}let s;if(i==='"'||i==="'"){s=b(e,r);let l=T(e,r,s);if(t){if(s=g(e,s),e[s]&&e[s]!==","&&e[s]!==t&&e[s]!==`
21
+ `&&e[s]!=="\r")throw new u("unexpected character encountered",{toml:e,ptr:s});s+=+(e[s]===",")}return[l,s]}s=se(e,r,",",t);let a=Ir(e,r,s-+(e[s-1]===","));if(!a[0])throw new u("incomplete key-value declaration: no value specified",{toml:e,ptr:r});return t&&a[1]>-1&&(s=g(e,r+a[1]),s+=+(e[s]===",")),[ce(a[0],e,r,o),s]}var Ur=/^[a-zA-Z0-9-_]+[ \t]*$/;function _(e,r,t="="){let n=r-1,o=[],i=e.indexOf(t,r);if(i<0)throw new u("incomplete key-value: cannot find end of key",{toml:e,ptr:r});do{let s=e[r=++n];if(s!==" "&&s!==" ")if(s==='"'||s==="'"){if(s===e[r+1]&&s===e[r+2])throw new u("multiline strings are not allowed in keys",{toml:e,ptr:r});let a=b(e,r);if(a<0)throw new u("unfinished string encountered",{toml:e,ptr:r});n=e.indexOf(".",a);let l=e.slice(a,n<0||n>i?i:n),c=P(l);if(c>-1)throw new u("newlines are not allowed in keys",{toml:e,ptr:r+n+c});if(l.trimStart())throw new u("found extra tokens after the string part",{toml:e,ptr:a});if(i<a&&(i=e.indexOf(t,a),i<0))throw new u("incomplete key-value: cannot find end of key",{toml:e,ptr:r});o.push(T(e,r,a))}else{n=e.indexOf(".",r);let a=e.slice(r,n<0||n>i?i:n);if(!Ur.test(a))throw new u("only letter, numbers, dashes and underscores are allowed in keys",{toml:e,ptr:r});o.push(a.trimEnd())}}while(n+1&&n<i);return[o,g(e,i+1,!0,!0)]}function le(e,r,t,n){let o={},i=new Set,s;for(r++;(s=e[r++])!=="}"&&s;){if(s===",")throw new u("expected value, found comma",{toml:e,ptr:r-1});if(s==="#")r=y(e,r);else if(s!==" "&&s!==" "&&s!==`
22
+ `&&s!=="\r"){let a,l=o,c=!1,[f,p]=_(e,r-1);for(let O=0;O<f.length;O++){if(O&&(l=c?l[a]:l[a]={}),a=f[O],(c=Object.hasOwn(l,a))&&(typeof l[a]!="object"||i.has(l[a])))throw new u("trying to redefine an already defined value",{toml:e,ptr:r});!c&&a==="__proto__"&&Object.defineProperty(l,a,{enumerable:!0,configurable:!0,writable:!0})}if(c)throw new u("trying to redefine an already defined value",{toml:e,ptr:r});let[h,pr]=C(e,p,"}",t-1,n);i.add(h),l[a]=h,r=pr}}if(!s)throw new u("unfinished table encountered",{toml:e,ptr:r});return[o,r]}function ue(e,r,t,n){let o=[],i;for(r++;(i=e[r++])!=="]"&&i;){if(i===",")throw new u("expected value, found comma",{toml:e,ptr:r-1});if(i==="#")r=y(e,r);else if(i!==" "&&i!==" "&&i!==`
23
+ `&&i!=="\r"){let s=C(e,r-1,"]",t-1,n);o.push(s[0]),r=s[1]}}if(!i)throw new u("unfinished array encountered",{toml:e,ptr:r});return[o,r]}function fe(e,r,t,n){let o=r,i=t,s,a=!1,l;for(let c=0;c<e.length;c++){if(c){if(o=a?o[s]:o[s]={},i=(l=i[s]).c,n===0&&(l.t===1||l.t===2))return null;if(l.t===2){let f=o.length-1;o=o[f],i=i[f].c}}if(s=e[c],(a=Object.hasOwn(o,s))&&i[s]?.t===0&&i[s]?.d)return null;a||(s==="__proto__"&&(Object.defineProperty(o,s,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(i,s,{enumerable:!0,configurable:!0,writable:!0})),i[s]={t:c<e.length-1&&n===2?3:n,d:!1,i:0,c:{}})}if(l=i[s],l.t!==n&&!(n===1&&l.t===3)||(n===2&&(l.d||(l.d=!0,o[s]=[]),o[s].push(o={}),l.c[l.i++]=l={t:1,d:!1,i:0,c:{}}),l.d))return null;if(l.d=!0,n===1)o=a?o[s]:o[s]={};else if(n===0&&a)return null;return[s,o,l.c]}function N(e,{maxDepth:r=1e3,integersAsBigInt:t}={}){let n={},o={},i=n,s=o;for(let a=g(e,0);a<e.length;){if(e[a]==="["){let l=e[++a]==="[",c=_(e,a+=+l,"]");if(l){if(e[c[1]-1]!=="]")throw new u("expected end of table declaration",{toml:e,ptr:c[1]-1});c[1]++}let f=fe(c[0],n,o,l?2:1);if(!f)throw new u("trying to redefine an already defined table or value",{toml:e,ptr:a});s=f[2],i=f[1],a=c[1]}else{let l=_(e,a),c=fe(l[0],i,s,0);if(!c)throw new u("trying to redefine an already defined table or value",{toml:e,ptr:a});let f=C(e,l[1],void 0,r,t);c[1][c[0]]=f[0],a=f[1]}if(a=g(e,a,!0),e[a]&&e[a]!==`
24
+ `&&e[a]!=="\r")throw new u("each key-value declaration must be followed by an end-of-line",{toml:e,ptr:a});a=g(e,a)}return n}var de=/^[a-z0-9-_]+$/i;function k(e){let r=typeof e;if(r==="object"){if(Array.isArray(e))return"array";if(e instanceof Date)return"date"}return r}function jr(e){for(let r=0;r<e.length;r++)if(k(e[r])!=="object")return!1;return e.length!=0}function $(e){return JSON.stringify(e).replace(/\x7f/g,"\\u007f")}function V(e,r,t,n){if(t===0)throw new Error("Could not stringify the object: maximum object depth exceeded");if(r==="number")return isNaN(e)?"nan":e===1/0?"inf":e===-1/0?"-inf":n&&Number.isInteger(e)?e.toFixed(1):e.toString();if(r==="bigint"||r==="boolean")return e.toString();if(r==="string")return $(e);if(r==="date"){if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString()}if(r==="object")return Wr(e,t,n);if(r==="array")return Nr(e,t,n)}function Wr(e,r,t){let n=Object.keys(e);if(n.length===0)return"{}";let o="{ ";for(let i=0;i<n.length;i++){let s=n[i];i&&(o+=", "),o+=de.test(s)?s:$(s),o+=" = ",o+=V(e[s],k(e[s]),r-1,t)}return o+" }"}function Nr(e,r,t){if(e.length===0)return"[]";let n="[ ";for(let o=0;o<e.length;o++){if(o&&(n+=", "),e[o]===null||e[o]===void 0)throw new TypeError("arrays cannot contain null or undefined values");n+=V(e[o],k(e[o]),r-1,t)}return n+" ]"}function $r(e,r,t,n){if(t===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let o="";for(let i=0;i<e.length;i++)o+=`${o&&`
25
25
  `}[[${r}]]
26
- `,o+=$(0,e[i],r,t,n);return o}function $(e,r,t,n,o){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let i="",s="",a=Object.keys(r);for(let l=0;l<a.length;l++){let c=a[l];if(r[c]!==null&&r[c]!==void 0){let f=k(r[c]);if(f==="symbol"||f==="function")throw new TypeError(`cannot serialize values of type '${f}'`);let p=fe.test(c)?c:W(c);if(f==="array"&&Ir(r[c]))s+=(s&&`
27
- `)+Nr(r[c],t?`${t}.${p}`:p,n-1,o);else if(f==="object"){let h=t?`${t}.${p}`:p;s+=(s&&`
28
- `)+$(h,r[c],h,n-1,o)}else i+=p,i+=" = ",i+=N(r[c],f,n,o),i+=`
26
+ `,o+=M(0,e[i],r,t,n);return o}function M(e,r,t,n,o){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let i="",s="",a=Object.keys(r);for(let l=0;l<a.length;l++){let c=a[l];if(r[c]!==null&&r[c]!==void 0){let f=k(r[c]);if(f==="symbol"||f==="function")throw new TypeError(`cannot serialize values of type '${f}'`);let p=de.test(c)?c:$(c);if(f==="array"&&jr(r[c]))s+=(s&&`
27
+ `)+$r(r[c],t?`${t}.${p}`:p,n-1,o);else if(f==="object"){let h=t?`${t}.${p}`:p;s+=(s&&`
28
+ `)+M(h,r[c],h,n-1,o)}else i+=p,i+=" = ",i+=V(r[c],f,n,o),i+=`
29
29
  `}}return e&&(i||!s)&&(i=i?`[${e}]
30
30
  ${i}`:`[${e}]`),i&&s?`${i}
31
- ${s}`:i||s}function V(e,{maxDepth:r=1e3,numbersAsFloat:t=!1}={}){if(k(e)!=="object")throw new TypeError("stringify can only be called with an object");let n=$(0,e,"",r,t);return n[n.length-1]!==`
31
+ ${s}`:i||s}function J(e,{maxDepth:r=1e3,numbersAsFloat:t=!1}={}){if(k(e)!=="object")throw new TypeError("stringify can only be called with an object");let n=M(0,e,"",r,t);return n[n.length-1]!==`
32
32
  `?n+`
33
- `:n}function me(e){let r=e.mcp_servers?.venos;if(!r||r.command!=="node")return!1;let t=r.args?.[0];return!t||t.includes("/A2A/")?!1:M(t)}var pe={name:"codex",transport:"mcp-toml",configPath(e){return de(e,".codex","config.toml")},isInstalled(e){return M(de(e,".codex"))},load(e){if(!M(e))return{};try{return j($r(e,"utf8"))}catch{return{}}},isWired(e){return me(e)},inject(e,r){return me(e)?e:{...e,mcp_servers:{...e.mcp_servers??{},venos:{command:"node",args:[r.mcpServerPath],env:{VENOS_URL:r.orchestratorUrl,VENOS_ORG_ID:r.orgId,...r.apiKey?{VENOS_API_KEY:r.apiKey}:{},VENOS_SOURCE:"codex"}}}}},remove(e){if(!e.mcp_servers?.venos)return e;let{venos:r,...t}=e.mcp_servers;return{...e,mcp_servers:t}},write(e,r){d(e,V(r)+`
34
- `)}};import{existsSync as ge,readFileSync as Vr}from"node:fs";import{join as he}from"node:path";var we="venos";function J(e){return(e??[]).some(r=>r.hooks.some(t=>typeof t.command=="string"&&t.command.includes(we)))}function ye(e,r){let t=e??[];return J(t)?t:[...t,{matcher:"*",hooks:[{type:"command",command:r}]}]}function ve(e){return(e??[]).map(r=>({...r,hooks:r.hooks.filter(t=>typeof t.command!="string"||!t.command.includes(we))})).filter(r=>r.hooks.length>0)}function Mr(e){return`${e.hookCommand} --source codex`}var Se={name:"codex-hook",transport:"claude-hook",configPath(e){return he(e,".codex","hooks.json")},isInstalled(e){return ge(he(e,".codex"))},load(e){if(!ge(e))return{};try{return JSON.parse(Vr(e,"utf8"))}catch{return{}}},isWired(e){return J(e.hooks?.PreToolUse)&&J(e.hooks?.PostToolUse)},inject(e,r){let t=e.hooks??{},n=Mr(r);return{...e,hooks:{...t,PreToolUse:ye(t.PreToolUse,n),PostToolUse:ye(t.PostToolUse,n)}}},remove(e){return e.hooks?{...e,hooks:{...e.hooks,PreToolUse:ve(e.hooks.PreToolUse),PostToolUse:ve(e.hooks.PostToolUse)}}:e},write(e,r){d(e,m(r))}};import{existsSync as L,readFileSync as Jr}from"node:fs";import{join as xe}from"node:path";function Ce(e){let r=e.mcpServers?.venos;if(!r||r.command!=="node")return!1;let t=r.args?.[0];return!t||t.includes("/A2A/")?!1:L(t)}var ke={name:"windsurf",transport:"mcp-json",configPath(e){return xe(e,".codeium","windsurf","mcp_config.json")},isInstalled(e){return L(xe(e,".codeium","windsurf"))},load(e){if(!L(e))return{};try{return JSON.parse(Jr(e,"utf8"))}catch{return{}}},isWired(e){return Ce(e)},inject(e,r){return Ce(e)?e:{...e,mcpServers:{...e.mcpServers??{},venos:{command:"node",args:[r.mcpServerPath],env:{VENOS_URL:r.orchestratorUrl,VENOS_ORG_ID:r.orgId,...r.apiKey?{VENOS_API_KEY:r.apiKey}:{}}}}}},remove(e){if(!e.mcpServers?.venos)return e;let{venos:r,...t}=e.mcpServers;return{...e,mcpServers:t}},write(e,r){d(e,m(r))}};import{existsSync as H,readFileSync as Lr}from"node:fs";import{join as v}from"node:path";var Oe="saoudrizwan.claude-dev",Hr="cline_mcp_settings.json";function Ee(e){if(process.platform==="darwin")return v(e,"Library","Application Support","Code","User");if(process.platform==="win32"){let r=process.env.APPDATA??v(e,"AppData","Roaming");return v(r,"Code","User")}return v(e,".config","Code","User")}function Pe(e){let r=e.mcpServers?.venos;if(!r||r.command!=="node")return!1;let t=r.args?.[0];return!t||t.includes("/A2A/")?!1:H(t)}var be={name:"cline",transport:"mcp-json",configPath(e){return v(Ee(e),"globalStorage",Oe,"settings",Hr)},isInstalled(e){return H(v(Ee(e),"globalStorage",Oe))},load(e){if(!H(e))return{};try{return JSON.parse(Lr(e,"utf8"))}catch{return{}}},isWired(e){return Pe(e)},inject(e,r){return Pe(e)?e:{...e,mcpServers:{...e.mcpServers??{},venos:{command:"node",args:[r.mcpServerPath],env:{VENOS_URL:r.orchestratorUrl,VENOS_ORG_ID:r.orgId,...r.apiKey?{VENOS_API_KEY:r.apiKey}:{}}}}}},remove(e){if(!e.mcpServers?.venos)return e;let{venos:r,...t}=e.mcpServers;return{...e,mcpServers:t}},write(e,r){d(e,m(r))}};import{existsSync as F,readFileSync as Fr}from"node:fs";import{join as Te}from"node:path";function _e(e){let r=e.context_servers?.venos;if(!r||r.command?.path!=="node")return!1;let t=r.command.args?.[0];return!t||t.includes("/A2A/")?!1:F(t)}var Ae={name:"zed",transport:"mcp-json",configPath(e){return Te(e,".config","zed","settings.json")},isInstalled(e){return F(Te(e,".config","zed"))},load(e){if(!F(e))return{};try{return JSON.parse(Fr(e,"utf8"))}catch{return{}}},isWired(e){return _e(e)},inject(e,r){return _e(e)?e:{...e,context_servers:{...e.context_servers??{},venos:{command:{path:"node",args:[r.mcpServerPath],env:{VENOS_URL:r.orchestratorUrl,VENOS_ORG_ID:r.orgId,...r.apiKey?{VENOS_API_KEY:r.apiKey}:{}}},settings:{}}}}},remove(e){if(!e.context_servers?.venos)return e;let{venos:r,...t}=e.context_servers;return{...e,context_servers:t}},write(e,r){d(e,m(r))}};import{existsSync as K,readFileSync as Kr}from"node:fs";import{join as Re}from"node:path";function Ue(e){let r=e.mcpServers?.venos;if(!r||r.command!=="node")return!1;let t=r.args?.[0];return!t||t.includes("/A2A/")?!1:K(t)}var Ie={name:"jetbrains",transport:"mcp-json",configPath(e){return Re(e,".junie","mcp","mcp.json")},isInstalled(e){return K(Re(e,".junie"))},load(e){if(!K(e))return{};try{return JSON.parse(Kr(e,"utf8"))}catch{return{}}},isWired(e){return Ue(e)},inject(e,r){return Ue(e)?e:{...e,mcpServers:{...e.mcpServers??{},venos:{command:"node",args:[r.mcpServerPath],env:{VENOS_URL:r.orchestratorUrl,VENOS_ORG_ID:r.orgId,...r.apiKey?{VENOS_API_KEY:r.apiKey}:{}}}}}},remove(e){if(!e.mcpServers?.venos)return e;let{venos:r,...t}=e.mcpServers;return{...e,mcpServers:t}},write(e,r){d(e,m(r))}};import{existsSync as je,readFileSync as Dr,rmSync as Br}from"node:fs";import{join as Gr}from"node:path";var zr="openai-api-base",Yr=".aider.conf.yml";function We(){return`${zr}: ${w}`}function Zr(e){return/^\s*openai-api-base\s*:/.test(e)}var Ne={name:"aider",transport:"mcp-json",configPath(e){return Gr(e,Yr)},isInstalled(){return!0},load(e){let r=je(e)?Dr(e,"utf8"):"";return{wired:r.split(`
35
- `).some(n=>n.trim()===We()),raw:r}},isWired(e){return e.wired},inject(e){return e.wired?e:{...e,wired:!0}},remove(e){return{...e,wired:!1}},write(e,r){let t=r.raw===""?[]:r.raw.split(`
36
- `);t.length>0&&t[t.length-1]===""&&t.pop();let n=t.filter(i=>!Zr(i)),o=r.wired?[...n,We()]:n;if(o.length===0){je(e)&&Br(e,{force:!0});return}d(e,o.join(`
33
+ `:n}function pe(e){let r=e.mcp_servers?.venos;if(!r||r.command!=="node")return!1;let t=r.args?.[0];return!t||t.includes("/A2A/")?!1:L(t)}var ge={name:"codex",transport:"mcp-toml",configPath(e){return me(e,".codex","config.toml")},isInstalled(e){return L(me(e,".codex"))},load(e){if(!L(e))return{};try{return N(Vr(e,"utf8"))}catch{return{}}},isWired(e){return pe(e)},inject(e,r){return pe(e)?e:{...e,mcp_servers:{...e.mcp_servers??{},venos:{command:"node",args:[r.mcpServerPath],env:{VENOS_URL:r.orchestratorUrl,VENOS_ORG_ID:r.orgId,...r.apiKey?{VENOS_API_KEY:r.apiKey}:{},VENOS_SOURCE:"codex"}}}}},remove(e){if(!e.mcp_servers?.venos)return e;let{venos:r,...t}=e.mcp_servers;return{...e,mcp_servers:t}},write(e,r){d(e,J(r)+`
34
+ `)}};import{existsSync as he,readFileSync as Mr}from"node:fs";import{join as ye}from"node:path";var Se="venos";function H(e){return(e??[]).some(r=>r.hooks.some(t=>typeof t.command=="string"&&t.command.includes(Se)))}function ve(e,r){let t=e??[];return H(t)?t:[...t,{matcher:"*",hooks:[{type:"command",command:r}]}]}function we(e){return(e??[]).map(r=>({...r,hooks:r.hooks.filter(t=>typeof t.command!="string"||!t.command.includes(Se))})).filter(r=>r.hooks.length>0)}function Jr(e){return`${e.hookCommand} --source codex`}var xe={name:"codex-hook",transport:"claude-hook",configPath(e){return ye(e,".codex","hooks.json")},isInstalled(e){return he(ye(e,".codex"))},load(e){if(!he(e))return{};try{return JSON.parse(Mr(e,"utf8"))}catch{return{}}},isWired(e){return H(e.hooks?.PreToolUse)&&H(e.hooks?.PostToolUse)},inject(e,r){let t=e.hooks??{},n=Jr(r);return{...e,hooks:{...t,PreToolUse:ve(t.PreToolUse,n),PostToolUse:ve(t.PostToolUse,n)}}},remove(e){return e.hooks?{...e,hooks:{...e.hooks,PreToolUse:we(e.hooks.PreToolUse),PostToolUse:we(e.hooks.PostToolUse)}}:e},write(e,r){d(e,m(r))}};import{existsSync as F,readFileSync as Lr}from"node:fs";import{join as Ce}from"node:path";function ke(e){let r=e.mcpServers?.venos;if(!r||r.command!=="node")return!1;let t=r.args?.[0];return!t||t.includes("/A2A/")?!1:F(t)}var Oe={name:"windsurf",transport:"mcp-json",configPath(e){return Ce(e,".codeium","windsurf","mcp_config.json")},isInstalled(e){return F(Ce(e,".codeium","windsurf"))},load(e){if(!F(e))return{};try{return JSON.parse(Lr(e,"utf8"))}catch{return{}}},isWired(e){return ke(e)},inject(e,r){return ke(e)?e:{...e,mcpServers:{...e.mcpServers??{},venos:{command:"node",args:[r.mcpServerPath],env:{VENOS_URL:r.orchestratorUrl,VENOS_ORG_ID:r.orgId,...r.apiKey?{VENOS_API_KEY:r.apiKey}:{}}}}}},remove(e){if(!e.mcpServers?.venos)return e;let{venos:r,...t}=e.mcpServers;return{...e,mcpServers:t}},write(e,r){d(e,m(r))}};import{existsSync as K,readFileSync as Hr}from"node:fs";import{join as v}from"node:path";var Ee="saoudrizwan.claude-dev",Fr="cline_mcp_settings.json";function Pe(e){if(process.platform==="darwin")return v(e,"Library","Application Support","Code","User");if(process.platform==="win32"){let r=process.env.APPDATA??v(e,"AppData","Roaming");return v(r,"Code","User")}return v(e,".config","Code","User")}function be(e){let r=e.mcpServers?.venos;if(!r||r.command!=="node")return!1;let t=r.args?.[0];return!t||t.includes("/A2A/")?!1:K(t)}var Te={name:"cline",transport:"mcp-json",configPath(e){return v(Pe(e),"globalStorage",Ee,"settings",Fr)},isInstalled(e){return K(v(Pe(e),"globalStorage",Ee))},load(e){if(!K(e))return{};try{return JSON.parse(Hr(e,"utf8"))}catch{return{}}},isWired(e){return be(e)},inject(e,r){return be(e)?e:{...e,mcpServers:{...e.mcpServers??{},venos:{command:"node",args:[r.mcpServerPath],env:{VENOS_URL:r.orchestratorUrl,VENOS_ORG_ID:r.orgId,...r.apiKey?{VENOS_API_KEY:r.apiKey}:{}}}}}},remove(e){if(!e.mcpServers?.venos)return e;let{venos:r,...t}=e.mcpServers;return{...e,mcpServers:t}},write(e,r){d(e,m(r))}};import{existsSync as D,readFileSync as Kr}from"node:fs";import{join as _e}from"node:path";function Ae(e){let r=e.context_servers?.venos;if(!r||r.command?.path!=="node")return!1;let t=r.command.args?.[0];return!t||t.includes("/A2A/")?!1:D(t)}var Re={name:"zed",transport:"mcp-json",configPath(e){return _e(e,".config","zed","settings.json")},isInstalled(e){return D(_e(e,".config","zed"))},load(e){if(!D(e))return{};try{return JSON.parse(Kr(e,"utf8"))}catch{return{}}},isWired(e){return Ae(e)},inject(e,r){return Ae(e)?e:{...e,context_servers:{...e.context_servers??{},venos:{command:{path:"node",args:[r.mcpServerPath],env:{VENOS_URL:r.orchestratorUrl,VENOS_ORG_ID:r.orgId,...r.apiKey?{VENOS_API_KEY:r.apiKey}:{}}},settings:{}}}}},remove(e){if(!e.context_servers?.venos)return e;let{venos:r,...t}=e.context_servers;return{...e,context_servers:t}},write(e,r){d(e,m(r))}};import{existsSync as B,readFileSync as Dr}from"node:fs";import{join as Ie}from"node:path";function Ue(e){let r=e.mcpServers?.venos;if(!r||r.command!=="node")return!1;let t=r.args?.[0];return!t||t.includes("/A2A/")?!1:B(t)}var je={name:"jetbrains",transport:"mcp-json",configPath(e){return Ie(e,".junie","mcp","mcp.json")},isInstalled(e){return B(Ie(e,".junie"))},load(e){if(!B(e))return{};try{return JSON.parse(Dr(e,"utf8"))}catch{return{}}},isWired(e){return Ue(e)},inject(e,r){return Ue(e)?e:{...e,mcpServers:{...e.mcpServers??{},venos:{command:"node",args:[r.mcpServerPath],env:{VENOS_URL:r.orchestratorUrl,VENOS_ORG_ID:r.orgId,...r.apiKey?{VENOS_API_KEY:r.apiKey}:{}}}}}},remove(e){if(!e.mcpServers?.venos)return e;let{venos:r,...t}=e.mcpServers;return{...e,mcpServers:t}},write(e,r){d(e,m(r))}};import{existsSync as We,readFileSync as Br,rmSync as Gr}from"node:fs";import{join as zr}from"node:path";var Yr="openai-api-base",Zr=".aider.conf.yml";function Ne(){return`${Yr}: ${w}`}function Xr(e){return/^\s*openai-api-base\s*:/.test(e)}var $e={name:"aider",transport:"mcp-json",configPath(e){return zr(e,Zr)},isInstalled(){return!0},load(e){let r=We(e)?Br(e,"utf8"):"";return{wired:r.split(`
35
+ `).some(n=>n.trim()===Ne()),raw:r}},isWired(e){return e.wired},inject(e){return e.wired?e:{...e,wired:!0}},remove(e){return{...e,wired:!1}},write(e,r){let t=r.raw===""?[]:r.raw.split(`
36
+ `);t.length>0&&t[t.length-1]===""&&t.pop();let n=t.filter(i=>!Xr(i)),o=r.wired?[...n,Ne()]:n;if(o.length===0){We(e)&&Gr(e,{force:!0});return}d(e,o.join(`
37
37
  `)+`
38
- `)}};import{accessSync as Xr,constants as qr,existsSync as Ve,readFileSync as Qr}from"node:fs";import{delimiter as et}from"node:path";import{join as Me}from"node:path";var rt="obsidian-cli",tt="obsidian-cli.json";function nt(e){try{return Xr(e,qr.X_OK),!0}catch{return!1}}function ot(e){return(process.env.PATH??"").split(et).some(t=>{if(t.trim()==="")return!1;let n=Me(t,e);return Ve(n)&&nt(n)})}function $e(e){return e.venos?.source==="obsidian-cli"&&e.venos.wired===!0}var Je={name:"obsidian-cli",transport:"mcp-json",configPath(e){return Me(e,".venos",tt)},isInstalled(){return ot(rt)},load(e){if(!Ve(e))return{};try{return JSON.parse(Qr(e,"utf8"))}catch{return{}}},isWired(e){return $e(e)},inject(e,r){return $e(e)?e:{...e,venos:{source:"obsidian-cli",orgId:r.orgId,orchestratorUrl:r.orchestratorUrl,wired:!0}}},remove(e){if(!e.venos)return e;let r={...e};return delete r.venos,r},write(e,r){d(e,m(r))}};var D=[U,I,pe,Se,ke,be,Ae,Ie,Ne,Je];import{existsSync as B}from"node:fs";import{dirname as it,join as Le,resolve as G}from"node:path";import{fileURLToPath as st}from"node:url";var He=it(st(import.meta.url));function Fe(){let e=process.env.VENOS_MCP_SERVER_PATH;if(e&&B(e))return G(e);let r=G(Le(He,"..","etc","mcp-server","bin.js"));if(B(r))return r;let t=G(Le(He,"..","..","..","packages","mcp-server","dist","bin.js"));if(B(t))return t;throw new Error(`venos: bundled mcp-server not found. Tried:
38
+ `)}};import{accessSync as qr,constants as Qr,existsSync as Me,readFileSync as et}from"node:fs";import{delimiter as rt}from"node:path";import{join as Je}from"node:path";var tt="obsidian-cli",nt="obsidian-cli.json";function ot(e){try{return qr(e,Qr.X_OK),!0}catch{return!1}}function it(e){return(process.env.PATH??"").split(rt).some(t=>{if(t.trim()==="")return!1;let n=Je(t,e);return Me(n)&&ot(n)})}function Ve(e){return e.venos?.source==="obsidian-cli"&&e.venos.wired===!0}var Le={name:"obsidian-cli",transport:"mcp-json",configPath(e){return Je(e,".venos",nt)},isInstalled(){return it(tt)},load(e){if(!Me(e))return{};try{return JSON.parse(et(e,"utf8"))}catch{return{}}},isWired(e){return Ve(e)},inject(e,r){return Ve(e)?e:{...e,venos:{source:"obsidian-cli",orgId:r.orgId,orchestratorUrl:r.orchestratorUrl,wired:!0}}},remove(e){if(!e.venos)return e;let r={...e};return delete r.venos,r},write(e,r){d(e,m(r))}};var G=[j,W,ge,xe,Oe,Te,Re,je,$e,Le];import{existsSync as z}from"node:fs";import{dirname as st,join as He,resolve as Y}from"node:path";import{fileURLToPath as at}from"node:url";var Fe=st(at(import.meta.url));function Ke(){let e=process.env.VENOS_MCP_SERVER_PATH;if(e&&z(e))return Y(e);let r=Y(He(Fe,"..","etc","mcp-server","bin.js"));if(z(r))return r;let t=Y(He(Fe,"..","..","..","packages","mcp-server","dist","bin.js"));if(z(t))return t;throw new Error(`venos: bundled mcp-server not found. Tried:
39
39
  VENOS_MCP_SERVER_PATH=${e??"(unset)"}
40
40
  bundled: ${r}
41
41
  sibling: ${t}
42
- If you are developing locally, run: pnpm --filter @venos/mcp-server build`)}import{existsSync as at}from"node:fs";function ct(e,r,t){let n=e.configPath(r);if(!e.isInstalled(r))return{client:e.name,transport:e.transport,status:"skipped-not-installed"};try{let o=e.load(n);if(e.isWired(o,t))return{client:e.name,transport:e.transport,status:"already-wired",path:n};let i=e.inject(o,t);return e.write(n,i),{client:e.name,transport:e.transport,status:"wired",path:n}}catch(o){return{client:e.name,transport:e.transport,status:"error",path:n,error:o instanceof Error?o.message:String(o)}}}function Ke(e,r,t){return t.map(n=>ct(n,e,r))}function lt(e,r){let t=e.configPath(r);if(!e.isInstalled(r))return{client:e.name,transport:e.transport,status:"skipped-not-installed"};if(!at(t))return{client:e.name,transport:e.transport,status:"already-removed",path:t};try{let n=e.load(t),o=e.remove(n);return JSON.stringify(o)===JSON.stringify(n)?{client:e.name,transport:e.transport,status:"already-removed",path:t}:(e.write(t,o),{client:e.name,transport:e.transport,status:"removed",path:t})}catch(n){return{client:e.name,transport:e.transport,status:"error",path:t,error:n instanceof Error?n.message:String(n)}}}function De(e,r){return r.map(t=>lt(t,e))}import{existsSync as Be,mkdirSync as ut,readFileSync as ft}from"node:fs";import{join as Ge}from"node:path";var ze="cline.openaiBaseUrl";function Ye(e){let r=Ge(e,".vscode");if(!Be(r))return{status:"no-workspace"};let t=Ge(r,"settings.json"),n={};if(Be(t))try{let o=JSON.parse(ft(t,"utf8"));o&&typeof o=="object"&&(n=o)}catch{}return n[ze]===w?{status:"already-wired",path:t}:(ut(r,{recursive:!0}),d(t,m({...n,[ze]:w})),{status:"wired",path:t})}var dt={wired:"OK","already-wired":"\xB7","skipped-not-installed":"\u2014",error:"FAIL"},mt={wired:"wired","already-wired":"already wired","skipped-not-installed":"skipped (not installed)",error:"ERROR"},z="http://127.0.0.1:4000/v1";function Ze(e,r){let t=e.some(n=>n.status==="wired");console.log(`
43
- venos init ${t?"done":"(no changes)"}`),console.log(` org ID : ${r.orgId}`),console.log(` orchestrator: ${r.orchestratorUrl}`);for(let n of e){let o=dt[n.status],i=mt[n.status],s=n.path?` ${n.path}`:"",a=n.error?` \u2014 ${n.error}`:"";console.log(` ${o} ${n.client.padEnd(12)} ${i}${s}${a}`)}if(r.clineWorkspace){let n=r.clineWorkspace;n.status==="wired"?console.log(` OK cline (ws) wired ${n.path}`):n.status==="already-wired"&&console.log(` \xB7 cline (ws) already wired ${n.path}`)}if(t){console.log(`
44
- Next steps:`);let n={"claude-code":"Restart Claude Code for the hook to take effect.",cursor:"Restart Cursor to load the venos MCP server.",codex:"Restart Codex to pick up the new MCP config + gateway routing (~/.codex/.env).",windsurf:"Restart Windsurf to load the venos MCP server.",cline:"Reload the Cline extension (or restart VS Code) to load the venos MCP server.",zed:"Restart Zed to load the venos context server.",jetbrains:"Restart your JetBrains IDE (or just Junie) to load the venos MCP server.",aider:"Aider will route LLM calls through the venos gateway on next launch (~/.aider.conf.yml)."};for(let o of e){if(o.status!=="wired")continue;let i=n[o.client];i&&console.log(` \u2022 ${i}`)}console.log(` \u2022 Test: curl ${r.orchestratorUrl}/healthz`)}pt(r.clineWorkspace)}function pt(e){console.log(`
45
- Gateway routing (hard block via apps/mcp-proxy):`),console.log(` \u2022 Cursor \u2014 Settings \u2192 Models \u2192 Custom OpenAI Base URL: ${z}`),console.log(" Optional: Custom HTTP Headers \u2192 X-Venos-Source: cursor"),console.log(` \u2022 Windsurf \u2014 Settings \u2192 Models \u2192 Custom OpenAI Base URL: ${z}`),(!e||e.status==="no-workspace")&&(console.log(" \u2022 Cline \u2014 Open VS Code in your project, then add to .vscode/settings.json:"),console.log(` "cline.openaiBaseUrl": "${z}"`)),console.log(" \u2022 VS Code Copilot \u2014 closed provider, no custom endpoint. Coverage = MCP advisory only."),console.log(" \u2022 JetBrains AI Assistant \u2014 closed provider, no custom endpoint. Coverage = MCP advisory only.")}function Xe(e,r){console.log(JSON.stringify({...r,outcomes:e},null,2))}var gt={removed:"OK","already-removed":"\xB7","skipped-not-installed":"\u2014",error:"FAIL"},ht={removed:"removed","already-removed":"already removed","skipped-not-installed":"skipped (not installed)",error:"ERROR"};function qe(e,r){let t=e.some(i=>i.status==="removed");console.log(`
46
- venos init --remove ${t?"done":"(no changes)"}`);for(let i of e){let s=gt[i.status],a=ht[i.status],l=i.path?` ${i.path}`:"",c=i.error?` \u2014 ${i.error}`:"";console.log(` ${s} ${i.client.padEnd(12)} ${a}${l}${c}`)}let n=r.venosConfigRemoved?"OK":"\xB7",o=r.venosConfigRemoved?"removed":"already removed";console.log(` ${n} venos-config ${o} ${r.venosConfigPath}`),console.log("\nPre-venos `.venos-backup` snapshots are preserved \u2014 delete manually if you don't want them.")}function Qe(e,r){console.log(JSON.stringify({...r,outcomes:e},null,2))}var er=1;function Y(e){return Ct(e,".venos","config.json")}function Ot(){return`org-${kt(4).toString("hex")}`}function Et(e,r,t){let n=Y(e);if(rr(n))try{let o=JSON.parse(vt(n,"utf8")),i={schemaVersion:o.schemaVersion??er,...o,orchestratorUrl:r};return t&&(i.apiKey=t),i}catch{}return{schemaVersion:er,orgId:Ot(),orchestratorUrl:r,createdAt:new Date().toISOString(),...t?{apiKey:t}:{}}}function Pt(e,r){let t=Y(e);yt(xt(t),{recursive:!0}),St(t,JSON.stringify(r,null,2)+`
47
- `,"utf8")}var bt=5e3,Tt=5e3;async function _t(e){let r=e.replace(/\/$/,""),t=new AbortController,n=setTimeout(()=>t.abort(),bt);try{return(await fetch(`${r}/healthz`,{signal:t.signal})).ok}catch{return!1}finally{clearTimeout(n)}}async function At(e,r){let t=e.replace(/\/$/,""),n=new AbortController,o=setTimeout(()=>n.abort(),Tt);try{let i=await fetch(`${t}/api/activation/register`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({orgId:r}),signal:n.signal});i.ok||console.warn(`[venos] activation telemetry: non-200 response (${i.status}) \u2014 init continues`)}catch{console.warn("[venos] activation telemetry: failed to reach orchestrator \u2014 init continues")}finally{clearTimeout(o)}}function Rt(e){try{let r=new URL(e);return r.hostname==="localhost"||r.hostname==="127.0.0.1"||r.hostname==="::1"}catch{return!1}}async function tr(e={}){let r=e.home??process.env.HOME??process.env.USERPROFILE??"",t=e.orchestratorUrl??"http://127.0.0.1:8788";await _t(t)||(console.error(`
48
- venos init failed: orchestrator unreachable at ${t}/healthz`),console.error("Start the orchestrator first: apps/orchestrator/orchestrator"),process.exit(1));let n=Et(r,t,e.apiKey),o={orgId:n.orgId,orchestratorUrl:t,mcpServerPath:Fe(),hookCommand:"venos hook",...n.apiKey?{apiKey:n.apiKey}:{}},i=Ke(r,o,D);Pt(r,n);let s=Ye(e.cwd??process.cwd());e.noTelemetry===!0||Rt(t)||await At(t,n.orgId);let l={orgId:n.orgId,orchestratorUrl:t,clineWorkspace:s};e.json?Xe(i,l):Ze(i,l)}function nr(e={}){let r=e.home??process.env.HOME??process.env.USERPROFILE??"",t=De(r,D),n=Y(r),o=rr(n);o&&wt(n,{force:!0});let i={venosConfigPath:n,venosConfigRemoved:o};e.json?Qe(t,i):qe(t,i)}import{readFileSync as or,existsSync as Ut}from"node:fs";import{userInfo as It}from"node:os";import{join as jt}from"node:path";function Wt(e){return jt(e,".venos","config.json")}function Nt(e){let r=Wt(e);if(!Ut(r))throw new Error(`venos config not found at ${r} \u2014 run "venos init" first`);return JSON.parse(or(r,"utf8"))}function $t(){return new Promise((e,r)=>{let t="";process.stdin.setEncoding("utf8"),process.stdin.on("data",n=>{t+=n}),process.stdin.on("end",()=>e(t)),process.stdin.on("error",r)})}function Vt(e){let r;try{r=or(e,"utf8")}catch{return null}let t=r.split(/\r?\n/);for(let n=t.length-1;n>=0;n--){let o=t[n]?.trim();if(!o)continue;let i;try{i=JSON.parse(o)}catch{continue}if(i.type!=="assistant"||!i.message||i.message.model==="<synthetic>")continue;let s=i.message.usage;if(!s)continue;let a=typeof s.cache_creation_input_tokens=="number"?s.cache_creation_input_tokens:void 0,l=typeof s.cache_read_input_tokens=="number"?s.cache_read_input_tokens:void 0,c=(s.input_tokens??0)+(a??0)+(l??0),f=s.output_tokens??0,p=i.message.model??"";if(c===0&&f===0&&p==="")return null;let h={tokensIn:c,tokensOut:f,model:p};return l!==void 0&&(h.cacheReadTokens=l),a!==void 0&&(h.cacheWriteTokens=a),h}return null}function Mt(e){let r;try{r=JSON.parse(e)}catch{return e}if(typeof r!="object"||r===null||Array.isArray(r))return e;let t=r,n=t.transcript_path;if(typeof n!="string"||n==="")return e;let o=Vt(n);return o?(t.usage_tokens_in=o.tokensIn,t.usage_tokens_out=o.tokensOut,o.cacheReadTokens!==void 0&&(t.cache_read_input_tokens=o.cacheReadTokens),o.cacheWriteTokens!==void 0&&(t.cache_creation_input_tokens=o.cacheWriteTokens),o.model!==""&&(t.usage_model=o.model),JSON.stringify(t)):e}function Jt(e,r){if(r==="")return e;let t;try{t=JSON.parse(e)}catch{return JSON.stringify({orgId:r,content:e})}if(typeof t!="object"||t===null||Array.isArray(t))return e;let n=t;for(let o of["orgId","org_id","tenantId","tenant_id"]){let i=n[o];if(typeof i=="string"&&i.trim()!=="")return e}return n.orgId=r,JSON.stringify(n)}function Lt(e){try{let t=JSON.parse(e).cursor_version;return typeof t=="string"&&t!==""}catch{return!1}}function Ht(){try{let e=It().username;if(typeof e=="string"&&e.trim()!=="")return e.trim()}catch{}for(let e of["USER","USERNAME","LOGNAME"]){let r=process.env[e];if(typeof r=="string"&&r.trim()!=="")return r.trim()}return""}function Ft(e,r){if(r==="")return e;let t;try{t=JSON.parse(e)}catch{return e}if(typeof t!="object"||t===null||Array.isArray(t))return e;let n=t;for(let o of["userId","user_id"]){let i=n[o];if(typeof i=="string"&&i.trim()!=="")return e}return n.userId=r,JSON.stringify(n)}function Kt(e,r){let t={"Content-Type":"application/json","X-Venos-Org":e};return r&&(t.Authorization=`Bearer ${r}`),t}async function ir(e,r="claude-code"){let t=e??process.env.HOME??process.env.USERPROFILE??"",n=Nt(t),o=await $t(),i=Lt(o),s=Ft(Mt(Jt(o,n.orgId)),Ht()),l=`${n.orchestratorUrl.replace(/\/$/,"")}/v1/hooks/${encodeURIComponent(r)}`,c=await fetch(l,{method:"POST",headers:Kt(n.orgId,n.apiKey),body:s});if(i){await c.text();return}let f=await c.text(),p=r==="codex"?Dt(f):f;process.stdout.write(p),c.ok||(process.stderr.write(`venos hook: orchestrator returned ${c.status}
49
- `),process.exit(1))}function Dt(e){let r;try{r=JSON.parse(e)}catch{return e}let t=typeof r.decision=="string"?r.decision:"";if(t==="deny"||t==="block"){let n=typeof r.severity=="string"?r.severity:"",o=typeof r.eventId=="string"?r.eventId:"",i=`blocked by venos policy${n?` (severity=${n})`:""}${o?` [event ${o}]`:""}`;return JSON.stringify({decision:"block",reason:i})}return t==="allow"?JSON.stringify({decision:"approve"}):e}import{readFile as Bt}from"node:fs/promises";import{homedir as Gt}from"node:os";import{join as zt}from"node:path";async function sr(e={}){let r=e.home??Gt(),t=zt(r,".venos","config.json"),n;try{n=JSON.parse(await Bt(t,"utf8"))}catch{process.stderr.write("venos: no config found \u2014 run `venos init` first\n"),process.exit(1);return}let o=`${n.orchestratorUrl}/api/billing/checkout`,i;try{i=await fetch(o,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({orgId:n.orgId}),signal:AbortSignal.timeout(5e3)})}catch{process.stderr.write(`venos: could not reach orchestrator
42
+ If you are developing locally, run: pnpm --filter @venos/mcp-server build`)}import{existsSync as ct}from"node:fs";function lt(e,r,t){let n=e.configPath(r);if(!e.isInstalled(r))return{client:e.name,transport:e.transport,status:"skipped-not-installed"};try{let o=e.load(n);if(e.isWired(o,t))return{client:e.name,transport:e.transport,status:"already-wired",path:n};let i=e.inject(o,t);return e.write(n,i),{client:e.name,transport:e.transport,status:"wired",path:n}}catch(o){return{client:e.name,transport:e.transport,status:"error",path:n,error:o instanceof Error?o.message:String(o)}}}function De(e,r,t){return t.map(n=>lt(n,e,r))}function ut(e,r){let t=e.configPath(r);if(!e.isInstalled(r))return{client:e.name,transport:e.transport,status:"skipped-not-installed"};if(!ct(t))return{client:e.name,transport:e.transport,status:"already-removed",path:t};try{let n=e.load(t),o=e.remove(n);return JSON.stringify(o)===JSON.stringify(n)?{client:e.name,transport:e.transport,status:"already-removed",path:t}:(e.write(t,o),{client:e.name,transport:e.transport,status:"removed",path:t})}catch(n){return{client:e.name,transport:e.transport,status:"error",path:t,error:n instanceof Error?n.message:String(n)}}}function Be(e,r){return r.map(t=>ut(t,e))}import{existsSync as Ge,mkdirSync as ft,readFileSync as dt}from"node:fs";import{join as ze}from"node:path";var Ye="cline.openaiBaseUrl";function Ze(e){let r=ze(e,".vscode");if(!Ge(r))return{status:"no-workspace"};let t=ze(r,"settings.json"),n={};if(Ge(t))try{let o=JSON.parse(dt(t,"utf8"));o&&typeof o=="object"&&(n=o)}catch{}return n[Ye]===w?{status:"already-wired",path:t}:(ft(r,{recursive:!0}),d(t,m({...n,[Ye]:w})),{status:"wired",path:t})}var mt={wired:"OK","already-wired":"\xB7","skipped-not-installed":"\u2014",error:"FAIL"},pt={wired:"wired","already-wired":"already wired","skipped-not-installed":"skipped (not installed)",error:"ERROR"},Z="http://127.0.0.1:4000/v1";function Xe(e,r){let t=e.some(n=>n.status==="wired");console.log(`
43
+ venos init ${t?"done":"(no changes)"}`),console.log(` org ID : ${r.orgId}`),console.log(` orchestrator: ${r.orchestratorUrl}`);for(let n of e){let o=mt[n.status],i=pt[n.status],s=n.path?` ${n.path}`:"",a=n.error?` \u2014 ${n.error}`:"";console.log(` ${o} ${n.client.padEnd(12)} ${i}${s}${a}`)}if(r.clineWorkspace){let n=r.clineWorkspace;n.status==="wired"?console.log(` OK cline (ws) wired ${n.path}`):n.status==="already-wired"&&console.log(` \xB7 cline (ws) already wired ${n.path}`)}if(t){console.log(`
44
+ Next steps:`);let n={"claude-code":"Restart Claude Code for the hook to take effect.",cursor:"Restart Cursor to load the venos MCP server.",codex:"Restart Codex to pick up the new MCP config + gateway routing (~/.codex/.env).",windsurf:"Restart Windsurf to load the venos MCP server.",cline:"Reload the Cline extension (or restart VS Code) to load the venos MCP server.",zed:"Restart Zed to load the venos context server.",jetbrains:"Restart your JetBrains IDE (or just Junie) to load the venos MCP server.",aider:"Aider will route LLM calls through the venos gateway on next launch (~/.aider.conf.yml)."};for(let o of e){if(o.status!=="wired")continue;let i=n[o.client];i&&console.log(` \u2022 ${i}`)}console.log(` \u2022 Test: curl ${r.orchestratorUrl}/healthz`)}gt(r.clineWorkspace)}function gt(e){console.log(`
45
+ Gateway routing (hard block via apps/mcp-proxy):`),console.log(` \u2022 Cursor \u2014 Settings \u2192 Models \u2192 Custom OpenAI Base URL: ${Z}`),console.log(" Optional: Custom HTTP Headers \u2192 X-Venos-Source: cursor"),console.log(` \u2022 Windsurf \u2014 Settings \u2192 Models \u2192 Custom OpenAI Base URL: ${Z}`),(!e||e.status==="no-workspace")&&(console.log(" \u2022 Cline \u2014 Open VS Code in your project, then add to .vscode/settings.json:"),console.log(` "cline.openaiBaseUrl": "${Z}"`)),console.log(" \u2022 VS Code Copilot \u2014 closed provider, no custom endpoint. Coverage = MCP advisory only."),console.log(" \u2022 JetBrains AI Assistant \u2014 closed provider, no custom endpoint. Coverage = MCP advisory only.")}function qe(e,r){console.log(JSON.stringify({...r,outcomes:e},null,2))}var ht={removed:"OK","already-removed":"\xB7","skipped-not-installed":"\u2014",error:"FAIL"},yt={removed:"removed","already-removed":"already removed","skipped-not-installed":"skipped (not installed)",error:"ERROR"};function Qe(e,r){let t=e.some(i=>i.status==="removed");console.log(`
46
+ venos init --remove ${t?"done":"(no changes)"}`);for(let i of e){let s=ht[i.status],a=yt[i.status],l=i.path?` ${i.path}`:"",c=i.error?` \u2014 ${i.error}`:"";console.log(` ${s} ${i.client.padEnd(12)} ${a}${l}${c}`)}let n=r.venosConfigRemoved?"OK":"\xB7",o=r.venosConfigRemoved?"removed":"already removed";console.log(` ${n} venos-config ${o} ${r.venosConfigPath}`),console.log("\nPre-venos `.venos-backup` snapshots are preserved \u2014 delete manually if you don't want them.")}function er(e,r){console.log(JSON.stringify({...r,outcomes:e},null,2))}var rr=1;function X(e){return kt(e,".venos","config.json")}function Et(){return`org-${Ot(4).toString("hex")}`}function Pt(e,r,t,n){let o=X(e);if(tr(o))try{let i=JSON.parse(wt(o,"utf8")),s={schemaVersion:i.schemaVersion??rr,...i,orchestratorUrl:r};return t&&(s.apiKey=t),n&&(s.orgId=n),s}catch{}return{schemaVersion:rr,orgId:n??Et(),orchestratorUrl:r,createdAt:new Date().toISOString(),...t?{apiKey:t}:{}}}function bt(e,r){let t=X(e);vt(Ct(t),{recursive:!0}),xt(t,JSON.stringify(r,null,2)+`
47
+ `,"utf8")}var Tt=5e3,_t=5e3;async function At(e){let r=e.replace(/\/$/,""),t=new AbortController,n=setTimeout(()=>t.abort(),Tt);try{return(await fetch(`${r}/healthz`,{signal:t.signal})).ok}catch{return!1}finally{clearTimeout(n)}}async function Rt(e,r){let t=e.replace(/\/$/,""),n=new AbortController,o=setTimeout(()=>n.abort(),_t);try{let i=await fetch(`${t}/api/activation/register`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({orgId:r}),signal:n.signal});i.ok||console.warn(`[venos] activation telemetry: non-200 response (${i.status}) \u2014 init continues`)}catch{console.warn("[venos] activation telemetry: failed to reach orchestrator \u2014 init continues")}finally{clearTimeout(o)}}function It(e){try{let r=new URL(e);return r.hostname==="localhost"||r.hostname==="127.0.0.1"||r.hostname==="::1"}catch{return!1}}async function nr(e={}){let r=e.home??process.env.HOME??process.env.USERPROFILE??"",t=e.orchestratorUrl??"http://127.0.0.1:8788";await At(t)||(console.error(`
48
+ venos init failed: orchestrator unreachable at ${t}/healthz`),console.error("Start the orchestrator first: apps/orchestrator/orchestrator"),process.exit(1));let n=Pt(r,t,e.apiKey,e.orgId),o={orgId:n.orgId,orchestratorUrl:t,mcpServerPath:Ke(),hookCommand:"venos hook",...n.apiKey?{apiKey:n.apiKey}:{}},i=De(r,o,G);bt(r,n);let s=Ze(e.cwd??process.cwd());e.noTelemetry===!0||It(t)||await Rt(t,n.orgId);let l={orgId:n.orgId,orchestratorUrl:t,clineWorkspace:s};e.json?qe(i,l):Xe(i,l)}function or(e={}){let r=e.home??process.env.HOME??process.env.USERPROFILE??"",t=Be(r,G),n=X(r),o=tr(n);o&&St(n,{force:!0});let i={venosConfigPath:n,venosConfigRemoved:o};e.json?er(t,i):Qe(t,i)}import{mkdirSync as Ut,readFileSync as A,existsSync as jt,writeFileSync as Wt}from"node:fs";import{hostname as Nt,userInfo as $t}from"node:os";import{randomBytes as Vt}from"node:crypto";import{dirname as Mt,join as ir}from"node:path";function Jt(e){return ir(e,".venos","config.json")}function Lt(e){let r=Jt(e);if(!jt(r))throw new Error(`venos config not found at ${r} \u2014 run "venos init" first`);return JSON.parse(A(r,"utf8"))}function Ht(){return new Promise((e,r)=>{let t="";process.stdin.setEncoding("utf8"),process.stdin.on("data",n=>{t+=n}),process.stdin.on("end",()=>e(t)),process.stdin.on("error",r)})}function Ft(e){let r;try{r=A(e,"utf8")}catch{return null}let t=r.split(/\r?\n/);for(let n=t.length-1;n>=0;n--){let o=t[n]?.trim();if(!o)continue;let i;try{i=JSON.parse(o)}catch{continue}if(i.type!=="assistant"||!i.message||i.message.model==="<synthetic>")continue;let s=i.message.usage;if(!s)continue;let a=typeof s.cache_creation_input_tokens=="number"?s.cache_creation_input_tokens:void 0,l=typeof s.cache_read_input_tokens=="number"?s.cache_read_input_tokens:void 0,c=(s.input_tokens??0)+(a??0)+(l??0),f=s.output_tokens??0,p=i.message.model??"";if(c===0&&f===0&&p==="")return null;let h={tokensIn:c,tokensOut:f,model:p};return l!==void 0&&(h.cacheReadTokens=l),a!==void 0&&(h.cacheWriteTokens=a),h}return null}function Kt(e){let r;try{r=JSON.parse(e)}catch{return e}if(typeof r!="object"||r===null||Array.isArray(r))return e;let t=r,n=t.transcript_path;if(typeof n!="string"||n==="")return e;let o=Ft(n);return o?(t.usage_tokens_in=o.tokensIn,t.usage_tokens_out=o.tokensOut,o.cacheReadTokens!==void 0&&(t.cache_read_input_tokens=o.cacheReadTokens),o.cacheWriteTokens!==void 0&&(t.cache_creation_input_tokens=o.cacheWriteTokens),o.model!==""&&(t.usage_model=o.model),JSON.stringify(t)):e}function Dt(e,r){if(r==="")return e;let t;try{t=JSON.parse(e)}catch{return JSON.stringify({orgId:r,content:e})}if(typeof t!="object"||t===null||Array.isArray(t))return e;let n=t;for(let o of["orgId","org_id","tenantId","tenant_id"]){let i=n[o];if(typeof i=="string"&&i.trim()!=="")return e}return n.orgId=r,JSON.stringify(n)}function Bt(e){try{let t=JSON.parse(e).cursor_version;return typeof t=="string"&&t!==""}catch{return!1}}function Gt(){try{let e=$t().username;if(typeof e=="string"&&e.trim()!=="")return e.trim()}catch{}for(let e of["USER","USERNAME","LOGNAME"]){let r=process.env[e];if(typeof r=="string"&&r.trim()!=="")return r.trim()}return""}function zt(e,r){if(r==="")return e;let t;try{t=JSON.parse(e)}catch{return e}if(typeof t!="object"||t===null||Array.isArray(t))return e;let n=t;for(let o of["userId","user_id"]){let i=n[o];if(typeof i=="string"&&i.trim()!=="")return e}return n.userId=r,JSON.stringify(n)}function Yt(e){let r=e===""?"":ir(e,".venos","machine-id");if(r!=="")try{let t=A(r,"utf8").trim();if(t!=="")return t}catch{}try{let t=A("/etc/machine-id","utf8").trim();if(t!=="")return t}catch{}if(r==="")return"";try{let t=Vt(16).toString("hex");return Ut(Mt(r),{recursive:!0}),Wt(r,t+`
49
+ `,"utf8"),t}catch{return""}}function Zt(e,r,t){if(r===""&&t==="")return e;let n;try{n=JSON.parse(e)}catch{return e}if(typeof n!="object"||n===null||Array.isArray(n))return e;let o=n,i=s=>{let a=o[s];return typeof a=="string"&&a.trim()!==""};return r!==""&&!i("machine_id")&&!i("machineId")&&(o.machine_id=r),t!==""&&!i("hostname")&&(o.hostname=t),JSON.stringify(o)}function Xt(){try{let e=Nt();return typeof e=="string"?e.trim():""}catch{return""}}function qt(e,r){let t={"Content-Type":"application/json","X-Venos-Org":e};return r&&(t.Authorization=`Bearer ${r}`),t}async function sr(e,r="claude-code"){let t=e??process.env.HOME??process.env.USERPROFILE??"",n=Lt(t),o=await Ht(),i=Bt(o),s=Zt(zt(Kt(Dt(o,n.orgId)),Gt()),Yt(t),Xt()),l=`${n.orchestratorUrl.replace(/\/$/,"")}/v1/hooks/${encodeURIComponent(r)}`,c=await fetch(l,{method:"POST",headers:qt(n.orgId,n.apiKey),body:s});if(i){await c.text();return}let f=await c.text(),p=r==="codex"?Qt(f):f;process.stdout.write(p),c.ok||(process.stderr.write(`venos hook: orchestrator returned ${c.status}
50
+ `),process.exit(1))}function Qt(e){let r;try{r=JSON.parse(e)}catch{return e}let t=typeof r.decision=="string"?r.decision:"";if(t==="deny"||t==="block"){let n=typeof r.severity=="string"?r.severity:"",o=typeof r.eventId=="string"?r.eventId:"",i=`blocked by venos policy${n?` (severity=${n})`:""}${o?` [event ${o}]`:""}`;return JSON.stringify({decision:"block",reason:i})}return t==="allow"?JSON.stringify({decision:"approve"}):e}import{readFile as en}from"node:fs/promises";import{homedir as rn}from"node:os";import{join as tn}from"node:path";async function ar(e={}){let r=e.home??rn(),t=tn(r,".venos","config.json"),n;try{n=JSON.parse(await en(t,"utf8"))}catch{process.stderr.write("venos: no config found \u2014 run `venos init` first\n"),process.exit(1);return}let o=`${n.orchestratorUrl}/api/billing/checkout`,i;try{i=await fetch(o,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({orgId:n.orgId}),signal:AbortSignal.timeout(5e3)})}catch{process.stderr.write(`venos: could not reach orchestrator
50
51
  `),process.exit(1);return}if(i.status===503){process.stderr.write(`venos: billing is not yet configured on this server
51
52
  `),process.exit(1);return}if(!i.ok){process.stderr.write(`venos: checkout failed (${i.status})
52
53
  `),process.exit(1);return}let s=await i.json();if(!s.url){process.stderr.write(`venos: no checkout URL returned
@@ -55,11 +56,11 @@ Open this URL to upgrade your venos plan:
55
56
 
56
57
  ${s.url}
57
58
 
58
- `)}import{readFileSync as Xt,existsSync as qt}from"node:fs";import{join as ur}from"node:path";import{execFile as Qt}from"node:child_process";import{promisify as en}from"node:util";import{existsSync as Z}from"node:fs";import{dirname as Yt,join as ar,resolve as X}from"node:path";import{fileURLToPath as Zt}from"node:url";var cr=Yt(Zt(import.meta.url));function lr(){let e=process.env.VENOS_SESSION_WASTE_PATH;if(e&&Z(e))return X(e);let r=X(ar(cr,"..","etc","session-waste","bin.js"));if(Z(r))return r;let t=X(ar(cr,"..","..","..","packages","session-waste","dist","bin.js"));if(Z(t))return t;throw new Error(`venos: bundled session-waste scanner not found. Tried:
59
+ `)}import{readFileSync as sn,existsSync as an}from"node:fs";import{join as fr}from"node:path";import{execFile as cn}from"node:child_process";import{promisify as ln}from"node:util";import{existsSync as q}from"node:fs";import{dirname as nn,join as cr,resolve as Q}from"node:path";import{fileURLToPath as on}from"node:url";var lr=nn(on(import.meta.url));function ur(){let e=process.env.VENOS_SESSION_WASTE_PATH;if(e&&q(e))return Q(e);let r=Q(cr(lr,"..","etc","session-waste","bin.js"));if(q(r))return r;let t=Q(cr(lr,"..","..","..","packages","session-waste","dist","bin.js"));if(q(t))return t;throw new Error(`venos: bundled session-waste scanner not found. Tried:
59
60
  VENOS_SESSION_WASTE_PATH=${e??"(unset)"}
60
61
  bundled: ${r}
61
62
  sibling: ${t}
62
- If you are developing locally, run: pnpm --filter @venos/session-waste build`)}var rn=en(Qt);async function fr(e){let r=e??process.env.HOME??process.env.USERPROFILE??"",t=ur(r,".venos","config.json");if(!qt(t))throw new Error(`venos config not found at ${t} \u2014 run "venos init" first`);let n=JSON.parse(Xt(t,"utf8")),o=lr(),i=ur(r,".claude"),{stdout:s}=await rn(process.execPath,[o,i],{maxBuffer:32*1024*1024}),a=JSON.parse(s),l=Array.isArray(a.findings)?a.findings:[];if(l.length===0)return{sessionsScanned:a.sessionsScanned??0,findingsStored:0};let f=`${n.orchestratorUrl.replace(/\/$/,"")}/api/finops/session-waste?orgId=${encodeURIComponent(n.orgId)}`,p=await fetch(f,{method:"POST",headers:{"Content-Type":"application/json","X-Venos-Org":n.orgId},body:JSON.stringify({findings:l})});if(!p.ok)throw new Error(`venos waste-scan: orchestrator returned ${p.status}`);let h=await p.json();return{sessionsScanned:a.sessionsScanned??0,findingsStored:h.stored??l.length}}var dr=`Usage: venos <command> [options]
63
+ If you are developing locally, run: pnpm --filter @venos/session-waste build`)}var un=ln(cn);async function dr(e){let r=e??process.env.HOME??process.env.USERPROFILE??"",t=fr(r,".venos","config.json");if(!an(t))throw new Error(`venos config not found at ${t} \u2014 run "venos init" first`);let n=JSON.parse(sn(t,"utf8")),o=ur(),i=fr(r,".claude"),{stdout:s}=await un(process.execPath,[o,i],{maxBuffer:32*1024*1024}),a=JSON.parse(s),l=Array.isArray(a.findings)?a.findings:[];if(l.length===0)return{sessionsScanned:a.sessionsScanned??0,findingsStored:0};let f=`${n.orchestratorUrl.replace(/\/$/,"")}/api/finops/session-waste?orgId=${encodeURIComponent(n.orgId)}`,p=await fetch(f,{method:"POST",headers:{"Content-Type":"application/json","X-Venos-Org":n.orgId},body:JSON.stringify({findings:l})});if(!p.ok)throw new Error(`venos waste-scan: orchestrator returned ${p.status}`);let h=await p.json();return{sessionsScanned:a.sessionsScanned??0,findingsStored:h.stored??l.length}}var mr=`Usage: venos <command> [options]
63
64
 
64
65
  Commands:
65
66
  init Wire your AI client(s) to the venos security gateway
@@ -70,11 +71,13 @@ Commands:
70
71
  Options (init):
71
72
  --orchestrator <url> Orchestrator base URL (default: http://127.0.0.1:8788)
72
73
  --api-key <key> Per-customer API key (venos_*) for the hosted gateway
74
+ --org <orgId> Tenant org id to pin (use the org your API key is
75
+ bound to on a hosted gateway)
73
76
  --json Emit machine-readable JSON instead of the human summary
74
77
  --no-telemetry Skip activation ping even on a non-localhost URL
75
78
  --remove Inverse of init \u2014 drop the venos entry from every
76
79
  wired client's config and delete ~/.venos/config.json.
77
80
  Pre-venos .venos-backup snapshots are preserved.
78
- `;function q(e,r){let t=e.indexOf(r);if(!(t===-1||t+1>=e.length))return e[t+1]}function A(e,r){return e.includes(r)}async function tn(){let e=process.argv.slice(2),r=e[0];switch(r){case"init":{if(A(e,"--remove")){nr({json:A(e,"--json")});break}let t=q(e,"--orchestrator"),n=q(e,"--api-key");await tr({...t!==void 0?{orchestratorUrl:t}:{},...n!==void 0?{apiKey:n}:{},json:A(e,"--json"),noTelemetry:A(e,"--no-telemetry")});break}case"hook":{let t=q(e,"--source");await ir(void 0,t??"claude-code");break}case"waste-scan":{let t=await fr();process.stdout.write(`venos waste-scan: ${t.sessionsScanned} session(s) scanned, ${t.findingsStored} finding(s) reported
79
- `);break}case"upgrade":await sr();return;case"help":case void 0:process.stdout.write(dr),process.exit(0);break;default:process.stderr.write(`Unknown subcommand: ${r}
80
- ${dr}`),process.exit(2)}}await tn();
81
+ `;function R(e,r){let t=e.indexOf(r);if(!(t===-1||t+1>=e.length))return e[t+1]}function I(e,r){return e.includes(r)}async function fn(){let e=process.argv.slice(2),r=e[0];switch(r){case"init":{if(I(e,"--remove")){or({json:I(e,"--json")});break}let t=R(e,"--orchestrator"),n=R(e,"--api-key"),o=R(e,"--org");await nr({...t!==void 0?{orchestratorUrl:t}:{},...n!==void 0?{apiKey:n}:{},...o!==void 0?{orgId:o}:{},json:I(e,"--json"),noTelemetry:I(e,"--no-telemetry")});break}case"hook":{let t=R(e,"--source");await sr(void 0,t??"claude-code");break}case"waste-scan":{let t=await dr();process.stdout.write(`venos waste-scan: ${t.sessionsScanned} session(s) scanned, ${t.findingsStored} finding(s) reported
82
+ `);break}case"upgrade":await ar();return;case"help":case void 0:process.stdout.write(mr),process.exit(0);break;default:process.stderr.write(`Unknown subcommand: ${r}
83
+ ${mr}`),process.exit(2)}}await fn();
File without changes
@@ -5,8 +5,13 @@ case `uname` in
5
5
  *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
6
  esac
7
7
 
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/js-yaml@4.1.1/node_modules/js-yaml/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/js-yaml@4.1.1/node_modules/js-yaml/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/js-yaml@4.1.1/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/js-yaml@4.1.1/node_modules/js-yaml/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/js-yaml@4.1.1/node_modules/js-yaml/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/js-yaml@4.1.1/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
8
13
  if [ -x "$basedir/node" ]; then
9
- exec "$basedir/node" "$basedir/../../../../js-yaml/bin/js-yaml.js" "$@"
14
+ exec "$basedir/node" "$basedir/../../../../../../js-yaml@4.1.1/node_modules/js-yaml/bin/js-yaml.js" "$@"
10
15
  else
11
- exec node "$basedir/../../../../js-yaml/bin/js-yaml.js" "$@"
16
+ exec node "$basedir/../../../../../../js-yaml@4.1.1/node_modules/js-yaml/bin/js-yaml.js" "$@"
12
17
  fi
@@ -5,8 +5,13 @@ case `uname` in
5
5
  *CYGWIN*) basedir=`cygpath -w "$basedir"`;;
6
6
  esac
7
7
 
8
+ if [ -z "$NODE_PATH" ]; then
9
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules"
10
+ else
11
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules:$NODE_PATH"
12
+ fi
8
13
  if [ -x "$basedir/node" ]; then
9
- exec "$basedir/node" "$basedir/../../../../eslint/bin/eslint.js" "$@"
14
+ exec "$basedir/node" "$basedir/../../../../../../eslint@9.17.0/node_modules/eslint/bin/eslint.js" "$@"
10
15
  else
11
- exec node "$basedir/../../../../eslint/bin/eslint.js" "$@"
16
+ exec node "$basedir/../../../../../../eslint@9.17.0/node_modules/eslint/bin/eslint.js" "$@"
12
17
  fi
@@ -6,9 +6,9 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/eslint@9.17.0/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/eslint@9.17.0/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
14
  exec "$basedir/node" "$basedir/../../../../../../eslint@9.17.0/node_modules/eslint/bin/eslint.js" "$@"
@@ -6,9 +6,9 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
14
  exec "$basedir/node" "$basedir/../../../../../../typescript@5.6.3/node_modules/typescript/bin/tsc" "$@"
@@ -6,9 +6,9 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
14
  exec "$basedir/node" "$basedir/../../../../../../typescript@5.6.3/node_modules/typescript/bin/tsserver" "$@"
@@ -6,9 +6,9 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/eslint@9.17.0/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/eslint@9.17.0/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
14
  exec "$basedir/node" "$basedir/../../../../../../eslint@9.17.0/node_modules/eslint/bin/eslint.js" "$@"
@@ -6,9 +6,9 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
14
  exec "$basedir/node" "$basedir/../../../../../../typescript@5.6.3/node_modules/typescript/bin/tsc" "$@"
@@ -6,9 +6,9 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
14
  exec "$basedir/node" "$basedir/../../../../../../typescript@5.6.3/node_modules/typescript/bin/tsserver" "$@"
@@ -6,9 +6,9 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
14
  exec "$basedir/node" "$basedir/../../../../../../typescript@5.6.3/node_modules/typescript/bin/tsc" "$@"
@@ -6,9 +6,9 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
14
  exec "$basedir/node" "$basedir/../../../../../../typescript@5.6.3/node_modules/typescript/bin/tsserver" "$@"
@@ -6,9 +6,9 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
14
  exec "$basedir/node" "$basedir/../../../../../../typescript@5.6.3/node_modules/typescript/bin/tsc" "$@"
@@ -6,9 +6,9 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules/typescript/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/typescript@5.6.3/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
14
  exec "$basedir/node" "$basedir/../../../../../../typescript@5.6.3/node_modules/typescript/bin/tsserver" "$@"
@@ -6,9 +6,9 @@ case `uname` in
6
6
  esac
7
7
 
8
8
  if [ -z "$NODE_PATH" ]; then
9
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/eslint@9.17.0/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules"
9
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules"
10
10
  else
11
- export NODE_PATH="/Users/baraklagziel/code/venos/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/bin/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/eslint@9.17.0/node_modules:/Users/baraklagziel/code/venos/node_modules/.pnpm/node_modules:$NODE_PATH"
11
+ export NODE_PATH="/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/bin/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules/eslint/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/eslint@9.17.0/node_modules:/Users/baraklagziel/code/venos/.worktrees/pixellot-ingest/node_modules/.pnpm/node_modules:$NODE_PATH"
12
12
  fi
13
13
  if [ -x "$basedir/node" ]; then
14
14
  exec "$basedir/node" "$basedir/../../../../../../eslint@9.17.0/node_modules/eslint/bin/eslint.js" "$@"