@psnext/slingcli 2.4.20260526-1 → 2.4.20260527-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 (382) hide show
  1. package/bin/sling.js +4 -1
  2. package/node_modules/@aws-sdk/core/package.json +2 -2
  3. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  4. package/node_modules/@aws-sdk/credential-provider-http/dist-cjs/fromHttp/fromHttp.js +12 -6
  5. package/node_modules/@aws-sdk/credential-provider-http/dist-es/fromHttp/fromHttp.js +12 -6
  6. package/node_modules/@aws-sdk/credential-provider-http/package.json +3 -2
  7. package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
  8. package/node_modules/@aws-sdk/credential-provider-login/package.json +3 -3
  9. package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  10. package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  11. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/package.json +3 -3
  12. package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  13. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  14. package/node_modules/@aws-sdk/middleware-websocket/package.json +2 -2
  15. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/cognito-identity/index.js +1 -1
  16. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/signin/index.js +1 -1
  17. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso/index.js +1 -1
  18. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sso-oidc/index.js +1 -1
  19. package/node_modules/@aws-sdk/nested-clients/dist-cjs/submodules/sts/index.js +1 -1
  20. package/node_modules/@aws-sdk/nested-clients/package.json +3 -3
  21. package/node_modules/@aws-sdk/signature-v4-multi-region/package.json +1 -2
  22. package/node_modules/@aws-sdk/xml-builder/package.json +2 -2
  23. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js +18 -24
  24. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  25. package/node_modules/@earendil-works/pi-ai/dist/cli.js +14 -0
  26. package/node_modules/@earendil-works/pi-ai/dist/models.generated.js +88 -107
  27. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js +2 -1
  28. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js +8 -22
  29. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.js +1 -1
  30. package/node_modules/@earendil-works/pi-ai/dist/providers/images/openrouter.js +1 -1
  31. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js +47 -30
  32. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js +1 -1
  33. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js +1 -1
  34. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.js +55 -0
  35. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js +45 -69
  36. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/index.js +1 -0
  37. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js +5 -2
  38. package/node_modules/@earendil-works/pi-ai/package.json +4 -3
  39. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/file-processor.js +2 -3
  40. package/node_modules/@earendil-works/pi-coding-agent/dist/config.js +18 -12
  41. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-runtime.js +2 -1
  42. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.js +3 -2
  43. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js +8 -2
  44. package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.js +2 -1
  45. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/compaction.js +18 -24
  46. package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js +8 -6
  47. package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js +6 -3
  48. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js +12 -29
  49. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.js +5 -1
  50. package/node_modules/@earendil-works/pi-coding-agent/dist/core/output-guard.js +52 -22
  51. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js +63 -36
  52. package/node_modules/@earendil-works/pi-coding-agent/dist/core/prompt-templates.js +6 -20
  53. package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js +38 -31
  54. package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.js +9 -4
  55. package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js +32 -24
  56. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js +6 -13
  57. package/node_modules/@earendil-works/pi-coding-agent/dist/core/skills.js +8 -22
  58. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js +54 -53
  59. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit-diff.js +8 -1
  60. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.js +44 -81
  61. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/file-mutation-queue.js +27 -12
  62. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.js +2 -3
  63. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.js +3 -3
  64. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.js +5 -5
  65. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/output-accumulator.js +9 -3
  66. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/path-utils.js +39 -21
  67. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js +9 -8
  68. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/truncate.js +12 -2
  69. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js +20 -35
  70. package/node_modules/@earendil-works/pi-coding-agent/dist/main.js +5 -6
  71. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/config-selector.js +1 -1
  72. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.js +14 -5
  73. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/login-dialog.js +29 -4
  74. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message.js +1 -1
  75. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +4 -4
  76. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.js +37 -28
  77. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.js +64 -7
  78. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js +15 -3
  79. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard-native.js +14 -8
  80. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-core.js +124 -0
  81. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-worker.js +31 -0
  82. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize.js +75 -115
  83. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/paths.js +33 -7
  84. package/node_modules/@earendil-works/pi-coding-agent/npm-shrinkwrap.json +13 -26
  85. package/node_modules/@earendil-works/pi-coding-agent/package.json +6 -6
  86. package/node_modules/@earendil-works/pi-tui/dist/components/editor.js +40 -55
  87. package/node_modules/@earendil-works/pi-tui/dist/components/input.js +2 -2
  88. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js +12 -2
  89. package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js +53 -0
  90. package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js +4 -1
  91. package/node_modules/@earendil-works/pi-tui/dist/terminal.js +38 -16
  92. package/node_modules/@earendil-works/pi-tui/dist/utils.js +19 -12
  93. package/node_modules/@earendil-works/pi-tui/native/darwin/prebuilds/darwin-arm64/darwin-modifiers.node +0 -0
  94. package/node_modules/@earendil-works/pi-tui/native/darwin/prebuilds/darwin-x64/darwin-modifiers.node +0 -0
  95. package/node_modules/@earendil-works/pi-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
  96. package/node_modules/@earendil-works/pi-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
  97. package/node_modules/@earendil-works/pi-tui/package.json +3 -5
  98. package/node_modules/@smithy/core/dist-cjs/index.js +3 -4
  99. package/node_modules/@smithy/core/dist-cjs/submodules/client/index.js +3 -11
  100. package/node_modules/@smithy/core/dist-cjs/submodules/config/index.browser.js +2 -2
  101. package/node_modules/@smithy/core/dist-cjs/submodules/config/index.js +2 -2
  102. package/node_modules/@smithy/core/dist-cjs/submodules/config/index.native.js +2 -2
  103. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.browser.js +9 -40
  104. package/node_modules/@smithy/core/dist-cjs/submodules/endpoints/index.js +9 -40
  105. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +12 -142
  106. package/node_modules/@smithy/core/dist-cjs/submodules/schema/index.js +7 -9
  107. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.browser.js +2 -2
  108. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.js +2 -2
  109. package/node_modules/@smithy/core/dist-cjs/submodules/serde/index.native.js +2 -2
  110. package/node_modules/@smithy/core/dist-cjs/submodules/transport/index.js +184 -0
  111. package/node_modules/@smithy/core/dist-es/index.js +6 -6
  112. package/node_modules/@smithy/core/dist-es/submodules/client/index.js +2 -2
  113. package/node_modules/@smithy/core/dist-es/submodules/config/config-resolver/regionConfig/checkRegion.js +1 -1
  114. package/node_modules/@smithy/core/dist-es/submodules/endpoints/index.browser.js +2 -2
  115. package/node_modules/@smithy/core/dist-es/submodules/endpoints/index.js +2 -2
  116. package/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/adaptors/toEndpointV1.js +1 -1
  117. package/node_modules/@smithy/core/dist-es/submodules/endpoints/middleware-endpoint/resolveEndpointConfig.js +1 -1
  118. package/node_modules/@smithy/core/dist-es/submodules/endpoints/util-endpoints/lib/index.js +1 -1
  119. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +1 -1
  120. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpProtocol.js +1 -2
  121. package/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js +1 -1
  122. package/node_modules/@smithy/core/dist-es/submodules/protocols/index.js +5 -5
  123. package/node_modules/@smithy/core/dist-es/submodules/protocols/middleware-content-length/contentLengthMiddleware.js +1 -1
  124. package/node_modules/@smithy/core/dist-es/submodules/protocols/requestBuilder.js +1 -1
  125. package/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaDeserializationMiddleware.js +3 -4
  126. package/node_modules/@smithy/core/dist-es/submodules/schema/middleware/schemaSerializationMiddleware.js +1 -2
  127. package/node_modules/@smithy/core/dist-es/submodules/serde/middleware-serde/deserializerMiddleware.js +1 -1
  128. package/node_modules/@smithy/core/dist-es/submodules/transport/index.js +9 -0
  129. package/node_modules/@smithy/core/dist-es/submodules/{protocols/url-parser → transport}/parseUrl.js +1 -1
  130. package/node_modules/@smithy/core/dist-es/submodules/{endpoints → transport}/toEndpointV1.js +1 -1
  131. package/node_modules/@smithy/core/dist-types/index.d.ts +10 -6
  132. package/node_modules/@smithy/core/dist-types/submodules/client/index.d.ts +2 -2
  133. package/node_modules/@smithy/core/dist-types/submodules/endpoints/index.browser.d.ts +2 -2
  134. package/node_modules/@smithy/core/dist-types/submodules/endpoints/index.d.ts +2 -2
  135. package/node_modules/@smithy/core/dist-types/submodules/endpoints/middleware-endpoint/adaptors/toEndpointV1.d.ts +2 -2
  136. package/node_modules/@smithy/core/dist-types/submodules/endpoints/util-endpoints/lib/index.d.ts +1 -1
  137. package/node_modules/@smithy/core/dist-types/submodules/protocols/HttpBindingProtocol.d.ts +1 -1
  138. package/node_modules/@smithy/core/dist-types/submodules/protocols/index.d.ts +5 -5
  139. package/node_modules/@smithy/core/dist-types/submodules/protocols/protocol-http/httpHandler.d.ts +1 -2
  140. package/node_modules/@smithy/core/dist-types/submodules/protocols/requestBuilder.d.ts +1 -1
  141. package/node_modules/@smithy/core/dist-types/submodules/transport/index.d.ts +9 -0
  142. package/node_modules/@smithy/core/package.json +19 -10
  143. package/node_modules/@smithy/core/transport.d.ts +5 -0
  144. package/node_modules/@smithy/core/transport.js +5 -0
  145. package/node_modules/@smithy/credential-provider-imds/package.json +2 -2
  146. package/node_modules/@smithy/fetch-http-handler/package.json +2 -2
  147. package/node_modules/@smithy/node-http-handler/package.json +2 -2
  148. package/node_modules/@smithy/signature-v4/package.json +2 -2
  149. package/node_modules/lru-cache/dist/commonjs/browser/index.d.ts +2 -2
  150. package/node_modules/lru-cache/dist/commonjs/browser/index.d.ts.map +1 -1
  151. package/node_modules/lru-cache/dist/commonjs/browser/index.js.map +1 -1
  152. package/node_modules/lru-cache/dist/commonjs/browser/index.min.js.map +1 -1
  153. package/node_modules/lru-cache/dist/commonjs/index.d.ts +2 -2
  154. package/node_modules/lru-cache/dist/commonjs/index.d.ts.map +1 -1
  155. package/node_modules/lru-cache/dist/commonjs/index.js.map +1 -1
  156. package/node_modules/lru-cache/dist/commonjs/index.min.js.map +1 -1
  157. package/node_modules/lru-cache/dist/commonjs/node/index.d.ts +2 -2
  158. package/node_modules/lru-cache/dist/commonjs/node/index.d.ts.map +1 -1
  159. package/node_modules/lru-cache/dist/commonjs/node/index.js.map +1 -1
  160. package/node_modules/lru-cache/dist/commonjs/node/index.min.js.map +1 -1
  161. package/node_modules/lru-cache/dist/esm/browser/index.d.ts +2 -2
  162. package/node_modules/lru-cache/dist/esm/browser/index.d.ts.map +1 -1
  163. package/node_modules/lru-cache/dist/esm/browser/index.js.map +1 -1
  164. package/node_modules/lru-cache/dist/esm/browser/index.min.js.map +1 -1
  165. package/node_modules/lru-cache/dist/esm/index.d.ts +2 -2
  166. package/node_modules/lru-cache/dist/esm/index.d.ts.map +1 -1
  167. package/node_modules/lru-cache/dist/esm/index.js.map +1 -1
  168. package/node_modules/lru-cache/dist/esm/index.min.js.map +1 -1
  169. package/node_modules/lru-cache/dist/esm/node/index.d.ts +2 -2
  170. package/node_modules/lru-cache/dist/esm/node/index.d.ts.map +1 -1
  171. package/node_modules/lru-cache/dist/esm/node/index.js.map +1 -1
  172. package/node_modules/lru-cache/dist/esm/node/index.min.js.map +1 -1
  173. package/node_modules/lru-cache/package.json +1 -1
  174. package/package.json +6 -6
  175. package/slingshot/index.js +246 -244
  176. package/node_modules/@smithy/core/dist-cjs/getSmithyContext.js +0 -6
  177. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js +0 -21
  178. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/getHttpAuthSchemePlugin.js +0 -21
  179. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/httpAuthSchemeMiddleware.js +0 -46
  180. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/index.js +0 -6
  181. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/resolveAuthOptions.js +0 -24
  182. package/node_modules/@smithy/core/dist-cjs/middleware-http-signing/getHttpSigningMiddleware.js +0 -19
  183. package/node_modules/@smithy/core/dist-cjs/middleware-http-signing/httpSigningMiddleware.js +0 -27
  184. package/node_modules/@smithy/core/dist-cjs/middleware-http-signing/index.js +0 -5
  185. package/node_modules/@smithy/core/dist-cjs/normalizeProvider.js +0 -10
  186. package/node_modules/@smithy/core/dist-cjs/pagination/createPaginator.js +0 -44
  187. package/node_modules/@smithy/core/dist-cjs/request-builder/requestBuilder.js +0 -5
  188. package/node_modules/@smithy/core/dist-cjs/setFeature.js +0 -14
  189. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/DefaultIdentityProviderConfig.js +0 -18
  190. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.js +0 -38
  191. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.js +0 -15
  192. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/index.js +0 -6
  193. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/noAuth.js +0 -9
  194. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/index.js +0 -6
  195. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/memoizeIdentityProvider.js +0 -61
  196. package/node_modules/@smithy/core/dist-es/request-builder/requestBuilder.js +0 -1
  197. package/node_modules/@smithy/core/dist-es/submodules/client/util-middleware/getSmithyContext.js +0 -2
  198. package/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/TestVectors.fixture.js +0 -146
  199. package/node_modules/@smithy/core/dist-es/submodules/event-streams/eventstream-codec/vectorTypes.fixture.js +0 -1
  200. package/node_modules/@smithy/core/dist-types/request-builder/requestBuilder.d.ts +0 -6
  201. package/node_modules/@smithy/core/dist-types/submodules/client/util-middleware/getSmithyContext.d.ts +0 -5
  202. package/node_modules/@smithy/core/dist-types/submodules/event-streams/eventstream-codec/TestVectors.fixture.d.ts +0 -2
  203. package/node_modules/@smithy/core/dist-types/submodules/event-streams/eventstream-codec/vectorTypes.fixture.d.ts +0 -12
  204. package/node_modules/@smithy/credential-provider-imds/dist-es/remoteProvider/index.js +0 -2
  205. package/node_modules/@smithy/credential-provider-imds/dist-types/remoteProvider/index.d.ts +0 -8
  206. package/node_modules/@smithy/signature-v4/dist-es/suite.fixture.js +0 -399
  207. package/node_modules/@smithy/signature-v4/dist-types/suite.fixture.d.ts +0 -14
  208. package/node_modules/koffi/CHANGELOG.md +0 -1093
  209. package/node_modules/koffi/LICENSE.txt +0 -22
  210. package/node_modules/koffi/README.md +0 -43
  211. package/node_modules/koffi/build/koffi/darwin_arm64/koffi.node +0 -0
  212. package/node_modules/koffi/build/koffi/darwin_x64/koffi.node +0 -0
  213. package/node_modules/koffi/build/koffi/freebsd_arm64/koffi.node +0 -0
  214. package/node_modules/koffi/build/koffi/freebsd_ia32/koffi.node +0 -0
  215. package/node_modules/koffi/build/koffi/freebsd_x64/koffi.node +0 -0
  216. package/node_modules/koffi/build/koffi/linux_arm64/koffi.node +0 -0
  217. package/node_modules/koffi/build/koffi/linux_armhf/koffi.node +0 -0
  218. package/node_modules/koffi/build/koffi/linux_ia32/koffi.node +0 -0
  219. package/node_modules/koffi/build/koffi/linux_loong64/koffi.node +0 -0
  220. package/node_modules/koffi/build/koffi/linux_riscv64d/koffi.node +0 -0
  221. package/node_modules/koffi/build/koffi/linux_x64/koffi.node +0 -0
  222. package/node_modules/koffi/build/koffi/musl_arm64/koffi.node +0 -0
  223. package/node_modules/koffi/build/koffi/musl_x64/koffi.node +0 -0
  224. package/node_modules/koffi/build/koffi/openbsd_ia32/koffi.node +0 -0
  225. package/node_modules/koffi/build/koffi/openbsd_x64/koffi.node +0 -0
  226. package/node_modules/koffi/build/koffi/win32_arm64/koffi.exp +0 -0
  227. package/node_modules/koffi/build/koffi/win32_arm64/koffi.lib +0 -0
  228. package/node_modules/koffi/build/koffi/win32_arm64/koffi.node +0 -0
  229. package/node_modules/koffi/build/koffi/win32_ia32/koffi.exp +0 -0
  230. package/node_modules/koffi/build/koffi/win32_ia32/koffi.lib +0 -0
  231. package/node_modules/koffi/build/koffi/win32_ia32/koffi.node +0 -0
  232. package/node_modules/koffi/build/koffi/win32_x64/koffi.exp +0 -0
  233. package/node_modules/koffi/build/koffi/win32_x64/koffi.lib +0 -0
  234. package/node_modules/koffi/build/koffi/win32_x64/koffi.node +0 -0
  235. package/node_modules/koffi/doc/benchmarks.md +0 -126
  236. package/node_modules/koffi/doc/callbacks.md +0 -210
  237. package/node_modules/koffi/doc/contribute.md +0 -148
  238. package/node_modules/koffi/doc/functions.md +0 -250
  239. package/node_modules/koffi/doc/index.md +0 -61
  240. package/node_modules/koffi/doc/input.md +0 -471
  241. package/node_modules/koffi/doc/migration.md +0 -159
  242. package/node_modules/koffi/doc/misc.md +0 -180
  243. package/node_modules/koffi/doc/output.md +0 -305
  244. package/node_modules/koffi/doc/packaging.md +0 -88
  245. package/node_modules/koffi/doc/platforms.md +0 -36
  246. package/node_modules/koffi/doc/pointers.md +0 -328
  247. package/node_modules/koffi/doc/start.md +0 -118
  248. package/node_modules/koffi/doc/unions.md +0 -186
  249. package/node_modules/koffi/doc/variables.md +0 -102
  250. package/node_modules/koffi/index.d.ts +0 -288
  251. package/node_modules/koffi/index.js +0 -634
  252. package/node_modules/koffi/indirect.js +0 -533
  253. package/node_modules/koffi/lib/native/base/base.cc +0 -11015
  254. package/node_modules/koffi/lib/native/base/base.hh +0 -6003
  255. package/node_modules/koffi/lib/native/base/crc.inc +0 -2214
  256. package/node_modules/koffi/lib/native/base/crc_gen.py +0 -72
  257. package/node_modules/koffi/lib/native/base/mimetypes.inc +0 -1248
  258. package/node_modules/koffi/lib/native/base/mimetypes_gen.py +0 -58
  259. package/node_modules/koffi/lib/native/base/tower.cc +0 -821
  260. package/node_modules/koffi/lib/native/base/tower.hh +0 -81
  261. package/node_modules/koffi/lib/native/base/unicode.inc +0 -408
  262. package/node_modules/koffi/lib/native/base/unicode_gen.py +0 -152
  263. package/node_modules/koffi/package.json +0 -38
  264. package/node_modules/koffi/src/cnoke/LICENSE.txt +0 -22
  265. package/node_modules/koffi/src/cnoke/README.md +0 -99
  266. package/node_modules/koffi/src/cnoke/assets/FindCNoke.cmake +0 -127
  267. package/node_modules/koffi/src/cnoke/assets/toolchains.json +0 -126
  268. package/node_modules/koffi/src/cnoke/assets/win_delay_hook.c +0 -36
  269. package/node_modules/koffi/src/cnoke/cnoke.js +0 -170
  270. package/node_modules/koffi/src/cnoke/package.json +0 -24
  271. package/node_modules/koffi/src/cnoke/src/builder.js +0 -511
  272. package/node_modules/koffi/src/cnoke/src/index.js +0 -10
  273. package/node_modules/koffi/src/cnoke/src/tools.js +0 -407
  274. package/node_modules/koffi/src/koffi/CMakeLists.txt +0 -182
  275. package/node_modules/koffi/src/koffi/src/abi_arm32.cc +0 -1018
  276. package/node_modules/koffi/src/koffi/src/abi_arm32_asm.S +0 -169
  277. package/node_modules/koffi/src/koffi/src/abi_arm64.cc +0 -1295
  278. package/node_modules/koffi/src/koffi/src/abi_arm64_asm.S +0 -195
  279. package/node_modules/koffi/src/koffi/src/abi_arm64_asm.asm +0 -174
  280. package/node_modules/koffi/src/koffi/src/abi_loong64.cc +0 -5
  281. package/node_modules/koffi/src/koffi/src/abi_loong64_asm.S +0 -204
  282. package/node_modules/koffi/src/koffi/src/abi_riscv64.cc +0 -915
  283. package/node_modules/koffi/src/koffi/src/abi_riscv64_asm.S +0 -203
  284. package/node_modules/koffi/src/koffi/src/abi_x64_sysv.cc +0 -939
  285. package/node_modules/koffi/src/koffi/src/abi_x64_sysv_asm.S +0 -231
  286. package/node_modules/koffi/src/koffi/src/abi_x64_win.cc +0 -715
  287. package/node_modules/koffi/src/koffi/src/abi_x64_win_asm.S +0 -166
  288. package/node_modules/koffi/src/koffi/src/abi_x64_win_asm.asm +0 -192
  289. package/node_modules/koffi/src/koffi/src/abi_x86.cc +0 -860
  290. package/node_modules/koffi/src/koffi/src/abi_x86_asm.S +0 -193
  291. package/node_modules/koffi/src/koffi/src/abi_x86_asm.asm +0 -177
  292. package/node_modules/koffi/src/koffi/src/call.cc +0 -1326
  293. package/node_modules/koffi/src/koffi/src/call.hh +0 -179
  294. package/node_modules/koffi/src/koffi/src/errno.inc +0 -462
  295. package/node_modules/koffi/src/koffi/src/ffi.cc +0 -2702
  296. package/node_modules/koffi/src/koffi/src/ffi.hh +0 -354
  297. package/node_modules/koffi/src/koffi/src/init.js +0 -105
  298. package/node_modules/koffi/src/koffi/src/parser.cc +0 -220
  299. package/node_modules/koffi/src/koffi/src/parser.hh +0 -54
  300. package/node_modules/koffi/src/koffi/src/util.cc +0 -1807
  301. package/node_modules/koffi/src/koffi/src/util.hh +0 -221
  302. package/node_modules/koffi/src/koffi/src/uv.cc +0 -193
  303. package/node_modules/koffi/src/koffi/src/uv.def +0 -10
  304. package/node_modules/koffi/src/koffi/src/uv.hh +0 -40
  305. package/node_modules/koffi/src/koffi/src/win32.cc +0 -198
  306. package/node_modules/koffi/src/koffi/src/win32.hh +0 -119
  307. package/node_modules/koffi/src/koffi/tools/write_trampolines.js +0 -77
  308. package/node_modules/koffi/vendor/node-addon-api/LICENSE.md +0 -9
  309. package/node_modules/koffi/vendor/node-addon-api/README.md +0 -95
  310. package/node_modules/koffi/vendor/node-addon-api/napi-inl.deprecated.h +0 -186
  311. package/node_modules/koffi/vendor/node-addon-api/napi-inl.h +0 -7033
  312. package/node_modules/koffi/vendor/node-addon-api/napi.h +0 -3309
  313. package/node_modules/koffi/vendor/node-api-headers/LICENSE +0 -21
  314. package/node_modules/koffi/vendor/node-api-headers/README.md +0 -95
  315. package/node_modules/koffi/vendor/node-api-headers/def/js_native_api.def +0 -125
  316. package/node_modules/koffi/vendor/node-api-headers/def/node_api.def +0 -157
  317. package/node_modules/koffi/vendor/node-api-headers/include/js_native_api.h +0 -591
  318. package/node_modules/koffi/vendor/node-api-headers/include/js_native_api_types.h +0 -210
  319. package/node_modules/koffi/vendor/node-api-headers/include/node_api.h +0 -265
  320. package/node_modules/koffi/vendor/node-api-headers/include/node_api_types.h +0 -58
  321. package/node_modules/koffi/vendor/node-api-headers/include/uv/aix.h +0 -32
  322. package/node_modules/koffi/vendor/node-api-headers/include/uv/bsd.h +0 -34
  323. package/node_modules/koffi/vendor/node-api-headers/include/uv/darwin.h +0 -61
  324. package/node_modules/koffi/vendor/node-api-headers/include/uv/errno.h +0 -483
  325. package/node_modules/koffi/vendor/node-api-headers/include/uv/linux.h +0 -34
  326. package/node_modules/koffi/vendor/node-api-headers/include/uv/os390.h +0 -33
  327. package/node_modules/koffi/vendor/node-api-headers/include/uv/posix.h +0 -31
  328. package/node_modules/koffi/vendor/node-api-headers/include/uv/sunos.h +0 -44
  329. package/node_modules/koffi/vendor/node-api-headers/include/uv/threadpool.h +0 -37
  330. package/node_modules/koffi/vendor/node-api-headers/include/uv/tree.h +0 -521
  331. package/node_modules/koffi/vendor/node-api-headers/include/uv/unix.h +0 -512
  332. package/node_modules/koffi/vendor/node-api-headers/include/uv/version.h +0 -43
  333. package/node_modules/koffi/vendor/node-api-headers/include/uv/win.h +0 -698
  334. package/node_modules/koffi/vendor/node-api-headers/include/uv.h +0 -1990
  335. /package/node_modules/@smithy/core/dist-es/{middleware-http-auth-scheme → legacy-root-exports/middleware-http-auth-scheme}/getHttpAuthSchemeEndpointRuleSetPlugin.js +0 -0
  336. /package/node_modules/@smithy/core/dist-es/{middleware-http-auth-scheme → legacy-root-exports/middleware-http-auth-scheme}/getHttpAuthSchemePlugin.js +0 -0
  337. /package/node_modules/@smithy/core/dist-es/{middleware-http-auth-scheme → legacy-root-exports/middleware-http-auth-scheme}/httpAuthSchemeMiddleware.js +0 -0
  338. /package/node_modules/@smithy/core/dist-es/{middleware-http-auth-scheme → legacy-root-exports/middleware-http-auth-scheme}/index.js +0 -0
  339. /package/node_modules/@smithy/core/dist-es/{middleware-http-auth-scheme → legacy-root-exports/middleware-http-auth-scheme}/resolveAuthOptions.js +0 -0
  340. /package/node_modules/@smithy/core/dist-es/{middleware-http-signing → legacy-root-exports/middleware-http-signing}/getHttpSigningMiddleware.js +0 -0
  341. /package/node_modules/@smithy/core/dist-es/{middleware-http-signing → legacy-root-exports/middleware-http-signing}/httpSigningMiddleware.js +0 -0
  342. /package/node_modules/@smithy/core/dist-es/{middleware-http-signing → legacy-root-exports/middleware-http-signing}/index.js +0 -0
  343. /package/node_modules/@smithy/core/dist-es/{pagination → legacy-root-exports/pagination}/createPaginator.js +0 -0
  344. /package/node_modules/@smithy/core/dist-es/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/DefaultIdentityProviderConfig.js +0 -0
  345. /package/node_modules/@smithy/core/dist-es/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/httpAuthSchemes/httpApiKeyAuth.js +0 -0
  346. /package/node_modules/@smithy/core/dist-es/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/httpAuthSchemes/httpBearerAuth.js +0 -0
  347. /package/node_modules/@smithy/core/dist-es/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/httpAuthSchemes/index.js +0 -0
  348. /package/node_modules/@smithy/core/dist-es/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/httpAuthSchemes/noAuth.js +0 -0
  349. /package/node_modules/@smithy/core/dist-es/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/index.js +0 -0
  350. /package/node_modules/@smithy/core/dist-es/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/memoizeIdentityProvider.js +0 -0
  351. /package/node_modules/@smithy/core/dist-es/{getSmithyContext.js → submodules/transport/getSmithyContext.js} +0 -0
  352. /package/node_modules/@smithy/core/dist-es/submodules/{protocols/protocol-http → transport}/httpRequest.js +0 -0
  353. /package/node_modules/@smithy/core/dist-es/submodules/{protocols/protocol-http → transport}/httpResponse.js +0 -0
  354. /package/node_modules/@smithy/core/dist-es/submodules/{endpoints/util-endpoints/lib → transport}/isValidHostLabel.js +0 -0
  355. /package/node_modules/@smithy/core/dist-es/submodules/{protocols/protocol-http → transport}/isValidHostname.js +0 -0
  356. /package/node_modules/@smithy/core/dist-es/submodules/{client/util-middleware → transport}/normalizeProvider.js +0 -0
  357. /package/node_modules/@smithy/core/dist-es/submodules/{protocols/querystring-parser → transport}/parseQueryString.js +0 -0
  358. /package/node_modules/@smithy/core/dist-types/{middleware-http-auth-scheme → legacy-root-exports/middleware-http-auth-scheme}/getHttpAuthSchemeEndpointRuleSetPlugin.d.ts +0 -0
  359. /package/node_modules/@smithy/core/dist-types/{middleware-http-auth-scheme → legacy-root-exports/middleware-http-auth-scheme}/getHttpAuthSchemePlugin.d.ts +0 -0
  360. /package/node_modules/@smithy/core/dist-types/{middleware-http-auth-scheme → legacy-root-exports/middleware-http-auth-scheme}/httpAuthSchemeMiddleware.d.ts +0 -0
  361. /package/node_modules/@smithy/core/dist-types/{middleware-http-auth-scheme → legacy-root-exports/middleware-http-auth-scheme}/index.d.ts +0 -0
  362. /package/node_modules/@smithy/core/dist-types/{middleware-http-auth-scheme → legacy-root-exports/middleware-http-auth-scheme}/resolveAuthOptions.d.ts +0 -0
  363. /package/node_modules/@smithy/core/dist-types/{middleware-http-signing → legacy-root-exports/middleware-http-signing}/getHttpSigningMiddleware.d.ts +0 -0
  364. /package/node_modules/@smithy/core/dist-types/{middleware-http-signing → legacy-root-exports/middleware-http-signing}/httpSigningMiddleware.d.ts +0 -0
  365. /package/node_modules/@smithy/core/dist-types/{middleware-http-signing → legacy-root-exports/middleware-http-signing}/index.d.ts +0 -0
  366. /package/node_modules/@smithy/core/dist-types/{pagination → legacy-root-exports/pagination}/createPaginator.d.ts +0 -0
  367. /package/node_modules/@smithy/core/dist-types/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/DefaultIdentityProviderConfig.d.ts +0 -0
  368. /package/node_modules/@smithy/core/dist-types/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/httpAuthSchemes/httpApiKeyAuth.d.ts +0 -0
  369. /package/node_modules/@smithy/core/dist-types/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/httpAuthSchemes/httpBearerAuth.d.ts +0 -0
  370. /package/node_modules/@smithy/core/dist-types/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/httpAuthSchemes/index.d.ts +0 -0
  371. /package/node_modules/@smithy/core/dist-types/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/httpAuthSchemes/noAuth.d.ts +0 -0
  372. /package/node_modules/@smithy/core/dist-types/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/index.d.ts +0 -0
  373. /package/node_modules/@smithy/core/dist-types/{util-identity-and-auth → legacy-root-exports/util-identity-and-auth}/memoizeIdentityProvider.d.ts +0 -0
  374. /package/node_modules/@smithy/core/dist-types/{getSmithyContext.d.ts → submodules/transport/getSmithyContext.d.ts} +0 -0
  375. /package/node_modules/@smithy/core/dist-types/submodules/{protocols/protocol-http → transport}/httpRequest.d.ts +0 -0
  376. /package/node_modules/@smithy/core/dist-types/submodules/{protocols/protocol-http → transport}/httpResponse.d.ts +0 -0
  377. /package/node_modules/@smithy/core/dist-types/submodules/{endpoints/util-endpoints/lib → transport}/isValidHostLabel.d.ts +0 -0
  378. /package/node_modules/@smithy/core/dist-types/submodules/{protocols/protocol-http → transport}/isValidHostname.d.ts +0 -0
  379. /package/node_modules/@smithy/core/dist-types/submodules/{client/util-middleware → transport}/normalizeProvider.d.ts +0 -0
  380. /package/node_modules/@smithy/core/dist-types/submodules/{protocols/querystring-parser → transport}/parseQueryString.d.ts +0 -0
  381. /package/node_modules/@smithy/core/dist-types/submodules/{protocols/url-parser → transport}/parseUrl.d.ts +0 -0
  382. /package/node_modules/@smithy/core/dist-types/submodules/{endpoints → transport}/toEndpointV1.d.ts +0 -0
