pineforge-codegen 0.10.2__tar.gz → 0.10.3__tar.gz

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 (453) hide show
  1. pineforge_codegen-0.10.3/.claude/settings.json +15 -0
  2. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/.github/workflows/gate.yml +30 -8
  3. pineforge_codegen-0.10.3/.github/workflows/promote-baseline.yml +235 -0
  4. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/.gitignore +2 -1
  5. pineforge_codegen-0.10.3/AGENTS.md +467 -0
  6. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/PKG-INFO +1 -1
  7. pineforge_codegen-0.10.3/VERSION +1 -0
  8. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/codegen/base.py +66 -18
  9. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/codegen/emit_top.py +58 -20
  10. pineforge_codegen-0.10.3/pineforge_codegen/codegen/ta.py +1005 -0
  11. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/codegen/tables.py +10 -5
  12. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/codegen/visit_call.py +111 -57
  13. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/codegen/visit_expr.py +12 -2
  14. pineforge_codegen-0.10.3/tests/test_anchor_tf_change.py +38 -0
  15. pineforge_codegen-0.10.3/tests/test_anchor_time.py +58 -0
  16. pineforge_codegen-0.10.3/tests/test_anchor_vwap.py +75 -0
  17. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_codegen_audit_fixes.py +48 -0
  18. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_codegen_new.py +105 -0
  19. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_codegen_validation_fixes.py +109 -29
  20. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_compile_smoke.py +21 -17
  21. pineforge_codegen-0.10.3/tests/test_lazy_edge_ta_every_bar.py +685 -0
  22. pineforge_codegen-0.10.3/tests/test_lazy_source_clock.py +266 -0
  23. pineforge_codegen-0.10.3/tests/test_lazy_source_clock_runtime.py +219 -0
  24. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_security_lazy_ta_under_conditionals.py +22 -2
  25. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_vwap_tuple_unpack.py +1 -1
  26. pineforge_codegen-0.10.2/VERSION +0 -1
  27. pineforge_codegen-0.10.2/pineforge_codegen/codegen/ta.py +0 -723
  28. pineforge_codegen-0.10.2/tests/test_lazy_saturated_roc.py +0 -198
  29. pineforge_codegen-0.10.2/tests/test_lazy_saturated_roc_runtime.py +0 -270
  30. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/.github/dependabot.yml +0 -0
  31. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/.github/workflows/publish-pyodide.yml +0 -0
  32. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/.github/workflows/release.yml +0 -0
  33. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/.github/workflows/test.yml +0 -0
  34. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/CLAUDE.md +0 -0
  35. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/LEGAL.md +0 -0
  36. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/LICENSE +0 -0
  37. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/PYODIDE_TARGET +0 -0
  38. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/README.md +0 -0
  39. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/docs/codegen-coverage-gaps.md +0 -0
  40. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/gate/compare.mjs +0 -0
  41. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/gate/glue.py +0 -0
  42. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/gate/oracle.py +0 -0
  43. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/gate/run-gate.mjs +0 -0
  44. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/gate/selftest.mjs +0 -0
  45. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/npm/README.md +0 -0
  46. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/npm/index.mjs +0 -0
  47. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/npm/package.json +0 -0
  48. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/package-lock.json +0 -0
  49. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/package.json +0 -0
  50. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/__init__.py +0 -0
  51. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/analyzer/__init__.py +0 -0
  52. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/analyzer/base.py +0 -0
  53. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/analyzer/call_handlers.py +0 -0
  54. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/analyzer/contracts.py +0 -0
  55. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/analyzer/diagnostics.py +0 -0
  56. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/analyzer/tables.py +0 -0
  57. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/analyzer/types.py +0 -0
  58. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/ast_nodes.py +0 -0
  59. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/codegen/__init__.py +0 -0
  60. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/codegen/drawing.py +0 -0
  61. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/codegen/helpers.py +0 -0
  62. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/codegen/helpers_syminfo.py +0 -0
  63. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/codegen/input.py +0 -0
  64. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/codegen/security.py +0 -0
  65. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/codegen/types.py +0 -0
  66. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/codegen/visit_stmt.py +0 -0
  67. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/errors.py +0 -0
  68. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/finite_ta_length.py +0 -0
  69. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/lexer.py +0 -0
  70. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/method_binding.py +0 -0
  71. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/parser.py +0 -0
  72. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/pragmas.py +0 -0
  73. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/signatures.py +0 -0
  74. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/support_checker.py +0 -0
  75. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/symbols.py +0 -0
  76. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/tokens.py +0 -0
  77. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pineforge_codegen/tv_input_choices.py +0 -0
  78. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/pyproject.toml +0 -0
  79. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/scripts/build-npm-package.mjs +0 -0
  80. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/scripts/dump-tables.py +0 -0
  81. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/scripts/worker-template.mjs +0 -0
  82. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/__init__.py +0 -0
  83. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/_compile.py +0 -0
  84. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/fixtures/matrix_eigen_pca.pine +0 -0
  85. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/err/const_ns_plot_style_free.pine +0 -0
  86. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/err/const_ns_shape_free.pine +0 -0
  87. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/err/export_func.pine +0 -0
  88. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/err/footprint_new.pine +0 -0
  89. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/err/hard_reject_dividends.pine +0 -0
  90. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/err/matrix_unknown_elem.pine +0 -0
  91. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/err/multi_error_one_line.pine +0 -0
  92. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/err/sec_tf_invalid.pine +0 -0
  93. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/err/unknown_color.pine +0 -0
  94. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/err/unknown_math.pine +0 -0
  95. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/err/unknown_str.pine +0 -0
  96. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/err/unknown_strategy_fn.pine +0 -0
  97. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/err/unknown_syminfo.pine +0 -0
  98. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/err/unknown_ta.pine +0 -0
  99. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/AAPL__session-ismarket-nyse-rth-01.pine +0 -0
  100. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/AAPL__time-tradingday-daily-reset-counter-01.pine +0 -0
  101. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/QQQ__session-ispremarket-nasdaq-01.pine +0 -0
  102. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/SPY__session-firstbar-vwap-anchor-01.pine +0 -0
  103. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/SPY__session-lastbar-flatten-01.pine +0 -0
  104. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/chart_bg_color.pine +0 -0
  105. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/crypto-htf__mtf-htf-monthly-ema-cross-01.pine +0 -0
  106. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/crypto-leverage__leverage-margin-call-perp-5x-01.pine +0 -0
  107. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/divergent_last_bar_index.pine +0 -0
  108. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/forex__symbol-fx-5dp-eurusd-01.pine +0 -0
  109. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/futures__symbol-futures-pointvalue-es-01.pine +0 -0
  110. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/tutorial__macd__strategy.pine +0 -0
  111. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/tutorial__mtf__strategy_htf.pine +0 -0
  112. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/tutorial__mtf__strategy_ltf.pine +0 -0
  113. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/us-equity__symbol-equity-rth-gaps-aapl-01.pine +0 -0
  114. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/us-equity__us-equity-exchange-tz-intraday-cap-01.pine +0 -0
  115. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__analyzer-parity-choch-bos-isolator-01.pine +0 -0
  116. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__analyzer-parity-edge-margin-50-pct-01.pine +0 -0
  117. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__analyzer-parity-percent-of-equity-sizing-01.pine +0 -0
  118. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__analyzer-parity-small-equity-fraction-01.pine +0 -0
  119. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__analyzer-parity-stop-limit-timing-01.pine +0 -0
  120. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__analyzer-self-test-multi-mode-01.pine +0 -0
  121. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__anomaly-equity-mirror-strategy-equity-01.pine +0 -0
  122. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__barstate-isconfirmed-magnifier-off-01b.pine +0 -0
  123. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__barstate-isconfirmed-magnifier-on-01a.pine +0 -0
  124. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__bracket-atr-trail-series-int-points-01.pine +0 -0
  125. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__bracket-atr-trailing-stop-state-01.pine +0 -0
  126. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__bracket-entry-exit-same-pass-attach-01.pine +0 -0
  127. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__bracket-exit-stop-limit-trail-same-bar-01.pine +0 -0
  128. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__bracket-exit-three-way-set-once-entry-01.pine +0 -0
  129. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__bracket-exit-tp-sl-fixed-01.pine +0 -0
  130. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__bracket-narrow-stop-limit-with-trail8-01.pine +0 -0
  131. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__bracket-partial-exit-qty-percent-01.pine +0 -0
  132. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__bracket-same-id-exit-replace-01.pine +0 -0
  133. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__bracket-tp-sl-oca-reduce-isolate-01.pine +0 -0
  134. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__bracket-trail-points-no-offset-explicit-01.pine +0 -0
  135. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__bracket-trail-points-with-offset-only-01.pine +0 -0
  136. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__bracket-trailing-activation-offset-path-01.pine +0 -0
  137. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__cap-max-intraday-filled-orders-isolate-01.pine +0 -0
  138. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__cap-risk-gates-allow-max-intraday-01.pine +0 -0
  139. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-4emarsi-integration-01.pine +0 -0
  140. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-4emarsi-quad-ema-stack-01.pine +0 -0
  141. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-4emarsi-rsi-pullback-latch-01.pine +0 -0
  142. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-4emarsi-session-window-nbar-exit-01.pine +0 -0
  143. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-boscurv-integration-01.pine +0 -0
  144. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-boscurv-linreg-slope-channel-01.pine +0 -0
  145. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-boscurv-pivot-bos-trigger-01.pine +0 -0
  146. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-bracket-cap-range-pending-stop-01.pine +0 -0
  147. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-ies-adx-regime-classify-01.pine +0 -0
  148. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-ies-bb-kc-squeeze-release-01.pine +0 -0
  149. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-ies-cooldown-daily-cap-01.pine +0 -0
  150. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-ies-equity-feedback-sizing-01.pine +0 -0
  151. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-ies-integration-01.pine +0 -0
  152. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-ies-pivot-liquidity-sweep-01.pine +0 -0
  153. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-ies-pressure-gauge-01.pine +0 -0
  154. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-ies-rsi-macd-momentum-01.pine +0 -0
  155. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-ies-three-ema-bias-score-01.pine +0 -0
  156. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-kanuck-calc-on-every-tick-01.pine +0 -0
  157. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-kanuck-integration-01.pine +0 -0
  158. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-kanuck-kama-state-recurrence-01.pine +0 -0
  159. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-kanuck-max-bars-back-500-01.pine +0 -0
  160. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-kkb-ema-atr-breakout-band-01.pine +0 -0
  161. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-kkb-integration-01.pine +0 -0
  162. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-kkb-kalman-filter-1d-01.pine +0 -0
  163. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-kkb-margin-100-pct-01.pine +0 -0
  164. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-liqsweep-integration-01.pine +0 -0
  165. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-liqsweep-pivot-hh-ll-01.pine +0 -0
  166. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-liqsweep-wait-one-continuation-01.pine +0 -0
  167. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-liqsweep-wick-pierce-close-back-01.pine +0 -0
  168. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-marketshift-integration-01.pine +0 -0
  169. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-marketshift-pivot-state-machine-01.pine +0 -0
  170. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-marketshift-rolling-highest-lowest-01.pine +0 -0
  171. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-marketshift-state-edge-detector-01.pine +0 -0
  172. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-scalping-fast-ma-cross-trigger-01.pine +0 -0
  173. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-scalping-integration-01.pine +0 -0
  174. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-scalping-tight-tp-sl-points-01.pine +0 -0
  175. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-trendmaster-integration-01.pine +0 -0
  176. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-trendmaster-line-new-projection-01.pine +0 -0
  177. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-trendmaster-pivot-anchored-bracket-01.pine +0 -0
  178. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-trendmaster-three-tier-ema-state-01.pine +0 -0
  179. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-trendmaster-trend-momentum-structure-gate-01.pine +0 -0
  180. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-vcp-cumulative-volume-delta-01.pine +0 -0
  181. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-vcp-fvg-active-zones-01.pine +0 -0
  182. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-vcp-integration-01.pine +0 -0
  183. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-vcp-manual-adx-regime-01.pine +0 -0
  184. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-vcp-pivot-strength-5-01.pine +0 -0
  185. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-vcp-rsi-smooth-divergence-01.pine +0 -0
  186. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-vcp-session-tz-newyork-01.pine +0 -0
  187. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-vcp-vol-zscore-anomaly-01.pine +0 -0
  188. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-wunderscalper-alert-templates-01.pine +0 -0
  189. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-wunderscalper-explicit-reverse-01.pine +0 -0
  190. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__composite-wunderscalper-integration-01.pine +0 -0
  191. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__input-source-runtime-override-high-01.pine +0 -0
  192. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__input-source-subscript-hl2-01.pine +0 -0
  193. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ltf-bool-array-bull-majority-01.pine +0 -0
  194. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ltf-numeric-float-ratio15-01.pine +0 -0
  195. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__magnifier-tick-dist-endpoints-01.pine +0 -0
  196. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__magnifier-tick-dist-endpoints-rsi-cross-08a.pine +0 -0
  197. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__magnifier-tick-dist-volume-weighted-on-01.pine +0 -0
  198. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__matrix-bool-mask-explicit-utc-tz-01.pine +0 -0
  199. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__matrix-bool-mask-no-transpose-01.pine +0 -0
  200. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__matrix-bool-mask-transpose-roundtrip-01.pine +0 -0
  201. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__matrix-bool-regime-mask-24x7-01.pine +0 -0
  202. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__matrix-covariance-eigen-pca-01.pine +0 -0
  203. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__matrix-eigen-rank-deficient-cov-01.pine +0 -0
  204. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__max-bars-back-function-call-deep-history-01.pine +0 -0
  205. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__mtf-daily-array-median-percentrank-01.pine +0 -0
  206. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__mtf-daily-ema26-warmup-01.pine +0 -0
  207. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__mtf-daily-prev-high-break-01.pine +0 -0
  208. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__mtf-dual-tf-60-240-rising-01.pine +0 -0
  209. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__mtf-htf-60-close-change-baseline-01.pine +0 -0
  210. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__mtf-htf-60-close-roll-01.pine +0 -0
  211. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__mtf-htf-60-gaps-on-roll-01.pine +0 -0
  212. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__mtf-htf-60-rsi14-inside-security-01.pine +0 -0
  213. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__mtf-htf-60-sma20-inside-security-01.pine +0 -0
  214. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__mtf-htf-60-volume-spike-01.pine +0 -0
  215. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__mtf-htf-confluence-manual-trail-01.pine +0 -0
  216. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__mtf-htf-confluence-static-bracket-01.pine +0 -0
  217. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__mtf-htf-weekly-sma-cross-01.pine +0 -0
  218. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__mtf-roll-state-60-240-d-minimal-01.pine +0 -0
  219. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__mtf-triple-tf-close-confluence-01.pine +0 -0
  220. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__mtf-triple-tf-macd-hist-confluence-01.pine +0 -0
  221. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__na-deep-history-int-na-01.pine +0 -0
  222. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__na-nz-fixnan-history-chain-01.pine +0 -0
  223. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__oca-exit-bracket-internal-cancel-01.pine +0 -0
  224. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__oca-multi-bracket-isolation-01.pine +0 -0
  225. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__oca-raw-strategy-order-reduce-01.pine +0 -0
  226. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-close-all-cancel-all-01.pine +0 -0
  227. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-close-immediate-vs-next-bar-01.pine +0 -0
  228. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-cross-entry-cancel-same-pass-01.pine +0 -0
  229. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-cross-entry-close-same-pass-01.pine +0 -0
  230. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-cross-exit-close-same-pass-01.pine +0 -0
  231. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-deferred-flip-guaranteed-gap-stops-01.pine +0 -0
  232. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-deferred-flip-pooc-cross-bar-01.pine +0 -0
  233. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-dual-four-bar-stop-no-close-01.pine +0 -0
  234. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-dual-side-same-id-stop-no-cancel-01.pine +0 -0
  235. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-dual-stop-both-touch-priority-01.pine +0 -0
  236. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-dual-stop-cancel-rotation-01.pine +0 -0
  237. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-dual-stop-far-only-01.pine +0 -0
  238. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-dual-stop-near-only-01.pine +0 -0
  239. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-dual-stop-open-high-first-path-01.pine +0 -0
  240. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-dual-stop-open-low-first-path-01.pine +0 -0
  241. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-dual-stop-open-tie-01.pine +0 -0
  242. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-dual-stop-source-order-long-first-01.pine +0 -0
  243. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-dual-stop-source-order-short-first-01.pine +0 -0
  244. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-entry-implicit-reversal-exit-01.pine +0 -0
  245. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-flip-stop-no-paired-close-01.pine +0 -0
  246. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-market-close-fill-basis-01.pine +0 -0
  247. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-one-side-four-bar-far-opposite-01.pine +0 -0
  248. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-opposite-entry-close-same-pass-01.pine +0 -0
  249. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-percent-equity-cash-commission-01.pine +0 -0
  250. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-process-on-close-false-01.pine +0 -0
  251. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-process-on-close-true-01.pine +0 -0
  252. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-range-expansion-pending-stop-01.pine +0 -0
  253. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-same-id-entry-close-same-bar-01.pine +0 -0
  254. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-same-id-market-entry-repeat-01.pine +0 -0
  255. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-same-id-stop-after-flat-01.pine +0 -0
  256. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-same-id-stop-cross-before-modify-01.pine +0 -0
  257. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-same-id-stop-minute-zero-01.pine +0 -0
  258. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-same-id-stop-modification-01.pine +0 -0
  259. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-same-id-stop-raise-only-01.pine +0 -0
  260. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-same-id-stop-window-four-bars-01.pine +0 -0
  261. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-stale-stop-after-close-no-cancel-01.pine +0 -0
  262. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-stop-cancel-no-regime-close-01.pine +0 -0
  263. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-stop-entry-cancel-opposite-01.pine +0 -0
  264. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-stop-entry-reversal-grouping-01.pine +0 -0
  265. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__order-stop-entry-touch-boundary-01.pine +0 -0
  266. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__pyramid-cash-fractional-commission-01.pine +0 -0
  267. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__pyramid-close-id-grouping-01.pine +0 -0
  268. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__pyramid-deferred-flip-close-all-01.pine +0 -0
  269. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__pyramid-flip-stop-pyramiding-2-01.pine +0 -0
  270. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__recompute-alma-sar-corr-magnifier-01.pine +0 -0
  271. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__recompute-mtf-rsi-macd-bb-01.pine +0 -0
  272. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__risk-max-contracts-held-gate-pyramid-01.pine +0 -0
  273. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__session-hour-minute-pulse-filter-01.pine +0 -0
  274. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__session-ny-spring-forward-dst-01.pine +0 -0
  275. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__stats-eventrades-zero-pnl-count-01.pine +0 -0
  276. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-accdist-ema-cross-01.pine +0 -0
  277. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-bb-kc-squeeze-breakout-01.pine +0 -0
  278. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-bb-rsi-mean-reversion-01.pine +0 -0
  279. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-cci-threshold-cross-01.pine +0 -0
  280. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-chandelier-exit-direction-01.pine +0 -0
  281. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-closedtrades-risk-introspection-01.pine +0 -0
  282. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-cmo-9-zero-cross-01.pine +0 -0
  283. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-cog-10-signal-cross-01.pine +0 -0
  284. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-dmi-adx-di-cross-01.pine +0 -0
  285. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-donchian-channel-breakout-01.pine +0 -0
  286. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-dual-ma-switch-dispatch-01.pine +0 -0
  287. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-dual-thrust-open-anchored-range-01.pine +0 -0
  288. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-elder-ray-bull-bear-power-01.pine +0 -0
  289. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-ema-ribbon-stack-transition-01.pine +0 -0
  290. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-engulfing-candle-pattern-01.pine +0 -0
  291. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-highestbars-lowestbars-breakout-01.pine +0 -0
  292. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-hma-55-close-cross-01.pine +0 -0
  293. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-hma-fast-slow-cross-01.pine +0 -0
  294. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-inside-bar-engulfing-01.pine +0 -0
  295. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-kama-style-efficiency-ratio-01.pine +0 -0
  296. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-keltner-channel-break-01.pine +0 -0
  297. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-linreg-stdev-channel-revert-01.pine +0 -0
  298. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-macd-12-26-9-line-signal-cross-01.pine +0 -0
  299. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-macd-histogram-reversal-01.pine +0 -0
  300. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-macd-line-gt-signal-continuous-state-01.pine +0 -0
  301. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-map-regime-threshold-lookup-01.pine +0 -0
  302. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-median-vs-ema-cross-01.pine +0 -0
  303. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-mfi-14-bands-20-80-01.pine +0 -0
  304. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-momentum-roc-zero-cross-01.pine +0 -0
  305. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-multi-indicator-score-composite-01.pine +0 -0
  306. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-nvi-pvi-cross-01.pine +0 -0
  307. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-obv-ema-cross-01.pine +0 -0
  308. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-percentrank-mean-reversion-01.pine +0 -0
  309. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-pivot-array-unshift-pop-01.pine +0 -0
  310. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-pivot-atr-stop-target-01.pine +0 -0
  311. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-pivot-confirmed-break-01.pine +0 -0
  312. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-pivot-point-levels-break-01.pine +0 -0
  313. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-pvt-ema-cross-01.pine +0 -0
  314. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-range-filter-var-band-01.pine +0 -0
  315. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-rci-14-zero-cross-01.pine +0 -0
  316. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-rsi-bb-self-bands-01.pine +0 -0
  317. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-rsi-ema-signal-cross-01.pine +0 -0
  318. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-rsi-macd-and-continuous-state-01.pine +0 -0
  319. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-rsi14-bands-30-70-01.pine +0 -0
  320. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-rsi14-cross-50-01.pine +0 -0
  321. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-rsi14-gt-50-continuous-state-01.pine +0 -0
  322. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-rsi14-gt60-lt45-no-matrix-01.pine +0 -0
  323. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-sar-flip-entry-01.pine +0 -0
  324. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-sma-152-close-cross-01.pine +0 -0
  325. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-sma-dual-cross-01.pine +0 -0
  326. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-stdev-sma-expansion-break-01.pine +0 -0
  327. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-stoch-slow-k-d-cross-01.pine +0 -0
  328. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-stochastic-rsi-cross-01.pine +0 -0
  329. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-str-match-regex-filter-01.pine +0 -0
  330. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-supertrend-adx-filter-01.pine +0 -0
  331. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-supertrend-direction-flip-01.pine +0 -0
  332. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-triple-sma-stack-latch-01.pine +0 -0
  333. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-tsi-25-13-signal-cross-01.pine +0 -0
  334. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-volume-spike-atr-breakout-01.pine +0 -0
  335. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-vwma-vs-sma-divergence-01.pine +0 -0
  336. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__ta-wpr-14-bands-01.pine +0 -0
  337. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__timeframe-main-period-self-adaptive-01.pine +0 -0
  338. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-calls-sibling-cumulative-01.pine +0 -0
  339. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-default-param-kwargs-01.pine +0 -0
  340. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-drives-strategy-entry-01.pine +0 -0
  341. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-extra-primitive-args-01.pine +0 -0
  342. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-feeds-strategy-exit-prices-01.pine +0 -0
  343. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-in-for-loop-01.pine +0 -0
  344. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-in-if-else-branch-01.pine +0 -0
  345. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-in-switch-arms-01.pine +0 -0
  346. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-in-while-loop-01.pine +0 -0
  347. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-mutating-self-ref-01.pine +0 -0
  348. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-on-array-element-01.pine +0 -0
  349. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-reads-strategy-state-01.pine +0 -0
  350. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-receives-ta-series-param-01.pine +0 -0
  351. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-scalar-return-01.pine +0 -0
  352. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-tuple-return-destructure-01.pine +0 -0
  353. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-udt-return-from-func-01.pine +0 -0
  354. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-uses-history-globals-01.pine +0 -0
  355. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-uses-math-funcs-01.pine +0 -0
  356. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-uses-na-nz-fixnan-01.pine +0 -0
  357. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-var-instance-streak-01.pine +0 -0
  358. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-method-windowed-method-chain-01.pine +0 -0
  359. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__udt-regime-stack-stress-01.pine +0 -0
  360. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__vwap-bands-breakout-1sigma-01.pine +0 -0
  361. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/gate-corpus/ok/validation__vwap-bands-mean-reversion-2sigma-01.pine +0 -0
  362. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/golden/matrix_eigen_pca.cpp +0 -0
  363. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_analyzer.py +0 -0
  364. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_analyzer_matrix_inference.py +0 -0
  365. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_analyzer_ta_return_types.py +0 -0
  366. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_array_bounds_insert_fill_slice.py +0 -0
  367. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_array_checked_access.py +0 -0
  368. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_array_empty_aggregates.py +0 -0
  369. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_array_terminal_returns.py +0 -0
  370. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_calc_on_order_fills_codegen.py +0 -0
  371. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_callable_series_param_types.py +0 -0
  372. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_callable_ta_forwarded_length.py +0 -0
  373. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_callable_var_first_reach.py +0 -0
  374. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_codegen_determinism.py +0 -0
  375. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_codegen_drawing_data.py +0 -0
  376. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_codegen_drawing_handles.py +0 -0
  377. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_codegen_fallthrough_guards.py +0 -0
  378. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_codegen_golden.py +0 -0
  379. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_codegen_input_getters.py +0 -0
  380. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_codegen_matrix_typed.py +0 -0
  381. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_codegen_string_escape.py +0 -0
  382. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_codegen_ta_derived_length.py +0 -0
  383. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_codegen_ta_finite_choice_length.py +0 -0
  384. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_codegen_ta_stable_var_literal.py +0 -0
  385. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_collection_scope_isolation.py +0 -0
  386. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_compile_corpus.py +0 -0
  387. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_errors.py +0 -0
  388. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_extract_inputs.py +0 -0
  389. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_float_relational_runtime.py +0 -0
  390. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_glue_smoke.py +0 -0
  391. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_hungpixi_regressions.py +0 -0
  392. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_import_all.py +0 -0
  393. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_input_time_int64.py +0 -0
  394. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_int64_reassign_promotion.py +0 -0
  395. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_int64_time_storage.py +0 -0
  396. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_lexer.py +0 -0
  397. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_map_call_diagnostics.py +0 -0
  398. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_map_param_methods.py +0 -0
  399. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_map_terminal_returns.py +0 -0
  400. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_math_sign_na_codegen.py +0 -0
  401. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_matrix_identity_checkpoint.py +0 -0
  402. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_matrix_na_lifecycle.py +0 -0
  403. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_matrix_void_method_return.py +0 -0
  404. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_method_receiver_types.py +0 -0
  405. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_method_written_callsite_lifecycle.py +0 -0
  406. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_na_reassign_retype.py +0 -0
  407. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_na_relational_lowering.py +0 -0
  408. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_official_surface.py +0 -0
  409. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_parser.py +0 -0
  410. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_persistent_callable_owner_state.py +0 -0
  411. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_pinemap_boundaries_and_order.py +0 -0
  412. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_pinemap_cold_followups_history.py +0 -0
  413. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_pinemap_semantics.py +0 -0
  414. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_pinemap_temp_receiver_var.py +0 -0
  415. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_runtime_var_initialization.py +0 -0
  416. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_security_helper_local_var.py +0 -0
  417. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_security_math_reducer.py +0 -0
  418. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_security_ohlc_hist_is_complete.py +0 -0
  419. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_security_ta_input_history_offset.py +0 -0
  420. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_security_tf_input_derived.py +0 -0
  421. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_security_tf_literal.py +0 -0
  422. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_security_tuple_interactions.py +0 -0
  423. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_signatures.py +0 -0
  424. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_strategy_close_callsite_tokens.py +0 -0
  425. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_support_checker.py +0 -0
  426. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_support_checker_chart_visible_bar_time.py +0 -0
  427. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_support_checker_color_cast.py +0 -0
  428. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_support_checker_const_namespaces.py +0 -0
  429. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_support_checker_dividends_earnings.py +0 -0
  430. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_support_checker_footprint.py +0 -0
  431. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_support_checker_input_color.py +0 -0
  432. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_support_checker_input_source.py +0 -0
  433. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_support_checker_matrix.py +0 -0
  434. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_support_checker_security_adjustment.py +0 -0
  435. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_support_checker_syminfo_gap_fields.py +0 -0
  436. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_support_checker_timeframe_from_seconds.py +0 -0
  437. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_support_checker_varip.py +0 -0
  438. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_support_checker_volume_row.py +0 -0
  439. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_symbols.py +0 -0
  440. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_ta_official_surface.py +0 -0
  441. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_transpile_division.py +0 -0
  442. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_transpile_enum_order.py +0 -0
  443. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_transpile_pf_trace.py +0 -0
  444. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_transpile_tr_handle_na.py +0 -0
  445. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_transpiler_matrix_kwargs.py +0 -0
  446. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_typed_void_method_precedence.py +0 -0
  447. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_typespec_matrix.py +0 -0
  448. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_udf_series_parameter_history.py +0 -0
  449. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_udt_drawing_field_cleanup.py +0 -0
  450. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_udt_lvalue_alias.py +0 -0
  451. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_udt_na_lifecycle.py +0 -0
  452. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_udt_object_identity.py +0 -0
  453. {pineforge_codegen-0.10.2 → pineforge_codegen-0.10.3}/tests/test_unsupported_reporting.py +0 -0
