@wrenai/genbi 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/README.md +65 -3
  2. package/dist/assets/{echarts-LTFC-ysd.js → echarts-DYM4hjvk.js} +2 -2
  3. package/dist/assets/index-A_Wrq7Ey.css +1 -0
  4. package/dist/assets/{index-Bo--QMUN.js → index-DsH129tV.js} +18 -17
  5. package/dist/index.html +2 -2
  6. package/dist-server/harness/bundle/schema.d.ts +38 -0
  7. package/dist-server/harness/bundle/schema.js +18 -10
  8. package/dist-server/harness/bundle/version.js +1 -1
  9. package/dist-server/harness/cli-args.d.ts +10 -2
  10. package/dist-server/harness/cli-args.js +24 -8
  11. package/dist-server/harness/cli.js +75 -9
  12. package/dist-server/harness/compile/cache.js +4 -4
  13. package/dist-server/harness/compile/compose-profile.d.ts +51 -14
  14. package/dist-server/harness/compile/compose-profile.js +85 -19
  15. package/dist-server/harness/compile/context-loader.d.ts +56 -0
  16. package/dist-server/harness/compile/context-loader.js +237 -0
  17. package/dist-server/harness/compile/errors.d.ts +19 -0
  18. package/dist-server/harness/compile/errors.js +35 -0
  19. package/dist-server/harness/compile/index.d.ts +4 -3
  20. package/dist-server/harness/compile/index.js +4 -3
  21. package/dist-server/harness/compile/pipeline.d.ts +15 -7
  22. package/dist-server/harness/compile/pipeline.js +62 -14
  23. package/dist-server/harness/compile/resolve-binary.d.ts +2 -2
  24. package/dist-server/harness/compile/resolve-binary.js +3 -3
  25. package/dist-server/harness/compile/types.d.ts +29 -0
  26. package/dist-server/harness/compile/warble-identity.d.ts +11 -0
  27. package/dist-server/harness/compile/warble-identity.js +13 -0
  28. package/dist-server/harness/components/ai-step.d.ts +4 -0
  29. package/dist-server/harness/components/ai-step.js +40 -0
  30. package/dist-server/harness/components/broker.d.ts +60 -0
  31. package/dist-server/harness/components/broker.js +117 -0
  32. package/dist-server/harness/components/capability-card.d.ts +98 -0
  33. package/dist-server/harness/components/capability-card.js +169 -0
  34. package/dist-server/harness/components/context.d.ts +2 -0
  35. package/dist-server/harness/components/context.js +30 -0
  36. package/dist-server/harness/components/display.d.ts +6 -0
  37. package/dist-server/harness/components/display.js +29 -0
  38. package/dist-server/harness/components/egress-judge.d.ts +12 -0
  39. package/dist-server/harness/components/egress-judge.js +27 -0
  40. package/dist-server/harness/components/egress.d.ts +142 -0
  41. package/dist-server/harness/components/egress.js +469 -0
  42. package/dist-server/harness/components/in-process.d.ts +7 -0
  43. package/dist-server/harness/components/in-process.js +245 -0
  44. package/dist-server/harness/components/normalize.d.ts +35 -0
  45. package/dist-server/harness/components/normalize.js +245 -0
  46. package/dist-server/harness/components/plan.d.ts +31 -0
  47. package/dist-server/harness/components/plan.js +184 -0
  48. package/dist-server/harness/components/report.d.ts +207 -0
  49. package/dist-server/harness/components/report.js +309 -0
  50. package/dist-server/harness/components/runner.d.ts +193 -0
  51. package/dist-server/harness/components/runner.js +492 -0
  52. package/dist-server/harness/components/semantic-guards.d.ts +20 -0
  53. package/dist-server/harness/components/semantic-guards.js +42 -0
  54. package/dist-server/harness/components/terminal-json.d.ts +18 -0
  55. package/dist-server/harness/components/terminal-json.js +82 -0
  56. package/dist-server/harness/components/usage.d.ts +14 -0
  57. package/dist-server/harness/components/usage.js +19 -0
  58. package/dist-server/harness/components/wren-access.d.ts +29 -0
  59. package/dist-server/harness/components/wren-access.js +233 -0
  60. package/dist-server/harness/components/zone-dry-run.d.ts +43 -0
  61. package/dist-server/harness/components/zone-dry-run.js +107 -0
  62. package/dist-server/harness/components/zone-gate.d.ts +76 -0
  63. package/dist-server/harness/components/zone-gate.js +144 -0
  64. package/dist-server/harness/events/index.d.ts +1 -1
  65. package/dist-server/harness/events/types.d.ts +52 -0
  66. package/dist-server/harness/index.d.ts +9 -2
  67. package/dist-server/harness/index.js +5 -1
  68. package/dist-server/harness/loop/executor.d.ts +1 -0
  69. package/dist-server/harness/loop/executor.js +37 -15
  70. package/dist-server/harness/npm-package-resolve.d.ts +2 -0
  71. package/dist-server/harness/npm-package-resolve.js +16 -4
  72. package/dist-server/harness/providers/adapters/openai-compatible.d.ts +13 -0
  73. package/dist-server/harness/providers/adapters/openai-compatible.js +17 -0
  74. package/dist-server/harness/providers/adapters/openai.d.ts +7 -0
  75. package/dist-server/harness/providers/adapters/openai.js +6 -0
  76. package/dist-server/harness/providers/adapters/pi-ai.d.ts +48 -0
  77. package/dist-server/harness/providers/adapters/pi-ai.js +518 -0
  78. package/dist-server/harness/providers/binding.d.ts +45 -4
  79. package/dist-server/harness/providers/binding.js +44 -8
  80. package/dist-server/harness/providers/index.d.ts +9 -3
  81. package/dist-server/harness/providers/index.js +10 -3
  82. package/dist-server/harness/providers/zone.d.ts +96 -0
  83. package/dist-server/harness/providers/zone.js +112 -0
  84. package/dist-server/harness/render/answering-query.d.ts +29 -0
  85. package/dist-server/harness/render/answering-query.js +62 -0
  86. package/dist-server/harness/render/envelope.d.ts +6 -0
  87. package/dist-server/harness/render/envelope.js +10 -3
  88. package/dist-server/harness/route/adapter-spec.d.ts +8 -9
  89. package/dist-server/harness/route/adapter-spec.js +13 -14
  90. package/dist-server/harness/route/codex-ask-events.js +2 -1
  91. package/dist-server/harness/route/codex-ask.d.ts +4 -0
  92. package/dist-server/harness/route/codex-ask.js +43 -45
  93. package/dist-server/harness/route/codex-local-manifest.d.ts +9 -1
  94. package/dist-server/harness/route/codex-local-manifest.js +96 -15
  95. package/dist-server/harness/route/describe.js +45 -6
  96. package/dist-server/harness/route/dispatched.d.ts +20 -0
  97. package/dist-server/harness/route/dispatched.js +122 -24
  98. package/dist-server/harness/route/host-query.d.ts +93 -0
  99. package/dist-server/harness/route/host-query.js +257 -0
  100. package/dist-server/harness/route/in-process.d.ts +22 -1
  101. package/dist-server/harness/route/in-process.js +54 -4
  102. package/dist-server/harness/route/route.js +8 -2
  103. package/dist-server/harness/route/types.d.ts +47 -1
  104. package/dist-server/harness/route/wren-host-proxy.d.ts +33 -0
  105. package/dist-server/harness/route/wren-host-proxy.js +228 -0
  106. package/dist-server/harness/session/run.js +30 -10
  107. package/dist-server/harness/setup/runner.d.ts +17 -3
  108. package/dist-server/harness/setup/runner.js +272 -89
  109. package/dist-server/harness/setup/yaml-scalar.d.ts +23 -0
  110. package/dist-server/harness/setup/yaml-scalar.js +62 -0
  111. package/dist-server/harness/tools/setup-native.d.ts +7 -0
  112. package/dist-server/harness/tools/setup-native.js +7 -4
  113. package/dist-server/server/adopt.js +1 -17
  114. package/dist-server/server/app.d.ts +1 -0
  115. package/dist-server/server/app.js +175 -17
  116. package/dist-server/server/auth-choice.d.ts +13 -1
  117. package/dist-server/server/auth-choice.js +66 -1
  118. package/dist-server/server/bin.js +185 -25
  119. package/dist-server/server/codex-native-session.d.ts +25 -0
  120. package/dist-server/server/codex-native-session.js +1 -0
  121. package/dist-server/server/codex-runtime-composition.d.ts +34 -0
  122. package/dist-server/server/codex-runtime-composition.js +250 -0
  123. package/dist-server/server/codex-structured-ask.d.ts +23 -0
  124. package/dist-server/server/codex-structured-ask.js +102 -0
  125. package/dist-server/server/conn-config.js +4 -16
  126. package/dist-server/server/conversation-socket.d.ts +16 -0
  127. package/dist-server/server/conversation-socket.js +65 -0
  128. package/dist-server/server/db.d.ts +46 -0
  129. package/dist-server/server/db.js +88 -9
  130. package/dist-server/server/env-detect.d.ts +6 -0
  131. package/dist-server/server/env-detect.js +7 -0
  132. package/dist-server/server/fold.d.ts +23 -4
  133. package/dist-server/server/fold.js +42 -5
  134. package/dist-server/server/harness.d.ts +2 -2
  135. package/dist-server/server/harness.js +33 -7
  136. package/dist-server/server/host-evidence-grounding.d.ts +21 -0
  137. package/dist-server/server/host-evidence-grounding.js +93 -0
  138. package/dist-server/server/interactive-terminal.d.ts +10 -6
  139. package/dist-server/server/interactive-terminal.js +33 -8
  140. package/dist-server/server/managed-wren-runtime.d.ts +116 -0
  141. package/dist-server/server/managed-wren-runtime.js +670 -0
  142. package/dist-server/server/native-artifacts.d.ts +112 -7
  143. package/dist-server/server/native-artifacts.js +194 -14
  144. package/dist-server/server/native-component-context.d.ts +19 -0
  145. package/dist-server/server/native-component-context.js +76 -0
  146. package/dist-server/server/native-component-preparation.d.ts +20 -0
  147. package/dist-server/server/native-component-preparation.js +129 -0
  148. package/dist-server/server/native-component-runtime.d.ts +36 -0
  149. package/dist-server/server/native-component-runtime.js +92 -0
  150. package/dist-server/server/native-components.d.ts +84 -0
  151. package/dist-server/server/native-components.js +160 -0
  152. package/dist-server/server/native-dispatch-process.d.ts +8 -0
  153. package/dist-server/server/native-dispatch-process.js +65 -0
  154. package/dist-server/server/native-runtime-spec.d.ts +89 -0
  155. package/dist-server/server/native-runtime-spec.js +169 -0
  156. package/dist-server/server/native-sessions.d.ts +172 -19
  157. package/dist-server/server/native-sessions.js +839 -244
  158. package/dist-server/server/native-shutdown.d.ts +6 -0
  159. package/dist-server/server/native-shutdown.js +28 -0
  160. package/dist-server/server/native-wren-home.d.ts +18 -0
  161. package/dist-server/server/native-wren-home.js +262 -0
  162. package/dist-server/server/node-pty-host.d.ts +2 -1
  163. package/dist-server/server/node-pty-host.js +3 -2
  164. package/dist-server/server/profile-registry.d.ts +139 -0
  165. package/dist-server/server/profile-registry.js +620 -0
  166. package/dist-server/server/runtime-binding.d.ts +4 -1
  167. package/dist-server/server/runtime-binding.js +50 -2
  168. package/dist-server/server/runtime-host/claude-component-step.d.ts +25 -0
  169. package/dist-server/server/runtime-host/claude-component-step.js +186 -0
  170. package/dist-server/server/runtime-host/codex-app-server.d.ts +75 -0
  171. package/dist-server/server/runtime-host/codex-app-server.js +239 -0
  172. package/dist-server/server/runtime-host/codex-compatibility.d.ts +110 -0
  173. package/dist-server/server/runtime-host/codex-compatibility.js +162 -0
  174. package/dist-server/server/runtime-host/codex-component-step.d.ts +19 -0
  175. package/dist-server/server/runtime-host/codex-component-step.js +308 -0
  176. package/dist-server/server/runtime-host/codex-conversation.d.ts +109 -0
  177. package/dist-server/server/runtime-host/codex-conversation.js +295 -0
  178. package/dist-server/server/runtime-host/codex-direct-tools.d.ts +23 -0
  179. package/dist-server/server/runtime-host/codex-direct-tools.js +59 -0
  180. package/dist-server/server/runtime-host/codex-events.d.ts +647 -0
  181. package/dist-server/server/runtime-host/codex-events.js +66 -0
  182. package/dist-server/server/runtime-host/codex-policy.d.ts +16 -0
  183. package/dist-server/server/runtime-host/codex-policy.js +151 -0
  184. package/dist-server/server/runtime-host/codex-process.d.ts +8 -0
  185. package/dist-server/server/runtime-host/codex-process.js +96 -0
  186. package/dist-server/server/runtime-host/codex-rpc.d.ts +47 -0
  187. package/dist-server/server/runtime-host/codex-rpc.js +182 -0
  188. package/dist-server/server/runtime-host/codex-session.d.ts +74 -0
  189. package/dist-server/server/runtime-host/codex-session.js +492 -0
  190. package/dist-server/server/runtime-host/codex-terminal-protocol.d.ts +35 -0
  191. package/dist-server/server/runtime-host/codex-terminal-protocol.js +243 -0
  192. package/dist-server/server/runtime-host/codex-terminal.d.ts +16 -0
  193. package/dist-server/server/runtime-host/codex-terminal.js +120 -0
  194. package/dist-server/server/runtime-host/index.d.ts +5 -0
  195. package/dist-server/server/runtime-host/index.js +3 -0
  196. package/dist-server/server/runtime-host/local.d.ts +29 -0
  197. package/dist-server/server/runtime-host/local.js +90 -0
  198. package/dist-server/server/runtime-host/policy.d.ts +8 -0
  199. package/dist-server/server/runtime-host/policy.js +78 -0
  200. package/dist-server/server/runtime-host/types.d.ts +52 -0
  201. package/dist-server/server/runtime-host/types.js +62 -0
  202. package/dist-server/server/structured-query-evidence.d.ts +7 -0
  203. package/dist-server/server/structured-query-evidence.js +47 -0
  204. package/dist-server/server/structured-runtime.d.ts +52 -0
  205. package/dist-server/server/structured-runtime.js +130 -0
  206. package/dist-server/server/structured-scope.d.ts +4 -0
  207. package/dist-server/server/structured-scope.js +12 -0
  208. package/dist-server/server/turn.d.ts +6 -1
  209. package/dist-server/server/turn.js +86 -26
  210. package/dist-server/server/wire-types.d.ts +67 -3
  211. package/dist-server/server/wren-profiles.js +1 -1
  212. package/managed-wren/README.md +60 -0
  213. package/managed-wren/dependency-wheels.json +282 -0
  214. package/managed-wren/manifest.json +373 -0
  215. package/managed-wren/release-inputs.json +45 -0
  216. package/managed-wren/runtime-tree.cjs +115 -0
  217. package/managed-wren/source-inputs.json +40 -0
  218. package/package.json +15 -6
  219. package/profiles/genbi-default/context/binding.yml +17 -7
  220. package/profiles/genbi-default/context/context.json +146 -0
  221. package/profiles/genbi-default/ir.golden.json +39 -43
  222. package/profiles/genbi-default/profile.yml +31 -0
  223. package/profiles/genbi-enrich-context/context/binding.yml +14 -3
  224. package/profiles/genbi-enrich-context/context/context.json +146 -0
  225. package/profiles/genbi-enrich-context/ir.golden.json +4 -5
  226. package/profiles/genbi-monitor/context/binding.yml +13 -5
  227. package/profiles/genbi-monitor/context/context.json +146 -0
  228. package/profiles/genbi-monitor/ir.golden.json +13 -7
  229. package/profiles/genbi-report/context/binding.yml +19 -0
  230. package/profiles/genbi-report/context/context.json +223 -0
  231. package/profiles/genbi-report/ir.golden.json +328 -0
  232. package/profiles/genbi-report/profile.yml +38 -0
  233. package/profiles/genbi-setup/ir.golden.json +3 -1
  234. package/dist/assets/index-Xs4q7pNo.css +0 -1