@@ -1,166 +0,0 @@
1
- # SPDX-License-Identifier: MIT
2
- # SPDX-FileCopyrightText: 2025 Niels Martignène <niels.martignene@protonmail.com>
3
-
4
- #define SYMBOL(Symbol) Symbol
5
-
6
- # Forward
7
- # ----------------------------
8
-
9
- .global ForwardCallG
10
- .global ForwardCallF
11
- .global ForwardCallD
12
- .global ForwardCallXG
13
- .global ForwardCallXF
14
- .global ForwardCallXD
15
-
16
- .global SehHandler
17
-
18
- # Copy function pointer to RAX, in order to save it through argument forwarding.
19
- # Also make a copy of the SP to CallData::old_sp because the callback system might need it.
20
- # Save RSP in RBX (non-volatile), and use carefully assembled stack provided by caller.
21
- .macro prologue
22
- endbr64
23
- movq %rcx, %rax
24
- push %rbp
25
- movq %rsp, %rbp
26
- movq %rsp, (%r8)
27
- movq %rdx, %rsp
28
- .endm
29
-
30
- # Prepare integer argument registers from array passed by caller.
31
- .macro forward_gpr
32
- movq 24(%rdx), %r9
33
- movq 16(%rdx), %r8
34
- movq 0(%rdx), %rcx
35
- movq 8(%rdx), %rdx
36
- .endm
37
-
38
- # Prepare XMM argument registers from array passed by caller.
39
- .macro forward_xmm
40
- movsd 24(%rdx), %xmm3
41
- movsd 16(%rdx), %xmm2
42
- movsd 8(%rdx), %xmm1
43
- movsd 0(%rdx), %xmm0
44
- .endm
45
-
46
- # CallNative is a minimal wrapper around the native function call.
47
- # Its frame lives entirely on the custom stack, so its EstablisherFrame passes
48
- # the TEB stack bounds check. This ensures that SehHandler is found by
49
- # RtlDispatchException before it tries to cross back to the original stack
50
- # (through ForwardCall*), which would fail the bounds check and terminate.
51
- # After the native call returns, CallNative restores the original stack via
52
- # RBP (non-volatile, preserved by native) and returns directly to the C++ caller.
53
- CallNative:
54
- .seh_proc CallNative
55
- .seh_handler SehHandler, @except
56
- .seh_endprologue
57
- call *%rax
58
- movq %rbp, %rsp
59
- pop %rbp
60
- ret
61
- .seh_endproc
62
-
63
- ForwardCallG:
64
- prologue
65
- forward_gpr
66
- jmp CallNative
67
-
68
- ForwardCallF:
69
- prologue
70
- forward_gpr
71
- jmp CallNative
72
-
73
- ForwardCallD:
74
- prologue
75
- forward_gpr
76
- jmp CallNative
77
-
78
- ForwardCallXG:
79
- prologue
80
- forward_xmm
81
- forward_gpr
82
- jmp CallNative
83
-
84
- ForwardCallXF:
85
- prologue
86
- forward_xmm
87
- forward_gpr
88
- jmp CallNative
89
-
90
- ForwardCallXD:
91
- prologue
92
- forward_xmm
93
- forward_gpr
94
- jmp CallNative
95
-
96
- # Callbacks
97
- # ----------------------------
98
-
99
- .global RelayCallback
100
- .global SwitchAndRelay
101
- .global RelayDirect
102
- .global FindTrampolineStart
103
- .global FindTrampolineEnd
104
-
105
- # First, make a copy of argument registers.
106
- # Then call the C function RelayCallback with the following arguments:
107
- # static trampoline ID, a pointer to the saved GPR array, a pointer to the stack
108
- # arguments of this call, and a pointer to a struct that will contain the result registers.
109
- # After the call, simply load these registers from the output struct.
110
- .macro trampoline id
111
- endbr64
112
- movq $\id, %rax
113
- jmp RelayTrampoline
114
- .endm
115
-
116
- RelayTrampoline:
117
- endbr64
118
- subq $120, %rsp
119
- movq %rcx, 32(%rsp)
120
- movq %rdx, 40(%rsp)
121
- movq %r8, 48(%rsp)
122
- movq %r9, 56(%rsp)
123
- movsd %xmm0, 64(%rsp)
124
- movsd %xmm1, 72(%rsp)
125
- movsd %xmm2, 80(%rsp)
126
- movsd %xmm3, 88(%rsp)
127
- movq %rax, %rcx
128
- leaq 32(%rsp), %rdx
129
- call RelayCallback
130
- movq 96(%rsp), %rax
131
- movsd 104(%rsp), %xmm0
132
- addq $120, %rsp
133
- ret
134
-
135
- # When a callback is relayed, Koffi will call into Node.js and V8 to execute Javascript.
136
- # The problem is that we're still running on the separate Koffi stack, and V8 will
137
- # probably misdetect this as a "stack overflow". We have to restore the old
138
- # stack pointer, call Node.js/V8 and go back to ours.
139
- # The first three parameters (rcx, rdx, r8) are passed through untouched.
140
- SwitchAndRelay:
141
- endbr64
142
- push %rbp
143
- movq %rsp, %rbp
144
- movq %rsp, %r10
145
- movq 48(%rsp), %r11
146
- subq 0(%r11), %r10
147
- andq $-16, %r10
148
- movq %r10, 8(%r11)
149
- leaq -32(%r9), %rsp
150
- call RelayDirect
151
- movq %rbp, %rsp
152
- pop %rbp
153
- ret
154
-
155
- .balign 16
156
- FindTrampolineStart:
157
- leaq 16(%rip), %rax
158
- andq $0xFFFFFFFFFFFFFFF0, %rax
159
- ret
160
- .balign 16
161
-
162
- #include "gnu.inc"
163
-
164
- FindTrampolineEnd:
165
- leaq (%rip), %rax
166
- ret
@@ -1,192 +0,0 @@
1
- ; SPDX-License-Identifier: MIT
2
- ; SPDX-FileCopyrightText: 2025 Niels Martignène <niels.martignene@protonmail.com>
3
-
4
- ; Forward
5
- ; ----------------------------
6
-
7
- ; These three are the same, but they differ (in the C side) by their return type.
8
- ; Unlike the three next functions, these ones don't forward XMM argument registers.
9
- public ForwardCallG
10
- public ForwardCallF
11
- public ForwardCallD
12
-
13
- ; The X variants are slightly slower, and are used when XMM arguments must be forwarded.
14
- public ForwardCallXG
15
- public ForwardCallXF
16
- public ForwardCallXD
17
-
18
- extern SehHandler : PROC
19
-
20
- .code
21
-
22
- ; Copy function pointer to RAX, in order to save it through argument forwarding.
23
- ; Also make a copy of the SP to CallData::old_sp because the callback system might need it.
24
- ; Save RSP in RBX (non-volatile), and use carefully assembled stack provided by caller.
25
- prologue macro
26
- endbr64
27
- mov rax, rcx
28
- push rbp
29
- .pushreg rbp
30
- mov rbp, rsp
31
- mov qword ptr [r8+0], rsp
32
- .setframe rbp, 0
33
- .endprolog
34
- mov rsp, rdx
35
- endm
36
-
37
- ; Prepare integer argument registers from array passed by caller.
38
- forward_gpr macro
39
- mov r9, qword ptr [rdx+24]
40
- mov r8, qword ptr [rdx+16]
41
- mov rcx, qword ptr [rdx+0]
42
- mov rdx, qword ptr [rdx+8]
43
- endm
44
-
45
- ; Prepare XMM argument registers from array passed by caller.
46
- forward_xmm macro
47
- movsd xmm3, qword ptr [rdx+24]
48
- movsd xmm2, qword ptr [rdx+16]
49
- movsd xmm1, qword ptr [rdx+8]
50
- movsd xmm0, qword ptr [rdx+0]
51
- endm
52
-
53
- ; CallNative is a minimal wrapper around the native function call.
54
- ; Its frame lives entirely on the custom stack, so its EstablisherFrame passes
55
- ; the TEB stack bounds check. This ensures that SehHandler is found by
56
- ; RtlDispatchException before it tries to cross back to the original stack
57
- ; (through ForwardCall*), which would fail the bounds check and terminate.
58
- ; After the native call returns, CallNative restores the original stack via
59
- ; RBP (non-volatile, preserved by native) and returns directly to the C++ caller.
60
- CallNative proc frame:SehHandler
61
- .endprolog
62
- call rax
63
- mov rsp, rbp
64
- pop rbp
65
- ret
66
- CallNative endp
67
-
68
- ForwardCallG proc frame
69
- prologue
70
- forward_gpr
71
- jmp CallNative
72
- ForwardCallG endp
73
-
74
- ForwardCallF proc frame
75
- prologue
76
- forward_gpr
77
- jmp CallNative
78
- ForwardCallF endp
79
-
80
- ForwardCallD proc frame
81
- prologue
82
- forward_gpr
83
- jmp CallNative
84
- ForwardCallD endp
85
-
86
- ForwardCallXG proc frame
87
- prologue
88
- forward_xmm
89
- forward_gpr
90
- jmp CallNative
91
- ForwardCallXG endp
92
-
93
- ForwardCallXF proc frame
94
- prologue
95
- forward_xmm
96
- forward_gpr
97
- jmp CallNative
98
- ForwardCallXF endp
99
-
100
- ForwardCallXD proc frame
101
- prologue
102
- forward_xmm
103
- forward_gpr
104
- jmp CallNative
105
- ForwardCallXD endp
106
-
107
- ; Callbacks
108
- ; ----------------------------
109
-
110
- extern RelayCallback : PROC
111
- public SwitchAndRelay
112
- extern RelayDirect : PROC
113
- public FindTrampolineStart
114
- public FindTrampolineEnd
115
-
116
- ; First, make a copy of argument registers.
117
- ; Then call the C function RelayCallback with the following arguments:
118
- ; static trampoline ID, a pointer to the saved GPR array, a pointer to the stack
119
- ; arguments of this call, and a pointer to a struct that will contain the result registers.
120
- ; After the call, simply load these registers from the output struct.
121
- trampoline macro ID
122
- .endprolog
123
- endbr64
124
- mov rax, ID
125
- jmp RelayTrampoline
126
- endm
127
-
128
- RelayTrampoline proc frame
129
- sub rsp, 120
130
- .allocstack 120
131
- .endprolog
132
- mov qword ptr [rsp+32], rcx
133
- mov qword ptr [rsp+40], rdx
134
- mov qword ptr [rsp+48], r8
135
- mov qword ptr [rsp+56], r9
136
- movsd qword ptr [rsp+64], xmm0
137
- movsd qword ptr [rsp+72], xmm1
138
- movsd qword ptr [rsp+80], xmm2
139
- movsd qword ptr [rsp+88], xmm3
140
- mov rcx, rax
141
- lea rdx, qword ptr [rsp+32]
142
- call RelayCallback
143
- mov rax, qword ptr [rsp+96]
144
- movsd xmm0, qword ptr [rsp+104]
145
- add rsp, 120
146
- ret
147
- RelayTrampoline endp
148
-
149
- ; When a callback is relayed, Koffi will call into Node.js and V8 to execute Javascript.
150
- ; The problem is that we're still running on the separate Koffi stack, and V8 will
151
- ; probably misdetect this as a "stack overflow". We have to restore the old
152
- ; stack pointer, call Node.js/V8 and go back to ours.
153
- ; The first three parameters (rcx, rdx, r8) are passed through untouched.
154
- SwitchAndRelay proc frame
155
- endbr64
156
- push rbp
157
- .pushreg rbp
158
- mov rbp, rsp
159
- .setframe rbp, 0
160
- .endprolog
161
- mov r10, rsp
162
- mov r11, qword ptr [rsp+48]
163
- sub r10, qword ptr [r11+0]
164
- and r10, -16
165
- mov qword ptr [r11+8], r10
166
- lea rsp, [r9-32]
167
- call RelayDirect
168
- mov rsp, rbp
169
- pop rbp
170
- ret
171
- SwitchAndRelay endp
172
-
173
- align 16
174
- FindTrampolineStart:
175
- call GetRIP
176
- add rax, 16
177
- and rax, 0FFFFFFFFFFFFFFF0h
178
- ret
179
- align 16
180
-
181
- include masm64.inc
182
-
183
- FindTrampolineEnd:
184
- call GetRIP
185
- ret
186
-
187
- ; I could not f*cking find how to use lea with RIP-relative addressing in MASM64. Oh well.
188
- GetRIP:
189
- mov rax, qword ptr [rsp]
190
- ret
191
-
192
- end