@@ -0,0 +1,15 @@
1
+ {
2
+ "hooks": {
3
+ "PreToolUse": [
4
+ {
5
+ "matcher": "Bash",
6
+ "hooks": [
7
+ {
8
+ "type": "command",
9
+ "command": "node --no-warnings \"$HOME/code/pineforge-workflow/campaign/hooks/pr-gate.mjs\""
10
+ }
11
+ ]
12
+ }
13
+ ]
14
+ }
15
+ }
@@ -4,18 +4,16 @@ name: Pyodide Gate
4
4
  # native CPython on every corpus input (success + failure). Heavier than the
5
5
  # unit matrix (loads Pyodide), so: on demand, nightly, and on PRs that touch the
6
6
  # gate itself. It does NOT block releases yet — that wiring is Phase 3.
7
+ # `gate` is a required status check on main, so this workflow runs on EVERY
8
+ # pull request and reports; the path filter lives in-job: when a PR touches no
9
+ # gate-relevant path the heavy steps are skipped and the check is trivially
10
+ # green. (A trigger-level paths: filter would leave path-untouching PRs
11
+ # BLOCKED forever -- the required context never reports.)
7
12
  on:
8
13
  workflow_dispatch:
9
14
  schedule:
10
15
  - cron: "27 5 * * *" # nightly 05:27 UTC
