pineforge-codegen 0.8.0__tar.gz → 0.9.0__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.
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/CLAUDE.md +34 -24
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/PKG-INFO +1 -1
- pineforge_codegen-0.9.0/VERSION +1 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/analyzer/base.py +797 -45
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/analyzer/call_handlers.py +368 -68
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/analyzer/contracts.py +91 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/analyzer/diagnostics.py +18 -4
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/analyzer/tables.py +20 -2
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/analyzer/types.py +53 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/codegen/__init__.py +4 -0
- pineforge_codegen-0.9.0/pineforge_codegen/codegen/base.py +2988 -0
- pineforge_codegen-0.9.0/pineforge_codegen/codegen/drawing.py +560 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/codegen/emit_top.py +536 -45
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/codegen/input.py +31 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/codegen/security.py +791 -39
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/codegen/ta.py +87 -1
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/codegen/tables.py +115 -10
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/codegen/types.py +478 -46
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/codegen/visit_call.py +331 -75
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/codegen/visit_expr.py +116 -14
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/codegen/visit_stmt.py +208 -23
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/parser.py +129 -29
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/signatures.py +2 -2
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/support_checker.py +320 -19
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/golden/matrix_eigen_pca.cpp +102 -51
- pineforge_codegen-0.9.0/tests/test_calc_on_order_fills_codegen.py +435 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_codegen_audit_fixes.py +26 -13
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_codegen_determinism.py +37 -2
- pineforge_codegen-0.9.0/tests/test_codegen_drawing_data.py +177 -0
- pineforge_codegen-0.9.0/tests/test_codegen_drawing_handles.py +41 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_codegen_new.py +609 -24
- pineforge_codegen-0.9.0/tests/test_codegen_ta_derived_length.py +598 -0
- pineforge_codegen-0.9.0/tests/test_codegen_validation_fixes.py +885 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_compile_smoke.py +167 -5
- pineforge_codegen-0.9.0/tests/test_int64_reassign_promotion.py +73 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_official_surface.py +12 -3
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_parser.py +15 -0
- pineforge_codegen-0.9.0/tests/test_security_math_reducer.py +53 -0
- pineforge_codegen-0.9.0/tests/test_security_ohlc_hist_is_complete.py +104 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_support_checker.py +163 -15
- pineforge_codegen-0.9.0/tests/test_udt_drawing_field_cleanup.py +91 -0
- pineforge_codegen-0.9.0/tests/test_udt_lvalue_alias.py +219 -0
- pineforge_codegen-0.8.0/VERSION +0 -1
- pineforge_codegen-0.8.0/pineforge_codegen/codegen/base.py +0 -1486
- pineforge_codegen-0.8.0/tests/gate-corpus/err/divergent_time_close.pine +0 -9
- pineforge_codegen-0.8.0/tests/test_codegen_drawing_handles.py +0 -33
- pineforge_codegen-0.8.0/tests/test_udt_drawing_field_cleanup.py +0 -103
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/.github/dependabot.yml +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/.github/workflows/gate.yml +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/.github/workflows/publish-pyodide.yml +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/.github/workflows/release.yml +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/.github/workflows/test.yml +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/.gitignore +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/LEGAL.md +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/LICENSE +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/PYODIDE_TARGET +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/README.md +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/docs/codegen-coverage-gaps.md +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/gate/compare.mjs +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/gate/glue.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/gate/oracle.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/gate/run-gate.mjs +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/gate/selftest.mjs +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/npm/README.md +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/npm/index.mjs +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/npm/package.json +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/package-lock.json +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/package.json +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/__init__.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/analyzer/__init__.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/ast_nodes.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/codegen/helpers.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/codegen/helpers_syminfo.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/errors.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/lexer.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/pragmas.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/symbols.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/tokens.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pineforge_codegen/tv_input_choices.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/pyproject.toml +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/scripts/build-npm-package.mjs +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/scripts/dump-tables.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/scripts/worker-template.mjs +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/__init__.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/_compile.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/err/const_ns_plot_style_free.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/err/const_ns_shape_free.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/err/divergent_last_bar_index.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/err/export_func.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/err/footprint_new.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/err/hard_reject_dividends.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/err/matrix_unknown_elem.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/err/multi_error_one_line.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/err/sec_tf_invalid.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/err/unknown_color.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/err/unknown_math.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/err/unknown_str.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/err/unknown_strategy_fn.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/err/unknown_syminfo.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/err/unknown_ta.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/AAPL__session-ismarket-nyse-rth-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/AAPL__time-tradingday-daily-reset-counter-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/QQQ__session-ispremarket-nasdaq-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/SPY__session-firstbar-vwap-anchor-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/SPY__session-lastbar-flatten-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/chart_bg_color.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/crypto-htf__mtf-htf-monthly-ema-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/crypto-leverage__leverage-margin-call-perp-5x-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/forex__symbol-fx-5dp-eurusd-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/futures__symbol-futures-pointvalue-es-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/tutorial__macd__strategy.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/tutorial__mtf__strategy_htf.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/tutorial__mtf__strategy_ltf.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/us-equity__symbol-equity-rth-gaps-aapl-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/us-equity__us-equity-exchange-tz-intraday-cap-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__analyzer-parity-choch-bos-isolator-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__analyzer-parity-edge-margin-50-pct-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__analyzer-parity-percent-of-equity-sizing-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__analyzer-parity-small-equity-fraction-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__analyzer-parity-stop-limit-timing-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__analyzer-self-test-multi-mode-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__anomaly-equity-mirror-strategy-equity-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__barstate-isconfirmed-magnifier-off-01b.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__barstate-isconfirmed-magnifier-on-01a.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__bracket-atr-trail-series-int-points-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__bracket-atr-trailing-stop-state-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__bracket-entry-exit-same-pass-attach-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__bracket-exit-stop-limit-trail-same-bar-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__bracket-exit-three-way-set-once-entry-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__bracket-exit-tp-sl-fixed-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__bracket-narrow-stop-limit-with-trail8-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__bracket-partial-exit-qty-percent-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__bracket-same-id-exit-replace-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__bracket-tp-sl-oca-reduce-isolate-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__bracket-trail-points-no-offset-explicit-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__bracket-trail-points-with-offset-only-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__bracket-trailing-activation-offset-path-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__cap-max-intraday-filled-orders-isolate-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__cap-risk-gates-allow-max-intraday-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-4emarsi-integration-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-4emarsi-quad-ema-stack-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-4emarsi-rsi-pullback-latch-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-4emarsi-session-window-nbar-exit-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-boscurv-integration-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-boscurv-linreg-slope-channel-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-boscurv-pivot-bos-trigger-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-bracket-cap-range-pending-stop-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-ies-adx-regime-classify-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-ies-bb-kc-squeeze-release-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-ies-cooldown-daily-cap-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-ies-equity-feedback-sizing-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-ies-integration-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-ies-pivot-liquidity-sweep-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-ies-pressure-gauge-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-ies-rsi-macd-momentum-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-ies-three-ema-bias-score-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-kanuck-calc-on-every-tick-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-kanuck-integration-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-kanuck-kama-state-recurrence-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-kanuck-max-bars-back-500-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-kkb-ema-atr-breakout-band-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-kkb-integration-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-kkb-kalman-filter-1d-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-kkb-margin-100-pct-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-liqsweep-integration-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-liqsweep-pivot-hh-ll-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-liqsweep-wait-one-continuation-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-liqsweep-wick-pierce-close-back-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-marketshift-integration-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-marketshift-pivot-state-machine-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-marketshift-rolling-highest-lowest-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-marketshift-state-edge-detector-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-scalping-fast-ma-cross-trigger-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-scalping-integration-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-scalping-tight-tp-sl-points-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-trendmaster-integration-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-trendmaster-line-new-projection-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-trendmaster-pivot-anchored-bracket-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-trendmaster-three-tier-ema-state-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-trendmaster-trend-momentum-structure-gate-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-vcp-cumulative-volume-delta-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-vcp-fvg-active-zones-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-vcp-integration-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-vcp-manual-adx-regime-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-vcp-pivot-strength-5-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-vcp-rsi-smooth-divergence-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-vcp-session-tz-newyork-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-vcp-vol-zscore-anomaly-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-wunderscalper-alert-templates-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-wunderscalper-explicit-reverse-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__composite-wunderscalper-integration-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__input-source-runtime-override-high-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__input-source-subscript-hl2-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ltf-bool-array-bull-majority-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ltf-numeric-float-ratio15-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__magnifier-tick-dist-endpoints-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__magnifier-tick-dist-endpoints-rsi-cross-08a.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__magnifier-tick-dist-volume-weighted-on-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__matrix-bool-mask-explicit-utc-tz-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__matrix-bool-mask-no-transpose-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__matrix-bool-mask-transpose-roundtrip-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__matrix-bool-regime-mask-24x7-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__matrix-covariance-eigen-pca-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__matrix-eigen-rank-deficient-cov-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__max-bars-back-function-call-deep-history-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__mtf-daily-array-median-percentrank-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__mtf-daily-ema26-warmup-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__mtf-daily-prev-high-break-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__mtf-dual-tf-60-240-rising-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__mtf-htf-60-close-change-baseline-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__mtf-htf-60-close-roll-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__mtf-htf-60-gaps-on-roll-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__mtf-htf-60-rsi14-inside-security-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__mtf-htf-60-sma20-inside-security-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__mtf-htf-60-volume-spike-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__mtf-htf-confluence-manual-trail-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__mtf-htf-confluence-static-bracket-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__mtf-htf-weekly-sma-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__mtf-roll-state-60-240-d-minimal-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__mtf-triple-tf-close-confluence-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__mtf-triple-tf-macd-hist-confluence-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__na-deep-history-int-na-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__na-nz-fixnan-history-chain-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__oca-exit-bracket-internal-cancel-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__oca-multi-bracket-isolation-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__oca-raw-strategy-order-reduce-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-close-all-cancel-all-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-close-immediate-vs-next-bar-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-cross-entry-cancel-same-pass-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-cross-entry-close-same-pass-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-cross-exit-close-same-pass-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-deferred-flip-guaranteed-gap-stops-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-deferred-flip-pooc-cross-bar-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-dual-four-bar-stop-no-close-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-dual-side-same-id-stop-no-cancel-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-dual-stop-both-touch-priority-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-dual-stop-cancel-rotation-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-dual-stop-far-only-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-dual-stop-near-only-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-dual-stop-open-high-first-path-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-dual-stop-open-low-first-path-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-dual-stop-open-tie-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-dual-stop-source-order-long-first-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-dual-stop-source-order-short-first-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-entry-implicit-reversal-exit-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-flip-stop-no-paired-close-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-market-close-fill-basis-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-one-side-four-bar-far-opposite-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-opposite-entry-close-same-pass-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-percent-equity-cash-commission-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-process-on-close-false-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-process-on-close-true-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-range-expansion-pending-stop-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-same-id-entry-close-same-bar-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-same-id-market-entry-repeat-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-same-id-stop-after-flat-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-same-id-stop-cross-before-modify-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-same-id-stop-minute-zero-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-same-id-stop-modification-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-same-id-stop-raise-only-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-same-id-stop-window-four-bars-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-stale-stop-after-close-no-cancel-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-stop-cancel-no-regime-close-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-stop-entry-cancel-opposite-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-stop-entry-reversal-grouping-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__order-stop-entry-touch-boundary-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__pyramid-cash-fractional-commission-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__pyramid-close-id-grouping-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__pyramid-deferred-flip-close-all-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__pyramid-flip-stop-pyramiding-2-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__recompute-alma-sar-corr-magnifier-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__recompute-mtf-rsi-macd-bb-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__risk-max-contracts-held-gate-pyramid-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__session-hour-minute-pulse-filter-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__session-ny-spring-forward-dst-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__stats-eventrades-zero-pnl-count-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-accdist-ema-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-bb-kc-squeeze-breakout-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-bb-rsi-mean-reversion-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-cci-threshold-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-chandelier-exit-direction-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-closedtrades-risk-introspection-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-cmo-9-zero-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-cog-10-signal-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-dmi-adx-di-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-donchian-channel-breakout-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-dual-ma-switch-dispatch-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-dual-thrust-open-anchored-range-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-elder-ray-bull-bear-power-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-ema-ribbon-stack-transition-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-engulfing-candle-pattern-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-highestbars-lowestbars-breakout-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-hma-55-close-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-hma-fast-slow-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-inside-bar-engulfing-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-kama-style-efficiency-ratio-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-keltner-channel-break-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-linreg-stdev-channel-revert-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-macd-12-26-9-line-signal-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-macd-histogram-reversal-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-macd-line-gt-signal-continuous-state-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-map-regime-threshold-lookup-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-median-vs-ema-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-mfi-14-bands-20-80-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-momentum-roc-zero-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-multi-indicator-score-composite-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-nvi-pvi-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-obv-ema-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-percentrank-mean-reversion-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-pivot-array-unshift-pop-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-pivot-atr-stop-target-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-pivot-confirmed-break-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-pivot-point-levels-break-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-pvt-ema-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-range-filter-var-band-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-rci-14-zero-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-rsi-bb-self-bands-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-rsi-ema-signal-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-rsi-macd-and-continuous-state-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-rsi14-bands-30-70-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-rsi14-cross-50-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-rsi14-gt-50-continuous-state-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-rsi14-gt60-lt45-no-matrix-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-sar-flip-entry-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-sma-152-close-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-sma-dual-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-stdev-sma-expansion-break-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-stoch-slow-k-d-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-stochastic-rsi-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-str-match-regex-filter-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-supertrend-adx-filter-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-supertrend-direction-flip-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-triple-sma-stack-latch-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-tsi-25-13-signal-cross-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-volume-spike-atr-breakout-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-vwma-vs-sma-divergence-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__ta-wpr-14-bands-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__timeframe-main-period-self-adaptive-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-calls-sibling-cumulative-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-default-param-kwargs-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-drives-strategy-entry-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-extra-primitive-args-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-feeds-strategy-exit-prices-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-in-for-loop-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-in-if-else-branch-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-in-switch-arms-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-in-while-loop-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-mutating-self-ref-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-on-array-element-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-reads-strategy-state-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-receives-ta-series-param-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-scalar-return-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-tuple-return-destructure-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-udt-return-from-func-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-uses-history-globals-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-uses-math-funcs-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-uses-na-nz-fixnan-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-var-instance-streak-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-method-windowed-method-chain-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__udt-regime-stack-stress-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__vwap-bands-breakout-1sigma-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/gate-corpus/ok/validation__vwap-bands-mean-reversion-2sigma-01.pine +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_analyzer.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_analyzer_matrix_inference.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_analyzer_ta_return_types.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_codegen_fallthrough_guards.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_codegen_golden.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_codegen_input_getters.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_codegen_matrix_typed.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_codegen_string_escape.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_compile_corpus.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_errors.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_extract_inputs.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_glue_smoke.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_import_all.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_input_time_int64.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_int64_time_storage.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_lexer.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_security_tf_literal.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_signatures.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_support_checker_chart_visible_bar_time.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_support_checker_color_cast.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_support_checker_const_namespaces.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_support_checker_dividends_earnings.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_support_checker_footprint.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_support_checker_input_color.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_support_checker_input_source.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_support_checker_matrix.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_support_checker_security_adjustment.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_support_checker_syminfo_gap_fields.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_support_checker_timeframe_from_seconds.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_support_checker_varip.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_support_checker_volume_row.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_symbols.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_ta_official_surface.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_transpile_division.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_transpile_enum_order.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_transpile_pf_trace.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_transpile_tr_handle_na.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_transpiler_matrix_kwargs.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_typespec_matrix.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_unsupported_reporting.py +0 -0
- {pineforge_codegen-0.8.0 → pineforge_codegen-0.9.0}/tests/test_vwap_tuple_unpack.py +0 -0
|
@@ -206,14 +206,15 @@ strategy. The taxonomy:
|
|
|
206
206
|
| Bucket | What |
|
|
207
207
|
| -------------------------------- | -------------------------------------------------------------------- |
|
|
208
208
|
| `HARD_REJECT_FUNC` | Calls with no PineForge semantics at all (e.g. `request.financial`). |
|
|
209
|
-
| `HARD_REJECT_NAMESPACE` | Whole
|
|
210
|
-
| `DIVERGENT_VARS` (warning)
|
|
209
|
+
| `HARD_REJECT_NAMESPACE` | Whole-namespace rejects — currently EMPTY (the old `ticker.*` blanket reject became per-function `HARD_REJECT_FUNC` entries: `ticker.{renko,kagi,linebreak,pointfigure,new,modify}`; `ticker.inherit`/`ticker.standard` pass through, `ticker.heikinashi` allowed for the chart's own symbol). |
|
|
210
|
+
| `DIVERGENT_VARS` (warning) / `DIVERGENT_VARS_ERROR` (reject) | Built-in variables whose value diverges from TV (e.g. `bar_index` warns); the ERROR subset (`last_bar_index` — would silently mis-alias to the CURRENT bar index) is rejected because the backtest would be silently wrong. |
|
|
211
211
|
| `BARSTATE_APPROX_VARS` (warning) | Barstate flags PineForge approximates in batch mode. |
|
|
212
212
|
| `STRATEGY_UNSUPPORTED_PARAMS` | Per-strategy.* call kwargs that codegen drops silently. |
|
|
213
213
|
| `NOT_YET_FUNC` | Implementable but currently no codegen — reject loudly. |
|
|
214
214
|
| `SUPPORTED_*` frozensets | Per-namespace whitelist of names codegen knows how to emit. |
|
|
215
215
|
| `varip` VarDecl check | `varip` declarations rejected outright — batch backtests have no realtime tick state. |
|
|
216
216
|
| TF literal validation | `request.security` / `request.security_lower_tf` `timeframe` string literals validated against Pine v6 format at parse time. |
|
|
217
|
+
| syminfo na-gap warning | `SUPPORTED_SYMINFO` = every `SYMINFO_MEMBER_MAP` key, but members whose emission is `na<T>()` or a `get_syminfo_metadata(...)` lookup (root/pricescale/minmove/mincontract/current_contract/expiration_date/isin/sector/industry + fundamentals/recommendations/target_price_*) form `_SYMINFO_SILENT_GAP_FIELDS` (derived from the emission table, so new na-accept fields can't drift out): every read WARNS that the value is na until a data feed injects it. |
|
|
217
218
|
|
|
218
219
|
|
|
219
220
|
When extending codegen with a new Pine builtin: add to the corresponding
|
|
@@ -230,22 +231,23 @@ These bit us once and are now pinned by `test_compile_smoke.py`'s
|
|
|
230
231
|
you delete or weaken the special case, the test will tell you.
|
|
231
232
|
|
|
232
233
|
1. **`year(time)` / `month(time)` / `dayofmonth` / `dayofweek` /
|
|
233
|
-
`hour(time, tz)` / `minute` / `second` / `weekofyear
|
|
234
|
-
form
|
|
235
|
-
`
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
`
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
against TV exports for
|
|
248
|
-
the chart's TZ at
|
|
234
|
+
`hour(time, tz)` / `minute` / `second` / `weekofyear`** — BOTH the
|
|
235
|
+
function-call form and the bare variable form lower to the engine's
|
|
236
|
+
cached, timezone-aware `pine_<field>(ts_ms, tz)` helpers
|
|
237
|
+
(`session_time.hpp`): the variable form via `BAR_BUILTINS`
|
|
238
|
+
(`pine_year(current_bar_.timestamp, syminfo_.timezone)` …), the
|
|
239
|
+
function form via `visit_call.py` (`pine_hour((int64_t)(ts), tz)`),
|
|
240
|
+
so the two forms agree. The two-arg form uses the explicit tz; the
|
|
241
|
+
one-arg form defaults to `syminfo_.timezone` (engine
|
|
242
|
+
`SymInfo::timezone`, "UTC" by default). The old inline
|
|
243
|
+
`setenv("TZ")+localtime_r` lambda (`tz_time_field_lambda`,
|
|
244
|
+
codegen/tables.py) is no longer emitted — per-call tzset churn
|
|
245
|
+
caused a macOS notifyd IPC storm (KI-35) — and has zero call sites.
|
|
246
|
+
Chart display TZ is a separate engine slot (`chart_timezone_`,
|
|
247
|
+
`strategy_set_chart_timezone`) intentionally NOT consulted by these
|
|
248
|
+
builtins; harnesses validating metrics against TV exports for
|
|
249
|
+
non-UTC charts must still set chart_tz to match the chart's TZ at
|
|
250
|
+
export time.
|
|
249
251
|
2. **Matrix-returning methods** (`inv` / `pinv` / `transpose` / `copy` /
|
|
250
252
|
`submatrix` / `concat` / `diff` / `mult` / `pow` / `eigenvectors` /
|
|
251
253
|
`kron`) live in `MATRIX_RETURNING_METHODS` (`codegen/tables.py`).
|
|
@@ -276,13 +278,21 @@ you delete or weaken the special case, the test will tell you.
|
|
|
276
278
|
PREVIOUS bar's HLC (`_s_high[1]`, `_s_low[1]`, `_s_close[1]`) per
|
|
277
279
|
Pine v6 semantics with `developing=false`.
|
|
278
280
|
6. **`request.security` is strict.** Only `symbol`, `timeframe`,
|
|
279
|
-
`expression`, `gaps`, and `
|
|
280
|
-
|
|
281
|
-
|
|
281
|
+
`expression`, `gaps`, `lookahead`, and `ignore_invalid_symbol` are
|
|
282
|
+
allowed (`ignore_invalid_symbol` is accepted but inert — the symbol is
|
|
283
|
+
always the chart symbol, so no symbol can be invalid). Symbol must
|
|
284
|
+
resolve to the current chart symbol (`syminfo.tickerid` or
|
|
285
|
+
`syminfo.ticker`, incl. first-binding aliases and
|
|
286
|
+
`ticker.inherit/standard/heikinashi(<chart sym>)`). `gaps` and
|
|
287
|
+
`lookahead` must be the literal `barmerge.gaps_*` /
|
|
282
288
|
`barmerge.lookahead_*` member access (codegen does not parse other
|
|
283
|
-
shapes). `barmerge.lookahead_on` is
|
|
284
|
-
|
|
285
|
-
|
|
289
|
+
shapes). `barmerge.lookahead_on` is ACCEPTED with a repaint WARNING —
|
|
290
|
+
engine-supported (first-intrabar publication; script-tf publish gating
|
|
291
|
+
for finer-than-chart targets): see `_check_request_security`'s lookahead
|
|
292
|
+
branch and `test_request_security_lookahead_on_kwarg_warns`. The old
|
|
293
|
+
"hard-rejected" wording here was verified stale against the code on
|
|
294
|
+
2026-07-07 — do not restore it. The `timeframe` argument, when a string
|
|
295
|
+
literal, is validated against the Pine v6 TF format at parse time (PR #3).
|
|
286
296
|
7. `**SUPPORTED_LOG`** gates `log.{info,warning,error}`. Without it,
|
|
287
297
|
typos like `log.foo("x")` previously emitted a dead empty-string
|
|
288
298
|
statement. Don't remove the gate.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pineforge-codegen
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.0
|
|
4
4
|
Summary: PineScript v6 to C++ transpiler that targets the pineforge-engine runtime.
|
|
5
5
|
Project-URL: Homepage, https://github.com/pineforge-4pass/pineforge-codegen-oss
|
|
6
6
|
Project-URL: Issues, https://github.com/pineforge-4pass/pineforge-codegen-oss/issues
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.9.0
|