@@ -0,0 +1,373 @@
1
+ {
2
+ "schema": 1,
3
+ "activation": "staged",
4
+ "platform": "darwin-arm64",
5
+ "compatibility": {
6
+ "genbi": "0.0.4",
7
+ "profile": "genbi-native-v4",
8
+ "wren": "0.13.0+genbi.1"
9
+ },
10
+ "python": {
11
+ "implementation": "cpython",
12
+ "version": "3.11.16",
13
+ "upstream": {
14
+ "release": "20260901",
15
+ "url": "https://github.com/astral-sh/python-build-standalone/releases/download/20260901/cpython-3.11.16%2B20260901-aarch64-apple-darwin-install_only.tar.gz",
16
+ "sha256": "50424fa409e8ae84b82a3052522f64695b47dff2158b70bb7358e0ebd6c085c9"
17
+ },
18
+ "mirror": {
19
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/cpython-3.11.16+20260901-aarch64-apple-darwin-install_only.tar.gz",
20
+ "sha256": "50424fa409e8ae84b82a3052522f64695b47dff2158b70bb7358e0ebd6c085c9"
21
+ },
22
+ "interpreterPath": "python/bin/python3.11"
23
+ },
24
+ "wheels": [
25
+ {
26
+ "distribution": "wrenai",
27
+ "version": "0.13.0+genbi.1",
28
+ "filename": "wrenai-0.13.0+genbi.1-py3-none-any.whl",
29
+ "sourceUrl": "https://github.com/goldmedal/WrenAI/releases/download/wrenai-genbi-v0.13.0-genbi.1/wrenai-0.13.0+genbi.1-py3-none-any.whl",
30
+ "sha256": "cb15e82122a298e462e52d482d0903ad8881bb25caf27752811b2959499cbf36",
31
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/wrenai-0.13.0+genbi.1-py3-none-any.whl"
32
+ },
33
+ {
34
+ "distribution": "annotated_doc",
35
+ "version": "0.0.5",
36
+ "filename": "annotated_doc-0.0.5-py3-none-any.whl",
37
+ "sourceUrl": "https://files.pythonhosted.org/packages/3e/30/e900b21425a860e195f32e37657aa1f7c7f2b1bfb26f03ca209b90933c06/annotated_doc-0.0.5-py3-none-any.whl",
38
+ "sha256": "117bac03a25ede5df5440e855b32d556049ca169ead221505badf432fed4b101",
39
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/annotated_doc-0.0.5-py3-none-any.whl"
40
+ },
41
+ {
42
+ "distribution": "annotated_types",
43
+ "version": "0.8.0",
44
+ "filename": "annotated_types-0.8.0-py3-none-any.whl",
45
+ "sourceUrl": "https://files.pythonhosted.org/packages/99/91/8acff4f5e50511b911bbccb72b8628a49c68ce14148cd9f6431094859a90/annotated_types-0.8.0-py3-none-any.whl",
46
+ "sha256": "f072f4d804ea359e4eaf198b1af7a8b0943881a87f31bb764f8bf219bb9419e0",
47
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/annotated_types-0.8.0-py3-none-any.whl"
48
+ },
49
+ {
50
+ "distribution": "boto3",
51
+ "version": "1.43.101",
52
+ "filename": "boto3-1.43.101-py3-none-any.whl",
53
+ "sourceUrl": "https://files.pythonhosted.org/packages/d7/73/8dd65374f88b1b2a33656d9c808dc36aef0cb4a22c74d618ba6fe0092cd2/boto3-1.43.101-py3-none-any.whl",
54
+ "sha256": "8a899b0ea94df3f2fab6d0c69caf2791f2971449696834374d8e88ced01c7ef3",
55
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/boto3-1.43.101-py3-none-any.whl"
56
+ },
57
+ {
58
+ "distribution": "botocore",
59
+ "version": "1.43.101",
60
+ "filename": "botocore-1.43.101-py3-none-any.whl",
61
+ "sourceUrl": "https://files.pythonhosted.org/packages/dd/0d/6679253333d6ba74b8ad7077560687096629255ef526e106bb3accceffcc/botocore-1.43.101-py3-none-any.whl",
62
+ "sha256": "f380237ffecc3f887265cd09c4d7e9c8e8dd9ba6162af83b1fc9e5d24622e461",
63
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/botocore-1.43.101-py3-none-any.whl"
64
+ },
65
+ {
66
+ "distribution": "certifi",
67
+ "version": "2026.7.22",
68
+ "filename": "certifi-2026.7.22-py3-none-any.whl",
69
+ "sourceUrl": "https://files.pythonhosted.org/packages/0b/a7/71ac2cff56fec219ed242bb11b8efb69fcc4bec75db06fb7bfe35de520e6/certifi-2026.7.22-py3-none-any.whl",
70
+ "sha256": "62f22742b58a1a33014a2b6b706588a8d7e2a88ae7bd1a6ebe8c992928483775",
71
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/certifi-2026.7.22-py3-none-any.whl"
72
+ },
73
+ {
74
+ "distribution": "cffi",
75
+ "version": "2.1.1",
76
+ "filename": "cffi-2.1.1-cp311-cp311-macosx_11_0_arm64.whl",
77
+ "sourceUrl": "https://files.pythonhosted.org/packages/cd/95/31b535a9f0220ae9f357de4a08d57ce89cb417653c2fd9f075f50822a388/cffi-2.1.1-cp311-cp311-macosx_11_0_arm64.whl",
78
+ "sha256": "398aff33cee2767e3e781d2554c54bd0dff386bb437581e0d8011fde1a942ec1",
79
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/cffi-2.1.1-cp311-cp311-macosx_11_0_arm64.whl"
80
+ },
81
+ {
82
+ "distribution": "charset_normalizer",
83
+ "version": "3.5.1",
84
+ "filename": "charset_normalizer-3.5.1-cp311-cp311-macosx_10_9_universal2.whl",
85
+ "sourceUrl": "https://files.pythonhosted.org/packages/6a/b6/034f6802e9c3f6418966cfabb7db8c9252cc2429c5098f41cc43af804149/charset_normalizer-3.5.1-cp311-cp311-macosx_10_9_universal2.whl",
86
+ "sha256": "eda059b6bc8bc0812d626fd91a7ce01bf583df0a61296eff390fd94141a34e30",
87
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/charset_normalizer-3.5.1-cp311-cp311-macosx_10_9_universal2.whl"
88
+ },
89
+ {
90
+ "distribution": "cryptography",
91
+ "version": "50.0.1",
92
+ "filename": "cryptography-50.0.1-cp311-abi3-macosx_11_0_arm64.whl",
93
+ "sourceUrl": "https://files.pythonhosted.org/packages/ba/19/797e2aaac9df6a66f1550f49979dc1b1e39ecd2077501c30efa81e8d5d67/cryptography-50.0.1-cp311-abi3-macosx_11_0_arm64.whl",
94
+ "sha256": "b8f852c65863251b9e3a1b8c150ce21e59b522dbb6a7d4bc80e680d38388e986",
95
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/cryptography-50.0.1-cp311-abi3-macosx_11_0_arm64.whl"
96
+ },
97
+ {
98
+ "distribution": "duckdb",
99
+ "version": "1.5.5",
100
+ "filename": "duckdb-1.5.5-cp311-cp311-macosx_11_0_arm64.whl",
101
+ "sourceUrl": "https://files.pythonhosted.org/packages/46/59/a8e3384ee916e00d5dcf985194c1511d61978540778a1e96fa47f9fb3e0d/duckdb-1.5.5-cp311-cp311-macosx_11_0_arm64.whl",
102
+ "sha256": "0c42757cb34722144bd4dfb94b6f336339e7b2468f6813fa7fa9a319ba07bab4",
103
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/duckdb-1.5.5-cp311-cp311-macosx_11_0_arm64.whl"
104
+ },
105
+ {
106
+ "distribution": "idna",
107
+ "version": "3.20",
108
+ "filename": "idna-3.20-py3-none-any.whl",
109
+ "sourceUrl": "https://files.pythonhosted.org/packages/58/a2/bb081bab032533a855d44de1d56f8e8426114ff1ba5d1f07a438a0a654f8/idna-3.20-py3-none-any.whl",
110
+ "sha256": "ab7ae7122974553370f0bdb919e1a960b2cd1bc1ef0276416d896db81c14582c",
111
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/idna-3.20-py3-none-any.whl"
112
+ },
113
+ {
114
+ "distribution": "jmespath",
115
+ "version": "1.1.0",
116
+ "filename": "jmespath-1.1.0-py3-none-any.whl",
117
+ "sourceUrl": "https://files.pythonhosted.org/packages/14/2f/967ba146e6d58cf6a652da73885f52fc68001525b4197effc174321d70b4/jmespath-1.1.0-py3-none-any.whl",
118
+ "sha256": "a5663118de4908c91729bea0acadca56526eb2698e83de10cd116ae0f4e97c64",
119
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/jmespath-1.1.0-py3-none-any.whl"
120
+ },
121
+ {
122
+ "distribution": "loguru",
123
+ "version": "0.7.3",
124
+ "filename": "loguru-0.7.3-py3-none-any.whl",
125
+ "sourceUrl": "https://files.pythonhosted.org/packages/0c/29/0348de65b8cc732daa3e33e67806420b2ae89bdce2b04af740289c5c6c8c/loguru-0.7.3-py3-none-any.whl",
126
+ "sha256": "31a33c10c8e1e10422bfd431aeb5d351c7cf7fa671e3c4df004162264b28220c",
127
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/loguru-0.7.3-py3-none-any.whl"
128
+ },
129
+ {
130
+ "distribution": "lxml",
131
+ "version": "6.1.3",
132
+ "filename": "lxml-6.1.3-cp311-cp311-macosx_10_9_universal2.whl",
133
+ "sourceUrl": "https://files.pythonhosted.org/packages/96/f1/95133bde7af7afb1f5ba6090b674d826b7a518318bba54bbbb633b27865a/lxml-6.1.3-cp311-cp311-macosx_10_9_universal2.whl",
134
+ "sha256": "c66f858b82497173f73366795fc6ee8171620e75a338506d6b2e7bc16f5fca11",
135
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/lxml-6.1.3-cp311-cp311-macosx_10_9_universal2.whl"
136
+ },
137
+ {
138
+ "distribution": "markdown_it_py",
139
+ "version": "4.2.0",
140
+ "filename": "markdown_it_py-4.2.0-py3-none-any.whl",
141
+ "sourceUrl": "https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl",
142
+ "sha256": "9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a",
143
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/markdown_it_py-4.2.0-py3-none-any.whl"
144
+ },
145
+ {
146
+ "distribution": "mdurl",
147
+ "version": "0.1.2",
148
+ "filename": "mdurl-0.1.2-py3-none-any.whl",
149
+ "sourceUrl": "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl",
150
+ "sha256": "84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8",
151
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/mdurl-0.1.2-py3-none-any.whl"
152
+ },
153
+ {
154
+ "distribution": "numpy",
155
+ "version": "2.4.6",
156
+ "filename": "numpy-2.4.6-cp311-cp311-macosx_11_0_arm64.whl",
157
+ "sourceUrl": "https://files.pythonhosted.org/packages/0e/0d/f5957185c0ee2f3e12f78715aa9e3b353fd83633316c8532b38faa37e3f6/numpy-2.4.6-cp311-cp311-macosx_11_0_arm64.whl",
158
+ "sha256": "110f8b71aacb688ec69062bb7f6938a0f8acb01b7c1c4beb453c65b6d234584d",
159
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/numpy-2.4.6-cp311-cp311-macosx_11_0_arm64.whl"
160
+ },
161
+ {
162
+ "distribution": "opendal",
163
+ "version": "0.47.10",
164
+ "filename": "opendal-0.47.10-cp311-abi3-macosx_11_0_arm64.whl",
165
+ "sourceUrl": "https://files.pythonhosted.org/packages/93/9f/c4f5a6294b59886c911cc11d0b79af86a3768256ceb21d24bf6850f08794/opendal-0.47.10-cp311-abi3-macosx_11_0_arm64.whl",
166
+ "sha256": "3b6d7ad0f2c24b8a0b27f637a35bd63685d657635eca7fe37f80505fd6d3cc7f",
167
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/opendal-0.47.10-cp311-abi3-macosx_11_0_arm64.whl"
168
+ },
169
+ {
170
+ "distribution": "pandas",
171
+ "version": "3.0.6",
172
+ "filename": "pandas-3.0.6-cp311-cp311-macosx_11_0_arm64.whl",
173
+ "sourceUrl": "https://files.pythonhosted.org/packages/55/a6/39db5d41f3eb5d7846626312cb30e0cea48e988fc47a3725698bc931ad3c/pandas-3.0.6-cp311-cp311-macosx_11_0_arm64.whl",
174
+ "sha256": "d7564d86a94c2eb8ab290b07f63ddaae5c032fa53897c29a2ff2197d43aee8af",
175
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/pandas-3.0.6-cp311-cp311-macosx_11_0_arm64.whl"
176
+ },
177
+ {
178
+ "distribution": "pyarrow_hotfix",
179
+ "version": "0.7",
180
+ "filename": "pyarrow_hotfix-0.7-py3-none-any.whl",
181
+ "sourceUrl": "https://files.pythonhosted.org/packages/2e/c3/94ade4906a2f88bc935772f59c934013b4205e773bcb4239db114a6da136/pyarrow_hotfix-0.7-py3-none-any.whl",
182
+ "sha256": "3236f3b5f1260f0e2ac070a55c1a7b339c4bb7267839bd2015e283234e758100",
183
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/pyarrow_hotfix-0.7-py3-none-any.whl"
184
+ },
185
+ {
186
+ "distribution": "pyarrow",
187
+ "version": "17.0.0",
188
+ "filename": "pyarrow-17.0.0-cp311-cp311-macosx_11_0_arm64.whl",
189
+ "sourceUrl": "https://files.pythonhosted.org/packages/8d/8e/ce2e9b2146de422f6638333c01903140e9ada244a2a477918a368306c64c/pyarrow-17.0.0-cp311-cp311-macosx_11_0_arm64.whl",
190
+ "sha256": "2e19f569567efcbbd42084e87f948778eb371d308e137a0f97afe19bb860ccb3",
191
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/pyarrow-17.0.0-cp311-cp311-macosx_11_0_arm64.whl"
192
+ },
193
+ {
194
+ "distribution": "pyasn1",
195
+ "version": "0.6.4",
196
+ "filename": "pyasn1-0.6.4-py3-none-any.whl",
197
+ "sourceUrl": "https://files.pythonhosted.org/packages/9a/3b/6163796d69c3977d1e4287bea4a6979161cbbdd170ebb430511e8e1999ce/pyasn1-0.6.4-py3-none-any.whl",
198
+ "sha256": "deda9277cfd454080ec40b207fb6df82206a3a2688735233cdcd8d3d565f088b",
199
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/pyasn1-0.6.4-py3-none-any.whl"
200
+ },
201
+ {
202
+ "distribution": "pycparser",
203
+ "version": "3.0",
204
+ "filename": "pycparser-3.0-py3-none-any.whl",
205
+ "sourceUrl": "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl",
206
+ "sha256": "b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992",
207
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/pycparser-3.0-py3-none-any.whl"
208
+ },
209
+ {
210
+ "distribution": "pydantic_core",
211
+ "version": "2.46.5",
212
+ "filename": "pydantic_core-2.46.5-cp311-cp311-macosx_11_0_arm64.whl",
213
+ "sourceUrl": "https://files.pythonhosted.org/packages/0c/18/b70da8300e292df4099684ea11b1958043580d2f50d2dc8bf7e542bdd84a/pydantic_core-2.46.5-cp311-cp311-macosx_11_0_arm64.whl",
214
+ "sha256": "d625a186a65201c23a9e3b8ed9c47e90a026e03256608cc91851c6709096844f",
215
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/pydantic_core-2.46.5-cp311-cp311-macosx_11_0_arm64.whl"
216
+ },
217
+ {
218
+ "distribution": "pydantic",
219
+ "version": "2.13.5",
220
+ "filename": "pydantic-2.13.5-py3-none-any.whl",
221
+ "sourceUrl": "https://files.pythonhosted.org/packages/eb/47/c95ffc2009878c7aac0c5e08528022dcb885933252a88b5f170058014464/pydantic-2.13.5-py3-none-any.whl",
222
+ "sha256": "346a034f080da3755d8e9cb5e00e8b07de1d39e4f6e2c87d8ab7cafa0b269a73",
223
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/pydantic-2.13.5-py3-none-any.whl"
224
+ },
225
+ {
226
+ "distribution": "pygments",
227
+ "version": "2.21.0",
228
+ "filename": "pygments-2.21.0-py3-none-any.whl",
229
+ "sourceUrl": "https://files.pythonhosted.org/packages/71/46/17f022dd3e953bf20a04a028a21ec746d942f8d2af30fa0f124fa0e6a684/pygments-2.21.0-py3-none-any.whl",
230
+ "sha256": "2363c69b61c4a97c838da3b130dcd6468f4848992b21a82f2a63ec34377137d9",
231
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/pygments-2.21.0-py3-none-any.whl"
232
+ },
233
+ {
234
+ "distribution": "pyopenssl",
235
+ "version": "26.4.0",
236
+ "filename": "pyopenssl-26.4.0-py3-none-any.whl",
237
+ "sourceUrl": "https://files.pythonhosted.org/packages/51/ad/2cf6d3fa2fae5c79e1ed9960c0d42badd0f94d81dd12b50604cdc839e648/pyopenssl-26.4.0-py3-none-any.whl",
238
+ "sha256": "f0eb0cb2d581d3ad2b9c489468485e7f2ab6727d08401bcf9d824c3caddf3c1c",
239
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/pyopenssl-26.4.0-py3-none-any.whl"
240
+ },
241
+ {
242
+ "distribution": "python_dateutil",
243
+ "version": "2.9.0.post0",
244
+ "filename": "python_dateutil-2.9.0.post0-py2.py3-none-any.whl",
245
+ "sourceUrl": "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl",
246
+ "sha256": "a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427",
247
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/python_dateutil-2.9.0.post0-py2.py3-none-any.whl"
248
+ },
249
+ {
250
+ "distribution": "python_dotenv",
251
+ "version": "1.2.3",
252
+ "filename": "python_dotenv-1.2.3-py3-none-any.whl",
253
+ "sourceUrl": "https://files.pythonhosted.org/packages/0d/17/c5c6b53ddc18f297992099b3d9ec16c855c0ccc83263a21fe4d1c625ec6c/python_dotenv-1.2.3-py3-none-any.whl",
254
+ "sha256": "904552145e8bfed22162c09dab1c2b9b54fefa7b23ba780f4f26ca0316b0f0d9",
255
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/python_dotenv-1.2.3-py3-none-any.whl"
256
+ },
257
+ {
258
+ "distribution": "pyyaml",
259
+ "version": "6.0.3",
260
+ "filename": "pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl",
261
+ "sourceUrl": "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl",
262
+ "sha256": "652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824",
263
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl"
264
+ },
265
+ {
266
+ "distribution": "requests",
267
+ "version": "2.34.2",
268
+ "filename": "requests-2.34.2-py3-none-any.whl",
269
+ "sourceUrl": "https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl",
270
+ "sha256": "2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0",
271
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/requests-2.34.2-py3-none-any.whl"
272
+ },
273
+ {
274
+ "distribution": "rich",
275
+ "version": "15.0.0",
276
+ "filename": "rich-15.0.0-py3-none-any.whl",
277
+ "sourceUrl": "https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl",
278
+ "sha256": "33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb",
279
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/rich-15.0.0-py3-none-any.whl"
280
+ },
281
+ {
282
+ "distribution": "s3transfer",
283
+ "version": "0.19.2",
284
+ "filename": "s3transfer-0.19.2-py3-none-any.whl",
285
+ "sourceUrl": "https://files.pythonhosted.org/packages/bc/e7/5c595c75e9f41a44f30e526eda465ea0b4eec93470e074e4a111b253f13a/s3transfer-0.19.2-py3-none-any.whl",
286
+ "sha256": "d8168eccca828cbb2cd573675333f3bddd254313a9c42494b84c76b539e8ba25",
287
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/s3transfer-0.19.2-py3-none-any.whl"
288
+ },
289
+ {
290
+ "distribution": "shellingham",
291
+ "version": "1.5.4",
292
+ "filename": "shellingham-1.5.4-py2.py3-none-any.whl",
293
+ "sourceUrl": "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl",
294
+ "sha256": "7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686",
295
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/shellingham-1.5.4-py2.py3-none-any.whl"
296
+ },
297
+ {
298
+ "distribution": "six",
299
+ "version": "1.17.0",
300
+ "filename": "six-1.17.0-py2.py3-none-any.whl",
301
+ "sourceUrl": "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl",
302
+ "sha256": "4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274",
303
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/six-1.17.0-py2.py3-none-any.whl"
304
+ },
305
+ {
306
+ "distribution": "sqlglot",
307
+ "version": "30.19.0",
308
+ "filename": "sqlglot-30.19.0-py3-none-any.whl",
309
+ "sourceUrl": "https://files.pythonhosted.org/packages/10/94/094d83ec808b50374f33a3024c9e60ca3074595e1f9581c1692591fda81e/sqlglot-30.19.0-py3-none-any.whl",
310
+ "sha256": "b4500fcced395359feea582f09d2d4433bf1f36362a3a9d0d6d5ebbc1f84242e",
311
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/sqlglot-30.19.0-py3-none-any.whl"
312
+ },
313
+ {
314
+ "distribution": "typer",
315
+ "version": "0.27.2",
316
+ "filename": "typer-0.27.2-py3-none-any.whl",
317
+ "sourceUrl": "https://files.pythonhosted.org/packages/dc/bf/205d0004930ede8f542fb58f601526fccf4ae7626075ca1e6c4de5d3d652/typer-0.27.2-py3-none-any.whl",
318
+ "sha256": "b3a5fc4342d5fc8fda8fc3010b1cf117e9249aab7fae800c2eff62fd3842d97d",
319
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/typer-0.27.2-py3-none-any.whl"
320
+ },
321
+ {
322
+ "distribution": "typing_extensions",
323
+ "version": "4.16.0",
324
+ "filename": "typing_extensions-4.16.0-py3-none-any.whl",
325
+ "sourceUrl": "https://files.pythonhosted.org/packages/49/d3/b8441a820a491ddfc024b0b0cf0393375b75ea13866d9c66727e54c2fc80/typing_extensions-4.16.0-py3-none-any.whl",
326
+ "sha256": "481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8",
327
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/typing_extensions-4.16.0-py3-none-any.whl"
328
+ },
329
+ {
330
+ "distribution": "typing_inspection",
331
+ "version": "0.4.4",
332
+ "filename": "typing_inspection-0.4.4-py3-none-any.whl",
333
+ "sourceUrl": "https://files.pythonhosted.org/packages/67/81/4add07e5172b7ac40d8ed5ff580409a7801a4fe26d529bdd915401dabfbe/typing_inspection-0.4.4-py3-none-any.whl",
334
+ "sha256": "65b8397ba37ccbce054456aaccddfc91e6e3083c92824df348d96ca832f3f147",
335
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/typing_inspection-0.4.4-py3-none-any.whl"
336
+ },
337
+ {
338
+ "distribution": "urllib3",
339
+ "version": "2.8.0",
340
+ "filename": "urllib3-2.8.0-py3-none-any.whl",
341
+ "sourceUrl": "https://files.pythonhosted.org/packages/92/9d/c4e665119135114480843e7ab388fa94d8480650450e6f8e26b70d323a4c/urllib3-2.8.0-py3-none-any.whl",
342
+ "sha256": "0cf3cae568d36aa9576b28dfb35f11328f1cb974ca7647d9475ebb86c75ac6e3",
343
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/urllib3-2.8.0-py3-none-any.whl"
344
+ },
345
+ {
346
+ "distribution": "wren_core_py",
347
+ "version": "0.8.0",
348
+ "filename": "wren_core_py-0.8.0-cp311-abi3-macosx_11_0_arm64.whl",
349
+ "sourceUrl": "https://files.pythonhosted.org/packages/b1/61/0d13ba6faa913bb2a0fda179ee2da12e0366a0a4e4d6d15415a89065ace5/wren_core_py-0.8.0-cp311-abi3-macosx_11_0_arm64.whl",
350
+ "sha256": "bd020d7d99d454bc813855954e31b02d9ede8dc55a71555ca5c5701f115d6128",
351
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/wren_core_py-0.8.0-cp311-abi3-macosx_11_0_arm64.whl"
352
+ }
353
+ ],
354
+ "runtime": {
355
+ "pythonArchivePath": "python.tar.gz",
356
+ "venvInterpreterPath": "venv/bin/python",
357
+ "launcherPath": "venv/bin/wren",
358
+ "module": "wren.cli:app",
359
+ "packagePath": "venv/lib/python3.11/site-packages/wren",
360
+ "sitePackagesPath": "venv/lib/python3.11/site-packages",
361
+ "pythonTreeSha256": "42742d824bbaa0cb31440e543023419cc8eb0ec42514eb2e1519dc3bf0834c0d",
362
+ "packageTreeSha256": "6ee1e0b95cc1bffb2c92eb1a42b3d80f458d0f1b6439d20c442fd406b4b5ba6b",
363
+ "sitePackagesTreeSha256": "16a744dc9a50795f89464f5e45a88f768851820414f93a67ef8a88478ec85be3",
364
+ "closureSha256": "fbaea46ac41934a3cb2a8365eb5f25f49a733d41a10f7eb765eb5a734fbd1aa6"
365
+ },
366
+ "licenseApproval": {
367
+ "state": "pending"
368
+ },
369
+ "approvedManifest": {
370
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.5/managed-wren-manifest.json",
371
+ "sha256": "d1ad640f3569d9cec3102110c18627180e22793ad644418ed9a93b475f06e33a"
372
+ }
373
+ }
@@ -0,0 +1,45 @@
1
+ {
2
+ "schema": 1,
3
+ "platform": "darwin-arm64",
4
+ "compatibility": {
5
+ "genbi": "0.0.4",
6
+ "profile": "genbi-native-v4"
7
+ },
8
+ "python": {
9
+ "version": "3.11.16",
10
+ "release": "20260901",
11
+ "filename": "cpython-3.11.16+20260901-aarch64-apple-darwin-install_only.tar.gz",
12
+ "url": "https://github.com/astral-sh/python-build-standalone/releases/download/20260901/cpython-3.11.16%2B20260901-aarch64-apple-darwin-install_only.tar.gz",
13
+ "sha256": "50424fa409e8ae84b82a3052522f64695b47dff2158b70bb7358e0ebd6c085c9"
14
+ },
15
+ "wrenai": {
16
+ "filename": "wrenai-0.13.0+genbi.1-py3-none-any.whl",
17
+ "sha256": "cb15e82122a298e462e52d482d0903ad8881bb25caf27752811b2959499cbf36",
18
+ "version": "0.13.0+genbi.1",
19
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/wrenai-genbi-v0.13.0-genbi.1/wrenai-0.13.0+genbi.1-py3-none-any.whl",
20
+ "sourceBuild": {
21
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/wrenai-genbi-v0.13.0-genbi.1/source-provenance.json",
22
+ "sha256": "156a9f6df6b8d5d0fa48130a2cacc0e2723322873e2a234650fc498e1079445b"
23
+ }
24
+ },
25
+ "licenseEvidence": {
26
+ "pythonSha256": "50424fa409e8ae84b82a3052522f64695b47dff2158b70bb7358e0ebd6c085c9",
27
+ "retained": [
28
+ {
29
+ "filename": "pbs-license-inventory.json",
30
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.4/pbs-license-inventory.json",
31
+ "sha256": "23c57f67db068ff50ce2edfb1c8c7a3f8bf2ead2904345dc47d61e4ef228a062"
32
+ },
33
+ {
34
+ "filename": "THIRD_PARTY_NOTICES.txt",
35
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.4/THIRD_PARTY_NOTICES.txt",
36
+ "sha256": "05067752be36fad8a9b659d6b5516af016f4bcf5b939f84c87ff9e5a4c0841dc"
37
+ },
38
+ {
39
+ "filename": "wheel-license-inventory.json",
40
+ "url": "https://github.com/goldmedal/WrenAI/releases/download/managed-wren-v0.0.4/wheel-license-inventory.json",
41
+ "sha256": "a397aa74484e439b94b2262d42bbb7f05b3356adbb671604a92e8d0e1af5d870"
42
+ }
43
+ ]
44
+ }
45
+ }
@@ -0,0 +1,115 @@
1
+ // Shared release/provision attestation. Only verified venv prefixes are canonicalized.
2
+ const { createHash } = require('node:crypto');
3
+ const { chmodSync, lstatSync, readFileSync, readdirSync, readlinkSync, realpathSync, writeFileSync } = require('node:fs');
4
+ const path = require('node:path');
5
+ const hash = (bytes, encoding = 'hex') => createHash('sha256').update(bytes).digest(encoding);
6
+ const inside = (root, file) => { const relative = path.relative(root, file); return relative === '' || (!relative.startsWith('..') && !path.isAbsolute(relative)); };
7
+ const quote = (text) => "'" + text.replaceAll("'", "'\\''") + "'";
8
+ function entryPoint(file, venv) {
9
+ const stat = lstatSync(file);
10
+ if (!stat.isFile() || stat.isSymbolicLink() || realpathSync(file) !== file || !(stat.mode & 0o111)) throw new Error('invalid console entrypoint');
11
+ const bytes = readFileSync(file); const text = bytes.toString('utf8');
12
+ if (!Buffer.from(text).equals(bytes)) throw new Error('invalid console encoding');
13
+ for (const name of ['python', 'python3', 'python3.11']) {
14
+ const interpreter = path.join(venv, 'bin', name);
15
+ for (const prefix of [`#!${interpreter}\n`, ...[interpreter, `"${interpreter}"`, quote(interpreter)].map((executable) => `#!/bin/sh\n'''exec' ${executable} "$0" "$@"\n' '''\n`)]) {
16
+ if (!text.startsWith(prefix)) continue;
17
+ const body = text.slice(prefix.length);
18
+ const canonical = Buffer.from(`#!<venv>/bin/${name}\n${body}`);
19
+ return { bytes, body, name, canonical, mode: stat.mode & 0o777 };
20
+ }
21
+ }
22
+ throw new Error('console interpreter is not the selected venv');
23
+ }
24
+ function recordRows(file, sitePackages, interpreterVenv) {
25
+ const venv = path.resolve(sitePackages, '../../..');
26
+ if (realpathSync(venv) !== venv || realpathSync(path.join(venv, 'bin')) !== path.join(venv, 'bin')) throw new Error('console directory link');
27
+ const text = readFileSync(file, 'utf8');
28
+ const seen = new Set();
29
+ return text.split(/\r?\n/).map((line) => {
30
+ if (!line.startsWith('../') || /^\.\.\/\.\.\/\.\.\/bin\/__pycache__\/[A-Za-z0-9._-]+\.pyc,,$/.test(line)) return { line };
31
+ const match = /^(\.\.\/\.\.\/\.\.\/bin\/[A-Za-z0-9._-]+),sha256=([A-Za-z0-9_-]+),(\d+)$/.exec(line);
32
+ if (!match || seen.has(match[1])) throw new Error('invalid external RECORD entry');
33
+ seen.add(match[1]);
34
+ const target = path.resolve(sitePackages, match[1]);
35
+ const script = entryPoint(target, interpreterVenv ?? venv);
36
+ if (hash(script.bytes, 'base64url') !== match[2] || String(script.bytes.length) !== match[3]) throw new Error('console RECORD mismatch');
37
+ return { line, relative: match[1], target, script };
38
+ });
39
+ }
40
+ function records(sitePackages) {
41
+ return readdirSync(sitePackages).filter((name) => name.endsWith('.dist-info')).sort().map((name) => path.join(sitePackages, name, 'RECORD'));
42
+ }
43
+ function runtimeTreeDigest(root) {
44
+ const entries = [];
45
+ function visit(directory) {
46
+ for (const name of readdirSync(directory).sort()) {
47
+ if (name === '__pycache__') continue;
48
+ const file = path.join(directory, name); const stat = lstatSync(file);
49
+ const relative = path.relative(root, file); const mode = (stat.mode & 0o777).toString(8);
50
+ if (stat.isSymbolicLink()) {
51
+ if (!inside(root, realpathSync(file))) throw new Error('runtime link escapes tree');
52
+ entries.push(`${relative}\0${mode}\0link\0${readlinkSync(file)}`);
53
+ } else if (stat.isDirectory()) visit(file);
54
+ else if (stat.isFile()) {
55
+ let bytes = readFileSync(file);
56
+ if (path.basename(root) === 'site-packages' && /^[^/]+\.dist-info\/RECORD$/.test(relative)) {
57
+ bytes = Buffer.from(recordRows(file, root).map((row) => row.script
58
+ ? `${row.relative},sha256=${hash(Buffer.concat([Buffer.from(`${row.script.mode}\0`), row.script.canonical]), 'base64url')},${row.script.canonical.length}`
59
+ : row.line).join('\n'));
60
+ }
61
+ entries.push(`${relative}\0${mode}\0file\0${hash(bytes)}`);
62
+ } else throw new Error('unsupported runtime entry');
63
+ }
64
+ }
65
+ visit(root); return hash(entries.join('\n'));
66
+ }
67
+ function relocateEntryPoints(sitePackages, previousVenv, ownedLauncher) {
68
+ const venv = path.resolve(sitePackages, '../../..');
69
+ // Validate all records before changing any file.
70
+ const plans = records(sitePackages).map((file) => ({ file, rows: recordRows(file, sitePackages, previousVenv) }));
71
+ const claimed = new Set();
72
+ for (const plan of plans) for (const row of plan.rows) if (row.script) {
73
+ if (claimed.has(row.target)) throw new Error('duplicate console owner');
74
+ claimed.add(row.target);
75
+ }
76
+ if (ownedLauncher) {
77
+ if (!/^[A-Za-z0-9._-]+$/.test(ownedLauncher)) throw new Error('invalid owned launcher');
78
+ const target = path.join(venv, 'bin', ownedLauncher);
79
+ if (!claimed.has(target)) plans.push({ file: null, rows: [{ target, script: entryPoint(target, previousVenv) }] });
80
+ }
81
+ for (const plan of plans) {
82
+ const lines = plan.rows.map((row) => {
83
+ if (!row.script) return row.line;
84
+ const interpreter = path.join(venv, 'bin', row.script.name);
85
+ const prefix = /[\s]/.test(interpreter) || Buffer.byteLength(interpreter) > 500
86
+ ? `#!/bin/sh\n'''exec' ${quote(interpreter)} "$0" "$@"\n' '''\n`
87
+ : `#!${interpreter}\n`;
88
+ const bytes = Buffer.from(prefix + row.script.body);
89
+ writeFileSync(row.target, bytes);
90
+ return `${row.relative},sha256=${hash(bytes, 'base64url')},${bytes.length}`;
91
+ });
92
+ if (plan.file) writeFileSync(plan.file, lines.join('\n'));
93
+ }
94
+ }
95
+ /** Narrow modes only on a fresh, hash-verified extraction in private staging.
96
+ * Never use this on a published generation: resolve must reject tampering.
97
+ * Validate the entire tree before chmod; never follow links or touch shared inodes.
98
+ */
99
+ function preparePythonTree(root) {
100
+ const pending = [];
101
+ function visit(file) {
102
+ const stat = lstatSync(file);
103
+ if (stat.isSymbolicLink()) {
104
+ if (!inside(root, realpathSync(file))) throw new Error('Python link escapes tree');
105
+ return;
106
+ }
107
+ if ((!stat.isDirectory() && !stat.isFile()) || (stat.mode & 0o7000) || (stat.isFile() && stat.nlink !== 1)) throw new Error('unsupported Python tree entry');
108
+ pending.push([file, (stat.mode & 0o777) & ~0o022]);
109
+ if (stat.isDirectory()) for (const name of readdirSync(file)) visit(path.join(file, name));
110
+ }
111
+ if (!lstatSync(root).isDirectory() || realpathSync(root) !== root) throw new Error('Python root must be a canonical directory');
112
+ visit(root);
113
+ for (const [file, mode] of pending) chmodSync(file, mode);
114
+ }
115
+ module.exports = { runtimeTreeDigest, relocateEntryPoints, entryPoint, preparePythonTree };
@@ -0,0 +1,40 @@
1
+ {
2
+ "schema": 1,
3
+ "commit": "d4885d34b9935bf4b459db30b95cfe4e5b79a209",
4
+ "archiveUrl": "https://codeload.github.com/goldmedal/WrenAI/tar.gz/d4885d34b9935bf4b459db30b95cfe4e5b79a209",
5
+ "archiveSha256": "1185118068a6b61cb4adac54e54aad310eb1b68f499bb647d10e574174499b84",
6
+ "baseVersion": "0.13.0",
7
+ "version": "0.13.0+genbi.1",
8
+ "builderWheels": [
9
+ {
10
+ "filename": "hatchling-1.32.4-py3-none-any.whl",
11
+ "url": "https://files.pythonhosted.org/packages/5f/80/91f51f439c05d4ec4623c22928ce16a938d6d793bf709477830823497859/hatchling-1.32.4-py3-none-any.whl",
12
+ "sha256": "08ecf7548fb48205e7f213d70c71e67b8271b7242093dc3f1da578b42c734a2c"
13
+ },
14
+ {
15
+ "filename": "packaging-26.3-py3-none-any.whl",
16
+ "url": "https://files.pythonhosted.org/packages/63/34/ba1c580383c9eada3711951fef0795c80b829a078d72188184bcab9dd527/packaging-26.3-py3-none-any.whl",
17
+ "sha256": "d7193f7c8e4e93f444fde0262bf90af30e16fa0ad0ad44cb553c87339b23cd1c"
18
+ },
19
+ {
20
+ "filename": "pathspec-1.1.1-py3-none-any.whl",
21
+ "url": "https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl",
22
+ "sha256": "a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189"
23
+ },
24
+ {
25
+ "filename": "pluggy-1.6.0-py3-none-any.whl",
26
+ "url": "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl",
27
+ "sha256": "e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746"
28
+ },
29
+ {
30
+ "filename": "tomlkit-0.15.1-py3-none-any.whl",
31
+ "url": "https://files.pythonhosted.org/packages/13/bc/8c13eb66537dce1d2bd3a57132902f38d0e7f5bb46fa9f4daed9fe9d76ee/tomlkit-0.15.1-py3-none-any.whl",
32
+ "sha256": "177a05aece5a8ca5266fd3c448abb47b8d352f09d477d3ca8332db4d89b24304"
33
+ },
34
+ {
35
+ "filename": "trove_classifiers-2026.9.21.13-py3-none-any.whl",
36
+ "url": "https://files.pythonhosted.org/packages/30/81/0da8afb52a71d0a4f2bd3152357b1a441e393b286374802b9d3addab4ab5/trove_classifiers-2026.9.21.13-py3-none-any.whl",
37
+ "sha256": "8b1ff4f9c191b1040b71c37f1e445ab99732911e3cd91de52838453a854d7a17"
38
+ }
39
+ ]
40
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wrenai/genbi",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "description": "Wren GenBI — the web UI for WrenAI: ask questions of your data and get dashboards back",
5
5
  "license": "Apache-2.0",
6
6
  "keywords": [
@@ -29,14 +29,17 @@
29
29
  "dependencies": {
30
30
  "@ai-sdk/anthropic": "~4.0.15",
31
31
  "@ai-sdk/mcp": "~2.0.13",
32
+ "@ai-sdk/openai": "~4.0.54",
32
33
  "@ai-sdk/openai-compatible": "~3.0.10",
33
34
  "@ai-sdk/provider": "~4.0.3",
34
35
  "@ant-design/icons": "^6.3.2",
36
+ "@anthropic-ai/claude-agent-sdk": "0.3.259",
35
37
  "@hono/node-server": "^2.0.10",
36
- "@warble/claude-agent-sdk": "0.9.0",
37
- "@warble/cli": "0.9.0",
38
- "@warble/codex-local": "0.9.0",
39
- "@warble/ir-spec": "0.6.0",
38
+ "@warble/claude-agent-sdk": "0.17.0",
39
+ "@warble/cli": "0.17.0",
40
+ "@warble/codex-local": "0.17.0",
41
+ "@warble/ir-spec": "0.9.0",
42
+ "@wrenai/context-loader": "0.1.4",
40
43
  "@xterm/addon-fit": "^0.11.0",
41
44
  "@xterm/xterm": "^6.0.0",
42
45
  "ai": "~7.0.28",
@@ -73,16 +76,22 @@
73
76
  "dist-server/server",
74
77
  "dist-server/harness",
75
78
  "dist-server/providers",
76
- "profiles"
79
+ "profiles",
80
+ "managed-wren"
77
81
  ],
78
82
  "publishConfig": {
79
83
  "access": "public"
80
84
  },
85
+ "optionalDependencies": {
86
+ "@earendil-works/pi-ai": "1.0.4"
87
+ },
81
88
  "scripts": {
82
89
  "dev": "vite",
83
90
  "build": "tsc -b && vite build && tsc -p tsconfig.server.json && node scripts/copy-providers.js",
84
91
  "start:bff": "node dist-server/server/bin.js",
85
92
  "check:contracts": "node scripts/verify-local-launch.mjs",
93
+ "check:installed-package": "node scripts/installed-package-acceptance.mjs",
94
+ "check:vendor-contract": "node scripts/run-vendor-contract-probes.mjs",
86
95
  "check:warble-peers": "pnpm peers check",
87
96
  "preview": "vite preview",
88
97
  "test": "vitest run",