11
16
  pull_request:
12
- paths:
13
- - "gate/**"
14
- - "tests/gate-corpus/**"
15
- - "package.json"
16
- - "package-lock.json"
17
- - ".github/workflows/gate.yml"
18
- - "pineforge_codegen/**"
19
17
 
20
18
  permissions:
21
19
  contents: read
@@ -31,28 +29,52 @@ jobs:
31
29
  PYTHONHASHSEED: "0"
32
30
  steps:
33
31
  - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
32
+ with:
33
+ fetch-depth: 0
34
+
35
+ - name: Detect gate-relevant changes
36
+ id: changes
37
+ env:
38
+ BASE_SHA: ${{ github.event.pull_request.base.sha }}
39
+ run: |
40
+ set -euo pipefail
41
+ if [ "${{ github.event_name }}" != "pull_request" ]; then
42
+ echo "relevant=true" >> "$GITHUB_OUTPUT"; exit 0
43
+ fi
44
+ if git diff --name-only "$BASE_SHA...HEAD" \
45
+ | grep -qE '^(gate/|tests/gate-corpus/|package(-lock)?\.json$|\.github/workflows/gate\.yml$|pineforge_codegen/)'; then
46
+ echo "relevant=true" >> "$GITHUB_OUTPUT"
47
+ else
48
+ echo "::notice::no gate-relevant paths changed — gate is trivially green"
49
+ echo "relevant=false" >> "$GITHUB_OUTPUT"
50
+ fi
34
51
 
35
52
  - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
53
+ if: steps.changes.outputs.relevant == 'true'
36
54
  with:
37
55
  python-version: "3.14"
38
56
 
39
57
  - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
58
+ if: steps.changes.outputs.relevant == 'true'
40
59
  with:
41
60
  node-version: "22"
42
61
 
43
62
  - name: Install codegen (native oracle) + node deps
63
+ if: steps.changes.outputs.relevant == 'true'
44
64
  run: |
45
65
  python -m pip install -e .
46
66
  npm ci
47
67
 
48
68
  - name: Selftest (comparator catches divergences)
69
+ if: steps.changes.outputs.relevant == 'true'
49
70
  run: npm run gate:selftest
50
71
 
51
72
  - name: Run differential gate (full corpus)
73
+ if: steps.changes.outputs.relevant == 'true'
52
74
  run: npm run gate:full
53
75
 
54
76
  - name: Upload release.json (derived versions, for Phase 3 handoff)
55
- if: always()
77
+ if: always() && steps.changes.outputs.relevant == 'true'
56
78
  uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
57
79
  with:
58
80
  name: release-json
@@ -0,0 +1,235 @@
1
+ # PineForge parity campaign — post-merge baseline promotion.
2
+ #
3
+ # Install into BOTH product repos, unchanged (the repo axis is auto-detected):
4
+ # pineforge-engine/.github/workflows/promote-baseline.yml
5
+ # pineforge-codegen-oss/.github/workflows/promote-baseline.yml
6
+ #
7
+ # On a merged PR it advances the campaign baseline one axis to the merged
8
+ # composite, reusing the snapshot from the pr-gate run that already cleared
9
+ # it. It promotes ONLY when the merge is exact-head (the gated commit's tree is
10
+ # now on the base branch), CI is green on that commit, and a PASS verdict binds
11
+ # the full (engine, codegen) pair. Otherwise it exits green without promoting.
12
+ #
13
+ # The gate logic (exact-head + CI-green + baseline-promote.mjs) is unchanged;
14
+ # only the transport to the campaign plane changed. The plane is now GCP: the
15
+ # promotion reads the active baseline and the gate ledger from the Postgres
16
+ # registry through a cloud-sql-proxy, streams the pinned documents from the
17
+ # GCS evidence bucket, and appends the new baseline row — authenticated by
18
+ # workload identity federation, so no long-lived GCP key lives in the repo.
19
+ #
20
+ # Required in each product repo:
21
+ # secrets PINEFORGE_APP_ID + PINEFORGE_APP_PRIVATE_KEY the org App (already
22
+ # present for release.yml) — the job mints a short-lived, read-only
23
+ # token from it to check out the private pineforge-workflow repo, so
24
+ # NO personal access token is needed
25
+ # var WORKFLOW_REPO optional override, defaults to pineforge-4pass/pineforge-workflow
26
+ # var GCP_WORKLOAD_IDENTITY_PROVIDER
27
+ # the full provider resource name — terraform/gcp output
28
+ # `github_workload_identity_provider`
29
+ # var GCP_SERVICE_ACCOUNT
30
+ # the dedicated promotion service account this workflow impersonates
31
+ # through that provider — terraform/gcp output
32
+ # `github_promotion_service_account`. Terraform binds the repo-pinned
33
+ # federated identity to it (roles/iam.workloadIdentityUser) and
34
+ # grants it exactly what the steps below use, and nothing else:
35
+ # Cloud SQL Client on the registry instance (the proxy this job
36
+ # starts), accessor on secret pineforge-registry-db (the DSN
37
+ # password baseline-promote resolves), and objectViewer on the
38
+ # evidence bucket (the three pinned documents it streams). No
39
+ # Cloud Run role: this workflow executes no job. Nothing is left for
40
+ # an operator to grant by hand.
41
+ #
42
+ # This file's PATH is part of the identity: the WIF provider admits only
43
+ # `<owner>/<repo>/.github/workflows/promote-baseline.yml@…`, so installing it
44
+ # under another name mints no token — and no other workflow in the repo can
45
+ # mint one either.
46
+ #
47
+ # (Optionally pin WORKFLOW_REF, defaults to main; and PINEFORGE_EVIDENCE_BUCKET,
48
+ # defaults to pineforge-workflow-evidence.)
49
+
50
+ name: promote-baseline
51
+
52
+ on:
53
+ pull_request:
54
+ types: [closed]
55
+ # Manual re-fire for a merge whose pull_request event already passed (e.g. a
56
+ # PR merged before this workflow was installed, or a rebase-merge whose PR
57
+ # head was orphaned): pass the exact commit now on the base branch.
58
+ workflow_dispatch:
59
+ inputs:
60
+ merge_commit:
61
+ description: "40-hex commit now on the base branch to promote"
62
+ required: true
63
+ pr_number:
64
+ description: "the PR number"
65
+ required: true
66
+ pr_url:
67
+ description: "the PR url (recorded in the merge receipt)"
68
+ required: true
69
+ merged_at:
70
+ description: "ISO-8601 merge time"
71
+ required: true
72
+
73
+ permissions:
74
+ contents: read
75
+ # "Confirm CI is green" reads check-runs, which is `checks`. The older
76
+ # combined-status API is not called, so no `statuses: read` is granted --
77
+ # this block is exactly what the steps below do, and nothing spare.
78
+ checks: read
79
+ # Workload identity federation mints the GCP credential from the job's own
80
+ # OIDC token; nothing here can promote without this repo's identity.
81
+ id-token: write
82
+
83
+ jobs:
84
+ promote:
85
+ if: ${{ github.event_name == 'workflow_dispatch' || github.event.pull_request.merged == true }}
86
+ runs-on: ubuntu-latest
87
+ steps:
88
+ - name: Determine repo axis
89
+ id: axis
90
+ run: |
91
+ case "${{ github.repository }}" in
92
+ *codegen*) echo "repo=codegen" >> "$GITHUB_OUTPUT" ;;
93
+ *) echo "repo=engine" >> "$GITHUB_OUTPUT" ;;
94
+ esac
95
+
96
+ - uses: actions/checkout@v4
97
+ with:
98
+ fetch-depth: 0
99
+
100
+ # Exact-head is the safety property: the snapshot describes the gated
101
+ # commit's tree, so we promote only if that tree is what is now on the
102
+ # base branch. A squash/rebase that rewrote the tree, or a base that
103
+ # moved on, is skipped — those must be re-gated.
104
+ - name: Verify exact-head
105
+ id: exacthead
106
+ env:
107
+ HEAD_SHA: ${{ github.event.pull_request.head.sha || github.event.inputs.merge_commit }}
108
+ BASE_REF: ${{ github.event.pull_request.base.ref || 'main' }}
109
+ run: |
110
+ set -euo pipefail
111
+ git fetch --quiet origin "$BASE_REF"
112
+ if ! git merge-base --is-ancestor "$HEAD_SHA" "origin/$BASE_REF"; then
113
+ echo "::notice::head $HEAD_SHA is not on origin/$BASE_REF — not an exact-head merge; skipping"
114
+ echo "ok=false" >> "$GITHUB_OUTPUT"; exit 0
115
+ fi
116
+ base_tree=$(git rev-parse "origin/$BASE_REF^{tree}")
117
+ head_tree=$(git rev-parse "$HEAD_SHA^{tree}")
118
+ if [ "$base_tree" != "$head_tree" ]; then
119
+ echo "::notice::base tree != head tree — the base diverged from the gated tree; re-gate. skipping"
120
+ echo "ok=false" >> "$GITHUB_OUTPUT"; exit 0
121
+ fi
122
+ echo "ok=true" >> "$GITHUB_OUTPUT"
123
+
124
+ - name: Confirm CI is green on the merged commit
125
+ id: ci
126
+ if: steps.exacthead.outputs.ok == 'true'
127
+ env:
128
+ GH_TOKEN: ${{ github.token }}
129
+ HEAD_SHA: ${{ github.event.pull_request.head.sha || github.event.inputs.merge_commit }}
130
+ run: |
131
+ set -euo pipefail
132
+ bad=$(gh api "repos/${{ github.repository }}/commits/$HEAD_SHA/check-runs" \
133
+ --jq '[.check_runs[] | select(.conclusion=="failure" or .conclusion=="cancelled" or .conclusion=="timed_out" or .conclusion=="action_required")] | length')
134
+ if [ "$bad" != "0" ]; then
135
+ echo "::notice::$bad failing check-run(s) on $HEAD_SHA — not green; skipping"
136
+ echo "green=false" >> "$GITHUB_OUTPUT"; exit 0
137
+ fi
138
+ echo "green=true" >> "$GITHUB_OUTPUT"
139
+
140
+ # The campaign tooling lives in the private pineforge-workflow repo. Rather
141
+ # than a long-lived PAT, mint a short-lived, read-only token from the org
142
+ # App already installed here (the same app-id/private-key release.yml
143
+ # uses), scoped to just that one repo.
144
+ - name: Mint an org App token to read the campaign tooling
145
+ id: app
146
+ if: steps.ci.outputs.green == 'true'
147
+ uses: actions/create-github-app-token@v1
148
+ with:
149
+ app-id: ${{ secrets.PINEFORGE_APP_ID }}
150
+ private-key: ${{ secrets.PINEFORGE_APP_PRIVATE_KEY }}
151
+ owner: pineforge-4pass
152
+ repositories: pineforge-workflow
153
+
154
+ - name: Checkout campaign tooling (pineforge-workflow)
155
+ if: steps.ci.outputs.green == 'true'
156
+ uses: actions/checkout@v4
157
+ with:
158
+ repository: ${{ vars.WORKFLOW_REPO || 'pineforge-4pass/pineforge-workflow' }}
159
+ ref: ${{ vars.WORKFLOW_REF || 'main' }}
160
+ token: ${{ steps.app.outputs.token }}
161
+ path: .workflow
162
+
163
+ - uses: actions/setup-node@v4
164
+ if: steps.ci.outputs.green == 'true'
165
+ with:
166
+ node-version: '22'
167
+
168
+ - name: Authenticate to GCP
169
+ if: steps.ci.outputs.green == 'true'
170
+ uses: google-github-actions/auth@v2
171
+ with:
172
+ workload_identity_provider: ${{ vars.GCP_WORKLOAD_IDENTITY_PROVIDER }}
173
+ service_account: ${{ vars.GCP_SERVICE_ACCOUNT }}
174
+
175
+ - name: Set up gcloud
176
+ if: steps.ci.outputs.green == 'true'
177
+ uses: google-github-actions/setup-gcloud@v2
178
+
179
+ # The plane is Postgres on Cloud SQL; the promotion reads the active
180
+ # baseline and the gate ledger there, so this runner needs the same
181
+ # connector-path proxy operators use.
182
+ - name: Start cloud-sql-proxy
183
+ if: steps.ci.outputs.green == 'true'
184
+ run: |
185
+ set -euo pipefail
186
+ curl -fsSLo /tmp/cloud-sql-proxy \
187
+ https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.14.1/cloud-sql-proxy.linux.amd64
188
+ chmod +x /tmp/cloud-sql-proxy
189
+ /tmp/cloud-sql-proxy --port 5433 \
190
+ gen-lang-client-0864094636:asia-east1:pineforge-workflow-pg &
191
+ for i in $(seq 1 30); do
192
+ if (exec 3<>/dev/tcp/127.0.0.1/5433) 2>/dev/null; then exit 0; fi
193
+ sleep 1
194
+ done
195
+ echo "cloud-sql-proxy did not become ready" >&2
196
+ exit 1
197
+
198
+ - name: Install campaign dependencies
199
+ if: steps.ci.outputs.green == 'true'
200
+ run: npm ci --prefix .workflow/campaign
201
+
202
+ - name: Promote baseline
203
+ if: steps.ci.outputs.green == 'true'
204
+ env:
205
+ PINEFORGE_PLANE: gcp
206
+ PINEFORGE_REGISTRY_HOST: 127.0.0.1:5433
207
+ PINEFORGE_EVIDENCE_BUCKET: ${{ vars.PINEFORGE_EVIDENCE_BUCKET || 'pineforge-workflow-evidence' }}
208
+ # No metadata server on a GitHub runner; mint GCS tokens from the
209
+ # federated gcloud credential explicitly.
210
+ PINEFORGE_GCP_TOKEN_CMD: gcloud auth print-access-token
211
+ HEAD_SHA: ${{ github.event.pull_request.head.sha || github.event.inputs.merge_commit }}
212
+ PR_NUMBER: ${{ github.event.pull_request.number || github.event.inputs.pr_number }}
213
+ PR_URL: ${{ github.event.pull_request.html_url || github.event.inputs.pr_url }}
214
+ MERGED_AT: ${{ github.event.pull_request.merged_at || github.event.inputs.merged_at }}
215
+ run: |
216
+ set -euo pipefail
217
+ ms=$(node -e "process.stdout.write(String(Date.parse(process.env.MERGED_AT)))")
218
+ set +e
219
+ node .workflow/campaign/src/baseline-promote.mjs \
220
+ --repo "${{ steps.axis.outputs.repo }}" \
221
+ --merge-commit "$HEAD_SHA" --head-sha "$HEAD_SHA" --ci-head "$HEAD_SHA" --ci-green \
222
+ --pr-number "$PR_NUMBER" --pr-url "$PR_URL" --merged-at-ms "$ms"
223
+ code=$?
224
+ set -e
225
+ # Exit 2 is `refuse`: no PASS verdict binds this merge as a single-axis
226
+ # advance -- a cross-cutting engine+codegen change (gated as a composite
227
+ # the single axis cannot complete), an ungated merge, or a non-exact-head
228
+ # merge. Defer green, do not fail CI; a cross-cutting pair is promoted by
229
+ # hand with `lab promote --composite` once both repos merge (see the
230
+ # baseline-promote skill). Any other non-zero is a real error.
231
+ if [ "$code" = "2" ]; then
232
+ echo "::notice::baseline not promoted (deferred): no PASS verdict binds this merge as a single-axis advance. If this was a cross-cutting engine+codegen change, run the composite promote by hand once both repos are merged. Nothing was changed."
233
+ exit 0
234
+ fi
235
+ exit "$code"
@@ -110,7 +110,8 @@ temp/
110
110
  .scratch/
111
111
 
112
112
  # ─── Tooling caches (Claude Code, AI agents) ───────────────────────────────
113
- .claude/
113
+ .claude/*
114
+ !.claude/settings.json
114
115
  .cursor/
115
116
  .aider*
116
117